1/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2/* dbus-resources.h Resource tracking/limits
3 *
4 * Copyright (C) 2003  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_RESOURCES_H
24#define DBUS_RESOURCES_H
25
26#include <dbus/dbus-macros.h>
27#include <dbus/dbus-errors.h>
28#include <dbus/dbus-connection.h>
29
30DBUS_BEGIN_DECLS
31
32typedef struct DBusCounter DBusCounter;
33
34typedef void (* DBusCounterNotifyFunction) (DBusCounter *counter,
35                                            void        *user_data);
36
37DBusCounter* _dbus_counter_new       (void);
38DBusCounter* _dbus_counter_ref       (DBusCounter *counter);
39void         _dbus_counter_unref     (DBusCounter *counter);
40
41void         _dbus_counter_adjust_size       (DBusCounter *counter,
42                                              long         delta);
43void         _dbus_counter_adjust_unix_fd    (DBusCounter *counter,
44                                              long         delta);
45void         _dbus_counter_notify            (DBusCounter *counter);
46long         _dbus_counter_get_size_value    (DBusCounter *counter);
47long         _dbus_counter_get_unix_fd_value (DBusCounter *counter);
48
49void _dbus_counter_set_notify    (DBusCounter               *counter,
50                                  long                       size_guard_value,
51                                  long                       unix_fd_guard_value,
52                                  DBusCounterNotifyFunction  function,
53                                  void                      *user_data);
54
55/* if DBUS_ENABLE_STATS */
56long _dbus_counter_get_peak_size_value    (DBusCounter *counter);
57long _dbus_counter_get_peak_unix_fd_value (DBusCounter *counter);
58
59DBUS_END_DECLS
60
61#endif /* DBUS_RESOURCES_H */
62