| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /**
- @file list.c
- @brief ENet linked list functions
- */
- #define ENET_BUILDING_LIB 1
- #include "enet/enet.h"
- /**
- @defgroup list ENet linked list utility functions
- @ingroup private
- @{
- */
- void enet_list_clear(ENetList * list)
- {
- list->sentinel.next = &list->sentinel;
- list->sentinel.previous = &list->sentinel;
- }
- ENetListIterator enet_list_insert(ENetListIterator position, void * data)
- {
- ENetListIterator result = (ENetListIterator) data;
- result->previous = position->previous;
- result->next = position;
- result->previous->next = result;
- position->previous = result;
- return result;
- }
- void *enet_list_remove(ENetListIterator position)
- {
- position->previous->next = position->next;
- position->next->previous = position->previous;
- return position;
- }
- ENetListIterator enet_list_move(ENetListIterator position, void * dataFirst, void * dataLast)
- {
- ENetListIterator first = (ENetListIterator) dataFirst, last = (ENetListIterator) dataLast;
- first->previous->next = last->next;
- last->next->previous = first->previous;
- first->previous = position->previous;
- last->next = position;
- first->previous->next = first;
- position->previous = last;
- return first;
- }
- size_t enet_list_size(ENetList * list)
- {
- size_t size = 0;
- ENetListIterator position;
- for (position = enet_list_begin (list); position != enet_list_end (list); position =
- enet_list_next (position))
- ++size;
- return size;
- }
- /** @} */
|