Red/Black Tree Properties
The implementation of map/multimap and set/multiset STL types uses red/black trees. These properties are common to all these types.
rbtree_head_addressing_callback
Names the procedure that defines an addressing expression to obtain the head element of the map. The call structure for this callback is:
rbtree_head_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
rbtree_head_type_callback
Names the procedure that obtains the type id of the head of a map. The call structure for this callback is:
rbtree_head_type_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
rbtree_element_left_addressing_callback
Names the procedure that defines an addressing expression that specifies how to access the left sub-tree of the current element of a map. The call structure for this callback is:
rbtree_element_left_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
rbtree_element_right_addressing_callback
Names the procedure that defines an addressing expression that specifies how to access the right sub-tree of the current element of a map. The call structure for this callback is:
rbtree_element_right_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
rbtree_element_parent_addressing_callback
Names the procedure that defines an addressing expression that specifies how to access the parent of the current element of a map. The call structure for this callback is:
rbtree_element_parent_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
rbtree_element_count_addressing_callback
Names the procedure that determines the total number of elements in a map. The call structure for this callback is:
rbtree_element_count_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
This callback defines an addressing expression that specifies how to get to the member of the symbol that specifies the number of elements in the map.
If your data structure does not have this element, you still must use this callback. In this case, simply return {nop} as the addressing expression and the transformation will count the elements by following all the pointers. Unfortunately, this can be very time consuming.
rbtree_element_count_type_callback
Names the procedure that obtains the type id of the member that specifies the number of elements in the map. The call structure for this callback is:
rbtree_element_count_type_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
If your data structure does not have a count element, this property is not required.
rbtree_left_most_addressing_callback
Names the procedure that defines an addressing expression to obtain the left-most element of the map. The call structure for this callback is:
rbtree_left_most_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.