History Management Functions without Part Manager
List of: Discussion Topic
Subjects: History and Roll
Contents: Kernel

The Kernel has a set of APIs allowing advanced part management independent of the Part Management Component. For example, it is possible to use PART only as a port of entry to the Graphic Interaction Component. This permits roll back without using the Part Management Component.

Since Part Management uses the Kernel Component APIs, any use of the roll portions of the Part Management could interfere with tasks performed by the Kernel APIs. This includes indirect calls such as StartEntityCreation, EndEntityCreation, and the modification cousins. Searching for "api_pm_" should identify calls to avoid. Even innocuous APIs like api_pm_save_part and api_pm_load_part could cause problems, because they close delta states and could create new ones.

The following history-related APIs from the Kernel do not require anything from the Part Management Component.

The foundation of all history management:

api_note_state Note delta states

api_delete_ds Delete a delta state

api_change_state Roll back and forward to a given state

api_bb_begin Used in the API_BEGIN macro

api_bb_end Used in the API_END macro

Advanced navigation in existing streams:

api_change_to_state Roll to a given delta state

api_find_named_state Recall a delta state with a given name

api_name_state Name a delta state

api_roll_n_states Roll back and forward

Support for multiple history streams:

The api_add_state and api_remove_state are relatively easy to use. After noting a state, remove it from the default history stream and add it to the stream it should belong to. api_distribute_state_to_streams is much more difficult to use and incorporates the StreamFinder class.

api_add_state Add states between streams

api_remove_state Move states between streams

api_distribute_state_to_streams After noting a state, distribute its bulletins to all the relevant history streams
PDF/KERN/07HIST.PDF
HTM/DATA/KERN/KERN/07HIST/0012.HTM