76 lines
3.1 KiB
C
76 lines
3.1 KiB
C
#ifndef __al_included_allegro5_aintern_list_h
|
|
#define __al_included_allegro5_aintern_list_h
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct _AL_LIST _AL_LIST;
|
|
typedef struct _AL_LIST_ITEM _AL_LIST_ITEM;
|
|
|
|
typedef void (*_AL_LIST_DTOR)(void* userdata);
|
|
typedef void (*_AL_LIST_ITEM_DTOR)(void* value, void* userdata);
|
|
|
|
AL_FUNC(_AL_LIST*, _al_list_create, (void));
|
|
AL_FUNC(_AL_LIST*, _al_list_create_static, (size_t capacity));
|
|
AL_FUNC(void, _al_list_destroy, (_AL_LIST* list));
|
|
|
|
AL_FUNC(void, _al_list_set_dtor, (_AL_LIST* list, _AL_LIST_DTOR dtor));
|
|
AL_FUNC(_AL_LIST_DTOR, _al_list_get_dtor, (_AL_LIST* list));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_push_front, (_AL_LIST* list, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_push_front_ex, (_AL_LIST* list, void* data, _AL_LIST_ITEM_DTOR dtor));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_push_back, (_AL_LIST* list, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_push_back_ex, (_AL_LIST* list, void* data, _AL_LIST_ITEM_DTOR dtor));
|
|
|
|
AL_FUNC(void, _al_list_pop_front, (_AL_LIST* list));
|
|
AL_FUNC(void, _al_list_pop_back, (_AL_LIST* list));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_insert_after, (_AL_LIST* list, _AL_LIST_ITEM* where, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_insert_after_ex, (_AL_LIST* list, _AL_LIST_ITEM* where, void* data, _AL_LIST_ITEM_DTOR dtor));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_insert_before, (_AL_LIST* list, _AL_LIST_ITEM* where, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_insert_before_ex, (_AL_LIST* list, _AL_LIST_ITEM* where, void* data, _AL_LIST_ITEM_DTOR dtor));
|
|
|
|
AL_FUNC(void, _al_list_erase, (_AL_LIST* list, _AL_LIST_ITEM* item));
|
|
|
|
AL_FUNC(void, _al_list_clear, (_AL_LIST* list));
|
|
|
|
AL_FUNC(void, _al_list_remove, (_AL_LIST* list, void* data));
|
|
|
|
AL_FUNC(bool, _al_list_is_empty, (_AL_LIST* list));
|
|
|
|
AL_FUNC(bool, _al_list_contains, (_AL_LIST* list, void* data));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_find_first, (_AL_LIST* list, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_find_last, (_AL_LIST* list, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_find_after, (_AL_LIST* list, _AL_LIST_ITEM* where, void* data));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_find_before, (_AL_LIST* list, _AL_LIST_ITEM* where, void* data));
|
|
|
|
AL_FUNC(size_t, _al_list_size, (_AL_LIST* list));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_at, (_AL_LIST* list, size_t index));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_front, (_AL_LIST* list));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_back, (_AL_LIST* list));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_next, (_AL_LIST* list, _AL_LIST_ITEM* item));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_previous, (_AL_LIST* list, _AL_LIST_ITEM* item));
|
|
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_next_circular, (_AL_LIST* list, _AL_LIST_ITEM* item));
|
|
AL_FUNC(_AL_LIST_ITEM*, _al_list_previous_circular, (_AL_LIST* list, _AL_LIST_ITEM* item));
|
|
|
|
AL_FUNC(void*, _al_list_item_data, (_AL_LIST_ITEM* item));
|
|
|
|
AL_FUNC(void, _al_list_item_set_dtor, (_AL_LIST_ITEM* item, _AL_LIST_ITEM_DTOR dtor));
|
|
AL_FUNC(_AL_LIST_ITEM_DTOR, _al_list_item_get_dtor, (_AL_LIST_ITEM* item));
|
|
|
|
AL_FUNC(void, _al_list_set_user_data, (_AL_LIST* list, void* user_data));
|
|
AL_FUNC(void*, _al_list_get_user_data, (_AL_LIST* list));
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|