Go to the documentation of this file.00001
00002
00003
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