QAliases.hh
Go to the documentation of this file.00001 #ifndef _Q_ALIASES_HH_
00002 #define _Q_ALIASES_HH_
00003
00015 #include <map>
00016 #include <string>
00017 #include "QCuore.hh"
00018
00019 Q_BEGIN_NAMESPACE
00020
00021 class QAliases {
00022
00023
00024 public:
00026 static QAliases& GetInstance();
00036 void Add(const std::string& ShortName, const std::string& useAs, const void* obj);
00037
00038 ~QAliases();
00039
00040 struct CatMember {
00041 std::string Default;
00042 const void** Address;
00043 };
00044
00045 struct AliasMember {
00046 std::string shortName;
00047 std::string category;
00048 const void* obj;
00049 };
00051 const std::map<std::string, AliasMember>& GetAliases() { return fShortNameMap;}
00053 const std::map<std::string, CatMember>& GetCategories() { return fCategories;}
00054 std::string Dump();
00055 private:
00063 void AddCategory(const std::string& cat, const std::string& defVal, const void** obj);
00064 QAliases();
00065
00066 std::map<std::string, AliasMember> fShortNameMap;
00067 std::map<std::string, CatMember> fCategories;
00068
00069 friend class QDefaultsData;
00070 };
00071
00072 Q_END_NAMESPACE
00073
00074
00075 #endif