00001 #ifdef __cplusplus
00002 extern "C" {
00003 #endif
00004
00005 #ifndef CDSA_VECTOR_H
00006 #define CDSA_VECTOR_H
00007
00008 #include <stdlib.h>
00009 #include <limits.h>
00010 #include <string.h>
00011
00012 #include "cdsa_types.h"
00013
00049 typedef struct Vector Vector;
00050 struct Vector;
00051
00058 #define DEFAULT_VECTOR_CAPACITY 16
00059
00075 cdsa_status_t vector_new(Vector **new_vector, size_t elem_size, size_t capacity,
00076 cdsa_destroy_func1_t destroy);
00077
00092 cdsa_status_t vector_destroy(Vector **v);
00093
00108 cdsa_status_t vector_capacity(Vector *v, size_t *capacity);
00109
00123 cdsa_status_t vector_get(Vector *v, unsigned int n, void *ptr);
00124
00143 cdsa_status_t vector_put(Vector *v, unsigned int n, void *elem, void *prev);
00144
00158 cdsa_status_t vector_sort(Vector *v, unsigned int i_low, unsigned int num_elems,
00159 cdsa_compare_func_t compare);
00160
00161
00162 #ifdef __cplusplus
00163 }
00164 #endif
00165
00166 #endif
00167