4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>CamelSeekableStream</title>
6
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
6
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
7
7
<link rel="home" href="index.html" title="Camel Reference Manual">
8
8
<link rel="up" href="Streams.html" title="Streams">
9
9
<link rel="prev" href="camel-CamelStream.html" title="CamelStream">
10
10
<link rel="next" href="camel-CamelSeekableSubstream.html" title="CamelSeekableSubstream">
11
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
11
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
<link rel="part" href="classes.html" title="Part I. Camel Classes">
14
<link rel="chapter" href="ClassTree.html" title="Class Hierarchy">
15
<link rel="chapter" href="Fundamentals.html" title="Fundamentals">
16
<link rel="chapter" href="Streams.html" title="Streams">
17
<link rel="chapter" href="StreamFilters.html" title="Stream Filters">
18
<link rel="chapter" href="Services.html" title="Services">
19
<link rel="chapter" href="Filters.html" title="Filters">
20
<link rel="chapter" href="Folders.html" title="Folders">
21
<link rel="chapter" href="SearchFolders.html" title="Search Folders">
22
<link rel="chapter" href="Addresses.html" title="Addresses">
23
<link rel="chapter" href="Crypto.html" title="Crypto Contexts">
24
<link rel="chapter" href="MIME.html" title="MIME Objects">
25
<link rel="chapter" href="Storage.html" title="Metadata Storage">
26
<link rel="chapter" href="Utilities.html" title="Utilities">
27
<link rel="chapter" href="Deprecated.html" title="Deprecated Objects">
28
<link rel="index" href="ix01.html" title="Index">
29
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
31
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
32
15
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
40
23
<tr><td colspan="5" class="shortcuts">
41
24
<a href="#camel-CamelSeekableStream.synopsis" class="shortcut">Top</a>
43
<a href="#camel-CamelSeekableStream.description" class="shortcut">Description</a>
26
<a href="#camel-CamelSeekableStream.description" class="shortcut">Description</a>
46
<div class="refentry" title="CamelSeekableStream">
29
<div class="refentry" lang="en">
47
30
<a name="camel-CamelSeekableStream"></a><div class="titlepage"></div>
48
31
<div class="refnamediv"><table width="100%"><tr>
53
36
<td valign="top" align="right"></td>
54
37
</tr></table></div>
55
<div class="refsynopsisdiv" title="Synopsis">
38
<div class="refsynopsisdiv">
56
39
<a name="camel-CamelSeekableStream.synopsis"></a><h2>Synopsis</h2>
57
<pre class="synopsis">
58
struct <a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a>;
40
<pre class="synopsis">struct <a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a>;
59
41
enum <a class="link" href="camel-CamelSeekableStream.html#CamelStreamSeekPolicy" title="enum CamelStreamSeekPolicy">CamelStreamSeekPolicy</a>;
60
#define <a class="link" href="camel-CamelSeekableStream.html#CAMEL-STREAM-UNBOUND--CAPS" title="CAMEL_STREAM_UNBOUND">CAMEL_STREAM_UNBOUND</a>
61
off_t <a class="link" href="camel-CamelSeekableStream.html#camel-seekable-stream-seek" title="camel_seekable_stream_seek ()">camel_seekable_stream_seek</a> (<a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a> *stream,
63
<a class="link" href="camel-CamelSeekableStream.html#CamelStreamSeekPolicy" title="enum CamelStreamSeekPolicy">CamelStreamSeekPolicy</a> policy);
64
off_t <a class="link" href="camel-CamelSeekableStream.html#camel-seekable-stream-tell" title="camel_seekable_stream_tell ()">camel_seekable_stream_tell</a> (<a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a> *stream);
66
href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
67
>gint</a> <a class="link" href="camel-CamelSeekableStream.html#camel-seekable-stream-set-bounds" title="camel_seekable_stream_set_bounds ()">camel_seekable_stream_set_bounds</a> (<a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a> *stream,
42
#define <a class="link" href="camel-CamelSeekableStream.html#CAMEL-STREAM-UNBOUND:CAPS" title="CAMEL_STREAM_UNBOUND">CAMEL_STREAM_UNBOUND</a>
43
<span class="returnvalue">off_t</span> <a class="link" href="camel-CamelSeekableStream.html#camel-seekable-stream-seek" title="camel_seekable_stream_seek ()">camel_seekable_stream_seek</a> (<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> *stream</code></em>,
44
<em class="parameter"><code><span class="type">off_t</span> offset</code></em>,
45
<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelStreamSeekPolicy" title="enum CamelStreamSeekPolicy"><span class="type">CamelStreamSeekPolicy</span></a> policy</code></em>);
46
<span class="returnvalue">off_t</span> <a class="link" href="camel-CamelSeekableStream.html#camel-seekable-stream-tell" title="camel_seekable_stream_tell ()">camel_seekable_stream_tell</a> (<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> *stream</code></em>);
47
<span class="returnvalue">gint</span> <a class="link" href="camel-CamelSeekableStream.html#camel-seekable-stream-set-bounds" title="camel_seekable_stream_set_bounds ()">camel_seekable_stream_set_bounds</a> (<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> *stream</code></em>,
48
<em class="parameter"><code><span class="type">off_t</span> start</code></em>,
49
<em class="parameter"><code><span class="type">off_t</span> end</code></em>);
72
<div class="refsect1" title="Description">
52
<div class="refsect1" lang="en">
73
53
<a name="camel-CamelSeekableStream.description"></a><h2>Description</h2>
77
<div class="refsect1" title="Details">
57
<div class="refsect1" lang="en">
78
58
<a name="camel-CamelSeekableStream.details"></a><h2>Details</h2>
79
<div class="refsect2" title="struct CamelSeekableStream">
59
<div class="refsect2" lang="en">
80
60
<a name="CamelSeekableStream"></a><h3>struct CamelSeekableStream</h3>
81
61
<pre class="programlisting">struct CamelSeekableStream {
82
62
CamelStream parent_object;
84
64
off_t position; /* current postion in the stream */
85
off_t bound_start; /* first valid position */
86
off_t bound_end; /* first invalid position */
65
off_t bound_start; /* first valid position */
66
off_t bound_end; /* first invalid position */
93
<div class="refsect2" title="enum CamelStreamSeekPolicy">
73
<div class="refsect2" lang="en">
94
74
<a name="CamelStreamSeekPolicy"></a><h3>enum CamelStreamSeekPolicy</h3>
95
75
<pre class="programlisting">typedef enum {
96
76
CAMEL_STREAM_SET = SEEK_SET,
105
<div class="refsect2" title="CAMEL_STREAM_UNBOUND">
106
<a name="CAMEL-STREAM-UNBOUND--CAPS"></a><h3>CAMEL_STREAM_UNBOUND</h3>
85
<div class="refsect2" lang="en">
86
<a name="CAMEL-STREAM-UNBOUND:CAPS"></a><h3>CAMEL_STREAM_UNBOUND</h3>
107
87
<pre class="programlisting">#define CAMEL_STREAM_UNBOUND (~0)
113
<div class="refsect2" title="camel_seekable_stream_seek ()">
93
<div class="refsect2" lang="en">
114
94
<a name="camel-seekable-stream-seek"></a><h3>camel_seekable_stream_seek ()</h3>
115
<pre class="programlisting">off_t camel_seekable_stream_seek (<a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a> *stream,
117
<a class="link" href="camel-CamelSeekableStream.html#CamelStreamSeekPolicy" title="enum CamelStreamSeekPolicy">CamelStreamSeekPolicy</a> policy);</pre>
95
<pre class="programlisting"><span class="returnvalue">off_t</span> camel_seekable_stream_seek (<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> *stream</code></em>,
96
<em class="parameter"><code><span class="type">off_t</span> offset</code></em>,
97
<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelStreamSeekPolicy" title="enum CamelStreamSeekPolicy"><span class="type">CamelStreamSeekPolicy</span></a> policy</code></em>);</pre>
119
99
Seek to the specified position in <em class="parameter"><code>stream</code></em>.
133
113
Regardless of <em class="parameter"><code>policy</code></em>, the stream's final position will be clamped
134
114
to the range specified by its lower and upper bounds, and the
135
115
stream's eos state will be updated.</p>
138
116
<div class="variablelist"><table border="0">
139
117
<col align="left" valign="top">
142
120
<td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
143
<td> a <a class="link" href="camel-CamelStream.html#CamelStream" title="struct CamelStream"><span class="type">CamelStream</span></a> object
121
<td>a <a class="link" href="camel-CamelStream.html#CamelStream" title="struct CamelStream"><span class="type">CamelStream</span></a> object
147
125
<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
152
130
<td><p><span class="term"><em class="parameter"><code>policy</code></em> :</span></p></td>
153
<td> what to do with the offset
131
<td>what to do with the offset
165
<div class="refsect2" title="camel_seekable_stream_tell ()">
143
<div class="refsect2" lang="en">
166
144
<a name="camel-seekable-stream-tell"></a><h3>camel_seekable_stream_tell ()</h3>
167
<pre class="programlisting">off_t camel_seekable_stream_tell (<a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a> *stream);</pre>
145
<pre class="programlisting"><span class="returnvalue">off_t</span> camel_seekable_stream_tell (<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> *stream</code></em>);</pre>
169
147
Get the current position of a seekable stream.</p>
172
148
<div class="variablelist"><table border="0">
173
149
<col align="left" valign="top">
176
152
<td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
177
<td> a <a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> object
153
<td>a <a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> object
189
<div class="refsect2" title="camel_seekable_stream_set_bounds ()">
165
<div class="refsect2" lang="en">
190
166
<a name="camel-seekable-stream-set-bounds"></a><h3>camel_seekable_stream_set_bounds ()</h3>
191
<pre class="programlisting"><a
192
href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
193
>gint</a> camel_seekable_stream_set_bounds (<a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream">CamelSeekableStream</a> *stream,
167
<pre class="programlisting"><span class="returnvalue">gint</span> camel_seekable_stream_set_bounds (<em class="parameter"><code><a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> *stream</code></em>,
168
<em class="parameter"><code><span class="type">off_t</span> start</code></em>,
169
<em class="parameter"><code><span class="type">off_t</span> end</code></em>);</pre>
197
171
Set the range of valid data this stream is allowed to cover. If
198
172
there is to be no <em class="parameter"><code>end</code></em> value, then <em class="parameter"><code>end</code></em> should be set to
199
<a class="link" href="camel-CamelSeekableStream.html#CAMEL-STREAM-UNBOUND--CAPS" title="CAMEL_STREAM_UNBOUND"><span class="type">CAMEL_STREAM_UNBOUND</span></a>.</p>
173
<a class="link" href="camel-CamelSeekableStream.html#CAMEL-STREAM-UNBOUND:CAPS" title="CAMEL_STREAM_UNBOUND"><span class="type">CAMEL_STREAM_UNBOUND</span></a>.</p>
202
174
<div class="variablelist"><table border="0">
203
175
<col align="left" valign="top">
206
178
<td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
207
<td> a <a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> object
179
<td>a <a class="link" href="camel-CamelSeekableStream.html#CamelSeekableStream" title="struct CamelSeekableStream"><span class="type">CamelSeekableStream</span></a> object
211
183
<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
212
<td> the first valid position
184
<td>the first valid position
216
188
<td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
217
<td> the first invalid position, or <a class="link" href="camel-CamelSeekableStream.html#CAMEL-STREAM-UNBOUND--CAPS" title="CAMEL_STREAM_UNBOUND"><span class="type">CAMEL_STREAM_UNBOUND</span></a>
189
<td>the first invalid position, or <a class="link" href="camel-CamelSeekableStream.html#CAMEL-STREAM-UNBOUND:CAPS" title="CAMEL_STREAM_UNBOUND"><span class="type">CAMEL_STREAM_UNBOUND</span></a>