Vector_searchSelfOrg*(): added
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Thu, 17 Mar 2005 14:47:53 +0000 (14:47 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Thu, 17 Mar 2005 14:47:53 +0000 (14:47 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1892 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/ensc_vector/vector.h
util-vserver/ensc_vector/vector.hc

index 1521f86..a6e01f1 100644 (file)
@@ -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 *);
index 071138e..2e5493c 100644 (file)
@@ -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);
+}