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