2 * Sorted array definitions for CUPS.
4 * Copyright 2007-2010 by Apple Inc.
5 * Copyright 1997-2007 by Easy Software Products.
7 * These coded instructions, statements, and computer programs are the
8 * property of Apple Inc. and are protected by Federal copyright
9 * law. Distribution and use rights are outlined in the file "LICENSE.txt"
10 * which should have been included with this file. If this file is
11 * missing or damaged, see the license at "http://www.cups.org/".
13 * This file is subject to the Apple OS-Developed Software exception.
16 #ifndef _CUPS_ARRAY_H_
17 # define _CUPS_ARRAY_H_
20 * Include necessary headers...
23 # include "versioning.h"
33 # endif /* __cplusplus */
37 * Types and structures...
40 typedef struct _cups_array_s cups_array_t
;
41 /**** CUPS array type ****/
42 typedef int (*cups_array_func_t
)(void *first
, void *second
, void *data
);
43 /**** Array comparison function ****/
44 typedef int (*cups_ahash_func_t
)(void *element
, void *data
);
45 /**** Array hash function ****/
46 typedef void *(*cups_acopy_func_t
)(void *element
, void *data
);
47 /**** Array element copy function ****/
48 typedef void (*cups_afree_func_t
)(void *element
, void *data
);
49 /**** Array element free function ****/
56 extern int cupsArrayAdd(cups_array_t
*a
, void *e
) _CUPS_API_1_2
;
57 extern void cupsArrayClear(cups_array_t
*a
) _CUPS_API_1_2
;
58 extern int cupsArrayCount(cups_array_t
*a
) _CUPS_API_1_2
;
59 extern void *cupsArrayCurrent(cups_array_t
*a
) _CUPS_API_1_2
;
60 extern void cupsArrayDelete(cups_array_t
*a
) _CUPS_API_1_2
;
61 extern cups_array_t
*cupsArrayDup(cups_array_t
*a
) _CUPS_API_1_2
;
62 extern void *cupsArrayFind(cups_array_t
*a
, void *e
) _CUPS_API_1_2
;
63 extern void *cupsArrayFirst(cups_array_t
*a
) _CUPS_API_1_2
;
64 extern int cupsArrayGetIndex(cups_array_t
*a
) _CUPS_API_1_3
;
65 extern int cupsArrayGetInsert(cups_array_t
*a
) _CUPS_API_1_3
;
66 extern void *cupsArrayIndex(cups_array_t
*a
, int n
) _CUPS_API_1_2
;
67 extern int cupsArrayInsert(cups_array_t
*a
, void *e
) _CUPS_API_1_2
;
68 extern void *cupsArrayLast(cups_array_t
*a
) _CUPS_API_1_2
;
69 extern cups_array_t
*cupsArrayNew(cups_array_func_t f
, void *d
) _CUPS_API_1_2
;
70 extern cups_array_t
*cupsArrayNew2(cups_array_func_t f
, void *d
,
71 cups_ahash_func_t h
, int hsize
) _CUPS_API_1_3
;
72 extern cups_array_t
*cupsArrayNew3(cups_array_func_t f
, void *d
,
73 cups_ahash_func_t h
, int hsize
,
75 cups_afree_func_t ff
) _CUPS_API_1_5
;
76 extern void *cupsArrayNext(cups_array_t
*a
) _CUPS_API_1_2
;
77 extern void *cupsArrayPrev(cups_array_t
*a
) _CUPS_API_1_2
;
78 extern int cupsArrayRemove(cups_array_t
*a
, void *e
) _CUPS_API_1_2
;
79 extern void *cupsArrayRestore(cups_array_t
*a
) _CUPS_API_1_2
;
80 extern int cupsArraySave(cups_array_t
*a
) _CUPS_API_1_2
;
81 extern void *cupsArrayUserData(cups_array_t
*a
) _CUPS_API_1_2
;
85 # endif /* __cplusplus */
86 #endif /* !_CUPS_ARRAY_H_ */