api_make_root_state
List of: Functions
Subjects: History and Roll
Contents: Kernel

Action: Sets the state of the root.

Prototype: outcome api_make_root_state (


DELTA_STATE* ds // state to make the root




// of its stream


);

Includes: #include "kernel/acis.hxx"

#include "kernel/kernapi/api/api.hxx"

#include "kernel/kernapi/api/kernapi.hxx"

#include "kernel/kerndata/bulletin/bulletin.hxx"

Description: For any given ENTITY, the history of that ENTITY must be maintained on a single HISTORY_STREAM. api_distribute_state_to_streams implements a consistency check to make sure this is the case. When processing a change or delete BULLETIN, it first determines which HISTORY_STREAM should get the BULLETIN. It then checks to see that the given stream contains a create BULLETIN for the ENTITY. This depends on cooperation from api_prune_history. api_prune_history may delete a number of DELTA_STATES, but it retains the create BULLETINs for any active ENTITYs in the root DELTA_STATE.


In addition to holding create BULLETINs from pruned DELTA_STATEs, the root DELTA_STATE cannot be rolled over by api_roll_n_states, api_change_to_state, or other high level roll APIs. (The low level api_change_state can roll over the root state, but we recommend against it.) This makes it useful for holding BULLETINs created during application initializations. For example, one does not typically want to be able to roll over the create BULLETINs from loading a SAT file into a new part.


api_make_root_state prunes away all previous history, saving the create BULLETINs at the beginning of the given state, and makes the state the root state.

Errors: The pointer to ds is NULL.

Library: kernel

Filename: kern/kernel/kernapi/api/kernapi.hxx

Effect: Read-only
PDF/KERN/16FNA.PDF
HTM/DATA/KERN/KERN/16FNA/0096.HTM