completed minimal list api
[my-code/api.git] / list / list.h
1 /* list.h -- list headers */
2
3 #define _GNU_SOURCE
4 #include <stdio.h>
5 #include <string.h>
6 #include <stdlib.h>
7
8 #define L_SUCCESS 1
9 #define L_ERROR -1
10 #define L_NO_NEXT_ELEMENT -2
11 #define L_NO_SUCH_ELEMENT -3
12 #define L_INVALID_ELEMENT -4
13 #define L_EMPTY_LIST -5
14 #define L_ELEMENT_IN_LIST -6
15 #define L_E_MEM -7
16
17 typedef struct s_list_element {
18   struct s_list_element *prev;
19   struct s_list_element *next;
20   void *data;
21   int data_len;
22 } t_list_element;
23
24 typedef struct s_list {
25   int outfd;
26   t_list_element *start;
27   t_list_element *current;
28 } t_list;
29
30 /* function prototypes */
31 int list_init(t_list *list,int outfd);
32 int list_shutdown(t_list *list);
33 int list_reset(t_list *list);
34 int list_next(t_list *list);
35 int list_del_element(t_list *list,t_list_element *element);
36 int list_destroy(t_list *list);
37 int list_search_data(t_list *list,void *data,int first_bytes);
38 int list_add_element(t_list *list,void *data,int data_len);
39 int list_count(t_list *list);
40