![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: mtlParamDb.h,v $ $Revision: 1.22 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef DtMtlParameterDb_H_ 00015 #define DtMtlParameterDb_H_ 00016 00017 #include "vrfobjparam/vrfParamDb.h" 00018 #include <vlutil/vlFilename.h> 00019 #include <map> 00020 #include <string> 00021 #include "vrfutil/rwRegistry.h" 00022 #include "vrfutil/rwVariableBindings.h" 00023 #include <vrfutil/remoteConfigurationList.h> 00024 00025 class DtMtlParameterDbReader; 00026 class DtMtlParameterDbWriter; 00027 class DtMtlParameterDbEntry; 00028 00031 typedef enum 00032 { 00033 PARAMETER_DB_100_VERSION = 100, 00034 PARAMETER_DB_101_VERSION = 101 00035 } DtParameterDatabaseFileVersionNumber; 00036 00038 static const DtParameterDatabaseFileVersionNumber 00039 CURRENT_PARAMETER_DB_FILE_FORMAT_VERSION = PARAMETER_DB_101_VERSION; 00040 00044 #include "vrfobjparam/vrfobjparamDefines.h" 00045 class DT_DLL_vrfobjparam DtMtlParameterDb : public DtVrfParameterDb 00046 { 00047 public: 00048 00050 DtMtlParameterDb(); 00051 00053 virtual ~DtMtlParameterDb(); 00054 00057 virtual bool init(); 00058 00065 virtual DtMtlParameterDbEntry* add(const DtObjectType& objectType, 00066 const DtFilename& filename, DtVrfObjectParameters * newParameters = NULL); 00067 00070 virtual void createRemoteConfigurationList(); 00078 virtual DtVrfObjectParameters * lookup( 00079 const DtObjectType & objectType, DtObjectType * matchingType, 00080 DtString* source = NULL) const; 00081 00083 virtual bool load(const DtFilename& filename); 00084 00086 virtual bool loadAll(const DtFilename& filename); 00088 DtRemoteConfigurationList* remoteConfigurationList(); 00089 const DtRemoteConfigurationList* remoteConfigurationList() const; 00090 DtRemoteConfigurationList::CreatorFcn remoteConfigurationListCreatorFcn(); 00091 void setRemoteConfigurationListCreatorFcn(DtRemoteConfigurationList::CreatorFcn fcn); 00092 00099 virtual bool save(const DtFilename& filename); 00100 00102 virtual void removeAll(); 00103 00108 virtual void setVersionNumber(int versionNumber); 00109 virtual int versionNumber() const; 00110 00115 virtual void addDependentParameterFileToCopyPair( 00116 const DtFilename& fromFilename, const DtFilename& toFilename); 00117 virtual void clearDependentParameterFileToCopyPairs(); 00118 virtual const std::map<std::string, std::string>& 00119 dependentParameterFileToCopyPairs() const; 00120 00125 virtual void updateReaderWriterFilePaths(DtVrfObjectParameters& parameters); 00126 00127 DtMtlParameterDbReader* dbReader(); 00128 DtMtlParameterDbWriter* dbWriter(); 00129 00132 virtual DtFilename stripExtension(const DtFilename& filename, 00133 const DtString& extension); 00134 00136 //const DtFilename& filename() const; 00137 00139 00140 virtual void addVariableBindings(DtVariableBindingsSharedPtr bindings); 00141 virtual std::list<DtVariableBindingsSharedPtr>& variableBindings(); 00143 00144 public: 00145 00147 static DtVrfParameterDb* create(); 00148 00150 static const DtString& opdFilenameExtension(); 00151 00154 static const DtString& opeFilenameExtension(); 00155 00156 protected: 00157 00160 virtual DtMtlParameterDbReader* createParamDbReader(); 00161 00164 virtual DtMtlParameterDbWriter* createMtlParamDbWriter(); 00165 00168 virtual bool copyDependentParameterDirectories(const DtFilename& oldPath, 00169 const DtFilename& newPath); 00170 00172 virtual DtFilename getPath(const DtFilename& filename); 00173 00179 virtual DtVrfObjectParameters* getParameters( 00180 DtMtlParameterDbEntry* entry) const; 00181 00183 virtual DtVrfParameterDbEntry* createParameterEntry() const; 00184 00190 static const std::map<DtString, DtFilename>& extensionToPathMap(); 00191 00192 private: 00194 DtMtlParameterDb(const DtMtlParameterDb& orig); 00195 00197 DtMtlParameterDb& operator=(const DtMtlParameterDb& orig); 00198 00199 protected: 00200 00201 DtMtlParameterDbReader* myParameterDbReader; 00202 DtMtlParameterDbWriter* myParameterDbWriter; 00203 00204 static DtString theOpdFilenameExtension; 00205 static DtString theOpeFilenameExtension; 00206 static DtFilename theOldParameterDbDirectory; 00207 00208 int myVersionNumber; 00209 00210 DtVariableBindingsList myVariableBindings; 00211 //DtFilename myFilename; 00212 std::map<std::string, std::string> myDependentParameterFileToCopyPairs; 00213 00216 std::list<DtVariableBindingsSharedPtr> myVariableBindingsList; 00217 00219 DtRemoteConfigurationList *pMyRemoteConfigurationList; 00220 DtRemoteConfigurationList::CreatorFcn myRemoteConfigListCreatorFcn; 00221 protected: 00222 00223 static std::map<DtString, DtFilename>* theExtensionToPathMap; 00224 }; 00225 00226 inline DtMtlParameterDbReader* DtMtlParameterDb::dbReader() 00227 { 00228 return myParameterDbReader; 00229 } 00230 00231 inline DtMtlParameterDbWriter* DtMtlParameterDb::dbWriter() 00232 { 00233 return myParameterDbWriter; 00234 } 00235 00236 /* 00237 inline const DtFilename& DtMtlParameterDb::filename() const 00238 { 00239 return myFilename; 00240 } 00241 */ 00242 00243 inline DtRemoteConfigurationList* DtMtlParameterDb::remoteConfigurationList() {return (pMyRemoteConfigurationList);} 00244 inline const DtRemoteConfigurationList* DtMtlParameterDb::remoteConfigurationList() const {return (pMyRemoteConfigurationList);} 00245 inline DtRemoteConfigurationList::CreatorFcn DtMtlParameterDb::remoteConfigurationListCreatorFcn(){return (myRemoteConfigListCreatorFcn);} 00246 inline void DtMtlParameterDb::setRemoteConfigurationListCreatorFcn(DtRemoteConfigurationList::CreatorFcn fcn){myRemoteConfigListCreatorFcn = fcn;} 00247 #endif