D-Bus
1.6.12
Main Page
Related Pages
Modules
Data Structures
Files
File List
dbus
dbus-list.h
1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2
/* dbus-list.h Generic linked list utility (internal to D-Bus implementation)
3
*
4
* Copyright (C) 2002, 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
24
#ifndef DBUS_LIST_H
25
#define DBUS_LIST_H
26
27
#include <dbus/dbus-internals.h>
28
#include <dbus/dbus-memory.h>
29
#include <dbus/dbus-types.h>
30
#include <dbus/dbus-sysdeps.h>
31
32
DBUS_BEGIN_DECLS
33
34
struct
DBusList
35
{
36
DBusList
*
prev
;
37
DBusList
*
next
;
38
void
*
data
;
39
};
40
dbus_bool_t
_dbus_list_append
(
DBusList
**list,
41
void
*data);
42
dbus_bool_t
_dbus_list_prepend
(
DBusList
**list,
43
void
*data);
44
dbus_bool_t
_dbus_list_insert_before (
DBusList
**list,
45
DBusList
*before_this_link,
46
void
*data);
47
dbus_bool_t
_dbus_list_insert_after
(
DBusList
**list,
48
DBusList
*after_this_link,
49
void
*data);
50
void
_dbus_list_insert_before_link
(
DBusList
**list,
51
DBusList
*before_this_link,
52
DBusList
*link);
53
void
_dbus_list_insert_after_link
(
DBusList
**list,
54
DBusList
*after_this_link,
55
DBusList
*link);
56
dbus_bool_t
_dbus_list_remove
(
DBusList
**list,
57
void
*data);
58
dbus_bool_t
_dbus_list_remove_last
(
DBusList
**list,
59
void
*data);
60
void
_dbus_list_remove_link
(
DBusList
**list,
61
DBusList
*link);
62
DBusList
*
_dbus_list_find_last
(
DBusList
**list,
63
void
*data);
64
void
_dbus_list_clear
(
DBusList
**list);
65
DBusList
*
_dbus_list_get_first_link
(
DBusList
**list);
66
DBusList
*
_dbus_list_get_last_link
(
DBusList
**list);
67
void
*
_dbus_list_get_last
(
DBusList
**list);
68
void
*
_dbus_list_get_first
(
DBusList
**list);
69
void
*
_dbus_list_pop_first
(
DBusList
**list);
70
void
*
_dbus_list_pop_last
(
DBusList
**list);
71
DBusList
*
_dbus_list_pop_first_link
(
DBusList
**list);
72
dbus_bool_t
_dbus_list_copy
(
DBusList
**list,
73
DBusList
**dest);
74
int
_dbus_list_get_length
(
DBusList
**list);
75
DBusList
*
_dbus_list_alloc_link
(
void
*data);
76
void
_dbus_list_free_link
(
DBusList
*link);
77
void
_dbus_list_unlink
(
DBusList
**list,
78
DBusList
*link);
79
void
_dbus_list_append_link
(
DBusList
**list,
80
DBusList
*link);
81
void
_dbus_list_prepend_link
(
DBusList
**list,
82
DBusList
*link);
83
dbus_bool_t
_dbus_list_length_is_one
(
DBusList
**list);
84
85
86
void
_dbus_list_foreach
(
DBusList
**list,
87
DBusForeachFunction
function
,
88
void
*data);
89
90
#define _dbus_list_get_next_link(list, link) ((link)->next == *(list) ? NULL : (link)->next)
91
#define _dbus_list_get_prev_link(list, link) ((link) == *(list) ? NULL : (link)->prev)
92
93
/* if DBUS_ENABLE_STATS */
94
void
_dbus_list_get_stats (dbus_uint32_t *in_use_p,
95
dbus_uint32_t *in_free_list_p,
96
dbus_uint32_t *allocated_p);
97
98
DBUS_END_DECLS
99
100
#endif
/* DBUS_LIST_H */
Generated on Wed Jun 12 2013 13:46:30 for D-Bus by
1.8.1.2