 |
PK_GROUP_create_from_ents_o_t |
|
struct PK_GROUP_create_from_ents_o_s
{
int o_t_version;
--- version number
int n_labels;
--- length of arrays 'labelled_entities'
--- and 'labels' (0)
const int *labelled_entities;
--- array of entities to be assigned
--- labels (NULL)
const int *labels;
--- array of labels to be assigned to
--- entities in the group (NULL)
PK_GROUP_membership_t membership;
--- behaviour when members of groups are
--- merged
--- (PK_GROUP_membership_inclusive_c)
PK_GROUP_split_t split_empty;
--- behaviour for empty groups on split
--- (PK_GROUP_split_never_c)
PK_GROUP_merge_t merge_empty;
--- behaviour for empty groups on merge
--- (PK_GROUP_merge_no_c)
PK_GROUP_merge_t merge_populated;
--- behaviour for populated groups on merge
--- (PK_GROUP_merge_no_c)
PK_GROUP_dependants_t delete_dependants;
--- behaviour of groups which are members
--- groups which are deleted
--- (PK_GROUP_dependants_keep_c)
int n_min_contents;
--- length of arrays 'min_contents_labels'
--- and 'min_contents_minima' (0)
const int *min_contents_labels;
--- array of labels to be assigned
--- a minimum content (NULL)
const int *min_contents_minima;
--- array of limits for the minimum
--- allowed contents of groups (NULL)
};
typedef struct PK_GROUP_create_from_ents_o_s PK_GROUP_create_from_ents_o_t;
This structure contains optional arguments for PK_GROUP_create_from_entities_2.
Used in:
PK_GROUP_create_from_entities_2
Description of fields:
'n_labels' The length of the next two arrays in the options,
'labelled_entities' and 'labels'. The default
value is 0.
'labelled_entities' An array of entities to be assigned the labels given in
the parallel array 'labels'. The default value is NULL.
'labels' An array of labels to be assigned to entities listed in
'labelled_entities'. The default value is NULL.
'membership' Whether a resultant merged entity belongs to the groups
which the original entities belonged to before they
were merged. The default value is
PK_GROUP_membership_inclusive_c.
'split_empty' Whether a copy is made in the split-off part for
each empty group in a part when that part is
split. The default value is PK_GROUP_split_never_c.
'merge_empty' Whether pairs of identical empty groups, one
in each part, are merged into one group in the merged
part. "Identical" here means having the same
attributes and the same group controls. The default
value is PK_GROUP_merge_no_c.
'merge_populated' Whether to merge populated groups which become
identical as a result of merging their members. Groups
are identical if they contain the same members (with
the same labels if labels are being used), have the
same group controls and have the same attributes. A
pair of identical groups will only be merged if there
are no other groups identical with them. The default
value is PK_GROUP_merge_no_c.
'delete_dependants' Whether the deletion of a group is propagated to its
members which are also groups. Groups which are
members of deleted groups will only be deleted if
they are not members of any remaining group. The
default value is PK_GROUP_dependants_keep_c.
'n_min_contents' The length of the next two arrays in the options,
'min_contents_labels' and 'min_contents_minima'.
The default value is 0.
'min_contents_labels' An array of labels for which the user wishes to
specify a minimum number of entities with that label
in the group. The minimum number of entities for each
label is specified in the corresponding position in
the parallel array 'min_contents_minima'. A group
is deleted if the number of members with any
given label falls below the specified value. This
condition is invoked either when a group is
split as a result of its owning part being split
or when an entity belonging to the group is deleted.
If a group is split between parts, the condition is
applied to each resulting group. The default
value is NULL.
If explicit labels are not being used, then it is
assumed that all labels are '0', so groups which
do not label their contents can still be controlled
with this option by specifying a single minimum for
label 0.
'min_contents_minima' An array of minimum contents values corresponding to
the labels listed in 'min_contents_labels'. The
default value is NULL.