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
|