 |
PK_ATTRIB_reset_cb_f_t |
|
typedef void (*PK_ATTRIB_reset_cb_f_t)
(
--- received arguments ---
PK_ATTRIB_t attrib, --- the attribute with a changed
--- field
PK_ATTDEF_t attdef, --- attribute definition of 'attrib'
PK_PMARK_t pmark, --- current pmark
PK_ATTRIB_field_id_t field_id, --- identifier of field within
--- attribute
PK_ATTRIB_field_t field_type, --- field type
int n_values, --- length of field
PK_ATTRIB_field_values_t values, --- current contents of field
PK_ATTRIB_field_change_t change_type, --- whether the field is new
--- or modified
PK_POINTER_t context, --- pointer to user data
--- returned arguments ---
PK_ATTRIB_reset_cb_r_t *const result --- result
);
This declares the type of the callback function which is given to
PK_PARTITION_reset_attribs.
Used in:
PK_PARTITION_reset_attribs
When this function is called, the partition has been rolled to 'pmark'
from its preceding pmark. The attribute definition of 'attrib' is one
of those given to PK_PARTITION_reset_attribs and, during the roll, the
field identified by 'field_id' has been created or modified
('change_type' indicates which). The current contents of the field are
given in 'values'. The callback function can, if required, supply
revised values for the field by setting the contents of 'result'. If
the status field of 'result' is PK_ATTRIB_reset_continue_c and the
'n_values' field is not zero, then, on return from the callback, the
contents of the values field are used to reset attribute's field
values, without the change being recorded in a delta. After this, in
all following states of the partition for which the field does not
change it will now have these revised values. The number and type of
the replacement values must be the same as the original values in the
field.
If the field values do not need to be changed, the 'status' field of
'result' should be set to PK_ATTRIB_reset_continue_c and its
'n_values' field should be set to zero.
If the status returned is PK_ATTRIB_reset_failed_c, then the scan of
the partition will stop, and PK_PARTITION_reset_attribs will return
PK_ERROR_reset_failed.
If the field in the attribute is of type PK_ATTRIB_field_string_c,
then 'values' is an array of 'n_values' characters which does not
include a null character. It is not permitted to reduce the length of
the string by inserting a null char in the 'values' field of the
result. Similar remarks apply to fields of type
PK_ATTRIB_field_ustring_c.