From 22e5230c32237798d9cc2c832209d587eea5139a Mon Sep 17 00:00:00 2001 From: Lynix Date: Wed, 28 Jan 2015 20:38:54 +0100 Subject: [PATCH] (ObjectLibrary) Added Query static method Former-commit-id: 802dcc589dd2c552a332490153b6761341c0a698 --- include/Nazara/Core/ObjectLibrary.hpp | 1 + include/Nazara/Core/ObjectLibrary.inl | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/include/Nazara/Core/ObjectLibrary.hpp b/include/Nazara/Core/ObjectLibrary.hpp index be9834560..fca255b01 100644 --- a/include/Nazara/Core/ObjectLibrary.hpp +++ b/include/Nazara/Core/ObjectLibrary.hpp @@ -25,6 +25,7 @@ class NzObjectLibrary static bool Has(const NzString& name); static void Register(const NzString& name, NzObjectRef object); + static NzObjectRef Query(const NzString& name); static void Unregister(const NzString& name); private: diff --git a/include/Nazara/Core/ObjectLibrary.inl b/include/Nazara/Core/ObjectLibrary.inl index 2c46a3f45..15ed62ffc 100644 --- a/include/Nazara/Core/ObjectLibrary.inl +++ b/include/Nazara/Core/ObjectLibrary.inl @@ -8,14 +8,11 @@ template NzObjectRef NzObjectLibrary::Get(const NzString& name) { - auto it = Type::s_library.find(name); - if (it != Type::s_library.end()) - return it->second; - else - { + NzObjectRef ref = Query(name); + if (!ref) NazaraError("Object \"" + name + "\" is not present"); - return nullptr; - } + + return ref; } template @@ -30,6 +27,16 @@ void NzObjectLibrary::Register(const NzString& name, NzObjectRef obj Type::s_library.emplace(name, object); } +template +NzObjectRef NzObjectLibrary::Query(const NzString& name) +{ + auto it = Type::s_library.find(name); + if (it != Type::s_library.end()) + return it->second; + else + return nullptr; +} + template void NzObjectLibrary::Unregister(const NzString& name) {