1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 /* dbus-timeout.h DBusTimeout internal interfaces 3 * 4 * Copyright (C) 2003 CodeFactory AB 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_TIMEOUT_H 24 #define DBUS_TIMEOUT_H 25 26 #include <dbus/dbus-connection.h> 27 #include <dbus/dbus-internals.h> 28 29 DBUS_BEGIN_DECLS 30 31 /** 32 * @addtogroup DBusTimeoutInternals 33 * @{ 34 */ 35 36 /* Public methods on DBusTimeout are in dbus-connection.h */ 37 38 typedef struct DBusTimeoutList DBusTimeoutList; 39 40 /** function to run when the timeout is handled */ 41 typedef dbus_bool_t (* DBusTimeoutHandler) (void *data); 42 43 DBUS_PRIVATE_EXPORT 44 DBusTimeout* _dbus_timeout_new (int interval, 45 DBusTimeoutHandler handler, 46 void *data, 47 DBusFreeFunction free_data_function); 48 DBusTimeout* _dbus_timeout_ref (DBusTimeout *timeout); 49 DBUS_PRIVATE_EXPORT 50 void _dbus_timeout_unref (DBusTimeout *timeout); 51 DBUS_PRIVATE_EXPORT 52 void _dbus_timeout_restart (DBusTimeout *timeout, 53 int interval); 54 DBUS_PRIVATE_EXPORT 55 void _dbus_timeout_disable (DBusTimeout *timeout); 56 57 DBusTimeoutList *_dbus_timeout_list_new (void); 58 void _dbus_timeout_list_free (DBusTimeoutList *timeout_list); 59 dbus_bool_t _dbus_timeout_list_set_functions (DBusTimeoutList *timeout_list, 60 DBusAddTimeoutFunction add_function, 61 DBusRemoveTimeoutFunction remove_function, 62 DBusTimeoutToggledFunction toggled_function, 63 void *data, 64 DBusFreeFunction free_data_function); 65 dbus_bool_t _dbus_timeout_list_add_timeout (DBusTimeoutList *timeout_list, 66 DBusTimeout *timeout); 67 void _dbus_timeout_list_remove_timeout (DBusTimeoutList *timeout_list, 68 DBusTimeout *timeout); 69 void _dbus_timeout_list_toggle_timeout (DBusTimeoutList *timeout_list, 70 DBusTimeout *timeout, 71 dbus_bool_t enabled); 72 73 DBUS_PRIVATE_EXPORT 74 dbus_bool_t _dbus_timeout_needs_restart (DBusTimeout *timeout); 75 DBUS_PRIVATE_EXPORT 76 void _dbus_timeout_restarted (DBusTimeout *timeout); 77 78 /** @} */ 79 80 DBUS_END_DECLS 81 82 #endif /* DBUS_TIMEOUT_H */ 83