00001
00002
00003
00004
00005
00006
00007 #ifndef __WVATOMFILE_H
00008 #define __WVATOMFILE_H
00009
00010 #include "wvfile.h"
00011
00021 class WvAtomicFile : public WvFile
00022 {
00023 private:
00024 WvString atomic_file;
00025 WvString tmp_file;
00026
00027 public:
00028 WvAtomicFile(WvStringParm filename, int flags = O_TRUNC | O_CREAT,
00029 mode_t create_mode = 0666);
00030 ~WvAtomicFile();
00031
00032 bool open(WvStringParm filename, int flags = O_TRUNC | O_CREAT,
00033 mode_t create_mode = 0666);
00034 void close();
00035
00036
00037 bool chmod(mode_t mode);
00038
00039 bool chown(uid_t owner, gid_t group);
00040
00041 public:
00042 const char *wstype() const { return "WvAtomicFile"; }
00043 };
00044
00045 #endif // __WVATOMFILE_H