globus_common  17.10
globus_list.h
Go to the documentation of this file.
1 
11 #ifndef GLOBUS_LIST_H
12 #define GLOBUS_LIST_H
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
28 typedef struct globus_list
29 {
30  void * volatile datum;
31  struct globus_list * volatile next;
32  int malloced;
34 
52 typedef int (*globus_list_pred_t) (void *datum, void *arg);
53 
75 typedef int (*globus_list_relation_t) (void *low_datum, void *high_datum,
76  void *relation_arg);
77 int
78 globus_i_list_pre_activate(void);
79 
80 extern int
81 globus_list_int_less (void * low_datum, void * high_datum,
82  void * ignored);
83 
84 extern int
86 
88 globus_list_concat(
89  globus_list_t * front_list,
90  globus_list_t * back_list);
91 
92 extern void *
94 
95 extern globus_list_t *
97 
98 extern globus_list_t **
99 globus_list_rest_ref (globus_list_t * head);
100 
101 extern int
103 
104 extern void *
105 globus_list_replace_first (globus_list_t * head, void *datum);
106 
107 extern globus_list_t *
108 globus_list_search (globus_list_t * head, void * datum);
109 
110 extern globus_list_t *
112  globus_list_pred_t predicate,
113  void * pred_args);
114 
115 extern globus_list_t *
117  globus_list_relation_t relation,
118  void * relation_args);
119 
120 extern globus_list_t *
121 globus_list_sort_destructive (globus_list_t * head,
122  globus_list_relation_t relation,
123  void *relation_args);
124 
125 extern void
126 globus_list_halves_destructive (globus_list_t * head,
127  globus_list_t * volatile * left_halfp,
128  globus_list_t * volatile * right_halfp);
129 
130 extern globus_list_t *
131 globus_list_sort_merge_destructive (globus_list_t *left,
132  globus_list_t *right,
133  globus_list_relation_t relation,
134  void * relation_args);
135 
136 extern globus_list_t *
138  globus_list_relation_t relation,
139  void *relation_args);
140 
141 extern int
142 globus_list_insert (globus_list_t * volatile *headp, void *datum);
143 
144 extern globus_list_t *
145 globus_list_cons (void * datum, globus_list_t *list);
146 
147 extern globus_list_t *
149 
150 extern void *
151 globus_list_remove (globus_list_t * volatile *headp, globus_list_t *entry);
152 
153 extern void
155 
156 void globus_list_destroy_all(
157  globus_list_t * head,
158  void (*data_free)(void *));
159 
160 extern globus_list_t *
161 globus_list_from_string(
162  const char * in_string,
163  int delim,
164  const char * ignored);
165 
166 #ifdef __cplusplus
167 }
168 #endif
169 
170 #endif /* GLOBUS_LIST_H */
globus_list_t * globus_list_rest(globus_list_t *head)
Get the remainder of the list.
Definition: globus_list.c:101
struct globus_list globus_list_t
List data type.
globus_list_t * globus_list_search_pred(globus_list_t *head, globus_list_pred_t predicate, void *pred_args)
Search a list with a predicate.
Definition: globus_list.c:265
globus_list_t * globus_list_sort(globus_list_t *head, globus_list_relation_t relation, void *relation_args)
Sort a list.
Definition: globus_list.c:469
globus_list_t * globus_list_copy(globus_list_t *head)
Copy constructor.
Definition: globus_list.c:568
globus_list_t * globus_list_min(globus_list_t *head, globus_list_relation_t relation, void *relation_args)
Find the minimum value of a list.
Definition: globus_list.c:330
void globus_list_free(globus_list_t *head)
Free a list.
Definition: globus_list.c:674
int(* globus_list_pred_t)(void *datum, void *arg)
List search predicate.
Definition: globus_list.h:52
void * globus_list_replace_first(globus_list_t *head, void *datum)
Replace first datum.
Definition: globus_list.c:195
void * globus_list_remove(globus_list_t *volatile *headp, globus_list_t *entry)
Remove a datum from a list.
Definition: globus_list.c:613
globus_list_t * globus_list_search(globus_list_t *head, void *datum)
Search a list for a datum.
Definition: globus_list.c:221
int globus_list_size(globus_list_t *head)
Get the number of elements in a list.
Definition: globus_list.c:141
void * globus_list_first(globus_list_t *head)
Retrieve head datum.
Definition: globus_list.c:81
int(* globus_list_relation_t)(void *low_datum, void *high_datum, void *relation_arg)
Relation predicate.
Definition: globus_list.h:75
int globus_list_empty(globus_list_t *head)
List empty predicate.
Definition: globus_list.c:124
int globus_list_insert(globus_list_t *volatile *headp, void *datum)
Insert an item in a list.
Definition: globus_list.c:495
globus_list_t * globus_list_cons(void *datum, globus_list_t *list)
List constructor.
Definition: globus_list.c:539
List data type.
Definition: globus_list.h:29