mirror of
https://github.com/lsalzman/enet
synced 2024-11-21 14:29:05 -07:00
57 lines
1.1 KiB
C
57 lines
1.1 KiB
C
/**
|
|
@file list.c
|
|
@brief ENet linked list functions
|
|
*/
|
|
#define ENET_BUILDING_LIB 1
|
|
#include "enet/list.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;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
/** @} */
|