1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
2 |
<html xmlns="http://www.w3.org/1999/xhtml"> |
3 |
<head> |
4 |
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
5 |
<title>QuaZIP: QuaZIODevice Class Reference</title> |
6 |
<link href="tabs.css" rel="stylesheet" type="text/css"/> |
7 |
<link href="doxygen.css" rel="stylesheet" type="text/css"/> |
8 |
</head> |
9 |
<body> |
10 |
<!-- Generated by Doxygen 1.7.4 --> |
11 |
<div id="top"> |
12 |
<div id="titlearea"> |
13 |
<table cellspacing="0" cellpadding="0"> |
14 |
<tbody> |
15 |
<tr style="height: 56px;"> |
16 |
<td style="padding-left: 0.5em;"> |
17 |
<div id="projectname">QuaZIP <span id="projectnumber">quazip-0-7-2</span></div> |
18 |
</td> |
19 |
</tr> |
20 |
</tbody> |
21 |
</table> |
22 |
</div> |
23 |
<div id="navrow1" class="tabs"> |
24 |
<ul class="tablist"> |
25 |
<li><a href="index.html"><span>Main Page</span></a></li> |
26 |
<li><a href="pages.html"><span>Related Pages</span></a></li> |
27 |
<li class="current"><a href="annotated.html"><span>Classes</span></a></li> |
28 |
<li><a href="files.html"><span>Files</span></a></li> |
29 |
<li><a href="dirs.html"><span>Directories</span></a></li> |
30 |
</ul> |
31 |
</div> |
32 |
<div id="navrow2" class="tabs2"> |
33 |
<ul class="tablist"> |
34 |
<li><a href="annotated.html"><span>Class List</span></a></li> |
35 |
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li> |
36 |
<li><a href="functions.html"><span>Class Members</span></a></li> |
37 |
</ul> |
38 |
</div> |
39 |
</div> |
40 |
<div class="header"> |
41 |
<div class="summary"> |
42 |
<a href="#pub-methods">Public Member Functions</a> | |
43 |
<a href="#pro-methods">Protected Member Functions</a> </div> |
44 |
<div class="headertitle"> |
45 |
<div class="title">QuaZIODevice Class Reference</div> </div> |
46 |
</div> |
47 |
<div class="contents"> |
48 |
<!-- doxytag: class="QuaZIODevice" --><!-- doxytag: inherits="QIODevice" --> |
49 |
<p>A class to compress/decompress <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a>. |
50 |
<a href="classQuaZIODevice.html#details">More...</a></p> |
51 |
|
52 |
<p><code>#include <<a class="el" href="quaziodevice_8h_source.html">quaziodevice.h</a>></code></p> |
53 |
<div class="dynheader"> |
54 |
Inheritance diagram for QuaZIODevice:</div> |
55 |
<div class="dyncontent"> |
56 |
<div class="center"><img src="classQuaZIODevice__inherit__graph.png" border="0" usemap="#QuaZIODevice_inherit__map" alt="Inheritance graph"/></div> |
57 |
<map name="QuaZIODevice_inherit__map" id="QuaZIODevice_inherit__map"> |
58 |
<area shape="rect" id="node2" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html" title="QIODevice" alt="" coords="16,80,99,107"/> |
59 |
<area shape="rect" id="node4" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html" title="QObject" alt="" coords="22,5,92,32"/> |
60 |
</map> |
61 |
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> |
62 |
<div class="dynheader"> |
63 |
Collaboration diagram for QuaZIODevice:</div> |
64 |
<div class="dyncontent"> |
65 |
<div class="center"><img src="classQuaZIODevice__coll__graph.png" border="0" usemap="#QuaZIODevice_coll__map" alt="Collaboration graph"/></div> |
66 |
<map name="QuaZIODevice_coll__map" id="QuaZIODevice_coll__map"> |
67 |
<area shape="rect" id="node2" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html" title="QIODevice" alt="" coords="16,80,99,107"/> |
68 |
<area shape="rect" id="node4" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html" title="QObject" alt="" coords="22,5,92,32"/> |
69 |
</map> |
70 |
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> |
71 |
|
72 |
<p><a href="classQuaZIODevice-members.html">List of all members.</a></p> |
73 |
<table class="memberdecls"> |
74 |
<tr><td colspan="2"><h2><a name="pub-methods"></a> |
75 |
Public Member Functions</h2></td></tr> |
76 |
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#a8321ed35ee9b57cf9b1104912e236361">QuaZIODevice</a> (<a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> *io, <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html">QObject</a> *<a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html#parent">parent</a>=NULL)</td></tr> |
77 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a8321ed35ee9b57cf9b1104912e236361"></a><br/></td></tr> |
78 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3524cef44c240c21e6b7680ee5f42de"></a><!-- doxytag: member="QuaZIODevice::~QuaZIODevice" ref="ab3524cef44c240c21e6b7680ee5f42de" args="()" --> |
79 |
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#ab3524cef44c240c21e6b7680ee5f42de">~QuaZIODevice</a> ()</td></tr> |
80 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br/></td></tr> |
81 |
<tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#a25f586eb564841b51c395fd17f1cc080">flush</a> ()</td></tr> |
82 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flushes data waiting to be written. <a href="#a25f586eb564841b51c395fd17f1cc080"></a><br/></td></tr> |
83 |
<tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#a175446c18eb20c9aff6faf23f09cc67a">open</a> (<a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::OpenMode</a> mode)</td></tr> |
84 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opens the device. <a href="#a175446c18eb20c9aff6faf23f09cc67a"></a><br/></td></tr> |
85 |
<tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#ad27e447544d57f897316ee6f44535895">close</a> ()</td></tr> |
86 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes this device, but not the underlying one. <a href="#ad27e447544d57f897316ee6f44535895"></a><br/></td></tr> |
87 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad63e7f1717c7d91b3c2c5ace908c98b7"></a><!-- doxytag: member="QuaZIODevice::getIoDevice" ref="ad63e7f1717c7d91b3c2c5ace908c98b7" args="() const " --> |
88 |
<a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#ad63e7f1717c7d91b3c2c5ace908c98b7">getIoDevice</a> () const </td></tr> |
89 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the underlying device. <br/></td></tr> |
90 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2697f58c228741d3715801bf48a9a8b"></a><!-- doxytag: member="QuaZIODevice::isSequential" ref="af2697f58c228741d3715801bf48a9a8b" args="() const " --> |
91 |
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#af2697f58c228741d3715801bf48a9a8b">isSequential</a> () const </td></tr> |
92 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true. <br/></td></tr> |
93 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae727c48089ca1b161323ec8423a653ab"></a><!-- doxytag: member="QuaZIODevice::atEnd" ref="ae727c48089ca1b161323ec8423a653ab" args="() const " --> |
94 |
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#ae727c48089ca1b161323ec8423a653ab">atEnd</a> () const </td></tr> |
95 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true iff the end of the compressed stream is reached. <br/></td></tr> |
96 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac18b45c3d7009c8d231b13fe994ebcb9"></a><!-- doxytag: member="QuaZIODevice::bytesAvailable" ref="ac18b45c3d7009c8d231b13fe994ebcb9" args="() const " --> |
97 |
virtual qint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#ac18b45c3d7009c8d231b13fe994ebcb9">bytesAvailable</a> () const </td></tr> |
98 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of the bytes buffered. <br/></td></tr> |
99 |
<tr><td colspan="2"><h2><a name="pro-methods"></a> |
100 |
Protected Member Functions</h2></td></tr> |
101 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa12b8bc9c923e543eda9ae22dbd1ecbb"></a><!-- doxytag: member="QuaZIODevice::readData" ref="aa12b8bc9c923e543eda9ae22dbd1ecbb" args="(char *data, qint64 maxSize)" --> |
102 |
virtual qint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#aa12b8bc9c923e543eda9ae22dbd1ecbb">readData</a> (char *data, qint64 maxSize)</td></tr> |
103 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation of <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#readData">QIODevice::readData()</a>. <br/></td></tr> |
104 |
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab23b6badbc3548eb71ca86bf6211902"></a><!-- doxytag: member="QuaZIODevice::writeData" ref="aab23b6badbc3548eb71ca86bf6211902" args="(const char *data, qint64 maxSize)" --> |
105 |
virtual qint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classQuaZIODevice.html#aab23b6badbc3548eb71ca86bf6211902">writeData</a> (const char *data, qint64 maxSize)</td></tr> |
106 |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation of <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#writeData">QIODevice::writeData()</a>. <br/></td></tr> |
107 |
</table> |
108 |
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2> |
109 |
<div class="textblock"><p>A class to compress/decompress <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a>. </p> |
110 |
<p>This class can be used to compress any data written to <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> or decompress it back. Compressing data sent over a QTcpSocket is a good example. </p> |
111 |
</div><hr/><h2>Constructor & Destructor Documentation</h2> |
112 |
<a class="anchor" id="a8321ed35ee9b57cf9b1104912e236361"></a><!-- doxytag: member="QuaZIODevice::QuaZIODevice" ref="a8321ed35ee9b57cf9b1104912e236361" args="(QIODevice *io, QObject *parent=NULL)" --> |
113 |
<div class="memitem"> |
114 |
<div class="memproto"> |
115 |
<table class="memname"> |
116 |
<tr> |
117 |
<td class="memname">QuaZIODevice::QuaZIODevice </td> |
118 |
<td>(</td> |
119 |
<td class="paramtype"><a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> * </td> |
120 |
<td class="paramname"><em>io</em>, </td> |
121 |
</tr> |
122 |
<tr> |
123 |
<td class="paramkey"></td> |
124 |
<td></td> |
125 |
<td class="paramtype"><a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html">QObject</a> * </td> |
126 |
<td class="paramname"><em>parent</em> = <code>NULL</code> </td> |
127 |
</tr> |
128 |
<tr> |
129 |
<td></td> |
130 |
<td>)</td> |
131 |
<td></td><td></td> |
132 |
</tr> |
133 |
</table> |
134 |
</div> |
135 |
<div class="memdoc"> |
136 |
|
137 |
<p>Constructor. </p> |
138 |
<dl><dt><b>Parameters:</b></dt><dd> |
139 |
<table class="params"> |
140 |
<tr><td class="paramname">io</td><td>The <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> to read/write. </td></tr> |
141 |
<tr><td class="paramname">parent</td><td>The parent object, as per <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html">QObject</a> logic. </td></tr> |
142 |
</table> |
143 |
</dd> |
144 |
</dl> |
145 |
|
146 |
<p>References <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject.html#connect">QObject::connect()</a>, and <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#readyRead">QIODevice::readyRead()</a>.</p> |
147 |
|
148 |
</div> |
149 |
</div> |
150 |
<hr/><h2>Member Function Documentation</h2> |
151 |
<a class="anchor" id="a25f586eb564841b51c395fd17f1cc080"></a><!-- doxytag: member="QuaZIODevice::flush" ref="a25f586eb564841b51c395fd17f1cc080" args="()" --> |
152 |
<div class="memitem"> |
153 |
<div class="memproto"> |
154 |
<table class="memname"> |
155 |
<tr> |
156 |
<td class="memname">bool QuaZIODevice::flush </td> |
157 |
<td>(</td> |
158 |
<td class="paramname"></td><td>)</td> |
159 |
<td><code> [virtual]</code></td> |
160 |
</tr> |
161 |
</table> |
162 |
</div> |
163 |
<div class="memdoc"> |
164 |
|
165 |
<p>Flushes data waiting to be written. </p> |
166 |
<p>Unfortunately, as <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> doesn't support <a class="el" href="classQuaZIODevice.html#a25f586eb564841b51c395fd17f1cc080" title="Flushes data waiting to be written.">flush()</a> by itself, the only thing this method does is write the compressed data into the device using Z_SYNC_FLUSH mode. If you need the compressed data to actually be flushed from the buffer of the underlying <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a>, you need to call its <a class="el" href="classQuaZIODevice.html#a25f586eb564841b51c395fd17f1cc080" title="Flushes data waiting to be written.">flush()</a> method as well, providing it supports it (like QTcpSocket does). Example: </p> |
167 |
<div class="fragment"><pre class="fragment"> <a class="code" href="classQuaZIODevice.html" title="A class to compress/decompress QIODevice.">QuaZIODevice</a> dev(&sock); |
168 |
dev.open(QIODevice::Write); |
169 |
dev.write(yourDataGoesHere); |
170 |
dev.flush(); |
171 |
sock->flush(); <span class="comment">// this actually sends data to network</span> |
172 |
</pre></div><p>This may change in the future versions of QuaZIP by implementing an ugly hack: trying to cast the <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> using qobject_cast to known <a class="el" href="classQuaZIODevice.html#a25f586eb564841b51c395fd17f1cc080" title="Flushes data waiting to be written.">flush()</a>-supporting subclasses, and calling flush if the resulting pointer is not zero. </p> |
173 |
|
174 |
<p>References <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qstring.html#fromLocal8Bit">QString::fromLocal8Bit()</a>, and <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#setErrorString">QIODevice::setErrorString()</a>.</p> |
175 |
|
176 |
<p>Referenced by <a class="el" href="classQuaZIODevice.html#ad27e447544d57f897316ee6f44535895">close()</a>.</p> |
177 |
|
178 |
</div> |
179 |
</div> |
180 |
<a class="anchor" id="a175446c18eb20c9aff6faf23f09cc67a"></a><!-- doxytag: member="QuaZIODevice::open" ref="a175446c18eb20c9aff6faf23f09cc67a" args="(QIODevice::OpenMode mode)" --> |
181 |
<div class="memitem"> |
182 |
<div class="memproto"> |
183 |
<table class="memname"> |
184 |
<tr> |
185 |
<td class="memname">bool QuaZIODevice::open </td> |
186 |
<td>(</td> |
187 |
<td class="paramtype"><a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::OpenMode</a> </td> |
188 |
<td class="paramname"><em>mode</em></td><td>)</td> |
189 |
<td><code> [virtual]</code></td> |
190 |
</tr> |
191 |
</table> |
192 |
</div> |
193 |
<div class="memdoc"> |
194 |
|
195 |
<p>Opens the device. </p> |
196 |
<dl><dt><b>Parameters:</b></dt><dd> |
197 |
<table class="params"> |
198 |
<tr><td class="paramname">mode</td><td>Neither QIODevice::ReadWrite nor QIODevice::Append are not supported. </td></tr> |
199 |
</table> |
200 |
</dd> |
201 |
</dl> |
202 |
|
203 |
<p>References <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#setErrorString">QIODevice::setErrorString()</a>, and <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qobject-obsolete.html#trUtf8">QObject::trUtf8()</a>.</p> |
204 |
|
205 |
</div> |
206 |
</div> |
207 |
<a class="anchor" id="ad27e447544d57f897316ee6f44535895"></a><!-- doxytag: member="QuaZIODevice::close" ref="ad27e447544d57f897316ee6f44535895" args="()" --> |
208 |
<div class="memitem"> |
209 |
<div class="memproto"> |
210 |
<table class="memname"> |
211 |
<tr> |
212 |
<td class="memname">void QuaZIODevice::close </td> |
213 |
<td>(</td> |
214 |
<td class="paramname"></td><td>)</td> |
215 |
<td><code> [virtual]</code></td> |
216 |
</tr> |
217 |
</table> |
218 |
</div> |
219 |
<div class="memdoc"> |
220 |
|
221 |
<p>Closes this device, but not the underlying one. </p> |
222 |
<p>The underlying <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> is not closed in case you want to write something else to it. </p> |
223 |
|
224 |
<p>Reimplemented from <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#close">QIODevice</a>.</p> |
225 |
|
226 |
<p>References <a class="el" href="classQuaZIODevice.html#a25f586eb564841b51c395fd17f1cc080">flush()</a>, <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#openMode">QIODevice::openMode()</a>, and <a class="elRef" doxygen="qtcore.tags:http://doc.qt.io/qt-5//" href="http://doc.qt.io/qt-5/qiodevice.html#setErrorString">QIODevice::setErrorString()</a>.</p> |
227 |
|
228 |
<p>Referenced by <a class="el" href="classQuaZIODevice.html#ab3524cef44c240c21e6b7680ee5f42de">~QuaZIODevice()</a>.</p> |
229 |
|
230 |
</div> |
231 |
</div> |
232 |
<hr/>The documentation for this class was generated from the following files:<ul> |
233 |
<li>quazip/<a class="el" href="quaziodevice_8h_source.html">quaziodevice.h</a></li> |
234 |
<li>quazip/quaziodevice.cpp</li> |
235 |
</ul> |
236 |
</div> |
237 |
<hr class="footer"/><address class="footer"><small>Generated on Sun Apr 3 2016 08:26:25 for QuaZIP by  |
238 |
<a href="http://www.doxygen.org/index.html"> |
239 |
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> |
240 |
</body> |
241 |
</html> |