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