1 /* -*- mode: C; c-file-style: "gnu" -*- */ 2 /* dbus-watch.h DBusWatch internal interfaces 3 * 4 * Copyright (C) 2002 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 #ifndef DBUS_WATCH_H 24 #define DBUS_WATCH_H 25 26 #include <dbus/dbus-internals.h> 27 #include <dbus/dbus-connection.h> 28 29 DBUS_BEGIN_DECLS 30 31 /** 32 * @addtogroup DBusWatchInternals 33 * @{ 34 */ 35 36 /* Public methods on DBusWatch are in dbus-connection.h */ 37 38 typedef struct DBusWatchList DBusWatchList; 39 40 /** function to run when the watch is handled */ 41 typedef dbus_bool_t (* DBusWatchHandler) (DBusWatch *watch, 42 unsigned int flags, 43 void *data); 44 45 DBusWatch* _dbus_watch_new (int fd, 46 unsigned int flags, 47 dbus_bool_t enabled, 48 DBusWatchHandler handler, 49 void *data, 50 DBusFreeFunction free_data_function); 51 DBusWatch* _dbus_watch_ref (DBusWatch *watch); 52 void _dbus_watch_unref (DBusWatch *watch); 53 void _dbus_watch_invalidate (DBusWatch *watch); 54 void _dbus_watch_sanitize_condition (DBusWatch *watch, 55 unsigned int *condition); 56 void _dbus_watch_set_handler (DBusWatch *watch, 57 DBusWatchHandler handler, 58 void *data, 59 DBusFreeFunction free_data_function); 60 61 62 DBusWatchList* _dbus_watch_list_new (void); 63 void _dbus_watch_list_free (DBusWatchList *watch_list); 64 dbus_bool_t _dbus_watch_list_set_functions (DBusWatchList *watch_list, 65 DBusAddWatchFunction add_function, 66 DBusRemoveWatchFunction remove_function, 67 DBusWatchToggledFunction toggled_function, 68 void *data, 69 DBusFreeFunction free_data_function); 70 dbus_bool_t _dbus_watch_list_add_watch (DBusWatchList *watch_list, 71 DBusWatch *watch); 72 void _dbus_watch_list_remove_watch (DBusWatchList *watch_list, 73 DBusWatch *watch); 74 void _dbus_watch_list_toggle_watch (DBusWatchList *watch_list, 75 DBusWatch *watch, 76 dbus_bool_t enabled); 77 78 /** @} */ 79 80 DBUS_END_DECLS 81 82 #endif /* DBUS_WATCH_H */ 83