VR-Link API Documentation for HLA 1516
disDictionary.h
Go to the documentation of this file.
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 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)