 |
PK_PARTITION_clone_pmark |
|
PK_ERROR_code_t PK_PARTITION_clone_pmark
(
--- received arguments ---
PK_PARTITION_t partition, --- partition
PK_PMARK_t original_pmark, --- original_pmark
const PK_PARTITION_clone_pmark_o_t *options, --- options
--- returned arguments ---
PK_PMARK_t *const clone_pmark, --- new clone pmark
int *const n_new, --- number of entities
--- created
PK_ENTITY_t **const new_entities, --- entities created
int *const n_mod, --- number of entities
--- modified
PK_ENTITY_t **const mod_entities, --- entities modified
int *const n_del, --- number of entities
--- deleted
int **const del_entities --- entities deleted
)
This function applies to the 'partition' the changes between the original pmark
corresponding to the current clone pmark of the partition and the given
'original_pmark'.
Note: You are advised to consult with Parasolid Support before using
cloning.
Specific Errors:
PK_ERROR_rollback_not_started Partitioned rollback is not active (MILD)
PK_ERROR_unsuitable_entity Cloning is not started in 'partition'
or 'original_pmark' is not from a clone
span (MILD)
PK_ERROR_modified_sub_part Some entities that would be affected have
changed from their state in the clone
span (MILD)
PK_ERROR_copy_failed The clone operation failed (SERIOUS)
This function performs a similar action to PK_PMARK_goto_2. If the
changes being cloned affect only restricted areas of a part in the
partition then the cloning operation can be performed to make those
same changes even if other areas of the part are not identical to
those in the clone span.
If the changes involve changes to members of a closed group then cloning may
proceed even though the members of the group may not be the same as the members
of the group in the clone span because the groups have evolved separately as
a result of differing merge, split and delete events. If the changes involve
changes to members of a group which is not closed then cloning can only proceed
if all members of the group are identical to their equivalents in the clone
span.
If the changes involve changes to attributes of a closed group then cloning
may only proceed if the present group and the group in the clone span are
identical.
This function should only be called when partitioned rollback has been started
with PK_DELTA_register_callbacks.