#ifndef QFILE_H
#define QFILE_H 
#include <QtCore/qiodevice.h>
#include <QtCore/qstring.h>
#include <stdio.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QAbstractFileEngine;
struct QFilePrivate;
class QFile: public QIODevice{
#ifndef QT_NO_QOBJECT
   public: virtual struct QMetaObject const * metaObject() const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
#endif
   private: inline struct QFilePrivate* d_func();
   private: inline struct QFilePrivate const * d_func() const
   public: enum FileError{
      NoError = 0,
      ReadError = 1,
      WriteError = 2,
      FatalError = 3,
      ResourceError = 4,
      OpenError = 5,
      AbortError = 6,
      TimeOutError = 7,
      UnspecifiedError = 8,
      RemoveError = 9,
      RenameError = 10,
      PositionError = 11,
      ResizeError = 12,
      PermissionsError = 13,
      CopyError = 14,
   };
   public: enum Permission{
      ReadOwner = 16384,
      WriteOwner = 8192,
      ExeOwner = 4096,
      ReadUser = 1024,
      WriteUser = 512,
      ExeUser = 256,
      ReadGroup = 64,
      WriteGroup = 32,
      ExeGroup = 16,
      ReadOther = 4,
      WriteOther = 2,
      ExeOther = 1,
   };
   public: typedef class QFlags < enum QFile::Permission > Permissions;
   public: QFile();
   public: QFile(class QString const & name);
#ifndef QT_NO_QOBJECT
   public: explicit QFile(class QObject* parent);
   public: QFile(class QString const & name, class QObject* parent);
#endif
   public: virtual ~QFile();
   public: enum QFile::FileError error() const
   public: void unsetError();
   public: class QString fileName() const
   public: void setFileName(class QString const & name);
   public: typedef class QByteArray (* EncoderFn)(class QString const &);
   public: typedef class QString (* DecoderFn)(class QByteArray const &);
   public: static class QByteArray encodeName(class QString const & fileName);
   public: static class QString decodeName(class QByteArray const & localFileName);
   public: static inline class QString decodeName(char const * localFileName);
   public: static void setEncodingFunction(class QByteArray (* )(class QString const &));
   public: static void setDecodingFunction(class QString (* )(class QByteArray const &));
   public: bool exists() const
   public: static bool exists(class QString const & fileName);
   public: class QString readLink() const
   public: static class QString readLink(class QString const & fileName);
   public: inline class QString symLinkTarget() const
   public: static inline class QString symLinkTarget(class QString const & fileName);
   public: bool remove();
   public: static bool remove(class QString const & fileName);
   public: bool rename(class QString const & newName);
   public: static bool rename(class QString const & oldName, class QString const & newName);
   public: bool link(class QString const & newName);
   public: static bool link(class QString const & oldname, class QString const & newName);
   public: bool copy(class QString const & newName);
   public: static bool copy(class QString const & fileName, class QString const & newName);
   public: virtual bool isSequential() const
   public: virtual bool open(class QFlags < enum QIODevice::OpenModeFlag > flags);
   public: bool open(FILE* f, class QFlags < enum QIODevice::OpenModeFlag > flags);
   public: bool open(int fd, class QFlags < enum QIODevice::OpenModeFlag > flags);
   public: virtual void close();
   public: virtual qint64 size() const
   public: virtual qint64 pos() const
   public: virtual bool seek(qint64 offset);
   public: virtual bool atEnd() const
   public: bool flush();
   public: bool resize(qint64 sz);
   public: static bool resize(class QString const & filename, qint64 sz);
   public: class QFlags < enum QFile::Permission > permissions() const
   public: static class QFlags < enum QFile::Permission > permissions(class QString const & filename);
   public: bool setPermissions(class QFlags < enum QFile::Permission > permissionSpec);
   public: static bool setPermissions(class QString const & filename, class QFlags < enum QFile::Permission > permissionSpec);
   public: int handle() const
   public: virtual struct QAbstractFileEngine* fileEngine() const
#ifdef QT_NO_QOBJECT
#else
   protected: QFile(struct QFilePrivate& dd, class QObject* parent = 0);
#endif
   protected: virtual qint64 readData(char* data, qint64 maxlen);
   protected: virtual qint64 writeData(char const * data, qint64 len);
   protected: virtual qint64 readLineData(char* data, qint64 maxlen);
   private: QFile(class QFile const &);
   private: class QFile& operator =(class QFile const &);
   friend struct QFilePrivate;
};
inline class QFlags < enum QFile::Permission > operator |(enum QFile::Permission f1, class QFlags < enum QFile::Permission > f2);
inline class QFlags < enum QFile::Permission > operator |(enum QFile::Permission f1, enum QFile::Permission f2);
#endif // QFILE_H