When an entity in the
ACIS model is created, altered, or deleted, a bulletin recording the data structure change is added to a bulletin board. In the modeler's default state (in which logging and auto-checkpointing are on), each call to an API function generates a new bulletin board that holds a list of
bulletins for recording modifications to the model. The bulletin board holds pointers to the first and last bulletin, and to the next bulletin board (Figure 7-4).
|
|
|
|
Figure 7-4. Bulletin Board Structure
|
|
The
BULLETIN class provides functions that read the status of the current bulletin board: retrieve the first, last, next, and previous bulletin on a particular bulletin board; retrieve the old and new entity pointer from a bulletin board; and retrieve the type of bulletin.
|
|
Note
|
An application can read, but cannot alter, the records in a bulletin.
|
|
The
ACIS programmer has control over roll back through APIs (api_note_state,
api_change_state, api_change_to_state,
api_find_named_state,
api_name_state,
api_roll_n_states, and
api_delete_ds) and macros (API_BEGIN,
API_END,
API_NOP_BEGIN,
API_NOP_END,
API_TRIAL_BEGIN, and
API_TRIAL_END).
ACIS is shipped with the default of
api_loggingTRUE. Therefore, the system automatically logs all operations. This is the primary control of whether the application will support undo/redo. When
api_logging is set to
FALSE,
ACIS discards all but the current delta state.
|