/* SleepLib BinaryFile Header Author: Mark Watkins License: GPL */ #ifndef BINARY_FILE_H #define BINARY_FILE_H //#include //#include #include #include #include enum BFOpenMode { BF_READ, BF_WRITE }; const long max_buffer_size=1048576*2; bool IsPlatformLittleEndian(); class UnpackError { }; class PackBuffer { public: PackBuffer(); ~PackBuffer(); bool Open(QString filename,BFOpenMode mode); void Close(); }; class BinaryFile { public: BinaryFile(); ~BinaryFile(); bool Open(QString filename,BFOpenMode mode); void Close(); bool Unpack(bool & data); bool Unpack(qint8 & data); bool Unpack(qint16 & data); bool Unpack(qint32 & data); bool Unpack(qint64 & data); bool Unpack(quint8 & data); bool Unpack(quint16 & data); bool Unpack(quint32 & data); bool Unpack(quint64 & data); bool Unpack(float & data); bool Unpack(double & data); bool Unpack(QString & data); bool Unpack(QDateTime & data); bool Pack(const bool &data); bool Pack(const qint8 &data); bool Pack(const qint16 & data); bool Pack(const qint32 & data); bool Pack(const qint64 & data); bool Pack(const quint8 & data); bool Pack(const quint16 & data); bool Pack(const quint32 & data); bool Pack(const quint64 & data); bool Pack(const float & data); bool Pack(const double & data); bool Pack(const QString & data); bool Pack(const QDateTime & data); size_t Write(const char * buffer, size_t count); protected: BFOpenMode bf_mode; QFile f; char * buffer; int buff_read; long pos; QString bf_filename; long size; }; #endif //BINARY_FILE_H