tarball import: glib-2.25.9.tar.bz2
[mirror-ossqm-glib2.git] / docs / reference / gio / html / GSocketConnection.html
blobbbca8674d6c06decf215b3803d7aa639b6627ace
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="GUnixConnection.html" title="GUnixConnection">
11 <meta name="generator" content="GTK-Doc V1.15 (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="GSocketClient.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="highlevel-socket.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">GIO Reference Manual</th>
21 <td><a accesskey="n" href="GUnixConnection.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="#GSocketConnection.synopsis" class="shortcut">Top</a>
25  | 
26 <a href="#GSocketConnection.description" class="shortcut">Description</a>
27  | 
28 <a href="#GSocketConnection.object-hierarchy" class="shortcut">Object Hierarchy</a>
29  | 
30 <a href="#GSocketConnection.properties" class="shortcut">Properties</a>
31 </td></tr>
32 </table>
33 <div class="refentry" title="GSocketConnection">
34 <a name="GSocketConnection"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="GSocketConnection.top_of_page"></a>GSocketConnection</span></h2>
38 <p>GSocketConnection — A socket connection</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv" title="Synopsis">
43 <a name="GSocketConnection.synopsis"></a><h2>Synopsis</h2>
44 <a name="GTcpConnection"></a><a name="GUnixConnection"></a><pre class="synopsis">
45 #include &lt;gio/gio.h&gt;
47 <a class="link" href="GSocketConnection.html#GSocketConnection-struct" title="GSocketConnection">GSocketConnection</a>;
48 <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>
49 (<em class="parameter"><code><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> *connection</code></em>,
50 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
51 <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>
52 (<em class="parameter"><code><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> *connection</code></em>,
53 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
54 <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> (<em class="parameter"><code><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> *connection</code></em>);
56 <a class="link" href="GSocketConnection.html#GTcpConnection-struct" title="GTcpConnection">GTcpConnection</a>;
57 <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>
58 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a> *connection</code></em>,
59 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> graceful_disconnect</code></em>);
60 <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>
61 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a> *connection</code></em>);
63 <a class="link" href="GSocketConnection.html#GUnixConnection-struct" title="GUnixConnection">GUnixConnection</a>;
64 <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> (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
65 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
66 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
67 <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> (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
68 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
69 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
70 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
71 <a class="link" href="GCredentials.html" title="GCredentials"><span class="returnvalue">GCredentials</span></a> * <a class="link" href="GSocketConnection.html#g-unix-connection-receive-credentials" title="g_unix_connection_receive_credentials ()">g_unix_connection_receive_credentials</a>
72 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
73 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
74 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
75 <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-credentials" title="g_unix_connection_send_credentials ()">g_unix_connection_send_credentials</a> (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
76 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
77 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
79 <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>
80 (<em class="parameter"><code><a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a> *socket</code></em>);
81 <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>
82 (<em class="parameter"><code><a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a> family</code></em>,
83 <em class="parameter"><code><a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a> type</code></em>,
84 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> protocol_id</code></em>);
85 <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>
86 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> g_type</code></em>,
87 <em class="parameter"><code><a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a> family</code></em>,
88 <em class="parameter"><code><a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a> type</code></em>,
89 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> protocol</code></em>);
90 </pre>
91 </div>
92 <div class="refsect1" title="Object Hierarchy">
93 <a name="GSocketConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
94 <pre class="synopsis">
95 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
96 +----<a class="link" href="GIOStream.html" title="GIOStream">GIOStream</a>
97 +----GSocketConnection
98 +----<a class="link" href="GSocketConnection.html#GTcpConnection">GTcpConnection</a>
99 +----<a class="link" href="GSocketConnection.html#GUnixConnection">GUnixConnection</a>
100 </pre>
101 <pre class="synopsis">
102 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
103 +----<a class="link" href="GIOStream.html" title="GIOStream">GIOStream</a>
104 +----<a class="link" href="GSocketConnection.html" title="GSocketConnection">GSocketConnection</a>
105 +----GTcpConnection
106 </pre>
107 <pre class="synopsis">
108 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
109 +----<a class="link" href="GIOStream.html" title="GIOStream">GIOStream</a>
110 +----<a class="link" href="GSocketConnection.html" title="GSocketConnection">GSocketConnection</a>
111 +----GUnixConnection
112 </pre>
113 </div>
114 <div class="refsect1" title="Properties">
115 <a name="GSocketConnection.properties"></a><h2>Properties</h2>
116 <pre class="synopsis">
117 "<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
118 "<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
119 </pre>
120 </div>
121 <div class="refsect1" title="Description">
122 <a name="GSocketConnection.description"></a><h2>Description</h2>
124 <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
125 can be created either by <a class="link" href="GSocketClient.html" title="GSocketClient"><span class="type">GSocketClient</span></a> when connecting to a host,
126 or by <a class="link" href="GSocketListener.html" title="GSocketListener"><span class="type">GSocketListener</span></a> when accepting a new client.
127 </p>
129 The type of the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> object returned from these calls
130 depends on the type of the underlying socket that is in use. For
131 instance, for a TCP/IP connection it will be a <a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a>.
132 </p>
134 Chosing what type of object to construct is done with the socket
135 connection factory, and it is possible for 3rd parties to register
136 custom socket connection types for specific combination of socket
137 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>.
138 </p>
139 </div>
140 <div class="refsect1" title="Details">
141 <a name="GSocketConnection.details"></a><h2>Details</h2>
142 <div class="refsect2" title="GSocketConnection">
143 <a name="GSocketConnection-struct"></a><h3>GSocketConnection</h3>
144 <pre class="programlisting">typedef struct _GSocketConnection GSocketConnection;</pre>
146 A socket connection GIOStream object for connection-oriented sockets.
147 </p>
148 <p class="since">Since 2.22</p>
149 </div>
150 <hr>
151 <div class="refsect2" title="g_socket_connection_get_local_address ()">
152 <a name="g-socket-connection-get-local-address"></a><h3>g_socket_connection_get_local_address ()</h3>
153 <pre class="programlisting"><a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="returnvalue">GSocketAddress</span></a> * g_socket_connection_get_local_address
154 (<em class="parameter"><code><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> *connection</code></em>,
155 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
157 Try to get the local address of a socket connection.
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>connection</code></em> :</span></p></td>
164 <td>a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
165 </td>
166 </tr>
167 <tr>
168 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
169 <td>
170 <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.
171 </td>
172 </tr>
173 <tr>
174 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
175 <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.
176 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>.
178 </td>
179 </tr>
180 </tbody>
181 </table></div>
182 <p class="since">Since 2.22</p>
183 </div>
184 <hr>
185 <div class="refsect2" title="g_socket_connection_get_remote_address ()">
186 <a name="g-socket-connection-get-remote-address"></a><h3>g_socket_connection_get_remote_address ()</h3>
187 <pre class="programlisting"><a class="link" href="GSocketAddress.html" title="GSocketAddress"><span class="returnvalue">GSocketAddress</span></a> * g_socket_connection_get_remote_address
188 (<em class="parameter"><code><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> *connection</code></em>,
189 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
191 Try to get the remote address of a socket connection.
192 </p>
193 <div class="variablelist"><table border="0">
194 <col align="left" valign="top">
195 <tbody>
196 <tr>
197 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
198 <td>a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
199 </td>
200 </tr>
201 <tr>
202 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
203 <td>
204 <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.
205 </td>
206 </tr>
207 <tr>
208 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
209 <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.
210 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>.
212 </td>
213 </tr>
214 </tbody>
215 </table></div>
216 <p class="since">Since 2.22</p>
217 </div>
218 <hr>
219 <div class="refsect2" title="g_socket_connection_get_socket ()">
220 <a name="g-socket-connection-get-socket"></a><h3>g_socket_connection_get_socket ()</h3>
221 <pre class="programlisting"><a class="link" href="GSocket.html" title="GSocket"><span class="returnvalue">GSocket</span></a> * g_socket_connection_get_socket (<em class="parameter"><code><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> *connection</code></em>);</pre>
223 Gets the underlying <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a> object of the connection.
224 This can be useful if you want to do something unusual on it
225 not supported by the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> APIs.
226 </p>
227 <div class="variablelist"><table border="0">
228 <col align="left" valign="top">
229 <tbody>
230 <tr>
231 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
232 <td>a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
233 </td>
234 </tr>
235 <tr>
236 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
237 <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.
239 </td>
240 </tr>
241 </tbody>
242 </table></div>
243 <p class="since">Since 2.22</p>
244 </div>
245 <hr>
246 <div class="refsect2" title="GTcpConnection">
247 <a name="GTcpConnection-struct"></a><h3>GTcpConnection</h3>
248 <pre class="programlisting">typedef struct _GTcpConnection GTcpConnection;</pre>
250 A <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> for UNIX domain socket connections.
251 </p>
252 <p class="since">Since 2.22</p>
253 </div>
254 <hr>
255 <div class="refsect2" title="g_tcp_connection_set_graceful_disconnect ()">
256 <a name="g-tcp-connection-set-graceful-disconnect"></a><h3>g_tcp_connection_set_graceful_disconnect ()</h3>
257 <pre class="programlisting"><span class="returnvalue">void</span> g_tcp_connection_set_graceful_disconnect
258 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a> *connection</code></em>,
259 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> graceful_disconnect</code></em>);</pre>
261 This enabled graceful disconnects on close. A graceful disconnect
262 means that we signal the recieving end that the connection is terminated
263 and wait for it to close the connection before closing the connection.
264 </p>
266 A graceful disconnect means that we can be sure that we successfully sent
267 all the outstanding data to the other end, or get an error reported.
268 However, it also means we have to wait for all the data to reach the
269 other side and for it to acknowledge this by closing the socket, which may
270 take a while. For this reason it is disabled by default.
271 </p>
272 <div class="variablelist"><table border="0">
273 <col align="left" valign="top">
274 <tbody>
275 <tr>
276 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
277 <td>a <a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a>
278 </td>
279 </tr>
280 <tr>
281 <td><p><span class="term"><em class="parameter"><code>graceful_disconnect</code></em> :</span></p></td>
282 <td>Whether to do graceful disconnects or not
283 </td>
284 </tr>
285 </tbody>
286 </table></div>
287 <p class="since">Since 2.22</p>
288 </div>
289 <hr>
290 <div class="refsect2" title="g_tcp_connection_get_graceful_disconnect ()">
291 <a name="g-tcp-connection-get-graceful-disconnect"></a><h3>g_tcp_connection_get_graceful_disconnect ()</h3>
292 <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
293 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a> *connection</code></em>);</pre>
295 Checks if graceful disconnects are used. See
296 <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>.
297 </p>
298 <div class="variablelist"><table border="0">
299 <col align="left" valign="top">
300 <tbody>
301 <tr>
302 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
303 <td>a <a class="link" href="GSocketConnection.html#GTcpConnection"><span class="type">GTcpConnection</span></a>
304 </td>
305 </tr>
306 <tr>
307 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
308 <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
310 </td>
311 </tr>
312 </tbody>
313 </table></div>
314 <p class="since">Since 2.22</p>
315 </div>
316 <hr>
317 <div class="refsect2" title="GUnixConnection">
318 <a name="GUnixConnection-struct"></a><h3>GUnixConnection</h3>
319 <pre class="programlisting">typedef struct _GUnixConnection GUnixConnection;</pre>
321 </p>
322 </div>
323 <hr>
324 <div class="refsect2" title="g_unix_connection_receive_fd ()">
325 <a name="g-unix-connection-receive-fd"></a><h3>g_unix_connection_receive_fd ()</h3>
326 <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 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
327 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
328 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
330 Receives a file descriptor from the sending end of the connection.
331 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
332 to work.
333 </p>
335 As well as reading the fd this also reads a single byte from the
336 stream, as this is required for fd passing to work on some
337 implementations.
338 </p>
339 <div class="variablelist"><table border="0">
340 <col align="left" valign="top">
341 <tbody>
342 <tr>
343 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
344 <td>a <a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a>
345 </td>
346 </tr>
347 <tr>
348 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
349 <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. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
350 </td>
351 </tr>
352 <tr>
353 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
354 <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. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
355 </td>
356 </tr>
357 <tr>
358 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
359 <td> a file descriptor on success, -1 on error.
361 </td>
362 </tr>
363 </tbody>
364 </table></div>
365 <p class="since">Since 2.22</p>
366 </div>
367 <hr>
368 <div class="refsect2" title="g_unix_connection_send_fd ()">
369 <a name="g-unix-connection-send-fd"></a><h3>g_unix_connection_send_fd ()</h3>
370 <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 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
371 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
372 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
373 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
375 Passes a file descriptor to the recieving side of the
376 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>
377 to accept the file descriptor.
378 </p>
380 As well as sending the fd this also writes a single byte to the
381 stream, as this is required for fd passing to work on some
382 implementations.
383 </p>
384 <div class="variablelist"><table border="0">
385 <col align="left" valign="top">
386 <tbody>
387 <tr>
388 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
389 <td>a <a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a>
390 </td>
391 </tr>
392 <tr>
393 <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
394 <td>a file descriptor
395 </td>
396 </tr>
397 <tr>
398 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
399 <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. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
400 </td>
401 </tr>
402 <tr>
403 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
404 <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. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
405 </td>
406 </tr>
407 <tr>
408 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
409 <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.
411 </td>
412 </tr>
413 </tbody>
414 </table></div>
415 <p class="since">Since 2.22</p>
416 </div>
417 <hr>
418 <div class="refsect2" title="g_unix_connection_receive_credentials ()">
419 <a name="g-unix-connection-receive-credentials"></a><h3>g_unix_connection_receive_credentials ()</h3>
420 <pre class="programlisting"><a class="link" href="GCredentials.html" title="GCredentials"><span class="returnvalue">GCredentials</span></a> * g_unix_connection_receive_credentials
421 (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
422 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
423 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
425 Receives credentials from the sending end of the connection. The
426 sending end has to call <a class="link" href="GSocketConnection.html#g-unix-connection-send-credentials" title="g_unix_connection_send_credentials ()"><code class="function">g_unix_connection_send_credentials()</code></a> (or
427 similar) for this to work.
428 </p>
430 As well as reading the credentials this also reads (and discards) a
431 single byte from the stream, as this is required for credentials
432 passing to work on some implementations.
433 </p>
434 <div class="variablelist"><table border="0">
435 <col align="left" valign="top">
436 <tbody>
437 <tr>
438 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
439 <td>A <a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a>.
440 </td>
441 </tr>
442 <tr>
443 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
444 <td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
445 </td>
446 </tr>
447 <tr>
448 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
449 <td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
450 </td>
451 </tr>
452 <tr>
453 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
454 <td> Received credentials on success (free with
455 <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>), <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set.
457 </td>
458 </tr>
459 </tbody>
460 </table></div>
461 <p class="since">Since 2.26</p>
462 </div>
463 <hr>
464 <div class="refsect2" title="g_unix_connection_send_credentials ()">
465 <a name="g-unix-connection-send-credentials"></a><h3>g_unix_connection_send_credentials ()</h3>
466 <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_credentials (<em class="parameter"><code><a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a> *connection</code></em>,
467 <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
468 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
470 Passes the credentials of the current user the receiving side
471 of the connection. The recieving end has to call
472 <a class="link" href="GSocketConnection.html#g-unix-connection-receive-credentials" title="g_unix_connection_receive_credentials ()"><code class="function">g_unix_connection_receive_credentials()</code></a> (or similar) to accept the
473 credentials.
474 </p>
476 As well as sending the credentials this also writes a single NUL
477 byte to the stream, as this is required for credentials passing to
478 work on some implementations.
479 </p>
481 Note that this function only works on Linux, currently.
482 </p>
483 <div class="variablelist"><table border="0">
484 <col align="left" valign="top">
485 <tbody>
486 <tr>
487 <td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
488 <td>A <a class="link" href="GSocketConnection.html#GUnixConnection"><span class="type">GUnixConnection</span></a>.
489 </td>
490 </tr>
491 <tr>
492 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
493 <td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
494 </td>
495 </tr>
496 <tr>
497 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
498 <td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
499 </td>
500 </tr>
501 <tr>
502 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
503 <td> <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#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.
505 </td>
506 </tr>
507 </tbody>
508 </table></div>
509 <p class="since">Since 2.26</p>
510 </div>
511 <hr>
512 <div class="refsect2" title="g_socket_connection_factory_create_connection ()">
513 <a name="g-socket-connection-factory-create-connection"></a><h3>g_socket_connection_factory_create_connection ()</h3>
514 <pre class="programlisting"><a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="returnvalue">GSocketConnection</span></a> * g_socket_connection_factory_create_connection
515 (<em class="parameter"><code><a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a> *socket</code></em>);</pre>
517 Creates a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> subclass of the right type for
518 <em class="parameter"><code>socket</code></em>.
519 </p>
520 <div class="variablelist"><table border="0">
521 <col align="left" valign="top">
522 <tbody>
523 <tr>
524 <td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
525 <td>a <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>
526 </td>
527 </tr>
528 <tr>
529 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
530 <td> a <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a>
532 </td>
533 </tr>
534 </tbody>
535 </table></div>
536 <p class="since">Since 2.22</p>
537 </div>
538 <hr>
539 <div class="refsect2" title="g_socket_connection_factory_lookup_type ()">
540 <a name="g-socket-connection-factory-lookup-type"></a><h3>g_socket_connection_factory_lookup_type ()</h3>
541 <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
542 (<em class="parameter"><code><a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a> family</code></em>,
543 <em class="parameter"><code><a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a> type</code></em>,
544 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> protocol_id</code></em>);</pre>
546 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
547 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>.
548 </p>
550 If no type is registered, the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> base type is returned.
551 </p>
552 <div class="variablelist"><table border="0">
553 <col align="left" valign="top">
554 <tbody>
555 <tr>
556 <td><p><span class="term"><em class="parameter"><code>family</code></em> :</span></p></td>
557 <td>a <a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a>
558 </td>
559 </tr>
560 <tr>
561 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
562 <td>a <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a>
563 </td>
564 </tr>
565 <tr>
566 <td><p><span class="term"><em class="parameter"><code>protocol_id</code></em> :</span></p></td>
567 <td>a protocol id
568 </td>
569 </tr>
570 <tr>
571 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
572 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>
574 </td>
575 </tr>
576 </tbody>
577 </table></div>
578 <p class="since">Since 2.22</p>
579 </div>
580 <hr>
581 <div class="refsect2" title="g_socket_connection_factory_register_type ()">
582 <a name="g-socket-connection-factory-register-type"></a><h3>g_socket_connection_factory_register_type ()</h3>
583 <pre class="programlisting"><span class="returnvalue">void</span> g_socket_connection_factory_register_type
584 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> g_type</code></em>,
585 <em class="parameter"><code><a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a> family</code></em>,
586 <em class="parameter"><code><a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a> type</code></em>,
587 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> protocol</code></em>);</pre>
589 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
590 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>.
591 </p>
593 If no type is registered, the <a class="link" href="GSocketConnection.html" title="GSocketConnection"><span class="type">GSocketConnection</span></a> base type is returned.
594 </p>
595 <div class="variablelist"><table border="0">
596 <col align="left" valign="top">
597 <tbody>
598 <tr>
599 <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
600 <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>
601 </td>
602 </tr>
603 <tr>
604 <td><p><span class="term"><em class="parameter"><code>family</code></em> :</span></p></td>
605 <td>a <a class="link" href="GSocketAddress.html#GSocketFamily" title="enum GSocketFamily"><span class="type">GSocketFamily</span></a>
606 </td>
607 </tr>
608 <tr>
609 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
610 <td>a <a class="link" href="GSocket.html#GSocketType" title="enum GSocketType"><span class="type">GSocketType</span></a>
611 </td>
612 </tr>
613 <tr>
614 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
615 <td>a protocol id
616 </td>
617 </tr>
618 </tbody>
619 </table></div>
620 <p class="since">Since 2.22</p>
621 </div>
622 </div>
623 <div class="refsect1" title="Property Details">
624 <a name="GSocketConnection.property-details"></a><h2>Property Details</h2>
625 <div class="refsect2" title='The "socket" property'>
626 <a name="GSocketConnection--socket"></a><h3>The <code class="literal">"socket"</code> property</h3>
627 <pre class="programlisting"> "socket" <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>* : Read / Write / Construct Only</pre>
628 <p>The underlying GSocket.</p>
629 </div>
630 <hr>
631 <div class="refsect2" title='The "graceful-disconnect" property'>
632 <a name="GTcpConnection--graceful-disconnect"></a><h3>The <code class="literal">"graceful-disconnect"</code> property</h3>
633 <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>
634 <p>Whether or not close does a graceful disconnect.</p>
635 <p>Default value: FALSE</p>
636 </div>
637 </div>
638 <div class="refsect1" title="See Also">
639 <a name="GSocketConnection.see-also"></a><h2>See Also</h2>
640 <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>
641 </div>
642 </div>
643 <div class="footer">
644 <hr>
645 Generated by GTK-Doc V1.15</div>
646 </body>
647 </html>