PK_PARTITION_receive   


PK_ERROR_code_t    PK_PARTITION_receive
(
--- received arguments ---
const char                      *key,         --- key string
const PK_PARTITION_receive_o_t  *options,     --- receive options

--- returned arguments ---
PK_PARTITION_t                  *partition    --- partition
)


This function receives a partition from the given 'file' key.


Specific Errors:
    PK_ERROR_rollback_not_started  Partitioned rollback is not active
    PK_ERROR_bad_key               Frustrum (FFOPWR) returned FR_bad_name
    PK_ERROR_key_not_found         Frustrum (FFOPWR) returned FR_not_found
    PK_ERROR_cant_open_file        Frustrum (FFOPWR) returned FR_open_fail
    PK_ERROR_file_access_error     Error reading or closing the transmit file
    PK_ERROR_schema_access_error   Error opening, closing, or reading the
                                      schema file
    PK_ERROR_schema_corrupt        Contents of schema file not as expected
    PK_ERROR_schema_incompatible   Schema contents in newer format
    PK_ERROR_wrong_format          File does not have expected transmit format
    PK_ERROR_wrong_version         File transmitted by incompatible version
                                      of modeller
    PK_ERROR_wrong_version_delta   File transmitted by a version of the
                                   modeller that produces deltas incompatible
                                   with the current version
    PK_ERROR_corrupt_file          Invalid transmit file contents
    PK_ERROR_file_read_corruption  Corrupt data read, perhaps an NFS problem
    PK_ERROR_applio_not_registered Application i/o functions not registered
                                     (only relevant if options->transmit_format
                                      is PK_transmit_format_applio)
    PK_ERROR_size_mismatch         Transmitted parts created with different
                                      modeller resolution settings
    PK_ERROR_attr_defn_mismatch    Transmitted attribute definitions do not
                                      match current ones
    PK_ERROR_usfd_mismatch         File has incompatible user-field size
    PK_ERROR_withdrawn_surface     File contains a withdrawn blend surface
    PK_ERROR_FG_receive_failure    Part contains irretrievable foreign
                                      geometry


The key is passed to the frustrum to identify the 'file' used to receive the
partition from.

The frustrum routine FFOPRD is called with guise FFCXMP (transmit file
containing a partition).

The transmit format option affects the format argument to FFOPRD as follows:

    transmit format                format

    PK_transmit_format_text_c      FFTEXT
    PK_transmit_format_binary_c    FFBNRY
    PK_transmit_format_neutral_c   FFBNRY
    PK_transmit_format_applio_c    (registered function is called, not FFOPWR -
                                    see PK_SESSION_register_applio)

If the receive_deltas option is PK_PARTITION_rcv_deltas_no_c, the partition
will have only one (initial) pmark; if it is PK_PARTITION_rcv_deltas_later_c,
the partition will have two pmarks and will be 'at' the non-initial one.

If the option receive_deltas is PK_PARTITION_rcv_deltas_later_c, and
receive_prev_version_deltas is set to PK_LOGICAL_true, it is assumed that an
attempt to read deltas transmitted from an earlier version Parasolid will be
made. In this case a check is made on the version of Parasolid used to
transmit the file. Where it is found to be from a version of Parasolid which
produces delta files incompatible with the current version, the error
PK_ERROR_wrong_version_delta will be returned.

When option receive_deltas is PK_PARTITION_rcv_deltas_later_c, and
receive_prev_version_deltas is set to PK_LOGICAL_false, PK_PARTITION_receive
will return PK_ERROR_wrong_version_delta if the file is not transmitted from
the same version of Parasolid.

The option receive_prev_version_deltas is ignored when receive_deltas is
PK_PARTITION_rcv_deltas_no_c.