00001
00002 #ifndef CMAID_LIST_H
00003 #define CMAID_LIST_H
00004
00022 typedef Cmaid_Container Cmaid_List;
00023
00035 typedef void *(*Cmaid_List_Append_Cb)(Cmaid_List *t, void *data);
00037 typedef void *(*Cmaid_List_Prepend_Cb)(Cmaid_List *t, void *data);
00039 typedef void (*Cmaid_List_First_Remove_Cb)(Cmaid_List *t);
00041 typedef void (*Cmaid_List_Last_Remove_Cb)(Cmaid_List *t);
00043 typedef void *(*Cmaid_List_First_Cb)(Cmaid_List *t);
00045 typedef void *(*Cmaid_List_Last_Cb)(Cmaid_List *t);
00047 typedef void *(*Cmaid_List_Insert_Before_Cb)(Cmaid_List *t, const Cmaid_Iter *it, void *data);
00049 typedef void *(*Cmaid_List_Inset_After_Cb)(Cmaid_List *t, const Cmaid_Iter *it, void *data);
00051 typedef void (*Cmaid_List_Sort_Cb)(Cmaid_List *t);
00053 typedef void (*Cmaid_List_Reverse_Cb)(Cmaid_List *t);
00054
00056 typedef struct Cmaid_List_Interface Cmaid_List_Interface;
00057
00063 struct Cmaid_List_Interface
00064 {
00065 Cmaid_Container_Interface container_if;
00066 Cmaid_List_Append_Cb append;
00067 Cmaid_List_Prepend_Cb prepend;
00068 Cmaid_List_First_Remove_Cb first_remove;
00069 Cmaid_List_Last_Remove_Cb last_remove;
00070 Cmaid_List_First_Cb first;
00071 Cmaid_List_Last_Cb last;
00072 Cmaid_List_Insert_Before_Cb insert_before;
00073 Cmaid_List_Inset_After_Cb inset_after;
00074 Cmaid_List_Sort_Cb sort;
00075 Cmaid_List_Reverse_Cb reverse;
00076 };
00084 CMAID_INLINE void *cmaid_list_append(Cmaid_List *t, void *data);
00085 CMAID_INLINE void *cmaid_list_prepend(Cmaid_List *t, void *data);
00086 CMAID_INLINE void cmaid_list_first_remove(Cmaid_List *t);
00087 CMAID_INLINE void cmaid_list_last_remove(Cmaid_List *t);
00088 CMAID_INLINE void *cmaid_list_first(Cmaid_List *t);
00089 CMAID_INLINE void *cmaid_list_last(Cmaid_List *t);
00090 CMAID_INLINE void *cmaid_list_insert_before(Cmaid_List *t, Cmaid_Iter *iter,
00091 void *data);
00092 CMAID_INLINE void *cmaid_list_insert_after(Cmaid_List *t, Cmaid_Iter *iter,
00093 void *data);
00094 CMAID_INLINE void cmaid_list_sort(Cmaid_List *t);
00095 CMAID_INLINE void cmaid_list_reverse(Cmaid_List *t);
00099 #include <cmaid_list_funcdef.h>
00100
00101 #endif