3#include <unordered_map>
7template<
typename TObject>
11 void Add(
const std::string& resourceName, TObject&&
object) {
12 mMap[resourceName] = std::make_unique<TObject>(std::forward<TObject>(
object));
15 void Add(
const std::string& resourceName,
const TObject&
object) {
16 mMap[resourceName] = std::make_unique<TObject>(
object);
20 TObject*
Get(
const std::string& resourceName) {
21 auto it =
mMap.find(resourceName);
22 return it !=
mMap.end() ? it->second.get() :
nullptr;
25 const TObject*
Get(
const std::string& resourceName)
const {
26 auto it =
mMap.find(resourceName);
27 return it !=
mMap.end() ? it->second.get() :
nullptr;
30 bool Remove(
const std::string& resourceName) {
31 return mMap.erase(resourceName) > 0;
43 std::unordered_map<std::string, std::unique_ptr<TObject>>
mMap;
Definition DataRegistry.h:8
std::unordered_map< std::string, std::unique_ptr< TObject > > mMap
Definition DataRegistry.h:43
void Add(const std::string &resourceName, const TObject &object)
Definition DataRegistry.h:15
size_t Size() const
Definition DataRegistry.h:34
void Clear()
Definition DataRegistry.h:38
const TObject * Get(const std::string &resourceName) const
Definition DataRegistry.h:25
void Add(const std::string &resourceName, TObject &&object)
Definition DataRegistry.h:11
TObject * Get(const std::string &resourceName)
Definition DataRegistry.h:20
bool Remove(const std::string &resourceName)
Definition DataRegistry.h:30