 |
PK_MTOPOL_map_record_r_t |
|
struct PK_MTOPOL_map_record_r_s
{
PK_MTOPOL_map_t map;
int n_original_mtopols;
PK_MTOPOL_t *original_mtopols;
PK_CLASS_t *original_classes;
int n_product_mtopols;
PK_MTOPOL_t *product_mtopols;
};
typedef struct PK_MTOPOL_map_record_r_s PK_MTOPOL_map_record_r_t;
This data structure encapsulates the association between mtopols before
and after the modelling operation.
Used in:
PK_MTOPOL_map_r_t
Description of fields:
'map' The value of this field indicates what type of mapping
information the record represents. Permitted values
are :
PK_MTOPOL_map_copy_c
PK_MTOPOL_map_split_c
PK_MTOPOL_map_merge_c
PK_MTOPOL_map_derive_c
'n_original_mtopols' The length of the 'original_mtopols' and
'original_mtopol_classes' arrays.
'original_mtopols' These were the mtopols which participated in the
modelling operation. These mtopols may no longer exist.
The class that each mtopol was before the operation is
held in the corresponding element of the
'original_classes' array.
'original_classes' The class of each participating mtopol within the
'original_mtopols' array.
'n_product_mtopols' The length of the 'product_mtopols' array.
'product_mtopols' The mtopols resulting from the modelling operation.
The expectations on the contents of the structure for each map type :
PK_MTOPOL_map_copy_c
o 'original_mtopols' holds the list of mtopols that have been copied to create
the products. These mtopols exist.
o The class of the original mtopols can be determined from the
corresponding entry in the 'original_classes' array.
o 'product_mtopols' holds the newly created mtopols.
o The entries in the 'original_mtopols' and 'product_mtopols' arrays are in
one to one correspondence. The nth item in 'product_mtopols' is derived from
the nth item in 'original_mtopols'.
PK_MTOPOL_map_split_c
o 'original_mtopols' holds a single mtopol that has been split to create the
products. These mtopols may not exist.
o The class of the original mtopols can be determined from the
corresponding entry in the 'original_classes' array.
o 'product_mtopols' holds the newly created mtopols.
o All entries in 'product_mtopols' have been split from the entry in
'original_mtopols'.
PK_MTOPOL_map_merge_c
o 'original_mtopols' holds the list of mtopols that have been merged to create
the single product mtopol. These mtopols may not exist.
o The class of the original mtopols can be determined from the
corresponding entry in the 'original_classes' array.
o 'product_mtopols' holds the single mtopol created by merging the mtopols in
'original_mtopols'.
PK_MTOPOL_map_derive_c
o 'original_mtopols' holds the list of mtopols from which the products have
been derived. These mtopols may not exist.
o The class of the original mtopols can be determined from the
corresponding entry in the 'original_classes' array.
o All entries in 'product_mtopols' have been derived from the entries in
'original_mtopols'.