dbus-server.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
  2. /* dbus-server.h DBusServer 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. #ifndef DBUS_SERVER_H
  27. #define DBUS_SERVER_H
  28. #include <dbus/dbus-errors.h>
  29. #include <dbus/dbus-message.h>
  30. #include <dbus/dbus-connection.h>
  31. #include <dbus/dbus-protocol.h>
  32. DBUS_BEGIN_DECLS
  33. /**
  34. * @addtogroup DBusServer
  35. * @{
  36. */
  37. typedef struct DBusServer DBusServer;
  38. /** Called when a new connection to the server is available. Must reference and save the new
  39. * connection, or close the new connection. Set with dbus_server_set_new_connection_function().
  40. */
  41. typedef void (* DBusNewConnectionFunction) (DBusServer *server,
  42. DBusConnection *new_connection,
  43. void *data);
  44. DBUS_EXPORT
  45. DBusServer* dbus_server_listen (const char *address,
  46. DBusError *error);
  47. DBUS_EXPORT
  48. DBusServer* dbus_server_ref (DBusServer *server);
  49. DBUS_EXPORT
  50. void dbus_server_unref (DBusServer *server);
  51. DBUS_EXPORT
  52. void dbus_server_disconnect (DBusServer *server);
  53. DBUS_EXPORT
  54. dbus_bool_t dbus_server_get_is_connected (DBusServer *server);
  55. DBUS_EXPORT
  56. char* dbus_server_get_address (DBusServer *server);
  57. DBUS_EXPORT
  58. char* dbus_server_get_id (DBusServer *server);
  59. DBUS_EXPORT
  60. void dbus_server_set_new_connection_function (DBusServer *server,
  61. DBusNewConnectionFunction function,
  62. void *data,
  63. DBusFreeFunction free_data_function);
  64. DBUS_EXPORT
  65. dbus_bool_t dbus_server_set_watch_functions (DBusServer *server,
  66. DBusAddWatchFunction add_function,
  67. DBusRemoveWatchFunction remove_function,
  68. DBusWatchToggledFunction toggled_function,
  69. void *data,
  70. DBusFreeFunction free_data_function);
  71. DBUS_EXPORT
  72. dbus_bool_t dbus_server_set_timeout_functions (DBusServer *server,
  73. DBusAddTimeoutFunction add_function,
  74. DBusRemoveTimeoutFunction remove_function,
  75. DBusTimeoutToggledFunction toggled_function,
  76. void *data,
  77. DBusFreeFunction free_data_function);
  78. DBUS_EXPORT
  79. dbus_bool_t dbus_server_set_auth_mechanisms (DBusServer *server,
  80. const char **mechanisms);
  81. DBUS_EXPORT
  82. dbus_bool_t dbus_server_allocate_data_slot (dbus_int32_t *slot_p);
  83. DBUS_EXPORT
  84. void dbus_server_free_data_slot (dbus_int32_t *slot_p);
  85. DBUS_EXPORT
  86. dbus_bool_t dbus_server_set_data (DBusServer *server,
  87. int slot,
  88. void *data,
  89. DBusFreeFunction free_data_func);
  90. DBUS_EXPORT
  91. void* dbus_server_get_data (DBusServer *server,
  92. int slot);
  93. /** @} */
  94. DBUS_END_DECLS
  95. #endif /* DBUS_SERVER_H */