File: list.h

package info (click to toggle)
vtk 5.8.0-13
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 130,524 kB
  • sloc: cpp: 1,129,256; ansic: 708,203; tcl: 48,526; python: 20,875; xml: 6,779; yacc: 4,208; perl: 3,121; java: 2,788; lex: 931; sh: 660; asm: 471; makefile: 299
file content (137 lines) | stat: -rw-r--r-- 4,726 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
 * Summary: lists interfaces
 * Description: this module implement the list support used in 
 * various place in the library.
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Gary Pennington <Gary.Pennington@uk.sun.com>
 */

#ifndef __XML_LINK_INCLUDE__
#define __XML_LINK_INCLUDE__

#include "xmlversion.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _xmlLink xmlLink;
typedef xmlLink *xmlLinkPtr;

typedef struct _xmlList xmlList;
typedef xmlList *xmlListPtr;

/**
 * xmlListDeallocator:
 * @lk:  the data to deallocate
 *
 * Callback function used to free data from a list.
 */
typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
/**
 * xmlListDataCompare:
 * @data0: the first data
 * @data1: the second data
 *
 * Callback function used to compare 2 data.
 *
 * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
 */
typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
/**
 * xmlListWalker:
 * @data: the data found in the list
 * @user: extra user provided data to the walker
 *
 * Callback function used when walking a list with xmlListWalk().
 *
 * Returns 0 to stop walking the list, 1 otherwise.
 */
typedef int (*xmlListWalker) (const void *data, const void *user);

/* Creation/Deletion */
XMLPUBFUN xmlListPtr XMLCALL
                xmlListCreate           (xmlListDeallocator deallocator,
                                         xmlListDataCompare compare);
XMLPUBFUN void XMLCALL          
                xmlListDelete           (xmlListPtr l);

/* Basic Operators */
XMLPUBFUN void * XMLCALL                
                xmlListSearch           (xmlListPtr l,
                                         void *data);
XMLPUBFUN void * XMLCALL                
                xmlListReverseSearch    (xmlListPtr l,
                                         void *data);
XMLPUBFUN int XMLCALL           
                xmlListInsert           (xmlListPtr l,
                                         void *data) ;
XMLPUBFUN int XMLCALL           
                xmlListAppend           (xmlListPtr l,
                                         void *data) ;
XMLPUBFUN int XMLCALL           
                xmlListRemoveFirst      (xmlListPtr l,
                                         void *data);
XMLPUBFUN int XMLCALL           
                xmlListRemoveLast       (xmlListPtr l,
                                         void *data);
XMLPUBFUN int XMLCALL           
                xmlListRemoveAll        (xmlListPtr l,
                                         void *data);
XMLPUBFUN void XMLCALL          
                xmlListClear            (xmlListPtr l);
XMLPUBFUN int XMLCALL           
                xmlListEmpty            (xmlListPtr l);
XMLPUBFUN xmlLinkPtr XMLCALL    
                xmlListFront            (xmlListPtr l);
XMLPUBFUN xmlLinkPtr XMLCALL    
                xmlListEnd              (xmlListPtr l);
XMLPUBFUN int XMLCALL           
                xmlListSize             (xmlListPtr l);

XMLPUBFUN void XMLCALL          
                xmlListPopFront         (xmlListPtr l);
XMLPUBFUN void XMLCALL          
                xmlListPopBack          (xmlListPtr l);
XMLPUBFUN int XMLCALL           
                xmlListPushFront        (xmlListPtr l,
                                         void *data);
XMLPUBFUN int XMLCALL           
                xmlListPushBack         (xmlListPtr l,
                                         void *data);

/* Advanced Operators */
XMLPUBFUN void XMLCALL          
                xmlListReverse          (xmlListPtr l);
XMLPUBFUN void XMLCALL          
                xmlListSort             (xmlListPtr l);
XMLPUBFUN void XMLCALL          
                xmlListWalk             (xmlListPtr l,
                                         xmlListWalker walker,
                                         const void *user);
XMLPUBFUN void XMLCALL          
                xmlListReverseWalk      (xmlListPtr l,
                                         xmlListWalker walker,
                                         const void *user);
XMLPUBFUN void XMLCALL          
                xmlListMerge            (xmlListPtr l1,
                                         xmlListPtr l2);
XMLPUBFUN xmlListPtr XMLCALL    
                xmlListDup              (const xmlListPtr old);
XMLPUBFUN int XMLCALL           
                xmlListCopy             (xmlListPtr cur,
                                         const xmlListPtr old);
/* Link operators */
XMLPUBFUN void * XMLCALL          
                xmlLinkGetData          (xmlLinkPtr lk);

/* xmlListUnique() */
/* xmlListSwap */

#ifdef __cplusplus
}
#endif

#endif /* __XML_LINK_INCLUDE__ */