From 399516e2ea22504b2f6658fa6b165e2651057ed3 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 17 Mar 2005 14:47:53 +0000 Subject: [PATCH] Vector_searchSelfOrg*(): added git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1892 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/ensc_vector/vector.h | 9 +++++++++ util-vserver/ensc_vector/vector.hc | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/util-vserver/ensc_vector/vector.h b/util-vserver/ensc_vector/vector.h index 1521f86..a6e01f1 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,10 @@ void Vector_popback(struct Vector *); void Vector_resize(struct Vector *vec); void Vector_clear(struct Vector *vec); void Vector_zeroEnd(struct Vector *vec); + +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 *); diff --git a/util-vserver/ensc_vector/vector.hc b/util-vserver/ensc_vector/vector.hc index 071138e..2e5493c 100644 --- a/util-vserver/ensc_vector/vector.hc +++ b/util-vserver/ensc_vector/vector.hc @@ -51,3 +51,11 @@ Vector_search_const(struct Vector const *vec, void const *key, int (*compar)(con { return Vector_search((struct Vector *)(vec), key, compar); } + +static inline UNUSED void const * +Vector_searchSelfOrg_const(struct Vector const *vec, void const *key, + int (*compare)(const void *, const void *), + VectorSelfOrgMethod method) +{ + return Vector_searchSelfOrg((struct Vector *)(vec), key, compare, method); +} -- 1.8.1.5