Req:Initialization

Initialization - Model initialization

R1

 * Creation order : Prior to all objects shall be initialized in the order in which they are created.

R2

 * Deferred initialization : Prior to objects shall be allowed to defer initialization to the first pre-commit or presync, sync, or postsync call, as appropriate.
 * As of, objects shall be allowed to request to defer initialization to another initialization pass by returning the value 2 from the class init function. This feature shall be enabled by default and the user shall be allowed to suppress it using a global variable.

R3

 * Rank initialization : As of the user shall be able to specify top-down or bottom-up rank ordered initialization using a global variable.

R4

 * Object locking : As of during the init call to an object, the object flag OF_LOCKED shall be set.

R5

 * Deferred flag : As of when init indicates that deferred initialization is desired, the OF_DEFERRED flag shall be set.

R6

 * Automatic deferral : As of automatically deferral shall be enabled when by controlling a global variable and when enabled, objects shall be automatically deferred when either the parent object or objects which are referred to by object properties are not yet initialized.

R7

 * Automatic deferral override : As of modelers shall be permitted to flag a class to disable automatic dependency checking using the PC_NODEFERRAL flag and identify specific properties of class to be included or excluded from dependency checking using the PF_DEFER.

R8

 * Initialization time : As of the clock shall be set to the start time prior to object initialization.

R9

 * Initialization state :As of an object flag shall be set to indicate that an object has been successfully initialized using the OF_INIT flag.