![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: disDictionary.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtDisDictionary_H_ 00016 #define DtDisDictionary_H_ 00017 00018 #include "ngutil/entityMapperKey.h" 00019 #include "ngutil/orderedKeyList.h" 00020 00021 #include <QtCore/QObject> 00022 #include <QtCore/QString> 00023 #include <QtCore/QHash> 00024 #include <QtCore/QVector> 00025 00026 #include <vlutil/vlString.h> 00027 00028 #include "tmqt/tmqtDefines.h" 00029 class DT_DLL_tmqt DtDisEntry 00030 { 00031 public: 00032 DtDisEntry(); 00033 DtDisEntry(const QString&); 00034 virtual ~DtDisEntry(); 00035 00036 public: 00037 virtual DtDisEntry* addDisEntry(int iVal, const QString& sVal); 00038 virtual DtDisEntry* find(int iVal); 00039 00040 public: 00041 QHash<int, DtDisEntry*> myEntries; 00042 DtString myValue; 00043 }; 00044 00045 class DT_DLL_tmqt DtDisEntityTypeEntry : public DtEntityMapperKey 00046 { 00047 public: 00048 DtDisEntityTypeEntry(const DtEntityMapperKey& key) : DtEntityMapperKey(key) {}; 00049 00050 void addString(const DtString& str); 00051 const QVector<DtString>& strings() const; 00052 00053 int& operator[](int i) { return DtEntityMapperKey::operator[](i); }; 00054 const int operator[](int i) const { return DtEntityMapperKey::operator[](i); }; 00055 00056 protected: 00057 QVector<DtString> myStrings; 00058 }; 00059 00060 class DT_DLL_tmqt DtDisDictionary : public QObject 00061 { 00062 Q_OBJECT 00063 00064 public: 00065 DtDisDictionary(); 00066 virtual ~DtDisDictionary(); 00067 00068 virtual bool loadFromFile(const QString& file, bool showProgress = true); 00069 00070 const DtOrderedKeyList<DtDisEntityTypeEntry*>& enumerationList() const; 00071 DtOrderedKeyList<DtDisEntityTypeEntry*>& enumerationList(); 00072 const DtDisEntry& disEntries() const; 00073 DtDisEntry& disEntries(); 00074 00075 const DtDisEntityTypeEntry* findEntry(const DtEntityMapperKey& entKey) const; 00076 DtDisEntityTypeEntry* findEntry(const DtEntityMapperKey& entKey); 00077 QString findCountry(int c); 00078 00079 static QHash<int, QString>& countries(); 00080 00081 protected: 00082 virtual int countLines(const char*); 00083 00084 protected: 00085 DtDisEntry myDisEntries; 00086 DtOrderedKeyList<DtDisEntityTypeEntry*> myEntityKeys; 00087 static QHash<int, QString> gCountries; 00088 }; 00089 00090 inline const DtDisEntityTypeEntry* DtDisDictionary::findEntry(const DtEntityMapperKey& entKey) const 00091 { 00092 return myEntityKeys.find(entKey); 00093 } 00094 00095 inline DtDisEntityTypeEntry* DtDisDictionary::findEntry(const DtEntityMapperKey& entKey) 00096 { 00097 return myEntityKeys.find(entKey); 00098 } 00099 00100 inline const DtOrderedKeyList<DtDisEntityTypeEntry*>& DtDisDictionary::enumerationList() const 00101 { 00102 return myEntityKeys; 00103 } 00104 00105 inline DtOrderedKeyList<DtDisEntityTypeEntry*>& DtDisDictionary::enumerationList() 00106 { 00107 return myEntityKeys; 00108 } 00109 00110 inline const DtDisEntry& DtDisDictionary::disEntries() const 00111 { 00112 return myDisEntries; 00113 } 00114 00115 inline DtDisEntry& DtDisDictionary::disEntries() 00116 { 00117 return myDisEntries; 00118 } 00119 00120 inline QString DtDisDictionary::findCountry(int c) 00121 { 00122 return countries().value(c); 00123 } 00124 00125 inline void DtDisEntityTypeEntry::addString(const DtString& str) 00126 { 00127 myStrings.append(str); 00128 } 00129 00130 inline const QVector<DtString>& DtDisEntityTypeEntry::strings() const 00131 { 00132 return myStrings; 00133 } 00134 00135 #endif