uves_deque.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef UVES_DEQUE_H
00028 #define UVES_DEQUE_H
00029
00030 #include <cxtypes.h>
00031 #include <assert.h>
00032 #include <stdlib.h>
00033
00034 typedef struct _uves_deque_ uves_deque;
00035
00036 typedef unsigned long uves_deque_const_iterator;
00037 typedef unsigned long uves_deque_iterator;
00038
00039 uves_deque *
00040 uves_deque_new(void);
00041 void
00042 uves_deque_push_back(uves_deque *d, cxptr what);
00043 void uves_deque_push_front(uves_deque *d, cxptr what);
00044 cxptr uves_deque_get(const uves_deque *d, uves_deque_const_iterator indx);
00045 uves_deque_iterator uves_deque_erase(uves_deque *d, uves_deque_iterator indx, cx_free_func deallocate);
00046 void uves_deque_insert(uves_deque *d, uves_deque_iterator indx, cxptr what);
00047 cxsize
00048 uves_deque_size(const uves_deque *d);
00049 void uves_deque_destroy(uves_deque *d, cx_free_func deallocate);
00050 cxbool uves_deque_empty(const uves_deque *d);
00051 uves_deque_iterator uves_deque_begin(const uves_deque *d);
00052 uves_deque_iterator uves_deque_end(const uves_deque *d);
00053 uves_deque_iterator uves_deque_next(const uves_deque *d, uves_deque_const_iterator i);
00054 #endif