blob: d2f866bf1badc9b1473cc6d9c1e72af482a0c5b9 [file] [log] [blame]
#ifndef __J_SLIST_H__
#define __J_SLIST_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct JSList_s {
struct JSList_s *next;
void* data;
} JSList;
typedef int (*JCompareFunc)(void* data1, void* data2);
typedef void (*JFunc)(void* data, void* userdata);
JSList* j_slist_append (JSList* list, void* data);
JSList* j_slist_find (JSList *list, void* data);
JSList* j_slist_remove(JSList *list, void* data);
JSList* j_slist_remove_link(JSList *list, JSList* link);
JSList *j_slist_delete_link(JSList *list, JSList *link);
JSList *j_slist_concat(JSList* list1, JSList *list2);
unsigned int j_slist_length (JSList *list);
void *j_slist_nth_data(JSList *list, unsigned int n);
JSList* j_slist_find_custom(JSList *list, void* data, JCompareFunc func);
void j_slist_foreach(JSList *list, JFunc func, void* userdata);
#ifdef __cplusplus
}
#endif
#endif