libcomps  ..
 All Data Structures Files Functions Variables Typedefs
Data Structures | Typedefs | Functions
comps_list.h File Reference

A Documented file. Details. More...

#include <string.h>
#include <stdlib.h>

Go to the source code of this file.

Data Structures

struct  COMPS_ListItem
 
struct  COMPS_List
 

Typedefs

typedef void(* COMPS_ListWalkFunc )(COMPS_ListItem *, unsigned int, void *user_data)
 

Functions

COMPS_ListItemcomps_list_item_create (void *data, void *(*data_constructor)(void *data), void(*data_destructor)(void *data))
 
void comps_list_item_destroy (COMPS_ListItem *item)
 
COMPS_Listcomps_list_create ()
 
unsigned comps_list_init (COMPS_List *dl)
 
void comps_list_destroy (COMPS_List **dl)
 
void comps_list_destroy_v (void *dl)
 
void comps_list_clear (COMPS_List *dl)
 
void comps_list_insert (COMPS_List *dl, COMPS_ListItem *di, unsigned int pos)
 
char comps_list_append (COMPS_List *dl, COMPS_ListItem *di)
 
void comps_list_remove_pos (COMPS_List *dl, unsigned int pos)
 
COMPS_ListItemcomps_list_remove_pos_r (COMPS_List *dl, unsigned int pos)
 
void comps_list_remove_item (COMPS_List *dl, COMPS_ListItem *it)
 
char comps_list_remove_data (COMPS_List *dl, void *data)
 
COMPS_ListItemcomps_list_pop (COMPS_List *dl)
 
COMPS_ListItemcomps_list_shift (COMPS_List *dl)
 
COMPS_ListItemcomps_list_at (COMPS_List *dl, unsigned int pos)
 
void comps_list_walk (COMPS_List *dl, COMPS_ListWalkFunc func, void *user_data)
 

Detailed Description

A Documented file. Details.

Typedef Documentation

typedef void(* COMPS_ListWalkFunc)(COMPS_ListItem *, unsigned int, void *user_data)
comps_list_walk callback function
Parameters
COMPS_ListItemcurently processed list item
unsigned intcurently processed item position in list
user_datapassed user data from comps_list_walk

Function Documentation

char comps_list_append ( COMPS_List dl,
COMPS_ListItem di 
)

Append item to the end of list

Parameters
dlCOMPS_List object
diCOMPS_ListItem object
Returns
1 if append was successful 0 otherwise
COMPS_ListItem* comps_list_at ( COMPS_List dl,
unsigned int  pos 
)

Return list item at specified position

Parameters
dlCOMPS_List object
posspecified position
Returns
COMPS_ListItem object or NULL if position doesn't exist in list
void comps_list_clear ( COMPS_List dl)

Clear the list (destroy items) and reinit list

Parameters
dlCOMPS_List object
COMPS_List* comps_list_create ( )

COMPS_List constructor

Returns
COMPS_List object
void comps_list_destroy ( COMPS_List **  dl)

COMPS_List destructor destroy the list and set it's reference to NULL

Parameters
dlreference to COMPS_List object
unsigned comps_list_init ( COMPS_List dl)

Init the list. Set first and last item to NULL and zero list len

Parameters
@dlCOMPS_List object
Returns
1 if initialization was successful 0 otherwise
void comps_list_insert ( COMPS_List dl,
COMPS_ListItem di,
unsigned int  pos 
)

Insert list item to specified position to list. If position doesn't exists (list has'nt enough items) do nothing

Parameters
dlCOMPS_List object
diCOMPS_ListItem object
posposition to insert in
COMPS_ListItem* comps_list_item_create ( void *  data,
void *(*)(void *data)  data_constructor,
void(*)(void *data)  data_destructor 
)

COMPS_ListItem constructor

Parameters
datauseful data in item
data_constructorpointer to function creating data from existing data object
data_destructorpointer to function called when destroying/clearing list item/list
Returns
COMPS_ListItem object
void comps_list_item_destroy ( COMPS_ListItem item)

COMPS_ListItem destructor (destroy item and its data)

Parameters
itemCOMPS_ListItem object
COMPS_ListItem* comps_list_pop ( COMPS_List dl)

Remove and return last item of list(do not destroying it)

Parameters
dlCOMPS_List object
Returns
COMPS_ListItem object or NULL if list is empty
char comps_list_remove_data ( COMPS_List dl,
void *  data 
)

Remove first occurence of data in list

Parameters
dlCOMPS_List object
dataremoved data
Returns
1 if removing was successfull 0 otherwise
void comps_list_remove_item ( COMPS_List dl,
COMPS_ListItem it 
)

Remove specified list item form list(Do not destroying it)

Parameters
dlCOMPS_List object
itCOMPS_ListItem object
void comps_list_remove_pos ( COMPS_List dl,
unsigned int  pos 
)

Remove and destroy item at specified pos

Parameters
dlCOMPS_List object
positem position in list
COMPS_ListItem* comps_list_shift ( COMPS_List dl)

Remove and return first item of list(do not destroing it)

Parameters
dlCOMPS_List object
Returns
COMPS_ListItem object or NULL if list is empty
void comps_list_walk ( COMPS_List dl,
COMPS_ListWalkFunc  func,
void *  user_data 
)

Apply func to all items in list

Parameters
dlCOMPS_List object
funcpointer to user specified function
user_datauser data passed to func function