ezEngine  Milestone 7
TagRegistry.h
1 
2 #pragma once
3 
4 class ezHashedString;
5 class ezTag;
6 
7 #include <Foundation/Threading/Mutex.h>
8 #include <Foundation/Containers/Map.h>
9 
18 class EZ_FOUNDATION_DLL ezTagRegistry
19 {
20 public:
21 
22  ezTagRegistry();
23 
24  static ezTagRegistry& GetGlobalRegistry();
25 
26  void RegisterTag(const char* szTagString, ezTag* ResultTag = nullptr); // [tested]
27  void RegisterTag(const ezHashedString& TagString, ezTag* ResultTag = nullptr); // [tested]
28 
29  ezResult GetTag(const char* szTagString, ezTag& ResultTag); // [tested]
30  ezResult GetTag(const ezHashedString& TagString, ezTag& ResultTag); // [tested]
31 
32 protected:
33 
34  ezMutex m_TagRegistryMutex;
35 
36  ezMap<ezHashedString, ezTag> m_RegisteredTags;
37  ezUInt32 m_uiNextTagIndex;
38 };