VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/disDictionary.h
Go to the documentation of this file.
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 #pragma once
00015 
00016 #include <vrfGuiCore/vrfGuiCore.h>
00017 
00018 #include <vrfGuiCore/entityMapperKey.h>
00019 #include <vrfGuiCore/orderedKeyList.h>
00020 
00021 #include <map>
00022 #include <string>
00023 
00024 namespace makVrf
00025 {
00026    class DT_DLL_VRFGUICORE DtDisEntry
00027    {
00028    public:
00029       DtDisEntry();
00030       DtDisEntry(const std::string&);
00031       virtual ~DtDisEntry();
00032 
00033    public:
00034       virtual DtDisEntry* addDisEntry(int iVal, const std::string& sVal);
00035       virtual DtDisEntry* find(int iVal);
00036 
00037    public:
00038       std::map<int, DtDisEntry*> myEntries;
00039       std::string                myValue;
00040    };
00041 
00042    class DT_DLL_VRFGUICORE DtDisEntityTypeEntry : public DtEntityMapperKey
00043    {
00044    public:
00045       DtDisEntityTypeEntry(const DtEntityMapperKey& key) : DtEntityMapperKey(key) {};
00046       DtDisEntityTypeEntry(const DtDisEntityTypeEntry& orig)
00047       : DtEntityMapperKey(orig)
00048       , myStrings(orig.myStrings)
00049       {
00050       }
00051 
00052       void addString(const std::string& str);
00053       const std::vector<std::string>& strings() const;
00054 
00055       int& operator[](int i) { return DtEntityMapperKey::operator[](i); };
00056       const int operator[](int i) const  { return DtEntityMapperKey::operator[](i); };
00057 
00058       DtDisEntityTypeEntry* clone()
00059       {
00060          return new DtDisEntityTypeEntry(*this);
00061       }
00062 
00063    protected:
00064       std::vector<std::string> myStrings;
00065    };
00066 
00067    class DT_DLL_VRFGUICORE DtDisDictionary
00068    {
00069    public:
00070       DtDisDictionary();
00071       virtual ~DtDisDictionary();
00072 
00073       virtual bool loadFromFile(const std::string& file);
00074 
00075       const DtOrderedKeyList<DtDisEntityTypeEntry*>& enumerationList() const;
00076       DtOrderedKeyList<DtDisEntityTypeEntry*>& enumerationList();
00077       const DtDisEntry& disEntries() const;
00078       DtDisEntry& disEntries();
00079 
00080       const DtDisEntityTypeEntry* findEntry(const DtEntityMapperKey& entKey) const;
00081       DtDisEntityTypeEntry* findEntry(const DtEntityMapperKey& entKey);
00082       std::string findCountry(int c);
00083 
00084       static std::map<int, std::string>& countries();
00085 
00086    protected:
00087       virtual void lineProcessed(int line);
00088 
00089    protected:
00090       virtual int countLines(const char*);
00091 
00092    protected:
00093       DtDisEntry                                myDisEntries;
00094       DtOrderedKeyList<DtDisEntityTypeEntry*>   myEntityKeys;
00095       static std::map<int, std::string>         theCountries;
00096    };
00097 
00098    inline const DtDisEntityTypeEntry* DtDisDictionary::findEntry(const DtEntityMapperKey& entKey) const
00099    {
00100       return myEntityKeys.find(entKey);
00101    }
00102 
00103    inline DtDisEntityTypeEntry* DtDisDictionary::findEntry(const DtEntityMapperKey& entKey)
00104    {
00105       return myEntityKeys.find(entKey);
00106    }
00107 
00108    inline const DtOrderedKeyList<DtDisEntityTypeEntry*>& DtDisDictionary::enumerationList() const
00109    {
00110       return myEntityKeys;
00111    }
00112 
00113    inline DtOrderedKeyList<DtDisEntityTypeEntry*>& DtDisDictionary::enumerationList()
00114    {
00115       return myEntityKeys;
00116    }
00117 
00118    inline const DtDisEntry& DtDisDictionary::disEntries() const
00119    {
00120       return myDisEntries;
00121    }
00122 
00123    inline DtDisEntry& DtDisDictionary::disEntries()
00124    {
00125       return myDisEntries;
00126    }
00127 
00128    inline std::string DtDisDictionary::findCountry(int c)
00129    {
00130       std::map<int, std::string>::const_iterator iter = countries().find(c);
00131 
00132       if (iter == countries().end())
00133       {
00134          return "";
00135       }
00136       else
00137       {
00138          return iter->second;
00139       }
00140    }
00141 
00142    inline void DtDisEntityTypeEntry::addString(const std::string& str)
00143    {
00144       myStrings.push_back(str);
00145    }
00146 
00147    inline const std::vector<std::string>& DtDisEntityTypeEntry::strings() const
00148    {
00149       return myStrings;
00150    }
00151 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)