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 29DBUS_BEGIN_DECLS 30 31/** 32 * @addtogroup DBusWatchInternals 33 * @{ 34 */ 35 36/* Public methods on DBusWatch are in dbus-connection.h */ 37 38typedef struct DBusWatchList DBusWatchList; 39 40#define _DBUS_WATCH_NVAL (1<<4) 41 42/** function to run when the watch is handled */ 43typedef dbus_bool_t (* DBusWatchHandler) (DBusWatch *watch, 44 unsigned int flags, 45 void *data); 46 47DBusWatch* _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); 53DBusWatch* _dbus_watch_ref (DBusWatch *watch); 54void _dbus_watch_unref (DBusWatch *watch); 55void _dbus_watch_invalidate (DBusWatch *watch); 56void _dbus_watch_sanitize_condition (DBusWatch *watch, 57 unsigned int *condition); 58void _dbus_watch_set_handler (DBusWatch *watch, 59 DBusWatchHandler handler, 60 void *data, 61 DBusFreeFunction free_data_function); 62 63 64DBusWatchList* _dbus_watch_list_new (void); 65void _dbus_watch_list_free (DBusWatchList *watch_list); 66dbus_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); 72dbus_bool_t _dbus_watch_list_add_watch (DBusWatchList *watch_list, 73 DBusWatch *watch); 74void _dbus_watch_list_remove_watch (DBusWatchList *watch_list, 75 DBusWatch *watch); 76void _dbus_watch_list_toggle_watch (DBusWatchList *watch_list, 77 DBusWatch *watch, 78 dbus_bool_t enabled); 79dbus_bool_t _dbus_watch_get_enabled (DBusWatch *watch); 80 81dbus_bool_t _dbus_watch_get_oom_last_time (DBusWatch *watch); 82void _dbus_watch_set_oom_last_time (DBusWatch *watch, 83 dbus_bool_t oom); 84 85/** @} */ 86 87DBUS_END_DECLS 88 89#endif /* DBUS_WATCH_H */ 90