D-Bus: dbus-connection.h Source File

D-Bus 1.14.10

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 */
44typedef struct DBusWatch DBusWatch;
45/* documented in dbus-timeout.c */
46typedef 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);
173DBUS_EXPORT
174 DBusConnection* dbus_connection_open (const char *address,
175 DBusError *error);
176DBUS_EXPORT
177 DBusConnection* dbus_connection_open_private (const char *address,
178 DBusError *error);
179DBUS_EXPORT
180 DBusConnection* dbus_connection_ref (DBusConnection *connection);
181DBUS_EXPORT
182void dbus_connection_unref (DBusConnection *connection);
183DBUS_EXPORT
184void dbus_connection_close (DBusConnection *connection);
185DBUS_EXPORT
186dbus_bool_t dbus_connection_get_is_connected (DBusConnection *connection);
187DBUS_EXPORT
188dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection);
189DBUS_EXPORT
190dbus_bool_t dbus_connection_get_is_anonymous (DBusConnection *connection);
191DBUS_EXPORT
192char* dbus_connection_get_server_id (DBusConnection *connection);
193DBUS_EXPORT
194dbus_bool_t dbus_connection_can_send_type (DBusConnection *connection,
195 int type);
196
197DBUS_EXPORT
198void dbus_connection_set_exit_on_disconnect (DBusConnection *connection,
199 dbus_bool_t exit_on_disconnect);
200DBUS_EXPORT
201void dbus_connection_flush (DBusConnection *connection);
202DBUS_EXPORT
203dbus_bool_t dbus_connection_read_write_dispatch (DBusConnection *connection,
204 int timeout_milliseconds);
205DBUS_EXPORT
206dbus_bool_t dbus_connection_read_write (DBusConnection *connection,
207 int timeout_milliseconds);
208DBUS_EXPORT
209 DBusMessage* dbus_connection_borrow_message (DBusConnection *connection);
210DBUS_EXPORT
211void dbus_connection_return_message (DBusConnection *connection,
212 DBusMessage *message);
213DBUS_EXPORT
214void dbus_connection_steal_borrowed_message (DBusConnection *connection,
215 DBusMessage *message);
216DBUS_EXPORT
217 DBusMessage* dbus_connection_pop_message (DBusConnection *connection);
218DBUS_EXPORT
219 DBusDispatchStatus dbus_connection_get_dispatch_status (DBusConnection *connection);
220DBUS_EXPORT
221 DBusDispatchStatus dbus_connection_dispatch (DBusConnection *connection);
222DBUS_EXPORT
223dbus_bool_t dbus_connection_has_messages_to_send (DBusConnection *connection);
224DBUS_EXPORT
225dbus_bool_t dbus_connection_send (DBusConnection *connection,
226 DBusMessage *message,
227 dbus_uint32_t *client_serial);
228DBUS_EXPORT
229dbus_bool_t dbus_connection_send_with_reply (DBusConnection *connection,
230 DBusMessage *message,
231 DBusPendingCall **pending_return,
232 int timeout_milliseconds);
233DBUS_EXPORT
234 DBusMessage * dbus_connection_send_with_reply_and_block (DBusConnection *connection,
235 DBusMessage *message,
236 int timeout_milliseconds,
237 DBusError *error);
238DBUS_EXPORT
239dbus_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);
245DBUS_EXPORT
246dbus_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);
252DBUS_EXPORT
253void dbus_connection_set_wakeup_main_function (DBusConnection *connection,
254 DBusWakeupMainFunction wakeup_main_function,
255 void *data,
256 DBusFreeFunction free_data_function);
257DBUS_EXPORT
258void dbus_connection_set_dispatch_status_function (DBusConnection *connection,
259 DBusDispatchStatusFunction function,
260 void *data,
261 DBusFreeFunction free_data_function);
262DBUS_EXPORT
263dbus_bool_t dbus_connection_get_unix_user (DBusConnection *connection,
264 unsigned long *uid);
265DBUS_EXPORT
266dbus_bool_t dbus_connection_get_unix_process_id (DBusConnection *connection,
267 unsigned long *pid);
268DBUS_EXPORT
269dbus_bool_t dbus_connection_get_adt_audit_session_data (DBusConnection *connection,
270 void **data,
271 dbus_int32_t *data_size);
272DBUS_EXPORT
273void dbus_connection_set_unix_user_function (DBusConnection *connection,
274 DBusAllowUnixUserFunction function,
275 void *data,
276 DBusFreeFunction free_data_function);
277DBUS_EXPORT
278dbus_bool_t dbus_connection_get_windows_user (DBusConnection *connection,
279 char **windows_sid_p);
280DBUS_EXPORT
281void dbus_connection_set_windows_user_function (DBusConnection *connection,
282 DBusAllowWindowsUserFunction function,
283 void *data,
284 DBusFreeFunction free_data_function);
285DBUS_EXPORT
286void dbus_connection_set_allow_anonymous (DBusConnection *connection,
287 dbus_bool_t value);
288DBUS_EXPORT
289void dbus_connection_set_route_peer_messages (DBusConnection *connection,
290 dbus_bool_t value);
291
292
293/* Filters */
294
295DBUS_EXPORT
296dbus_bool_t dbus_connection_add_filter (DBusConnection *connection,
297 DBusHandleMessageFunction function,
298 void *user_data,
299 DBusFreeFunction free_data_function);
300DBUS_EXPORT
301void dbus_connection_remove_filter (DBusConnection *connection,
302 DBusHandleMessageFunction function,
303 void *user_data);
304
305
306/* Other */
307DBUS_EXPORT
308dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t *slot_p);
309DBUS_EXPORT
310void dbus_connection_free_data_slot (dbus_int32_t *slot_p);
311DBUS_EXPORT
312dbus_bool_t dbus_connection_set_data (DBusConnection *connection,
313 dbus_int32_t slot,
314 void *data,
315 DBusFreeFunction free_data_func);
316DBUS_EXPORT
317void* dbus_connection_get_data (DBusConnection *connection,
318 dbus_int32_t slot);
319
320DBUS_EXPORT
321void dbus_connection_set_change_sigpipe (dbus_bool_t will_modify_sigpipe);
322
323DBUS_EXPORT
324void dbus_connection_set_max_message_size (DBusConnection *connection,
325 long size);
326DBUS_EXPORT
327long dbus_connection_get_max_message_size (DBusConnection *connection);
328DBUS_EXPORT
329void dbus_connection_set_max_received_size (DBusConnection *connection,
330 long size);
331DBUS_EXPORT
332long dbus_connection_get_max_received_size (DBusConnection *connection);
333
334DBUS_EXPORT
335void dbus_connection_set_max_message_unix_fds (DBusConnection *connection,
336 long n);
337DBUS_EXPORT
338long dbus_connection_get_max_message_unix_fds (DBusConnection *connection);
339DBUS_EXPORT
340void dbus_connection_set_max_received_unix_fds(DBusConnection *connection,
341 long n);
342DBUS_EXPORT
343long dbus_connection_get_max_received_unix_fds(DBusConnection *connection);
344
345DBUS_EXPORT
346long dbus_connection_get_outgoing_size (DBusConnection *connection);
347DBUS_EXPORT
348long dbus_connection_get_outgoing_unix_fds (DBusConnection *connection);
349
350DBUS_EXPORT
351 DBusPreallocatedSend* dbus_connection_preallocate_send (DBusConnection *connection);
352DBUS_EXPORT
353void dbus_connection_free_preallocated_send (DBusConnection *connection,
354 DBusPreallocatedSend *preallocated);
355DBUS_EXPORT
356void 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
396DBUS_EXPORT
397dbus_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
403DBUS_EXPORT
404dbus_bool_t dbus_connection_register_object_path (DBusConnection *connection,
405 const char *path,
406 const DBusObjectPathVTable *vtable,
407 void *user_data);
408
409DBUS_EXPORT
410dbus_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
416DBUS_EXPORT
417dbus_bool_t dbus_connection_register_fallback (DBusConnection *connection,
418 const char *path,
419 const DBusObjectPathVTable *vtable,
420 void *user_data);
421DBUS_EXPORT
422dbus_bool_t dbus_connection_unregister_object_path (DBusConnection *connection,
423 const char *path);
424
425DBUS_EXPORT
426dbus_bool_t dbus_connection_get_object_path_data (DBusConnection *connection,
427 const char *path,
428 void **data_p);
429
430DBUS_EXPORT
431dbus_bool_t dbus_connection_list_registered (DBusConnection *connection,
432 const char *parent_path,
433 char ***child_entries);
434
435DBUS_EXPORT
436dbus_bool_t dbus_connection_get_unix_fd (DBusConnection *connection,
437 int *fd);
438DBUS_EXPORT
439dbus_bool_t dbus_connection_get_socket (DBusConnection *connection,
440 int *fd);
441
464static inline void
465dbus_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
480DBUS_EXPORT
481 DBUS_DEPRECATED int dbus_watch_get_fd (DBusWatch *watch);
482#endif
483
484DBUS_EXPORT
485int dbus_watch_get_unix_fd (DBusWatch *watch);
486DBUS_EXPORT
487int dbus_watch_get_socket (DBusWatch *watch);
488DBUS_EXPORT
489unsigned int dbus_watch_get_flags (DBusWatch *watch);
490DBUS_EXPORT
491void* dbus_watch_get_data (DBusWatch *watch);
492DBUS_EXPORT
493void dbus_watch_set_data (DBusWatch *watch,
494 void *data,
495 DBusFreeFunction free_data_function);
496DBUS_EXPORT
497dbus_bool_t dbus_watch_handle (DBusWatch *watch,
498 unsigned int flags);
499DBUS_EXPORT
500dbus_bool_t dbus_watch_get_enabled (DBusWatch *watch);
501
509DBUS_EXPORT
510int dbus_timeout_get_interval (DBusTimeout *timeout);
511DBUS_EXPORT
512void* dbus_timeout_get_data (DBusTimeout *timeout);
513DBUS_EXPORT
514void dbus_timeout_set_data (DBusTimeout *timeout,
515 void *data,
516 DBusFreeFunction free_data_function);
517DBUS_EXPORT
518dbus_bool_t dbus_timeout_handle (DBusTimeout *timeout);
519DBUS_EXPORT
520dbus_bool_t dbus_timeout_get_enabled (DBusTimeout *timeout);
521
524 DBUS_END_DECLS
525
526#endif /* DBUS_CONNECTION_H */
DBusWatchFlags
DBusWatchFlags
Indicates the status of a DBusWatch.
Definition dbus-connection.h:60
dbus_connection_return_message
void dbus_connection_return_message(DBusConnection *connection, DBusMessage *message)
Used to return a message after peeking at it using dbus_connection_borrow_message().
Definition dbus-connection.c:3912
DBusWatchToggledFunction
void(* DBusWatchToggledFunction)(DBusWatch *watch, void *data)
Called when dbus_watch_get_enabled() may return a different value than it did before.
Definition dbus-connection.h:98
dbus_connection_get_object_path_data
dbus_bool_t dbus_connection_get_object_path_data(DBusConnection *connection, const char *path, void **data_p)
Gets the user data passed to dbus_connection_register_object_path() or dbus_connection_register_fallb...
Definition dbus-connection.c:5963
dbus_connection_set_max_message_size
void dbus_connection_set_max_message_size(DBusConnection *connection, long size)
Specifies the maximum size message this connection is allowed to receive.
Definition dbus-connection.c:6182
dbus_connection_flush
void dbus_connection_flush(DBusConnection *connection)
Blocks until the outgoing message queue is empty.
Definition dbus-connection.c:3652
dbus_connection_get_max_message_unix_fds
long dbus_connection_get_max_message_unix_fds(DBusConnection *connection)
Gets the value set by dbus_connection_set_max_message_unix_fds().
Definition dbus-connection.c:6239
dbus_connection_set_exit_on_disconnect
void dbus_connection_set_exit_on_disconnect(DBusConnection *connection, dbus_bool_t exit_on_disconnect)
Set whether _exit() should be called when the connection receives a disconnect signal.
Definition dbus-connection.c:3156
dbus_connection_get_socket
dbus_bool_t dbus_connection_get_socket(DBusConnection *connection, int *fd)
Gets the underlying Windows or UNIX socket file descriptor of the connection, if any.
Definition dbus-connection.c:5188
dbus_connection_pop_message
DBusMessage * dbus_connection_pop_message(DBusConnection *connection)
Returns the first-received message from the incoming message queue, removing it from the queue.
Definition dbus-connection.c:4102
dbus_connection_get_max_received_unix_fds
long dbus_connection_get_max_received_unix_fds(DBusConnection *connection)
Gets the value set by dbus_connection_set_max_received_unix_fds().
Definition dbus-connection.c:6337
dbus_connection_register_object_path
dbus_bool_t dbus_connection_register_object_path(DBusConnection *connection, const char *path, const DBusObjectPathVTable *vtable, void *user_data)
Registers a handler for a given path in the object hierarchy.
Definition dbus-connection.c:5824
dbus_connection_close
void dbus_connection_close(DBusConnection *connection)
Closes a private connection, so no further data can be sent or received.
Definition dbus-connection.c:2943
dbus_connection_set_max_message_unix_fds
void dbus_connection_set_max_message_unix_fds(DBusConnection *connection, long n)
Specifies the maximum number of unix fds a message on this connection is allowed to receive.
Definition dbus-connection.c:6221
dbus_connection_set_wakeup_main_function
void dbus_connection_set_wakeup_main_function(DBusConnection *connection, DBusWakeupMainFunction wakeup_main_function, void *data, DBusFreeFunction free_data_function)
Sets the mainloop wakeup function for the connection.
Definition dbus-connection.c:5067
dbus_connection_get_windows_user
dbus_bool_t dbus_connection_get_windows_user(DBusConnection *connection, char **windows_sid_p)
Gets the Windows user SID of the connection if known.
Definition dbus-connection.c:5447
DBusObjectPathMessageFunction
DBusHandlerResult(* DBusObjectPathMessageFunction)(DBusConnection *connection, DBusMessage *message, void *user_data)
Called when a message is sent to a registered object path.
Definition dbus-connection.h:375
dbus_connection_get_is_authenticated
dbus_bool_t dbus_connection_get_is_authenticated(DBusConnection *connection)
Gets whether the connection was authenticated.
Definition dbus-connection.c:3006
dbus_connection_send_preallocated
void dbus_connection_send_preallocated(DBusConnection *connection, DBusPreallocatedSend *preallocated, DBusMessage *message, dbus_uint32_t *client_serial)
Sends a message using preallocated resources.
Definition dbus-connection.c:3228
dbus_connection_read_write
dbus_bool_t dbus_connection_read_write(DBusConnection *connection, int timeout_milliseconds)
This function is intended for use with applications that don't want to write a main loop and deal wit...
Definition dbus-connection.c:3812
dbus_connection_get_max_received_size
long dbus_connection_get_max_received_size(DBusConnection *connection)
Gets the value set by dbus_connection_set_max_received_size().
Definition dbus-connection.c:6295
dbus_connection_get_unix_fd
dbus_bool_t dbus_connection_get_unix_fd(DBusConnection *connection, int *fd)
Get the UNIX file descriptor of the connection, if any.
Definition dbus-connection.c:5158
DBusDispatchStatusFunction
void(* DBusDispatchStatusFunction)(DBusConnection *connection, DBusDispatchStatus new_status, void *data)
Called when the return value of dbus_connection_get_dispatch_status() may have changed.
Definition dbus-connection.h:129
dbus_connection_can_send_type
dbus_bool_t dbus_connection_can_send_type(DBusConnection *connection, int type)
Tests whether a certain type can be send via the connection.
Definition dbus-connection.c:3116
dbus_connection_list_registered
dbus_bool_t dbus_connection_list_registered(DBusConnection *connection, const char *parent_path, char ***child_entries)
Lists the registered fallback handlers and object path handlers at the given parent_path.
Definition dbus-connection.c:6000
dbus_connection_get_data
void * dbus_connection_get_data(DBusConnection *connection, dbus_int32_t slot)
Retrieves data previously set with dbus_connection_set_data().
Definition dbus-connection.c:6139
dbus_connection_open_private
DBusConnection * dbus_connection_open_private(const char *address, DBusError *error)
Opens a new, dedicated connection to a remote address.
Definition dbus-connection.c:2674
dbus_connection_get_outgoing_size
long dbus_connection_get_outgoing_size(DBusConnection *connection)
Gets the approximate size in bytes of all messages in the outgoing message queue.
Definition dbus-connection.c:6360
dbus_connection_set_dispatch_status_function
void dbus_connection_set_dispatch_status_function(DBusConnection *connection, DBusDispatchStatusFunction function, void *data, DBusFreeFunction free_data_function)
Set a function to be invoked when the dispatch status changes.
Definition dbus-connection.c:5113
dbus_connection_read_write_dispatch
dbus_bool_t dbus_connection_read_write_dispatch(DBusConnection *connection, int timeout_milliseconds)
This function is intended for use with applications that don't want to write a main loop and deal wit...
Definition dbus-connection.c:3780
DBusHandleMessageFunction
DBusHandlerResult(* DBusHandleMessageFunction)(DBusConnection *connection, DBusMessage *message, void *user_data)
Called when a message needs to be handled.
Definition dbus-connection.h:170
dbus_connection_remove_filter
void dbus_connection_remove_filter(DBusConnection *connection, DBusHandleMessageFunction function, void *user_data)
Removes a previously-added message filter.
Definition dbus-connection.c:5685
dbus_connection_get_is_connected
dbus_bool_t dbus_connection_get_is_connected(DBusConnection *connection)
Gets whether the connection is currently open.
Definition dbus-connection.c:2984
dbus_connection_preallocate_send
DBusPreallocatedSend * dbus_connection_preallocate_send(DBusConnection *connection)
Preallocates resources needed to send a message, allowing the message to be sent without the possibil...
Definition dbus-connection.c:3176
DBusObjectPathUnregisterFunction
void(* DBusObjectPathUnregisterFunction)(DBusConnection *connection, void *user_data)
Called when a DBusObjectPathVTable is unregistered (or its connection is freed).
Definition dbus-connection.h:368
DBusAddWatchFunction
dbus_bool_t(* DBusAddWatchFunction)(DBusWatch *watch, void *data)
Called when libdbus needs a new watch to be monitored by the main loop.
Definition dbus-connection.h:92
dbus_connection_unref
void dbus_connection_unref(DBusConnection *connection)
Decrements the reference count of a DBusConnection, and finalizes it if the count reaches zero.
Definition dbus-connection.c:2828
dbus_connection_set_max_received_size
void dbus_connection_set_max_received_size(DBusConnection *connection, long size)
Sets the maximum total number of bytes that can be used for all messages received on this connection.
Definition dbus-connection.c:6277
DBusTimeoutToggledFunction
void(* DBusTimeoutToggledFunction)(DBusTimeout *timeout, void *data)
Called when dbus_timeout_get_enabled() may return a different value than it did before.
Definition dbus-connection.h:118
dbus_connection_dispatch
DBusDispatchStatus dbus_connection_dispatch(DBusConnection *connection)
Processes any incoming data.
Definition dbus-connection.c:4586
dbus_connection_unregister_object_path
dbus_bool_t dbus_connection_unregister_object_path(DBusConnection *connection, const char *path)
Unregisters the handler registered with exactly the given path.
Definition dbus-connection.c:5931
dbus_connection_set_unix_user_function
void dbus_connection_set_unix_user_function(DBusConnection *connection, DBusAllowUnixUserFunction function, void *data, DBusFreeFunction free_data_function)
Sets a predicate function used to determine whether a given user ID is allowed to connect.
Definition dbus-connection.c:5350
dbus_connection_try_register_object_path
dbus_bool_t dbus_connection_try_register_object_path(DBusConnection *connection, const char *path, const DBusObjectPathVTable *vtable, void *user_data, DBusError *error)
Registers a handler for a given path in the object hierarchy.
Definition dbus-connection.c:5794
dbus_connection_steal_borrowed_message
void dbus_connection_steal_borrowed_message(DBusConnection *connection, DBusMessage *message)
Used to keep a message after peeking at it using dbus_connection_borrow_message().
Definition dbus-connection.c:3946
dbus_connection_allocate_data_slot
dbus_bool_t dbus_connection_allocate_data_slot(dbus_int32_t *slot_p)
Allocates an integer ID to be used for storing application-specific data on any DBusConnection.
Definition dbus-connection.c:6042
dbus_connection_set_change_sigpipe
void dbus_connection_set_change_sigpipe(dbus_bool_t will_modify_sigpipe)
This function sets a global flag for whether dbus_connection_new() will set SIGPIPE behavior to SIG_I...
Definition dbus-connection.c:6165
dbus_connection_get_max_message_size
long dbus_connection_get_max_message_size(DBusConnection *connection)
Gets the value set by dbus_connection_set_max_message_size().
Definition dbus-connection.c:6200
dbus_connection_free_data_slot
void dbus_connection_free_data_slot(dbus_int32_t *slot_p)
Deallocates a global ID for connection data slots.
Definition dbus-connection.c:6060
DBusAddTimeoutFunction
dbus_bool_t(* DBusAddTimeoutFunction)(DBusTimeout *timeout, void *data)
Called when libdbus needs a new timeout to be monitored by the main loop.
Definition dbus-connection.h:111
dbus_connection_set_max_received_unix_fds
void dbus_connection_set_max_received_unix_fds(DBusConnection *connection, long n)
Sets the maximum total number of unix fds that can be used for all messages received on this connecti...
Definition dbus-connection.c:6319
DBusPendingCallNotifyFunction
void(* DBusPendingCallNotifyFunction)(DBusPendingCall *pending, void *user_data)
Called when a pending call now has a reply available.
Definition dbus-connection.h:163
dbus_connection_set_data
dbus_bool_t dbus_connection_set_data(DBusConnection *connection, dbus_int32_t slot, void *data, DBusFreeFunction free_data_func)
Stores a pointer on a DBusConnection, along with an optional function to be used for freeing the data...
Definition dbus-connection.c:6090
dbus_connection_get_dispatch_status
DBusDispatchStatus dbus_connection_get_dispatch_status(DBusConnection *connection)
Gets the current state of the incoming message queue.
Definition dbus-connection.c:4389
dbus_connection_send_with_reply_and_block
DBusMessage * dbus_connection_send_with_reply_and_block(DBusConnection *connection, DBusMessage *message, int timeout_milliseconds, DBusError *error)
Sends a message and blocks a certain time period while waiting for a reply.
Definition dbus-connection.c:3546
dbus_connection_try_register_fallback
dbus_bool_t dbus_connection_try_register_fallback(DBusConnection *connection, const char *path, const DBusObjectPathVTable *vtable, void *user_data, DBusError *error)
Registers a fallback handler for a given subsection of the object hierarchy.
Definition dbus-connection.c:5864
dbus_connection_get_adt_audit_session_data
dbus_bool_t dbus_connection_get_adt_audit_session_data(DBusConnection *connection, void **data, dbus_int32_t *data_size)
Gets the ADT audit data of the connection if any.
Definition dbus-connection.c:5304
dbus_connection_borrow_message
DBusMessage * dbus_connection_borrow_message(DBusConnection *connection)
Returns the first-received message from the incoming message queue, leaving it in the queue.
Definition dbus-connection.c:3861
dbus_connection_send_with_reply
dbus_bool_t dbus_connection_send_with_reply(DBusConnection *connection, DBusMessage *message, DBusPendingCall **pending_return, int timeout_milliseconds)
Queues a message to send, as with dbus_connection_send(), but also returns a DBusPendingCall used to ...
Definition dbus-connection.c:3410
dbus_connection_set_windows_user_function
void dbus_connection_set_windows_user_function(DBusConnection *connection, DBusAllowWindowsUserFunction function, void *data, DBusFreeFunction free_data_function)
Sets a predicate function used to determine whether a given user ID is allowed to connect.
Definition dbus-connection.c:5494
dbus_connection_get_is_anonymous
dbus_bool_t dbus_connection_get_is_anonymous(DBusConnection *connection)
Gets whether the connection is not authenticated as a specific user.
Definition dbus-connection.c:3040
dbus_connection_set_timeout_functions
dbus_bool_t dbus_connection_set_timeout_functions(DBusConnection *connection, DBusAddTimeoutFunction add_function, DBusRemoveTimeoutFunction remove_function, DBusTimeoutToggledFunction toggled_function, void *data, DBusFreeFunction free_data_function)
Sets the timeout functions for the connection.
Definition dbus-connection.c:5029
DBusRemoveWatchFunction
void(* DBusRemoveWatchFunction)(DBusWatch *watch, void *data)
Called when libdbus no longer needs a watch to be monitored by the main loop.
Definition dbus-connection.h:104
DBusAllowUnixUserFunction
dbus_bool_t(* DBusAllowUnixUserFunction)(DBusConnection *connection, unsigned long uid, void *data)
Called during authentication to check whether the given UNIX user ID is allowed to connect,...
Definition dbus-connection.h:144
DBusDispatchStatus
DBusDispatchStatus
Indicates the status of incoming data on a DBusConnection.
Definition dbus-connection.h:81
dbus_connection_has_messages_to_send
DBUS_EXPORT dbus_bool_t dbus_connection_has_messages_to_send(DBusConnection *connection)
Checks whether there are messages in the outgoing message queue.
Definition dbus-connection.c:590
dbus_connection_register_fallback
dbus_bool_t dbus_connection_register_fallback(DBusConnection *connection, const char *path, const DBusObjectPathVTable *vtable, void *user_data)
Registers a fallback handler for a given subsection of the object hierarchy.
Definition dbus-connection.c:5896
dbus_connection_open
DBusConnection * dbus_connection_open(const char *address, DBusError *error)
Gets a connection to a remote address.
Definition dbus-connection.c:2631
dbus_connection_free_preallocated_send
void dbus_connection_free_preallocated_send(DBusConnection *connection, DBusPreallocatedSend *preallocated)
Frees preallocated message-sending resources from dbus_connection_preallocate_send().
Definition dbus-connection.c:3202
dbus_connection_get_outgoing_unix_fds
long dbus_connection_get_outgoing_unix_fds(DBusConnection *connection)
Gets the approximate number of uni fds of all messages in the outgoing message queue.
Definition dbus-connection.c:6421
DBusWakeupMainFunction
void(* DBusWakeupMainFunction)(void *data)
Called when the main loop's thread should be notified that there's now work to do.
Definition dbus-connection.h:136
dbus_connection_set_allow_anonymous
void dbus_connection_set_allow_anonymous(DBusConnection *connection, dbus_bool_t value)
This function must be called on the server side of a connection when the connection is first seen in ...
Definition dbus-connection.c:5541
dbus_connection_add_filter
dbus_bool_t dbus_connection_add_filter(DBusConnection *connection, DBusHandleMessageFunction function, void *user_data, DBusFreeFunction free_data_function)
Adds a message filter.
Definition dbus-connection.c:5633
dbus_connection_send
dbus_bool_t dbus_connection_send(DBusConnection *connection, DBusMessage *message, dbus_uint32_t *serial)
Adds a message to the outgoing message queue.
Definition dbus-connection.c:3313
dbus_connection_ref
DBusConnection * dbus_connection_ref(DBusConnection *connection)
Increments the reference count of a DBusConnection.
Definition dbus-connection.c:2696
dbus_connection_get_server_id
char * dbus_connection_get_server_id(DBusConnection *connection)
Gets the ID of the server address we are authenticated to, if this connection is on the client side.
Definition dbus-connection.c:3085
DBusAllowWindowsUserFunction
dbus_bool_t(* DBusAllowWindowsUserFunction)(DBusConnection *connection, const char *user_sid, void *data)
Called during authentication to check whether the given Windows user ID is allowed to connect,...
Definition dbus-connection.h:154
dbus_connection_set_watch_functions
dbus_bool_t dbus_connection_set_watch_functions(DBusConnection *connection, DBusAddWatchFunction add_function, DBusRemoveWatchFunction remove_function, DBusWatchToggledFunction toggled_function, void *data, DBusFreeFunction free_data_function)
Sets the watch functions for the connection.
Definition dbus-connection.c:4966
DBusRemoveTimeoutFunction
void(* DBusRemoveTimeoutFunction)(DBusTimeout *timeout, void *data)
Called when libdbus no longer needs a timeout to be monitored by the main loop.
Definition dbus-connection.h:124
dbus_connection_get_unix_process_id
dbus_bool_t dbus_connection_get_unix_process_id(DBusConnection *connection, unsigned long *pid)
Gets the process ID of the connection if any.
Definition dbus-connection.c:5271
dbus_connection_get_unix_user
dbus_bool_t dbus_connection_get_unix_user(DBusConnection *connection, unsigned long *uid)
Gets the UNIX user ID of the connection if known.
Definition dbus-connection.c:5235
dbus_connection_set_route_peer_messages
void dbus_connection_set_route_peer_messages(DBusConnection *connection, dbus_bool_t value)
Normally DBusConnection automatically handles all messages to the org.freedesktop....
Definition dbus-connection.c:5601
DBUS_WATCH_READABLE
@ DBUS_WATCH_READABLE
As in POLLIN.
Definition dbus-connection.h:61
DBUS_WATCH_WRITABLE
@ DBUS_WATCH_WRITABLE
As in POLLOUT.
Definition dbus-connection.h:62
DBUS_WATCH_HANGUP
@ DBUS_WATCH_HANGUP
As in POLLHUP (can't watch for it, but can be present in current state passed to dbus_watch_handle())...
Definition dbus-connection.h:68
DBUS_WATCH_ERROR
@ DBUS_WATCH_ERROR
As in POLLERR (can't watch for this, but can be present in current state passed to dbus_watch_handle(...
Definition dbus-connection.h:63
DBUS_DISPATCH_NEED_MEMORY
@ DBUS_DISPATCH_NEED_MEMORY
More memory is needed to continue.
Definition dbus-connection.h:84
DBUS_DISPATCH_COMPLETE
@ DBUS_DISPATCH_COMPLETE
All currently available data has been processed.
Definition dbus-connection.h:83
DBUS_DISPATCH_DATA_REMAINS
@ DBUS_DISPATCH_DATA_REMAINS
There is more data to potentially convert to messages.
Definition dbus-connection.h:82
DBUS_DEPRECATED
#define DBUS_DEPRECATED
Tells the compiler to warn about a function or type if it's used.
Definition dbus-macros.h:58
DBUS_BEGIN_DECLS
#define DBUS_BEGIN_DECLS
Macro used prior to declaring functions in the D-Bus header files.
Definition dbus-macros.h:34
DBUS_END_DECLS
#define DBUS_END_DECLS
Macro used after declaring functions in the D-Bus header files.
Definition dbus-macros.h:35
DBusFreeFunction
void(* DBusFreeFunction)(void *memory)
The type of a function which frees a block of memory.
Definition dbus-memory.h:63
DBusHandlerResult
DBusHandlerResult
Results that a message handler can return.
Definition dbus-shared.h:67
dbus_timeout_handle
DBUS_EXPORT dbus_bool_t dbus_timeout_handle(DBusTimeout *timeout)
Calls the timeout handler for this timeout.
Definition dbus-timeout.c:498
dbus_timeout_get_enabled
DBUS_EXPORT dbus_bool_t dbus_timeout_get_enabled(DBusTimeout *timeout)
Returns whether a timeout is enabled or not.
Definition dbus-timeout.c:512
dbus_timeout_get_interval
DBUS_EXPORT int dbus_timeout_get_interval(DBusTimeout *timeout)
Gets the timeout interval.
Definition dbus-timeout.c:442
dbus_timeout_get_data
DBUS_EXPORT void * dbus_timeout_get_data(DBusTimeout *timeout)
Gets data previously set with dbus_timeout_set_data() or NULL if none.
Definition dbus-timeout.c:455
dbus_timeout_set_data
DBUS_EXPORT void dbus_timeout_set_data(DBusTimeout *timeout, void *data, DBusFreeFunction free_data_function)
Sets data which can be retrieved with dbus_timeout_get_data().
Definition dbus-timeout.c:472
dbus_watch_get_unix_fd
DBUS_EXPORT int dbus_watch_get_unix_fd(DBusWatch *watch)
Returns a UNIX file descriptor to be watched, which may be a pipe, socket, or other type of descripto...
Definition dbus-watch.c:564
dbus_watch_set_data
DBUS_EXPORT void dbus_watch_set_data(DBusWatch *watch, void *data, DBusFreeFunction free_data_function)
Sets data which can be retrieved with dbus_watch_get_data().
Definition dbus-watch.c:677
dbus_watch_get_fd
DBUS_EXPORT DBUS_DEPRECATED int dbus_watch_get_fd(DBusWatch *watch)
Deprecated former name of dbus_watch_get_unix_fd().
Definition dbus-watch.c:543
dbus_watch_get_data
DBUS_EXPORT void * dbus_watch_get_data(DBusWatch *watch)
Gets data previously set with dbus_watch_set_data() or NULL if none.
Definition dbus-watch.c:658
dbus_watch_get_socket
DBUS_EXPORT int dbus_watch_get_socket(DBusWatch *watch)
Returns a socket to be watched, on UNIX this will return -1 if our transport is not socket-based so d...
Definition dbus-watch.c:593
dbus_watch_handle
DBUS_EXPORT dbus_bool_t dbus_watch_handle(DBusWatch *watch, unsigned int flags)
Called to notify the D-Bus library when a previously-added watch is ready for reading or writing,...
Definition dbus-watch.c:733
dbus_watch_get_enabled
DBUS_EXPORT dbus_bool_t dbus_watch_get_enabled(DBusWatch *watch)
Returns whether a watch is enabled or not.
Definition dbus-watch.c:702
dbus_watch_get_flags
DBUS_EXPORT unsigned int dbus_watch_get_flags(DBusWatch *watch)
Gets flags from DBusWatchFlags indicating what conditions should be monitored on the file descriptor.
Definition dbus-watch.c:642
DBusConnection
Implementation details of DBusConnection.
Definition dbus-connection.c:257
DBusError
Object representing an exception.
Definition dbus-errors.h:49
DBusMessage
Internals of DBusMessage.
Definition dbus-message-private.h:100
DBusObjectPathVTable
Virtual table that must be implemented to handle a portion of the object path hierarchy.
Definition dbus-connection.h:386
DBusObjectPathVTable::dbus_internal_pad1
void(* dbus_internal_pad1)(void *)
Reserved for future expansion.
Definition dbus-connection.h:390
DBusObjectPathVTable::dbus_internal_pad2
void(* dbus_internal_pad2)(void *)
Reserved for future expansion.
Definition dbus-connection.h:391
DBusObjectPathVTable::dbus_internal_pad3
void(* dbus_internal_pad3)(void *)
Reserved for future expansion.
Definition dbus-connection.h:392
DBusObjectPathVTable::message_function
DBusObjectPathMessageFunction message_function
Function to handle messages.
Definition dbus-connection.h:388
DBusObjectPathVTable::unregister_function
DBusObjectPathUnregisterFunction unregister_function
Function to unregister this handler.
Definition dbus-connection.h:387
DBusObjectPathVTable::dbus_internal_pad4
void(* dbus_internal_pad4)(void *)
Reserved for future expansion.
Definition dbus-connection.h:393
DBusPendingCall
Implementation details of DBusPendingCall - all fields are private.
Definition dbus-pending-call.c:63
DBusPreallocatedSend
Internals of DBusPreallocatedSend.
Definition dbus-connection.c:241
DBusTimeout
Internals of DBusTimeout.
Definition dbus-timeout.c:41
DBusWatch
Implementation of DBusWatch.
Definition dbus-watch.c:41