KFilterDev Class Reference
from PyKDE4.kdecore import *
Inherits: QIODevice → QObject
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.
Methods | |
__init__ (self, KFilterBase filter, bool autoDeleteFilterBase=0) | |
bool | atEnd (self) |
close (self) | |
bool | open (self, QIODevice::OpenMode mode) |
long | readData (self, QString data, long maxlen) |
bool | seek (self, long a0) |
setOrigFileName (self, QByteArray fileName) | |
setSkipHeaders (self) | |
long | writeData (self, QString data, long len) |
Static Methods | |
QIODevice | device (QIODevice inDevice, QString mimetype, bool autoDeleteInDevice=1) |
QIODevice | deviceForFile (QString fileName, QString mimetype=QString(), bool forceFilter=0) |
Method Documentation
__init__ | ( | self, | ||
KFilterBase | filter, | |||
bool | autoDeleteFilterBase=0 | |||
) |
Constructs a KFilterDev for a given filter (e.g. gzip, bzip2 etc.).
- Parameters:
-
filter the KFilterBase to use autoDeleteFilterBase when true this object will become the owner of filter.
bool atEnd | ( | self ) |
close | ( | self ) |
Close after reading or writing. If the KFilterBase's device was opened by open(), it will be closed.
bool open | ( | self, | ||
QIODevice::OpenMode | mode | |||
) |
Open for reading or writing. If the KFilterBase's device is not opened, it will be opened.
long readData | ( | self, | ||
QString | data, | |||
long | maxlen | |||
) |
bool seek | ( | self, | ||
long | a0 | |||
) |
That one can be quite slow, when going back. Use with care.
setOrigFileName | ( | self, | ||
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
setSkipHeaders | ( | self ) |
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.
long writeData | ( | self, | ||
QString | data, | |||
long | len | |||
) |
Static Method Documentation
QIODevice device | ( | QIODevice | inDevice, | |
QString | mimetype, | |||
bool | autoDeleteInDevice=1 | |||
) |
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 = false mimetype the mime type for the filter autoDeleteInDevice if true, inDevice will be deleted automatically
- Returns:
- a KFilterDev that filters the original stream. Must be deleted after using
QIODevice deviceForFile | ( | QString | fileName, | |
QString | mimetype=QString(), | |||
bool | forceFilter=0 | |||
) |
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.