1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 #define _DBUS_WATCH_NVAL (1<<4) 41 42 /** function to run when the watch is handled */ 43 typedef dbus_bool_t (* DBusWatchHandler) (DBusWatch *watch, 44 unsigned int flags, 45 void *data); 46 47 DBusWatch* _dbus_watch_new (int fd, 48 unsigned int flags, 49 dbus_bool_t enabled, 50 DBusWatchHandler handler, 51 void *data, 52 DBusFreeFunction free_data_function); 53 DBusWatch* _dbus_watch_ref (DBusWatch *watch); 54 void _dbus_watch_unref (DBusWatch *watch); 55 void _dbus_watch_invalidate (DBusWatch *watch); 56 void _dbus_watch_sanitize_condition (DBusWatch *watch, 57 unsigned int *condition); 58 void _dbus_watch_set_handler (DBusWatch *watch, 59 DBusWatchHandler handler, 60 void *data, 61 DBusFreeFunction free_data_function); 62 63 64 DBusWatchList* _dbus_watch_list_new (void); 65 void _dbus_watch_list_free (DBusWatchList *watch_list); 66 dbus_bool_t _dbus_watch_list_set_functions (DBusWatchList *watch_list, 67 DBusAddWatchFunction add_function, 68 DBusRemoveWatchFunction remove_function, 69 DBusWatchToggledFunction toggled_function, 70 void *data, 71 DBusFreeFunction free_data_function); 72 dbus_bool_t _dbus_watch_list_add_watch (DBusWatchList *watch_list, 73 DBusWatch *watch); 74 void _dbus_watch_list_remove_watch (DBusWatchList *watch_list, 75 DBusWatch *watch); 76 void _dbus_watch_list_toggle_watch (DBusWatchList *watch_list, 77 DBusWatch *watch, 78 dbus_bool_t enabled); 79 dbus_bool_t _dbus_watch_get_enabled (DBusWatch *watch); 80 81 dbus_bool_t _dbus_watch_get_oom_last_time (DBusWatch *watch); 82 void _dbus_watch_set_oom_last_time (DBusWatch *watch, 83 dbus_bool_t oom); 84 85 /** @} */ 86 87 DBUS_END_DECLS 88 89 #endif /* DBUS_WATCH_H */ 90