8
8
<link rel="up" href="networking.html" title="Lowlevel platform-independent network support">
9
9
<link rel="prev" href="GUnixSocketAddress.html" title="GUnixSocketAddress">
10
10
<link rel="next" href="GUnixFDList.html" title="GUnixFDList">
11
<meta name="generator" content="GTK-Doc V1.13 (XML mode)">
11
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
<link rel="part" href="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">
44
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
45
15
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
71
41
<a name="GSocketControlMessage.synopsis"></a><h2>Synopsis</h2>
72
42
<pre class="synopsis"> <a class="link" href="GSocketControlMessage.html#GSocketControlMessage-struct" title="GSocketControlMessage">GSocketControlMessage</a>;
73
43
<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> * <a class="link" href="GSocketControlMessage.html#g-socket-control-message-deserialize" title="g_socket_control_message_deserialize ()">g_socket_control_message_deserialize</a>
74
(<span class="returnvalue">int</span> level,
75
<span class="returnvalue">int</span> type,
76
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a> size,
77
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> data);
78
<span class="returnvalue">int</span> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-get-level" title="g_socket_control_message_get_level ()">g_socket_control_message_get_level</a> (<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message);
44
(<em class="parameter"><code><span class="type">int</span> level</code></em>,
45
<em class="parameter"><code><span class="type">int</span> type</code></em>,
46
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
47
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
48
<span class="returnvalue">int</span> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-get-level" title="g_socket_control_message_get_level ()">g_socket_control_message_get_level</a> (<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>);
79
49
<span class="returnvalue">int</span> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-get-msg-type" title="g_socket_control_message_get_msg_type ()">g_socket_control_message_get_msg_type</a>
80
(<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message);
81
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-get-size" title="g_socket_control_message_get_size ()">g_socket_control_message_get_size</a> (<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message);
82
<span class="returnvalue">void</span> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-serialize" title="g_socket_control_message_serialize ()">g_socket_control_message_serialize</a> (<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message,
83
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> data);
50
(<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>);
51
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-get-size" title="g_socket_control_message_get_size ()">g_socket_control_message_get_size</a> (<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>);
52
<span class="returnvalue">void</span> <a class="link" href="GSocketControlMessage.html#g-socket-control-message-serialize" title="g_socket_control_message_serialize ()">g_socket_control_message_serialize</a> (<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>,
53
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
86
56
<div class="refsect1" title="Object Hierarchy">
87
57
<a name="GSocketControlMessage.object-hierarchy"></a><h2>Object Hierarchy</h2>
88
58
<pre class="synopsis">
89
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
59
<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>
90
60
+----GSocketControlMessage
91
61
+----<a class="link" href="GUnixFDMessage.html" title="GUnixFDMessage">GUnixFDMessage</a>
117
87
To extend the set of control messages that can be received, subclass
118
88
this class and implement the deserialize method. Also, make sure your
119
89
class is registered with the GType typesystem before calling
120
<a class="link" href="GSocket.html#g-socket-receive-message" title="g_socket_receive_message ()"><code class="function">g_socket_receive_message()</code></a> to read such a message.</p>
90
<a class="link" href="GSocket.html#g-socket-receive-message" title="g_socket_receive_message ()"><code class="function">g_socket_receive_message()</code></a> to read such a message.
122
93
<div class="refsect1" title="Details">
123
94
<a name="GSocketControlMessage.details"></a><h2>Details</h2>
126
97
<pre class="programlisting">typedef struct _GSocketControlMessage GSocketControlMessage;</pre>
128
99
Base class for socket-type specific control messages that can be sent and
129
received over <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>.</p>
100
received over <a class="link" href="GSocket.html" title="GSocket"><span class="type">GSocket</span></a>.
132
104
<div class="refsect2" title="g_socket_control_message_deserialize ()">
133
105
<a name="g-socket-control-message-deserialize"></a><h3>g_socket_control_message_deserialize ()</h3>
134
106
<pre class="programlisting"><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> * g_socket_control_message_deserialize
135
(<span class="returnvalue">int</span> level,
136
<span class="returnvalue">int</span> type,
137
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a> size,
138
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
107
(<em class="parameter"><code><span class="type">int</span> level</code></em>,
108
<em class="parameter"><code><span class="type">int</span> type</code></em>,
109
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
110
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
140
112
Tries to deserialize a socket control message of a given
141
113
<em class="parameter"><code>level</code></em> and <em class="parameter"><code>type</code></em>. This will ask all known (to GType) subclasses
143
115
of message and if so deserialize it into a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>.
146
If there is no implementation for this kind of control message, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
147
will be returned.</p>
118
If there is no implementation for this kind of control message, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
148
121
<div class="variablelist"><table border="0">
149
122
<col align="left" valign="top">
152
125
<td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
157
130
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
158
<td> a socket control message type for the given <em class="parameter"><code>level</code></em>
131
<td>a socket control message type for the given <em class="parameter"><code>level</code></em>
162
135
<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
163
<td> the size of the data in bytes
136
<td>the size of the data in bytes
167
140
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
168
<td> pointer to the message data
141
<td>pointer to the message data
172
145
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
173
<td> the deserialized message or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
146
<td> the deserialized message or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
182
155
<div class="refsect2" title="g_socket_control_message_get_level ()">
183
156
<a name="g-socket-control-message-get-level"></a><h3>g_socket_control_message_get_level ()</h3>
184
<pre class="programlisting"><span class="returnvalue">int</span> g_socket_control_message_get_level (<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message);</pre>
157
<pre class="programlisting"><span class="returnvalue">int</span> g_socket_control_message_get_level (<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>);</pre>
186
159
Returns the "level" (i.e. the originating protocol) of the control message.
187
This is often SOL_SOCKET.</p>
160
This is often SOL_SOCKET.
188
162
<div class="variablelist"><table border="0">
189
163
<col align="left" valign="top">
192
166
<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
193
<td> a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
167
<td>a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
207
181
<div class="refsect2" title="g_socket_control_message_get_msg_type ()">
208
182
<a name="g-socket-control-message-get-msg-type"></a><h3>g_socket_control_message_get_msg_type ()</h3>
209
183
<pre class="programlisting"><span class="returnvalue">int</span> g_socket_control_message_get_msg_type
210
(<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message);</pre>
184
(<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>);</pre>
212
186
Returns the protocol specific type of the control message.
213
For instance, for UNIX fd passing this would be SCM_RIGHTS.</p>
187
For instance, for UNIX fd passing this would be SCM_RIGHTS.
214
189
<div class="variablelist"><table border="0">
215
190
<col align="left" valign="top">
218
193
<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
219
<td> a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
194
<td>a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
233
208
<div class="refsect2" title="g_socket_control_message_get_size ()">
234
209
<a name="g-socket-control-message-get-size"></a><h3>g_socket_control_message_get_size ()</h3>
235
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a> g_socket_control_message_get_size (<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message);</pre>
210
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a> g_socket_control_message_get_size (<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>);</pre>
237
212
Returns the space required for the control message, not including
238
headers or alignment.</p>
213
headers or alignment.
239
215
<div class="variablelist"><table border="0">
240
216
<col align="left" valign="top">
243
219
<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
244
<td> a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
220
<td>a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
258
234
<div class="refsect2" title="g_socket_control_message_serialize ()">
259
235
<a name="g-socket-control-message-serialize"></a><h3>g_socket_control_message_serialize ()</h3>
260
<pre class="programlisting"><span class="returnvalue">void</span> g_socket_control_message_serialize (<a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="returnvalue">GSocketControlMessage</span></a> *message,
261
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
236
<pre class="programlisting"><span class="returnvalue">void</span> g_socket_control_message_serialize (<em class="parameter"><code><a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a> *message</code></em>,
237
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
263
239
Converts the data in the message to bytes placed in the
267
243
<em class="parameter"><code>data</code></em> is guaranteed to have enough space to fit the size
268
244
returned by <a class="link" href="GSocketControlMessage.html#g-socket-control-message-get-size" title="g_socket_control_message_get_size ()"><code class="function">g_socket_control_message_get_size()</code></a> on this
270
247
<div class="variablelist"><table border="0">
271
248
<col align="left" valign="top">
274
251
<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
275
<td> a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
252
<td>a <a class="link" href="GSocketControlMessage.html" title="GSocketControlMessage"><span class="type">GSocketControlMessage</span></a>
279
256
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
280
<td> A buffer to write data to
257
<td>A buffer to write data to