VR-Forces 4.0.4 Class Documentation
include/vrfutil/rwFile.h
Go to the documentation of this file.
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 

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)