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=1521f8610d84cabb4082f2edc4fde498caac3f85;hpb=40e5e7d2e058e8ba2a49dad13cc7a4e4ec4cfe3c;p=util-vserver.git diff --git a/util-vserver/ensc_vector/vector.h b/util-vserver/ensc_vector/vector.h index 1521f86..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 *); @@ -41,6 +46,14 @@ 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 *);