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