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 DBUS_PRIVATE_EXPORT 48 DBusWatch* _dbus_watch_new (DBusPollable fd, 49 unsigned int flags, 50 dbus_bool_t enabled, 51 DBusWatchHandler handler, 52 void *data, 53 DBusFreeFunction free_data_function); 54 DBUS_PRIVATE_EXPORT 55 DBusWatch* _dbus_watch_ref (DBusWatch *watch); 56 DBUS_PRIVATE_EXPORT 57 void _dbus_watch_unref (DBusWatch *watch); 58 DBUS_PRIVATE_EXPORT 59 void _dbus_watch_invalidate (DBusWatch *watch); 60 void _dbus_watch_sanitize_condition (DBusWatch *watch, 61 unsigned int *condition); 62 void _dbus_watch_set_handler (DBusWatch *watch, 63 DBusWatchHandler handler, 64 void *data, 65 DBusFreeFunction free_data_function); 66 67 68 DBUS_PRIVATE_EXPORT 69 DBusWatchList* _dbus_watch_list_new (void); 70 DBUS_PRIVATE_EXPORT 71 void _dbus_watch_list_free (DBusWatchList *watch_list); 72 DBUS_PRIVATE_EXPORT 73 dbus_bool_t _dbus_watch_list_set_functions (DBusWatchList *watch_list, 74 DBusAddWatchFunction add_function, 75 DBusRemoveWatchFunction remove_function, 76 DBusWatchToggledFunction toggled_function, 77 void *data, 78 DBusFreeFunction free_data_function); 79 DBUS_PRIVATE_EXPORT 80 dbus_bool_t _dbus_watch_list_add_watch (DBusWatchList *watch_list, 81 DBusWatch *watch); 82 DBUS_PRIVATE_EXPORT 83 void _dbus_watch_list_remove_watch (DBusWatchList *watch_list, 84 DBusWatch *watch); 85 void _dbus_watch_list_toggle_watch (DBusWatchList *watch_list, 86 DBusWatch *watch, 87 dbus_bool_t enabled); 88 void _dbus_watch_list_toggle_all_watches (DBusWatchList *watch_list, 89 dbus_bool_t enabled); 90 dbus_bool_t _dbus_watch_get_enabled (DBusWatch *watch); 91 92 DBUS_PRIVATE_EXPORT 93 dbus_bool_t _dbus_watch_get_oom_last_time (DBusWatch *watch); 94 DBUS_PRIVATE_EXPORT 95 void _dbus_watch_set_oom_last_time (DBusWatch *watch, 96 dbus_bool_t oom); 97 98 DBusSocket _dbus_watch_get_socket (DBusWatch *watch); 99 DBUS_PRIVATE_EXPORT 100 DBusPollable _dbus_watch_get_pollable (DBusWatch *watch); 101 102 /** @} */ 103 104 DBUS_END_DECLS 105 106 #endif /* DBUS_WATCH_H */ 107