1/* 2 * "$Id: array.h 11093 2013-07-03 20:48:42Z msweet $" 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 34extern "C" { 35# endif /* __cplusplus */ 36 37 38/* 39 * Types and structures... 40 */ 41 42typedef struct _cups_array_s cups_array_t; 43 /**** CUPS array type ****/ 44typedef int (*cups_array_func_t)(void *first, void *second, void *data); 45 /**** Array comparison function ****/ 46typedef int (*cups_ahash_func_t)(void *element, void *data); 47 /**** Array hash function ****/ 48typedef void *(*cups_acopy_func_t)(void *element, void *data); 49 /**** Array element copy function ****/ 50typedef void (*cups_afree_func_t)(void *element, void *data); 51 /**** Array element free function ****/ 52 53 54/* 55 * Functions... 56 */ 57 58extern int cupsArrayAdd(cups_array_t *a, void *e) _CUPS_API_1_2; 59extern void cupsArrayClear(cups_array_t *a) _CUPS_API_1_2; 60extern int cupsArrayCount(cups_array_t *a) _CUPS_API_1_2; 61extern void *cupsArrayCurrent(cups_array_t *a) _CUPS_API_1_2; 62extern void cupsArrayDelete(cups_array_t *a) _CUPS_API_1_2; 63extern cups_array_t *cupsArrayDup(cups_array_t *a) _CUPS_API_1_2; 64extern void *cupsArrayFind(cups_array_t *a, void *e) _CUPS_API_1_2; 65extern void *cupsArrayFirst(cups_array_t *a) _CUPS_API_1_2; 66extern int cupsArrayGetIndex(cups_array_t *a) _CUPS_API_1_3; 67extern int cupsArrayGetInsert(cups_array_t *a) _CUPS_API_1_3; 68extern void *cupsArrayIndex(cups_array_t *a, int n) _CUPS_API_1_2; 69extern int cupsArrayInsert(cups_array_t *a, void *e) _CUPS_API_1_2; 70extern void *cupsArrayLast(cups_array_t *a) _CUPS_API_1_2; 71extern cups_array_t *cupsArrayNew(cups_array_func_t f, void *d) _CUPS_API_1_2; 72extern cups_array_t *cupsArrayNew2(cups_array_func_t f, void *d, 73 cups_ahash_func_t h, int hsize) _CUPS_API_1_3; 74extern 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; 78extern void *cupsArrayNext(cups_array_t *a) _CUPS_API_1_2; 79extern void *cupsArrayPrev(cups_array_t *a) _CUPS_API_1_2; 80extern int cupsArrayRemove(cups_array_t *a, void *e) _CUPS_API_1_2; 81extern void *cupsArrayRestore(cups_array_t *a) _CUPS_API_1_2; 82extern int cupsArraySave(cups_array_t *a) _CUPS_API_1_2; 83extern 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: array.h 11093 2013-07-03 20:48:42Z msweet $". 92 */ 93