Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/xml2/include/libxml/list.h
4394 views
1
/*
2
* Summary: lists interfaces
3
* Description: this module implement the list support used in
4
* various place in the library.
5
*
6
* Copy: See Copyright for the status of this software.
7
*
8
* Author: Gary Pennington <[email protected]>
9
*/
10
11
#ifndef __XML_LINK_INCLUDE__
12
#define __XML_LINK_INCLUDE__
13
14
#include <libxml/xmlversion.h>
15
16
#ifdef __cplusplus
17
extern "C" {
18
#endif
19
20
typedef struct _xmlLink xmlLink;
21
typedef xmlLink *xmlLinkPtr;
22
23
typedef struct _xmlList xmlList;
24
typedef xmlList *xmlListPtr;
25
26
/**
27
* xmlListDeallocator:
28
* @lk: the data to deallocate
29
*
30
* Callback function used to free data from a list.
31
*/
32
typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
33
/**
34
* xmlListDataCompare:
35
* @data0: the first data
36
* @data1: the second data
37
*
38
* Callback function used to compare 2 data.
39
*
40
* Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
41
*/
42
typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
43
/**
44
* xmlListWalker:
45
* @data: the data found in the list
46
* @user: extra user provided data to the walker
47
*
48
* Callback function used when walking a list with xmlListWalk().
49
*
50
* Returns 0 to stop walking the list, 1 otherwise.
51
*/
52
typedef int (*xmlListWalker) (const void *data, void *user);
53
54
/* Creation/Deletion */
55
XMLPUBFUN xmlListPtr
56
xmlListCreate (xmlListDeallocator deallocator,
57
xmlListDataCompare compare);
58
XMLPUBFUN void
59
xmlListDelete (xmlListPtr l);
60
61
/* Basic Operators */
62
XMLPUBFUN void *
63
xmlListSearch (xmlListPtr l,
64
void *data);
65
XMLPUBFUN void *
66
xmlListReverseSearch (xmlListPtr l,
67
void *data);
68
XMLPUBFUN int
69
xmlListInsert (xmlListPtr l,
70
void *data) ;
71
XMLPUBFUN int
72
xmlListAppend (xmlListPtr l,
73
void *data) ;
74
XMLPUBFUN int
75
xmlListRemoveFirst (xmlListPtr l,
76
void *data);
77
XMLPUBFUN int
78
xmlListRemoveLast (xmlListPtr l,
79
void *data);
80
XMLPUBFUN int
81
xmlListRemoveAll (xmlListPtr l,
82
void *data);
83
XMLPUBFUN void
84
xmlListClear (xmlListPtr l);
85
XMLPUBFUN int
86
xmlListEmpty (xmlListPtr l);
87
XMLPUBFUN xmlLinkPtr
88
xmlListFront (xmlListPtr l);
89
XMLPUBFUN xmlLinkPtr
90
xmlListEnd (xmlListPtr l);
91
XMLPUBFUN int
92
xmlListSize (xmlListPtr l);
93
94
XMLPUBFUN void
95
xmlListPopFront (xmlListPtr l);
96
XMLPUBFUN void
97
xmlListPopBack (xmlListPtr l);
98
XMLPUBFUN int
99
xmlListPushFront (xmlListPtr l,
100
void *data);
101
XMLPUBFUN int
102
xmlListPushBack (xmlListPtr l,
103
void *data);
104
105
/* Advanced Operators */
106
XMLPUBFUN void
107
xmlListReverse (xmlListPtr l);
108
XMLPUBFUN void
109
xmlListSort (xmlListPtr l);
110
XMLPUBFUN void
111
xmlListWalk (xmlListPtr l,
112
xmlListWalker walker,
113
void *user);
114
XMLPUBFUN void
115
xmlListReverseWalk (xmlListPtr l,
116
xmlListWalker walker,
117
void *user);
118
XMLPUBFUN void
119
xmlListMerge (xmlListPtr l1,
120
xmlListPtr l2);
121
XMLPUBFUN xmlListPtr
122
xmlListDup (const xmlListPtr old);
123
XMLPUBFUN int
124
xmlListCopy (xmlListPtr cur,
125
const xmlListPtr old);
126
/* Link operators */
127
XMLPUBFUN void *
128
xmlLinkGetData (xmlLinkPtr lk);
129
130
/* xmlListUnique() */
131
/* xmlListSwap */
132
133
#ifdef __cplusplus
134
}
135
#endif
136
137
#endif /* __XML_LINK_INCLUDE__ */
138
139