mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2024-12-13 11:53:59 +02:00
36 lines
1.3 KiB
C
36 lines
1.3 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* parray.h: pointer array collection.
|
|
*
|
|
* Copyright (c) 2009-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef PARRAY_H
|
|
#define PARRAY_H
|
|
|
|
/*
|
|
* "parray" hold pointers to objects in a linear memory area.
|
|
* Client use "parray *" to access parray object.
|
|
*/
|
|
typedef struct parray parray;
|
|
|
|
extern parray *parray_new(void);
|
|
extern void parray_expand(parray *array, size_t newnum);
|
|
extern void parray_free(parray *array);
|
|
extern void parray_append(parray *array, void *val);
|
|
extern void parray_insert(parray *array, size_t index, void *val);
|
|
extern parray *parray_concat(parray *head, const parray *tail);
|
|
extern void parray_set(parray *array, size_t index, void *val);
|
|
extern void *parray_get(const parray *array, size_t index);
|
|
extern void *parray_remove(parray *array, size_t index);
|
|
extern bool parray_rm(parray *array, const void *key, int(*compare)(const void *, const void *));
|
|
extern size_t parray_num(const parray *array);
|
|
extern void parray_qsort(parray *array, int(*compare)(const void *, const void *));
|
|
extern void *parray_bsearch(parray *array, const void *key, int(*compare)(const void *, const void *));
|
|
extern void parray_walk(parray *array, void (*action)(void *));
|
|
|
|
#endif /* PARRAY_H */
|
|
|