1 /* -*- mode: C; c-file-style: "gnu" -*- */ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 DBusServer* dbus_server_listen (const char *address, 52 DBusError *error); 53 DBusServer* dbus_server_ref (DBusServer *server); 54 void dbus_server_unref (DBusServer *server); 55 void dbus_server_disconnect (DBusServer *server); 56 dbus_bool_t dbus_server_get_is_connected (DBusServer *server); 57 char* dbus_server_get_address (DBusServer *server); 58 void dbus_server_set_new_connection_function (DBusServer *server, 59 DBusNewConnectionFunction function, 60 void *data, 61 DBusFreeFunction free_data_function); 62 dbus_bool_t dbus_server_set_watch_functions (DBusServer *server, 63 DBusAddWatchFunction add_function, 64 DBusRemoveWatchFunction remove_function, 65 DBusWatchToggledFunction toggled_function, 66 void *data, 67 DBusFreeFunction free_data_function); 68 dbus_bool_t dbus_server_set_timeout_functions (DBusServer *server, 69 DBusAddTimeoutFunction add_function, 70 DBusRemoveTimeoutFunction remove_function, 71 DBusTimeoutToggledFunction toggled_function, 72 void *data, 73 DBusFreeFunction free_data_function); 74 dbus_bool_t dbus_server_set_auth_mechanisms (DBusServer *server, 75 const char **mechanisms); 76 77 dbus_bool_t dbus_server_allocate_data_slot (dbus_int32_t *slot_p); 78 void dbus_server_free_data_slot (dbus_int32_t *slot_p); 79 dbus_bool_t dbus_server_set_data (DBusServer *server, 80 int slot, 81 void *data, 82 DBusFreeFunction free_data_func); 83 void* dbus_server_get_data (DBusServer *server, 84 int slot); 85 86 /** @} */ 87 88 DBUS_END_DECLS 89 90 #endif /* DBUS_SERVER_H */ 91