#include <cybergarage/typedef.h>
Data Structures | |
struct | _CgList |
The generic list interface in CyberLinkC. More... | |
Defines | |
#define | cg_list_gets(headList) cg_list_next(headList) |
Typedefs | |
typedef void(*) | CG_LIST_DESTRUCTORFUNC (void *) |
typedef _CgList | CgList |
The generic list interface in CyberLinkC. | |
Functions | |
void | cg_list_header_init (CgList *list) |
void | cg_list_node_init (CgList *list) |
void | cg_list_insert (CgList *prevList, CgList *list) |
void | cg_list_add (CgList *headList, CgList *list) |
void | cg_list_remove (CgList *list) |
int | cg_list_size (CgList *headList) |
CgList * | cg_list_get (CgList *headList, int index) |
CgList * | cg_list_prev_circular (CgList *list) |
CgList * | cg_list_prev (CgList *list) |
CgList * | cg_list_next_circular (CgList *list) |
CgList * | cg_list_next (CgList *list) |
void | cg_list_clear (CgList *headList, CG_LIST_DESTRUCTORFUNC destructorFunc) |
#define cg_list_gets | ( | headList | ) | cg_list_next(headList) |
Get the first actual item from a list for iteration
headList | List header |
typedef void(*) CG_LIST_DESTRUCTORFUNC(void *) |
Prototype for individual list node destructor functions
The generic list interface in CyberLinkC.
Each struct in CyberLinkC, that is designed to be a part of a list, must have these elements in their definition before the actual struct definition. The struct pointers are then cast to CgList* and operated with cg_list_* functions.
There might be a bug in this function.
void cg_list_clear | ( | CgList * | headList, | |
CG_LIST_DESTRUCTORFUNC | destructorFunc | |||
) |
Clear the list and delete all of its contents with CG_LIST_DESTRUCTORFUNC
headList | List header | |
destructorFunc | Function pointer that clears the contents of individual nodes |
Get an item from the list by the item's index
headList | List header | |
index | The index of the item to get |
void cg_list_header_init | ( | CgList * | list | ) |
Initialize a list node to act as the first node
list | List node |
Insert a list node or a complete list structure after the given node
prevList | Insert after this node | |
list | List node or list structure to insert |
Get the next node. Returns NULL if end has been reached.
list | Current node |
Get the next node. Wrap around if the end has been reached.
list | Current node |
void cg_list_node_init | ( | CgList * | list | ) |
Initialize a list node to act as a regular node, part of a list.
list | List node |
Get the previous node. Returns NULL if beginning has been reached
list | Current node |
Get the previous node. Wrap around if the beginning has been reached.
list | Current node |
void cg_list_remove | ( | CgList * | list | ) |
Remove a node from a list. Does not free any memory, but only removes the next and previous link associations regarding the given node.
list | List node to remove |
int cg_list_size | ( | CgList * | headList | ) |
Get the number of nodes in the current list structure. Counts forwards from the given node, so if you want to get the complete size, give a header node as the parameter.
headList | List header |