00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __EDELIB_TEMPFILE_H__
00022 #define __EDELIB_TEMPFILE_H__
00023
00024 #include <stdio.h>
00025 #include "String.h"
00026
00027 EDELIB_NS_BEGIN
00028
00041 class TempFile {
00042 private:
00043 int fd;
00044 int errno_err;
00045 FILE *stream;
00046 bool auto_del;
00047 bool no_close;
00048 String filename;
00049
00050 E_DISABLE_CLASS_COPY(TempFile)
00051 public:
00055 TempFile();
00056
00060 ~TempFile();
00061
00067 bool create(const char* prefix, int mode = 0600);
00068
00072 operator bool(void) const { return (errno_err == 0); }
00073
00077 void unlink(void);
00078
00082 bool close(void);
00083
00087 void set_auto_delete(bool v) { auto_del = v; }
00088
00092 void set_no_close(bool n) { no_close = n; }
00093
00097 FILE* fstream(void);
00098
00102 const char* name(void) const { return (filename.empty() ? NULL : filename.c_str()); }
00103
00107 int handle(void) const { return fd; }
00108
00112 int status(void) const { return errno_err; }
00113 };
00114
00115 EDELIB_NS_END
00116 #endif