PK_TOPOL_track_record_r_t   

struct PK_TOPOL_track_record_r_s
    {
    PK_TOPOL_track_t           track;
    int                        n_original_topols;
    int                       *original_topols;
    PK_CLASS_t                *original_classes;
    int                        n_product_topols;
    PK_TOPOL_t                *product_topols;
    };
typedef struct PK_TOPOL_track_record_r_s PK_TOPOL_track_record_r_t;



This data structure encapsulates the association between entities before
and after the modelling operation.

Used in:

PK_TOPOL_track_r_t


Description of fields:



'track'             This value of this field indicates what type of tracking
                    information the record represents. Permitted values
                    are :

                      PK_TOPOL_track_delete_c
                      PK_TOPOL_track_merge_c
                      PK_TOPOL_track_create_c
                      PK_TOPOL_track_split_c
                      PK_TOPOL_track_derive_c



'n_original_topols' The length of the 'original_topols' and 'orig_classes'
                    arrays.


'original_topols'   The participating entities in the modelling operation.
                    The class of the entity is held in the corresponding
                    element of 'original_classes' array.


'original_classes'  The class of each participating entity within the
                    'original_topols' array.


'n_product_topols'  The length of the 'product_topols' array.


'product_topols'    The topologies resulting from the modelling operation.


The Contents of the Structure

The expectations on the contents of the structure for each track type :


PK_TOPOL_track_delete_c

 o 'original_topols' contains some or all of the deleted topologies.

 o The class of the deleted entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_topols' will be empty.


PK_TOPOL_track_merge_c

 o 'original_topols' contains the list of topologies merged.

 o The class of the merged entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_topols' holds the list of surviving topology.



PK_TOPOL_track_create_c

 o 'original_topols' holds the list of entities copied, or the entity
   from which the existence of the products was inferred.

 o The class of the original entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_topols' holds the newly created topology.


PK_TOPOL_track_split_c

 o 'original_topols' holds the list of topology that was split.

 o The class of the original entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_topols' holds the list of topology resulting from the
   splitting operation.


PK_TOPOL_track_derive_c

 o 'original_topols' holds the list of topology from which resulted in the
   product topology, including the original topology from which any portion
   was created and any unaltered original topology with which that was merged.

 o The class of the original entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_topols' holds the list of topology created by combination of
   merging and splitting.