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