![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: rwRegistry.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 00018 00019 #ifndef DtReaderWriterRegistry_H_ 00020 #define DtReaderWriterRegistry_H_ 00021 00022 #include <vlutil/vlList.h> 00023 #include <vlutil/vlString.h> 00024 #include "stdio.h" 00025 #include <mtl/mtl.h> 00026 #include "tdbutil/symStr.h" 00027 #include <vector> 00028 #include "vrfutil/vrfutilDefines.h" 00029 #include <list> 00030 00031 class DtReaderWriter; 00032 class DtReaderWriterRegistryData; 00033 class DtFilename; 00034 class DtFilename; 00035 class DtRwVariableBindings; 00036 00037 typedef std::list<const DtRwVariableBindings*> DtVariableBindingsList; 00038 00039 class DT_DLL_vrfutil DtReaderWriterRegistry 00040 { 00041 00042 public: 00044 DtReaderWriterRegistry(); 00045 00047 DtReaderWriterRegistry(const DtReaderWriterRegistry & orig); 00048 00050 DtReaderWriterRegistry & operator =(const DtReaderWriterRegistry & orig); 00051 00053 ~DtReaderWriterRegistry(); 00054 00059 bool localData() const; 00060 void setLocalData(); 00061 void clearLocalData(); 00062 00065 void addEntry(const DtSymbolString& keyword, DtReaderWriter* const rw); 00066 00067 void addEntryBefore(const DtSymbolString& keyword, 00068 DtReaderWriter* const rw, const DtString& addBefore); 00069 00070 void addEntryBefore(const DtSymbolString& keyword, 00071 DtReaderWriter* const rw, DtReaderWriter* const addBefore); 00072 00073 void addEntryAfter(const DtSymbolString& keyword, 00074 DtReaderWriter* const rw, const DtString& addAfter); 00075 00076 void addEntryAfter(const DtSymbolString& keyword, 00077 DtReaderWriter* const rw, DtReaderWriter* const addAfter); 00078 00080 void removeEntry(const DtSymbolString& keyword); 00081 void removeEntry(DtReaderWriter* const rw); 00082 00084 DtReaderWriter* const readerWriter(const DtString& keyword); 00085 00086 void putSelf(FILE* fp, int indentLevel, bool writeUnspecified, 00087 const DtFilename& path); 00088 void getSelf(DtlObjPtr args, const DtFilename& searchPath, 00089 const DtVariableBindingsList& variableBindings); 00090 00098 virtual void setValueSpecified(bool specified, bool recurse); 00099 00100 const std::vector<DtReaderWriterRegistryData*>& registryData() const; 00101 std::vector<DtReaderWriterRegistryData*>& registryData(); 00102 00104 virtual DtReaderWriterRegistryData* find(const DtString& keyword) const; 00105 00107 virtual void clear(); 00108 00109 virtual DtRwVariableBindings* variableBindings(); 00110 virtual const DtRwVariableBindings* variableBindings() const; 00111 00112 virtual const DtReaderWriter* findVariableBinding(const DtString& rwType, 00113 const DtString& variableName) const; 00114 virtual DtReaderWriter* findVariableBinding(const DtString& rwType, 00115 const DtString& variableName); 00116 00120 virtual void setVariableBindings(const DtRwVariableBindings* newBindings); 00121 00128 virtual DtReaderWriter* addVariableBinding(const DtString& variableType, 00129 const DtString& variableName); 00130 00131 static const DtString theVariableBindingsName; 00132 00133 protected: 00134 00137 00138 protected: 00139 00140 std::vector<DtReaderWriterRegistryData*> myData; 00141 bool myLocalDataFlag; 00142 DtRwVariableBindings* myVariableBindings; 00143 00144 }; 00145 00146 inline const std::vector<DtReaderWriterRegistryData*>& DtReaderWriterRegistry::registryData() const 00147 { 00148 return myData; 00149 } 00150 00151 inline std::vector<DtReaderWriterRegistryData*>& DtReaderWriterRegistry::registryData() 00152 { 00153 return myData; 00154 } 00155 00156 #endif