QuaZIP quazip-0-6-2
quagzipfile.h
00001 #ifndef QUAZIP_QUAGZIPFILE_H
00002 #define QUAZIP_QUAGZIPFILE_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 3 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 QuaGzipFilePrivate;
00034 
00036 
00039 class QUAZIP_EXPORT QuaGzipFile: public QIODevice {
00040   Q_OBJECT
00041 public:
00043 
00046   QuaGzipFile();
00048 
00052   QuaGzipFile(QObject *parent);
00054 
00058   QuaGzipFile(const QString &fileName, QObject *parent = NULL);
00060   virtual ~QuaGzipFile();
00062   void setFileName(const QString& fileName);
00064   QString getFileName() const;
00066 
00073   virtual bool isSequential() const;
00075 
00079   virtual bool open(QIODevice::OpenMode mode);
00081 
00087   virtual bool open(int fd, QIODevice::OpenMode mode);
00089 
00093   virtual bool flush();
00095   virtual void close();
00096 protected:
00098   virtual qint64 readData(char *data, qint64 maxSize);
00100   virtual qint64 writeData(const char *data, qint64 maxSize);
00101 private:
00102     // not implemented by design to disable copy
00103     QuaGzipFile(const QuaGzipFile &that);
00104     QuaGzipFile& operator=(const QuaGzipFile &that);
00105     QuaGzipFilePrivate *d;
00106 };
00107 
00108 #endif // QUAZIP_QUAGZIPFILE_H