![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: rwFile.h,v $ $Revision: 1.26 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 00018 #ifndef DtReaderWriterFile_H_ 00019 #define DtReaderWriterFile_H_ 00020 00021 #include "vrfutil/rdrWritr.h" 00022 #include "vrfutil/rwString.h" 00023 #include <vlutil/vlFilename.h> 00024 #include <mtl/lispEnv.h> 00025 00026 typedef std::map<DtlObj*, std::string> DtlObjStringMap; 00027 00028 class DtReaderWriterRegistry; 00029 class DtFilename; 00030 00038 #include "vrfutil/vrfutilDefines.h" 00039 class DT_DLL_vrfutil DtReaderWriterFile : public DtReaderWriter 00040 { 00041 public: 00043 DtReaderWriterFile(); 00044 00046 DtReaderWriterFile(const DtString& name, 00047 DtReaderWriterRegistry* parentRegistry = NULL); 00048 00049 DtReaderWriterFile(const DtSymbolString& name, 00050 DtReaderWriterRegistry* parentRegistry = NULL); 00051 00053 DtReaderWriterFile(const DtString& name, const DtReaderWriterFile& orig, 00054 DtReaderWriterRegistry* parentRegistry = NULL); 00055 00056 DtReaderWriterFile(const DtSymbolString& name, const DtReaderWriterFile& orig, 00057 DtReaderWriterRegistry* parentRegistry = NULL); 00058 00060 DtReaderWriterFile& operator=(const DtReaderWriterFile& orig); 00061 DtReaderWriterFile& operator=(const DtFilename& orig); 00062 00064 virtual ~DtReaderWriterFile(); 00065 00067 DtReaderWriterFile* clone(const DtString& name, 00068 DtReaderWriterRegistry* parentRegistry = NULL); 00069 00070 DtReaderWriterFile* clone(const DtSymbolString& name, 00071 DtReaderWriterRegistry* parentRegistry = NULL); 00072 00075 virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath, 00076 const DtVariableBindingsList& variableBindings); 00077 00079 virtual void saveFile(const DtFilename& filename); 00080 virtual void loadFile(const DtFilename& searchPath, 00081 const DtVariableBindingsList& variableBindings, DtlObjStringMap* commentMap = NULL); 00082 00085 virtual void putSelf(FILE* fp, int indentLevel, 00086 bool writeUnspecified, const DtFilename& path); 00087 00089 virtual void setObjectToReadAndWrite(DtReaderWriter* object); 00091 virtual const DtReaderWriter& objectToReadAndWrite() const; 00092 00094 static const DtFilename& appPath(); 00095 00103 virtual void setFilename(const DtString& filename); 00104 00109 virtual void setFilename(const DtString& filename, const DtString& unsubstitutedFilename); 00110 00114 virtual const DtString& filename() const; 00115 00117 virtual DtString unsubstitutedFilename() const; 00118 00120 virtual void setUnsubstitudedFilename(const DtString& f); 00121 00123 virtual const DtFilename& filenameLastReadIn() const; 00124 00129 virtual void setFileReadOnly(bool readOnly = true); 00130 virtual bool fileReadOnly() const; 00131 00135 virtual const char* readerWriterType() const; 00136 00138 virtual void substitute(const DtVariableBindingsList& variableBindings); 00139 00140 protected: 00141 00145 bool getFilenameToWrite(const DtFilename& path, const DtFilename& filename, 00146 DtFilename& filenameToWrite) const; 00147 00148 protected: 00149 DtRwString myFilename; 00150 DtReaderWriter* myObjectToReadAndWrite; 00151 bool myFileReadOnly; 00152 DtFilename myFilenameLastReadIn; 00153 DtString myVariableSubstitutedFilename; 00154 }; 00155 00156 #endif 00157