Main Page | Modules | Data Structures | File List | Data Fields | Related Pages

Double-linked list


Data Structures

struct  di_list
 Double-linked list. More...

struct  di_list_node
 Node of a double-linked list. More...


Functions

di_listdi_list_alloc (void)
void di_list_destroy (di_list *list, di_destroy_notify destroy_func) __attribute__((nonnull(1)))
void di_list_free (di_list *list)
void di_list_append (di_list *list, void *data) __attribute__((nonnull(1)))
void di_list_append_chunk (di_list *list, void *data, di_mem_chunk *mem_chunk) __attribute__((nonnull(1
void di_list_prepend (di_list *list, void *data) __attribute__((nonnull(1)))
void di_list_prepend_chunk (di_list *list, void *data, di_mem_chunk *mem_chunk) __attribute__((nonnull(1

Function Documentation

di_list* di_list_alloc void   ) 
 

Allocate a double-linked list

Returns:
a di_list

00030 { 00031 di_list *list; 00032 00033 list = di_new0 (di_list, 1); 00034 00035 return list; 00036 }

void di_list_append di_list list,
void *  data
 

Append to a double-linked list

Warning:
don't mix with di_list_append_chunk
Parameters:
list a di_list
data the data

00073 { 00074 return internal_di_list_append (list, data, di_new (di_list_node, 1)); 00075 }

void di_list_append_chunk di_list list,
void *  data,
di_mem_chunk mem_chunk
 

Append to a double-linked list

Warning:
don't mix with di_list_append_chunk
Parameters:
list a di_list
data the data

void di_list_destroy di_list list,
di_destroy_notify  destroy_func
 

Destroy the contents of a double-linked list

Warning:
never use this function with a list which makes use of the chunk allocator
Parameters:
list a di_list

00039 { 00040 di_list_node *node, *temp; 00041 00042 node = list->head; 00043 while (node) 00044 { 00045 temp = node; 00046 node = node->next; 00047 if (destroy_func) 00048 destroy_func (temp->data); 00049 di_free (temp); 00050 } 00051 }

void di_list_free di_list list  ) 
 

Free a double-linked list

Parameters:
list a di_list

00054 { 00055 di_free (list); 00056 }

void di_list_prepend di_list list,
void *  data
 

Prepend to a double-linked list

Warning:
don't mix with di_list_prepend_chunk
Parameters:
list a di_list
data the data

00097 { 00098 return internal_di_list_prepend (list, data, di_new (di_list_node, 1)); 00099 }

void di_list_prepend_chunk di_list list,
void *  data,
di_mem_chunk mem_chunk
 

Prepend to a double-linked list

Warning:
don't mix with di_list_prepend
Parameters:
list a di_list
data the data
mem_chunk a di_mem_chunk for allocation of new nodes
Precondition:
the di_mem_chunk must return chunks with at least the size of di_list_node


Generated on Tue Jun 15 18:27:10 2004 for libdebian-installer by doxygen 1.3.7