#ifndef QIODEVICE_H
#define QIODEVICE_H 
#ifndef QT_NO_QOBJECT
#include <QtCore/qobject.h>
#else
#endif
#include <QtCore/qstring.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QIODevicePrivate;
class QIODevice: public QObject{
#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
   public: enum OpenModeFlag{
      NotOpen = 0,
      ReadOnly = 1,
      WriteOnly = 2,
      ReadWrite = 3,
      Append = 4,
      Truncate = 8,
      Text = 16,
      Unbuffered = 32,
   };
   public: typedef class QFlags < enum QIODevice::OpenModeFlag > OpenMode;
   public: QIODevice();
#ifndef QT_NO_QOBJECT
   public: explicit QIODevice(class QObject* parent);
#endif
   public: virtual ~QIODevice();
   public: class QFlags < enum QIODevice::OpenModeFlag > openMode() const
   public: void setTextModeEnabled(bool enabled);
   public: bool isTextModeEnabled() const
   public: bool isOpen() const
   public: bool isReadable() const
   public: bool isWritable() const
   public: virtual bool isSequential() const
   public: virtual bool open(class QFlags < enum QIODevice::OpenModeFlag > mode);
   public: virtual void close();
   public: virtual qint64 pos() const
   public: virtual qint64 size() const
   public: virtual bool seek(qint64 pos);
   public: virtual bool atEnd() const
   public: virtual bool reset();
   public: virtual qint64 bytesAvailable() const
   public: virtual qint64 bytesToWrite() const
   public: qint64 read(char* data, qint64 maxlen);
   public: class QByteArray read(qint64 maxlen);
   public: class QByteArray readAll();
   public: qint64 readLine(char* data, qint64 maxlen);
   public: class QByteArray readLine(qint64 maxlen = 0);
   public: virtual bool canReadLine() const
   public: qint64 write(char const * data, qint64 len);
   public: inline qint64 write(class QByteArray const & data);
   public: qint64 peek(char* data, qint64 maxlen);
   public: class QByteArray peek(qint64 maxlen);
   public: virtual bool waitForReadyRead(int msecs);
   public: virtual bool waitForBytesWritten(int msecs);
   public: void ungetChar(char c);
   public: inline bool putChar(char c);
   public: inline bool getChar(char* c);
   public: class QString errorString() const
#ifndef QT_NO_QOBJECT
   protected: void readyRead();
   protected: void bytesWritten(qint64 bytes);
   protected: void aboutToClose();
#endif
#ifdef QT_NO_QOBJECT
#else
   protected: QIODevice(struct QIODevicePrivate& dd, class QObject* parent = 0);
#endif
   protected: virtual qint64 readData(char* data, qint64 maxlen) = 0;
   protected: virtual qint64 readLineData(char* data, qint64 maxlen);
   protected: virtual qint64 writeData(char const * data, qint64 len) = 0;
   protected: void setOpenMode(class QFlags < enum QIODevice::OpenModeFlag > openMode);
   protected: void setErrorString(class QString const & errorString);
   private: inline struct QIODevicePrivate* d_func();
   private: inline struct QIODevicePrivate const * d_func() const
   private: QIODevice(class QIODevice const &);
   private: class QIODevice& operator =(class QIODevice const &);
   friend struct QIODevicePrivate;
};
inline class QFlags < enum QIODevice::OpenModeFlag > operator |(enum QIODevice::OpenModeFlag f1, class QFlags < enum QIODevice::OpenModeFlag > f2);
inline class QFlags < enum QIODevice::OpenModeFlag > operator |(enum QIODevice::OpenModeFlag f1, enum QIODevice::OpenModeFlag f2);
#if !defined(QT_NO_DEBUG_STREAM)
struct QDebug operator <<(struct QDebug debug, class QFlags < enum QIODevice::OpenModeFlag > modes);
#endif
#endif // QIODEVICE_H