Bulletins
List of: Discussion Topic
Subjects: History and Roll
Contents: Kernel

The bulletin is the fundamental structure in the history stream. When an entity is created, deleted, or changed, a bulletin recording the action is added to the current bulletin board. A bulletin contains a pointer to the old entity and a pointer to the new entity. Bulletins contain sufficient data structure information to supply precise information about the change to an application program.

When an operation performs major changes to a model, each entity in the model that is changed has its own bulletin. These bulletins become part of a linked list whose head is the bulletin board. Bulletin boards are part of another linked list, called the delta state. Roll back and roll forward work on delta states, which use bulletin boards and the entity level bulletins.

Bulletins are generated for data entities in ACIS, and for extensions made by application developers. On a lower level, support for roll back can be achieved using ENTITY class methods.


Figure 7-1. Create New Entity

When ACIS changes a model entity, it checks to see if the record is logged. If the record is not logged, ACIS copies the entity to a new record obtained from free store and changes the original record to reflect the change. ACIS then generates a bulletin that holds pointers to both the copied and changed versions of the record (Figure 7-2).


Figure 7-2. Change Entity

When ACIS deletes an entity, it generates a bulletin that holds a pointer to the old version of the record (Figure 7-3). Entities are not returned to free store, and the space is not available for reuse. To return the record to free store, delete the bulletin board and its bulletins using api_delete_ds or api_prune_history.


Figure 7-3. Delete Entity
PDF/KERN/07HIST.PDF
HTM/DATA/KERN/KERN/07HIST/0001.HTM