<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>KFilterDev</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <link rel="stylesheet" type="text/css" href="../common/doxygen.css" /> <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="../common/kde.css" /> </head> <body> <div id="container"> <div id="header"> <div id="header_top"> <div> <div> <img alt ="" src="../common/top-kde.jpg"/> KDE 4.9 PyKDE API Reference </div> </div> </div> <div id="header_bottom"> <div id="location"> <ul> <li>KDE's Python API</li> </ul> </div> <div id="menu"> <ul> <li><a href="../modules.html">Overview</a></li> <li><a href="http://techbase.kde.org/Development/Languages/Python">PyKDE Home</a></li> <li><a href="http://kde.org/family/">Sitemap</a></li> <li><a href="http://kde.org/contact/">Contact Us</a></li> </ul> </div> </div> </div> <div id="body_wrapper"> <div id="body"> <div id="right"> <div class="content"> <div id="main"> <div class="clearer"> </div> <h1>KFilterDev Class Reference</h1> <code>from PyKDE4.kdecore import *</code> <p> Inherits: QIODevice → QObject<br /> <h2>Detailed Description</h2> <p>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). </p> <p> To simply read/write compressed files, see deviceForFile. </p> <p> <dl class="author" compact><dt><b>Author:</b></dt><dd> David Faure <faure@kde.org> </dd></dl> </p> <table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KFilterDev">__init__</a> (self, <a href="../kdecore/KFilterBase.html">KFilterBase</a> filter, bool autoDeleteFilterBase=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#atEnd">atEnd</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#close">close</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#open">open</a> (self, QIODevice::OpenMode mode)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#readData">readData</a> (self, QString data, long maxlen)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#seek">seek</a> (self, long a0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#setOrigFileName">setOrigFileName</a> (self, QByteArray fileName)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#setSkipHeaders">setSkipHeaders</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#writeData">writeData</a> (self, QString data, long len)</td></tr> <tr><td colspan="2"><br><h2>Static Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QIODevice </td><td class="memItemRight" valign="bottom"><a class="el" href="#device">device</a> (QIODevice inDevice, QString mimetype, bool autoDeleteInDevice=1)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QIODevice </td><td class="memItemRight" valign="bottom"><a class="el" href="#deviceForFile">deviceForFile</a> (QString fileName, QString mimetype=QString(), bool forceFilter=0)</td></tr> </table> <hr><h2>Method Documentation</h2><a class="anchor" name="KFilterDev"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../kdecore/KFilterBase.html">KFilterBase</a> </td> <td class="paramname"><em>filter</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>autoDeleteFilterBase=0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Constructs a KFilterDev for a given filter (e.g. gzip, bzip2 etc.). </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>filter</em> </td><td> the KFilterBase to use <tr><td></td><td valign="top"><em>autoDeleteFilterBase</em> </td><td> when true this object will become the owner of <b>filter.</b> </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="atEnd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool atEnd</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"></div></div><a class="anchor" name="close"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> close</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Close after reading or writing. If the KFilterBase's device was opened by open(), it will be closed. </p></div></div><a class="anchor" name="open"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool open</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QIODevice::OpenMode </td> <td class="paramname"><em>mode</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Open for reading or writing. If the KFilterBase's device is not opened, it will be opened. </p></div></div><a class="anchor" name="readData"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">long readData</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>maxlen</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"></div></div><a class="anchor" name="seek"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool seek</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>a0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>That one can be quite slow, when going back. Use with care. </p></div></div><a class="anchor" name="setOrigFileName"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> setOrigFileName</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QByteArray </td> <td class="paramname"><em>fileName</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>For writing gzip compressed files only: set the name of the original file, to be used in the gzip header. </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>fileName</em> </td><td> the name of the original file </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="setSkipHeaders"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> setSkipHeaders</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>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. </p></div></div><a class="anchor" name="writeData"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">long writeData</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>len</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"></div></div><hr><h2>Static Method Documentation</h2><a class="anchor" name="device"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QIODevice device</td> <td>(</td> <td class="paramtype">QIODevice </td> <td class="paramname"><em>inDevice</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>mimetype</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>autoDeleteInDevice=1</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Creates an i/o device that is able to read from the QIODevice <b>inDevice,</b> whether the data is compressed or not. Available compression filters (gzip/bzip2 etc.) will automatically be used. </p> <p> The compression filter to be used is determined <b>mimetype</b> . Pass "application/x-gzip" or "application/x-bzip" to use the corresponding decompression filter. </p> <p> Warning: application/x-bzip may not be available. In that case 0 will be returned ! </p> <p> The returned QIODevice has to be deleted after using. </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>inDevice</em> </td><td> input device. Won't be deleted if <b>autoDeleteInDevice</b> = false <tr><td></td><td valign="top"><em>mimetype</em> </td><td> the mime type for the filter <tr><td></td><td valign="top"><em>autoDeleteInDevice</em> </td><td> if true, <b>inDevice</b> will be deleted automatically </td></tr> </table></dl> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> a KFilterDev that filters the original stream. Must be deleted after using </dd></dl> </p></div></div><a class="anchor" name="deviceForFile"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QIODevice deviceForFile</td> <td>(</td> <td class="paramtype">QString </td> <td class="paramname"><em>fileName</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>mimetype=QString()</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>forceFilter=0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Creates an i/o device that is able to read from <b>fileName,</b> whether it's compressed or not. Available compression filters (gzip/bzip2 etc.) will automatically be used. </p> <p> The compression filter to be used is determined from the <b>fileName</b> if <b>mimetype</b> is empty. Pass "application/x-gzip" or "application/x-bzip" to force the corresponding decompression filter, if available. </p> <p> 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. </p> <p> The returned QIODevice has to be deleted after using. </p> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>fileName</em> </td><td> the name of the file to filter <tr><td></td><td valign="top"><em>mimetype</em> </td><td> the mime type of the file to filter, or QString() if unknown <tr><td></td><td valign="top"><em>forceFilter</em> </td><td> 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. </td></tr> </table></dl> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> if a filter has been found, the QIODevice for the filter. If the filter does not exist, the return value depends on <b>forceFilter.</b> The returned QIODevice has to be deleted after using. </dd></dl> </p></div></div> </div> </div> </div> <div id="left"> <div class="menu_box"> <div class="nav_list"> <ul> <li><a href="../allclasses.html">Full Index</a></li> </ul> </div> <a name="cp-menu" /><div class="menutitle"><div> <h2 id="cp-menu-project">Modules</h2> </div></div> <div class="nav_list"> <ul><li><a href="../akonadi/index.html">akonadi</a></li> <li><a href="../dnssd/index.html">dnssd</a></li> <li><a href="../kdecore/index.html">kdecore</a></li> <li><a href="../kdeui/index.html">kdeui</a></li> <li><a href="../khtml/index.html">khtml</a></li> <li><a href="../kio/index.html">kio</a></li> <li><a href="../knewstuff/index.html">knewstuff</a></li> <li><a href="../kparts/index.html">kparts</a></li> <li><a href="../kutils/index.html">kutils</a></li> <li><a href="../nepomuk/index.html">nepomuk</a></li> <li><a href="../phonon/index.html">phonon</a></li> <li><a href="../plasma/index.html">plasma</a></li> <li><a href="../polkitqt/index.html">polkitqt</a></li> <li><a href="../solid/index.html">solid</a></li> <li><a href="../soprano/index.html">soprano</a></li> </ul></div></div> </div> </div> <div class="clearer"/> </div> <div id="end_body"></div> </div> <div id="footer"><div id="footer_text"> This documentation is maintained by <a href="mailto:simon@simonzone.com">Simon Edwards</a>.<br /> KDE<sup>®</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>®</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> | <a href="http://www.kde.org/contact/impressum.php">Legal</a> </div></div> </body> </html>