KDECore
KFilterDev Class Reference
A class for reading and writing compressed data onto a device (e.g. More...
#include <kfilterdev.h>

Public Member Functions | |
virtual bool | atEnd () const |
virtual void | close () |
virtual bool | open (QIODevice::OpenMode mode) |
virtual bool | seek (qint64) |
void | setOrigFileName (const QByteArray &fileName) |
void | setSkipHeaders () |
virtual | ~KFilterDev () |
Static Public Member Functions | |
static QIODevice * | device (QIODevice *inDevice, const QString &mimetype, bool autoDeleteInDevice=true) |
static QIODevice * | deviceForFile (const QString &fileName, const QString &mimetype=QString(), bool forceFilter=false) |
Protected Member Functions | |
virtual qint64 | readData (char *data, qint64 maxlen) |
virtual qint64 | writeData (const char *data, qint64 len) |
Detailed Description
A class for reading and writing compressed data onto a device (e.g.file, but other usages are possible, like a buffer or a socket).
To simply read/write compressed files, see deviceForFile.
Definition at line 36 of file kfilterdev.h.
Constructor & Destructor Documentation
KFilterDev::~KFilterDev | ( | ) | [virtual] |
Destructs the KFilterDev.
Calls close() if the filter device is still open.
Definition at line 54 of file kfilterdev.cpp.
Member Function Documentation
bool KFilterDev::atEnd | ( | ) | const [virtual] |
Definition at line 178 of file kfilterdev.cpp.
void KFilterDev::close | ( | ) | [virtual] |
Close after reading or writing.
If the KFilterBase's device was opened by open(), it will be closed.
Reimplemented from QIODevice.
Definition at line 123 of file kfilterdev.cpp.
QIODevice * KFilterDev::device | ( | QIODevice * | inDevice, | |
const QString & | mimetype, | |||
bool | autoDeleteInDevice = true | |||
) | [static] |
Creates an i/o device that is able to read from the QIODevice inDevice
, whether the data is compressed or not.
Available compression filters (gzip/bzip2 etc.) will automatically be used.
The compression filter to be used is determined mimetype
. Pass "application/x-gzip" or "application/x-bzip" to use the corresponding decompression filter.
Warning: application/x-bzip may not be available. In that case 0 will be returned !
The returned QIODevice has to be deleted after using.
- Parameters:
-
inDevice input device. Won't be deleted if autoDeleteInDevice
= falsemimetype the mime type for the filter autoDeleteInDevice if true, inDevice
will be deleted automatically
- Returns:
- a QIODevice that filters the original stream. Must be deleted after using
Definition at line 84 of file kfilterdev.cpp.
QIODevice * KFilterDev::deviceForFile | ( | const QString & | fileName, | |
const QString & | mimetype = QString() , |
|||
bool | forceFilter = false | |||
) | [static] |
Reimplemented to return true.
KFilterDev is a sequential QIODevice. Well, not really, since it supports seeking and KZip uses that. Creates an i/o device that is able to read from fileName
, whether it's compressed or not. Available compression filters (gzip/bzip2 etc.) will automatically be used.
The compression filter to be used is determined from the fileName
if mimetype
is empty. Pass "application/x-gzip" or "application/x-bzip" to force the corresponding decompression filter, if available.
Warning: application/x-bzip may not be available. In that case a QFile opened on the compressed data will be returned ! Use KFilterBase::findFilterByMimeType and code similar to what deviceForFile is doing, to better control what's happening.
The returned QIODevice has to be deleted after using.
- Parameters:
-
fileName the name of the file to filter mimetype the mime type of the file to filter, or QString() if unknown forceFilter if true, the function will either find a compression filter, or return 0. If false, it will always return a QIODevice. If no filter is available it will return a simple QFile. This can be useful if the file is usable without a filter.
- Returns:
- if a filter has been found, the QIODevice for the filter. If the filter does not exist, the return value depends on
forceFilter
. The returned QIODevice has to be deleted after using.
Definition at line 64 of file kfilterdev.cpp.
bool KFilterDev::open | ( | QIODevice::OpenMode | mode | ) | [virtual] |
Open for reading or writing.
If the KFilterBase's device is not opened, it will be opened.
Definition at line 97 of file kfilterdev.cpp.
qint64 KFilterDev::readData | ( | char * | data, | |
qint64 | maxlen | |||
) | [protected, virtual] |
bool KFilterDev::seek | ( | qint64 | pos | ) | [virtual] |
That one can be quite slow, when going back.
Use with care.
Reimplemented from QIODevice.
Definition at line 138 of file kfilterdev.cpp.
void KFilterDev::setOrigFileName | ( | const QByteArray & | fileName | ) |
For writing gzip compressed files only: set the name of the original file, to be used in the gzip header.
- Parameters:
-
fileName the name of the original file
Definition at line 364 of file kfilterdev.cpp.
void KFilterDev::setSkipHeaders | ( | ) |
Call this let this device skip the gzip headers when reading/writing.
This way KFilterDev (with gzip filter) can be used as a direct wrapper around zlib - this is used by KZip.
Definition at line 369 of file kfilterdev.cpp.
qint64 KFilterDev::writeData | ( | const char * | data, | |
qint64 | len | |||
) | [protected, virtual] |
The documentation for this class was generated from the following files: