 |
PK_PMARK_goto_o_t |
|
struct PK_PMARK_goto_o_s
{
int o_t_version; --- version number
PK_LOGICAL_t want_attrib_mod; --- return entities modified
--- indirectly by attributes
--- (PK_LOGICAL_true)
PK_PMARK_goto_attrib_cb_f_t
del_attrib_cb; --- deleted attribute callback
--- (NULL)
PK_POINTER_t del_context; --- context for callback
--- (NULL)
PK_ATTDEF_array_t del_attdefs; --- definitions of deleted
--- attributes (NULL, 0)
PK_LOGICAL_t want_new_entities; --- return new entities
--- (PK_LOGICAL_true)
PK_LOGICAL_t want_mod_entities; --- return mod entities
--- (PK_LOGICAL_true)
PK_LOGICAL_t want_del_entities; --- return del entities
--- (PK_LOGICAL_true)
PK_LOGICAL_t want_logged_mod; --- return entities modified
--- by logged changes only
--- (PK_LOGICAL_false)
PK_CLASS_array_t new_entities_classes;
--- classes of returned new
--- entities (NULL, 0)
PK_CLASS_array_t mod_entities_classes;
--- classes of returned mod
--- entities (NULL, 0)
PK_CLASS_array_t del_entities_classes;
--- classes of returned del
--- entities (NULL, 0)
PK_PMARK_t original_pmark; --- pmark from clone span
--- (PK_PMARK_null)
PK_ATTRIB_no_roll_diff_t no_roll_diff; --- whether to report changed
--- no-roll attributes
--- (PK_ATTRIB_no_roll_diff_ignore_c )
};
typedef struct PK_PMARK_goto_o_s PK_PMARK_goto_o_t;
This structure contains optional arguments for PK_PMARK_goto_2.
Used in:
PK_PMARK_goto_2
Description of fields:
'want_attrib_mod' Controls the type of modifications that are reported in the
return argument 'mod_entities' array. If an entity is only
indirectly modified by changes to attributes, it will only
be reported if this option is set to PK_LOGICAL_true.
If an entity is modified in more than one pmark during the
roll operation, it will be reported if any individual
modification is satisfied. The default is PK_LOGICAL_true.
If you want to use 'mod_entities' to track changes in a
model, we recommend that you leave 'want_attrib_mod' at
its default of PK_LOGICAL_true. Setting it to
PK_LOGICAL_false can suppress entities that have also been
modified by modelling changes.
'del_attrib_cb' If this option is non-null, the specified function will be
called for each attribute of matching definitions if it is
about to be deleted during rollback. The callback should
only be used for read-only operations on the attribute.
The default is NULL.
'del_context' Any additional information to be passed to 'del_attrib_cb'.
'del_attdefs' Array of attribute definitions. Only pass attributes with
matching definitions to the callback 'del_attrib_cb'. If
the array is empty, all attributes are passed, regardless
of definition. The default is an empty array.
'want_new_entities' Whether to return an array of created entities instead
of NULL. The default is PK_LOGICAL_true.
'want_mod_entities' Whether to return an array of modified entities instead
of NULL. The default is PK_LOGICAL_true.
'want_del_entities' Whether to return an array of deleted entities instead
of NULL. The default is PK_LOGICAL_true.
'want_logged_mod' Controls the type of modifications that are reported in the
return argument 'mod_entities' array. If this option is set
to PK_LOGICAL_true, only those entities that have been
modified by a modelling change will be reported. If an
entity is modified in more than one pmark during the roll
operation, it will be reported if any individual
modification was a modelling change. The default is
PK_LOGICAL_false.
'new_entities_classes'
If not empty, restrict the returned new entities to
those matching the classes in this array.
The default is an empty array.
'mod_entities_classes'
If not empty, restrict the returned modified entities to
those matching the classes in this array.
The default is an empty array.
'del_entities_classes'
If not empty, restrict the returned deleted entities to
those matching the classes in this array.
The default is an empty array.
'original_pmark' If this is not PK_PMARK_null, the application is
declaring that the pmark it is rolling to is the clone
pmark of this 'original_pmark' from a clone span.
If the pmark to which the application is rolling is in the
clone span then 'original_pmark' and the 'pmark' passed
into PK_PMARK_goto_2 are the same.
'no_roll_diff' This indicates the action required if a no-roll attribute
has any field values changed as a result of rolling over
a delta created when the attribute was not a no-roll
attribute. See documentation of PK_ATTRIB_no_roll_diff_t.
For the options 'new_entities_classes', 'mod_entities_classes' and
'del_entities_classes', the arrays are allowed to contain PK_CLASS_entity
and any of its subclasses, except PK_CLASS_attdef. If any superclasses are
specified in an array then their subclasses must not also be specified.