Lines Matching full:map

38  *	Declaration of quick map, a binary tree where the caller always provides
56 /****h* Component Library/Quick Map
58 * Quick Map
61 * Quick map implements a binary tree that stores user provided cl_map_item_t
62 * structures. Each item stored in a quick map has a unique 64-bit key
63 * (duplicates are not allowed). Quick map provides the ability to
66 * Quick map does not allocate any memory, and can therefore not fail
67 * any operations due to insufficient memory. Quick map can thus be useful
70 * Quick map is not thread safe, and users must provide serialization when
71 * adding and removing items from the map.
73 * The quick map functions operate on a cl_qmap_t structure which should be
103 /****i* Component Library: Quick Map/cl_map_color_t
109 * nodes in a map.
120 * The node in the map is red.
123 * The node in the map is black.
126 * Quick Map, cl_map_item_t
129 /****s* Component Library: Quick Map/cl_map_item_t
157 * efficient map traversal.
160 * Pointer to the map item that is a child to the left of the node.
163 * Pointer to the map item that is a child to the right of the node.
166 * Pointer to the map item that is the parent of the node.
169 * Pointer to the map's NIL item, used as a terminator for leaves.
173 * Indicates whether a node is red or black in the map.
176 * Value that uniquely represents a node in a map. This value is
182 * they are crititcal to the proper operation of the map in which they
186 * map, the map implementation guarantees that the map item can be safely
189 * the need to embed a map item, a list item, and a pool item in objects
190 * that need to be stored in a quick list, a quick pool, and a quick map.
193 * Quick Map, cl_qmap_insert, cl_qmap_key, cl_pool_item_t, cl_list_item_t
196 /****s* Component Library: Quick Map/cl_map_obj_t
215 * Map item used by internally by the map to store an object.
224 * they are crititcal to the proper operation of the map in which they
228 * stored in a map item, respectively.
231 * Quick Map, cl_qmap_set_obj, cl_qmap_obj, cl_map_item_t
234 /****s* Component Library: Quick Map/cl_qmap_t
239 * Quick map structure.
255 * Map item that serves as root of the map. The root is set up to
260 * Map item that serves as terminator for all leaves, as well as
261 * providing the list item used as quick list for storing map items
265 * State of the map, used to verify that operations are permitted.
268 * Number of items in the map.
271 * Quick Map
274 /****d* Component Library: Quick Map/cl_pfn_qmap_apply_t
280 * functions used to iterate items in a quick map.
303 * Quick Map, cl_qmap_apply_func
306 /****f* Component Library: Quick Map/cl_qmap_count
312 * in a quick map.
329 * Returns the number of items stored in the map.
332 * Quick Map, cl_is_qmap_empty
335 /****f* Component Library: Quick Map/cl_is_qmap_empty
340 * The cl_is_qmap_empty function returns whether a quick map is empty.
358 * TRUE if the quick map is empty.
363 * Quick Map, cl_qmap_count, cl_qmap_remove_all
366 /****f* Component Library: Quick Map/cl_qmap_set_obj
371 * The cl_qmap_set_obj function sets the object stored in a map object.
386 * [in] Pointer to a map object stucture whose object pointer
396 * Quick Map, cl_qmap_obj
399 /****f* Component Library: Quick Map/cl_qmap_obj
404 * The cl_qmap_obj function returns the object stored in a map object.
417 * [in] Pointer to a map object stucture whose object pointer to return.
420 * Returns the value of the object pointer stored in the map object.
423 * Quick Map, cl_qmap_set_obj
426 /****f* Component Library: Quick Map/cl_qmap_key
431 * The cl_qmap_key function retrieves the key value of a map item.
444 * [in] Pointer to a map item whose key value to return.
447 * Returns the 64-bit key value for the specified map item.
453 * Quick Map, cl_qmap_insert
456 /****f* Component Library: Quick Map/cl_qmap_init
461 * The cl_qmap_init function initialized a quick map for use.
475 * Allows calling quick map manipulation functions.
478 * Quick Map, cl_qmap_insert, cl_qmap_remove
481 /****f* Component Library: Quick Map/cl_qmap_end
486 * The cl_qmap_end function returns the end of a quick map.
494 /* Nil is the end of the map. */ in cl_qmap_end()
504 * Pointer to the end of the map.
507 * cl_qmap_end is useful for determining the validity of map items returned
509 * map item pointer returned by any of these functions compares to the end,
510 * the end of the map was encoutered.
512 * the map is empty.
515 * Quick Map, cl_qmap_head, cl_qmap_tail, cl_qmap_next, cl_qmap_prev
518 /****f* Component Library: Quick Map/cl_qmap_head
523 * The cl_qmap_head function returns the map item with the lowest key
524 * value stored in a quick map.
542 * Pointer to the map item with the lowest key in the quick map.
544 * Pointer to the map end if the quick map was empty.
547 * cl_qmap_head does not remove the item from the map.
550 * Quick Map, cl_qmap_tail, cl_qmap_next, cl_qmap_prev, cl_qmap_end,
554 /****f* Component Library: Quick Map/cl_qmap_tail
559 * The cl_qmap_tail function returns the map item with the highest key
560 * value stored in a quick map.
578 * Pointer to the map item with the highest key in the quick map.
580 * Pointer to the map end if the quick map was empty.
583 * cl_qmap_end does not remove the item from the map.
586 * Quick Map, cl_qmap_head, cl_qmap_next, cl_qmap_prev, cl_qmap_end,
590 /****f* Component Library: Quick Map/cl_qmap_next
595 * The cl_qmap_next function returns the map item with the next higher
596 * key value than a specified map item.
609 * [in] Pointer to a map item whose successor to return.
612 * Pointer to the map item with the next higher key value in a quick map.
614 * Pointer to the map end if the specified item was the last item in
615 * the quick map.
618 * Quick Map, cl_qmap_head, cl_qmap_tail, cl_qmap_prev, cl_qmap_end,
622 /****f* Component Library: Quick Map/cl_qmap_prev
627 * The cl_qmap_prev function returns the map item with the next lower
628 * key value than a precified map item.
641 * [in] Pointer to a map item whose predecessor to return.
644 * Pointer to the map item with the next lower key value in a quick map.
646 * Pointer to the map end if the specifid item was the first item in
647 * the quick map.
650 * Quick Map, cl_qmap_head, cl_qmap_tail, cl_qmap_next, cl_qmap_end,
654 /****f* Component Library: Quick Map/cl_qmap_insert
659 * The cl_qmap_insert function inserts a map item into a quick map.
660 * NOTE: Only if such a key does not alerady exist in the map !!!!
676 * [in] Pointer to a cl_map_item_t stucture to insert into the quick map.
679 * Pointer to the item in the map with the specified key. If insertion
681 * specified key already exists in the map, the pointer to that item is
685 * Insertion operations may cause the quick map to rebalance.
688 * Quick Map, cl_qmap_remove, cl_map_item_t
691 /****f* Component Library: Quick Map/cl_qmap_get
696 * The cl_qmap_get function returns the map item associated with a key.
709 * [in] Key value used to search for the desired map item.
712 * Pointer to the map item with the desired key value.
714 * Pointer to the map end if there was no item with the desired key value
715 * stored in the quick map.
718 * cl_qmap_get does not remove the item from the quick map.
721 * Quick Map, cl_qmap_get_next, cl_qmap_remove
724 /****f* Component Library: Quick Map/cl_qmap_get_next
729 * The cl_qmap_get_next function returns the first map item associated with a
743 * [in] Key value used to search for the desired map item.
746 * Pointer to the first map item with a key > the desired key value.
748 * Pointer to the map end if there was no item with a key > the desired key
749 * value stored in the quick map.
752 * cl_qmap_get_next does not remove the item from the quick map.
755 * Quick Map, cl_qmap_get, cl_qmap_remove
758 /****f* Component Library: Quick Map/cl_qmap_remove_item
763 * The cl_qmap_remove_item function removes the specified map item
764 * from a quick map.
774 * [in] Pointer to a map item to remove from its quick map.
780 * is in the specified map.
783 * Removes the map item pointed to by p_item from its quick map.
786 * Quick Map, cl_qmap_remove, cl_qmap_remove_all, cl_qmap_insert
789 /****f* Component Library: Quick Map/cl_qmap_remove
794 * The cl_qmap_remove function removes the map item with the specified key
795 * from a quick map.
808 * [in] Key value used to search for the map item to remove.
811 * Pointer to the removed map item if it was found.
813 * Pointer to the map end if no item with the specified key exists in the
814 * quick map.
817 * Quick Map, cl_qmap_remove_item, cl_qmap_remove_all, cl_qmap_insert
820 /****f* Component Library: Quick Map/cl_qmap_remove_all
825 * The cl_qmap_remove_all function removes all items in a quick map,
850 * Quick Map, cl_qmap_remove, cl_qmap_remove_item
853 /****f* Component Library: Quick Map/cl_qmap_merge
858 * The cl_qmap_merge function moves all items from one map to another,
881 * Upon return from cl_qmap_merge, the quick map referenced by p_src_map
885 * Quick Map, cl_qmap_delta
888 /****f* Component Library: Quick Map/cl_qmap_delta
933 * Quick Map, cl_qmap_merge
936 /****f* Component Library: Quick Map/cl_qmap_apply_func
942 * for every item stored in a quick map.
956 * [in] Function invoked for every item in the quick map.
967 * The function provided must not perform any map operations, as these
968 * would corrupt the quick map.
971 * Quick Map, cl_pfn_qmap_apply_t