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