PageRenderTime 5ms CodeModel.GetById 1ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/src/middleware/enet/list.h

https://bitbucket.org/vivkin/gam3b00bs/
C++ Header | 43 lines | 26 code | 13 blank | 4 comment | 1 complexity | 2de3ba8e11471a1f3fdfdd77fdf46cbd MD5 | raw file
 1/** 
 2 @file  list.h
 3 @brief ENet list management 
 4*/
 5#ifndef __ENET_LIST_H__
 6#define __ENET_LIST_H__
 7
 8#include <stdlib.h>
 9
10typedef struct _ENetListNode
11{
12   struct _ENetListNode * next;
13   struct _ENetListNode * previous;
14} ENetListNode;
15
16typedef ENetListNode * ENetListIterator;
17
18typedef struct _ENetList
19{
20   ENetListNode sentinel;
21} ENetList;
22
23extern void enet_list_clear (ENetList *);
24
25extern ENetListIterator enet_list_insert (ENetListIterator, void *);
26extern void * enet_list_remove (ENetListIterator);
27extern ENetListIterator enet_list_move (ENetListIterator, void *, void *);
28
29extern size_t enet_list_size (ENetList *);
30
31#define enet_list_begin(list) ((list) -> sentinel.next)
32#define enet_list_end(list) (& (list) -> sentinel)
33
34#define enet_list_empty(list) (enet_list_begin (list) == enet_list_end (list))
35
36#define enet_list_next(iterator) ((iterator) -> next)
37#define enet_list_previous(iterator) ((iterator) -> previous)
38
39#define enet_list_front(list) ((void *) (list) -> sentinel.next)
40#define enet_list_back(list) ((void *) (list) -> sentinel.previous)
41
42#endif /* __ENET_LIST_H__ */
43