cp_multimap_callback_postorder(3) - Linux man page

Name

cp_multimap_callback, cp_multimap_callback_by_index, cp_multimap_callback_preorder, cp_multimap_callback_postorder - invoke a callback on items in a multi-map

Synopsis

#include <cprops/multimap.h>
int cp_multimap_callback(cp_multimap *
tree,

cp_callback_fn callback, void *prm);
int cp_multimap_callback_by_index(cp_multimap *
tree,

cp_index *index, cp_callback_fn callback, void *prm);
int cp_multimap_callback_preorder(cp_multimap *
tree, cp_callback_fn callback, void *prm);
int cp_multimap_callback_postorder(cp_multimap *
tree,

cp_callback_fn callback, void *prm);

Description

cp_multimap_callback* perform a scan of the map, invoking the given callback function with each entry and the given parameter. The callback iteration is terminated if the callback function returns non-zero. The prototype for the callback function is as follows:

int callback_fn(void *entry, void *client_prm);
The callback function is invoked iteratively with entry pointing at the current tree node. This is a cp_index_map_node object. The entry member points to the actual entry, on unique indices, or to a cp_vector on non-unique indices. See cp_multimap(3) for an example of a callback function implementation.

cp_mutlimap_callback performs an in-order iteration. cp_multimap_callback_preorder and cp_multimap_callback_postorder perform a pre- and postorder iteration respectively. cp_multimap_callback_by_index allows specifying a secondary index to perform an in-order iterator with. The index parameter must be a cp_index created by calling cp_multimap_create_index on the map being searched.

Return Value

0 if the iteration completes, or the non-zero value returned by the callback function terminating the iteration.

See Also

cp_multimap(3), cp_multimap_create_index(3), cp_vector(3)