Initial commit
[platform/upstream/glib2.0.git] / docs / reference / gio / html / GSocketConnection.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>GSocketConnection</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GIO Reference Manual">
8 <link rel="up" href="highlevel-socket.html" title="Highlevel network functionallity">
9 <link rel="prev" href="GSocketClient.html" title="GSocketClient">
10 <link rel="next" href="GSocketListener.html" title="GSocketListener">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="part" href="pt01.html" title="Part I. GIO Overview">
14 <link rel="chapter" href="ch01.html" title="Introduction">
15 <link rel="chapter" href="ch02.html" title="Compiling GIO applications">
16 <link rel="chapter" href="ch03.html" title="Running GIO applications">
17 <link rel="chapter" href="extending-gio.html" title="Extending GIO">
18 <link rel="part" href="pt02.html" title="Part II. API Reference">
19 <link rel="chapter" href="file_ops.html" title="File Operations">
20 <link rel="chapter" href="file_mon.html" title="File System Monitoring">
21 <link rel="chapter" href="async.html" title="Asynchronous I/O">
22 <link rel="chapter" href="conversion.html" title="Data conversion">
23 <link rel="chapter" href="streaming.html" title="Streaming I/O">
24 <link rel="chapter" href="types.html" title="File types and applications">
25 <link rel="chapter" href="volume_mon.html" title="Volumes and Drives">
26 <link rel="chapter" href="icons.html" title="Icons">
27 <link rel="chapter" href="failable_initialization.html" title="Failable Initialization">
28 <link rel="chapter" href="networking.html" title="Lowlevel platform-independent network support">
29 <link rel="chapter" href="resolver.html" title="DNS resolution">
30 <link rel="chapter" href="highlevel-socket.html" title="Highlevel network functionallity">
31 <link rel="chapter" href="utils.html" title="Utilities">
32 <link rel="chapter" href="extending.html" title="Extending GIO">
33 <link rel="part" href="migrating.html" title="Part III. Migrating to GIO">
34 <link rel="chapter" href="ch19.html" title="Migrating from POSIX to GIO">
35 <link rel="chapter" href="ch20.html" title="Migrating from GnomeVFS to GIO">
36 <link rel="chapter" href="gio-hierarchy.html" title="Object Hierarchy">
37 <link rel="index" href="api-index-full.html" title="Index">
38 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
39 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
40 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
41 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
42 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
43 </head>
44 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
45 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
46 <tr valign="middle">
47 <td><a accesskey="p" href="GSocketClient.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
48 <td><a accesskey="u" href="highlevel-socket.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
49 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
50 <th width="100%" align="center">GIO Reference Manual</th>
51 <td><a accesskey="n" href="GSocketListener.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
52 </tr>
53 <tr><td colspan="5" class="shortcuts">
54 <a href="#GSocketConnection.synopsis" class="shortcut">Top</a>
55                    | 
56                   <a href="#GSocketConnection.description" class="shortcut">Description</a>
57                    | 
58                   <a href="#GSocketConnection.object-hierarchy" class="shortcut">Object Hierarchy</a>
59                    | 
60                   <a href="#GSocketConnection.properties" class="shortcut">Properties</a>
61 </td></tr>
62 </table>
63 <div class="refentry" title="GSocketConnection">
64 <a name="GSocketConnection"></a><div class="titlepage"></div>
65 <div class="refnamediv"><table width="100%"><tr>
66 <td valign="top">
67 <h2><span class="refentrytitle"><a name="GSocketConnection.top_of_page"></a>GSocketConnection</span></h2>
68 <p>GSocketConnection — A socket connection</p>
69 </td>
70 <td valign="top" align="right"></td>
71 </tr></table></div>
72 <div class="refsynopsisdiv" title="Synopsis">
73 <a name="GSocketConnection.synopsis"></a><h2>Synopsis</h2>
74 <a name="GTcpConnection"></a><a name="GUnixConnection"></a><pre class="synopsis">
75 #include &lt;gio/gio.h&gt;
76
77                     <a class="link" href="GSocketConnection.html#GSocketConnection-struct" title="GSocketConnection">GSocketConnection</a>;
78 <a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="returnvalue">GSocketAddress</span></a> *    <a class="link" href="GSocketConnection.html#g-socket-connection-get-local-address" title="g_socket_connection_get_local_address ()">g_socket_connection_get_local_address</a>
79                                                         (<a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> *connection,
80                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);
81 <a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="returnvalue">GSocketAddress</span></a> *    <a class="link" href="GSocketConnection.html#g-socket-connection-get-remote-address" title="g_socket_connection_get_remote_address ()">g_socket_connection_get_remote_address</a>
82                                                         (<a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> *connection,
83                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);
84 <a class="link" href="GSocket.html" title="GSocket"><span class="returnvalue">GSocket</span></a> *           <a class="link" href="GSocketConnection.html#g-socket-connection-get-socket" title="g_socket_connection_get_socket ()">g_socket_connection_get_socket</a>      (<a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> *connection);
85
86                     <a class="link" href="GSocketConnection.html#GTcpConnection-struct" title="GTcpConnection">GTcpConnection</a>;
87 <span class="returnvalue">void</span>                <a class="link" href="GSocketConnection.html#g-tcp-connection-set-graceful-disconnect" title="g_tcp_connection_set_graceful_disconnect ()">g_tcp_connection_set_graceful_disconnect</a>
88                                                         (<a class="link" href="GSocketConnection.html#GTcpConnection"><span class="returnvalue">GTcpConnection</span></a> *connection,
89                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> graceful_disconnect);
90 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSocketConnection.html#g-tcp-connection-get-graceful-disconnect" title="g_tcp_connection_get_graceful_disconnect ()">g_tcp_connection_get_graceful_disconnect</a>
91                                                         (<a class="link" href="GSocketConnection.html#GTcpConnection"><span class="returnvalue">GTcpConnection</span></a> *connection);
92
93                     <a class="link" href="GSocketConnection.html#GUnixConnection-struct" title="GUnixConnection">GUnixConnection</a>;
94 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GSocketConnection.html#g-unix-connection-receive-fd" title="g_unix_connection_receive_fd ()">g_unix_connection_receive_fd</a>        (<a class="link" href="GSocketConnection.html#GUnixConnection"><span class="returnvalue">GUnixConnection</span></a> *connection,
95                                                          <a class="link" href="GCancellable.html" title="GCancellable"><span class="returnvalue">GCancellable</span></a> *cancellable,
96                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);
97 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSocketConnection.html#g-unix-connection-send-fd" title="g_unix_connection_send_fd ()">g_unix_connection_send_fd</a>           (<a class="link" href="GSocketConnection.html#GUnixConnection"><span class="returnvalue">GUnixConnection</span></a> *connection,
98                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> fd,
99                                                          <a class="link" href="GCancellable.html" title="GCancellable"><span class="returnvalue">GCancellable</span></a> *cancellable,
100                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);
101
102 <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> * <a class="link" href="GSocketConnection.html#g-socket-connection-factory-create-connection" title="g_socket_connection_factory_create_connection ()">g_socket_connection_factory_create_connection</a>
103                                                         (<a class="link" href="GSocket.html" title="GSocket"><span class="returnvalue">GSocket</span></a> *socket);
104 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               <a class="link" href="GSocketConnection.html#g-socket-connection-factory-lookup-type" title="g_socket_connection_factory_lookup_type ()">g_socket_connection_factory_lookup_type</a>
105                                                         (<a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="returnvalue">GSocketFamily</span></a> family,
106                                                          <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="returnvalue">GSocketType</span></a> type,
107                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> protocol_id);
108 <span class="returnvalue">void</span>                <a class="link" href="GSocketConnection.html#g-socket-connection-factory-register-type" title="g_socket_connection_factory_register_type ()">g_socket_connection_factory_register_type</a>
109                                                         (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> g_type,
110                                                          <a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="returnvalue">GSocketFamily</span></a> family,
111                                                          <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="returnvalue">GSocketType</span></a> type,
112                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> protocol);
113 </pre>
114 </div>
115 <div class="refsect1" title="Object Hierarchy">
116 <a name="GSocketConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
117 <pre class="synopsis">
118   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
119    +----<a class="link" href="GIOStream.html" title="GIOStream">GIOStream</a>
120          +----GSocketConnection
121                +----<a class="link" href="GSocketConnection.html#GTcpConnection">GTcpConnection</a>
122                +----<a class="link" href="GSocketConnection.html#GUnixConnection">GUnixConnection</a>
123 </pre>
124 <pre class="synopsis">
125   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
126    +----<a class="link" href="GIOStream.html" title="GIOStream">GIOStream</a>
127          +----<a class="link" href="GSocketConnection.html" title="GSocketConnection">GSocketConnection</a>
128                +----GTcpConnection
129 </pre>
130 <pre class="synopsis">
131   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
132    +----<a class="link" href="GIOStream.html" title="GIOStream">GIOStream</a>
133          +----<a class="link" href="GSocketConnection.html" title="GSocketConnection">GSocketConnection</a>
134                +----GUnixConnection
135 </pre>
136 </div>
137 <div class="refsect1" title="Properties">
138 <a name="GSocketConnection.properties"></a><h2>Properties</h2>
139 <pre class="synopsis">
140   "<a class="link" href="GSocketConnection.html#GSocketConnection--socket" title='The "socket" property'>socket</a>"                   <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>*              : Read / Write / Construct Only
141   "<a class="link" href="GSocketConnection.html#GTcpConnection--graceful-disconnect" title='The "graceful-disconnect" property'>graceful-disconnect</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
142 </pre>
143 </div>
144 <div class="refsect1" title="Description">
145 <a name="GSocketConnection.description"></a><h2>Description</h2>
146 <p>
147 <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> is a <a class="link" href="GIOStream.html" title="GIOStream"><span class="type">GIOStream</span></a> for a connected socket. They
148 can be created either by <a class="link" href="GSocketClient.html" title="GSocketClient"><span class="type">GSocketClient</span></a> when connecting to a host,
149 or by <a class="link" href="GSocketListener.html" title="GSocketListener"><span class="type">GSocketListener</span></a> when accepting a new client.
150 </p>
151 <p>
152 The type of the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> object returned from these calls
153 depends on the type of the underlying socket that is in use. For
154 instance, for a TCP/IP connection it will be a <a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a>.
155 </p>
156 <p>
157 Chosing what type of object to construct is done with the socket
158 connection factory, and it is possible for 3rd parties to register
159 custom socket connection types for specific combination of socket
160 family/type/protocol using <a class="link" href="GSocketConnection.html#g-socket-connection-factory-register-type" title="g_socket_connection_factory_register_type ()"><code class="function">g_socket_connection_factory_register_type()</code></a>.</p>
161 </div>
162 <div class="refsect1" title="Details">
163 <a name="GSocketConnection.details"></a><h2>Details</h2>
164 <div class="refsect2" title="GSocketConnection">
165 <a name="GSocketConnection-struct"></a><h3>GSocketConnection</h3>
166 <pre class="programlisting">typedef struct _GSocketConnection GSocketConnection;</pre>
167 <p>
168 A socket connection GIOStream object for connection-oriented sockets.</p>
169 <p class="since">Since 2.22</p>
170 </div>
171 <hr>
172 <div class="refsect2" title="g_socket_connection_get_local_address ()">
173 <a name="g-socket-connection-get-local-address"></a><h3>g_socket_connection_get_local_address ()</h3>
174 <pre class="programlisting"><a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="returnvalue">GSocketAddress</span></a> *    g_socket_connection_get_local_address
175                                                         (<a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> *connection,
176                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);</pre>
177 <p>
178 Try to get the local address of a socket connection.</p>
179 <div class="variablelist"><table border="0">
180 <col align="left" valign="top">
181 <tbody>
182 <tr>
183 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
184 <td> a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
185 </td>
186 </tr>
187 <tr>
188 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
189 <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore.
190 </td>
191 </tr>
192 <tr>
193 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
194 <td> a <a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="type">GSocketAddress</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.
195     Free the returned object with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.
196
197 </td>
198 </tr>
199 </tbody>
200 </table></div>
201 <p class="since">Since 2.22</p>
202 </div>
203 <hr>
204 <div class="refsect2" title="g_socket_connection_get_remote_address ()">
205 <a name="g-socket-connection-get-remote-address"></a><h3>g_socket_connection_get_remote_address ()</h3>
206 <pre class="programlisting"><a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="returnvalue">GSocketAddress</span></a> *    g_socket_connection_get_remote_address
207                                                         (<a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> *connection,
208                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);</pre>
209 <p>
210 Try to get the remote address of a socket connection.</p>
211 <div class="variablelist"><table border="0">
212 <col align="left" valign="top">
213 <tbody>
214 <tr>
215 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
216 <td> a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
217 </td>
218 </tr>
219 <tr>
220 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
221 <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore.
222 </td>
223 </tr>
224 <tr>
225 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
226 <td> a <a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="type">GSocketAddress</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.
227     Free the returned object with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.
228
229 </td>
230 </tr>
231 </tbody>
232 </table></div>
233 <p class="since">Since 2.22</p>
234 </div>
235 <hr>
236 <div class="refsect2" title="g_socket_connection_get_socket ()">
237 <a name="g-socket-connection-get-socket"></a><h3>g_socket_connection_get_socket ()</h3>
238 <pre class="programlisting"><a class="link" href="GSocket.html" title="GSocket"><span class="returnvalue">GSocket</span></a> *           g_socket_connection_get_socket      (<a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> *connection);</pre>
239 <p>
240 Gets the underlying <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a> object of the connection.
241 This can be useful if you want to do something unusual on it
242 not supported by the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> APIs.</p>
243 <div class="variablelist"><table border="0">
244 <col align="left" valign="top">
245 <tbody>
246 <tr>
247 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
248 <td> a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
249 </td>
250 </tr>
251 <tr>
252 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
253 <td> a <a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="type">GSocketAddress</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.
254
255 </td>
256 </tr>
257 </tbody>
258 </table></div>
259 <p class="since">Since 2.22</p>
260 </div>
261 <hr>
262 <div class="refsect2" title="GTcpConnection">
263 <a name="GTcpConnection-struct"></a><h3>GTcpConnection</h3>
264 <pre class="programlisting">typedef struct _GTcpConnection GTcpConnection;</pre>
265 <p>
266 A <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> for UNIX domain socket connections.</p>
267 <p class="since">Since 2.22</p>
268 </div>
269 <hr>
270 <div class="refsect2" title="g_tcp_connection_set_graceful_disconnect ()">
271 <a name="g-tcp-connection-set-graceful-disconnect"></a><h3>g_tcp_connection_set_graceful_disconnect ()</h3>
272 <pre class="programlisting"><span class="returnvalue">void</span>                g_tcp_connection_set_graceful_disconnect
273                                                         (<a class="link" href="GSocketConnection.html#GTcpConnection"><span class="returnvalue">GTcpConnection</span></a> *connection,
274                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> graceful_disconnect);</pre>
275 <p>
276 This enabled graceful disconnects on close. A graceful disconnect
277 means that we signal the recieving end that the connection is terminated
278 and wait for it to close the connection before closing the connection.
279 </p>
280 <p>
281 A graceful disconnect means that we can be sure that we successfully sent
282 all the outstanding data to the other end, or get an error reported.
283 However, it also means we have to wait for all the data to reach the
284 other side and for it to acknowledge this by closing the socket, which may
285 take a while. For this reason it is disabled by default.</p>
286 <div class="variablelist"><table border="0">
287 <col align="left" valign="top">
288 <tbody>
289 <tr>
290 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
291 <td> a <a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a>
292 </td>
293 </tr>
294 <tr>
295 <td><p><span class="term"><em class="parameter"><code>graceful_disconnect</code></em> :</span></p></td>
296 <td> Whether to do graceful disconnects or not
297 </td>
298 </tr>
299 </tbody>
300 </table></div>
301 <p class="since">Since 2.22</p>
302 </div>
303 <hr>
304 <div class="refsect2" title="g_tcp_connection_get_graceful_disconnect ()">
305 <a name="g-tcp-connection-get-graceful-disconnect"></a><h3>g_tcp_connection_get_graceful_disconnect ()</h3>
306 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_tcp_connection_get_graceful_disconnect
307                                                         (<a class="link" href="GSocketConnection.html#GTcpConnection"><span class="returnvalue">GTcpConnection</span></a> *connection);</pre>
308 <p>
309 Checks if graceful disconnects are used. See
310 <a class="link" href="GSocketConnection.html#g-tcp-connection-set-graceful-disconnect" title="g_tcp_connection_set_graceful_disconnect ()"><code class="function">g_tcp_connection_set_graceful_disconnect()</code></a>.</p>
311 <div class="variablelist"><table border="0">
312 <col align="left" valign="top">
313 <tbody>
314 <tr>
315 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
316 <td> a <a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a>
317 </td>
318 </tr>
319 <tr>
320 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
321 <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if graceful disconnect is used on close, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise
322
323 </td>
324 </tr>
325 </tbody>
326 </table></div>
327 <p class="since">Since 2.22</p>
328 </div>
329 <hr>
330 <div class="refsect2" title="GUnixConnection">
331 <a name="GUnixConnection-struct"></a><h3>GUnixConnection</h3>
332 <pre class="programlisting">typedef struct _GUnixConnection GUnixConnection;</pre>
333 <p>
334 </p>
335 </div>
336 <hr>
337 <div class="refsect2" title="g_unix_connection_receive_fd ()">
338 <a name="g-unix-connection-receive-fd"></a><h3>g_unix_connection_receive_fd ()</h3>
339 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                g_unix_connection_receive_fd        (<a class="link" href="GSocketConnection.html#GUnixConnection"><span class="returnvalue">GUnixConnection</span></a> *connection,
340                                                          <a class="link" href="GCancellable.html" title="GCancellable"><span class="returnvalue">GCancellable</span></a> *cancellable,
341                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);</pre>
342 <p>
343 Receives a file descriptor from the sending end of the connection.
344 The sending end has to call <a class="link" href="GSocketConnection.html#g-unix-connection-send-fd" title="g_unix_connection_send_fd ()"><code class="function">g_unix_connection_send_fd()</code></a> for this
345 to work.
346 </p>
347 <p>
348 As well as reading the fd this also reads a single byte from the
349 stream, as this is required for fd passing to work on some
350 implementations.</p>
351 <div class="variablelist"><table border="0">
352 <col align="left" valign="top">
353 <tbody>
354 <tr>
355 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
356 <td> a <a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a>
357 </td>
358 </tr>
359 <tr>
360 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
361 <td> optional <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> object, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore
362 </td>
363 </tr>
364 <tr>
365 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
366 <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore
367 </td>
368 </tr>
369 <tr>
370 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
371 <td> a file descriptor on success, -1 on error.
372
373 </td>
374 </tr>
375 </tbody>
376 </table></div>
377 <p class="since">Since 2.22</p>
378 </div>
379 <hr>
380 <div class="refsect2" title="g_unix_connection_send_fd ()">
381 <a name="g-unix-connection-send-fd"></a><h3>g_unix_connection_send_fd ()</h3>
382 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_unix_connection_send_fd           (<a class="link" href="GSocketConnection.html#GUnixConnection"><span class="returnvalue">GUnixConnection</span></a> *connection,
383                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> fd,
384                                                          <a class="link" href="GCancellable.html" title="GCancellable"><span class="returnvalue">GCancellable</span></a> *cancellable,
385                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> **error);</pre>
386 <p>
387 Passes a file descriptor to the recieving side of the
388 connection. The recieving end has to call <a class="link" href="GSocketConnection.html#g-unix-connection-receive-fd" title="g_unix_connection_receive_fd ()"><code class="function">g_unix_connection_receive_fd()</code></a>
389 to accept the file descriptor.
390 </p>
391 <p>
392 As well as sending the fd this also writes a single byte to the
393 stream, as this is required for fd passing to work on some
394 implementations.</p>
395 <div class="variablelist"><table border="0">
396 <col align="left" valign="top">
397 <tbody>
398 <tr>
399 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
400 <td> a <a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a>
401 </td>
402 </tr>
403 <tr>
404 <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
405 <td> a file descriptor
406 </td>
407 </tr>
408 <tr>
409 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
410 <td> optional <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> object, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore.
411 </td>
412 </tr>
413 <tr>
414 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
415 <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore.
416 </td>
417 </tr>
418 <tr>
419 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
420 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.
421
422 </td>
423 </tr>
424 </tbody>
425 </table></div>
426 <p class="since">Since 2.22</p>
427 </div>
428 <hr>
429 <div class="refsect2" title="g_socket_connection_factory_create_connection ()">
430 <a name="g-socket-connection-factory-create-connection"></a><h3>g_socket_connection_factory_create_connection ()</h3>
431 <pre class="programlisting"><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> * g_socket_connection_factory_create_connection
432                                                         (<a class="link" href="GSocket.html" title="GSocket"><span class="returnvalue">GSocket</span></a> *socket);</pre>
433 <p>
434 Creates a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> subclass of the right type for
435 <em class="parameter"><code>socket</code></em>.</p>
436 <div class="variablelist"><table border="0">
437 <col align="left" valign="top">
438 <tbody>
439 <tr>
440 <td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
441 <td> a <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>
442 </td>
443 </tr>
444 <tr>
445 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
446 <td> a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
447
448 </td>
449 </tr>
450 </tbody>
451 </table></div>
452 <p class="since">Since 2.22</p>
453 </div>
454 <hr>
455 <div class="refsect2" title="g_socket_connection_factory_lookup_type ()">
456 <a name="g-socket-connection-factory-lookup-type"></a><h3>g_socket_connection_factory_lookup_type ()</h3>
457 <pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               g_socket_connection_factory_lookup_type
458                                                         (<a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="returnvalue">GSocketFamily</span></a> family,
459                                                          <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="returnvalue">GSocketType</span></a> type,
460                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> protocol_id);</pre>
461 <p>
462 Looks up the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> to be used when creating socket connections on
463 sockets with the specified <em class="parameter"><code>family</code></em>,<em class="parameter"><code>type</code></em> and <em class="parameter"><code>protocol_id</code></em>.
464 </p>
465 <p>
466 If no type is registered, the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> base type is returned.</p>
467 <div class="variablelist"><table border="0">
468 <col align="left" valign="top">
469 <tbody>
470 <tr>
471 <td><p><span class="term"><em class="parameter"><code>family</code></em> :</span></p></td>
472 <td> a <a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a>
473 </td>
474 </tr>
475 <tr>
476 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
477 <td> a <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a>
478 </td>
479 </tr>
480 <tr>
481 <td><p><span class="term"><em class="parameter"><code>protocol_id</code></em> :</span></p></td>
482 <td> a protocol id
483 </td>
484 </tr>
485 <tr>
486 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
487 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>
488
489 </td>
490 </tr>
491 </tbody>
492 </table></div>
493 <p class="since">Since 2.22</p>
494 </div>
495 <hr>
496 <div class="refsect2" title="g_socket_connection_factory_register_type ()">
497 <a name="g-socket-connection-factory-register-type"></a><h3>g_socket_connection_factory_register_type ()</h3>
498 <pre class="programlisting"><span class="returnvalue">void</span>                g_socket_connection_factory_register_type
499                                                         (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> g_type,
500                                                          <a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="returnvalue">GSocketFamily</span></a> family,
501                                                          <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="returnvalue">GSocketType</span></a> type,
502                                                          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> protocol);</pre>
503 <p>
504 Looks up the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> to be used when creating socket connections on
505 sockets with the specified <em class="parameter"><code>family</code></em>,<em class="parameter"><code>type</code></em> and <em class="parameter"><code>protocol</code></em>.
506 </p>
507 <p>
508 If no type is registered, the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> base type is returned.</p>
509 <div class="variablelist"><table border="0">
510 <col align="left" valign="top">
511 <tbody>
512 <tr>
513 <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
514 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>, inheriting from <code class="literal">G_TYPE_SOCKET_CONNECTION</code>
515 </td>
516 </tr>
517 <tr>
518 <td><p><span class="term"><em class="parameter"><code>family</code></em> :</span></p></td>
519 <td> a <a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a>
520 </td>
521 </tr>
522 <tr>
523 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
524 <td> a <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a>
525 </td>
526 </tr>
527 <tr>
528 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
529 <td> a protocol id
530 </td>
531 </tr>
532 </tbody>
533 </table></div>
534 <p class="since">Since 2.22</p>
535 </div>
536 </div>
537 <div class="refsect1" title="Property Details">
538 <a name="GSocketConnection.property-details"></a><h2>Property Details</h2>
539 <div class="refsect2" title='The "socket" property'>
540 <a name="GSocketConnection--socket"></a><h3>The <code class="literal">"socket"</code> property</h3>
541 <pre class="programlisting">  "socket"                   <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>*              : Read / Write / Construct Only</pre>
542 <p>The underlying GSocket.</p>
543 </div>
544 <hr>
545 <div class="refsect2" title='The "graceful-disconnect" property'>
546 <a name="GTcpConnection--graceful-disconnect"></a><h3>The <code class="literal">"graceful-disconnect"</code> property</h3>
547 <pre class="programlisting">  "graceful-disconnect"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
548 <p>Whether or not close does a graceful disconnect.</p>
549 <p>Default value: FALSE</p>
550 </div>
551 </div>
552 <div class="refsect1" title="See Also">
553 <a name="GSocketConnection.see-also"></a><h2>See Also</h2>
554 <a class="link" href="GIOStream.html" title="GIOStream"><span class="type">GIOStream</span></a>, <a class="link" href="GSocketClient.html" title="GSocketClient"><span class="type">GSocketClient</span></a>, <a class="link" href="GSocketListener.html" title="GSocketListener"><span class="type">GSocketListener</span></a>
555 </div>
556 </div>
557 <div class="footer">
558 <hr>
559           Generated by GTK-Doc V1.13</div>
560 </body>
561 </html>