summaryrefslogtreecommitdiffstats
path: root/doc/html/qdatasource.html
blob: 33e2131e0afbf40b4f53a456cbb3ad6b6418c5c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/src/kernel/qasyncio.cpp:131 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQDataSource Class</title>
<style type="text/css"><!--
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
--></style>
</head>
<body>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
 <a href="index.html">
<font color="#004faf">Home</font></a>
 | <a href="classes.html">
<font color="#004faf">All&nbsp;Classes</font></a>
 | <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
 | <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
 | <a href="groups.html">
<font color="#004faf">Grouped&nbsp;Classes</font></a>
 | <a href="functions.html">
<font color="#004faf">Functions</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>TQDataSource Class Reference<br><small>[obsolete]</small></h1>

<p>The TQDataSource class is an asynchronous producer of data.
<a href="#details">More...</a>
<p><tt>#include &lt;<a href="qasyncio-h.html">qasyncio.h</a>&gt;</tt>
<p>Inherits <a href="qasyncio.html">TQAsyncIO</a>.
<p>Inherited by <a href="qiodevicesource.html">TQIODeviceSource</a>.
<p><a href="qdatasource-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn>virtual int <a href="#readyToSend"><b>readyToSend</b></a> () = 0</li>
<li class=fn>virtual void <a href="#sendTo"><b>sendTo</b></a> ( TQDataSink *, int&nbsp;count ) = 0</li>
<li class=fn>void <a href="#maybeReady"><b>maybeReady</b></a> ()</li>
<li class=fn>virtual bool <a href="#rewindable"><b>rewindable</b></a> () const</li>
<li class=fn>virtual void <a href="#enableRewind"><b>enableRewind</b></a> ( bool&nbsp;on )</li>
<li class=fn>virtual void <a href="#rewind"><b>rewind</b></a> ()</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>


<b>This class is obsolete.</b> It is provided to keep old source working. We strongly advise against using it in new code.
<p> The TQDataSource class is an asynchronous producer of data.
<p> A data source is an object which provides data from some source in an
asynchronous manner.  This means that at some time not determined by
the data source, blocks of data will be taken from it for processing.
The data source is able to limit the maximum size of such blocks which
it is currently able to provide.
<p> <p>See also <a href="qasyncio.html">TQAsyncIO</a>, <a href="qdatasink.html">TQDataSink</a>, and <a href="qdatapump.html">TQDataPump</a>.

<hr><h2>Member Function Documentation</h2>
<h3 class=fn>void <a name="enableRewind"></a>TQDataSource::enableRewind ( bool&nbsp;on )<tt> [virtual]</tt>
</h3>
If this function is called with <em>on</em> set to TRUE, and <a href="#rewindable">rewindable</a>()
is TRUE, then the data source must take measures to allow the <a href="#rewind">rewind</a>()
function to subsequently operate as described.  If rewindable() is FALSE,
the function should call <a href="#enableRewind">TQDataSource::enableRewind</a>(), which aborts with
a <a href="qapplication.html#qFatal">qFatal</a>() error.
<p> For example, a network connection may choose to use a disk cache
of input only if rewinding is enabled before the first buffer-full of
data is discarded, returning FALSE in rewindable() if that first buffer
is discarded.

<p>Reimplemented in <a href="qiodevicesource.html#enableRewind">TQIODeviceSource</a>.
<h3 class=fn>void <a name="maybeReady"></a>TQDataSource::maybeReady ()
</h3>
This should be called whenever <a href="#readyToSend">readyToSend</a>() might have become non-zero.
It is merely calls <a href="qasyncio.html#ready">TQAsyncIO::ready</a>() if readyToSend() is non-zero.

<h3 class=fn>int <a name="readyToSend"></a>TQDataSource::readyToSend ()<tt> [pure virtual]</tt>
</h3>

<p> The data source should return a value indicating how much data it is ready
to provide.  This may be 0.  If the data source knows it will never be
able to provide any more data (until after a <a href="#rewind">rewind</a>()), it may return -1.

<p>Reimplemented in <a href="qiodevicesource.html#readyToSend">TQIODeviceSource</a>.
<h3 class=fn>void <a name="rewind"></a>TQDataSource::rewind ()<tt> [virtual]</tt>
</h3>
This function rewinds the data source.  This may only be called if
<a href="#enableRewind">enableRewind</a>(TRUE) has been previously called.

<p>Reimplemented in <a href="qiodevicesource.html#rewind">TQIODeviceSource</a>.
<h3 class=fn>bool <a name="rewindable"></a>TQDataSource::rewindable () const<tt> [virtual]</tt>
</h3>
This function should return TRUE if the data source can be rewound.
<p> The default returns FALSE.

<p>Reimplemented in <a href="qiodevicesource.html#rewindable">TQIODeviceSource</a>.
<h3 class=fn>void <a name="sendTo"></a>TQDataSource::sendTo ( <a href="qdatasink.html">TQDataSink</a>&nbsp;*, int&nbsp;count )<tt> [pure virtual]</tt>
</h3>

<p> This function is called to extract data from the source, by sending
it to the given data sink.  The <em>count</em> will be no more than the amount
indicated by the most recent call to <a href="#readyToSend">readyToSend</a>().  The source must
use all the provided data, and the sink will be prepared to accept at
least this much data.

<p>Reimplemented in <a href="qiodevicesource.html#sendTo">TQIODeviceSource</a>.
<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">TQt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 2007
<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
<td align=right><div align=right>TQt 3.3.8</div>
</table></div></address></body>
</html>