QuaZIP quazip-0-7-2
|
00001 #ifndef QUAZIP_QUAZIODEVICE_H 00002 #define QUAZIP_QUAZIODEVICE_H 00003 00004 /* 00005 Copyright (C) 2005-2014 Sergey A. Tachenov 00006 00007 This file is part of QuaZIP. 00008 00009 QuaZIP is free software: you can redistribute it and/or modify 00010 it under the terms of the GNU Lesser General Public License as published by 00011 the Free Software Foundation, either version 2.1 of the License, or 00012 (at your option) any later version. 00013 00014 QuaZIP is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License 00020 along with QuaZIP. If not, see <http://www.gnu.org/licenses/>. 00021 00022 See COPYING file for the full LGPL text. 00023 00024 Original ZIP package is copyrighted by Gilles Vollant and contributors, 00025 see quazip/(un)zip.h files for details. Basically it's the zlib license. 00026 */ 00027 00028 #include <QIODevice> 00029 #include "quazip_global.h" 00030 00031 #include <zlib.h> 00032 00033 class QuaZIODevicePrivate; 00034 00036 00041 class QUAZIP_EXPORT QuaZIODevice: public QIODevice { 00042 Q_OBJECT 00043 public: 00045 00049 QuaZIODevice(QIODevice *io, QObject *parent = NULL); 00051 ~QuaZIODevice(); 00053 00073 virtual bool flush(); 00075 00079 virtual bool open(QIODevice::OpenMode mode); 00081 00085 virtual void close(); 00087 QIODevice *getIoDevice() const; 00089 virtual bool isSequential() const; 00091 virtual bool atEnd() const; 00093 virtual qint64 bytesAvailable() const; 00094 protected: 00096 virtual qint64 readData(char *data, qint64 maxSize); 00098 virtual qint64 writeData(const char *data, qint64 maxSize); 00099 private: 00100 QuaZIODevicePrivate *d; 00101 }; 00102 #endif // QUAZIP_QUAZIODEVICE_H