PK_PART_transmit   

PK_ERROR_code_t             PK_PART_transmit
(
--- received arguments ---
int                         n_parts,     --- number of parts
const PK_PART_t            *parts,       --- parts
const char                 *key,         --- key string
const PK_PART_transmit_o_t *options      --- transmit options
)


This function transmits the given parts using the given key string.


Specific Errors:
    PK_ERROR_duplicate_parts       Parts are not distinct, or share common
                                      sub-parts (MILD)
    PK_ERROR_bad_key               Frustrum (FFOPWR) returned FR_bad_name
                                     (MILD)
    PK_ERROR_key_in_use            Frustrum (FFOPWR) returned FR_already_exists
                                     (MILD)
    PK_ERROR_cant_open_file        Frustrum (FFOPWR) returned FR_open_fail
                                     (MILD)
    PK_ERROR_schema_access_error   Error opening, closing, or writing the
                                      schema file (MILD)
    PK_ERROR_wrong_version         Cannot transmit as given version (MILD)
    PK_ERROR_file_access_error     Error writing or closing the transmit file
                                     (MILD)
    PK_ERROR_disc_full             Frustrum (FFWRIT) returned FR_disc_full
                                     (MILD)
    PK_ERROR_applio_not_registered Application i/o functions not registered
                                     (only relevant if options->transmit_format
                                      is PK_transmit_format_applio_c) (MILD)
    PK_ERROR_bad_text_conversion   Some part data could not be written
                                     (only relevant if options->transmit_format
                                      is PK_transmit_format_text_c) (MILD)
    PK_ERROR_bad_field_conversion  Part contains data not convertible to
                                      saved format (only relevant if
                                      options->transmit_version is non-zero)
                                     (MILD)
    PK_ERROR_child_body            One or more of the parts is a child body
                                     (MILD)
    PK_ERROR_facet_geometry        A part contains facet geometry but facet
                                   geometry is not enabled in the session
                                     (MILD)
    PK_ERROR_mesh_not_found        Not all requested mesh data
                                      successfully received (MILD)

If options->transmit_format is PK_transmit_format_indexio_c:

    PK_ERROR_indexio_not_registered
                                   Application i/o functions not registered
                                     (MILD)
    PK_ERROR_unsuitable_entity     Not all the given parts are bodies (MILD)


The key is passed to the frustrum to identify the 'file' used to transmit the
parts to.

If any of the parts being transmitted are assemblies, then all their
sub-parts will be transmitted with them.

The parts must be distinct, and must not have any common sub-parts.

The frustrum routine FFOPWR is called with guise FFCXMT (transmit file
containing parts).

The transmit format option affects the format argument to FFOPWR 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   (function 'open_wr' is called -
                                   see PK_SESSION_register_applio)
    PK_transmit_format_indexio_c  (function 'ffopwr' is called -
                                   see PK_SESSION_register_indexio)

If the part contains delayed-load model data that has not been loaded, it
will be loaded as part of the transmit operation.

See Transmitting a part for more information.