D-Bus  1.12.16
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 
37 
43 /* documented in dbus-watch.c */
44 typedef struct DBusWatch DBusWatch;
45 /* documented in dbus-timeout.c */
46 typedef struct DBusTimeout DBusTimeout;
55 
59 typedef enum
60 {
63  DBUS_WATCH_ERROR = 1 << 2,
73  /* Internal to libdbus, there is also _DBUS_WATCH_NVAL in dbus-watch.h */
75 
80 typedef enum
81 {
86 
93  void *data);
98 typedef void (* DBusWatchToggledFunction) (DBusWatch *watch,
99  void *data);
104 typedef void (* DBusRemoveWatchFunction) (DBusWatch *watch,
105  void *data);
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 
145  unsigned long uid,
146  void *data);
147 
155  const char *user_sid,
156  void *data);
157 
158 
164  void *user_data);
165 
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
181 DBUS_EXPORT
182 void dbus_connection_unref (DBusConnection *connection);
183 DBUS_EXPORT
184 void dbus_connection_close (DBusConnection *connection);
185 DBUS_EXPORT
187 DBUS_EXPORT
189 DBUS_EXPORT
191 DBUS_EXPORT
193 DBUS_EXPORT
195  int type);
196 
197 DBUS_EXPORT
199  dbus_bool_t exit_on_disconnect);
200 DBUS_EXPORT
201 void dbus_connection_flush (DBusConnection *connection);
202 DBUS_EXPORT
204  int timeout_milliseconds);
205 DBUS_EXPORT
207  int timeout_milliseconds);
208 DBUS_EXPORT
210 DBUS_EXPORT
212  DBusMessage *message);
213 DBUS_EXPORT
215  DBusMessage *message);
216 DBUS_EXPORT
218 DBUS_EXPORT
220 DBUS_EXPORT
222 DBUS_EXPORT
224 DBUS_EXPORT
226  DBusMessage *message,
227  dbus_uint32_t *client_serial);
228 DBUS_EXPORT
230  DBusMessage *message,
231  DBusPendingCall **pending_return,
232  int timeout_milliseconds);
233 DBUS_EXPORT
235  DBusMessage *message,
236  int timeout_milliseconds,
237  DBusError *error);
238 DBUS_EXPORT
240  DBusAddWatchFunction add_function,
241  DBusRemoveWatchFunction remove_function,
242  DBusWatchToggledFunction toggled_function,
243  void *data,
244  DBusFreeFunction free_data_function);
245 DBUS_EXPORT
247  DBusAddTimeoutFunction add_function,
248  DBusRemoveTimeoutFunction remove_function,
249  DBusTimeoutToggledFunction toggled_function,
250  void *data,
251  DBusFreeFunction free_data_function);
252 DBUS_EXPORT
254  DBusWakeupMainFunction wakeup_main_function,
255  void *data,
256  DBusFreeFunction free_data_function);
257 DBUS_EXPORT
260  void *data,
261  DBusFreeFunction free_data_function);
262 DBUS_EXPORT
264  unsigned long *uid);
265 DBUS_EXPORT
267  unsigned long *pid);
268 DBUS_EXPORT
270  void **data,
271  dbus_int32_t *data_size);
272 DBUS_EXPORT
274  DBusAllowUnixUserFunction function,
275  void *data,
276  DBusFreeFunction free_data_function);
277 DBUS_EXPORT
279  char **windows_sid_p);
280 DBUS_EXPORT
283  void *data,
284  DBusFreeFunction free_data_function);
285 DBUS_EXPORT
287  dbus_bool_t value);
288 DBUS_EXPORT
290  dbus_bool_t value);
291 
292 
293 /* Filters */
294 
295 DBUS_EXPORT
297  DBusHandleMessageFunction function,
298  void *user_data,
299  DBusFreeFunction free_data_function);
300 DBUS_EXPORT
302  DBusHandleMessageFunction function,
303  void *user_data);
304 
305 
306 /* Other */
307 DBUS_EXPORT
309 DBUS_EXPORT
311 DBUS_EXPORT
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
325  long size);
326 DBUS_EXPORT
328 DBUS_EXPORT
330  long size);
331 DBUS_EXPORT
333 
334 DBUS_EXPORT
336  long n);
337 DBUS_EXPORT
339 DBUS_EXPORT
341  long n);
342 DBUS_EXPORT
344 
345 DBUS_EXPORT
347 DBUS_EXPORT
349 
350 DBUS_EXPORT
352 DBUS_EXPORT
354  DBusPreallocatedSend *preallocated);
355 DBUS_EXPORT
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);
376  DBusMessage *message,
377  void *user_data);
378 
386 {
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
398  const char *path,
399  const DBusObjectPathVTable *vtable,
400  void *user_data,
401  DBusError *error);
402 
403 DBUS_EXPORT
405  const char *path,
406  const DBusObjectPathVTable *vtable,
407  void *user_data);
408 
409 DBUS_EXPORT
411  const char *path,
412  const DBusObjectPathVTable *vtable,
413  void *user_data,
414  DBusError *error);
415 
416 DBUS_EXPORT
418  const char *path,
419  const DBusObjectPathVTable *vtable,
420  void *user_data);
421 DBUS_EXPORT
423  const char *path);
424 
425 DBUS_EXPORT
427  const char *path,
428  void **data_p);
429 
430 DBUS_EXPORT
432  const char *parent_path,
433  char ***child_entries);
434 
435 DBUS_EXPORT
437  int *fd);
438 DBUS_EXPORT
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,
469 }
470 
479 #ifndef DBUS_DISABLE_DEPRECATED
480 DBUS_EXPORT
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
498  unsigned int flags);
499 DBUS_EXPORT
501 
509 DBUS_EXPORT
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
519 DBUS_EXPORT
521 
525 
526 #endif /* DBUS_CONNECTION_H */