1 /** 2 @file list.c 3 @brief ENet linked list functions 4 */ 5 #define ENET_BUILDING_LIB 1 6 #include "enet/list.h" 7 8 /** 9 @defgroup list ENet linked list utility functions 10 @ingroup private 11 @{ 12 */ 13 void enet_list_clear(ENetList * list)14enet_list_clear (ENetList * list) 15 { 16 list -> sentinel.next = & list -> sentinel; 17 list -> sentinel.previous = & list -> sentinel; 18 } 19 20 ENetListIterator enet_list_insert(ENetListIterator position,void * data)21enet_list_insert (ENetListIterator position, void * data) 22 { 23 ENetListIterator result = (ENetListIterator) data; 24 25 result -> previous = position -> previous; 26 result -> next = position; 27 28 result -> previous -> next = result; 29 position -> previous = result; 30 31 return result; 32 } 33 34 void * enet_list_remove(ENetListIterator position)35enet_list_remove (ENetListIterator position) 36 { 37 position -> previous -> next = position -> next; 38 position -> next -> previous = position -> previous; 39 40 return position; 41 } 42 43 size_t enet_list_size(ENetList * list)44enet_list_size (ENetList * list) 45 { 46 size_t size = 0; 47 ENetListIterator position; 48 49 for (position = enet_list_begin (list); 50 position != enet_list_end (list); 51 position = enet_list_next (position)) 52 ++ size; 53 54 return size; 55 } 56 57 /** @} */ 58