00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _TDETEMPFILE_H_
00021 #define _TDETEMPFILE_H_
00022
00023 #include <tqstring.h>
00024 #include <stdio.h>
00025 #include <errno.h>
00026 #include "tdelibs_export.h"
00027
00028 class TQFile;
00029 class TQTextStream;
00030 class TQDataStream;
00031 class KSaveFile;
00032 class KTempFilePrivate;
00033
00055 class TDECORE_EXPORT KTempFile
00056 {
00057 friend class KSaveFile;
00058 public:
00071 KTempFile(TQString filePrefix=TQString::null,
00072 TQString fileExtension=TQString::null,
00073 int mode = 0600 );
00074
00075
00080 ~KTempFile();
00081
00087 void setAutoDelete(bool autoDelete) { bAutoDelete = autoDelete; }
00088
00100 int status() const;
00101
00122 TQString name() const;
00123
00129 int handle() const;
00130
00136 FILE *fstream();
00137
00143 TQTextStream *textStream();
00144
00150 TQDataStream *dataStream();
00151
00157 TQFile *file();
00158
00163 void unlink();
00164
00175 bool sync();
00176
00183 bool close();
00184
00185 protected:
00189 KTempFile(bool);
00190
00195 bool create(const TQString &filePrefix,
00196 const TQString &fileExtension, int mode);
00197
00198 void setError(int error) { mError = error; }
00199 private:
00200 int mError;
00201 TQString mTmpName;
00202 int mFd;
00203 FILE *mStream;
00204 TQFile *mFile;
00205 TQTextStream *mTextStream;
00206 TQDataStream *mDataStream;
00207 bool bOpen;
00208 bool bAutoDelete;
00209
00210 KTempFilePrivate *d;
00211 };
00212
00213 #endif