List

List — Simple list class.

Synopsis




typedef     librdf_list;
librdf_list* librdf_new_list                (librdf_world *world);
void        librdf_free_list                (librdf_list *list);
void        librdf_list_clear               (librdf_list *list);
int         librdf_list_add                 (librdf_list *list,
                                             void *data);
int         librdf_list_unshift             (librdf_list *list,
                                             void *data);
void*       librdf_list_shift               (librdf_list *list);
void*       librdf_list_pop                 (librdf_list *list);
void*       librdf_list_remove              (librdf_list *list,
                                             void *data);
int         librdf_list_contains            (librdf_list *list,
                                             void *data);
int         librdf_list_size                (librdf_list *list);
void        librdf_list_set_equals          (librdf_list *list,
                                             int (*equals) (void* data1, void *data2));
librdf_iterator* librdf_list_get_iterator   (librdf_list *list);
void        librdf_list_foreach             (librdf_list *list,
                                             void (*fn) (void *, void *),
                                             void *user_data);

Description

A simple list class used internally.

Details

librdf_list

typedef struct librdf_list_s librdf_list;

Redland list class.


librdf_new_list ()

librdf_list* librdf_new_list                (librdf_world *world);

Constructor - create a new librdf_list.

world : redland world object
Returns : a new librdf_list or NULL on failure

librdf_free_list ()

void        librdf_free_list                (librdf_list *list);

Destructor - destroy a librdf_list object.

list : librdf_list object

librdf_list_clear ()

void        librdf_list_clear               (librdf_list *list);

Empty an librdf_list.

list : librdf_list object

librdf_list_add ()

int         librdf_list_add                 (librdf_list *list,
                                             void *data);

Add a data item to the end of a librdf_list.

Equivalent to the list 'push' notion, thus if librdf_list_pop() is called after this, it will return the value added here.

list : librdf_list object
data : the data value
Returns : non 0 on failure

librdf_list_unshift ()

int         librdf_list_unshift             (librdf_list *list,
                                             void *data);

Add a data item to the start of a librdf_list.

if librdf_list_shift() is called after this, it will return the value added here.

list : librdf_list object
data : the data value
Returns : non 0 on failure

librdf_list_shift ()

void*       librdf_list_shift               (librdf_list *list);

Remove and return the data at the start of the list.

list : librdf_list object
Returns : the data object or NULL if the list is empty

librdf_list_pop ()

void*       librdf_list_pop                 (librdf_list *list);

Remove and return the data at the end of the list.

list : librdf_list object
Returns : the data object or NULL if the list is empty

librdf_list_remove ()

void*       librdf_list_remove              (librdf_list *list,
                                             void *data);

Remove a data item from an librdf_list.

The search is done using the 'equals' function which may be set by librdf_list_set_equals() or by straight comparison of pointers if not set.

list : librdf_list object
data : the data item
Returns : the data stored or NULL on failure (not found or list empty)

librdf_list_contains ()

int         librdf_list_contains            (librdf_list *list,
                                             void *data);

Check for presence of data item in list.

The search is done using the 'equals' function which may be set by librdf_list_set_equals() or by straight comparison of pointers if not set.

list : librdf_list object
data : the data value
Returns : non 0 if item was found

librdf_list_size ()

int         librdf_list_size                (librdf_list *list);

Return the length of the list.

list : librdf_list object
Returns : length of the list

librdf_list_set_equals ()

void        librdf_list_set_equals          (librdf_list *list,
                                             int (*equals) (void* data1, void *data2));

Set the equals function for the list.

The function given is used when comparing items in the list during searches such as those done in librdf_list_remove() or librdf_list_contains().

list : librdf_list object
equals : the equals function

librdf_list_get_iterator ()

librdf_iterator* librdf_list_get_iterator   (librdf_list *list);

Get an iterator for the list.

list : librdf_list object
Returns : a new librdf_iterator object or NULL on failure

librdf_list_foreach ()

void        librdf_list_foreach             (librdf_list *list,
                                             void (*fn) (void *, void *),
                                             void *user_data);

Apply a function for each data item in a librdf_list.

list : librdf_list object
fn : pointer to function to apply that takes data pointer and user data parameters
user_data : user data for applied function