KDE 4.4 PyKDE API Reference

- KDE's Python API

# 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.

Author:
  David Faure <faure@kde.org>

## Methods
| __init__ (self, KFilterBase filter, bool autoDeleteFilterBase=0)
bool | atEnd (self)
| close (self)
QIODevice | device (self, QIODevice inDevice, QString mimetype, bool autoDeleteInDevice=1)
QIODevice | deviceForFile (self, QString fileName, QString mimetype=QString(), bool forceFilter=0)
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)

## 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.

QIODevice device | ( | self, |
|  | 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 | ( | self, |
|  | 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.

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
| ) |  |  |