![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2002 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: modelDataDict.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtModelDataDict_H_ 00013 #define DtModelDataDict_H_ 00014 00015 #include <QtCore/QObject> 00016 #include <QtCore/QHash> 00017 00018 #include "archiver/archiver.h" 00019 #include "symbolMapper/modelData.h" 00020 #include "symbolMapper/modelKey.h" 00021 00022 class QTextStream; 00023 00026 #include "symbolMapper/symbolMapperDefines.h" 00027 class DT_DLL_symbolMapper DtModelDataDict : public DtArchiver, public QHash<DtModelKey, DtModelData*> 00028 { 00029 Q_OBJECT 00030 00031 public: 00032 DtModelDataDict(); 00033 virtual ~DtModelDataDict(); 00034 00035 virtual void insert(const QString & key, const DtModelData* item); 00036 virtual void replace(const QString & key, const DtModelData* item); 00037 virtual bool remove(const QString & key); 00038 virtual DtModelData * take(const QString & key); 00039 00042 virtual void setAutoDelete(bool b); 00043 00047 virtual void removeDataOfType(int); 00048 00049 DtModelData* find(const QString& key) const 00050 { 00051 DtModelDataDict::const_iterator iter = QHash<DtModelKey, DtModelData*>::find(key); 00052 00053 if (iter != end()) 00054 { 00055 return *iter; 00056 } 00057 00058 return NULL; 00059 } 00060 00062 virtual void clear(); 00063 00064 public slots: 00065 virtual void updateModelData(const DtModelData& data, int changedFlags); 00066 virtual void modelDataDestroyed(const QString&); 00067 00068 signals: 00070 void modelDataAdded(const DtModelKey&); 00071 00073 void modelDataAboutToBeRemoved(const DtModelKey&); 00074 00076 void modelDataUpdated(const DtModelData& data, int iChangedFlags); 00077 00078 protected: 00079 00080 bool myAutoDelete; 00081 00082 private: 00083 DtModelDataDict(const DtModelDataDict& orig); 00084 DtModelDataDict& operator=(const DtModelDataDict& orig); 00085 }; 00086 00087 #include "symbolMapper/dictIter.h" 00088 00089 typedef DtDictIterator<DtModelKey, DtModelData*> DtModelDataIter; 00090 00091 #endif