X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fensc_vector%2Fvector.h;h=bca1a6dde7f5d683110cbc394e3ed5fe94492f9a;hb=faa778968d1a7dfeaebc9fe4b847e691dc62fd15;hp=ff8c24d37a2651134799e0bc102576d4f19c26e0;hpb=c66b2f97361761b8a87058dc7a49ab59d4520556;p=util-vserver.git diff --git a/util-vserver/ensc_vector/vector.h b/util-vserver/ensc_vector/vector.h index ff8c24d..bca1a6d 100644 --- a/util-vserver/ensc_vector/vector.h +++ b/util-vserver/ensc_vector/vector.h @@ -30,9 +30,14 @@ struct Vector size_t elem_size; }; +typedef enum { vecMOVE_FRONT, vecSHIFT_ONCE } VectorSelfOrgMethod; + void Vector_init(struct Vector *, size_t elem_size); void Vector_free(struct Vector *); void * Vector_search(struct Vector *, void const *key, int (*compar)(const void *, const void *)); +void * Vector_searchSelfOrg(struct Vector *, void const *key, + int (*compar)(const void *, const void *), + VectorSelfOrgMethod method); void Vector_sort(struct Vector *, int (*compar)(const void *, const void *)); void Vector_unique(struct Vector *, int (*compar)(const void *, const void *)); void * Vector_pushback(struct Vector *); @@ -40,6 +45,15 @@ void * Vector_insert(struct Vector *, void const *key, int (*compar)(const void void Vector_popback(struct Vector *); void Vector_resize(struct Vector *vec); void Vector_clear(struct Vector *vec); +void Vector_zeroEnd(struct Vector *vec); +void Vector_foreach(struct Vector *vec, void (*func)(void *, void *), void *); + +static void Vector_foreach_const(struct Vector const *vec, + void (*func)(void const *, void *), + void *); +static void const * Vector_searchSelfOrg_const(struct Vector const *, void const *key, + int (*compar)(const void *, const void *), + VectorSelfOrgMethod method); static void const * Vector_search_const(struct Vector const *, void const *key, int (*compar)(const void *, const void *)); static void * Vector_begin(struct Vector *); static void * Vector_end(struct Vector *);