Delta States
List of: Discussion Topic
Subjects: History and Roll
Contents: Kernel

One or more bulletin boards are grouped to allow the user to move back and forth through modeler changes in larger moves than from bulletin board to bulletin board.

When the application calls api_note_state, all bulletin boards made since the previous call to api_note_state (or since logging was first turned on) are returned in a delta state as shown in Figure 7-5.


Figure 7-5. Delta State Structure

The current delta state is the delta state that is being built. This delta state is open. When api_note_state is called, the current delta state is closed and becomes the active delta state.

The active delta state is the most recently closed delta state made by calling api_note_state. Also, rolling to a particular delta state makes that state the active delta state. This state is active in the sense that it represents the state of the model directly after roll or calling api_note_state (before construction of a new delta state begins).

The delta state contains a pointer to the first in a list of singly-linked bulletin boards. Each bulletin board contains a pointer to the next bulletin board in the chain only.

The delta state holds two state identifiers that refer to the current (Prev DS) state and to the next (Next DS) state. State identifiers are internal modeler state names that are created when a state is noted. Each modeler state is expressed as a unique integer.

To permit the user to move between modeler states, the application must remember the delta states returned to it.

Note The "next" state pointer in the model is with respect toroll back, as in "the state obtained when rolling the model back one step." Likewise, the "previous" state references "the last state obtained before rolling the model back."
PDF/KERN/07HIST.PDF
HTM/DATA/KERN/KERN/07HIST/0006.HTM