Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #pragma once
00019
00020 #ifndef __OpenKarto_MetaEnumManager_h__
00021 #define __OpenKarto_MetaEnumManager_h__
00022
00023 #include <OpenKarto/String.h>
00024
00025 namespace karto
00026 {
00027
00029
00030
00031
00032
00036
00037 class MetaEnum;
00038
00039 struct MetaEnumManagerPrivate;
00040
00044
00049 class KARTO_EXPORT MetaEnumManager
00050 {
00051 public:
00055 static MetaEnumManager& GetInstance();
00056
00057 public:
00064 MetaEnum& RegisterNew(const karto::String& rName, const karto::String& rId);
00065
00072 const MetaEnum& GetByName(const karto::String& rName) const;
00073
00080 const MetaEnum& GetById(const karto::String& rId) const;
00081
00087 kt_bool EnumExists(const karto::String& rId) const;
00088
00093 kt_size_t GetSize() const;
00094
00099 void Clear();
00100
00101 public:
00107 const MetaEnum& operator [] (kt_size_t index) const;
00108
00109 private:
00113 MetaEnumManager();
00114
00118 ~MetaEnumManager();
00119
00120 private:
00124 MetaEnumManager(const MetaEnumManager&);
00125
00129 const MetaEnumManager& operator=(const MetaEnumManager&);
00130
00131 private:
00132 MetaEnumManagerPrivate* m_pPrivate;
00133 };
00134
00135
00136
00138
00139 }
00140
00141 #endif // __OpenKarto_MetaEnumManager_h__