Merge lp:~attente/gobject-introspection/glib-gio-gir into lp:ubuntu/saucy/gobject-introspection
- glib-gio-gir
- Merge into saucy
Status: | Rejected |
---|---|
Rejected by: | Martin Pitt |
Proposed branch: | lp:~attente/gobject-introspection/glib-gio-gir |
Merge into: | lp:ubuntu/saucy/gobject-introspection |
Diff against target: |
71296 lines (+71170/-4) 8 files modified
.pc/applied-patches (+1/-0) .pc/update-gir-for-gicon-support.patch/gir/gio-2.0.c (+33538/-0) .pc/update-gir-for-gicon-support.patch/gir/glib-2.0.c (+33976/-0) debian/changelog (+7/-0) debian/patches/series (+1/-0) debian/patches/update-gir-for-gicon-support.patch (+2064/-0) gir/gio-2.0.c (+1556/-4) gir/glib-2.0.c (+27/-0) |
To merge this branch: | bzr merge lp:~attente/gobject-introspection/glib-gio-gir |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Pitt | Disapprove | ||
Review via email: mp+170142@code.launchpad.net |
Commit message
Cherry pick commit 70cc4b9479943ec
Description of the change
Cherry pick commit 70cc4b9479943ec
Martin Pitt (pitti) wrote : | # |
Rejecting because of above reason. Please feel free to subscribe me to the upstream bug, I'll handle it in due course.
Martin Pitt (pitti) wrote : | # |
Oh sorry, the preview diff here was truncated. How did you generate that patch? Just regenerating the annotations with misc/update-
William Hua (attente) wrote : | # |
Hi, sorry for neglecting this for so long. I reverted the original annotations update which I had regenerated manually, and replaced it with a cherry pick of commit 70cc4b9479943ec
Martin Pitt (pitti) wrote : | # |
I just uploaded g-i 1.37.4, this patch should be included there.
Unmerged revisions
- 44. By William Hua
-
Cherry pick 70cc4b9479943ec
95d3b95b1786b79 c9bfd2cce0 from upstream. - 43. By William Hua
-
Revert debian/
patches/ update- gir-for- gicon-support. patch. - 42. By William Hua
-
* debian/
patches/ update- gir-for- gicon-support. patch:
- Update glib-2.0.gir and gio-2.0.gir from source annotations.
Preview Diff
1 | === added file '.pc/applied-patches' |
2 | --- .pc/applied-patches 1970-01-01 00:00:00 +0000 |
3 | +++ .pc/applied-patches 2013-06-18 17:04:26 +0000 |
4 | @@ -0,0 +1,1 @@ |
5 | +update-gir-for-gicon-support.patch |
6 | |
7 | === removed file '.pc/applied-patches' |
8 | === added directory '.pc/update-gir-for-gicon-support.patch' |
9 | === added directory '.pc/update-gir-for-gicon-support.patch/gir' |
10 | === added file '.pc/update-gir-for-gicon-support.patch/gir/gio-2.0.c' |
11 | --- .pc/update-gir-for-gicon-support.patch/gir/gio-2.0.c 1970-01-01 00:00:00 +0000 |
12 | +++ .pc/update-gir-for-gicon-support.patch/gir/gio-2.0.c 2013-06-18 17:04:26 +0000 |
13 | @@ -0,0 +1,33538 @@ |
14 | +/************************************************************/ |
15 | +/* THIS FILE IS GENERATED DO NOT EDIT */ |
16 | +/************************************************************/ |
17 | + |
18 | +/** |
19 | + * GAction:enabled: |
20 | + * |
21 | + * If @action is currently enabled. |
22 | + * |
23 | + * If the action is disabled then calls to g_action_activate() and |
24 | + * g_action_change_state() have no effect. |
25 | + * |
26 | + * Since: 2.28 |
27 | + */ |
28 | + |
29 | + |
30 | +/** |
31 | + * GAction:name: |
32 | + * |
33 | + * The name of the action. This is mostly meaningful for identifying |
34 | + * the action once it has been added to a #GActionGroup. |
35 | + * |
36 | + * Since: 2.28 |
37 | + */ |
38 | + |
39 | + |
40 | +/** |
41 | + * GAction:parameter-type: |
42 | + * |
43 | + * The type of the parameter that must be given when activating the |
44 | + * action. |
45 | + * |
46 | + * Since: 2.28 |
47 | + */ |
48 | + |
49 | + |
50 | +/** |
51 | + * GAction:state: |
52 | + * |
53 | + * The state of the action, or %NULL if the action is stateless. |
54 | + * |
55 | + * Since: 2.28 |
56 | + */ |
57 | + |
58 | + |
59 | +/** |
60 | + * GAction:state-type: |
61 | + * |
62 | + * The #GVariantType of the state that the action has, or %NULL if the |
63 | + * action is stateless. |
64 | + * |
65 | + * Since: 2.28 |
66 | + */ |
67 | + |
68 | + |
69 | +/** |
70 | + * GActionEntry: |
71 | + * @name: the name of the action |
72 | + * @activate: the callback to connect to the "activate" signal of the action |
73 | + * @parameter_type: the type of the parameter that must be passed to the activate function for this action, given as a single GVariant type string (or %NULL for no parameter) |
74 | + * @state: the initial state for this action, given in GVariant text format. The state is parsed with no extra type information, so type tags must be added to the string if they are necessary. |
75 | + * @change_state: the callback to connect to the "change-state" signal of the action |
76 | + * |
77 | + * This struct defines a single action. It is for use with |
78 | + * g_action_map_add_action_entries(). |
79 | + * |
80 | + * The order of the items in the structure are intended to reflect |
81 | + * frequency of use. It is permissible to use an incomplete initialiser |
82 | + * in order to leave some of the later values as %NULL. All values |
83 | + * after @name are optional. Additional optional fields may be added in |
84 | + * the future. |
85 | + * |
86 | + * See g_action_map_add_action_entries() for an example. |
87 | + */ |
88 | + |
89 | + |
90 | +/** |
91 | + * GActionGroup::action-added: |
92 | + * @action_group: the #GActionGroup that changed |
93 | + * @action_name: the name of the action in @action_group |
94 | + * |
95 | + * Signals that a new action was just added to the group. |
96 | + * This signal is emitted after the action has been added |
97 | + * and is now visible. |
98 | + * |
99 | + * Since: 2.28 |
100 | + */ |
101 | + |
102 | + |
103 | +/** |
104 | + * GActionGroup::action-enabled-changed: |
105 | + * @action_group: the #GActionGroup that changed |
106 | + * @action_name: the name of the action in @action_group |
107 | + * @enabled: whether the action is enabled or not |
108 | + * |
109 | + * Signals that the enabled status of the named action has changed. |
110 | + * |
111 | + * Since: 2.28 |
112 | + */ |
113 | + |
114 | + |
115 | +/** |
116 | + * GActionGroup::action-removed: |
117 | + * @action_group: the #GActionGroup that changed |
118 | + * @action_name: the name of the action in @action_group |
119 | + * |
120 | + * Signals that an action is just about to be removed from the group. |
121 | + * This signal is emitted before the action is removed, so the action |
122 | + * is still visible and can be queried from the signal handler. |
123 | + * |
124 | + * Since: 2.28 |
125 | + */ |
126 | + |
127 | + |
128 | +/** |
129 | + * GActionGroup::action-state-changed: |
130 | + * @action_group: the #GActionGroup that changed |
131 | + * @action_name: the name of the action in @action_group |
132 | + * @value: the new value of the state |
133 | + * |
134 | + * Signals that the state of the named action has changed. |
135 | + * |
136 | + * Since: 2.28 |
137 | + */ |
138 | + |
139 | + |
140 | +/** |
141 | + * GActionGroupInterface: |
142 | + * @has_action: the virtual function pointer for g_action_group_has_action() |
143 | + * @list_actions: the virtual function pointer for g_action_group_list_actions() |
144 | + * @get_action_parameter_type: the virtual function pointer for g_action_group_get_action_parameter_type() |
145 | + * @get_action_state_type: the virtual function pointer for g_action_group_get_action_state_type() |
146 | + * @get_action_state_hint: the virtual function pointer for g_action_group_get_action_state_hint() |
147 | + * @get_action_enabled: the virtual function pointer for g_action_group_get_action_enabled() |
148 | + * @get_action_state: the virtual function pointer for g_action_group_get_action_state() |
149 | + * @change_action_state: the virtual function pointer for g_action_group_change_action_state() |
150 | + * @query_action: the virtual function pointer for g_action_group_query_action() |
151 | + * @activate_action: the virtual function pointer for g_action_group_activate_action() |
152 | + * @action_added: the class closure for the #GActionGroup::action-added signal |
153 | + * @action_removed: the class closure for the #GActionGroup::action-removed signal |
154 | + * @action_enabled_changed: the class closure for the #GActionGroup::action-enabled-changed signal |
155 | + * @action_state_changed: the class closure for the #GActionGroup::action-enabled-changed signal |
156 | + * |
157 | + * The virtual function table for #GActionGroup. |
158 | + * |
159 | + * Since: 2.28 |
160 | + */ |
161 | + |
162 | + |
163 | +/** |
164 | + * GActionInterface: |
165 | + * @get_name: the virtual function pointer for g_action_get_name() |
166 | + * @get_parameter_type: the virtual function pointer for g_action_get_parameter_type() |
167 | + * @get_state_type: the virtual function pointer for g_action_get_state_type() |
168 | + * @get_state_hint: the virtual function pointer for g_action_get_state_hint() |
169 | + * @get_enabled: the virtual function pointer for g_action_get_enabled() |
170 | + * @get_state: the virtual function pointer for g_action_get_state() |
171 | + * @change_state: the virtual function pointer for g_action_change_state() |
172 | + * @activate: the virtual function pointer for g_action_activate(). Note that #GAction does not have an 'activate' signal but that implementations of it may have one. |
173 | + * |
174 | + * The virtual function table for #GAction. |
175 | + * |
176 | + * Since: 2.28 |
177 | + */ |
178 | + |
179 | + |
180 | +/** |
181 | + * GActionMapInterface: |
182 | + * @lookup_action: the virtual function pointer for g_action_map_lookup_action() |
183 | + * @add_action: the virtual function pointer for g_action_map_add_action() |
184 | + * @remove_action: the virtual function pointer for g_action_map_remove_action() |
185 | + * |
186 | + * The virtual function table for #GActionMap. |
187 | + * |
188 | + * Since: 2.32 |
189 | + */ |
190 | + |
191 | + |
192 | +/** |
193 | + * GApplication::activate: |
194 | + * @application: the application |
195 | + * |
196 | + * The ::activate signal is emitted on the primary instance when an |
197 | + * activation occurs. See g_application_activate(). |
198 | + */ |
199 | + |
200 | + |
201 | +/** |
202 | + * GApplication::command-line: |
203 | + * @application: the application |
204 | + * @command_line: a #GApplicationCommandLine representing the passed commandline |
205 | + * |
206 | + * The ::command-line signal is emitted on the primary instance when |
207 | + * a commandline is not handled locally. See g_application_run() and |
208 | + * the #GApplicationCommandLine documentation for more information. |
209 | + * |
210 | + * Returns: An integer that is set as the exit status for the calling process. See g_application_command_line_set_exit_status(). |
211 | + */ |
212 | + |
213 | + |
214 | +/** |
215 | + * GApplication::open: |
216 | + * @application: the application |
217 | + * @files: (array length=n_files) (element-type GFile): an array of #GFiles |
218 | + * @n_files: the length of @files |
219 | + * @hint: a hint provided by the calling instance |
220 | + * |
221 | + * The ::open signal is emitted on the primary instance when there are |
222 | + * files to open. See g_application_open() for more information. |
223 | + */ |
224 | + |
225 | + |
226 | +/** |
227 | + * GApplication::shutdown: |
228 | + * @application: the application |
229 | + * |
230 | + * The ::shutdown signal is emitted only on the registered primary instance |
231 | + * immediately after the main loop terminates. |
232 | + */ |
233 | + |
234 | + |
235 | +/** |
236 | + * GApplication::startup: |
237 | + * @application: the application |
238 | + * |
239 | + * The ::startup signal is emitted on the primary instance immediately |
240 | + * after registration. See g_application_register(). |
241 | + */ |
242 | + |
243 | + |
244 | +/** |
245 | + * GApplicationClass: |
246 | + * @startup: invoked on the primary instance immediately after registration |
247 | + * @shutdown: invoked only on the registered primary instance immediately after the main loop terminates |
248 | + * @activate: invoked on the primary instance when an activation occurs |
249 | + * @open: invoked on the primary instance when there are files to open |
250 | + * @command_line: invoked on the primary instance when a command-line is not handled locally |
251 | + * @local_command_line: invoked (locally) when the process has been invoked via commandline execution (as opposed to, say, D-Bus activation - which is not currently supported by GApplication). The virtual function has the chance to inspect (and possibly replace) the list of command line arguments. See g_application_run() for more information. |
252 | + * @before_emit: invoked on the primary instance before 'activate', 'open', 'command-line' or any action invocation, gets the 'platform data' from the calling instance |
253 | + * @after_emit: invoked on the primary instance after 'activate', 'open', 'command-line' or any action invocation, gets the 'platform data' from the calling instance |
254 | + * @add_platform_data: invoked (locally) to add 'platform data' to be sent to the primary instance when activating, opening or invoking actions |
255 | + * @quit_mainloop: Used to be invoked on the primary instance when the use count of the application drops to zero (and after any inactivity timeout, if requested). Not used anymore since 2.32 |
256 | + * @run_mainloop: Used to be invoked on the primary instance from g_application_run() if the use-count is non-zero. Since 2.32, GApplication is iterating the main context directly and is not using @run_mainloop anymore |
257 | + * @dbus_register: invoked locally during registration, if the application is using its D-Bus backend. You can use this to export extra objects on the bus, that need to exist before the application tries to own the bus name. The function is passed the #GDBusConnection to to session bus, and the object path that #GApplication will use to export is D-Bus API. If this function returns %TRUE, registration will proceed; otherwise registration will abort. Since: 2.34 |
258 | + * @dbus_unregister: invoked locally during unregistration, if the application is using its D-Bus backend. Use this to undo anything done by the @dbus_register vfunc. Since: 2.34 |
259 | + * |
260 | + * Virtual function table for #GApplication. |
261 | + * |
262 | + * Since: 2.28 |
263 | + */ |
264 | + |
265 | + |
266 | +/** |
267 | + * GApplicationCommandLineClass: |
268 | + * |
269 | + * The <structname>GApplicationCommandLineClass</structname> structure |
270 | + * contains private data only |
271 | + * |
272 | + * Since: 2.28 |
273 | + */ |
274 | + |
275 | + |
276 | +/** |
277 | + * GCancellable::cancelled: |
278 | + * @cancellable: a #GCancellable. |
279 | + * |
280 | + * Emitted when the operation has been cancelled. |
281 | + * |
282 | + * Can be used by implementations of cancellable operations. If the |
283 | + * operation is cancelled from another thread, the signal will be |
284 | + * emitted in the thread that cancelled the operation, not the |
285 | + * thread that is running the operation. |
286 | + * |
287 | + * Note that disconnecting from this signal (or any signal) in a |
288 | + * multi-threaded program is prone to race conditions. For instance |
289 | + * it is possible that a signal handler may be invoked even |
290 | + * <emphasis>after</emphasis> a call to |
291 | + * g_signal_handler_disconnect() for that handler has already |
292 | + * returned. |
293 | + * |
294 | + * There is also a problem when cancellation happen |
295 | + * right before connecting to the signal. If this happens the |
296 | + * signal will unexpectedly not be emitted, and checking before |
297 | + * connecting to the signal leaves a race condition where this is |
298 | + * still happening. |
299 | + * |
300 | + * In order to make it safe and easy to connect handlers there |
301 | + * are two helper functions: g_cancellable_connect() and |
302 | + * g_cancellable_disconnect() which protect against problems |
303 | + * like this. |
304 | + * |
305 | + * An example of how to us this: |
306 | + * |[ |
307 | + * /<!-- -->* Make sure we don't do any unnecessary work if already cancelled *<!-- -->/ |
308 | + * if (g_cancellable_set_error_if_cancelled (cancellable)) |
309 | + * return; |
310 | + * |
311 | + * /<!-- -->* Set up all the data needed to be able to |
312 | + * * handle cancellation of the operation *<!-- -->/ |
313 | + * my_data = my_data_new (...); |
314 | + * |
315 | + * id = 0; |
316 | + * if (cancellable) |
317 | + * id = g_cancellable_connect (cancellable, |
318 | + * G_CALLBACK (cancelled_handler) |
319 | + * data, NULL); |
320 | + * |
321 | + * /<!-- -->* cancellable operation here... *<!-- -->/ |
322 | + * |
323 | + * g_cancellable_disconnect (cancellable, id); |
324 | + * |
325 | + * /<!-- -->* cancelled_handler is never called after this, it |
326 | + * * is now safe to free the data *<!-- -->/ |
327 | + * my_data_free (my_data); |
328 | + * ]| |
329 | + * |
330 | + * Note that the cancelled signal is emitted in the thread that |
331 | + * the user cancelled from, which may be the main thread. So, the |
332 | + * cancellable signal should not do something that can block. |
333 | + */ |
334 | + |
335 | + |
336 | +/** |
337 | + * GCharsetConverter: |
338 | + * |
339 | + * Conversions between character sets. |
340 | + */ |
341 | + |
342 | + |
343 | +/** |
344 | + * GCredentials: |
345 | + * |
346 | + * The #GCredentials structure contains only private data and |
347 | + * should only be accessed using the provided API. |
348 | + * |
349 | + * Since: 2.26 |
350 | + */ |
351 | + |
352 | + |
353 | +/** |
354 | + * GCredentialsClass: |
355 | + * |
356 | + * Class structure for #GCredentials. |
357 | + * |
358 | + * Since: 2.26 |
359 | + */ |
360 | + |
361 | + |
362 | +/** |
363 | + * GDBusAuthMechanism:credentials: |
364 | + * |
365 | + * If authenticating as a server, this property contains the |
366 | + * received credentials, if any. |
367 | + * |
368 | + * If authenticating as a client, the property contains the |
369 | + * credentials that were sent, if any. |
370 | + */ |
371 | + |
372 | + |
373 | +/** |
374 | + * GDBusAuthObserver: |
375 | + * |
376 | + * The #GDBusAuthObserver structure contains only private data and |
377 | + * should only be accessed using the provided API. |
378 | + * |
379 | + * Since: 2.26 |
380 | + */ |
381 | + |
382 | + |
383 | +/** |
384 | + * GDBusAuthObserver::allow-mechanism: |
385 | + * @observer: The #GDBusAuthObserver emitting the signal. |
386 | + * @mechanism: The name of the mechanism, e.g. <literal>DBUS_COOKIE_SHA1</literal>. |
387 | + * |
388 | + * Emitted to check if @mechanism is allowed to be used. |
389 | + * |
390 | + * Returns: %TRUE if @mechanism can be used to authenticate the other peer, %FALSE if not. |
391 | + * Since: 2.34 |
392 | + */ |
393 | + |
394 | + |
395 | +/** |
396 | + * GDBusAuthObserver::authorize-authenticated-peer: |
397 | + * @observer: The #GDBusAuthObserver emitting the signal. |
398 | + * @stream: A #GIOStream for the #GDBusConnection. |
399 | + * @credentials: (allow-none): Credentials received from the peer or %NULL. |
400 | + * |
401 | + * Emitted to check if a peer that is successfully authenticated |
402 | + * is authorized. |
403 | + * |
404 | + * Returns: %TRUE if the peer is authorized, %FALSE if not. |
405 | + * Since: 2.26 |
406 | + */ |
407 | + |
408 | + |
409 | +/** |
410 | + * GDBusAuthObserverClass: |
411 | + * @authorize_authenticated_peer: Signal class handler for the #GDBusAuthObserver::authorize-authenticated-peer signal. |
412 | + * |
413 | + * Class structure for #GDBusAuthObserverClass. |
414 | + * |
415 | + * Since: 2.26 |
416 | + */ |
417 | + |
418 | + |
419 | +/** |
420 | + * GDBusConnection: |
421 | + * |
422 | + * The #GDBusConnection structure contains only private data and |
423 | + * should only be accessed using the provided API. |
424 | + * |
425 | + * Since: 2.26 |
426 | + */ |
427 | + |
428 | + |
429 | +/** |
430 | + * GDBusConnection::closed: |
431 | + * @connection: The #GDBusConnection emitting the signal. |
432 | + * @remote_peer_vanished: %TRUE if @connection is closed because the remote peer closed its end of the connection. |
433 | + * @error: (allow-none): A #GError with more details about the event or %NULL. |
434 | + * |
435 | + * Emitted when the connection is closed. |
436 | + * |
437 | + * The cause of this event can be |
438 | + * <itemizedlist> |
439 | + * <listitem><para> |
440 | + * If g_dbus_connection_close() is called. In this case |
441 | + * @remote_peer_vanished is set to %FALSE and @error is %NULL. |
442 | + * </para></listitem> |
443 | + * <listitem><para> |
444 | + * If the remote peer closes the connection. In this case |
445 | + * @remote_peer_vanished is set to %TRUE and @error is set. |
446 | + * </para></listitem> |
447 | + * <listitem><para> |
448 | + * If the remote peer sends invalid or malformed data. In this |
449 | + * case @remote_peer_vanished is set to %FALSE and @error |
450 | + * is set. |
451 | + * </para></listitem> |
452 | + * </itemizedlist> |
453 | + * |
454 | + * Upon receiving this signal, you should give up your reference to |
455 | + * @connection. You are guaranteed that this signal is emitted only |
456 | + * once. |
457 | + * |
458 | + * Since: 2.26 |
459 | + */ |
460 | + |
461 | + |
462 | +/** |
463 | + * GDBusConnection:address: |
464 | + * |
465 | + * A D-Bus address specifying potential endpoints that can be used |
466 | + * when establishing the connection. |
467 | + * |
468 | + * Since: 2.26 |
469 | + */ |
470 | + |
471 | + |
472 | +/** |
473 | + * GDBusConnection:authentication-observer: |
474 | + * |
475 | + * A #GDBusAuthObserver object to assist in the authentication process or %NULL. |
476 | + * |
477 | + * Since: 2.26 |
478 | + */ |
479 | + |
480 | + |
481 | +/** |
482 | + * GDBusConnection:capabilities: |
483 | + * |
484 | + * Flags from the #GDBusCapabilityFlags enumeration |
485 | + * representing connection features negotiated with the other peer. |
486 | + * |
487 | + * Since: 2.26 |
488 | + */ |
489 | + |
490 | + |
491 | +/** |
492 | + * GDBusConnection:closed: |
493 | + * |
494 | + * A boolean specifying whether the connection has been closed. |
495 | + * |
496 | + * Since: 2.26 |
497 | + */ |
498 | + |
499 | + |
500 | +/** |
501 | + * GDBusConnection:exit-on-close: |
502 | + * |
503 | + * A boolean specifying whether the process will be terminated (by |
504 | + * calling <literal>raise(SIGTERM)</literal>) if the connection |
505 | + * is closed by the remote peer. |
506 | + * |
507 | + * Note that #GDBusConnection objects returned by g_bus_get_finish() and |
508 | + * g_bus_get_sync() will (usually) have this property set to %TRUE. |
509 | + * |
510 | + * Since: 2.26 |
511 | + */ |
512 | + |
513 | + |
514 | +/** |
515 | + * GDBusConnection:flags: |
516 | + * |
517 | + * Flags from the #GDBusConnectionFlags enumeration. |
518 | + * |
519 | + * Since: 2.26 |
520 | + */ |
521 | + |
522 | + |
523 | +/** |
524 | + * GDBusConnection:guid: |
525 | + * |
526 | + * The GUID of the peer performing the role of server when |
527 | + * authenticating. |
528 | + * |
529 | + * If you are constructing a #GDBusConnection and pass |
530 | + * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER in the |
531 | + * #GDBusConnection:flags property then you MUST also set this |
532 | + * property to a valid guid. |
533 | + * |
534 | + * If you are constructing a #GDBusConnection and pass |
535 | + * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT in the |
536 | + * #GDBusConnection:flags property you will be able to read the GUID |
537 | + * of the other peer here after the connection has been successfully |
538 | + * initialized. |
539 | + * |
540 | + * Since: 2.26 |
541 | + */ |
542 | + |
543 | + |
544 | +/** |
545 | + * GDBusConnection:locked: |
546 | + * |
547 | + * A boolean specifying whether the message is locked. |
548 | + * |
549 | + * Since: 2.26 |
550 | + */ |
551 | + |
552 | + |
553 | +/** |
554 | + * GDBusConnection:stream: |
555 | + * |
556 | + * The underlying #GIOStream used for I/O. |
557 | + * |
558 | + * If this is passed on construction and is a #GSocketConnection, |
559 | + * then the corresponding #GSocket will be put into non-blocking mode. |
560 | + * |
561 | + * While the #GDBusConnection is active, it will interact with this |
562 | + * stream from a worker thread, so it is not safe to interact with |
563 | + * the stream directly. |
564 | + * |
565 | + * Since: 2.26 |
566 | + */ |
567 | + |
568 | + |
569 | +/** |
570 | + * GDBusConnection:unique-name: |
571 | + * |
572 | + * The unique name as assigned by the message bus or %NULL if the |
573 | + * connection is not open or not a message bus connection. |
574 | + * |
575 | + * Since: 2.26 |
576 | + */ |
577 | + |
578 | + |
579 | +/** |
580 | + * GDBusConnectionClass: |
581 | + * @closed: Signal class handler for the #GDBusConnection::closed signal. |
582 | + * |
583 | + * Class structure for #GDBusConnection. |
584 | + * |
585 | + * Since: 2.26 |
586 | + */ |
587 | + |
588 | + |
589 | +/** |
590 | + * GDBusInterfaceSkeleton::g-authorize-method: |
591 | + * @interface: The #GDBusInterfaceSkeleton emitting the signal. |
592 | + * @invocation: A #GDBusMethodInvocation. |
593 | + * |
594 | + * Emitted when a method is invoked by a remote caller and used to |
595 | + * determine if the method call is authorized. |
596 | + * |
597 | + * Note that this signal is emitted in a thread dedicated to |
598 | + * handling the method call so handlers are allowed to perform |
599 | + * blocking IO. This means that it is appropriate to call |
600 | + * e.g. <ulink |
601 | + * url="http://hal.freedesktop.org/docs/polkit/PolkitAuthority.html#polkit-authority-check-authorization-sync">polkit_authority_check_authorization_sync()</ulink> |
602 | + * with the <ulink |
603 | + * url="http://hal.freedesktop.org/docs/polkit/PolkitAuthority.html#POLKIT-CHECK-AUTHORIZATION-FLAGS-ALLOW-USER-INTERACTION:CAPS">POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION</ulink> flag set. |
604 | + * |
605 | + * If %FALSE is returned then no further handlers are run and the |
606 | + * signal handler must take a reference to @invocation and finish |
607 | + * handling the call (e.g. return an error via |
608 | + * g_dbus_method_invocation_return_error()). |
609 | + * |
610 | + * Otherwise, if %TRUE is returned, signal emission continues. If no |
611 | + * handlers return %FALSE, then the method is dispatched. If |
612 | + * @interface has an enclosing #GDBusObjectSkeleton, then the |
613 | + * #GDBusObjectSkeleton::authorize-method signal handlers run before |
614 | + * the handlers for this signal. |
615 | + * |
616 | + * The default class handler just returns %TRUE. |
617 | + * |
618 | + * Please note that the common case is optimized: if no signals |
619 | + * handlers are connected and the default class handler isn't |
620 | + * overridden (for both @interface and the enclosing |
621 | + * #GDBusObjectSkeleton, if any) and #GDBusInterfaceSkeleton:g-flags does |
622 | + * not have the |
623 | + * %G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD |
624 | + * flags set, no dedicated thread is ever used and the call will be |
625 | + * handled in the same thread as the object that @interface belongs |
626 | + * to was exported in. |
627 | + * |
628 | + * Returns: %TRUE if the call is authorized, %FALSE otherwise. |
629 | + * Since: 2.30 |
630 | + */ |
631 | + |
632 | + |
633 | +/** |
634 | + * GDBusInterfaceSkeleton:g-flags: |
635 | + * |
636 | + * Flags from the #GDBusInterfaceSkeletonFlags enumeration. |
637 | + * |
638 | + * Since: 2.30 |
639 | + */ |
640 | + |
641 | + |
642 | +/** |
643 | + * GDBusMessage: |
644 | + * |
645 | + * The #GDBusMessage structure contains only private data and should |
646 | + * only be accessed using the provided API. |
647 | + * |
648 | + * Since: 2.26 |
649 | + */ |
650 | + |
651 | + |
652 | +/** |
653 | + * GDBusMessageClass: |
654 | + * |
655 | + * Class structure for #GDBusMessage. |
656 | + * |
657 | + * Since: 2.26 |
658 | + */ |
659 | + |
660 | + |
661 | +/** |
662 | + * GDBusMethodInvocation: |
663 | + * |
664 | + * The #GDBusMethodInvocation structure contains only private data and |
665 | + * should only be accessed using the provided API. |
666 | + * |
667 | + * Since: 2.26 |
668 | + */ |
669 | + |
670 | + |
671 | +/** |
672 | + * GDBusMethodInvocationClass: |
673 | + * |
674 | + * Class structure for #GDBusMethodInvocation. |
675 | + * |
676 | + * Since: 2.26 |
677 | + */ |
678 | + |
679 | + |
680 | +/** |
681 | + * GDBusObject::interface-added: |
682 | + * @object: The #GDBusObject emitting the signal. |
683 | + * @interface: The #GDBusInterface that was added. |
684 | + * |
685 | + * Emitted when @interface is added to @object. |
686 | + * |
687 | + * Since: 2.30 |
688 | + */ |
689 | + |
690 | + |
691 | +/** |
692 | + * GDBusObject::interface-removed: |
693 | + * @object: The #GDBusObject emitting the signal. |
694 | + * @interface: The #GDBusInterface that was removed. |
695 | + * |
696 | + * Emitted when @interface is removed from @object. |
697 | + * |
698 | + * Since: 2.30 |
699 | + */ |
700 | + |
701 | + |
702 | +/** |
703 | + * GDBusObjectManager::interface-added: |
704 | + * @manager: The #GDBusObjectManager emitting the signal. |
705 | + * @object: The #GDBusObject on which an interface was added. |
706 | + * @interface: The #GDBusInterface that was added. |
707 | + * |
708 | + * Emitted when @interface is added to @object. |
709 | + * |
710 | + * This signal exists purely as a convenience to avoid having to |
711 | + * connect signals to all objects managed by @manager. |
712 | + * |
713 | + * Since: 2.30 |
714 | + */ |
715 | + |
716 | + |
717 | +/** |
718 | + * GDBusObjectManager::interface-removed: |
719 | + * @manager: The #GDBusObjectManager emitting the signal. |
720 | + * @object: The #GDBusObject on which an interface was removed. |
721 | + * @interface: The #GDBusInterface that was removed. |
722 | + * |
723 | + * Emitted when @interface has been removed from @object. |
724 | + * |
725 | + * This signal exists purely as a convenience to avoid having to |
726 | + * connect signals to all objects managed by @manager. |
727 | + * |
728 | + * Since: 2.30 |
729 | + */ |
730 | + |
731 | + |
732 | +/** |
733 | + * GDBusObjectManager::object-added: |
734 | + * @manager: The #GDBusObjectManager emitting the signal. |
735 | + * @object: The #GDBusObject that was added. |
736 | + * |
737 | + * Emitted when @object is added to @manager. |
738 | + * |
739 | + * Since: 2.30 |
740 | + */ |
741 | + |
742 | + |
743 | +/** |
744 | + * GDBusObjectManager::object-removed: |
745 | + * @manager: The #GDBusObjectManager emitting the signal. |
746 | + * @object: The #GDBusObject that was removed. |
747 | + * |
748 | + * Emitted when @object is removed from @manager. |
749 | + * |
750 | + * Since: 2.30 |
751 | + */ |
752 | + |
753 | + |
754 | +/** |
755 | + * GDBusObjectManagerClient::interface-proxy-properties-changed: |
756 | + * @manager: The #GDBusObjectManagerClient emitting the signal. |
757 | + * @object_proxy: The #GDBusObjectProxy on which an interface has properties that are changing. |
758 | + * @interface_proxy: The #GDBusProxy that has properties that are changing. |
759 | + * @changed_properties: A #GVariant containing the properties that changed. |
760 | + * @invalidated_properties: A %NULL terminated array of properties that was invalidated. |
761 | + * |
762 | + * Emitted when one or more D-Bus properties on proxy changes. The |
763 | + * local cache has already been updated when this signal fires. Note |
764 | + * that both @changed_properties and @invalidated_properties are |
765 | + * guaranteed to never be %NULL (either may be empty though). |
766 | + * |
767 | + * This signal exists purely as a convenience to avoid having to |
768 | + * connect signals to all interface proxies managed by @manager. |
769 | + * |
770 | + * This signal is emitted in the |
771 | + * <link linkend="g-main-context-push-thread-default">thread-default main loop</link> |
772 | + * that @manager was constructed in. |
773 | + * |
774 | + * Since: 2.30 |
775 | + */ |
776 | + |
777 | + |
778 | +/** |
779 | + * GDBusObjectManagerClient::interface-proxy-signal: |
780 | + * @manager: The #GDBusObjectManagerClient emitting the signal. |
781 | + * @object_proxy: The #GDBusObjectProxy on which an interface is emitting a D-Bus signal. |
782 | + * @interface_proxy: The #GDBusProxy that is emitting a D-Bus signal. |
783 | + * @sender_name: The sender of the signal or NULL if the connection is not a bus connection. |
784 | + * @signal_name: The signal name. |
785 | + * @parameters: A #GVariant tuple with parameters for the signal. |
786 | + * |
787 | + * Emitted when a D-Bus signal is received on @interface_proxy. |
788 | + * |
789 | + * This signal exists purely as a convenience to avoid having to |
790 | + * connect signals to all interface proxies managed by @manager. |
791 | + * |
792 | + * This signal is emitted in the |
793 | + * <link linkend="g-main-context-push-thread-default">thread-default main loop</link> |
794 | + * that @manager was constructed in. |
795 | + * |
796 | + * Since: 2.30 |
797 | + */ |
798 | + |
799 | + |
800 | +/** |
801 | + * GDBusObjectManagerClient:bus-type: |
802 | + * |
803 | + * If this property is not %G_BUS_TYPE_NONE, then |
804 | + * #GDBusObjectManagerClient:connection must be %NULL and will be set to the |
805 | + * #GDBusConnection obtained by calling g_bus_get() with the value |
806 | + * of this property. |
807 | + * |
808 | + * Since: 2.30 |
809 | + */ |
810 | + |
811 | + |
812 | +/** |
813 | + * GDBusObjectManagerClient:connection: |
814 | + * |
815 | + * The #GDBusConnection to use. |
816 | + * |
817 | + * Since: 2.30 |
818 | + */ |
819 | + |
820 | + |
821 | +/** |
822 | + * GDBusObjectManagerClient:flags: |
823 | + * |
824 | + * Flags from the #GDBusObjectManagerClientFlags enumeration. |
825 | + * |
826 | + * Since: 2.30 |
827 | + */ |
828 | + |
829 | + |
830 | +/** |
831 | + * GDBusObjectManagerClient:get-proxy-type-destroy-notify: |
832 | + * |
833 | + * A #GDestroyNotify for the #gpointer user_data in #GDBusObjectManagerClient:get-proxy-type-user-data. |
834 | + * |
835 | + * Since: 2.30 |
836 | + */ |
837 | + |
838 | + |
839 | +/** |
840 | + * GDBusObjectManagerClient:get-proxy-type-func: |
841 | + * |
842 | + * The #GDBusProxyTypeFunc to use when determining what #GType to |
843 | + * use for interface proxies or %NULL. |
844 | + * |
845 | + * Since: 2.30 |
846 | + */ |
847 | + |
848 | + |
849 | +/** |
850 | + * GDBusObjectManagerClient:get-proxy-type-user-data: |
851 | + * |
852 | + * The #gpointer user_data to pass to #GDBusObjectManagerClient:get-proxy-type-func. |
853 | + * |
854 | + * Since: 2.30 |
855 | + */ |
856 | + |
857 | + |
858 | +/** |
859 | + * GDBusObjectManagerClient:name: |
860 | + * |
861 | + * The well-known name or unique name that the manager is for. |
862 | + * |
863 | + * Since: 2.30 |
864 | + */ |
865 | + |
866 | + |
867 | +/** |
868 | + * GDBusObjectManagerClient:name-owner: |
869 | + * |
870 | + * The unique name that owns #GDBusObjectManagerClient:name or %NULL if |
871 | + * no-one is currently owning the name. Connect to the |
872 | + * #GObject::notify signal to track changes to this property. |
873 | + * |
874 | + * Since: 2.30 |
875 | + */ |
876 | + |
877 | + |
878 | +/** |
879 | + * GDBusObjectManagerClient:object-path: |
880 | + * |
881 | + * The object path the manager is for. |
882 | + * |
883 | + * Since: 2.30 |
884 | + */ |
885 | + |
886 | + |
887 | +/** |
888 | + * GDBusObjectManagerServer:connection: |
889 | + * |
890 | + * The #GDBusConnection to export objects on. |
891 | + * |
892 | + * Since: 2.30 |
893 | + */ |
894 | + |
895 | + |
896 | +/** |
897 | + * GDBusObjectManagerServer:object-path: |
898 | + * |
899 | + * The object path to register the manager object at. |
900 | + * |
901 | + * Since: 2.30 |
902 | + */ |
903 | + |
904 | + |
905 | +/** |
906 | + * GDBusObjectProxy:g-connection: |
907 | + * |
908 | + * The connection of the proxy. |
909 | + * |
910 | + * Since: 2.30 |
911 | + */ |
912 | + |
913 | + |
914 | +/** |
915 | + * GDBusObjectProxy:g-object-path: |
916 | + * |
917 | + * The object path of the proxy. |
918 | + * |
919 | + * Since: 2.30 |
920 | + */ |
921 | + |
922 | + |
923 | +/** |
924 | + * GDBusObjectSkeleton::authorize-method: |
925 | + * @object: The #GDBusObjectSkeleton emitting the signal. |
926 | + * @interface: The #GDBusInterfaceSkeleton that @invocation is for. |
927 | + * @invocation: A #GDBusMethodInvocation. |
928 | + * |
929 | + * Emitted when a method is invoked by a remote caller and used to |
930 | + * determine if the method call is authorized. |
931 | + * |
932 | + * This signal is like #GDBusInterfaceSkeleton<!-- -->'s |
933 | + * #GDBusInterfaceSkeleton::g-authorize-method signal, except that it is |
934 | + * for the enclosing object. |
935 | + * |
936 | + * The default class handler just returns %TRUE. |
937 | + * |
938 | + * Returns: %TRUE if the call is authorized, %FALSE otherwise. |
939 | + * Since: 2.30 |
940 | + */ |
941 | + |
942 | + |
943 | +/** |
944 | + * GDBusObjectSkeleton:g-object-path: |
945 | + * |
946 | + * The object path where the object is exported. |
947 | + * |
948 | + * Since: 2.30 |
949 | + */ |
950 | + |
951 | + |
952 | +/** |
953 | + * GDBusProxy::g-properties-changed: |
954 | + * @proxy: The #GDBusProxy emitting the signal. |
955 | + * @changed_properties: A #GVariant containing the properties that changed |
956 | + * @invalidated_properties: A %NULL terminated array of properties that was invalidated |
957 | + * |
958 | + * Emitted when one or more D-Bus properties on @proxy changes. The |
959 | + * local cache has already been updated when this signal fires. Note |
960 | + * that both @changed_properties and @invalidated_properties are |
961 | + * guaranteed to never be %NULL (either may be empty though). |
962 | + * |
963 | + * If the proxy has the flag |
964 | + * %G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES set, then |
965 | + * @invalidated_properties will always be empty. |
966 | + * |
967 | + * This signal corresponds to the |
968 | + * <literal>PropertiesChanged</literal> D-Bus signal on the |
969 | + * <literal>org.freedesktop.DBus.Properties</literal> interface. |
970 | + * |
971 | + * Since: 2.26 |
972 | + */ |
973 | + |
974 | + |
975 | +/** |
976 | + * GDBusProxy::g-signal: |
977 | + * @proxy: The #GDBusProxy emitting the signal. |
978 | + * @sender_name: (allow-none): The sender of the signal or %NULL if the connection is not a bus connection. |
979 | + * @signal_name: The name of the signal. |
980 | + * @parameters: A #GVariant tuple with parameters for the signal. |
981 | + * |
982 | + * Emitted when a signal from the remote object and interface that @proxy is for, has been received. |
983 | + * |
984 | + * Since: 2.26 |
985 | + */ |
986 | + |
987 | + |
988 | +/** |
989 | + * GDBusProxy:g-bus-type: |
990 | + * |
991 | + * If this property is not %G_BUS_TYPE_NONE, then |
992 | + * #GDBusProxy:g-connection must be %NULL and will be set to the |
993 | + * #GDBusConnection obtained by calling g_bus_get() with the value |
994 | + * of this property. |
995 | + * |
996 | + * Since: 2.26 |
997 | + */ |
998 | + |
999 | + |
1000 | +/** |
1001 | + * GDBusProxy:g-connection: |
1002 | + * |
1003 | + * The #GDBusConnection the proxy is for. |
1004 | + * |
1005 | + * Since: 2.26 |
1006 | + */ |
1007 | + |
1008 | + |
1009 | +/** |
1010 | + * GDBusProxy:g-default-timeout: |
1011 | + * |
1012 | + * The timeout to use if -1 (specifying default timeout) is passed |
1013 | + * as @timeout_msec in the g_dbus_proxy_call() and |
1014 | + * g_dbus_proxy_call_sync() functions. |
1015 | + * |
1016 | + * This allows applications to set a proxy-wide timeout for all |
1017 | + * remote method invocations on the proxy. If this property is -1, |
1018 | + * the default timeout (typically 25 seconds) is used. If set to |
1019 | + * %G_MAXINT, then no timeout is used. |
1020 | + * |
1021 | + * Since: 2.26 |
1022 | + */ |
1023 | + |
1024 | + |
1025 | +/** |
1026 | + * GDBusProxy:g-flags: |
1027 | + * |
1028 | + * Flags from the #GDBusProxyFlags enumeration. |
1029 | + * |
1030 | + * Since: 2.26 |
1031 | + */ |
1032 | + |
1033 | + |
1034 | +/** |
1035 | + * GDBusProxy:g-interface-info: |
1036 | + * |
1037 | + * Ensure that interactions with this proxy conform to the given |
1038 | + * interface. This is mainly to ensure that malformed data received |
1039 | + * from the other peer is ignored. The given #GDBusInterfaceInfo is |
1040 | + * said to be the <emphasis>expected interface</emphasis>. |
1041 | + * |
1042 | + * The checks performed are: |
1043 | + * <itemizedlist> |
1044 | + * <listitem><para> |
1045 | + * When completing a method call, if the type signature of |
1046 | + * the reply message isn't what's expected, the reply is |
1047 | + * discarded and the #GError is set to %G_IO_ERROR_INVALID_ARGUMENT. |
1048 | + * </para></listitem> |
1049 | + * <listitem><para> |
1050 | + * Received signals that have a type signature mismatch are dropped and |
1051 | + * a warning is logged via g_warning(). |
1052 | + * </para></listitem> |
1053 | + * <listitem><para> |
1054 | + * Properties received via the initial <literal>GetAll()</literal> call |
1055 | + * or via the <literal>::PropertiesChanged</literal> signal (on the |
1056 | + * <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties">org.freedesktop.DBus.Properties</ulink> interface) or |
1057 | + * set using g_dbus_proxy_set_cached_property() with a type signature |
1058 | + * mismatch are ignored and a warning is logged via g_warning(). |
1059 | + * </para></listitem> |
1060 | + * </itemizedlist> |
1061 | + * Note that these checks are never done on methods, signals and |
1062 | + * properties that are not referenced in the given |
1063 | + * #GDBusInterfaceInfo, since extending a D-Bus interface on the |
1064 | + * service-side is not considered an ABI break. |
1065 | + * |
1066 | + * Since: 2.26 |
1067 | + */ |
1068 | + |
1069 | + |
1070 | +/** |
1071 | + * GDBusProxy:g-interface-name: |
1072 | + * |
1073 | + * The D-Bus interface name the proxy is for. |
1074 | + * |
1075 | + * Since: 2.26 |
1076 | + */ |
1077 | + |
1078 | + |
1079 | +/** |
1080 | + * GDBusProxy:g-name: |
1081 | + * |
1082 | + * The well-known or unique name that the proxy is for. |
1083 | + * |
1084 | + * Since: 2.26 |
1085 | + */ |
1086 | + |
1087 | + |
1088 | +/** |
1089 | + * GDBusProxy:g-name-owner: |
1090 | + * |
1091 | + * The unique name that owns #GDBusProxy:g-name or %NULL if no-one |
1092 | + * currently owns that name. You may connect to #GObject::notify signal to |
1093 | + * track changes to this property. |
1094 | + * |
1095 | + * Since: 2.26 |
1096 | + */ |
1097 | + |
1098 | + |
1099 | +/** |
1100 | + * GDBusProxy:g-object-path: |
1101 | + * |
1102 | + * The object path the proxy is for. |
1103 | + * |
1104 | + * Since: 2.26 |
1105 | + */ |
1106 | + |
1107 | + |
1108 | +/** |
1109 | + * GDBusServer: |
1110 | + * |
1111 | + * The #GDBusServer structure contains only private data and |
1112 | + * should only be accessed using the provided API. |
1113 | + * |
1114 | + * Since: 2.26 |
1115 | + */ |
1116 | + |
1117 | + |
1118 | +/** |
1119 | + * GDBusServer::new-connection: |
1120 | + * @server: The #GDBusServer emitting the signal. |
1121 | + * @connection: A #GDBusConnection for the new connection. |
1122 | + * |
1123 | + * Emitted when a new authenticated connection has been made. Use |
1124 | + * g_dbus_connection_get_peer_credentials() to figure out what |
1125 | + * identity (if any), was authenticated. |
1126 | + * |
1127 | + * If you want to accept the connection, take a reference to the |
1128 | + * @connection object and return %TRUE. When you are done with the |
1129 | + * connection call g_dbus_connection_close() and give up your |
1130 | + * reference. Note that the other peer may disconnect at any time - |
1131 | + * a typical thing to do when accepting a connection is to listen to |
1132 | + * the #GDBusConnection::closed signal. |
1133 | + * |
1134 | + * If #GDBusServer:flags contains %G_DBUS_SERVER_FLAGS_RUN_IN_THREAD |
1135 | + * then the signal is emitted in a new thread dedicated to the |
1136 | + * connection. Otherwise the signal is emitted in the <link |
1137 | + * linkend="g-main-context-push-thread-default">thread-default main |
1138 | + * loop</link> of the thread that @server was constructed in. |
1139 | + * |
1140 | + * You are guaranteed that signal handlers for this signal runs |
1141 | + * before incoming messages on @connection are processed. This means |
1142 | + * that it's suitable to call g_dbus_connection_register_object() or |
1143 | + * similar from the signal handler. |
1144 | + * |
1145 | + * Returns: %TRUE to claim @connection, %FALSE to let other handlers run. |
1146 | + * Since: 2.26 |
1147 | + */ |
1148 | + |
1149 | + |
1150 | +/** |
1151 | + * GDBusServer:active: |
1152 | + * |
1153 | + * Whether the server is currently active. |
1154 | + * |
1155 | + * Since: 2.26 |
1156 | + */ |
1157 | + |
1158 | + |
1159 | +/** |
1160 | + * GDBusServer:address: |
1161 | + * |
1162 | + * The D-Bus address to listen on. |
1163 | + * |
1164 | + * Since: 2.26 |
1165 | + */ |
1166 | + |
1167 | + |
1168 | +/** |
1169 | + * GDBusServer:authentication-observer: |
1170 | + * |
1171 | + * A #GDBusAuthObserver object to assist in the authentication process or %NULL. |
1172 | + * |
1173 | + * Since: 2.26 |
1174 | + */ |
1175 | + |
1176 | + |
1177 | +/** |
1178 | + * GDBusServer:client-address: |
1179 | + * |
1180 | + * The D-Bus address that clients can use. |
1181 | + * |
1182 | + * Since: 2.26 |
1183 | + */ |
1184 | + |
1185 | + |
1186 | +/** |
1187 | + * GDBusServer:flags: |
1188 | + * |
1189 | + * Flags from the #GDBusServerFlags enumeration. |
1190 | + * |
1191 | + * Since: 2.26 |
1192 | + */ |
1193 | + |
1194 | + |
1195 | +/** |
1196 | + * GDBusServer:guid: |
1197 | + * |
1198 | + * The guid of the server. |
1199 | + * |
1200 | + * Since: 2.26 |
1201 | + */ |
1202 | + |
1203 | + |
1204 | +/** |
1205 | + * GDBusServerClass: |
1206 | + * @new_connection: Signal class handler for the #GDBusServer::new-connection signal. |
1207 | + * |
1208 | + * Class structure for #GDBusServer. |
1209 | + * |
1210 | + * Since: 2.26 |
1211 | + */ |
1212 | + |
1213 | + |
1214 | +/** |
1215 | + * GDataOutputStream:byte-order: |
1216 | + * |
1217 | + * Determines the byte ordering that is used when writing |
1218 | + * multi-byte entities (such as integers) to the stream. |
1219 | + */ |
1220 | + |
1221 | + |
1222 | +/** |
1223 | + * GDataStream:byte-order: |
1224 | + * |
1225 | + * The ::byte-order property determines the byte ordering that |
1226 | + * is used when reading multi-byte entities (such as integers) |
1227 | + * from the stream. |
1228 | + */ |
1229 | + |
1230 | + |
1231 | +/** |
1232 | + * GDataStream:newline-type: |
1233 | + * |
1234 | + * The :newline-type property determines what is considered |
1235 | + * as a line ending when reading complete lines from the stream. |
1236 | + */ |
1237 | + |
1238 | + |
1239 | +/** |
1240 | + * GDesktopAppInfo: |
1241 | + * |
1242 | + * Information about an installed application from a desktop file. |
1243 | + */ |
1244 | + |
1245 | + |
1246 | +/** |
1247 | + * GDesktopAppInfo:filename: |
1248 | + * |
1249 | + * The origin filename of this #GDesktopAppInfo |
1250 | + */ |
1251 | + |
1252 | + |
1253 | +/** |
1254 | + * GDrive::changed: |
1255 | + * @drive: a #GDrive. |
1256 | + * |
1257 | + * Emitted when the drive's state has changed. |
1258 | + */ |
1259 | + |
1260 | + |
1261 | +/** |
1262 | + * GDrive::disconnected: |
1263 | + * @drive: a #GDrive. |
1264 | + * |
1265 | + * This signal is emitted when the #GDrive have been |
1266 | + * disconnected. If the recipient is holding references to the |
1267 | + * object they should release them so the object can be |
1268 | + * finalized. |
1269 | + */ |
1270 | + |
1271 | + |
1272 | +/** |
1273 | + * GDrive::eject-button: |
1274 | + * @drive: a #GDrive. |
1275 | + * |
1276 | + * Emitted when the physical eject button (if any) of a drive has |
1277 | + * been pressed. |
1278 | + */ |
1279 | + |
1280 | + |
1281 | +/** |
1282 | + * GDrive::stop-button: |
1283 | + * @drive: a #GDrive. |
1284 | + * |
1285 | + * Emitted when the physical stop button (if any) of a drive has |
1286 | + * been pressed. |
1287 | + * |
1288 | + * Since: 2.22 |
1289 | + */ |
1290 | + |
1291 | + |
1292 | +/** |
1293 | + * GFileIcon:file: |
1294 | + * |
1295 | + * The file containing the icon. |
1296 | + */ |
1297 | + |
1298 | + |
1299 | +/** |
1300 | + * GFileMonitor::changed: |
1301 | + * @monitor: a #GFileMonitor. |
1302 | + * @file: a #GFile. |
1303 | + * @other_file: (allow-none): a #GFile or #NULL. |
1304 | + * @event_type: a #GFileMonitorEvent. |
1305 | + * |
1306 | + * Emitted when @file has been changed. |
1307 | + * |
1308 | + * If using #G_FILE_MONITOR_SEND_MOVED flag and @event_type is |
1309 | + * #G_FILE_MONITOR_EVENT_MOVED, @file will be set to a #GFile containing the |
1310 | + * old path, and @other_file will be set to a #GFile containing the new path. |
1311 | + * |
1312 | + * In all the other cases, @other_file will be set to #NULL. |
1313 | + */ |
1314 | + |
1315 | + |
1316 | +/** |
1317 | + * GFilenameCompleter::got-completion-data: |
1318 | + * |
1319 | + * Emitted when the file name completion information comes available. |
1320 | + */ |
1321 | + |
1322 | + |
1323 | +/** |
1324 | + * GIOModuleScope: |
1325 | + * |
1326 | + * Represents a scope for loading IO modules. A scope can be used for blocking |
1327 | + * duplicate modules, or blocking a module you don't want to load. |
1328 | + * |
1329 | + * The scope can be used with g_io_modules_load_all_in_directory_with_scope() |
1330 | + * or g_io_modules_scan_all_in_directory_with_scope(). |
1331 | + * |
1332 | + * Since: 2.30 |
1333 | + */ |
1334 | + |
1335 | + |
1336 | +/** |
1337 | + * GInetAddress: |
1338 | + * |
1339 | + * An IPv4 or IPv6 internet address. |
1340 | + */ |
1341 | + |
1342 | + |
1343 | +/** |
1344 | + * GInetAddress:is-any: |
1345 | + * |
1346 | + * Whether this is the "any" address for its family. |
1347 | + * See g_inet_address_get_is_any(). |
1348 | + * |
1349 | + * Since: 2.22 |
1350 | + */ |
1351 | + |
1352 | + |
1353 | +/** |
1354 | + * GInetAddress:is-link-local: |
1355 | + * |
1356 | + * Whether this is a link-local address. |
1357 | + * See g_inet_address_get_is_link_local(). |
1358 | + * |
1359 | + * Since: 2.22 |
1360 | + */ |
1361 | + |
1362 | + |
1363 | +/** |
1364 | + * GInetAddress:is-loopback: |
1365 | + * |
1366 | + * Whether this is the loopback address for its family. |
1367 | + * See g_inet_address_get_is_loopback(). |
1368 | + * |
1369 | + * Since: 2.22 |
1370 | + */ |
1371 | + |
1372 | + |
1373 | +/** |
1374 | + * GInetAddress:is-mc-global: |
1375 | + * |
1376 | + * Whether this is a global multicast address. |
1377 | + * See g_inet_address_get_is_mc_global(). |
1378 | + * |
1379 | + * Since: 2.22 |
1380 | + */ |
1381 | + |
1382 | + |
1383 | +/** |
1384 | + * GInetAddress:is-mc-link-local: |
1385 | + * |
1386 | + * Whether this is a link-local multicast address. |
1387 | + * See g_inet_address_get_is_mc_link_local(). |
1388 | + * |
1389 | + * Since: 2.22 |
1390 | + */ |
1391 | + |
1392 | + |
1393 | +/** |
1394 | + * GInetAddress:is-mc-node-local: |
1395 | + * |
1396 | + * Whether this is a node-local multicast address. |
1397 | + * See g_inet_address_get_is_mc_node_local(). |
1398 | + * |
1399 | + * Since: 2.22 |
1400 | + */ |
1401 | + |
1402 | + |
1403 | +/** |
1404 | + * GInetAddress:is-mc-org-local: |
1405 | + * |
1406 | + * Whether this is an organization-local multicast address. |
1407 | + * See g_inet_address_get_is_mc_org_local(). |
1408 | + * |
1409 | + * Since: 2.22 |
1410 | + */ |
1411 | + |
1412 | + |
1413 | +/** |
1414 | + * GInetAddress:is-mc-site-local: |
1415 | + * |
1416 | + * Whether this is a site-local multicast address. |
1417 | + * See g_inet_address_get_is_mc_site_local(). |
1418 | + * |
1419 | + * Since: 2.22 |
1420 | + */ |
1421 | + |
1422 | + |
1423 | +/** |
1424 | + * GInetAddress:is-multicast: |
1425 | + * |
1426 | + * Whether this is a multicast address. |
1427 | + * See g_inet_address_get_is_multicast(). |
1428 | + * |
1429 | + * Since: 2.22 |
1430 | + */ |
1431 | + |
1432 | + |
1433 | +/** |
1434 | + * GInetAddress:is-site-local: |
1435 | + * |
1436 | + * Whether this is a site-local address. |
1437 | + * See g_inet_address_get_is_loopback(). |
1438 | + * |
1439 | + * Since: 2.22 |
1440 | + */ |
1441 | + |
1442 | + |
1443 | +/** |
1444 | + * GInetAddressMask: |
1445 | + * |
1446 | + * A combination of an IPv4 or IPv6 base address and a length, |
1447 | + * representing a range of IP addresses. |
1448 | + * |
1449 | + * Since: 2.32 |
1450 | + */ |
1451 | + |
1452 | + |
1453 | +/** |
1454 | + * GInetSocketAddress: |
1455 | + * |
1456 | + * An IPv4 or IPv6 socket address, corresponding to a <type>struct |
1457 | + * sockaddr_in</type> or <type>struct sockaddr_in6</type>. |
1458 | + */ |
1459 | + |
1460 | + |
1461 | +/** |
1462 | + * GInetSocketAddress:flowinfo: |
1463 | + * |
1464 | + * The <literal>sin6_flowinfo</literal> field, for IPv6 addresses. |
1465 | + * |
1466 | + * Since: 2.32 |
1467 | + */ |
1468 | + |
1469 | + |
1470 | +/** |
1471 | + * GInetSocketAddress:scope_id: |
1472 | + * |
1473 | + * The <literal>sin6_scope_id</literal> field, for IPv6 addresses. |
1474 | + * |
1475 | + * Since: 2.32 |
1476 | + */ |
1477 | + |
1478 | + |
1479 | +/** |
1480 | + * GMemoryOutputStream:data: |
1481 | + * |
1482 | + * Pointer to buffer where data will be written. |
1483 | + * |
1484 | + * Since: 2.24 |
1485 | + */ |
1486 | + |
1487 | + |
1488 | +/** |
1489 | + * GMemoryOutputStream:data-size: |
1490 | + * |
1491 | + * Size of data written to the buffer. |
1492 | + * |
1493 | + * Since: 2.24 |
1494 | + */ |
1495 | + |
1496 | + |
1497 | +/** |
1498 | + * GMemoryOutputStream:destroy-function: (skip) |
1499 | + * |
1500 | + * Function called with the buffer as argument when the stream is destroyed. |
1501 | + * |
1502 | + * Since: 2.24 |
1503 | + */ |
1504 | + |
1505 | + |
1506 | +/** |
1507 | + * GMemoryOutputStream:realloc-function: (skip) |
1508 | + * |
1509 | + * Function with realloc semantics called to enlarge the buffer. |
1510 | + * |
1511 | + * Since: 2.24 |
1512 | + */ |
1513 | + |
1514 | + |
1515 | +/** |
1516 | + * GMemoryOutputStream:size: |
1517 | + * |
1518 | + * Current size of the data buffer. |
1519 | + * |
1520 | + * Since: 2.24 |
1521 | + */ |
1522 | + |
1523 | + |
1524 | +/** |
1525 | + * GMenu: |
1526 | + * |
1527 | + * #GMenu is an opaque structure type. You must access it using the |
1528 | + * functions below. |
1529 | + * |
1530 | + * Since: 2.32 |
1531 | + */ |
1532 | + |
1533 | + |
1534 | +/** |
1535 | + * GMenuAttributeIter: |
1536 | + * |
1537 | + * #GMenuAttributeIter is an opaque structure type. You must access it |
1538 | + * using the functions below. |
1539 | + * |
1540 | + * Since: 2.32 |
1541 | + */ |
1542 | + |
1543 | + |
1544 | +/** |
1545 | + * GMenuItem: |
1546 | + * |
1547 | + * #GMenuItem is an opaque structure type. You must access it using the |
1548 | + * functions below. |
1549 | + * |
1550 | + * Since: 2.32 |
1551 | + */ |
1552 | + |
1553 | + |
1554 | +/** |
1555 | + * GMenuLinkIter: |
1556 | + * |
1557 | + * #GMenuLinkIter is an opaque structure type. You must access it using |
1558 | + * the functions below. |
1559 | + * |
1560 | + * Since: 2.32 |
1561 | + */ |
1562 | + |
1563 | + |
1564 | +/** |
1565 | + * GMenuModel: |
1566 | + * |
1567 | + * #GMenuModel is an opaque structure type. You must access it using the |
1568 | + * functions below. |
1569 | + * |
1570 | + * Since: 2.32 |
1571 | + */ |
1572 | + |
1573 | + |
1574 | +/** |
1575 | + * GMenuModel::items-changed: |
1576 | + * @model: the #GMenuModel that is changing |
1577 | + * @position: the position of the change |
1578 | + * @removed: the number of items removed |
1579 | + * @added: the number of items added |
1580 | + * |
1581 | + * Emitted when a change has occured to the menu. |
1582 | + * |
1583 | + * The only changes that can occur to a menu is that items are removed |
1584 | + * or added. Items may not change (except by being removed and added |
1585 | + * back in the same location). This signal is capable of describing |
1586 | + * both of those changes (at the same time). |
1587 | + * |
1588 | + * The signal means that starting at the index @position, @removed |
1589 | + * items were removed and @added items were added in their place. If |
1590 | + * @removed is zero then only items were added. If @added is zero |
1591 | + * then only items were removed. |
1592 | + * |
1593 | + * As an example, if the menu contains items a, b, c, d (in that |
1594 | + * order) and the signal (2, 1, 3) occurs then the new composition of |
1595 | + * the menu will be a, b, _, _, _, d (with each _ representing some |
1596 | + * new item). |
1597 | + * |
1598 | + * Signal handlers may query the model (particularly the added items) |
1599 | + * and expect to see the results of the modification that is being |
1600 | + * reported. The signal is emitted after the modification. |
1601 | + */ |
1602 | + |
1603 | + |
1604 | +/** |
1605 | + * GMount::changed: |
1606 | + * @mount: the object on which the signal is emitted |
1607 | + * |
1608 | + * Emitted when the mount has been changed. |
1609 | + */ |
1610 | + |
1611 | + |
1612 | +/** |
1613 | + * GMount::pre-unmount: |
1614 | + * @mount: the object on which the signal is emitted |
1615 | + * |
1616 | + * This signal is emitted when the #GMount is about to be |
1617 | + * unmounted. |
1618 | + * |
1619 | + * Since: 2.22 |
1620 | + */ |
1621 | + |
1622 | + |
1623 | +/** |
1624 | + * GMount::unmounted: |
1625 | + * @mount: the object on which the signal is emitted |
1626 | + * |
1627 | + * This signal is emitted when the #GMount have been |
1628 | + * unmounted. If the recipient is holding references to the |
1629 | + * object they should release them so the object can be |
1630 | + * finalized. |
1631 | + */ |
1632 | + |
1633 | + |
1634 | +/** |
1635 | + * GMountOperation::aborted: |
1636 | + * |
1637 | + * Emitted by the backend when e.g. a device becomes unavailable |
1638 | + * while a mount operation is in progress. |
1639 | + * |
1640 | + * Implementations of GMountOperation should handle this signal |
1641 | + * by dismissing open password dialogs. |
1642 | + * |
1643 | + * Since: 2.20 |
1644 | + */ |
1645 | + |
1646 | + |
1647 | +/** |
1648 | + * GMountOperation::ask-password: |
1649 | + * @op: a #GMountOperation requesting a password. |
1650 | + * @message: string containing a message to display to the user. |
1651 | + * @default_user: string containing the default user name. |
1652 | + * @default_domain: string containing the default domain. |
1653 | + * @flags: a set of #GAskPasswordFlags. |
1654 | + * |
1655 | + * Emitted when a mount operation asks the user for a password. |
1656 | + * |
1657 | + * If the message contains a line break, the first line should be |
1658 | + * presented as a heading. For example, it may be used as the |
1659 | + * primary text in a #GtkMessageDialog. |
1660 | + */ |
1661 | + |
1662 | + |
1663 | +/** |
1664 | + * GMountOperation::ask-question: |
1665 | + * @op: a #GMountOperation asking a question. |
1666 | + * @message: string containing a message to display to the user. |
1667 | + * @choices: an array of strings for each possible choice. |
1668 | + * |
1669 | + * Emitted when asking the user a question and gives a list of |
1670 | + * choices for the user to choose from. |
1671 | + * |
1672 | + * If the message contains a line break, the first line should be |
1673 | + * presented as a heading. For example, it may be used as the |
1674 | + * primary text in a #GtkMessageDialog. |
1675 | + */ |
1676 | + |
1677 | + |
1678 | +/** |
1679 | + * GMountOperation::reply: |
1680 | + * @op: a #GMountOperation. |
1681 | + * @result: a #GMountOperationResult indicating how the request was handled |
1682 | + * |
1683 | + * Emitted when the user has replied to the mount operation. |
1684 | + */ |
1685 | + |
1686 | + |
1687 | +/** |
1688 | + * GMountOperation::show-processes: |
1689 | + * @op: a #GMountOperation. |
1690 | + * @message: string containing a message to display to the user. |
1691 | + * @processes: (element-type GPid): an array of #GPid for processes blocking the operation. |
1692 | + * @choices: an array of strings for each possible choice. |
1693 | + * |
1694 | + * Emitted when one or more processes are blocking an operation |
1695 | + * e.g. unmounting/ejecting a #GMount or stopping a #GDrive. |
1696 | + * |
1697 | + * Note that this signal may be emitted several times to update the |
1698 | + * list of blocking processes as processes close files. The |
1699 | + * application should only respond with g_mount_operation_reply() to |
1700 | + * the latest signal (setting #GMountOperation:choice to the choice |
1701 | + * the user made). |
1702 | + * |
1703 | + * If the message contains a line break, the first line should be |
1704 | + * presented as a heading. For example, it may be used as the |
1705 | + * primary text in a #GtkMessageDialog. |
1706 | + * |
1707 | + * Since: 2.22 |
1708 | + */ |
1709 | + |
1710 | + |
1711 | +/** |
1712 | + * GMountOperation::show-unmount-progress: |
1713 | + * @op: a #GMountOperation: |
1714 | + * @message: string containing a mesage to display to the user |
1715 | + * @time_left: the estimated time left before the operation completes, in microseconds, or -1 |
1716 | + * @bytes_left: the amount of bytes to be written before the operation completes (or -1 if such amount is not known), or zero if the operation is completed |
1717 | + * |
1718 | + * Emitted when an unmount operation has been busy for more than some time |
1719 | + * (typically 1.5 seconds). |
1720 | + * |
1721 | + * When unmounting or ejecting a volume, the kernel might need to flush |
1722 | + * pending data in its buffers to the volume stable storage, and this operation |
1723 | + * can take a considerable amount of time. This signal may be emitted several |
1724 | + * times as long as the unmount operation is outstanding, and then one |
1725 | + * last time when the operation is completed, with @bytes_left set to zero. |
1726 | + * |
1727 | + * Implementations of GMountOperation should handle this signal by |
1728 | + * showing an UI notification, and then dismiss it, or show another notification |
1729 | + * of completion, when @bytes_left reaches zero. |
1730 | + * |
1731 | + * If the message contains a line break, the first line should be |
1732 | + * presented as a heading. For example, it may be used as the |
1733 | + * primary text in a #GtkMessageDialog. |
1734 | + * |
1735 | + * Since: 2.34 |
1736 | + */ |
1737 | + |
1738 | + |
1739 | +/** |
1740 | + * GMountOperation:anonymous: |
1741 | + * |
1742 | + * Whether to use an anonymous user when authenticating. |
1743 | + */ |
1744 | + |
1745 | + |
1746 | +/** |
1747 | + * GMountOperation:choice: |
1748 | + * |
1749 | + * The index of the user's choice when a question is asked during the |
1750 | + * mount operation. See the #GMountOperation::ask-question signal. |
1751 | + */ |
1752 | + |
1753 | + |
1754 | +/** |
1755 | + * GMountOperation:domain: |
1756 | + * |
1757 | + * The domain to use for the mount operation. |
1758 | + */ |
1759 | + |
1760 | + |
1761 | +/** |
1762 | + * GMountOperation:password: |
1763 | + * |
1764 | + * The password that is used for authentication when carrying out |
1765 | + * the mount operation. |
1766 | + */ |
1767 | + |
1768 | + |
1769 | +/** |
1770 | + * GMountOperation:password-save: |
1771 | + * |
1772 | + * Determines if and how the password information should be saved. |
1773 | + */ |
1774 | + |
1775 | + |
1776 | +/** |
1777 | + * GMountOperation:username: |
1778 | + * |
1779 | + * The user name that is used for authentication when carrying out |
1780 | + * the mount operation. |
1781 | + */ |
1782 | + |
1783 | + |
1784 | +/** |
1785 | + * GNetworkAddress: |
1786 | + * |
1787 | + * A #GSocketConnectable for resolving a hostname and connecting to |
1788 | + * that host. |
1789 | + */ |
1790 | + |
1791 | + |
1792 | +/** |
1793 | + * GNetworkMonitor: |
1794 | + * |
1795 | + * #GNetworkMonitor monitors the status of network connections and |
1796 | + * indicates when a possibly-user-visible change has occurred. |
1797 | + * |
1798 | + * Since: 2.32 |
1799 | + */ |
1800 | + |
1801 | + |
1802 | +/** |
1803 | + * GNetworkMonitor::network-changed: |
1804 | + * @monitor: a #GNetworkMonitor |
1805 | + * @available: the current value of #GNetworkMonitor:network-available |
1806 | + * |
1807 | + * Emitted when the network configuration changes. If @available is |
1808 | + * %TRUE, then some hosts may be reachable that were not reachable |
1809 | + * before, while others that were reachable before may no longer be |
1810 | + * reachable. If @available is %FALSE, then no remote hosts are |
1811 | + * reachable. |
1812 | + * |
1813 | + * Since: 2.32 |
1814 | + */ |
1815 | + |
1816 | + |
1817 | +/** |
1818 | + * GNetworkMonitor:network-available: |
1819 | + * |
1820 | + * Whether the network is considered available. That is, whether the |
1821 | + * system has a default route for at least one of IPv4 or IPv6. |
1822 | + * |
1823 | + * Real-world networks are of course much more complicated than |
1824 | + * this; the machine may be connected to a wifi hotspot that |
1825 | + * requires payment before allowing traffic through, or may be |
1826 | + * connected to a functioning router that has lost its own upstream |
1827 | + * connectivity. Some hosts might only be accessible when a VPN is |
1828 | + * active. Other hosts might only be accessible when the VPN is |
1829 | + * <emphasis>not</emphasis> active. Thus, it is best to use |
1830 | + * g_network_monitor_can_reach() or |
1831 | + * g_network_monitor_can_reach_async() to test for reachability on a |
1832 | + * host-by-host basis. (On the other hand, when the property is |
1833 | + * %FALSE, the application can reasonably expect that no remote |
1834 | + * hosts at all are reachable, and should indicate this to the user |
1835 | + * in its UI.) |
1836 | + * |
1837 | + * See also #GNetworkMonitor::network-changed. |
1838 | + * |
1839 | + * Since: 2.32 |
1840 | + */ |
1841 | + |
1842 | + |
1843 | +/** |
1844 | + * GNetworkService: |
1845 | + * |
1846 | + * A #GSocketConnectable for resolving a SRV record and connecting to |
1847 | + * that service. |
1848 | + */ |
1849 | + |
1850 | + |
1851 | +/** |
1852 | + * GPermission: |
1853 | + * |
1854 | + * #GPermission is an opaque data structure and can only be accessed |
1855 | + * using the following functions. |
1856 | + */ |
1857 | + |
1858 | + |
1859 | +/** |
1860 | + * GPermission:allowed: |
1861 | + * |
1862 | + * %TRUE if the caller currently has permission to perform the action that |
1863 | + * @permission represents the permission to perform. |
1864 | + */ |
1865 | + |
1866 | + |
1867 | +/** |
1868 | + * GPermission:can-acquire: |
1869 | + * |
1870 | + * %TRUE if it is generally possible to acquire the permission by calling |
1871 | + * g_permission_acquire(). |
1872 | + */ |
1873 | + |
1874 | + |
1875 | +/** |
1876 | + * GPermission:can-release: |
1877 | + * |
1878 | + * %TRUE if it is generally possible to release the permission by calling |
1879 | + * g_permission_release(). |
1880 | + */ |
1881 | + |
1882 | + |
1883 | +/** |
1884 | + * GProxyAddress: |
1885 | + * |
1886 | + * A #GInetSocketAddress representing a connection via a proxy server |
1887 | + * |
1888 | + * Since: 2.26 |
1889 | + */ |
1890 | + |
1891 | + |
1892 | +/** |
1893 | + * GProxyAddress:destination-protocol: |
1894 | + * |
1895 | + * The protocol being spoke to the destination host, or %NULL if |
1896 | + * the #GProxyAddress doesn't know. |
1897 | + * |
1898 | + * Since: 2.34 |
1899 | + */ |
1900 | + |
1901 | + |
1902 | +/** |
1903 | + * GProxyAddress:uri: |
1904 | + * |
1905 | + * The URI string that the proxy was constructed from (or %NULL |
1906 | + * if the creator didn't specify this). |
1907 | + * |
1908 | + * Since: 2.34 |
1909 | + */ |
1910 | + |
1911 | + |
1912 | +/** |
1913 | + * GProxyAddressEnumerator:proxy-resolver: |
1914 | + * |
1915 | + * The proxy resolver to use. |
1916 | + * |
1917 | + * Since: 2.36 |
1918 | + */ |
1919 | + |
1920 | + |
1921 | +/** |
1922 | + * GRemoteActionGroupInterface: |
1923 | + * @activate_action_full: the virtual function pointer for g_remote_action_group_activate_action_full() |
1924 | + * @change_action_state_full: the virtual function pointer for g_remote_action_group_change_action_state_full() |
1925 | + * |
1926 | + * The virtual function table for #GRemoteActionGroup. |
1927 | + * |
1928 | + * Since: 2.32 |
1929 | + */ |
1930 | + |
1931 | + |
1932 | +/** |
1933 | + * GResolver: |
1934 | + * |
1935 | + * The object that handles DNS resolution. Use g_resolver_get_default() |
1936 | + * to get the default resolver. |
1937 | + */ |
1938 | + |
1939 | + |
1940 | +/** |
1941 | + * GResolver::reload: |
1942 | + * @resolver: a #GResolver |
1943 | + * |
1944 | + * Emitted when the resolver notices that the system resolver |
1945 | + * configuration has changed. |
1946 | + */ |
1947 | + |
1948 | + |
1949 | +/** |
1950 | + * GSettings::change-event: |
1951 | + * @settings: the object on which the signal was emitted |
1952 | + * @keys: (array length=n_keys) (element-type GQuark) (allow-none): an array of #GQuark<!-- -->s for the changed keys, or %NULL |
1953 | + * @n_keys: the length of the @keys array, or 0 |
1954 | + * |
1955 | + * The "change-event" signal is emitted once per change event that |
1956 | + * affects this settings object. You should connect to this signal |
1957 | + * only if you are interested in viewing groups of changes before they |
1958 | + * are split out into multiple emissions of the "changed" signal. |
1959 | + * For most use cases it is more appropriate to use the "changed" signal. |
1960 | + * |
1961 | + * In the event that the change event applies to one or more specified |
1962 | + * keys, @keys will be an array of #GQuark of length @n_keys. In the |
1963 | + * event that the change event applies to the #GSettings object as a |
1964 | + * whole (ie: potentially every key has been changed) then @keys will |
1965 | + * be %NULL and @n_keys will be 0. |
1966 | + * |
1967 | + * The default handler for this signal invokes the "changed" signal |
1968 | + * for each affected key. If any other connected handler returns |
1969 | + * %TRUE then this default functionality will be suppressed. |
1970 | + * |
1971 | + * Returns: %TRUE to stop other handlers from being invoked for the event. FALSE to propagate the event further. |
1972 | + */ |
1973 | + |
1974 | + |
1975 | +/** |
1976 | + * GSettings::changed: |
1977 | + * @settings: the object on which the signal was emitted |
1978 | + * @key: the name of the key that changed |
1979 | + * |
1980 | + * The "changed" signal is emitted when a key has potentially changed. |
1981 | + * You should call one of the g_settings_get() calls to check the new |
1982 | + * value. |
1983 | + * |
1984 | + * This signal supports detailed connections. You can connect to the |
1985 | + * detailed signal "changed::x" in order to only receive callbacks |
1986 | + * when key "x" changes. |
1987 | + */ |
1988 | + |
1989 | + |
1990 | +/** |
1991 | + * GSettings::writable-change-event: |
1992 | + * @settings: the object on which the signal was emitted |
1993 | + * @key: the quark of the key, or 0 |
1994 | + * |
1995 | + * The "writable-change-event" signal is emitted once per writability |
1996 | + * change event that affects this settings object. You should connect |
1997 | + * to this signal if you are interested in viewing groups of changes |
1998 | + * before they are split out into multiple emissions of the |
1999 | + * "writable-changed" signal. For most use cases it is more |
2000 | + * appropriate to use the "writable-changed" signal. |
2001 | + * |
2002 | + * In the event that the writability change applies only to a single |
2003 | + * key, @key will be set to the #GQuark for that key. In the event |
2004 | + * that the writability change affects the entire settings object, |
2005 | + * @key will be 0. |
2006 | + * |
2007 | + * The default handler for this signal invokes the "writable-changed" |
2008 | + * and "changed" signals for each affected key. This is done because |
2009 | + * changes in writability might also imply changes in value (if for |
2010 | + * example, a new mandatory setting is introduced). If any other |
2011 | + * connected handler returns %TRUE then this default functionality |
2012 | + * will be suppressed. |
2013 | + * |
2014 | + * Returns: %TRUE to stop other handlers from being invoked for the event. FALSE to propagate the event further. |
2015 | + */ |
2016 | + |
2017 | + |
2018 | +/** |
2019 | + * GSettings::writable-changed: |
2020 | + * @settings: the object on which the signal was emitted |
2021 | + * @key: the key |
2022 | + * |
2023 | + * The "writable-changed" signal is emitted when the writability of a |
2024 | + * key has potentially changed. You should call |
2025 | + * g_settings_is_writable() in order to determine the new status. |
2026 | + * |
2027 | + * This signal supports detailed connections. You can connect to the |
2028 | + * detailed signal "writable-changed::x" in order to only receive |
2029 | + * callbacks when the writability of "x" changes. |
2030 | + */ |
2031 | + |
2032 | + |
2033 | +/** |
2034 | + * GSettings:context: |
2035 | + * |
2036 | + * The name of the context that the settings are stored in. |
2037 | + */ |
2038 | + |
2039 | + |
2040 | +/** |
2041 | + * GSettings:delay-apply: |
2042 | + * |
2043 | + * Whether the #GSettings object is in 'delay-apply' mode. See |
2044 | + * g_settings_delay() for details. |
2045 | + * |
2046 | + * Since: 2.28 |
2047 | + */ |
2048 | + |
2049 | + |
2050 | +/** |
2051 | + * GSettings:has-unapplied: |
2052 | + * |
2053 | + * If this property is %TRUE, the #GSettings object has outstanding |
2054 | + * changes that will be applied when g_settings_apply() is called. |
2055 | + */ |
2056 | + |
2057 | + |
2058 | +/** |
2059 | + * GSettings:path: |
2060 | + * |
2061 | + * The path within the backend where the settings are stored. |
2062 | + */ |
2063 | + |
2064 | + |
2065 | +/** |
2066 | + * GSettings:schema: |
2067 | + * |
2068 | + * The name of the schema that describes the types of keys |
2069 | + * for this #GSettings object. |
2070 | + * |
2071 | + * The type of this property is *not* #GSettingsSchema. |
2072 | + * #GSettingsSchema has only existed since version 2.32 and |
2073 | + * unfortunately this name was used in previous versions to refer to |
2074 | + * the schema ID rather than the schema itself. Take care to use the |
2075 | + * 'settings-schema' property if you wish to pass in a |
2076 | + * #GSettingsSchema. |
2077 | + * |
2078 | + * Deprecated: 2.32:Use the 'schema-id' property instead. In a future version, this property may instead refer to a #GSettingsSchema. |
2079 | + */ |
2080 | + |
2081 | + |
2082 | +/** |
2083 | + * GSettings:schema-id: |
2084 | + * |
2085 | + * The name of the schema that describes the types of keys |
2086 | + * for this #GSettings object. |
2087 | + */ |
2088 | + |
2089 | + |
2090 | +/** |
2091 | + * GSettings:settings-schema: |
2092 | + * |
2093 | + * The #GSettingsSchema describing the types of keys for this |
2094 | + * #GSettings object. |
2095 | + * |
2096 | + * Ideally, this property would be called 'schema'. #GSettingsSchema |
2097 | + * has only existed since version 2.32, however, and before then the |
2098 | + * 'schema' property was used to refer to the ID of the schema rather |
2099 | + * than the schema itself. Take care. |
2100 | + */ |
2101 | + |
2102 | + |
2103 | +/** |
2104 | + * GSettingsSchema: |
2105 | + * |
2106 | + * This is an opaque structure type. You may not access it directly. |
2107 | + * |
2108 | + * Since: 2.32 |
2109 | + */ |
2110 | + |
2111 | + |
2112 | +/** |
2113 | + * GSettingsSchemaSource: |
2114 | + * |
2115 | + * This is an opaque structure type. You may not access it directly. |
2116 | + * |
2117 | + * Since: 2.32 |
2118 | + */ |
2119 | + |
2120 | + |
2121 | +/** |
2122 | + * GSimpleAction::activate: |
2123 | + * @simple: the #GSimpleAction |
2124 | + * @parameter: (allow-none): the parameter to the activation |
2125 | + * |
2126 | + * Indicates that the action was just activated. |
2127 | + * |
2128 | + * @parameter will always be of the expected type. In the event that |
2129 | + * an incorrect type was given, no signal will be emitted. |
2130 | + * |
2131 | + * Since: 2.28 |
2132 | + */ |
2133 | + |
2134 | + |
2135 | +/** |
2136 | + * GSimpleAction::change-state: |
2137 | + * @simple: the #GSimpleAction |
2138 | + * @value: (allow-none): the requested value for the state |
2139 | + * |
2140 | + * Indicates that the action just received a request to change its |
2141 | + * state. |
2142 | + * |
2143 | + * @value will always be of the correct state type. In the event that |
2144 | + * an incorrect type was given, no signal will be emitted. |
2145 | + * |
2146 | + * If no handler is connected to this signal then the default |
2147 | + * behaviour is to call g_simple_action_set_state() to set the state |
2148 | + * to the requested value. If you connect a signal handler then no |
2149 | + * default action is taken. If the state should change then you must |
2150 | + * call g_simple_action_set_state() from the handler. |
2151 | + * |
2152 | + * <example> |
2153 | + * <title>Example 'change-state' handler</title> |
2154 | + * <programlisting> |
2155 | + * static void |
2156 | + * change_volume_state (GSimpleAction *action, |
2157 | + * GVariant *value, |
2158 | + * gpointer user_data) |
2159 | + * { |
2160 | + * gint requested; |
2161 | + * |
2162 | + * requested = g_variant_get_int32 (value); |
2163 | + * |
2164 | + * // Volume only goes from 0 to 10 |
2165 | + * if (0 <= requested && requested <= 10) |
2166 | + * g_simple_action_set_state (action, value); |
2167 | + * } |
2168 | + * </programlisting> |
2169 | + * </example> |
2170 | + * |
2171 | + * The handler need not set the state to the requested value. It |
2172 | + * could set it to any value at all, or take some other action. |
2173 | + * |
2174 | + * Since: 2.30 |
2175 | + */ |
2176 | + |
2177 | + |
2178 | +/** |
2179 | + * GSimpleAction:enabled: |
2180 | + * |
2181 | + * If @action is currently enabled. |
2182 | + * |
2183 | + * If the action is disabled then calls to g_action_activate() and |
2184 | + * g_action_change_state() have no effect. |
2185 | + * |
2186 | + * Since: 2.28 |
2187 | + */ |
2188 | + |
2189 | + |
2190 | +/** |
2191 | + * GSimpleAction:name: |
2192 | + * |
2193 | + * The name of the action. This is mostly meaningful for identifying |
2194 | + * the action once it has been added to a #GSimpleActionGroup. |
2195 | + * |
2196 | + * Since: 2.28 |
2197 | + */ |
2198 | + |
2199 | + |
2200 | +/** |
2201 | + * GSimpleAction:parameter-type: |
2202 | + * |
2203 | + * The type of the parameter that must be given when activating the |
2204 | + * action. |
2205 | + * |
2206 | + * Since: 2.28 |
2207 | + */ |
2208 | + |
2209 | + |
2210 | +/** |
2211 | + * GSimpleAction:state: |
2212 | + * |
2213 | + * The state of the action, or %NULL if the action is stateless. |
2214 | + * |
2215 | + * Since: 2.28 |
2216 | + */ |
2217 | + |
2218 | + |
2219 | +/** |
2220 | + * GSimpleAction:state-type: |
2221 | + * |
2222 | + * The #GVariantType of the state that the action has, or %NULL if the |
2223 | + * action is stateless. |
2224 | + * |
2225 | + * Since: 2.28 |
2226 | + */ |
2227 | + |
2228 | + |
2229 | +/** |
2230 | + * GSimplePermission: |
2231 | + * |
2232 | + * #GSimplePermission is an opaque data structure. There are no methods |
2233 | + * except for those defined by #GPermission. |
2234 | + */ |
2235 | + |
2236 | + |
2237 | +/** |
2238 | + * GSimpleProxyResolver:default-proxy: |
2239 | + * |
2240 | + * The default proxy URI that will be used for any URI that doesn't |
2241 | + * match #GSimpleProxyResolver:ignore-hosts, and doesn't match any |
2242 | + * of the schemes set with g_simple_proxy_resolver_set_uri_proxy(). |
2243 | + * |
2244 | + * Note that as a special case, if this URI starts with |
2245 | + * "<literal>socks://</literal>", #GSimpleProxyResolver will treat |
2246 | + * it as referring to all three of the <literal>socks5</literal>, |
2247 | + * <literal>socks4a</literal>, and <literal>socks4</literal> proxy |
2248 | + * types. |
2249 | + */ |
2250 | + |
2251 | + |
2252 | +/** |
2253 | + * GSimpleProxyResolver:ignore-hosts: |
2254 | + * |
2255 | + * A list of hostnames and IP addresses that the resolver should |
2256 | + * allow direct connections to. |
2257 | + * |
2258 | + * Entries can be in one of 4 formats: |
2259 | + * |
2260 | + * <itemizedlist> |
2261 | + * <listitem> |
2262 | + * A hostname, such as "<literal>example.com</literal>", |
2263 | + * "<literal>.example.com</literal>", or |
2264 | + * "<literal>*.example.com</literal>", any of which match |
2265 | + * "<literal>example.com</literal>" or any subdomain of it. |
2266 | + * </listitem> |
2267 | + * <listitem> |
2268 | + * An IPv4 or IPv6 address, such as |
2269 | + * "<literal>192.168.1.1</literal>", which matches only |
2270 | + * that address. |
2271 | + * </listitem> |
2272 | + * <listitem> |
2273 | + * A hostname or IP address followed by a port, such as |
2274 | + * "<literal>example.com:80</literal>", which matches whatever |
2275 | + * the hostname or IP address would match, but only for URLs |
2276 | + * with the (explicitly) indicated port. In the case of an IPv6 |
2277 | + * address, the address part must appear in brackets: |
2278 | + * "<literal>[::1]:443</literal>" |
2279 | + * </listitem> |
2280 | + * <listitem> |
2281 | + * An IP address range, given by a base address and prefix length, |
2282 | + * such as "<literal>fe80::/10</literal>", which matches any |
2283 | + * address in that range. |
2284 | + * </listitem> |
2285 | + * </itemizedlist> |
2286 | + * |
2287 | + * Note that when dealing with Unicode hostnames, the matching is |
2288 | + * done against the ASCII form of the name. |
2289 | + * |
2290 | + * Also note that hostname exclusions apply only to connections made |
2291 | + * to hosts identified by name, and IP address exclusions apply only |
2292 | + * to connections made to hosts identified by address. That is, if |
2293 | + * <literal>example.com</literal> has an address of |
2294 | + * <literal>192.168.1.1</literal>, and the :ignore-hosts list |
2295 | + * contains only "<literal>192.168.1.1</literal>", then a connection |
2296 | + * to "<literal>example.com</literal>" (eg, via a #GNetworkAddress) |
2297 | + * will use the proxy, and a connection to |
2298 | + * "<literal>192.168.1.1</literal>" (eg, via a #GInetSocketAddress) |
2299 | + * will not. |
2300 | + * |
2301 | + * These rules match the "ignore-hosts"/"noproxy" rules most |
2302 | + * commonly used by other applications. |
2303 | + */ |
2304 | + |
2305 | + |
2306 | +/** |
2307 | + * GSocket:broadcast: |
2308 | + * |
2309 | + * Whether the socket should allow sending to and receiving from broadcast addresses. |
2310 | + * |
2311 | + * Since: 2.32 |
2312 | + */ |
2313 | + |
2314 | + |
2315 | +/** |
2316 | + * GSocket:multicast-loopback: |
2317 | + * |
2318 | + * Whether outgoing multicast packets loop back to the local host. |
2319 | + * |
2320 | + * Since: 2.32 |
2321 | + */ |
2322 | + |
2323 | + |
2324 | +/** |
2325 | + * GSocket:multicast-ttl: |
2326 | + * |
2327 | + * Time-to-live out outgoing multicast packets |
2328 | + * |
2329 | + * Since: 2.32 |
2330 | + */ |
2331 | + |
2332 | + |
2333 | +/** |
2334 | + * GSocket:timeout: |
2335 | + * |
2336 | + * The timeout in seconds on socket I/O |
2337 | + * |
2338 | + * Since: 2.26 |
2339 | + */ |
2340 | + |
2341 | + |
2342 | +/** |
2343 | + * GSocket:ttl: |
2344 | + * |
2345 | + * Time-to-live for outgoing unicast packets |
2346 | + * |
2347 | + * Since: 2.32 |
2348 | + */ |
2349 | + |
2350 | + |
2351 | +/** |
2352 | + * GSocketAddress: |
2353 | + * |
2354 | + * A socket endpoint address, corresponding to <type>struct sockaddr</type> |
2355 | + * or one of its subtypes. |
2356 | + */ |
2357 | + |
2358 | + |
2359 | +/** |
2360 | + * GSocketClient::event: |
2361 | + * @client: the #GSocketClient |
2362 | + * @event: the event that is occurring |
2363 | + * @connectable: the #GSocketConnectable that @event is occurring on |
2364 | + * @connection: the current representation of the connection |
2365 | + * |
2366 | + * Emitted when @client's activity on @connectable changes state. |
2367 | + * Among other things, this can be used to provide progress |
2368 | + * information about a network connection in the UI. The meanings of |
2369 | + * the different @event values are as follows: |
2370 | + * |
2371 | + * <variablelist> |
2372 | + * <varlistentry> |
2373 | + * <term>%G_SOCKET_CLIENT_RESOLVING:</term> |
2374 | + * <listitem><para> |
2375 | + * @client is about to look up @connectable in DNS. |
2376 | + * @connection will be %NULL. |
2377 | + * </para></listitem> |
2378 | + * </varlistentry> |
2379 | + * <varlistentry> |
2380 | + * <term>%G_SOCKET_CLIENT_RESOLVED:</term> |
2381 | + * <listitem><para> |
2382 | + * @client has successfully resolved @connectable in DNS. |
2383 | + * @connection will be %NULL. |
2384 | + * </para></listitem> |
2385 | + * </varlistentry> |
2386 | + * <varlistentry> |
2387 | + * <term>%G_SOCKET_CLIENT_CONNECTING:</term> |
2388 | + * <listitem><para> |
2389 | + * @client is about to make a connection to a remote host; |
2390 | + * either a proxy server or the destination server itself. |
2391 | + * @connection is the #GSocketConnection, which is not yet |
2392 | + * connected. |
2393 | + * </para></listitem> |
2394 | + * </varlistentry> |
2395 | + * <varlistentry> |
2396 | + * <term>%G_SOCKET_CLIENT_CONNECTED:</term> |
2397 | + * <listitem><para> |
2398 | + * @client has successfully connected to a remote host. |
2399 | + * @connection is the connected #GSocketConnection. |
2400 | + * </para></listitem> |
2401 | + * </varlistentry> |
2402 | + * <varlistentry> |
2403 | + * <term>%G_SOCKET_CLIENT_PROXY_NEGOTIATING:</term> |
2404 | + * <listitem><para> |
2405 | + * @client is about to negotiate with a proxy to get it to |
2406 | + * connect to @connectable. @connection is the |
2407 | + * #GSocketConnection to the proxy server. |
2408 | + * </para></listitem> |
2409 | + * </varlistentry> |
2410 | + * <varlistentry> |
2411 | + * <term>%G_SOCKET_CLIENT_PROXY_NEGOTIATED:</term> |
2412 | + * <listitem><para> |
2413 | + * @client has negotiated a connection to @connectable through |
2414 | + * a proxy server. @connection is the stream returned from |
2415 | + * g_proxy_connect(), which may or may not be a |
2416 | + * #GSocketConnection. |
2417 | + * </para></listitem> |
2418 | + * </varlistentry> |
2419 | + * <varlistentry> |
2420 | + * <term>%G_SOCKET_CLIENT_TLS_HANDSHAKING:</term> |
2421 | + * <listitem><para> |
2422 | + * @client is about to begin a TLS handshake. @connection is a |
2423 | + * #GTlsClientConnection. |
2424 | + * </para></listitem> |
2425 | + * </varlistentry> |
2426 | + * <varlistentry> |
2427 | + * <term>%G_SOCKET_CLIENT_TLS_HANDSHAKED:</term> |
2428 | + * <listitem><para> |
2429 | + * @client has successfully completed the TLS handshake. |
2430 | + * @connection is a #GTlsClientConnection. |
2431 | + * </para></listitem> |
2432 | + * </varlistentry> |
2433 | + * <varlistentry> |
2434 | + * <term>%G_SOCKET_CLIENT_COMPLETE:</term> |
2435 | + * <listitem><para> |
2436 | + * @client has either successfully connected to @connectable |
2437 | + * (in which case @connection is the #GSocketConnection that |
2438 | + * it will be returning to the caller) or has failed (in which |
2439 | + * case @connection is %NULL and the client is about to return |
2440 | + * an error). |
2441 | + * </para></listitem> |
2442 | + * </varlistentry> |
2443 | + * </variablelist> |
2444 | + * |
2445 | + * Each event except %G_SOCKET_CLIENT_COMPLETE may be emitted |
2446 | + * multiple times (or not at all) for a given connectable (in |
2447 | + * particular, if @client ends up attempting to connect to more than |
2448 | + * one address). However, if @client emits the #GSocketClient::event |
2449 | + * signal at all for a given connectable, that it will always emit |
2450 | + * it with %G_SOCKET_CLIENT_COMPLETE when it is done. |
2451 | + * |
2452 | + * Note that there may be additional #GSocketClientEvent values in |
2453 | + * the future; unrecognized @event values should be ignored. |
2454 | + * |
2455 | + * Since: 2.32 |
2456 | + */ |
2457 | + |
2458 | + |
2459 | +/** |
2460 | + * GSocketClient:proxy-resolver: |
2461 | + * |
2462 | + * The proxy resolver to use |
2463 | + * |
2464 | + * Since: 2.36 |
2465 | + */ |
2466 | + |
2467 | + |
2468 | +/** |
2469 | + * GSocketService::incoming: |
2470 | + * @service: the #GSocketService |
2471 | + * @connection: a new #GSocketConnection object |
2472 | + * @source_object: (allow-none): the source_object passed to g_socket_listener_add_address() |
2473 | + * |
2474 | + * The ::incoming signal is emitted when a new incoming connection |
2475 | + * to @service needs to be handled. The handler must initiate the |
2476 | + * handling of @connection, but may not block; in essence, |
2477 | + * asynchronous operations must be used. |
2478 | + * |
2479 | + * @connection will be unreffed once the signal handler returns, |
2480 | + * so you need to ref it yourself if you are planning to use it. |
2481 | + * |
2482 | + * Returns: %TRUE to stop other handlers from being called |
2483 | + * Since: 2.22 |
2484 | + */ |
2485 | + |
2486 | + |
2487 | +/** |
2488 | + * GSrvTarget: |
2489 | + * |
2490 | + * A single target host/port that a network service is running on. |
2491 | + */ |
2492 | + |
2493 | + |
2494 | +/** |
2495 | + * GTask: |
2496 | + * |
2497 | + * The opaque object representing a synchronous or asynchronous task |
2498 | + * and its result. |
2499 | + */ |
2500 | + |
2501 | + |
2502 | +/** |
2503 | + * GTaskThreadFunc: |
2504 | + * @task: the #GTask |
2505 | + * @source_object: (type GObject): @task's source object |
2506 | + * @task_data: @task's task data |
2507 | + * @cancellable: @task's #GCancellable, or %NULL |
2508 | + * |
2509 | + * The prototype for a task function to be run in a thread via |
2510 | + * g_task_run_in_thread() or g_task_run_in_thread_sync(). |
2511 | + * |
2512 | + * If the return-on-cancel flag is set on @task, and @cancellable gets |
2513 | + * cancelled, then the #GTask will be completed immediately (as though |
2514 | + * g_task_return_error_if_cancelled() had been called), without |
2515 | + * waiting for the task function to complete. However, the task |
2516 | + * function will continue running in its thread in the background. The |
2517 | + * function therefore needs to be careful about how it uses |
2518 | + * externally-visible state in this case. See |
2519 | + * g_task_set_return_on_cancel() for more details. |
2520 | + * |
2521 | + * Other than in that case, @task will be completed when the |
2522 | + * #GTaskThreadFunc returns, <emphasis>not</emphasis> when it calls |
2523 | + * a <literal>g_task_return_</literal> function. |
2524 | + * |
2525 | + * Since: 2.36 |
2526 | + */ |
2527 | + |
2528 | + |
2529 | +/** |
2530 | + * GTestDBus: |
2531 | + * |
2532 | + * The #GTestDBus structure contains only private data and |
2533 | + * should only be accessed using the provided API. |
2534 | + * |
2535 | + * Since: 2.34 |
2536 | + */ |
2537 | + |
2538 | + |
2539 | +/** |
2540 | + * GTestDBus:flags: |
2541 | + * |
2542 | + * #GTestDBusFlags specifying the behaviour of the dbus session |
2543 | + * |
2544 | + * Since: 2.34 |
2545 | + */ |
2546 | + |
2547 | + |
2548 | +/** |
2549 | + * GThemedIcon:name: |
2550 | + * |
2551 | + * The icon name. |
2552 | + */ |
2553 | + |
2554 | + |
2555 | +/** |
2556 | + * GThemedIcon:names: |
2557 | + * |
2558 | + * A %NULL-terminated array of icon names. |
2559 | + */ |
2560 | + |
2561 | + |
2562 | +/** |
2563 | + * GThemedIcon:use-default-fallbacks: |
2564 | + * |
2565 | + * Whether to use the default fallbacks found by shortening the icon name |
2566 | + * at '-' characters. If the "names" array has more than one element, |
2567 | + * ignores any past the first. |
2568 | + * |
2569 | + * For example, if the icon name was "gnome-dev-cdrom-audio", the array |
2570 | + * would become |
2571 | + * |[ |
2572 | + * { |
2573 | + * "gnome-dev-cdrom-audio", |
2574 | + * "gnome-dev-cdrom", |
2575 | + * "gnome-dev", |
2576 | + * "gnome", |
2577 | + * NULL |
2578 | + * }; |
2579 | + * ]| |
2580 | + */ |
2581 | + |
2582 | + |
2583 | +/** |
2584 | + * GThreadedSocketService::run: |
2585 | + * @service: the #GThreadedSocketService. |
2586 | + * @connection: a new #GSocketConnection object. |
2587 | + * @source_object: the source_object passed to g_socket_listener_add_address(). |
2588 | + * |
2589 | + * The ::run signal is emitted in a worker thread in response to an |
2590 | + * incoming connection. This thread is dedicated to handling |
2591 | + * @connection and may perform blocking IO. The signal handler need |
2592 | + * not return until the connection is closed. |
2593 | + * |
2594 | + * Returns: %TRUE to stop further signal handlers from being called |
2595 | + */ |
2596 | + |
2597 | + |
2598 | +/** |
2599 | + * GTlsBackend: |
2600 | + * |
2601 | + * TLS (Transport Layer Security, aka SSL) backend. This is an |
2602 | + * internal type used to coordinate the different classes implemented |
2603 | + * by a TLS backend. |
2604 | + * |
2605 | + * Since: 2.28 |
2606 | + */ |
2607 | + |
2608 | + |
2609 | +/** |
2610 | + * GTlsCertificate: |
2611 | + * |
2612 | + * Abstract base class for TLS certificate types. |
2613 | + * |
2614 | + * Since: 2.28 |
2615 | + */ |
2616 | + |
2617 | + |
2618 | +/** |
2619 | + * GTlsCertificate:certificate: |
2620 | + * |
2621 | + * The DER (binary) encoded representation of the certificate. |
2622 | + * This property and the #GTlsCertificate:certificate-pem property |
2623 | + * represent the same data, just in different forms. |
2624 | + * |
2625 | + * Since: 2.28 |
2626 | + */ |
2627 | + |
2628 | + |
2629 | +/** |
2630 | + * GTlsCertificate:certificate-pem: |
2631 | + * |
2632 | + * The PEM (ASCII) encoded representation of the certificate. |
2633 | + * This property and the #GTlsCertificate:certificate |
2634 | + * property represent the same data, just in different forms. |
2635 | + * |
2636 | + * Since: 2.28 |
2637 | + */ |
2638 | + |
2639 | + |
2640 | +/** |
2641 | + * GTlsCertificate:issuer: |
2642 | + * |
2643 | + * A #GTlsCertificate representing the entity that issued this |
2644 | + * certificate. If %NULL, this means that the certificate is either |
2645 | + * self-signed, or else the certificate of the issuer is not |
2646 | + * available. |
2647 | + * |
2648 | + * Since: 2.28 |
2649 | + */ |
2650 | + |
2651 | + |
2652 | +/** |
2653 | + * GTlsCertificate:private-key: |
2654 | + * |
2655 | + * The DER (binary) encoded representation of the certificate's |
2656 | + * private key, in either PKCS#1 format or unencrypted PKCS#8 |
2657 | + * format. This property (or the #GTlsCertificate:private-key-pem |
2658 | + * property) can be set when constructing a key (eg, from a file), |
2659 | + * but cannot be read. |
2660 | + * |
2661 | + * PKCS#8 format is supported since 2.32; earlier releases only |
2662 | + * support PKCS#1. You can use the <literal>openssl rsa</literal> |
2663 | + * tool to convert PKCS#8 keys to PKCS#1. |
2664 | + * |
2665 | + * Since: 2.28 |
2666 | + */ |
2667 | + |
2668 | + |
2669 | +/** |
2670 | + * GTlsCertificate:private-key-pem: |
2671 | + * |
2672 | + * The PEM (ASCII) encoded representation of the certificate's |
2673 | + * private key in either PKCS#1 format ("<literal>BEGIN RSA PRIVATE |
2674 | + * KEY</literal>") or unencrypted PKCS#8 format ("<literal>BEGIN |
2675 | + * PRIVATE KEY</literal>"). This property (or the |
2676 | + * #GTlsCertificate:private-key property) can be set when |
2677 | + * constructing a key (eg, from a file), but cannot be read. |
2678 | + * |
2679 | + * PKCS#8 format is supported since 2.32; earlier releases only |
2680 | + * support PKCS#1. You can use the <literal>openssl rsa</literal> |
2681 | + * tool to convert PKCS#8 keys to PKCS#1. |
2682 | + * |
2683 | + * Since: 2.28 |
2684 | + */ |
2685 | + |
2686 | + |
2687 | +/** |
2688 | + * GTlsClientConnection: |
2689 | + * |
2690 | + * Abstract base class for the backend-specific client connection |
2691 | + * type. |
2692 | + * |
2693 | + * Since: 2.28 |
2694 | + */ |
2695 | + |
2696 | + |
2697 | +/** |
2698 | + * GTlsClientConnection:accepted-cas: |
2699 | + * |
2700 | + * A list of the distinguished names of the Certificate Authorities |
2701 | + * that the server will accept client certificates signed by. If the |
2702 | + * server requests a client certificate during the handshake, then |
2703 | + * this property will be set after the handshake completes. |
2704 | + * |
2705 | + * Each item in the list is a #GByteArray which contains the complete |
2706 | + * subject DN of the certificate authority. |
2707 | + * |
2708 | + * Since: 2.28 |
2709 | + */ |
2710 | + |
2711 | + |
2712 | +/** |
2713 | + * GTlsClientConnection:server-identity: |
2714 | + * |
2715 | + * A #GSocketConnectable describing the identity of the server that |
2716 | + * is expected on the other end of the connection. |
2717 | + * |
2718 | + * If the %G_TLS_CERTIFICATE_BAD_IDENTITY flag is set in |
2719 | + * #GTlsClientConnection:validation-flags, this object will be used |
2720 | + * to determine the expected identify of the remote end of the |
2721 | + * connection; if #GTlsClientConnection:server-identity is not set, |
2722 | + * or does not match the identity presented by the server, then the |
2723 | + * %G_TLS_CERTIFICATE_BAD_IDENTITY validation will fail. |
2724 | + * |
2725 | + * In addition to its use in verifying the server certificate, |
2726 | + * this is also used to give a hint to the server about what |
2727 | + * certificate we expect, which is useful for servers that serve |
2728 | + * virtual hosts. |
2729 | + * |
2730 | + * Since: 2.28 |
2731 | + */ |
2732 | + |
2733 | + |
2734 | +/** |
2735 | + * GTlsClientConnection:use-ssl3: |
2736 | + * |
2737 | + * If %TRUE, tells the connection to use SSL 3.0 rather than trying |
2738 | + * to negotiate the best version of TLS or SSL to use. This can be |
2739 | + * used when talking to servers that don't implement version |
2740 | + * negotiation correctly and therefore refuse to handshake at all with |
2741 | + * a "modern" TLS handshake. |
2742 | + * |
2743 | + * Since: 2.28 |
2744 | + */ |
2745 | + |
2746 | + |
2747 | +/** |
2748 | + * GTlsClientConnection:validation-flags: |
2749 | + * |
2750 | + * What steps to perform when validating a certificate received from |
2751 | + * a server. Server certificates that fail to validate in all of the |
2752 | + * ways indicated here will be rejected unless the application |
2753 | + * overrides the default via #GTlsConnection::accept-certificate. |
2754 | + * |
2755 | + * Since: 2.28 |
2756 | + */ |
2757 | + |
2758 | + |
2759 | +/** |
2760 | + * GTlsConnection: |
2761 | + * |
2762 | + * Abstract base class for the backend-specific #GTlsClientConnection |
2763 | + * and #GTlsServerConnection types. |
2764 | + * |
2765 | + * Since: 2.28 |
2766 | + */ |
2767 | + |
2768 | + |
2769 | +/** |
2770 | + * GTlsConnection::accept-certificate: |
2771 | + * @conn: a #GTlsConnection |
2772 | + * @peer_cert: the peer's #GTlsCertificate |
2773 | + * @errors: the problems with @peer_cert. |
2774 | + * |
2775 | + * Emitted during the TLS handshake after the peer certificate has |
2776 | + * been received. You can examine @peer_cert's certification path by |
2777 | + * calling g_tls_certificate_get_issuer() on it. |
2778 | + * |
2779 | + * For a client-side connection, @peer_cert is the server's |
2780 | + * certificate, and the signal will only be emitted if the |
2781 | + * certificate was not acceptable according to @conn's |
2782 | + * #GTlsClientConnection:validation_flags. If you would like the |
2783 | + * certificate to be accepted despite @errors, return %TRUE from the |
2784 | + * signal handler. Otherwise, if no handler accepts the certificate, |
2785 | + * the handshake will fail with %G_TLS_ERROR_BAD_CERTIFICATE. |
2786 | + * |
2787 | + * For a server-side connection, @peer_cert is the certificate |
2788 | + * presented by the client, if this was requested via the server's |
2789 | + * #GTlsServerConnection:authentication_mode. On the server side, |
2790 | + * the signal is always emitted when the client presents a |
2791 | + * certificate, and the certificate will only be accepted if a |
2792 | + * handler returns %TRUE. |
2793 | + * |
2794 | + * Note that if this signal is emitted as part of asynchronous I/O |
2795 | + * in the main thread, then you should not attempt to interact with |
2796 | + * the user before returning from the signal handler. If you want to |
2797 | + * let the user decide whether or not to accept the certificate, you |
2798 | + * would have to return %FALSE from the signal handler on the first |
2799 | + * attempt, and then after the connection attempt returns a |
2800 | + * %G_TLS_ERROR_HANDSHAKE, you can interact with the user, and if |
2801 | + * the user decides to accept the certificate, remember that fact, |
2802 | + * create a new connection, and return %TRUE from the signal handler |
2803 | + * the next time. |
2804 | + * |
2805 | + * If you are doing I/O in another thread, you do not |
2806 | + * need to worry about this, and can simply block in the signal |
2807 | + * handler until the UI thread returns an answer. |
2808 | + * |
2809 | + * Returns: %TRUE to accept @peer_cert (which will also immediately end the signal emission). %FALSE to allow the signal emission to continue, which will cause the handshake to fail if no one else overrides it. |
2810 | + * Since: 2.28 |
2811 | + */ |
2812 | + |
2813 | + |
2814 | +/** |
2815 | + * GTlsConnection:base-io-stream: |
2816 | + * |
2817 | + * The #GIOStream that the connection wraps |
2818 | + * |
2819 | + * Since: 2.28 |
2820 | + */ |
2821 | + |
2822 | + |
2823 | +/** |
2824 | + * GTlsConnection:certificate: |
2825 | + * |
2826 | + * The connection's certificate; see |
2827 | + * g_tls_connection_set_certificate(). |
2828 | + * |
2829 | + * Since: 2.28 |
2830 | + */ |
2831 | + |
2832 | + |
2833 | +/** |
2834 | + * GTlsConnection:database: |
2835 | + * |
2836 | + * The certificate database to use when verifying this TLS connection. |
2837 | + * If no cerificate database is set, then the default database will be |
2838 | + * used. See g_tls_backend_get_default_database(). |
2839 | + * |
2840 | + * Since: 2.30 |
2841 | + */ |
2842 | + |
2843 | + |
2844 | +/** |
2845 | + * GTlsConnection:interaction: |
2846 | + * |
2847 | + * A #GTlsInteraction object to be used when the connection or certificate |
2848 | + * database need to interact with the user. This will be used to prompt the |
2849 | + * user for passwords where necessary. |
2850 | + * |
2851 | + * Since: 2.30 |
2852 | + */ |
2853 | + |
2854 | + |
2855 | +/** |
2856 | + * GTlsConnection:peer-certificate: |
2857 | + * |
2858 | + * The connection's peer's certificate, after the TLS handshake has |
2859 | + * completed and the certificate has been accepted. Note in |
2860 | + * particular that this is not yet set during the emission of |
2861 | + * #GTlsConnection::accept-certificate. |
2862 | + * |
2863 | + * (You can watch for a #GObject::notify signal on this property to |
2864 | + * detect when a handshake has occurred.) |
2865 | + * |
2866 | + * Since: 2.28 |
2867 | + */ |
2868 | + |
2869 | + |
2870 | +/** |
2871 | + * GTlsConnection:peer-certificate-errors: |
2872 | + * |
2873 | + * The errors noticed-and-ignored while verifying |
2874 | + * #GTlsConnection:peer-certificate. Normally this should be 0, but |
2875 | + * it may not be if #GTlsClientConnection:validation-flags is not |
2876 | + * %G_TLS_CERTIFICATE_VALIDATE_ALL, or if |
2877 | + * #GTlsConnection::accept-certificate overrode the default |
2878 | + * behavior. |
2879 | + * |
2880 | + * Since: 2.28 |
2881 | + */ |
2882 | + |
2883 | + |
2884 | +/** |
2885 | + * GTlsConnection:rehandshake-mode: |
2886 | + * |
2887 | + * The rehandshaking mode. See |
2888 | + * g_tls_connection_set_rehandshake_mode(). |
2889 | + * |
2890 | + * Since: 2.28 |
2891 | + */ |
2892 | + |
2893 | + |
2894 | +/** |
2895 | + * GTlsConnection:require-close-notify: |
2896 | + * |
2897 | + * Whether or not proper TLS close notification is required. |
2898 | + * See g_tls_connection_set_require_close_notify(). |
2899 | + * |
2900 | + * Since: 2.28 |
2901 | + */ |
2902 | + |
2903 | + |
2904 | +/** |
2905 | + * GTlsConnection:use-system-certdb: |
2906 | + * |
2907 | + * Whether or not the system certificate database will be used to |
2908 | + * verify peer certificates. See |
2909 | + * g_tls_connection_set_use_system_certdb(). |
2910 | + * |
2911 | + * Deprecated: 2.30: Use GTlsConnection:database instead |
2912 | + */ |
2913 | + |
2914 | + |
2915 | +/** |
2916 | + * GTlsDatabase: |
2917 | + * |
2918 | + * Abstract base class for the backend-specific database types. |
2919 | + * |
2920 | + * Since: 2.30 |
2921 | + */ |
2922 | + |
2923 | + |
2924 | +/** |
2925 | + * GTlsFileDatabase: |
2926 | + * |
2927 | + * Implemented by a #GTlsDatabase which allows you to load certificates |
2928 | + * from a file. |
2929 | + * |
2930 | + * Since: 2.30 |
2931 | + */ |
2932 | + |
2933 | + |
2934 | +/** |
2935 | + * GTlsFileDatabase:anchors: |
2936 | + * |
2937 | + * The path to a file containing PEM encoded certificate authority |
2938 | + * root anchors. The certificates in this file will be treated as |
2939 | + * root authorities for the purpose of verifying other certificates |
2940 | + * via the g_tls_database_verify_chain() operation. |
2941 | + * |
2942 | + * Since: 2.30 |
2943 | + */ |
2944 | + |
2945 | + |
2946 | +/** |
2947 | + * GTlsInteraction: |
2948 | + * |
2949 | + * An object representing interaction that the TLS connection and database |
2950 | + * might have with the user. |
2951 | + * |
2952 | + * Since: 2.30 |
2953 | + */ |
2954 | + |
2955 | + |
2956 | +/** |
2957 | + * GTlsInteractionClass: |
2958 | + * @ask_password: ask for a password synchronously. If the implementation returns %G_TLS_INTERACTION_HANDLED, then the password argument should have been filled in by using g_tls_password_set_value() or a similar function. |
2959 | + * @ask_password_async: ask for a password asynchronously. |
2960 | + * @ask_password_finish: complete operation to ask for a password asynchronously. If the implementation returns %G_TLS_INTERACTION_HANDLED, then the password argument of the async method should have been filled in by using g_tls_password_set_value() or a similar function. |
2961 | + * |
2962 | + * The class for #GTlsInteraction. Derived classes implement the various |
2963 | + * virtual interaction methods to handle TLS interactions. |
2964 | + * |
2965 | + * Derived classes can choose to implement whichever interactions methods they'd |
2966 | + * like to support by overriding those virtual methods in their class |
2967 | + * initialization function. If a derived class implements an async method, |
2968 | + * it must also implement the corresponding finish method. |
2969 | + * |
2970 | + * The synchronous interaction methods should implement to display modal dialogs, |
2971 | + * and the asynchronous methods to display modeless dialogs. |
2972 | + * |
2973 | + * If the user cancels an interaction, then the result should be |
2974 | + * %G_TLS_INTERACTION_FAILED and the error should be set with a domain of |
2975 | + * %G_IO_ERROR and code of %G_IO_ERROR_CANCELLED. |
2976 | + * |
2977 | + * Since: 2.30 |
2978 | + */ |
2979 | + |
2980 | + |
2981 | +/** |
2982 | + * GTlsPassword: |
2983 | + * |
2984 | + * An abstract interface representing a password used in TLS. Often used in |
2985 | + * user interaction such as unlocking a key storage token. |
2986 | + * |
2987 | + * Since: 2.30 |
2988 | + */ |
2989 | + |
2990 | + |
2991 | +/** |
2992 | + * GTlsServerConnection:authentication-mode: |
2993 | + * |
2994 | + * The #GTlsAuthenticationMode for the server. This can be changed |
2995 | + * before calling g_tls_connection_handshake() if you want to |
2996 | + * rehandshake with a different mode from the initial handshake. |
2997 | + * |
2998 | + * Since: 2.28 |
2999 | + */ |
3000 | + |
3001 | + |
3002 | +/** |
3003 | + * GUnixCredentialsMessage:credentials: |
3004 | + * |
3005 | + * The credentials stored in the message. |
3006 | + * |
3007 | + * Since: 2.26 |
3008 | + */ |
3009 | + |
3010 | + |
3011 | +/** |
3012 | + * GUnixInputStream:close-fd: |
3013 | + * |
3014 | + * Whether to close the file descriptor when the stream is closed. |
3015 | + * |
3016 | + * Since: 2.20 |
3017 | + */ |
3018 | + |
3019 | + |
3020 | +/** |
3021 | + * GUnixInputStream:fd: |
3022 | + * |
3023 | + * The file descriptor that the stream reads from. |
3024 | + * |
3025 | + * Since: 2.20 |
3026 | + */ |
3027 | + |
3028 | + |
3029 | +/** |
3030 | + * GUnixMountMonitor::mountpoints-changed: |
3031 | + * @monitor: the object on which the signal is emitted |
3032 | + * |
3033 | + * Emitted when the unix mount points have changed. |
3034 | + */ |
3035 | + |
3036 | + |
3037 | +/** |
3038 | + * GUnixMountMonitor::mounts-changed: |
3039 | + * @monitor: the object on which the signal is emitted |
3040 | + * |
3041 | + * Emitted when the unix mounts have changed. |
3042 | + */ |
3043 | + |
3044 | + |
3045 | +/** |
3046 | + * GUnixOutputStream:close-fd: |
3047 | + * |
3048 | + * Whether to close the file descriptor when the stream is closed. |
3049 | + * |
3050 | + * Since: 2.20 |
3051 | + */ |
3052 | + |
3053 | + |
3054 | +/** |
3055 | + * GUnixOutputStream:fd: |
3056 | + * |
3057 | + * The file descriptor that the stream writes to. |
3058 | + * |
3059 | + * Since: 2.20 |
3060 | + */ |
3061 | + |
3062 | + |
3063 | +/** |
3064 | + * GUnixSocketAddress: |
3065 | + * |
3066 | + * A UNIX-domain (local) socket address, corresponding to a |
3067 | + * <type>struct sockaddr_un</type>. |
3068 | + */ |
3069 | + |
3070 | + |
3071 | +/** |
3072 | + * GUnixSocketAddress:abstract: |
3073 | + * |
3074 | + * Whether or not this is an abstract address |
3075 | + * |
3076 | + * Deprecated: Use #GUnixSocketAddress:address-type, which distinguishes between zero-padded and non-zero-padded abstract addresses. |
3077 | + */ |
3078 | + |
3079 | + |
3080 | +/** |
3081 | + * GVolume::changed: |
3082 | + * |
3083 | + * Emitted when the volume has been changed. |
3084 | + */ |
3085 | + |
3086 | + |
3087 | +/** |
3088 | + * GVolume::removed: |
3089 | + * |
3090 | + * This signal is emitted when the #GVolume have been removed. If |
3091 | + * the recipient is holding references to the object they should |
3092 | + * release them so the object can be finalized. |
3093 | + */ |
3094 | + |
3095 | + |
3096 | +/** |
3097 | + * GVolumeMonitor::drive-changed: |
3098 | + * @volume_monitor: The volume monitor emitting the signal. |
3099 | + * @drive: the drive that changed |
3100 | + * |
3101 | + * Emitted when a drive changes. |
3102 | + */ |
3103 | + |
3104 | + |
3105 | +/** |
3106 | + * GVolumeMonitor::drive-connected: |
3107 | + * @volume_monitor: The volume monitor emitting the signal. |
3108 | + * @drive: a #GDrive that was connected. |
3109 | + * |
3110 | + * Emitted when a drive is connected to the system. |
3111 | + */ |
3112 | + |
3113 | + |
3114 | +/** |
3115 | + * GVolumeMonitor::drive-disconnected: |
3116 | + * @volume_monitor: The volume monitor emitting the signal. |
3117 | + * @drive: a #GDrive that was disconnected. |
3118 | + * |
3119 | + * Emitted when a drive is disconnected from the system. |
3120 | + */ |
3121 | + |
3122 | + |
3123 | +/** |
3124 | + * GVolumeMonitor::drive-eject-button: |
3125 | + * @volume_monitor: The volume monitor emitting the signal. |
3126 | + * @drive: the drive where the eject button was pressed |
3127 | + * |
3128 | + * Emitted when the eject button is pressed on @drive. |
3129 | + * |
3130 | + * Since: 2.18 |
3131 | + */ |
3132 | + |
3133 | + |
3134 | +/** |
3135 | + * GVolumeMonitor::drive-stop-button: |
3136 | + * @volume_monitor: The volume monitor emitting the signal. |
3137 | + * @drive: the drive where the stop button was pressed |
3138 | + * |
3139 | + * Emitted when the stop button is pressed on @drive. |
3140 | + * |
3141 | + * Since: 2.22 |
3142 | + */ |
3143 | + |
3144 | + |
3145 | +/** |
3146 | + * GVolumeMonitor::mount-added: |
3147 | + * @volume_monitor: The volume monitor emitting the signal. |
3148 | + * @mount: a #GMount that was added. |
3149 | + * |
3150 | + * Emitted when a mount is added. |
3151 | + */ |
3152 | + |
3153 | + |
3154 | +/** |
3155 | + * GVolumeMonitor::mount-changed: |
3156 | + * @volume_monitor: The volume monitor emitting the signal. |
3157 | + * @mount: a #GMount that changed. |
3158 | + * |
3159 | + * Emitted when a mount changes. |
3160 | + */ |
3161 | + |
3162 | + |
3163 | +/** |
3164 | + * GVolumeMonitor::mount-pre-unmount: |
3165 | + * @volume_monitor: The volume monitor emitting the signal. |
3166 | + * @mount: a #GMount that is being unmounted. |
3167 | + * |
3168 | + * Emitted when a mount is about to be removed. |
3169 | + */ |
3170 | + |
3171 | + |
3172 | +/** |
3173 | + * GVolumeMonitor::mount-removed: |
3174 | + * @volume_monitor: The volume monitor emitting the signal. |
3175 | + * @mount: a #GMount that was removed. |
3176 | + * |
3177 | + * Emitted when a mount is removed. |
3178 | + */ |
3179 | + |
3180 | + |
3181 | +/** |
3182 | + * GVolumeMonitor::volume-added: |
3183 | + * @volume_monitor: The volume monitor emitting the signal. |
3184 | + * @volume: a #GVolume that was added. |
3185 | + * |
3186 | + * Emitted when a mountable volume is added to the system. |
3187 | + */ |
3188 | + |
3189 | + |
3190 | +/** |
3191 | + * GVolumeMonitor::volume-changed: |
3192 | + * @volume_monitor: The volume monitor emitting the signal. |
3193 | + * @volume: a #GVolume that changed. |
3194 | + * |
3195 | + * Emitted when mountable volume is changed. |
3196 | + */ |
3197 | + |
3198 | + |
3199 | +/** |
3200 | + * GVolumeMonitor::volume-removed: |
3201 | + * @volume_monitor: The volume monitor emitting the signal. |
3202 | + * @volume: a #GVolume that was removed. |
3203 | + * |
3204 | + * Emitted when a mountable volume is removed from the system. |
3205 | + */ |
3206 | + |
3207 | + |
3208 | +/** |
3209 | + * GWin32InputStream:close-handle: |
3210 | + * |
3211 | + * Whether to close the file handle when the stream is closed. |
3212 | + * |
3213 | + * Since: 2.26 |
3214 | + */ |
3215 | + |
3216 | + |
3217 | +/** |
3218 | + * GWin32InputStream:handle: |
3219 | + * |
3220 | + * The handle that the stream reads from. |
3221 | + * |
3222 | + * Since: 2.26 |
3223 | + */ |
3224 | + |
3225 | + |
3226 | +/** |
3227 | + * GWin32OutputStream:close-handle: |
3228 | + * |
3229 | + * Whether to close the file handle when the stream is closed. |
3230 | + * |
3231 | + * Since: 2.26 |
3232 | + */ |
3233 | + |
3234 | + |
3235 | +/** |
3236 | + * GWin32OutputStream:handle: |
3237 | + * |
3238 | + * The file handle that the stream writes to. |
3239 | + * |
3240 | + * Since: 2.26 |
3241 | + */ |
3242 | + |
3243 | + |
3244 | +/** |
3245 | + * GZlibCompressor: |
3246 | + * |
3247 | + * Zlib decompression |
3248 | + */ |
3249 | + |
3250 | + |
3251 | +/** |
3252 | + * GZlibCompressor:file-info: |
3253 | + * |
3254 | + * If set to a non-%NULL #GFileInfo object, and #GZlibCompressor:format is |
3255 | + * %G_ZLIB_COMPRESSOR_FORMAT_GZIP, the compressor will write the file name |
3256 | + * and modification time from the file info to the GZIP header. |
3257 | + * |
3258 | + * Since: 2.26 |
3259 | + */ |
3260 | + |
3261 | + |
3262 | +/** |
3263 | + * GZlibDecompressor: |
3264 | + * |
3265 | + * Zlib decompression |
3266 | + */ |
3267 | + |
3268 | + |
3269 | +/** |
3270 | + * GZlibDecompressor:file-info: |
3271 | + * |
3272 | + * A #GFileInfo containing the information found in the GZIP header |
3273 | + * of the data stream processed, or %NULL if the header was not yet |
3274 | + * fully processed, is not present at all, or the compressor's |
3275 | + * #GZlibDecompressor:format property is not %G_ZLIB_COMPRESSOR_FORMAT_GZIP. |
3276 | + * |
3277 | + * Since: 2.26 |
3278 | + */ |
3279 | + |
3280 | + |
3281 | +/** |
3282 | + * G_TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT: |
3283 | + * |
3284 | + * The purpose used to verify the client certificate in a TLS connection. |
3285 | + * Used by TLS servers. |
3286 | + */ |
3287 | + |
3288 | + |
3289 | +/** |
3290 | + * G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER: |
3291 | + * |
3292 | + * The purpose used to verify the server certificate in a TLS connection. This |
3293 | + * is the most common purpose in use. Used by TLS clients. |
3294 | + */ |
3295 | + |
3296 | + |
3297 | +/** |
3298 | + * G_TYPE_SETTINGS_SCHEMA: |
3299 | + * |
3300 | + * A boxed #GType corresponding to #GSettingsSchema. |
3301 | + * |
3302 | + * Since: 2.32 |
3303 | + */ |
3304 | + |
3305 | + |
3306 | +/** |
3307 | + * G_TYPE_SETTINGS_SCHEMA_SOURCE: |
3308 | + * |
3309 | + * A boxed #GType corresponding to #GSettingsSchemaSource. |
3310 | + * |
3311 | + * Since: 2.32 |
3312 | + */ |
3313 | + |
3314 | + |
3315 | +/** |
3316 | + * SECTION:extensionpoints |
3317 | + * @short_description: Extension Points |
3318 | + * @include: gio.h |
3319 | + * @see_also: <link linkend="extending-gio">Extending GIO</link> |
3320 | + * |
3321 | + * #GIOExtensionPoint provides a mechanism for modules to extend the |
3322 | + * functionality of the library or application that loaded it in an |
3323 | + * organized fashion. |
3324 | + * |
3325 | + * An extension point is identified by a name, and it may optionally |
3326 | + * require that any implementation must by of a certain type (or derived |
3327 | + * thereof). Use g_io_extension_point_register() to register an |
3328 | + * extension point, and g_io_extension_point_set_required_type() to |
3329 | + * set a required type. |
3330 | + * |
3331 | + * A module can implement an extension point by specifying the #GType |
3332 | + * that implements the functionality. Additionally, each implementation |
3333 | + * of an extension point has a name, and a priority. Use |
3334 | + * g_io_extension_point_implement() to implement an extension point. |
3335 | + * |
3336 | + * |[ |
3337 | + * GIOExtensionPoint *ep; |
3338 | + * |
3339 | + * /* Register an extension point */ |
3340 | + * ep = g_io_extension_point_register ("my-extension-point"); |
3341 | + * g_io_extension_point_set_required_type (ep, MY_TYPE_EXAMPLE); |
3342 | + * ]| |
3343 | + * |
3344 | + * |[ |
3345 | + * /* Implement an extension point */ |
3346 | + * G_DEFINE_TYPE (MyExampleImpl, my_example_impl, MY_TYPE_EXAMPLE); |
3347 | + * g_io_extension_point_implement ("my-extension-point", |
3348 | + * my_example_impl_get_type (), |
3349 | + * "my-example", |
3350 | + * 10); |
3351 | + * ]| |
3352 | + * |
3353 | + * It is up to the code that registered the extension point how |
3354 | + * it uses the implementations that have been associated with it. |
3355 | + * Depending on the use case, it may use all implementations, or |
3356 | + * only the one with the highest priority, or pick a specific |
3357 | + * one by name. |
3358 | + * |
3359 | + * To avoid opening all modules just to find out what extension |
3360 | + * points they implement, GIO makes use of a caching mechanism, |
3361 | + * see <link linkend="gio-querymodules">gio-querymodules</link>. |
3362 | + * You are expected to run this command after installing a |
3363 | + * GIO module. |
3364 | + * |
3365 | + * The <envar>GIO_EXTRA_MODULES</envar> environment variable can be |
3366 | + * used to specify additional directories to automatically load modules |
3367 | + * from. This environment variable has the same syntax as the |
3368 | + * <envar>PATH</envar>. If two modules have the same base name in different |
3369 | + * directories, then the latter one will be ignored. If additional |
3370 | + * directories are specified GIO will load modules from the built-in |
3371 | + * directory last. |
3372 | + */ |
3373 | + |
3374 | + |
3375 | +/** |
3376 | + * SECTION:gaction |
3377 | + * @title: GAction |
3378 | + * @short_description: An action interface |
3379 | + * |
3380 | + * #GAction represents a single named action. |
3381 | + * |
3382 | + * The main interface to an action is that it can be activated with |
3383 | + * g_action_activate(). This results in the 'activate' signal being |
3384 | + * emitted. An activation has a #GVariant parameter (which may be |
3385 | + * %NULL). The correct type for the parameter is determined by a static |
3386 | + * parameter type (which is given at construction time). |
3387 | + * |
3388 | + * An action may optionally have a state, in which case the state may be |
3389 | + * set with g_action_change_state(). This call takes a #GVariant. The |
3390 | + * correct type for the state is determined by a static state type |
3391 | + * (which is given at construction time). |
3392 | + * |
3393 | + * The state may have a hint associated with it, specifying its valid |
3394 | + * range. |
3395 | + * |
3396 | + * #GAction is merely the interface to the concept of an action, as |
3397 | + * described above. Various implementations of actions exist, including |
3398 | + * #GSimpleAction and #GtkAction. |
3399 | + * |
3400 | + * In all cases, the implementing class is responsible for storing the |
3401 | + * name of the action, the parameter type, the enabled state, the |
3402 | + * optional state type and the state and emitting the appropriate |
3403 | + * signals when these change. The implementor responsible for filtering |
3404 | + * calls to g_action_activate() and g_action_change_state() for type |
3405 | + * safety and for the state being enabled. |
3406 | + * |
3407 | + * Probably the only useful thing to do with a #GAction is to put it |
3408 | + * inside of a #GSimpleActionGroup. |
3409 | + */ |
3410 | + |
3411 | + |
3412 | +/** |
3413 | + * SECTION:gactiongroup |
3414 | + * @title: GActionGroup |
3415 | + * @short_description: A group of actions |
3416 | + * @see_also: #GAction |
3417 | + * |
3418 | + * #GActionGroup represents a group of actions. Actions can be used to |
3419 | + * expose functionality in a structured way, either from one part of a |
3420 | + * program to another, or to the outside world. Action groups are often |
3421 | + * used together with a #GMenuModel that provides additional |
3422 | + * representation data for displaying the actions to the user, e.g. in |
3423 | + * a menu. |
3424 | + * |
3425 | + * The main way to interact with the actions in a GActionGroup is to |
3426 | + * activate them with g_action_group_activate_action(). Activating an |
3427 | + * action may require a #GVariant parameter. The required type of the |
3428 | + * parameter can be inquired with g_action_group_get_action_parameter_type(). |
3429 | + * Actions may be disabled, see g_action_group_get_action_enabled(). |
3430 | + * Activating a disabled action has no effect. |
3431 | + * |
3432 | + * Actions may optionally have a state in the form of a #GVariant. The |
3433 | + * current state of an action can be inquired with |
3434 | + * g_action_group_get_action_state(). Activating a stateful action may |
3435 | + * change its state, but it is also possible to set the state by calling |
3436 | + * g_action_group_change_action_state(). |
3437 | + * |
3438 | + * As typical example, consider a text editing application which has an |
3439 | + * option to change the current font to 'bold'. A good way to represent |
3440 | + * this would be a stateful action, with a boolean state. Activating the |
3441 | + * action would toggle the state. |
3442 | + * |
3443 | + * Each action in the group has a unique name (which is a string). All |
3444 | + * method calls, except g_action_group_list_actions() take the name of |
3445 | + * an action as an argument. |
3446 | + * |
3447 | + * The #GActionGroup API is meant to be the 'public' API to the action |
3448 | + * group. The calls here are exactly the interaction that 'external |
3449 | + * forces' (eg: UI, incoming D-Bus messages, etc.) are supposed to have |
3450 | + * with actions. 'Internal' APIs (ie: ones meant only to be accessed by |
3451 | + * the action group implementation) are found on subclasses. This is |
3452 | + * why you will find - for example - g_action_group_get_action_enabled() |
3453 | + * but not an equivalent <function>set()</function> call. |
3454 | + * |
3455 | + * Signals are emitted on the action group in response to state changes |
3456 | + * on individual actions. |
3457 | + * |
3458 | + * Implementations of #GActionGroup should provide implementations for |
3459 | + * the virtual functions g_action_group_list_actions() and |
3460 | + * g_action_group_query_action(). The other virtual functions should |
3461 | + * not be implemented - their "wrappers" are actually implemented with |
3462 | + * calls to g_action_group_query_action(). |
3463 | + */ |
3464 | + |
3465 | + |
3466 | +/** |
3467 | + * SECTION:gactiongroupexporter |
3468 | + * @title: GActionGroup exporter |
3469 | + * @short_description: Export GActionGroups on D-Bus |
3470 | + * @see_also: #GActionGroup, #GDBusActionGroup |
3471 | + * |
3472 | + * These functions support exporting a #GActionGroup on D-Bus. |
3473 | + * The D-Bus interface that is used is a private implementation |
3474 | + * detail. |
3475 | + * |
3476 | + * To access an exported #GActionGroup remotely, use |
3477 | + * g_dbus_action_group_get() to obtain a #GDBusActionGroup. |
3478 | + */ |
3479 | + |
3480 | + |
3481 | +/** |
3482 | + * SECTION:gactionmap |
3483 | + * @title: GActionMap |
3484 | + * @short_description: Interface for action containers |
3485 | + * |
3486 | + * The GActionMap interface is implemented by #GActionGroup |
3487 | + * implementations that operate by containing a number of |
3488 | + * named #GAction instances, such as #GSimpleActionGroup. |
3489 | + * |
3490 | + * One useful application of this interface is to map the |
3491 | + * names of actions from various action groups to unique, |
3492 | + * prefixed names (e.g. by prepending "app." or "win."). |
3493 | + * This is the motivation for the 'Map' part of the interface |
3494 | + * name. |
3495 | + * |
3496 | + * Since: 2.32 |
3497 | + */ |
3498 | + |
3499 | + |
3500 | +/** |
3501 | + * SECTION:gappinfo |
3502 | + * @short_description: Application information and launch contexts |
3503 | + * @include: gio/gio.h |
3504 | + * |
3505 | + * #GAppInfo and #GAppLaunchContext are used for describing and launching |
3506 | + * applications installed on the system. |
3507 | + * |
3508 | + * As of GLib 2.20, URIs will always be converted to POSIX paths |
3509 | + * (using g_file_get_path()) when using g_app_info_launch() even if |
3510 | + * the application requested an URI and not a POSIX path. For example |
3511 | + * for an desktop-file based application with Exec key <literal>totem |
3512 | + * %U</literal> and a single URI, |
3513 | + * <literal>sftp://foo/file.avi</literal>, then |
3514 | + * <literal>/home/user/.gvfs/sftp on foo/file.avi</literal> will be |
3515 | + * passed. This will only work if a set of suitable GIO extensions |
3516 | + * (such as gvfs 2.26 compiled with FUSE support), is available and |
3517 | + * operational; if this is not the case, the URI will be passed |
3518 | + * unmodified to the application. Some URIs, such as |
3519 | + * <literal>mailto:</literal>, of course cannot be mapped to a POSIX |
3520 | + * path (in gvfs there's no FUSE mount for it); such URIs will be |
3521 | + * passed unmodified to the application. |
3522 | + * |
3523 | + * Specifically for gvfs 2.26 and later, the POSIX URI will be mapped |
3524 | + * back to the GIO URI in the #GFile constructors (since gvfs |
3525 | + * implements the #GVfs extension point). As such, if the application |
3526 | + * needs to examine the URI, it needs to use g_file_get_uri() or |
3527 | + * similar on #GFile. In other words, an application cannot assume |
3528 | + * that the URI passed to e.g. g_file_new_for_commandline_arg() is |
3529 | + * equal to the result of g_file_get_uri(). The following snippet |
3530 | + * illustrates this: |
3531 | + * |
3532 | + * <programlisting> |
3533 | + * GFile *f; |
3534 | + * char *uri; |
3535 | + * |
3536 | + * file = g_file_new_for_commandline_arg (uri_from_commandline); |
3537 | + * |
3538 | + * uri = g_file_get_uri (file); |
3539 | + * strcmp (uri, uri_from_commandline) == 0; // FALSE |
3540 | + * g_free (uri); |
3541 | + * |
3542 | + * if (g_file_has_uri_scheme (file, "cdda")) |
3543 | + * { |
3544 | + * // do something special with uri |
3545 | + * } |
3546 | + * g_object_unref (file); |
3547 | + * </programlisting> |
3548 | + * |
3549 | + * This code will work when both <literal>cdda://sr0/Track |
3550 | + * 1.wav</literal> and <literal>/home/user/.gvfs/cdda on sr0/Track |
3551 | + * 1.wav</literal> is passed to the application. It should be noted |
3552 | + * that it's generally not safe for applications to rely on the format |
3553 | + * of a particular URIs. Different launcher applications (e.g. file |
3554 | + * managers) may have different ideas of what a given URI means. |
3555 | + */ |
3556 | + |
3557 | + |
3558 | +/** |
3559 | + * SECTION:gapplication |
3560 | + * @title: GApplication |
3561 | + * @short_description: Core application class |
3562 | + * |
3563 | + * A #GApplication is the foundation of an application. It wraps some |
3564 | + * low-level platform-specific services and is intended to act as the |
3565 | + * foundation for higher-level application classes such as |
3566 | + * #GtkApplication or #MxApplication. In general, you should not use |
3567 | + * this class outside of a higher level framework. |
3568 | + * |
3569 | + * GApplication provides convenient life cycle management by maintaining |
3570 | + * a <firstterm>use count</firstterm> for the primary application instance. |
3571 | + * The use count can be changed using g_application_hold() and |
3572 | + * g_application_release(). If it drops to zero, the application exits. |
3573 | + * Higher-level classes such as #GtkApplication employ the use count to |
3574 | + * ensure that the application stays alive as long as it has any opened |
3575 | + * windows. |
3576 | + * |
3577 | + * Another feature that GApplication (optionally) provides is process |
3578 | + * uniqueness. Applications can make use of this functionality by |
3579 | + * providing a unique application ID. If given, only one application |
3580 | + * with this ID can be running at a time per session. The session |
3581 | + * concept is platform-dependent, but corresponds roughly to a graphical |
3582 | + * desktop login. When your application is launched again, its |
3583 | + * arguments are passed through platform communication to the already |
3584 | + * running program. The already running instance of the program is |
3585 | + * called the <firstterm>primary instance</firstterm>; for non-unique |
3586 | + * applications this is the always the current instance. |
3587 | + * On Linux, the D-Bus session bus is used for communication. |
3588 | + * |
3589 | + * The use of #GApplication differs from some other commonly-used |
3590 | + * uniqueness libraries (such as libunique) in important ways. The |
3591 | + * application is not expected to manually register itself and check if |
3592 | + * it is the primary instance. Instead, the <code>main()</code> |
3593 | + * function of a #GApplication should do very little more than |
3594 | + * instantiating the application instance, possibly connecting signal |
3595 | + * handlers, then calling g_application_run(). All checks for |
3596 | + * uniqueness are done internally. If the application is the primary |
3597 | + * instance then the startup signal is emitted and the mainloop runs. |
3598 | + * If the application is not the primary instance then a signal is sent |
3599 | + * to the primary instance and g_application_run() promptly returns. |
3600 | + * See the code examples below. |
3601 | + * |
3602 | + * If used, the expected form of an application identifier is very close |
3603 | + * to that of of a |
3604 | + * <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-interface">DBus bus name</ulink>. |
3605 | + * Examples include: "com.example.MyApp", "org.example.internal-apps.Calculator". |
3606 | + * For details on valid application identifiers, see g_application_id_is_valid(). |
3607 | + * |
3608 | + * On Linux, the application identifier is claimed as a well-known bus name |
3609 | + * on the user's session bus. This means that the uniqueness of your |
3610 | + * application is scoped to the current session. It also means that your |
3611 | + * application may provide additional services (through registration of other |
3612 | + * object paths) at that bus name. The registration of these object paths |
3613 | + * should be done with the shared GDBus session bus. Note that due to the |
3614 | + * internal architecture of GDBus, method calls can be dispatched at any time |
3615 | + * (even if a main loop is not running). For this reason, you must ensure that |
3616 | + * any object paths that you wish to register are registered before #GApplication |
3617 | + * attempts to acquire the bus name of your application (which happens in |
3618 | + * g_application_register()). Unfortunately, this means that you cannot use |
3619 | + * g_application_get_is_remote() to decide if you want to register object paths. |
3620 | + * |
3621 | + * GApplication also implements the #GActionGroup and #GActionMap |
3622 | + * interfaces and lets you easily export actions by adding them with |
3623 | + * g_action_map_add_action(). When invoking an action by calling |
3624 | + * g_action_group_activate_action() on the application, it is always |
3625 | + * invoked in the primary instance. The actions are also exported on |
3626 | + * the session bus, and GIO provides the #GDBusActionGroup wrapper to |
3627 | + * conveniently access them remotely. GIO provides a #GDBusMenuModel wrapper |
3628 | + * for remote access to exported #GMenuModels. |
3629 | + * |
3630 | + * There is a number of different entry points into a GApplication: |
3631 | + * <itemizedlist> |
3632 | + * <listitem>via 'Activate' (i.e. just starting the application)</listitem> |
3633 | + * <listitem>via 'Open' (i.e. opening some files)</listitem> |
3634 | + * <listitem>by handling a command-line</listitem> |
3635 | + * <listitem>via activating an action</listitem> |
3636 | + * </itemizedlist> |
3637 | + * The #GApplication::startup signal lets you handle the application |
3638 | + * initialization for all of these in a single place. |
3639 | + * |
3640 | + * Regardless of which of these entry points is used to start the application, |
3641 | + * GApplication passes some <firstterm id="platform-data">platform |
3642 | + * data</firstterm> from the launching instance to the primary instance, |
3643 | + * in the form of a #GVariant dictionary mapping strings to variants. |
3644 | + * To use platform data, override the @before_emit or @after_emit virtual |
3645 | + * functions in your #GApplication subclass. When dealing with |
3646 | + * #GApplicationCommandLine objects, the platform data is directly |
3647 | + * available via g_application_command_line_get_cwd(), |
3648 | + * g_application_command_line_get_environ() and |
3649 | + * g_application_command_line_get_platform_data(). |
3650 | + * |
3651 | + * As the name indicates, the platform data may vary depending on the |
3652 | + * operating system, but it always includes the current directory (key |
3653 | + * "cwd"), and optionally the environment (ie the set of environment |
3654 | + * variables and their values) of the calling process (key "environ"). |
3655 | + * The environment is only added to the platform data if the |
3656 | + * %G_APPLICATION_SEND_ENVIRONMENT flag is set. #GApplication subclasses |
3657 | + * can add their own platform data by overriding the @add_platform_data |
3658 | + * virtual function. For instance, #GtkApplication adds startup notification |
3659 | + * data in this way. |
3660 | + * |
3661 | + * To parse commandline arguments you may handle the |
3662 | + * #GApplication::command-line signal or override the local_command_line() |
3663 | + * vfunc, to parse them in either the primary instance or the local instance, |
3664 | + * respectively. |
3665 | + * |
3666 | + * <example id="gapplication-example-open"><title>Opening files with a GApplication</title> |
3667 | + * <programlisting> |
3668 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-open.c"> |
3669 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3670 | + * </xi:include> |
3671 | + * </programlisting> |
3672 | + * </example> |
3673 | + * |
3674 | + * <example id="gapplication-example-actions"><title>A GApplication with actions</title> |
3675 | + * <programlisting> |
3676 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-actions.c"> |
3677 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3678 | + * </xi:include> |
3679 | + * </programlisting> |
3680 | + * </example> |
3681 | + * |
3682 | + * <example id="gapplication-example-menu"><title>A GApplication with menus</title> |
3683 | + * <programlisting> |
3684 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-menu.c"> |
3685 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3686 | + * </xi:include> |
3687 | + * </programlisting> |
3688 | + * </example> |
3689 | + * |
3690 | + * <example id="gapplication-example-dbushooks"><title>Using extra D-Bus hooks with a GApplication</title> |
3691 | + * <programlisting> |
3692 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-dbushooks.c"> |
3693 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3694 | + * </xi:include> |
3695 | + * </programlisting> |
3696 | + * </example> |
3697 | + */ |
3698 | + |
3699 | + |
3700 | +/** |
3701 | + * SECTION:gapplicationcommandline |
3702 | + * @title: GApplicationCommandLine |
3703 | + * @short_description: A command-line invocation of an application |
3704 | + * @see_also: #GApplication |
3705 | + * |
3706 | + * #GApplicationCommandLine represents a command-line invocation of |
3707 | + * an application. It is created by #GApplication and emitted |
3708 | + * in the #GApplication::command-line signal and virtual function. |
3709 | + * |
3710 | + * The class contains the list of arguments that the program was invoked |
3711 | + * with. It is also possible to query if the commandline invocation was |
3712 | + * local (ie: the current process is running in direct response to the |
3713 | + * invocation) or remote (ie: some other process forwarded the |
3714 | + * commandline to this process). |
3715 | + * |
3716 | + * The GApplicationCommandLine object can provide the @argc and @argv |
3717 | + * parameters for use with the #GOptionContext command-line parsing API, |
3718 | + * with the g_application_command_line_get_arguments() function. See |
3719 | + * <xref linkend="gapplication-example-cmdline3"/> for an example. |
3720 | + * |
3721 | + * The exit status of the originally-invoked process may be set and |
3722 | + * messages can be printed to stdout or stderr of that process. The |
3723 | + * lifecycle of the originally-invoked process is tied to the lifecycle |
3724 | + * of this object (ie: the process exits when the last reference is |
3725 | + * dropped). |
3726 | + * |
3727 | + * The main use for #GApplicationCommandLine (and the |
3728 | + * #GApplication::command-line signal) is 'Emacs server' like use cases: |
3729 | + * You can set the <envar>EDITOR</envar> environment variable to have |
3730 | + * e.g. git use your favourite editor to edit commit messages, and if you |
3731 | + * already have an instance of the editor running, the editing will happen |
3732 | + * in the running instance, instead of opening a new one. An important |
3733 | + * aspect of this use case is that the process that gets started by git |
3734 | + * does not return until the editing is done. |
3735 | + * |
3736 | + * <example id="gapplication-example-cmdline"><title>Handling commandline arguments with GApplication</title> |
3737 | + * <para> |
3738 | + * A simple example where the commandline is completely handled |
3739 | + * in the #GApplication::command-line handler. The launching instance exits |
3740 | + * once the signal handler in the primary instance has returned, and the |
3741 | + * return value of the signal handler becomes the exit status of the launching |
3742 | + * instance. |
3743 | + * </para> |
3744 | + * <programlisting> |
3745 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-cmdline.c"> |
3746 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3747 | + * </xi:include> |
3748 | + * </programlisting> |
3749 | + * </example> |
3750 | + * |
3751 | + * <example id="gapplication-example-cmdline2"><title>Split commandline handling</title> |
3752 | + * <para> |
3753 | + * An example of split commandline handling. Options that start with |
3754 | + * <literal>--local-</literal> are handled locally, all other options are |
3755 | + * passed to the #GApplication::command-line handler which runs in the primary |
3756 | + * instance. |
3757 | + * </para> |
3758 | + * <programlisting> |
3759 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-cmdline2.c"> |
3760 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3761 | + * </xi:include> |
3762 | + * </programlisting> |
3763 | + * </example> |
3764 | + * |
3765 | + * <example id="gapplication-example-cmdline3"><title>Deferred commandline handling</title> |
3766 | + * <para> |
3767 | + * An example of deferred commandline handling. Here, the commandline is |
3768 | + * not completely handled before the #GApplication::command-line handler |
3769 | + * returns. Instead, we keep a reference to the GApplicationCommandLine |
3770 | + * object and handle it later(in this example, in an idle). Note that it |
3771 | + * is necessary to hold the application until you are done with the |
3772 | + * commandline. |
3773 | + * </para> |
3774 | + * <para> |
3775 | + * This example also shows how to use #GOptionContext for parsing the |
3776 | + * commandline arguments. Note that it is necessary to disable the |
3777 | + * built-in help-handling of #GOptionContext, since it calls exit() |
3778 | + * after printing help, which is not what you want to happen in |
3779 | + * the primary instance. |
3780 | + * </para> |
3781 | + * <programlisting> |
3782 | + * <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gapplication-example-cmdline3.c"> |
3783 | + * <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback> |
3784 | + * </xi:include> |
3785 | + * </programlisting> |
3786 | + * </example> |
3787 | + */ |
3788 | + |
3789 | + |
3790 | +/** |
3791 | + * SECTION:gasyncinitable |
3792 | + * @short_description: Asynchronously failable object initialization interface |
3793 | + * @include: gio/gio.h |
3794 | + * @see_also: #GInitable |
3795 | + * |
3796 | + * This is the asynchronous version of #GInitable; it behaves the same |
3797 | + * in all ways except that initialization is asynchronous. For more details |
3798 | + * see the descriptions on #GInitable. |
3799 | + * |
3800 | + * A class may implement both the #GInitable and #GAsyncInitable interfaces. |
3801 | + * |
3802 | + * Users of objects implementing this are not intended to use the interface |
3803 | + * method directly; instead it will be used automatically in various ways. |
3804 | + * For C applications you generally just call g_async_initable_new_async() |
3805 | + * directly, or indirectly via a foo_thing_new_async() wrapper. This will call |
3806 | + * g_async_initable_init_async() under the cover, calling back with %NULL and |
3807 | + * a set %GError on failure. |
3808 | + * |
3809 | + * A typical implementation might look something like this: |
3810 | + * |
3811 | + * |[ |
3812 | + * enum { |
3813 | + * NOT_INITIALIZED, |
3814 | + * INITIALIZING, |
3815 | + * INITIALIZED |
3816 | + * }; |
3817 | + * |
3818 | + * static void |
3819 | + * _foo_ready_cb (Foo *self) |
3820 | + * { |
3821 | + * GList *l; |
3822 | + * |
3823 | + * self->priv->state = INITIALIZED; |
3824 | + * |
3825 | + * for (l = self->priv->init_results; l != NULL; l = l->next) |
3826 | + * { |
3827 | + * GTask *task = l->data; |
3828 | + * |
3829 | + * if (self->priv->success) |
3830 | + * g_task_return_boolean (task, TRUE); |
3831 | + * else |
3832 | + * g_task_return_new_error (task, ...); |
3833 | + * g_object_unref (task); |
3834 | + * } |
3835 | + * |
3836 | + * g_list_free (self->priv->init_results); |
3837 | + * self->priv->init_results = NULL; |
3838 | + * } |
3839 | + * |
3840 | + * static void |
3841 | + * foo_init_async (GAsyncInitable *initable, |
3842 | + * int io_priority, |
3843 | + * GCancellable *cancellable, |
3844 | + * GAsyncReadyCallback callback, |
3845 | + * gpointer user_data) |
3846 | + * { |
3847 | + * Foo *self = FOO (initable); |
3848 | + * GTask *task; |
3849 | + * |
3850 | + * task = g_task_new (initable, cancellable, callback, user_data); |
3851 | + * |
3852 | + * switch (self->priv->state) |
3853 | + * { |
3854 | + * case NOT_INITIALIZED: |
3855 | + * _foo_get_ready (self); |
3856 | + * self->priv->init_results = g_list_append (self->priv->init_results, |
3857 | + * task); |
3858 | + * self->priv->state = INITIALIZING; |
3859 | + * break; |
3860 | + * case INITIALIZING: |
3861 | + * self->priv->init_results = g_list_append (self->priv->init_results, |
3862 | + * task); |
3863 | + * break; |
3864 | + * case INITIALIZED: |
3865 | + * if (!self->priv->success) |
3866 | + * g_task_return_new_error (task, ...); |
3867 | + * else |
3868 | + * g_task_return_boolean (task, TRUE); |
3869 | + * g_object_unref (task); |
3870 | + * break; |
3871 | + * } |
3872 | + * } |
3873 | + * |
3874 | + * static gboolean |
3875 | + * foo_init_finish (GAsyncInitable *initable, |
3876 | + * GAsyncResult *result, |
3877 | + * GError **error) |
3878 | + * { |
3879 | + * g_return_val_if_fail (g_task_is_valid (result, initable), FALSE); |
3880 | + * |
3881 | + * return g_task_propagate_boolean (G_TASK (result), error); |
3882 | + * } |
3883 | + * |
3884 | + * static void |
3885 | + * foo_async_initable_iface_init (gpointer g_iface, |
3886 | + * gpointer data) |
3887 | + * { |
3888 | + * GAsyncInitableIface *iface = g_iface; |
3889 | + * |
3890 | + * iface->init_async = foo_init_async; |
3891 | + * iface->init_finish = foo_init_finish; |
3892 | + * } |
3893 | + * ]| |
3894 | + */ |
3895 | + |
3896 | + |
3897 | +/** |
3898 | + * SECTION:gasyncresult |
3899 | + * @short_description: Asynchronous Function Results |
3900 | + * @include: gio/gio.h |
3901 | + * @see_also: #GTask |
3902 | + * |
3903 | + * Provides a base class for implementing asynchronous function results. |
3904 | + * |
3905 | + * Asynchronous operations are broken up into two separate operations |
3906 | + * which are chained together by a #GAsyncReadyCallback. To begin |
3907 | + * an asynchronous operation, provide a #GAsyncReadyCallback to the |
3908 | + * asynchronous function. This callback will be triggered when the |
3909 | + * operation has completed, and will be passed a #GAsyncResult instance |
3910 | + * filled with the details of the operation's success or failure, the |
3911 | + * object the asynchronous function was started for and any error codes |
3912 | + * returned. The asynchronous callback function is then expected to call |
3913 | + * the corresponding "_finish()" function, passing the object the |
3914 | + * function was called for, the #GAsyncResult instance, and (optionally) |
3915 | + * an @error to grab any error conditions that may have occurred. |
3916 | + * |
3917 | + * The "_finish()" function for an operation takes the generic result |
3918 | + * (of type #GAsyncResult) and returns the specific result that the |
3919 | + * operation in question yields (e.g. a #GFileEnumerator for a |
3920 | + * "enumerate children" operation). If the result or error status of the |
3921 | + * operation is not needed, there is no need to call the "_finish()" |
3922 | + * function; GIO will take care of cleaning up the result and error |
3923 | + * information after the #GAsyncReadyCallback returns. You can pass |
3924 | + * %NULL for the #GAsyncReadyCallback if you don't need to take any |
3925 | + * action at all after the operation completes. Applications may also |
3926 | + * take a reference to the #GAsyncResult and call "_finish()" later; |
3927 | + * however, the "_finish()" function may be called at most once. |
3928 | + * |
3929 | + * Example of a typical asynchronous operation flow: |
3930 | + * |[ |
3931 | + * void _theoretical_frobnitz_async (Theoretical *t, |
3932 | + * GCancellable *c, |
3933 | + * GAsyncReadyCallback *cb, |
3934 | + * gpointer u); |
3935 | + * |
3936 | + * gboolean _theoretical_frobnitz_finish (Theoretical *t, |
3937 | + * GAsyncResult *res, |
3938 | + * GError **e); |
3939 | + * |
3940 | + * static void |
3941 | + * frobnitz_result_func (GObject *source_object, |
3942 | + * GAsyncResult *res, |
3943 | + * gpointer user_data) |
3944 | + * { |
3945 | + * gboolean success = FALSE; |
3946 | + * |
3947 | + * success = _theoretical_frobnitz_finish (source_object, res, NULL); |
3948 | + * |
3949 | + * if (success) |
3950 | + * g_printf ("Hurray!\n"); |
3951 | + * else |
3952 | + * g_printf ("Uh oh!\n"); |
3953 | + * |
3954 | + * /<!-- -->* ... *<!-- -->/ |
3955 | + * |
3956 | + * } |
3957 | + * |
3958 | + * int main (int argc, void *argv[]) |
3959 | + * { |
3960 | + * /<!-- -->* ... *<!-- -->/ |
3961 | + * |
3962 | + * _theoretical_frobnitz_async (theoretical_data, |
3963 | + * NULL, |
3964 | + * frobnitz_result_func, |
3965 | + * NULL); |
3966 | + * |
3967 | + * /<!-- -->* ... *<!-- -->/ |
3968 | + * } |
3969 | + * ]| |
3970 | + * |
3971 | + * The callback for an asynchronous operation is called only once, and is |
3972 | + * always called, even in the case of a cancelled operation. On cancellation |
3973 | + * the result is a %G_IO_ERROR_CANCELLED error. |
3974 | + * |
3975 | + * <para id="io-priority"><indexterm><primary>I/O |
3976 | + * priority</primary></indexterm> Many I/O-related asynchronous |
3977 | + * operations have a priority parameter, which is used in certain |
3978 | + * cases to determine the order in which operations are executed. They |
3979 | + * are <emphasis>not</emphasis> used to determine system-wide I/O |
3980 | + * scheduling. Priorities are integers, with lower numbers indicating |
3981 | + * higher priority. It is recommended to choose priorities between |
3982 | + * %G_PRIORITY_LOW and %G_PRIORITY_HIGH, with %G_PRIORITY_DEFAULT as a |
3983 | + * default. </para> |
3984 | + */ |
3985 | + |
3986 | + |
3987 | +/** |
3988 | + * SECTION:gbufferedinputstream |
3989 | + * @short_description: Buffered Input Stream |
3990 | + * @include: gio/gio.h |
3991 | + * @see_also: #GFilterInputStream, #GInputStream |
3992 | + * |
3993 | + * Buffered input stream implements #GFilterInputStream and provides |
3994 | + * for buffered reads. |
3995 | + * |
3996 | + * By default, #GBufferedInputStream's buffer size is set at 4 kilobytes. |
3997 | + * |
3998 | + * To create a buffered input stream, use g_buffered_input_stream_new(), |
3999 | + * or g_buffered_input_stream_new_sized() to specify the buffer's size at |
4000 | + * construction. |
4001 | + * |
4002 | + * To get the size of a buffer within a buffered input stream, use |
4003 | + * g_buffered_input_stream_get_buffer_size(). To change the size of a |
4004 | + * buffered input stream's buffer, use |
4005 | + * g_buffered_input_stream_set_buffer_size(). Note that the buffer's size |
4006 | + * cannot be reduced below the size of the data within the buffer. |
4007 | + */ |
4008 | + |
4009 | + |
4010 | +/** |
4011 | + * SECTION:gbufferedoutputstream |
4012 | + * @short_description: Buffered Output Stream |
4013 | + * @include: gio/gio.h |
4014 | + * @see_also: #GFilterOutputStream, #GOutputStream |
4015 | + * |
4016 | + * Buffered output stream implements #GFilterOutputStream and provides |
4017 | + * for buffered writes. |
4018 | + * |
4019 | + * By default, #GBufferedOutputStream's buffer size is set at 4 kilobytes. |
4020 | + * |
4021 | + * To create a buffered output stream, use g_buffered_output_stream_new(), |
4022 | + * or g_buffered_output_stream_new_sized() to specify the buffer's size |
4023 | + * at construction. |
4024 | + * |
4025 | + * To get the size of a buffer within a buffered input stream, use |
4026 | + * g_buffered_output_stream_get_buffer_size(). To change the size of a |
4027 | + * buffered output stream's buffer, use |
4028 | + * g_buffered_output_stream_set_buffer_size(). Note that the buffer's |
4029 | + * size cannot be reduced below the size of the data within the buffer. |
4030 | + */ |
4031 | + |
4032 | + |
4033 | +/** |
4034 | + * SECTION:gcancellable |
4035 | + * @short_description: Thread-safe Operation Cancellation Stack |
4036 | + * @include: gio/gio.h |
4037 | + * |
4038 | + * GCancellable is a thread-safe operation cancellation stack used |
4039 | + * throughout GIO to allow for cancellation of synchronous and |
4040 | + * asynchronous operations. |
4041 | + */ |
4042 | + |
4043 | + |
4044 | +/** |
4045 | + * SECTION:gcharsetconverter |
4046 | + * @short_description: Convert between charsets |
4047 | + * @include: gio/gio.h |
4048 | + * |
4049 | + * #GCharsetConverter is an implementation of #GConverter based on |
4050 | + * GIConv. |
4051 | + */ |
4052 | + |
4053 | + |
4054 | +/** |
4055 | + * SECTION:gcontenttype |
4056 | + * @short_description: Platform-specific content typing |
4057 | + * @include: gio/gio.h |
4058 | + * |
4059 | + * A content type is a platform specific string that defines the type |
4060 | + * of a file. On UNIX it is a <ulink url="http://www.wikipedia.org/wiki/Internet_media_type">mime type</ulink> like "text/plain" or "image/png". |
4061 | + * On Win32 it is an extension string like ".doc", ".txt" or a perceived |
4062 | + * string like "audio". Such strings can be looked up in the registry at |
4063 | + * HKEY_CLASSES_ROOT. |
4064 | + */ |
4065 | + |
4066 | + |
4067 | +/** |
4068 | + * SECTION:gconverter |
4069 | + * @short_description: Data conversion interface |
4070 | + * @include: gio/gio.h |
4071 | + * @see_also: #GInputStream, #GOutputStream |
4072 | + * |
4073 | + * #GConverter is implemented by objects that convert |
4074 | + * binary data in various ways. The conversion can be |
4075 | + * stateful and may fail at any place. |
4076 | + * |
4077 | + * Some example conversions are: character set conversion, |
4078 | + * compression, decompression and regular expression |
4079 | + * replace. |
4080 | + * |
4081 | + * Since: 2.24 |
4082 | + */ |
4083 | + |
4084 | + |
4085 | +/** |
4086 | + * SECTION:gconverterinputstream |
4087 | + * @short_description: Converter Input Stream |
4088 | + * @include: gio/gio.h |
4089 | + * @see_also: #GInputStream, #GConverter |
4090 | + * |
4091 | + * Converter input stream implements #GInputStream and allows |
4092 | + * conversion of data of various types during reading. |
4093 | + * |
4094 | + * As of GLib 2.34, #GConverterInputStream implements |
4095 | + * #GPollableInputStream. |
4096 | + */ |
4097 | + |
4098 | + |
4099 | +/** |
4100 | + * SECTION:gconverteroutputstream |
4101 | + * @short_description: Converter Output Stream |
4102 | + * @include: gio/gio.h |
4103 | + * @see_also: #GOutputStream, #GConverter |
4104 | + * |
4105 | + * Converter output stream implements #GOutputStream and allows |
4106 | + * conversion of data of various types during reading. |
4107 | + * |
4108 | + * As of GLib 2.34, #GConverterOutputStream implements |
4109 | + * #GPollableOutputStream. |
4110 | + */ |
4111 | + |
4112 | + |
4113 | +/** |
4114 | + * SECTION:gcredentials |
4115 | + * @short_description: An object containing credentials |
4116 | + * @include: gio/gio.h |
4117 | + * |
4118 | + * The #GCredentials type is a reference-counted wrapper for native |
4119 | + * credentials. This information is typically used for identifying, |
4120 | + * authenticating and authorizing other processes. |
4121 | + * |
4122 | + * Some operating systems supports looking up the credentials of the |
4123 | + * remote peer of a communication endpoint - see e.g. |
4124 | + * g_socket_get_credentials(). |
4125 | + * |
4126 | + * Some operating systems supports securely sending and receiving |
4127 | + * credentials over a Unix Domain Socket, see |
4128 | + * #GUnixCredentialsMessage, g_unix_connection_send_credentials() and |
4129 | + * g_unix_connection_receive_credentials() for details. |
4130 | + * |
4131 | + * On Linux, the native credential type is a <type>struct ucred</type> |
4132 | + * - see the |
4133 | + * <citerefentry><refentrytitle>unix</refentrytitle><manvolnum>7</manvolnum></citerefentry> |
4134 | + * man page for details. This corresponds to |
4135 | + * %G_CREDENTIALS_TYPE_LINUX_UCRED. |
4136 | + * |
4137 | + * On FreeBSD, the native credential type is a <type>struct cmsgcred</type>. |
4138 | + * This corresponds to %G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED. |
4139 | + * |
4140 | + * On OpenBSD, the native credential type is a <type>struct sockpeercred</type>. |
4141 | + * This corresponds to %G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED. |
4142 | + */ |
4143 | + |
4144 | + |
4145 | +/** |
4146 | + * SECTION:gdatainputstream |
4147 | + * @short_description: Data Input Stream |
4148 | + * @include: gio/gio.h |
4149 | + * @see_also: #GInputStream |
4150 | + * |
4151 | + * Data input stream implements #GInputStream and includes functions for |
4152 | + * reading structured data directly from a binary input stream. |
4153 | + */ |
4154 | + |
4155 | + |
4156 | +/** |
4157 | + * SECTION:gdataoutputstream |
4158 | + * @short_description: Data Output Stream |
4159 | + * @include: gio/gio.h |
4160 | + * @see_also: #GOutputStream |
4161 | + * |
4162 | + * Data output stream implements #GOutputStream and includes functions for |
4163 | + * writing data directly to an output stream. |
4164 | + */ |
4165 | + |
4166 | + |
4167 | +/** |
4168 | + * SECTION:gdbusactiongroup |
4169 | + * @title: GDBusActionGroup |
4170 | + * @short_description: A D-Bus GActionGroup implementation |
4171 | + * @see_also: <link linkend="gio-GActionGroup-exporter">GActionGroup exporter</link> |
4172 | + * |
4173 | + * #GDBusActionGroup is an implementation of the #GActionGroup |
4174 | + * interface that can be used as a proxy for an action group |
4175 | + * that is exported over D-Bus with g_dbus_connection_export_action_group(). |
4176 | + */ |
4177 | + |
4178 | + |
4179 | +/** |
4180 | + * SECTION:gdbusaddress |
4181 | + * @title: D-Bus Addresses |
4182 | + * @short_description: D-Bus connection endpoints |
4183 | + * @include: gio/gio.h |
4184 | + * |
4185 | + * Routines for working with D-Bus addresses. A D-Bus address is a string |
4186 | + * like "unix:tmpdir=/tmp/my-app-name". The exact format of addresses |
4187 | + * is explained in detail in the <link linkend="http://dbus.freedesktop.org/doc/dbus-specification.html#addresses">D-Bus specification</link>. |
4188 | + */ |
4189 | + |
4190 | + |
4191 | +/** |
4192 | + * SECTION:gdbusauthobserver |
4193 | + * @short_description: Object used for authenticating connections |
4194 | + * @include: gio/gio.h |
4195 | + * |
4196 | + * The #GDBusAuthObserver type provides a mechanism for participating |
4197 | + * in how a #GDBusServer (or a #GDBusConnection) authenticates remote |
4198 | + * peers. Simply instantiate a #GDBusAuthObserver and connect to the |
4199 | + * signals you are interested in. Note that new signals may be added |
4200 | + * in the future |
4201 | + * |
4202 | + * For example, if you only want to allow D-Bus connections from |
4203 | + * processes owned by the same uid as the server, you would use a |
4204 | + * signal handler like the following: |
4205 | + * <example id="auth-observer"><title>Controlling Authentication</title><programlisting> |
4206 | + * static gboolean |
4207 | + * on_authorize_authenticated_peer (GDBusAuthObserver *observer, |
4208 | + * GIOStream *stream, |
4209 | + * GCredentials *credentials, |
4210 | + * gpointer user_data) |
4211 | + * { |
4212 | + * gboolean authorized; |
4213 | + * |
4214 | + * authorized = FALSE; |
4215 | + * if (credentials != NULL) |
4216 | + * { |
4217 | + * GCredentials *own_credentials; |
4218 | + * own_credentials = g_credentials_new (); |
4219 | + * if (g_credentials_is_same_user (credentials, own_credentials, NULL)) |
4220 | + * authorized = TRUE; |
4221 | + * g_object_unref (own_credentials); |
4222 | + * } |
4223 | + * |
4224 | + * return authorized; |
4225 | + * } |
4226 | + * </programlisting></example> |
4227 | + */ |
4228 | + |
4229 | + |
4230 | +/** |
4231 | + * SECTION:gdbusconnection |
4232 | + * @short_description: D-Bus Connections |
4233 | + * @include: gio/gio.h |
4234 | + * |
4235 | + * The #GDBusConnection type is used for D-Bus connections to remote |
4236 | + * peers such as a message buses. It is a low-level API that offers a |
4237 | + * lot of flexibility. For instance, it lets you establish a connection |
4238 | + * over any transport that can by represented as an #GIOStream. |
4239 | + * |
4240 | + * This class is rarely used directly in D-Bus clients. If you are writing |
4241 | + * an D-Bus client, it is often easier to use the g_bus_own_name(), |
4242 | + * g_bus_watch_name() or g_dbus_proxy_new_for_bus() APIs. |
4243 | + * |
4244 | + * As an exception to the usual GLib rule that a particular object must not be |
4245 | + * used by two threads at the same time, #GDBusConnection's methods may be |
4246 | + * called from any thread<footnote> |
4247 | + * <para> |
4248 | + * This is so that g_bus_get() and g_bus_get_sync() can safely return the |
4249 | + * same #GDBusConnection when called from any thread. |
4250 | + * </para> |
4251 | + * </footnote>. |
4252 | + * |
4253 | + * Most of the ways to obtain a #GDBusConnection automatically initialize it |
4254 | + * (i.e. connect to D-Bus): for instance, g_dbus_connection_new() and |
4255 | + * g_bus_get(), and the synchronous versions of those methods, give you an |
4256 | + * initialized connection. Language bindings for GIO should use |
4257 | + * g_initable_new() or g_async_initable_new_async(), which also initialize the |
4258 | + * connection. |
4259 | + * |
4260 | + * If you construct an uninitialized #GDBusConnection, such as via |
4261 | + * g_object_new(), you must initialize it via g_initable_init() or |
4262 | + * g_async_initable_init_async() before using its methods or properties. |
4263 | + * Calling methods or accessing properties on a #GDBusConnection that has not |
4264 | + * completed initialization successfully is considered to be invalid, and leads |
4265 | + * to undefined behaviour. In particular, if initialization fails with a |
4266 | + * #GError, the only valid thing you can do with that #GDBusConnection is to |
4267 | + * free it with g_object_unref(). |
4268 | + * |
4269 | + * <example id="gdbus-server"><title>D-Bus server example</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-server.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4270 | + * |
4271 | + * <example id="gdbus-subtree-server"><title>D-Bus subtree example</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-subtree.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4272 | + * |
4273 | + * <example id="gdbus-unix-fd-client"><title>D-Bus UNIX File Descriptor example</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-unix-fd-client.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4274 | + * |
4275 | + * <example id="gdbus-export"><title>Exporting a GObject</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-export.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4276 | + */ |
4277 | + |
4278 | + |
4279 | +/** |
4280 | + * SECTION:gdbuserror |
4281 | + * @title: GDBusError |
4282 | + * @short_description: Mapping D-Bus errors to and from GError |
4283 | + * @include: gio/gio.h |
4284 | + * |
4285 | + * All facilities that return errors from remote methods (such as |
4286 | + * g_dbus_connection_call_sync()) use #GError to represent both D-Bus |
4287 | + * errors (e.g. errors returned from the other peer) and locally |
4288 | + * in-process generated errors. |
4289 | + * |
4290 | + * To check if a returned #GError is an error from a remote peer, use |
4291 | + * g_dbus_error_is_remote_error(). To get the actual D-Bus error name, |
4292 | + * use g_dbus_error_get_remote_error(). Before presenting an error, |
4293 | + * always use g_dbus_error_strip_remote_error(). |
4294 | + * |
4295 | + * In addition, facilities used to return errors to a remote peer also |
4296 | + * use #GError. See g_dbus_method_invocation_return_error() for |
4297 | + * discussion about how the D-Bus error name is set. |
4298 | + * |
4299 | + * Applications can associate a #GError error domain with a set of D-Bus errors in order to |
4300 | + * automatically map from D-Bus errors to #GError and back. This |
4301 | + * is typically done in the function returning the #GQuark for the |
4302 | + * error domain: |
4303 | + * <example id="error-registration"><title>Error Registration</title><programlisting> |
4304 | + * /<!-- -->* foo-bar-error.h: *<!-- -->/ |
4305 | + * |
4306 | + * #define FOO_BAR_ERROR (foo_bar_error_quark ()) |
4307 | + * GQuark foo_bar_error_quark (void); |
4308 | + * |
4309 | + * typedef enum |
4310 | + * { |
4311 | + * FOO_BAR_ERROR_FAILED, |
4312 | + * FOO_BAR_ERROR_ANOTHER_ERROR, |
4313 | + * FOO_BAR_ERROR_SOME_THIRD_ERROR, |
4314 | + * FOO_BAR_N_ERRORS /<!-- -->*< skip >*<!-- -->/ |
4315 | + * } FooBarError; |
4316 | + * |
4317 | + * /<!-- -->* foo-bar-error.c: *<!-- -->/ |
4318 | + * |
4319 | + * static const GDBusErrorEntry foo_bar_error_entries[] = |
4320 | + * { |
4321 | + * {FOO_BAR_ERROR_FAILED, "org.project.Foo.Bar.Error.Failed"}, |
4322 | + * {FOO_BAR_ERROR_ANOTHER_ERROR, "org.project.Foo.Bar.Error.AnotherError"}, |
4323 | + * {FOO_BAR_ERROR_SOME_THIRD_ERROR, "org.project.Foo.Bar.Error.SomeThirdError"}, |
4324 | + * }; |
4325 | + * |
4326 | + * /<!-- -->* Ensure that every error code has an associated D-Bus error name *<!-- -->/ |
4327 | + * G_STATIC_ASSERT (G_N_ELEMENTS (foo_bar_error_entries) == FOO_BAR_N_ERRORS); |
4328 | + * |
4329 | + * GQuark |
4330 | + * foo_bar_error_quark (void) |
4331 | + * { |
4332 | + * static volatile gsize quark_volatile = 0; |
4333 | + * g_dbus_error_register_error_domain ("foo-bar-error-quark", |
4334 | + * &quark_volatile, |
4335 | + * foo_bar_error_entries, |
4336 | + * G_N_ELEMENTS (foo_bar_error_entries)); |
4337 | + * return (GQuark) quark_volatile; |
4338 | + * } |
4339 | + * </programlisting></example> |
4340 | + * With this setup, a D-Bus peer can transparently pass e.g. %FOO_BAR_ERROR_ANOTHER_ERROR and |
4341 | + * other peers will see the D-Bus error name <literal>org.project.Foo.Bar.Error.AnotherError</literal>. |
4342 | + * |
4343 | + * If the other peer is using GDBus, and has registered the association with |
4344 | + * g_dbus_error_register_error_domain() in advance (e.g. by invoking the %FOO_BAR_ERROR quark |
4345 | + * generation itself in the previous example) the peer will see also %FOO_BAR_ERROR_ANOTHER_ERROR instead |
4346 | + * of %G_IO_ERROR_DBUS_ERROR. Note that GDBus clients can still recover |
4347 | + * <literal>org.project.Foo.Bar.Error.AnotherError</literal> using g_dbus_error_get_remote_error(). |
4348 | + * |
4349 | + * Note that errors in the %G_DBUS_ERROR error domain is intended only |
4350 | + * for returning errors from a remote message bus process. Errors |
4351 | + * generated locally in-process by e.g. #GDBusConnection is from the |
4352 | + * %G_IO_ERROR domain. |
4353 | + */ |
4354 | + |
4355 | + |
4356 | +/** |
4357 | + * SECTION:gdbusinterface |
4358 | + * @short_description: Base type for D-Bus interfaces |
4359 | + * @include: gio/gio.h |
4360 | + * |
4361 | + * The #GDBusInterface type is the base type for D-Bus interfaces both |
4362 | + * on the service side (see #GDBusInterfaceSkeleton) and client side |
4363 | + * (see #GDBusProxy). |
4364 | + */ |
4365 | + |
4366 | + |
4367 | +/** |
4368 | + * SECTION:gdbusinterfaceskeleton |
4369 | + * @short_description: Service-side D-Bus interface |
4370 | + * @include: gio/gio.h |
4371 | + * |
4372 | + * Abstract base class for D-Bus interfaces on the service side. |
4373 | + */ |
4374 | + |
4375 | + |
4376 | +/** |
4377 | + * SECTION:gdbusintrospection |
4378 | + * @title: D-Bus Introspection Data |
4379 | + * @short_description: Node and interface description data structures |
4380 | + * @include: gio/gio.h |
4381 | + * |
4382 | + * Various data structures and convenience routines to parse and |
4383 | + * generate D-Bus introspection XML. Introspection information is |
4384 | + * used when registering objects with g_dbus_connection_register_object(). |
4385 | + * |
4386 | + * The format of D-Bus introspection XML is specified in the |
4387 | + * <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format">D-Bus specification</ulink>. |
4388 | + */ |
4389 | + |
4390 | + |
4391 | +/** |
4392 | + * SECTION:gdbusmenumodel |
4393 | + * @title: GDBusMenuModel |
4394 | + * @short_description: A D-Bus GMenuModel implementation |
4395 | + * @see_also: <link linkend="gio-GMenuModel-exporter">GMenuModel Exporter</link> |
4396 | + * |
4397 | + * #GDBusMenuModel is an implementation of #GMenuModel that can be used |
4398 | + * as a proxy for a menu model that is exported over D-Bus with |
4399 | + * g_dbus_connection_export_menu_model(). |
4400 | + */ |
4401 | + |
4402 | + |
4403 | +/** |
4404 | + * SECTION:gdbusmessage |
4405 | + * @short_description: D-Bus Message |
4406 | + * @include: gio/gio.h |
4407 | + * |
4408 | + * A type for representing D-Bus messages that can be sent or received |
4409 | + * on a #GDBusConnection. |
4410 | + */ |
4411 | + |
4412 | + |
4413 | +/** |
4414 | + * SECTION:gdbusmethodinvocation |
4415 | + * @short_description: Object for handling remote calls |
4416 | + * @include: gio/gio.h |
4417 | + * |
4418 | + * Instances of the #GDBusMethodInvocation class are used when |
4419 | + * handling D-Bus method calls. It provides a way to asynchronously |
4420 | + * return results and errors. |
4421 | + * |
4422 | + * The normal way to obtain a #GDBusMethodInvocation object is to receive |
4423 | + * it as an argument to the handle_method_call() function in a |
4424 | + * #GDBusInterfaceVTable that was passed to g_dbus_connection_register_object(). |
4425 | + */ |
4426 | + |
4427 | + |
4428 | +/** |
4429 | + * SECTION:gdbusnameowning |
4430 | + * @title: Owning Bus Names |
4431 | + * @short_description: Simple API for owning bus names |
4432 | + * @include: gio/gio.h |
4433 | + * |
4434 | + * Convenience API for owning bus names. |
4435 | + * |
4436 | + * <example id="gdbus-owning-names"><title>Simple application owning a name</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-own-name.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4437 | + */ |
4438 | + |
4439 | + |
4440 | +/** |
4441 | + * SECTION:gdbusnamewatching |
4442 | + * @title: Watching Bus Names |
4443 | + * @short_description: Simple API for watching bus names |
4444 | + * @include: gio/gio.h |
4445 | + * |
4446 | + * Convenience API for watching bus names. |
4447 | + * |
4448 | + * <example id="gdbus-watching-names"><title>Simple application watching a name</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-watch-name.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4449 | + */ |
4450 | + |
4451 | + |
4452 | +/** |
4453 | + * SECTION:gdbusobject |
4454 | + * @short_description: Base type for D-Bus objects |
4455 | + * @include: gio/gio.h |
4456 | + * |
4457 | + * The #GDBusObject type is the base type for D-Bus objects on both |
4458 | + * the service side (see #GDBusObjectSkeleton) and the client side |
4459 | + * (see #GDBusObjectProxy). It is essentially just a container of |
4460 | + * interfaces. |
4461 | + */ |
4462 | + |
4463 | + |
4464 | +/** |
4465 | + * SECTION:gdbusobjectmanager |
4466 | + * @short_description: Base type for D-Bus object managers |
4467 | + * @include: gio/gio.h |
4468 | + * |
4469 | + * The #GDBusObjectManager type is the base type for service- and |
4470 | + * client-side implementations of the standardized <ulink |
4471 | + * url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager">org.freedesktop.DBus.ObjectManager</ulink> |
4472 | + * interface. |
4473 | + * |
4474 | + * See #GDBusObjectManagerClient for the client-side implementation |
4475 | + * and #GDBusObjectManagerServer for the service-side implementation. |
4476 | + */ |
4477 | + |
4478 | + |
4479 | +/** |
4480 | + * SECTION:gdbusobjectmanagerclient |
4481 | + * @short_description: Client-side object manager |
4482 | + * @include: gio/gio.h |
4483 | + * |
4484 | + * #GDBusObjectManagerClient is used to create, monitor and delete object |
4485 | + * proxies for remote objects exported by a #GDBusObjectManagerServer (or any |
4486 | + * code implementing the <ulink |
4487 | + * url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager">org.freedesktop.DBus.ObjectManager</ulink> |
4488 | + * interface). |
4489 | + * |
4490 | + * Once an instance of this type has been created, you can connect to |
4491 | + * the #GDBusObjectManager::object-added and |
4492 | + * #GDBusObjectManager::object-removed signals and inspect the |
4493 | + * #GDBusObjectProxy objects returned by |
4494 | + * g_dbus_object_manager_get_objects(). |
4495 | + * |
4496 | + * If the name for a #GDBusObjectManagerClient is not owned by anyone at |
4497 | + * object construction time, the default behavior is to request the |
4498 | + * message bus to launch an owner for the name. This behavior can be |
4499 | + * disabled using the %G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START |
4500 | + * flag. It's also worth noting that this only works if the name of |
4501 | + * interest is activatable in the first place. E.g. in some cases it |
4502 | + * is not possible to launch an owner for the requested name. In this |
4503 | + * case, #GDBusObjectManagerClient object construction still succeeds but |
4504 | + * there will be no object proxies |
4505 | + * (e.g. g_dbus_object_manager_get_objects() returns the empty list) and |
4506 | + * the #GDBusObjectManagerClient:name-owner property is %NULL. |
4507 | + * |
4508 | + * The owner of the requested name can come and go (for example |
4509 | + * consider a system service being restarted) – #GDBusObjectManagerClient |
4510 | + * handles this case too; simply connect to the #GObject::notify |
4511 | + * signal to watch for changes on the #GDBusObjectManagerClient:name-owner |
4512 | + * property. When the name owner vanishes, the behavior is that |
4513 | + * #GDBusObjectManagerClient:name-owner is set to %NULL (this includes |
4514 | + * emission of the #GObject::notify signal) and then |
4515 | + * #GDBusObjectManager::object-removed signals are synthesized |
4516 | + * for all currently existing object proxies. Since |
4517 | + * #GDBusObjectManagerClient:name-owner is %NULL when this happens, you can |
4518 | + * use this information to disambiguate a synthesized signal from a |
4519 | + * genuine signal caused by object removal on the remote |
4520 | + * #GDBusObjectManager. Similarly, when a new name owner appears, |
4521 | + * #GDBusObjectManager::object-added signals are synthesized |
4522 | + * while #GDBusObjectManagerClient:name-owner is still %NULL. Only when all |
4523 | + * object proxies have been added, the #GDBusObjectManagerClient:name-owner |
4524 | + * is set to the new name owner (this includes emission of the |
4525 | + * #GObject::notify signal). Furthermore, you are guaranteed that |
4526 | + * #GDBusObjectManagerClient:name-owner will alternate between a name owner |
4527 | + * (e.g. <literal>:1.42</literal>) and %NULL even in the case where |
4528 | + * the name of interest is atomically replaced |
4529 | + * |
4530 | + * Ultimately, #GDBusObjectManagerClient is used to obtain #GDBusProxy |
4531 | + * instances. All signals (including the |
4532 | + * <literal>org.freedesktop.DBus.Properties::PropertiesChanged</literal> |
4533 | + * signal) delivered to #GDBusProxy instances are guaranteed to |
4534 | + * originate from the name owner. This guarantee along with the |
4535 | + * behavior described above, means that certain race conditions |
4536 | + * including the <emphasis><quote>half the proxy is from the old owner |
4537 | + * and the other half is from the new owner</quote></emphasis> problem |
4538 | + * cannot happen. |
4539 | + * |
4540 | + * To avoid having the application connect to signals on the returned |
4541 | + * #GDBusObjectProxy and #GDBusProxy objects, the |
4542 | + * #GDBusObject::interface-added, |
4543 | + * #GDBusObject::interface-removed, |
4544 | + * #GDBusProxy::g-properties-changed and |
4545 | + * #GDBusProxy::g-signal signals |
4546 | + * are also emitted on the #GDBusObjectManagerClient instance managing these |
4547 | + * objects. The signals emitted are |
4548 | + * #GDBusObjectManager::interface-added, |
4549 | + * #GDBusObjectManager::interface-removed, |
4550 | + * #GDBusObjectManagerClient::interface-proxy-properties-changed and |
4551 | + * #GDBusObjectManagerClient::interface-proxy-signal. |
4552 | + * |
4553 | + * Note that all callbacks and signals are emitted in the |
4554 | + * <link linkend="g-main-context-push-thread-default">thread-default main loop</link> |
4555 | + * that the #GDBusObjectManagerClient object was constructed |
4556 | + * in. Additionally, the #GDBusObjectProxy and #GDBusProxy objects |
4557 | + * originating from the #GDBusObjectManagerClient object will be created in |
4558 | + * the same context and, consequently, will deliver signals in the |
4559 | + * same main loop. |
4560 | + */ |
4561 | + |
4562 | + |
4563 | +/** |
4564 | + * SECTION:gdbusobjectmanagerserver |
4565 | + * @short_description: Service-side object manager |
4566 | + * @include: gio/gio.h |
4567 | + * |
4568 | + * #GDBusObjectManagerServer is used to export #GDBusObject instances using |
4569 | + * the standardized <ulink |
4570 | + * url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager">org.freedesktop.DBus.ObjectManager</ulink> |
4571 | + * interface. For example, remote D-Bus clients can get all objects |
4572 | + * and properties in a single call. Additionally, any change in the |
4573 | + * object hierarchy is broadcast using signals. This means that D-Bus |
4574 | + * clients can keep caches up to date by only listening to D-Bus |
4575 | + * signals. |
4576 | + * |
4577 | + * See #GDBusObjectManagerClient for the client-side code that is |
4578 | + * intended to be used with #GDBusObjectManagerServer or any D-Bus |
4579 | + * object implementing the org.freedesktop.DBus.ObjectManager |
4580 | + * interface. |
4581 | + */ |
4582 | + |
4583 | + |
4584 | +/** |
4585 | + * SECTION:gdbusobjectproxy |
4586 | + * @short_description: Client-side D-Bus object |
4587 | + * @include: gio/gio.h |
4588 | + * |
4589 | + * A #GDBusObjectProxy is an object used to represent a remote object |
4590 | + * with one or more D-Bus interfaces. Normally, you don't instantiate |
4591 | + * a #GDBusObjectProxy yourself - typically #GDBusObjectManagerClient |
4592 | + * is used to obtain it. |
4593 | + * |
4594 | + * Since: 2.30 |
4595 | + */ |
4596 | + |
4597 | + |
4598 | +/** |
4599 | + * SECTION:gdbusobjectskeleton |
4600 | + * @short_description: Service-side D-Bus object |
4601 | + * @include: gio/gio.h |
4602 | + * |
4603 | + * A #GDBusObjectSkeleton instance is essentially a group of D-Bus |
4604 | + * interfaces. The set of exported interfaces on the object may be |
4605 | + * dynamic and change at runtime. |
4606 | + * |
4607 | + * This type is intended to be used with #GDBusObjectManager. |
4608 | + */ |
4609 | + |
4610 | + |
4611 | +/** |
4612 | + * SECTION:gdbusproxy |
4613 | + * @short_description: Client-side D-Bus interface proxy |
4614 | + * @include: gio/gio.h |
4615 | + * |
4616 | + * #GDBusProxy is a base class used for proxies to access a D-Bus |
4617 | + * interface on a remote object. A #GDBusProxy can be constructed for |
4618 | + * both well-known and unique names. |
4619 | + * |
4620 | + * By default, #GDBusProxy will cache all properties (and listen to |
4621 | + * changes) of the remote object, and proxy all signals that gets |
4622 | + * emitted. This behaviour can be changed by passing suitable |
4623 | + * #GDBusProxyFlags when the proxy is created. If the proxy is for a |
4624 | + * well-known name, the property cache is flushed when the name owner |
4625 | + * vanishes and reloaded when a name owner appears. |
4626 | + * |
4627 | + * If a #GDBusProxy is used for a well-known name, the owner of the |
4628 | + * name is tracked and can be read from |
4629 | + * #GDBusProxy:g-name-owner. Connect to the #GObject::notify signal to |
4630 | + * get notified of changes. Additionally, only signals and property |
4631 | + * changes emitted from the current name owner are considered and |
4632 | + * calls are always sent to the current name owner. This avoids a |
4633 | + * number of race conditions when the name is lost by one owner and |
4634 | + * claimed by another. However, if no name owner currently exists, |
4635 | + * then calls will be sent to the well-known name which may result in |
4636 | + * the message bus launching an owner (unless |
4637 | + * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START is set). |
4638 | + * |
4639 | + * The generic #GDBusProxy::g-properties-changed and |
4640 | + * #GDBusProxy::g-signal signals are not very convenient to work |
4641 | + * with. Therefore, the recommended way of working with proxies is to |
4642 | + * subclass #GDBusProxy, and have more natural properties and signals |
4643 | + * in your derived class. See <xref linkend="gdbus-example-gdbus-codegen"/> |
4644 | + * for how this can easily be done using the |
4645 | + * <command><link linkend="gdbus-codegen">gdbus-codegen</link></command> |
4646 | + * tool. |
4647 | + * |
4648 | + * A #GDBusProxy instance can be used from multiple threads but note |
4649 | + * that all signals (e.g. #GDBusProxy::g-signal, #GDBusProxy::g-properties-changed |
4650 | + * and #GObject::notify) are emitted in the |
4651 | + * <link linkend="g-main-context-push-thread-default">thread-default main loop</link> |
4652 | + * of the thread where the instance was constructed. |
4653 | + * |
4654 | + * <example id="gdbus-wellknown-proxy"><title>GDBusProxy for a well-known-name</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-watch-proxy.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4655 | + */ |
4656 | + |
4657 | + |
4658 | +/** |
4659 | + * SECTION:gdbusserver |
4660 | + * @short_description: Helper for accepting connections |
4661 | + * @include: gio/gio.h |
4662 | + * |
4663 | + * #GDBusServer is a helper for listening to and accepting D-Bus |
4664 | + * connections. This can be used to create a new D-Bus server, allowing two |
4665 | + * peers to use the D-Bus protocol for their own specialized communication. |
4666 | + * A server instance provided in this way will not perform message routing or |
4667 | + * implement the org.freedesktop.DBus interface. |
4668 | + * |
4669 | + * To just export an object on a well-known name on a message bus, such as the |
4670 | + * session or system bus, you should instead use g_bus_own_name(). |
4671 | + * |
4672 | + * <example id="gdbus-peer-to-peer"><title>D-Bus peer-to-peer example</title><programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="../../../../gio/tests/gdbus-example-peer.c"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting></example> |
4673 | + */ |
4674 | + |
4675 | + |
4676 | +/** |
4677 | + * SECTION:gdbusutils |
4678 | + * @title: D-Bus Utilities |
4679 | + * @short_description: Various utilities related to D-Bus. |
4680 | + * @include: gio/gio.h |
4681 | + * |
4682 | + * Various utility routines related to D-Bus. |
4683 | + */ |
4684 | + |
4685 | + |
4686 | +/** |
4687 | + * SECTION:gdesktopappinfo |
4688 | + * @title: GDesktopAppInfo |
4689 | + * @short_description: Application information from desktop files |
4690 | + * @include: gio/gdesktopappinfo.h |
4691 | + * |
4692 | + * #GDesktopAppInfo is an implementation of #GAppInfo based on |
4693 | + * desktop files. |
4694 | + * |
4695 | + * Note that <filename><gio/gdesktopappinfo.h></filename> belongs to |
4696 | + * the UNIX-specific GIO interfaces, thus you have to use the |
4697 | + * <filename>gio-unix-2.0.pc</filename> pkg-config file when using it. |
4698 | + */ |
4699 | + |
4700 | + |
4701 | +/** |
4702 | + * SECTION:gdrive |
4703 | + * @short_description: Drive management |
4704 | + * @include: gio/gio.h |
4705 | + * |
4706 | + * #GDrive - this represent a piece of hardware connected to the machine. |
4707 | + * It's generally only created for removable hardware or hardware with |
4708 | + * removable media. |
4709 | + * |
4710 | + * #GDrive is a container class for #GVolume objects that stem from |
4711 | + * the same piece of media. As such, #GDrive abstracts a drive with |
4712 | + * (or without) removable media and provides operations for querying |
4713 | + * whether media is available, determining whether media change is |
4714 | + * automatically detected and ejecting the media. |
4715 | + * |
4716 | + * If the #GDrive reports that media isn't automatically detected, one |
4717 | + * can poll for media; typically one should not do this periodically |
4718 | + * as a poll for media operation is potententially expensive and may |
4719 | + * spin up the drive creating noise. |
4720 | + * |
4721 | + * #GDrive supports starting and stopping drives with authentication |
4722 | + * support for the former. This can be used to support a diverse set |
4723 | + * of use cases including connecting/disconnecting iSCSI devices, |
4724 | + * powering down external disk enclosures and starting/stopping |
4725 | + * multi-disk devices such as RAID devices. Note that the actual |
4726 | + * semantics and side-effects of starting/stopping a #GDrive may vary |
4727 | + * according to implementation. To choose the correct verbs in e.g. a |
4728 | + * file manager, use g_drive_get_start_stop_type(). |
4729 | + * |
4730 | + * For porting from GnomeVFS note that there is no equivalent of |
4731 | + * #GDrive in that API. |
4732 | + */ |
4733 | + |
4734 | + |
4735 | +/** |
4736 | + * SECTION:gemblem |
4737 | + * @short_description: An object for emblems |
4738 | + * @include: gio/gio.h |
4739 | + * @see_also: #GIcon, #GEmblemedIcon, #GLoadableIcon, #GThemedIcon |
4740 | + * |
4741 | + * #GEmblem is an implementation of #GIcon that supports |
4742 | + * having an emblem, which is an icon with additional properties. |
4743 | + * It can than be added to a #GEmblemedIcon. |
4744 | + * |
4745 | + * Currently, only metainformation about the emblem's origin is |
4746 | + * supported. More may be added in the future. |
4747 | + */ |
4748 | + |
4749 | + |
4750 | +/** |
4751 | + * SECTION:gemblemedicon |
4752 | + * @short_description: Icon with emblems |
4753 | + * @include: gio/gio.h |
4754 | + * @see_also: #GIcon, #GLoadableIcon, #GThemedIcon, #GEmblem |
4755 | + * |
4756 | + * #GEmblemedIcon is an implementation of #GIcon that supports |
4757 | + * adding an emblem to an icon. Adding multiple emblems to an |
4758 | + * icon is ensured via g_emblemed_icon_add_emblem(). |
4759 | + * |
4760 | + * Note that #GEmblemedIcon allows no control over the position |
4761 | + * of the emblems. See also #GEmblem for more information. |
4762 | + */ |
4763 | + |
4764 | + |
4765 | +/** |
4766 | + * SECTION:gfile |
4767 | + * @short_description: File and Directory Handling |
4768 | + * @include: gio/gio.h |
4769 | + * @see_also: #GFileInfo, #GFileEnumerator |
4770 | + * |
4771 | + * #GFile is a high level abstraction for manipulating files on a |
4772 | + * virtual file system. #GFiles are lightweight, immutable objects |
4773 | + * that do no I/O upon creation. It is necessary to understand that |
4774 | + * #GFile objects do not represent files, merely an identifier for a |
4775 | + * file. All file content I/O is implemented as streaming operations |
4776 | + * (see #GInputStream and #GOutputStream). |
4777 | + * |
4778 | + * To construct a #GFile, you can use: |
4779 | + * <simplelist> |
4780 | + * <member>g_file_new_for_path() if you have a path.</member> |
4781 | + * <member>g_file_new_for_uri() if you have a URI.</member> |
4782 | + * <member>g_file_new_for_commandline_arg() for a command line argument.</member> |
4783 | + * <member>g_file_new_tmp() to create a temporary file from a template.</member> |
4784 | + * <member>g_file_parse_name() from a UTF-8 string gotten from g_file_get_parse_name().</member> |
4785 | + * </simplelist> |
4786 | + * |
4787 | + * One way to think of a #GFile is as an abstraction of a pathname. For |
4788 | + * normal files the system pathname is what is stored internally, but as |
4789 | + * #GFiles are extensible it could also be something else that corresponds |
4790 | + * to a pathname in a userspace implementation of a filesystem. |
4791 | + * |
4792 | + * #GFiles make up hierarchies of directories and files that correspond to |
4793 | + * the files on a filesystem. You can move through the file system with |
4794 | + * #GFile using g_file_get_parent() to get an identifier for the parent |
4795 | + * directory, g_file_get_child() to get a child within a directory, |
4796 | + * g_file_resolve_relative_path() to resolve a relative path between two |
4797 | + * #GFiles. There can be multiple hierarchies, so you may not end up at |
4798 | + * the same root if you repeatedly call g_file_get_parent() on two different |
4799 | + * files. |
4800 | + * |
4801 | + * All #GFiles have a basename (get with g_file_get_basename()). These names |
4802 | + * are byte strings that are used to identify the file on the filesystem |
4803 | + * (relative to its parent directory) and there is no guarantees that they |
4804 | + * have any particular charset encoding or even make any sense at all. If |
4805 | + * you want to use filenames in a user interface you should use the display |
4806 | + * name that you can get by requesting the |
4807 | + * %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME attribute with g_file_query_info(). |
4808 | + * This is guaranteed to be in UTF-8 and can be used in a user interface. |
4809 | + * But always store the real basename or the #GFile to use to actually |
4810 | + * access the file, because there is no way to go from a display name to |
4811 | + * the actual name. |
4812 | + * |
4813 | + * Using #GFile as an identifier has the same weaknesses as using a path |
4814 | + * in that there may be multiple aliases for the same file. For instance, |
4815 | + * hard or soft links may cause two different #GFiles to refer to the same |
4816 | + * file. Other possible causes for aliases are: case insensitive filesystems, |
4817 | + * short and long names on FAT/NTFS, or bind mounts in Linux. If you want to |
4818 | + * check if two #GFiles point to the same file you can query for the |
4819 | + * %G_FILE_ATTRIBUTE_ID_FILE attribute. Note that #GFile does some trivial |
4820 | + * canonicalization of pathnames passed in, so that trivial differences in |
4821 | + * the path string used at creation (duplicated slashes, slash at end of |
4822 | + * path, "." or ".." path segments, etc) does not create different #GFiles. |
4823 | + * |
4824 | + * Many #GFile operations have both synchronous and asynchronous versions |
4825 | + * to suit your application. Asynchronous versions of synchronous functions |
4826 | + * simply have _async() appended to their function names. The asynchronous |
4827 | + * I/O functions call a #GAsyncReadyCallback which is then used to finalize |
4828 | + * the operation, producing a GAsyncResult which is then passed to the |
4829 | + * function's matching _finish() operation. |
4830 | + * |
4831 | + * Some #GFile operations do not have synchronous analogs, as they may |
4832 | + * take a very long time to finish, and blocking may leave an application |
4833 | + * unusable. Notable cases include: |
4834 | + * <simplelist> |
4835 | + * <member>g_file_mount_mountable() to mount a mountable file.</member> |
4836 | + * <member>g_file_unmount_mountable_with_operation() to unmount a mountable file.</member> |
4837 | + * <member>g_file_eject_mountable_with_operation() to eject a mountable file.</member> |
4838 | + * </simplelist> |
4839 | + * |
4840 | + * <para id="gfile-etag"><indexterm><primary>entity tag</primary></indexterm> |
4841 | + * One notable feature of #GFiles are entity tags, or "etags" for |
4842 | + * short. Entity tags are somewhat like a more abstract version of the |
4843 | + * traditional mtime, and can be used to quickly determine if the file has |
4844 | + * been modified from the version on the file system. See the HTTP 1.1 |
4845 | + * <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">specification</ulink> |
4846 | + * for HTTP Etag headers, which are a very similar concept. |
4847 | + * </para> |
4848 | + */ |
4849 | + |
4850 | + |
4851 | +/** |
4852 | + * SECTION:gfileattribute |
4853 | + * @short_description: Key-Value Paired File Attributes |
4854 | + * @include: gio/gio.h |
4855 | + * @see_also: #GFile, #GFileInfo |
4856 | + * |
4857 | + * File attributes in GIO consist of a list of key-value pairs. |
4858 | + * |
4859 | + * Keys are strings that contain a key namespace and a key name, separated |
4860 | + * by a colon, e.g. "namespace::keyname". Namespaces are included to sort |
4861 | + * key-value pairs by namespaces for relevance. Keys can be retrived |
4862 | + * using wildcards, e.g. "standard::*" will return all of the keys in the |
4863 | + * "standard" namespace. |
4864 | + * |
4865 | + * The list of possible attributes for a filesystem (pointed to by a #GFile) is |
4866 | + * available as a #GFileAttributeInfoList. This list is queryable by key names |
4867 | + * as indicated earlier. |
4868 | + * |
4869 | + * Information is stored within the list in #GFileAttributeInfo structures. |
4870 | + * The info structure can store different types, listed in the enum |
4871 | + * #GFileAttributeType. Upon creation of a #GFileAttributeInfo, the type will |
4872 | + * be set to %G_FILE_ATTRIBUTE_TYPE_INVALID. |
4873 | + * |
4874 | + * Classes that implement #GFileIface will create a #GFileAttributeInfoList and |
4875 | + * install default keys and values for their given file system, architecture, |
4876 | + * and other possible implementation details (e.g., on a UNIX system, a file |
4877 | + * attribute key will be registered for the user id for a given file). |
4878 | + * |
4879 | + * <para> |
4880 | + * <table> |
4881 | + * <title>GFileAttributes Default Namespaces</title> |
4882 | + * <tgroup cols='2' align='left'><thead> |
4883 | + * <row><entry>Namspace</entry><entry>Description</entry></row> |
4884 | + * </thead> |
4885 | + * <tbody> |
4886 | + * <row><entry>"standard"</entry><entry>The "Standard" namespace. General file |
4887 | + * information that any application may need should be put in this namespace. |
4888 | + * Examples include the file's name, type, and size.</entry></row> |
4889 | + * <row><entry>"etag"</entry><entry>The <link linkend="gfile-etag">"Entity Tag"</link> |
4890 | + * namespace. Currently, the only key in this namespace is "value", which contains |
4891 | + * the value of the current entity tag.</entry></row> |
4892 | + * <row><entry>"id"</entry><entry>The "Identification" namespace. This |
4893 | + * namespace is used by file managers and applications that list directories |
4894 | + * to check for loops and to uniquely identify files.</entry></row> |
4895 | + * <row><entry>"access"</entry><entry>The "Access" namespace. Used to check |
4896 | + * if a user has the proper privilidges to access files and perform |
4897 | + * file operations. Keys in this namespace are made to be generic |
4898 | + * and easily understood, e.g. the "can_read" key is %TRUE if |
4899 | + * the current user has permission to read the file. UNIX permissions and |
4900 | + * NTFS ACLs in Windows should be mapped to these values.</entry></row> |
4901 | + * <row><entry>"mountable"</entry><entry>The "Mountable" namespace. Includes |
4902 | + * simple boolean keys for checking if a file or path supports mount operations, e.g. |
4903 | + * mount, unmount, eject. These are used for files of type %G_FILE_TYPE_MOUNTABLE.</entry></row> |
4904 | + * <row><entry>"time"</entry><entry>The "Time" namespace. Includes file |
4905 | + * access, changed, created times. </entry></row> |
4906 | + * <row><entry>"unix"</entry><entry>The "Unix" namespace. Includes UNIX-specific |
4907 | + * information and may not be available for all files. Examples include |
4908 | + * the UNIX "UID", "GID", etc.</entry></row> |
4909 | + * <row><entry>"dos"</entry><entry>The "DOS" namespace. Includes DOS-specific |
4910 | + * information and may not be available for all files. Examples include |
4911 | + * "is_system" for checking if a file is marked as a system file, and "is_archive" |
4912 | + * for checking if a file is marked as an archive file.</entry></row> |
4913 | + * <row><entry>"owner"</entry><entry>The "Owner" namespace. Includes information |
4914 | + * about who owns a file. May not be available for all file systems. Examples include |
4915 | + * "user" for getting the user name of the file owner. This information is often mapped from |
4916 | + * some backend specific data such as a unix UID.</entry></row> |
4917 | + * <row><entry>"thumbnail"</entry><entry>The "Thumbnail" namespace. Includes |
4918 | + * information about file thumbnails and their location within the file system. Examples of |
4919 | + * keys in this namespace include "path" to get the location of a thumbnail, and "failed" |
4920 | + * to check if thumbnailing of the file failed.</entry></row> |
4921 | + * <row><entry>"filesystem"</entry><entry>The "Filesystem" namespace. Gets information |
4922 | + * about the file system where a file is located, such as its type, how much |
4923 | + * space is left available, and the overall size of the file system.</entry></row> |
4924 | + * <row><entry>"gvfs"</entry><entry>The "GVFS" namespace. Keys in this namespace |
4925 | + * contain information about the current GVFS backend in use. </entry></row> |
4926 | + * <row><entry>"xattr"</entry><entry>The "xattr" namespace. Gets information |
4927 | + * about extended user attributes. See attr(5). The "user." prefix of the |
4928 | + * extended user attribute name is stripped away when constructing keys in |
4929 | + * this namespace, e.g. "xattr::mime_type" for the extended attribute with |
4930 | + * the name "user.mime_type". Note that this information is only available |
4931 | + * if GLib has been built with extended attribute support.</entry></row> |
4932 | + * <row><entry>"xattr-sys"</entry><entry>The "xattr-sys" namespace. |
4933 | + * Gets information about extended attributes which are not user-specific. |
4934 | + * See attr(5). Note that this information is only available if GLib |
4935 | + * has been built with extended attribute support.</entry></row> |
4936 | + * <row><entry>"selinux"</entry><entry>The "SELinux" namespace. Includes |
4937 | + * information about the SELinux context of files. Note that this information |
4938 | + * is only available if GLib has been built with SELinux support.</entry></row> |
4939 | + * </tbody> |
4940 | + * </tgroup> |
4941 | + * </table> |
4942 | + * </para> |
4943 | + * |
4944 | + * Please note that these are not all of the possible namespaces. |
4945 | + * More namespaces can be added from GIO modules or by individual applications. |
4946 | + * For more information about writing GIO modules, see #GIOModule. |
4947 | + * |
4948 | + * <!-- TODO: Implementation note about using extended attributes on supported |
4949 | + * file systems --> |
4950 | + * |
4951 | + * <para><table> |
4952 | + * <title>GFileAttributes Built-in Keys and Value Types</title> |
4953 | + * <tgroup cols='3' align='left'><thead> |
4954 | + * <row><entry>Enum Value</entry><entry>Namespace::Key</entry><entry>Value Type</entry></row> |
4955 | + * </thead><tbody> |
4956 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_TYPE</entry><entry>standard::type</entry><entry>uint32 (#GFileType)</entry></row> |
4957 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN</entry><entry>standard::is-hidden</entry><entry>boolean</entry></row> |
4958 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP</entry><entry>standard::is-backup</entry><entry>boolean</entry></row> |
4959 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK</entry><entry>standard::is-symlink</entry><entry>boolean</entry></row> |
4960 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL</entry><entry>standard::is-virtual</entry><entry>boolean</entry></row> |
4961 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_NAME</entry><entry>standard::name</entry><entry>byte string</entry></row> |
4962 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME</entry><entry>standard::display-name</entry><entry>string</entry></row> |
4963 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME</entry><entry>standard::edit-name</entry><entry>string</entry></row> |
4964 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_ICON</entry><entry>standard::icon</entry><entry>object (#GIcon)</entry></row> |
4965 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE</entry><entry>standard::content-type</entry><entry>string</entry></row> |
4966 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE</entry><entry>standard::fast-content-type</entry><entry>string</entry></row> |
4967 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_SIZE</entry><entry>standard::size</entry><entry>uint64</entry></row> |
4968 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE</entry><entry>standard::allocated-size</entry><entry>uint64</entry></row> |
4969 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET</entry><entry>standard::symlink-target</entry><entry>byte string</entry></row> |
4970 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_TARGET_URI</entry><entry>standard::target-uri</entry><entry>string</entry></row> |
4971 | + * <row><entry>%G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER</entry><entry>standard::sort-order</entry><entry>int32</entry></row> |
4972 | + * <row><entry>%G_FILE_ATTRIBUTE_ETAG_VALUE</entry><entry>etag::value</entry><entry>string</entry></row> |
4973 | + * <row><entry>%G_FILE_ATTRIBUTE_ID_FILE</entry><entry>id::file</entry><entry>string</entry></row> |
4974 | + * <row><entry>%G_FILE_ATTRIBUTE_ID_FILESYSTEM</entry><entry>id::filesystem</entry><entry>string</entry></row> |
4975 | + * <row><entry>%G_FILE_ATTRIBUTE_ACCESS_CAN_READ</entry><entry>access::can-read</entry><entry>boolean</entry></row> |
4976 | + * <row><entry>%G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE</entry><entry>access::can-write</entry><entry>boolean</entry></row> |
4977 | + * <row><entry>%G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE</entry><entry>access::can-execute</entry><entry>boolean</entry></row> |
4978 | + * <row><entry>%G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE</entry><entry>access::can-delete</entry><entry>boolean</entry></row> |
4979 | + * <row><entry>%G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH</entry><entry>access::can-trash</entry><entry>boolean</entry></row> |
4980 | + * <row><entry>%G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME</entry><entry>access::can-rename</entry><entry>boolean</entry></row> |
4981 | + * <row><entry>%G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT</entry><entry>mountable::can-mount</entry><entry>boolean</entry></row> |
4982 | + * <row><entry>%G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT</entry><entry>mountable::can-unmount</entry><entry>boolean</entry></row> |
4983 | + * <row><entry>%G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT</entry><entry>mountable::can-eject</entry><entry>boolean</entry></row> |
4984 | + * <row><entry>%G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE</entry><entry>mountable::unix-device</entry><entry>uint32</entry></row> |
4985 | + * <row><entry>%G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE</entry><entry>mountable::unix-device-file</entry><entry>string</entry></row> |
4986 | + * <row><entry>%G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI</entry><entry>mountable::hal-udi</entry><entry>string</entry></row> |
4987 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_MODIFIED</entry><entry>time::modified</entry><entry>uint64</entry></row> |
4988 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC</entry><entry>time::modified-usec</entry><entry>uint32</entry></row> |
4989 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_ACCESS</entry><entry>time::access</entry><entry>uint64</entry></row> |
4990 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_ACCESS_USEC</entry><entry>time::access-usec</entry><entry>uint32</entry></row> |
4991 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_CHANGED</entry><entry>time::changed</entry><entry>uint64</entry></row> |
4992 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_CHANGED_USEC</entry><entry>time::changed-usec</entry><entry>uint32</entry></row> |
4993 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_CREATED</entry><entry>time::created</entry><entry>uint64</entry></row> |
4994 | + * <row><entry>%G_FILE_ATTRIBUTE_TIME_CREATED_USEC</entry><entry>time::created-usec</entry><entry>uint32</entry></row> |
4995 | + * <row><entry>%G_FILE_ATTRIBUTE_UNIX_DEVICE</entry><entry>unix::device</entry><entry>uint32</entry></row> |
4996 | + * <row><entry>%G_FILE_ATTRIBUTE_UNIX_INODE</entry><entry>unix::inode</entry><entry>uint64</entry></row> |
4997 | + * <row><entry>%G_FILE_ATTRIBUTE_UNIX_MODE</entry><entry>unix::mode</entry><entry>uint32</entry></row> |
4998 | + * <row><entry>%G_FILE_ATTRIBUTE_UNIX_NLINK</entry><entry>unix::nlink</entry><entry>uint32</entry></row> |
4999 | + * <row><entry>%G_FILE_ATTRIBUTE_UNIX_UID</entry><entry>unix::uid</entry><entry>uint32</entry></row> |
5000 | + * <row><entry>%G_FILE_ATTRIBUTE_UNIX_GID</entry><entry>unix::gid</entry><entry>uint32</entry></row> |
It seems you forgot to actually bzr add the new patch.
Also, can you please link this to an upstream bug/patch? I'd really like to fix this in upstream gobject- introspection and then sync it via Debian. I don't want the API in Ubuntu be different than upstream/ Debian/ other distros.
Thanks!