D-Bus
1.12.16
Main Page
Related Pages
Modules
Data Structures
Files
File List
dbus
dbus-connection.h
1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2
/* dbus-connection.h DBusConnection object
3
*
4
* Copyright (C) 2002, 2003 Red Hat Inc.
5
*
6
* Licensed under the Academic Free License version 2.1
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with this program; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
*/
23
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
24
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
25
#endif
26
27
#ifndef DBUS_CONNECTION_H
28
#define DBUS_CONNECTION_H
29
30
#include <dbus/dbus-errors.h>
31
#include <dbus/dbus-macros.h>
32
#include <dbus/dbus-memory.h>
33
#include <dbus/dbus-message.h>
34
#include <dbus/dbus-shared.h>
35
36
DBUS_BEGIN_DECLS
37
43
/* documented in dbus-watch.c */
44
typedef
struct
DBusWatch
DBusWatch
;
45
/* documented in dbus-timeout.c */
46
typedef
struct
DBusTimeout
DBusTimeout
;
48
typedef
struct
DBusPreallocatedSend
DBusPreallocatedSend
;
50
typedef
struct
DBusPendingCall
DBusPendingCall
;
52
typedef
struct
DBusConnection
DBusConnection
;
54
typedef
struct
DBusObjectPathVTable
DBusObjectPathVTable
;
55
59
typedef
enum
60
{
61
DBUS_WATCH_READABLE
= 1 << 0,
62
DBUS_WATCH_WRITABLE
= 1 << 1,
63
DBUS_WATCH_ERROR
= 1 << 2,
68
DBUS_WATCH_HANGUP
= 1 << 3
73
/* Internal to libdbus, there is also _DBUS_WATCH_NVAL in dbus-watch.h */
74
}
DBusWatchFlags
;
75
80
typedef
enum
81
{
82
DBUS_DISPATCH_DATA_REMAINS
,
83
DBUS_DISPATCH_COMPLETE
,
84
DBUS_DISPATCH_NEED_MEMORY
85
}
DBusDispatchStatus
;
86
92
typedef
dbus_bool_t
(*
DBusAddWatchFunction
) (
DBusWatch
*watch,
93
void
*data);
98
typedef
void (*
DBusWatchToggledFunction
) (
DBusWatch
*watch,
99
void
*data);
104
typedef
void (*
DBusRemoveWatchFunction
) (
DBusWatch
*watch,
105
void
*data);
111
typedef
dbus_bool_t
(*
DBusAddTimeoutFunction
) (
DBusTimeout
*timeout,
112
void
*data);
118
typedef
void (*
DBusTimeoutToggledFunction
) (
DBusTimeout
*timeout,
119
void
*data);
124
typedef
void (*
DBusRemoveTimeoutFunction
) (
DBusTimeout
*timeout,
125
void
*data);
129
typedef
void (*
DBusDispatchStatusFunction
) (
DBusConnection
*connection,
130
DBusDispatchStatus
new_status,
131
void
*data);
136
typedef
void (*
DBusWakeupMainFunction
) (
void
*data);
137
144
typedef
dbus_bool_t
(*
DBusAllowUnixUserFunction
) (
DBusConnection
*connection,
145
unsigned
long
uid,
146
void
*data);
147
154
typedef
dbus_bool_t
(*
DBusAllowWindowsUserFunction
) (
DBusConnection
*connection,
155
const
char
*user_sid,
156
void
*data);
157
158
163
typedef
void (*
DBusPendingCallNotifyFunction
) (
DBusPendingCall
*pending,
164
void
*user_data);
165
170
typedef
DBusHandlerResult
(*
DBusHandleMessageFunction
) (
DBusConnection
*connection,
171
DBusMessage
*message,
172
void
*user_data);
173
DBUS_EXPORT
174
DBusConnection
*
dbus_connection_open
(
const
char
*address,
175
DBusError
*error);
176
DBUS_EXPORT
177
DBusConnection
*
dbus_connection_open_private
(
const
char
*address,
178
DBusError
*error);
179
DBUS_EXPORT
180
DBusConnection
*
dbus_connection_ref
(
DBusConnection
*connection);
181
DBUS_EXPORT
182
void
dbus_connection_unref
(
DBusConnection
*connection);
183
DBUS_EXPORT
184
void
dbus_connection_close
(
DBusConnection
*connection);
185
DBUS_EXPORT
186
dbus_bool_t
dbus_connection_get_is_connected
(
DBusConnection
*connection);
187
DBUS_EXPORT
188
dbus_bool_t
dbus_connection_get_is_authenticated
(
DBusConnection
*connection);
189
DBUS_EXPORT
190
dbus_bool_t
dbus_connection_get_is_anonymous
(
DBusConnection
*connection);
191
DBUS_EXPORT
192
char
*
dbus_connection_get_server_id
(
DBusConnection
*connection);
193
DBUS_EXPORT
194
dbus_bool_t
dbus_connection_can_send_type
(
DBusConnection
*connection,
195
int
type);
196
197
DBUS_EXPORT
198
void
dbus_connection_set_exit_on_disconnect
(
DBusConnection
*connection,
199
dbus_bool_t
exit_on_disconnect);
200
DBUS_EXPORT
201
void
dbus_connection_flush
(
DBusConnection
*connection);
202
DBUS_EXPORT
203
dbus_bool_t
dbus_connection_read_write_dispatch
(
DBusConnection
*connection,
204
int
timeout_milliseconds);
205
DBUS_EXPORT
206
dbus_bool_t
dbus_connection_read_write
(
DBusConnection
*connection,
207
int
timeout_milliseconds);
208
DBUS_EXPORT
209
DBusMessage
*
dbus_connection_borrow_message
(
DBusConnection
*connection);
210
DBUS_EXPORT
211
void
dbus_connection_return_message
(
DBusConnection
*connection,
212
DBusMessage
*message);
213
DBUS_EXPORT
214
void
dbus_connection_steal_borrowed_message
(
DBusConnection
*connection,
215
DBusMessage
*message);
216
DBUS_EXPORT
217
DBusMessage
*
dbus_connection_pop_message
(
DBusConnection
*connection);
218
DBUS_EXPORT
219
DBusDispatchStatus
dbus_connection_get_dispatch_status
(
DBusConnection
*connection);
220
DBUS_EXPORT
221
DBusDispatchStatus
dbus_connection_dispatch
(
DBusConnection
*connection);
222
DBUS_EXPORT
223
dbus_bool_t
dbus_connection_has_messages_to_send
(
DBusConnection
*connection);
224
DBUS_EXPORT
225
dbus_bool_t
dbus_connection_send
(
DBusConnection
*connection,
226
DBusMessage
*message,
227
dbus_uint32_t
*client_serial);
228
DBUS_EXPORT
229
dbus_bool_t
dbus_connection_send_with_reply
(
DBusConnection
*connection,
230
DBusMessage
*message,
231
DBusPendingCall
**pending_return,
232
int
timeout_milliseconds);
233
DBUS_EXPORT
234
DBusMessage
*
dbus_connection_send_with_reply_and_block
(
DBusConnection
*connection,
235
DBusMessage
*message,
236
int
timeout_milliseconds,
237
DBusError
*error);
238
DBUS_EXPORT
239
dbus_bool_t
dbus_connection_set_watch_functions
(
DBusConnection
*connection,
240
DBusAddWatchFunction
add_function,
241
DBusRemoveWatchFunction
remove_function,
242
DBusWatchToggledFunction
toggled_function,
243
void
*data,
244
DBusFreeFunction
free_data_function);
245
DBUS_EXPORT
246
dbus_bool_t
dbus_connection_set_timeout_functions
(
DBusConnection
*connection,
247
DBusAddTimeoutFunction
add_function,
248
DBusRemoveTimeoutFunction
remove_function,
249
DBusTimeoutToggledFunction
toggled_function,
250
void
*data,
251
DBusFreeFunction
free_data_function);
252
DBUS_EXPORT
253
void
dbus_connection_set_wakeup_main_function
(
DBusConnection
*connection,
254
DBusWakeupMainFunction
wakeup_main_function,
255
void
*data,
256
DBusFreeFunction
free_data_function);
257
DBUS_EXPORT
258
void
dbus_connection_set_dispatch_status_function
(
DBusConnection
*connection,
259
DBusDispatchStatusFunction
function
,
260
void
*data,
261
DBusFreeFunction
free_data_function);
262
DBUS_EXPORT
263
dbus_bool_t
dbus_connection_get_unix_user
(
DBusConnection
*connection,
264
unsigned
long
*uid);
265
DBUS_EXPORT
266
dbus_bool_t
dbus_connection_get_unix_process_id
(
DBusConnection
*connection,
267
unsigned
long
*pid);
268
DBUS_EXPORT
269
dbus_bool_t
dbus_connection_get_adt_audit_session_data
(
DBusConnection
*connection,
270
void
**data,
271
dbus_int32_t
*data_size);
272
DBUS_EXPORT
273
void
dbus_connection_set_unix_user_function
(
DBusConnection
*connection,
274
DBusAllowUnixUserFunction
function
,
275
void
*data,
276
DBusFreeFunction
free_data_function);
277
DBUS_EXPORT
278
dbus_bool_t
dbus_connection_get_windows_user
(
DBusConnection
*connection,
279
char
**windows_sid_p);
280
DBUS_EXPORT
281
void
dbus_connection_set_windows_user_function
(
DBusConnection
*connection,
282
DBusAllowWindowsUserFunction
function
,
283
void
*data,
284
DBusFreeFunction
free_data_function);
285
DBUS_EXPORT
286
void
dbus_connection_set_allow_anonymous
(
DBusConnection
*connection,
287
dbus_bool_t
value);
288
DBUS_EXPORT
289
void
dbus_connection_set_route_peer_messages
(
DBusConnection
*connection,
290
dbus_bool_t
value);
291
292
293
/* Filters */
294
295
DBUS_EXPORT
296
dbus_bool_t
dbus_connection_add_filter
(
DBusConnection
*connection,
297
DBusHandleMessageFunction
function
,
298
void
*user_data,
299
DBusFreeFunction
free_data_function);
300
DBUS_EXPORT
301
void
dbus_connection_remove_filter
(
DBusConnection
*connection,
302
DBusHandleMessageFunction
function
,
303
void
*user_data);
304
305
306
/* Other */
307
DBUS_EXPORT
308
dbus_bool_t
dbus_connection_allocate_data_slot
(
dbus_int32_t
*slot_p);
309
DBUS_EXPORT
310
void
dbus_connection_free_data_slot
(
dbus_int32_t
*slot_p);
311
DBUS_EXPORT
312
dbus_bool_t
dbus_connection_set_data
(
DBusConnection
*connection,
313
dbus_int32_t
slot,
314
void
*data,
315
DBusFreeFunction
free_data_func);
316
DBUS_EXPORT
317
void
*
dbus_connection_get_data
(
DBusConnection
*connection,
318
dbus_int32_t
slot);
319
320
DBUS_EXPORT
321
void
dbus_connection_set_change_sigpipe
(
dbus_bool_t
will_modify_sigpipe);
322
323
DBUS_EXPORT
324
void
dbus_connection_set_max_message_size
(
DBusConnection
*connection,
325
long
size);
326
DBUS_EXPORT
327
long
dbus_connection_get_max_message_size
(
DBusConnection
*connection);
328
DBUS_EXPORT
329
void
dbus_connection_set_max_received_size
(
DBusConnection
*connection,
330
long
size);
331
DBUS_EXPORT
332
long
dbus_connection_get_max_received_size
(
DBusConnection
*connection);
333
334
DBUS_EXPORT
335
void
dbus_connection_set_max_message_unix_fds
(
DBusConnection
*connection,
336
long
n);
337
DBUS_EXPORT
338
long
dbus_connection_get_max_message_unix_fds
(
DBusConnection
*connection);
339
DBUS_EXPORT
340
void
dbus_connection_set_max_received_unix_fds
(
DBusConnection
*connection,
341
long
n);
342
DBUS_EXPORT
343
long
dbus_connection_get_max_received_unix_fds
(
DBusConnection
*connection);
344
345
DBUS_EXPORT
346
long
dbus_connection_get_outgoing_size
(
DBusConnection
*connection);
347
DBUS_EXPORT
348
long
dbus_connection_get_outgoing_unix_fds
(
DBusConnection
*connection);
349
350
DBUS_EXPORT
351
DBusPreallocatedSend
*
dbus_connection_preallocate_send
(
DBusConnection
*connection);
352
DBUS_EXPORT
353
void
dbus_connection_free_preallocated_send
(
DBusConnection
*connection,
354
DBusPreallocatedSend
*preallocated);
355
DBUS_EXPORT
356
void
dbus_connection_send_preallocated
(
DBusConnection
*connection,
357
DBusPreallocatedSend
*preallocated,
358
DBusMessage
*message,
359
dbus_uint32_t
*client_serial);
360
361
362
/* Object tree functionality */
363
368
typedef
void (*
DBusObjectPathUnregisterFunction
) (
DBusConnection
*connection,
369
void
*user_data);
375
typedef
DBusHandlerResult
(*
DBusObjectPathMessageFunction
) (
DBusConnection
*connection,
376
DBusMessage
*message,
377
void
*user_data);
378
385
struct
DBusObjectPathVTable
386
{
387
DBusObjectPathUnregisterFunction
unregister_function
;
388
DBusObjectPathMessageFunction
message_function
;
390
void (*
dbus_internal_pad1
) (
void
*);
391
void (*
dbus_internal_pad2
) (
void
*);
392
void (*
dbus_internal_pad3
) (
void
*);
393
void (*
dbus_internal_pad4
) (
void
*);
394
};
395
396
DBUS_EXPORT
397
dbus_bool_t
dbus_connection_try_register_object_path
(
DBusConnection
*connection,
398
const
char
*path,
399
const
DBusObjectPathVTable
*vtable,
400
void
*user_data,
401
DBusError
*error);
402
403
DBUS_EXPORT
404
dbus_bool_t
dbus_connection_register_object_path
(
DBusConnection
*connection,
405
const
char
*path,
406
const
DBusObjectPathVTable
*vtable,
407
void
*user_data);
408
409
DBUS_EXPORT
410
dbus_bool_t
dbus_connection_try_register_fallback
(
DBusConnection
*connection,
411
const
char
*path,
412
const
DBusObjectPathVTable
*vtable,
413
void
*user_data,
414
DBusError
*error);
415
416
DBUS_EXPORT
417
dbus_bool_t
dbus_connection_register_fallback
(
DBusConnection
*connection,
418
const
char
*path,
419
const
DBusObjectPathVTable
*vtable,
420
void
*user_data);
421
DBUS_EXPORT
422
dbus_bool_t
dbus_connection_unregister_object_path
(
DBusConnection
*connection,
423
const
char
*path);
424
425
DBUS_EXPORT
426
dbus_bool_t
dbus_connection_get_object_path_data
(
DBusConnection
*connection,
427
const
char
*path,
428
void
**data_p);
429
430
DBUS_EXPORT
431
dbus_bool_t
dbus_connection_list_registered
(
DBusConnection
*connection,
432
const
char
*parent_path,
433
char
***child_entries);
434
435
DBUS_EXPORT
436
dbus_bool_t
dbus_connection_get_unix_fd
(
DBusConnection
*connection,
437
int
*fd);
438
DBUS_EXPORT
439
dbus_bool_t
dbus_connection_get_socket
(
DBusConnection
*connection,
440
int
*fd);
441
464
static
inline
void
465
dbus_clear_connection (
DBusConnection
**pointer_to_connection)
466
{
467
_dbus_clear_pointer_impl (
DBusConnection
, pointer_to_connection,
468
dbus_connection_unref
);
469
}
470
479
#ifndef DBUS_DISABLE_DEPRECATED
480
DBUS_EXPORT
481
DBUS_DEPRECATED
int
dbus_watch_get_fd
(
DBusWatch
*watch);
482
#endif
483
484
DBUS_EXPORT
485
int
dbus_watch_get_unix_fd
(
DBusWatch
*watch);
486
DBUS_EXPORT
487
int
dbus_watch_get_socket
(
DBusWatch
*watch);
488
DBUS_EXPORT
489
unsigned
int
dbus_watch_get_flags
(
DBusWatch
*watch);
490
DBUS_EXPORT
491
void
*
dbus_watch_get_data
(
DBusWatch
*watch);
492
DBUS_EXPORT
493
void
dbus_watch_set_data
(
DBusWatch
*watch,
494
void
*data,
495
DBusFreeFunction
free_data_function);
496
DBUS_EXPORT
497
dbus_bool_t
dbus_watch_handle
(
DBusWatch
*watch,
498
unsigned
int
flags);
499
DBUS_EXPORT
500
dbus_bool_t
dbus_watch_get_enabled
(
DBusWatch
*watch);
501
509
DBUS_EXPORT
510
int
dbus_timeout_get_interval
(
DBusTimeout
*timeout);
511
DBUS_EXPORT
512
void
*
dbus_timeout_get_data
(
DBusTimeout
*timeout);
513
DBUS_EXPORT
514
void
dbus_timeout_set_data
(
DBusTimeout
*timeout,
515
void
*data,
516
DBusFreeFunction
free_data_function);
517
DBUS_EXPORT
518
dbus_bool_t
dbus_timeout_handle
(
DBusTimeout
*timeout);
519
DBUS_EXPORT
520
dbus_bool_t
dbus_timeout_get_enabled
(
DBusTimeout
*timeout);
521
524
DBUS_END_DECLS
525
526
#endif
/* DBUS_CONNECTION_H */
Generated by
1.8.3.1