completed minimal list api
[my-code/api.git] / list / list.h
index b415f90..5355a16 100644 (file)
@@ -1,21 +1,40 @@
 /* list.h -- list headers */
 
+#define _GNU_SOURCE
 #include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
 
 #define L_SUCCESS 1
 #define L_ERROR -1
-
-#define C_NUMBER (1<<0)
-#define C_DATA (1<<1)
+#define L_NO_NEXT_ELEMENT -2
+#define L_NO_SUCH_ELEMENT -3
+#define L_INVALID_ELEMENT -4
+#define L_EMPTY_LIST -5
+#define L_ELEMENT_IN_LIST -6
+#define L_E_MEM -7
 
 typedef struct s_list_element {
-       struct s_list_element *next;
-       void *data;
-       int number;
+  struct s_list_element *prev;
+  struct s_list_element *next;
+  void *data;
+  int data_len;
 } t_list_element;
 
 typedef struct s_list {
-       t_list_element start;
-       unsigned char method;
-       t_list_element *current;
+  int outfd;
+  t_list_element *start;
+  t_list_element *current;
 } t_list;
+
+/* function prototypes */
+int list_init(t_list *list,int outfd);
+int list_shutdown(t_list *list);
+int list_reset(t_list *list);
+int list_next(t_list *list);
+int list_del_element(t_list *list,t_list_element *element);
+int list_destroy(t_list *list);
+int list_search_data(t_list *list,void *data,int first_bytes);
+int list_add_element(t_list *list,void *data,int data_len);
+int list_count(t_list *list);
+