Initialize the gmime for upstream
[platform/upstream/gmime.git] / docs / reference / html / GMimeStreamBuffer.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GMimeStreamBuffer</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GMime 2.6 Reference Manual">
8 <link rel="up" href="Streams.html" title="Streams">
9 <link rel="prev" href="GMimeStreamFilter.html" title="GMimeStreamFilter">
10 <link rel="next" href="GMimeStreamPipe.html" title="GMimeStreamPipe">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="GMimeStreamFilter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="Streams.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GMime 2.6 Reference Manual</th>
21 <td><a accesskey="n" href="GMimeStreamPipe.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GMimeStreamBuffer.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GMimeStreamBuffer.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GMimeStreamBuffer.object-hierarchy" class="shortcut">Object Hierarchy</a>
29 </td></tr>
30 </table>
31 <div class="refentry">
32 <a name="GMimeStreamBuffer"></a><div class="titlepage"></div>
33 <div class="refnamediv"><table width="100%"><tr>
34 <td valign="top">
35 <h2><span class="refentrytitle"><a name="GMimeStreamBuffer.top_of_page"></a>GMimeStreamBuffer</span></h2>
36 <p>GMimeStreamBuffer — A buffered stream</p>
37 </td>
38 <td valign="top" align="right"></td>
39 </tr></table></div>
40 <div class="refsynopsisdiv">
41 <a name="GMimeStreamBuffer.synopsis"></a><h2>Synopsis</h2>
42 <pre class="synopsis">enum                <a class="link" href="GMimeStreamBuffer.html#GMimeStreamBufferMode" title="enum GMimeStreamBufferMode">GMimeStreamBufferMode</a>;
43 struct              <a class="link" href="GMimeStreamBuffer.html#GMimeStreamBuffer-struct" title="struct GMimeStreamBuffer">GMimeStreamBuffer</a>;
44 <a class="link" href="GMimeStream.html" title="GMimeStream"><span class="returnvalue">GMimeStream</span></a> *       <a class="link" href="GMimeStreamBuffer.html#g-mime-stream-buffer-new" title="g_mime_stream_buffer_new ()">g_mime_stream_buffer_new</a>            (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *source</code></em>,
45                                                          <em class="parameter"><code><a class="link" href="GMimeStreamBuffer.html#GMimeStreamBufferMode" title="enum GMimeStreamBufferMode"><span class="type">GMimeStreamBufferMode</span></a> mode</code></em>);
46 <span class="returnvalue">ssize_t</span>             <a class="link" href="GMimeStreamBuffer.html#g-mime-stream-buffer-gets" title="g_mime_stream_buffer_gets ()">g_mime_stream_buffer_gets</a>           (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *stream</code></em>,
47                                                          <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
48                                                          <em class="parameter"><code><span class="type">size_t</span> max</code></em>);
49 <span class="returnvalue">void</span>                <a class="link" href="GMimeStreamBuffer.html#g-mime-stream-buffer-readln" title="g_mime_stream_buffer_readln ()">g_mime_stream_buffer_readln</a>         (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *stream</code></em>,
50                                                          <em class="parameter"><code><span class="type">GByteArray</span> *buffer</code></em>);
51 </pre>
52 </div>
53 <div class="refsect1">
54 <a name="GMimeStreamBuffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
55 <pre class="synopsis">
56   GObject
57    +----<a class="link" href="GMimeStream.html" title="GMimeStream">GMimeStream</a>
58          +----GMimeStreamBuffer
59 </pre>
60 </div>
61 <div class="refsect1">
62 <a name="GMimeStreamBuffer.description"></a><h2>Description</h2>
63 <p>
64 A <a class="link" href="GMimeStreamBuffer.html" title="GMimeStreamBuffer"><span class="type">GMimeStreamBuffer</span></a> can be used on top of any other type of stream
65 and has 3 modes: block reads, block writes, and cached reads. Block
66 reads are especially useful if you will be making a lot of small
67 reads from a stream that accesses the file system. Block writes are
68 useful for very much the same reason. The final mode, cached reads,
69 can become memory intensive but can be very helpful when inheriting
70 from a stream that does not support seeking (Note: this mode is the
71 least tested so be careful using it).
72 </p>
73 </div>
74 <div class="refsect1">
75 <a name="GMimeStreamBuffer.details"></a><h2>Details</h2>
76 <div class="refsect2">
77 <a name="GMimeStreamBufferMode"></a><h3>enum GMimeStreamBufferMode</h3>
78 <pre class="programlisting">typedef enum {
79         GMIME_STREAM_BUFFER_CACHE_READ,
80         GMIME_STREAM_BUFFER_BLOCK_READ,
81         GMIME_STREAM_BUFFER_BLOCK_WRITE
82 } GMimeStreamBufferMode;
83 </pre>
84 <p>
85 The buffering mode for a <a class="link" href="GMimeStreamBuffer.html" title="GMimeStreamBuffer"><span class="type">GMimeStreamBuffer</span></a> stream.
86 </p>
87 <div class="variablelist"><table border="0">
88 <col align="left" valign="top">
89 <tbody>
90 <tr>
91 <td><p><a name="GMIME-STREAM-BUFFER-CACHE-READ:CAPS"></a><span class="term"><code class="literal">GMIME_STREAM_BUFFER_CACHE_READ</code></span></p></td>
92 <td>Cache all reads.
93 </td>
94 </tr>
95 <tr>
96 <td><p><a name="GMIME-STREAM-BUFFER-BLOCK-READ:CAPS"></a><span class="term"><code class="literal">GMIME_STREAM_BUFFER_BLOCK_READ</code></span></p></td>
97 <td>Read in 4k blocks.
98 </td>
99 </tr>
100 <tr>
101 <td><p><a name="GMIME-STREAM-BUFFER-BLOCK-WRITE:CAPS"></a><span class="term"><code class="literal">GMIME_STREAM_BUFFER_BLOCK_WRITE</code></span></p></td>
102 <td>Write in 4k blocks.
103 </td>
104 </tr>
105 </tbody>
106 </table></div>
107 </div>
108 <hr>
109 <div class="refsect2">
110 <a name="GMimeStreamBuffer-struct"></a><h3>struct GMimeStreamBuffer</h3>
111 <pre class="programlisting">struct GMimeStreamBuffer;</pre>
112 <p>
113 A buffered stream wrapper around any <a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> object.
114 </p>
115 <div class="variablelist"><table border="0">
116 <col align="left" valign="top">
117 <tbody></tbody>
118 </table></div>
119 </div>
120 <hr>
121 <div class="refsect2">
122 <a name="g-mime-stream-buffer-new"></a><h3>g_mime_stream_buffer_new ()</h3>
123 <pre class="programlisting"><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="returnvalue">GMimeStream</span></a> *       g_mime_stream_buffer_new            (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *source</code></em>,
124                                                          <em class="parameter"><code><a class="link" href="GMimeStreamBuffer.html#GMimeStreamBufferMode" title="enum GMimeStreamBufferMode"><span class="type">GMimeStreamBufferMode</span></a> mode</code></em>);</pre>
125 <p>
126 Creates a new GMimeStreamBuffer object.
127 </p>
128 <div class="variablelist"><table border="0">
129 <col align="left" valign="top">
130 <tbody>
131 <tr>
132 <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
133 <td>source stream</td>
134 </tr>
135 <tr>
136 <td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
137 <td>buffering mode</td>
138 </tr>
139 <tr>
140 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
141 <td>a new buffer stream with source <em class="parameter"><code>source</code></em> and mode <em class="parameter"><code>mode</code></em>.</td>
142 </tr>
143 </tbody>
144 </table></div>
145 </div>
146 <hr>
147 <div class="refsect2">
148 <a name="g-mime-stream-buffer-gets"></a><h3>g_mime_stream_buffer_gets ()</h3>
149 <pre class="programlisting"><span class="returnvalue">ssize_t</span>             g_mime_stream_buffer_gets           (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *stream</code></em>,
150                                                          <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
151                                                          <em class="parameter"><code><span class="type">size_t</span> max</code></em>);</pre>
152 <p>
153 Reads in at most one less than <em class="parameter"><code>max</code></em> characters from <em class="parameter"><code>stream</code></em> and
154 stores them into the buffer pointed to by <em class="parameter"><code>buf</code></em>. Reading stops after
155 an EOS or newline ('\n'). If a newline is read, it is stored into
156 the buffer. A '\0' is stored after the last character in the
157 buffer.
158 </p>
159 <div class="variablelist"><table border="0">
160 <col align="left" valign="top">
161 <tbody>
162 <tr>
163 <td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
164 <td>stream</td>
165 </tr>
166 <tr>
167 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
168 <td>line buffer</td>
169 </tr>
170 <tr>
171 <td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
172 <td>max length of a line</td>
173 </tr>
174 <tr>
175 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
176 <td>the number of characters read into <em class="parameter"><code>buf</code></em> on success or <code class="literal">-1</code>
177 on fail.</td>
178 </tr>
179 </tbody>
180 </table></div>
181 </div>
182 <hr>
183 <div class="refsect2">
184 <a name="g-mime-stream-buffer-readln"></a><h3>g_mime_stream_buffer_readln ()</h3>
185 <pre class="programlisting"><span class="returnvalue">void</span>                g_mime_stream_buffer_readln         (<em class="parameter"><code><a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a> *stream</code></em>,
186                                                          <em class="parameter"><code><span class="type">GByteArray</span> *buffer</code></em>);</pre>
187 <p>
188 Reads a single line into <em class="parameter"><code>buffer</code></em>.
189 </p>
190 <div class="variablelist"><table border="0">
191 <col align="left" valign="top">
192 <tbody>
193 <tr>
194 <td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
195 <td>stream</td>
196 </tr>
197 <tr>
198 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
199 <td>output buffer</td>
200 </tr>
201 </tbody>
202 </table></div>
203 </div>
204 </div>
205 <div class="refsect1">
206 <a name="GMimeStreamBuffer.see-also"></a><h2>See Also</h2>
207 <a class="link" href="GMimeStream.html" title="GMimeStream"><span class="type">GMimeStream</span></a>
208 </div>
209 </div>
210 <div class="footer">
211 <hr>
212           Generated by GTK-Doc V1.18</div>
213 </body>
214 </html>