1 <refentry id="gnome-vfs-20-gnome-vfs-socket-buffer">
3 <refentrytitle>gnome-vfs-socket-buffer</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
9 <refname>gnome-vfs-socket-buffer</refname><refpurpose></refpurpose>
12 <refsynopsisdiv><title>Synopsis</title>
18 <link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link>* <link linkend="gnome-vfs-socket-buffer-new">gnome_vfs_socket_buffer_new</link>
19 (<link linkend="GnomeVFSSocket">GnomeVFSSocket</link> *socket);
20 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-socket-buffer-destroy">gnome_vfs_socket_buffer_destroy</link>
21 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
22 <link linkend="gboolean">gboolean</link> close_socket);
23 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-socket-buffer-read">gnome_vfs_socket_buffer_read</link> (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
24 <link linkend="gpointer">gpointer</link> buffer,
25 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
26 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_read);
27 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-socket-buffer-peekc">gnome_vfs_socket_buffer_peekc</link>
28 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
29 <link linkend="char">char</link> *character);
30 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-socket-buffer-write">gnome_vfs_socket_buffer_write</link>
31 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
32 <link linkend="gconstpointer">gconstpointer</link> buffer,
33 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
34 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_written);
35 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-socket-buffer-flush">gnome_vfs_socket_buffer_flush</link>
36 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer);
49 <title>Description</title>
56 <title>Details</title>
58 <title><anchor id="gnome-vfs-socket-buffer-new"/>gnome_vfs_socket_buffer_new ()</title>
59 <indexterm><primary>gnome_vfs_socket_buffer_new</primary></indexterm><programlisting><link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link>* gnome_vfs_socket_buffer_new
60 (<link linkend="GnomeVFSSocket">GnomeVFSSocket</link> *socket);</programlisting>
62 Create a socket buffer around <parameter>socket</parameter>. A buffered
63 socket allows data to be poked at without reading it
64 as it will be buffered. A future read will retrieve
65 the data again.</para>
68 </para><variablelist role="params">
69 <varlistentry><term><parameter>socket</parameter> :</term>
70 <listitem><simpara> socket to be buffered
71 </simpara></listitem></varlistentry>
72 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly allocated GnomeVFSSocketBuffer
73 </simpara></listitem></varlistentry>
74 </variablelist></refsect2>
76 <title><anchor id="gnome-vfs-socket-buffer-destroy"/>gnome_vfs_socket_buffer_destroy ()</title>
77 <indexterm><primary>gnome_vfs_socket_buffer_destroy</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_socket_buffer_destroy
78 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
79 <link linkend="gboolean">gboolean</link> close_socket);</programlisting>
81 Free the socket buffer.</para>
84 </para><variablelist role="params">
85 <varlistentry><term><parameter>socket_buffer</parameter> :</term>
86 <listitem><simpara> buffered socket to destray
87 </simpara></listitem></varlistentry>
88 <varlistentry><term><parameter>close_socket</parameter> :</term>
89 <listitem><simpara> if <literal>TRUE</literal> the socket being buffered will be closed too
90 </simpara></listitem></varlistentry>
91 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> GnomeVFSResult indicating the success of the operation
92 </simpara></listitem></varlistentry>
93 </variablelist></refsect2>
95 <title><anchor id="gnome-vfs-socket-buffer-read"/>gnome_vfs_socket_buffer_read ()</title>
96 <indexterm><primary>gnome_vfs_socket_buffer_read</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_socket_buffer_read (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
97 <link linkend="gpointer">gpointer</link> buffer,
98 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
99 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_read);</programlisting>
101 Read <parameter>bytes</parameter> bytes of data from the <parameter>socket</parameter> into <parameter>socket_buffer</parameter>.</para>
104 </para><variablelist role="params">
105 <varlistentry><term><parameter>socket_buffer</parameter> :</term>
106 <listitem><simpara> buffered socket to read data from
107 </simpara></listitem></varlistentry>
108 <varlistentry><term><parameter>buffer</parameter> :</term>
109 <listitem><simpara> allocated buffer of at least <parameter>bytes</parameter> bytes to be read into
110 </simpara></listitem></varlistentry>
111 <varlistentry><term><parameter>bytes</parameter> :</term>
112 <listitem><simpara> number of bytes to read from <parameter>socket</parameter> into <parameter>socket_buffer</parameter>
113 </simpara></listitem></varlistentry>
114 <varlistentry><term><parameter>bytes_read</parameter> :</term>
115 <listitem><simpara> pointer to a GnomeVFSFileSize, will contain
116 the number of bytes actually read from the socket on return.
117 </simpara></listitem></varlistentry>
118 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> GnomeVFSResult indicating the success of the operation
119 </simpara></listitem></varlistentry>
120 </variablelist></refsect2>
122 <title><anchor id="gnome-vfs-socket-buffer-peekc"/>gnome_vfs_socket_buffer_peekc ()</title>
123 <indexterm><primary>gnome_vfs_socket_buffer_peekc</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_socket_buffer_peekc
124 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
125 <link linkend="char">char</link> *character);</programlisting>
127 Peek at the next character in <parameter>socket_buffer</parameter> without actually reading
128 the character in. The next read will retrieve <parameter>c</parameter> (as well as any following
129 data if requested).</para>
132 </para><variablelist role="params">
133 <varlistentry><term><parameter>socket_buffer</parameter> :</term>
134 <listitem><simpara> the socket buffer to read from
135 </simpara></listitem></varlistentry>
136 <varlistentry><term><parameter>character</parameter> :</term>
137 <listitem><simpara> pointer to a char, will contain a character on return from
139 </simpara></listitem></varlistentry>
140 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> GnomeVFSResult indicating the success of the operation
141 </simpara></listitem></varlistentry>
142 </variablelist></refsect2>
144 <title><anchor id="gnome-vfs-socket-buffer-write"/>gnome_vfs_socket_buffer_write ()</title>
145 <indexterm><primary>gnome_vfs_socket_buffer_write</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_socket_buffer_write
146 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer,
147 <link linkend="gconstpointer">gconstpointer</link> buffer,
148 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
149 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_written);</programlisting>
151 Write <parameter>bytes</parameter> bytes of data from <parameter>buffer</parameter> to <parameter>socket_buffer</parameter>.</para>
154 </para><variablelist role="params">
155 <varlistentry><term><parameter>socket_buffer</parameter> :</term>
156 <listitem><simpara> buffered socket to write data to
157 </simpara></listitem></varlistentry>
158 <varlistentry><term><parameter>buffer</parameter> :</term>
159 <listitem><simpara> data to write to the socket
160 </simpara></listitem></varlistentry>
161 <varlistentry><term><parameter>bytes</parameter> :</term>
162 <listitem><simpara> number of bytes from <parameter>buffer</parameter> to write to <parameter>socket_buffer</parameter>
163 </simpara></listitem></varlistentry>
164 <varlistentry><term><parameter>bytes_written</parameter> :</term>
165 <listitem><simpara> pointer to a GnomeVFSFileSize, will contain
166 the number of bytes actually written to the socket on return.
167 </simpara></listitem></varlistentry>
168 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> GnomeVFSResult indicating the success of the operation
169 </simpara></listitem></varlistentry>
170 </variablelist></refsect2>
172 <title><anchor id="gnome-vfs-socket-buffer-flush"/>gnome_vfs_socket_buffer_flush ()</title>
173 <indexterm><primary>gnome_vfs_socket_buffer_flush</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_socket_buffer_flush
174 (<link linkend="GnomeVFSSocketBuffer">GnomeVFSSocketBuffer</link> *socket_buffer);</programlisting>
176 Write all outstanding data to <parameter>socket_buffer</parameter>.</para>
179 </para><variablelist role="params">
180 <varlistentry><term><parameter>socket_buffer</parameter> :</term>
181 <listitem><simpara> buffer to flush
182 </simpara></listitem></varlistentry>
183 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> GnomeVFSResult indicating the success of the operation
184 </simpara></listitem></varlistentry>
185 </variablelist></refsect2>