xref: /aosp_15_r20/external/libcups/cups/array.h (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker /*
2*5e7646d2SAndroid Build Coastguard Worker  * Sorted array definitions for CUPS.
3*5e7646d2SAndroid Build Coastguard Worker  *
4*5e7646d2SAndroid Build Coastguard Worker  * Copyright 2007-2010 by Apple Inc.
5*5e7646d2SAndroid Build Coastguard Worker  * Copyright 1997-2007 by Easy Software Products.
6*5e7646d2SAndroid Build Coastguard Worker  *
7*5e7646d2SAndroid Build Coastguard Worker  * Licensed under Apache License v2.0.  See the file "LICENSE" for more information.
8*5e7646d2SAndroid Build Coastguard Worker  */
9*5e7646d2SAndroid Build Coastguard Worker 
10*5e7646d2SAndroid Build Coastguard Worker #ifndef _CUPS_ARRAY_H_
11*5e7646d2SAndroid Build Coastguard Worker #  define _CUPS_ARRAY_H_
12*5e7646d2SAndroid Build Coastguard Worker 
13*5e7646d2SAndroid Build Coastguard Worker /*
14*5e7646d2SAndroid Build Coastguard Worker  * Include necessary headers...
15*5e7646d2SAndroid Build Coastguard Worker  */
16*5e7646d2SAndroid Build Coastguard Worker 
17*5e7646d2SAndroid Build Coastguard Worker #  include "versioning.h"
18*5e7646d2SAndroid Build Coastguard Worker #  include <stdlib.h>
19*5e7646d2SAndroid Build Coastguard Worker 
20*5e7646d2SAndroid Build Coastguard Worker 
21*5e7646d2SAndroid Build Coastguard Worker /*
22*5e7646d2SAndroid Build Coastguard Worker  * C++ magic...
23*5e7646d2SAndroid Build Coastguard Worker  */
24*5e7646d2SAndroid Build Coastguard Worker 
25*5e7646d2SAndroid Build Coastguard Worker #  ifdef __cplusplus
26*5e7646d2SAndroid Build Coastguard Worker extern "C" {
27*5e7646d2SAndroid Build Coastguard Worker #  endif /* __cplusplus */
28*5e7646d2SAndroid Build Coastguard Worker 
29*5e7646d2SAndroid Build Coastguard Worker 
30*5e7646d2SAndroid Build Coastguard Worker /*
31*5e7646d2SAndroid Build Coastguard Worker  * Types and structures...
32*5e7646d2SAndroid Build Coastguard Worker  */
33*5e7646d2SAndroid Build Coastguard Worker 
34*5e7646d2SAndroid Build Coastguard Worker typedef struct _cups_array_s cups_array_t;
35*5e7646d2SAndroid Build Coastguard Worker 					/**** CUPS array type ****/
36*5e7646d2SAndroid Build Coastguard Worker typedef int (*cups_array_func_t)(void *first, void *second, void *data);
37*5e7646d2SAndroid Build Coastguard Worker 					/**** Array comparison function ****/
38*5e7646d2SAndroid Build Coastguard Worker typedef int (*cups_ahash_func_t)(void *element, void *data);
39*5e7646d2SAndroid Build Coastguard Worker 					/**** Array hash function ****/
40*5e7646d2SAndroid Build Coastguard Worker typedef void *(*cups_acopy_func_t)(void *element, void *data);
41*5e7646d2SAndroid Build Coastguard Worker 					/**** Array element copy function ****/
42*5e7646d2SAndroid Build Coastguard Worker typedef void (*cups_afree_func_t)(void *element, void *data);
43*5e7646d2SAndroid Build Coastguard Worker 					/**** Array element free function ****/
44*5e7646d2SAndroid Build Coastguard Worker 
45*5e7646d2SAndroid Build Coastguard Worker 
46*5e7646d2SAndroid Build Coastguard Worker /*
47*5e7646d2SAndroid Build Coastguard Worker  * Functions...
48*5e7646d2SAndroid Build Coastguard Worker  */
49*5e7646d2SAndroid Build Coastguard Worker 
50*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArrayAdd(cups_array_t *a, void *e) _CUPS_API_1_2;
51*5e7646d2SAndroid Build Coastguard Worker extern void		cupsArrayClear(cups_array_t *a) _CUPS_API_1_2;
52*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArrayCount(cups_array_t *a) _CUPS_API_1_2;
53*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayCurrent(cups_array_t *a) _CUPS_API_1_2;
54*5e7646d2SAndroid Build Coastguard Worker extern void		cupsArrayDelete(cups_array_t *a) _CUPS_API_1_2;
55*5e7646d2SAndroid Build Coastguard Worker extern cups_array_t	*cupsArrayDup(cups_array_t *a) _CUPS_API_1_2;
56*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayFind(cups_array_t *a, void *e) _CUPS_API_1_2;
57*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayFirst(cups_array_t *a) _CUPS_API_1_2;
58*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArrayGetIndex(cups_array_t *a) _CUPS_API_1_3;
59*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArrayGetInsert(cups_array_t *a) _CUPS_API_1_3;
60*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayIndex(cups_array_t *a, int n) _CUPS_API_1_2;
61*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArrayInsert(cups_array_t *a, void *e) _CUPS_API_1_2;
62*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayLast(cups_array_t *a) _CUPS_API_1_2;
63*5e7646d2SAndroid Build Coastguard Worker extern cups_array_t	*cupsArrayNew(cups_array_func_t f, void *d) _CUPS_API_1_2;
64*5e7646d2SAndroid Build Coastguard Worker extern cups_array_t	*cupsArrayNew2(cups_array_func_t f, void *d,
65*5e7646d2SAndroid Build Coastguard Worker 			               cups_ahash_func_t h, int hsize) _CUPS_API_1_3;
66*5e7646d2SAndroid Build Coastguard Worker extern cups_array_t	*cupsArrayNew3(cups_array_func_t f, void *d,
67*5e7646d2SAndroid Build Coastguard Worker 			               cups_ahash_func_t h, int hsize,
68*5e7646d2SAndroid Build Coastguard Worker 				       cups_acopy_func_t cf,
69*5e7646d2SAndroid Build Coastguard Worker 				       cups_afree_func_t ff) _CUPS_API_1_5;
70*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayNext(cups_array_t *a) _CUPS_API_1_2;
71*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayPrev(cups_array_t *a) _CUPS_API_1_2;
72*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArrayRemove(cups_array_t *a, void *e) _CUPS_API_1_2;
73*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayRestore(cups_array_t *a) _CUPS_API_1_2;
74*5e7646d2SAndroid Build Coastguard Worker extern int		cupsArraySave(cups_array_t *a) _CUPS_API_1_2;
75*5e7646d2SAndroid Build Coastguard Worker extern void		*cupsArrayUserData(cups_array_t *a) _CUPS_API_1_2;
76*5e7646d2SAndroid Build Coastguard Worker 
77*5e7646d2SAndroid Build Coastguard Worker #  ifdef __cplusplus
78*5e7646d2SAndroid Build Coastguard Worker }
79*5e7646d2SAndroid Build Coastguard Worker #  endif /* __cplusplus */
80*5e7646d2SAndroid Build Coastguard Worker #endif /* !_CUPS_ARRAY_H_ */
81