dynlist.h

Go to the documentation of this file.
00001 
00016 #ifndef DYNLIST_H
00017 #define DYNLIST_H
00018 
00019 #include <stdlib.h>
00020 
00021 #ifdef THREADSAFE
00022 #include <pthread.h>
00023 #include <semaphore.h>
00024 #endif
00025 
00031 #define dynlist(x, y) dynlist (x)=createlist(sizeof(y))
00032 
00038 typedef struct item {
00039         struct item *prev; 
00040         void *refer; 
00041         struct item *next; 
00042 }dynlistitem; 
00043 
00049 typedef struct {
00051         int itemsize;
00052 
00054         int lasti;
00055 
00057         int endi;
00058 
00060         dynlistitem *last;
00061 
00063         dynlistitem *start;
00064 
00066         dynlistitem *end;
00067 
00068         #ifdef THREADSAFE
00069         sem_t lock;
00070         #endif
00071 
00072 }dynlist;
00073 
00079 dynlist createlist(int itemsize);
00080 
00086 void *newitem(dynlist *list);
00087 
00093 void *getitem(dynlist *list,
00094               int i );
00095 
00101 void eraseitem(dynlist *list, 
00102                         int i);
00103 
00109 void clearlist(dynlist *list);
00110 
00116 long getsize(dynlist list);
00117 
00123 long getlen(dynlist list);
00124 
00130 void *compile(dynlist list);
00131 
00137 void swap(dynlist *list, 
00138                         int i, 
00139                         int j);
00140 
00146 void reverse(dynlist *list);
00147 
00148 
00154 void additem(dynlist *list, 
00155                 void *item,
00156                 int i);
00157 
00163 void appenditem(dynlist *list,
00164                 void *item);
00165 
00171 void catlists(dynlist *list1,
00172                 dynlist *list2);
00173 
00179 dynlist splitlist(dynlist *list,
00180                 int i);
00181 
00187 dynlist decompile(void *data, 
00188                         int itemsize, 
00189                         int num);
00190 
00196 void sortlist(dynlist *list,
00197                 int (*func)(void*, void*));
00198 
00200 dynlistitem *getdl(dynlist *list, int i);
00201 
00202 #endif

Generated on Wed Mar 19 12:08:08 2008 for dynlist by  doxygen 1.5.3