]> git.ipfire.org Git - thirdparty/cups.git/blob - cups/array.h
385b7dffcf6c22c031c3719c954c72c03deb9bff
[thirdparty/cups.git] / cups / array.h
1 /*
2 * "$Id$"
3 *
4 * Sorted array definitions for CUPS.
5 *
6 * Copyright 2007-2010 by Apple Inc.
7 * Copyright 1997-2007 by Easy Software Products.
8 *
9 * These coded instructions, statements, and computer programs are the
10 * property of Apple Inc. and are protected by Federal copyright
11 * law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 * which should have been included with this file. If this file is
13 * file is missing or damaged, see the license at "http://www.cups.org/".
14 *
15 * This file is subject to the Apple OS-Developed Software exception.
16 */
17
18 #ifndef _CUPS_ARRAY_H_
19 # define _CUPS_ARRAY_H_
20
21 /*
22 * Include necessary headers...
23 */
24
25 # include "versioning.h"
26 # include <stdlib.h>
27
28
29 /*
30 * C++ magic...
31 */
32
33 # ifdef __cplusplus
34 extern "C" {
35 # endif /* __cplusplus */
36
37
38 /*
39 * Types and structures...
40 */
41
42 typedef struct _cups_array_s cups_array_t;
43 /**** CUPS array type ****/
44 typedef int (*cups_array_func_t)(void *first, void *second, void *data);
45 /**** Array comparison function ****/
46 typedef int (*cups_ahash_func_t)(void *element, void *data);
47 /**** Array hash function ****/
48 typedef void *(*cups_acopy_func_t)(void *element, void *data);
49 /**** Array element copy function ****/
50 typedef void (*cups_afree_func_t)(void *element, void *data);
51 /**** Array element free function ****/
52
53
54 /*
55 * Functions...
56 */
57
58 extern int cupsArrayAdd(cups_array_t *a, void *e) _CUPS_API_1_2;
59 extern void cupsArrayClear(cups_array_t *a) _CUPS_API_1_2;
60 extern int cupsArrayCount(cups_array_t *a) _CUPS_API_1_2;
61 extern void *cupsArrayCurrent(cups_array_t *a) _CUPS_API_1_2;
62 extern void cupsArrayDelete(cups_array_t *a) _CUPS_API_1_2;
63 extern cups_array_t *cupsArrayDup(cups_array_t *a) _CUPS_API_1_2;
64 extern void *cupsArrayFind(cups_array_t *a, void *e) _CUPS_API_1_2;
65 extern void *cupsArrayFirst(cups_array_t *a) _CUPS_API_1_2;
66 extern int cupsArrayGetIndex(cups_array_t *a) _CUPS_API_1_3;
67 extern int cupsArrayGetInsert(cups_array_t *a) _CUPS_API_1_3;
68 extern void *cupsArrayIndex(cups_array_t *a, int n) _CUPS_API_1_2;
69 extern int cupsArrayInsert(cups_array_t *a, void *e) _CUPS_API_1_2;
70 extern void *cupsArrayLast(cups_array_t *a) _CUPS_API_1_2;
71 extern cups_array_t *cupsArrayNew(cups_array_func_t f, void *d) _CUPS_API_1_2;
72 extern cups_array_t *cupsArrayNew2(cups_array_func_t f, void *d,
73 cups_ahash_func_t h, int hsize) _CUPS_API_1_3;
74 extern cups_array_t *cupsArrayNew3(cups_array_func_t f, void *d,
75 cups_ahash_func_t h, int hsize,
76 cups_acopy_func_t cf,
77 cups_afree_func_t ff) _CUPS_API_1_5;
78 extern void *cupsArrayNext(cups_array_t *a) _CUPS_API_1_2;
79 extern void *cupsArrayPrev(cups_array_t *a) _CUPS_API_1_2;
80 extern int cupsArrayRemove(cups_array_t *a, void *e) _CUPS_API_1_2;
81 extern void *cupsArrayRestore(cups_array_t *a) _CUPS_API_1_2;
82 extern int cupsArraySave(cups_array_t *a) _CUPS_API_1_2;
83 extern void *cupsArrayUserData(cups_array_t *a) _CUPS_API_1_2;
84
85 # ifdef __cplusplus
86 }
87 # endif /* __cplusplus */
88 #endif /* !_CUPS_ARRAY_H_ */
89
90 /*
91 * End of "$Id$".
92 */