00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef QFile_H
00023 #define QFile_H
00024
00025 #include "QIODevice.h"
00026 #include "FXTime.h"
00027
00032
00033 extern "C" { struct stat; }
00034
00035 namespace FX {
00036
00074 class QFilePrivate;
00075 class QMemMap;
00076 class FXAPIR QFile : public QIODevice
00077 {
00078 QFilePrivate *p;
00079 QFile(const QFile &);
00080 QFile &operator=(const QFile &);
00081 struct WantStdioType
00082 {
00083 typedef int foo;
00084 };
00085 struct WantLightQFile { };
00086 QFile(WantStdioType);
00087 QFile(const FXString &name, WantLightQFile);
00088 friend class QMemMap;
00089 friend class FXProcess;
00090 FXDLLLOCAL int int_fileDescriptor() const;
00091 public:
00092 QFile();
00094 QFile(const FXString &name);
00095 ~QFile();
00097 const FXString &name() const;
00099 void setName(const FXString &name);
00101 bool exists() const;
00103 bool remove();
00105 FXfval reloadSize();
00110 static QIODevice &stdio(bool applyCRLFTranslation=false);
00111
00112 using QIODevice::mode;
00113 virtual bool open(FXuint mode);
00114 virtual void close();
00115 virtual void flush();
00116 virtual FXfval size() const;
00117 virtual void truncate(FXfval size);
00118 virtual FXfval at() const;
00119 virtual bool at(FXfval newpos);
00120 virtual bool atEnd() const;
00121 virtual const FXACL &permissions() const;
00122 virtual void setPermissions(const FXACL &perms);
00124 static FXACL permissions(const FXString &path);
00126 static void setPermissions(const FXString &path, const FXACL &perms);
00127 virtual FXuval readBlock(char *data, FXuval maxlen);
00128 virtual FXuval writeBlock(const char *data, FXuval maxlen);
00129 virtual FXuval readBlockFrom(char *data, FXuval maxlen, FXfval pos);
00130 virtual FXuval writeBlockTo(FXfval pos, const char *data, FXuval maxlen);
00131 virtual int ungetch(int c);
00132 };
00133
00134 }
00135
00136 #endif