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 topologies before
and after the modelling operation.


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 topologies 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 topology within the in the
                    original_topols array.


n_product_topols  The length of the product_topols array.


product_topols    The topologies which are a resultant of 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 product_topols will be empty.

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

 o original_topols contains some or all of the deleted topologies.


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 topology copied, or the topology
   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.