You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1399 lines
59 KiB

/* Copyright 2020 Siemens Digital Industries Software
==================================================
Copyright 2015
Siemens Product Lifecycle Management Software Inc.
All Rights Reserved.
==================================================
Copyright 2020 Siemens Digital Industries Software */
/**
@file
This header file declares constants and functions to be used by
clients of the OBJIO class (for Backup/Recover/Import/Export/Archive/Restore).
*/
/* */
#ifndef OBJIO_H
#define OBJIO_H
#include <tccore/tctype.h>
#include <archive/objio_errors.h>
#include <pom/pom/pom.h>
#include <sa/sa.h>
#include <ss/ss_const.h>
#include <tccore/workspaceobject.h>
#include <epm/epm.h>
#include <objio/libobjio_exports.h>
/**
@defgroup OBJIO Object Import and Export (OBJIO)
@ingroup TC
The Object Import/Export (OBJIO) module facilitates the movement of data associated with
Teamcenter objects between Teamcenter sites with either "read-only" or "write" privileges.
The object types, including all their internal supporting data, that can be imported or exported are:
<table>
<tr><td>Folders </td><td>When exporting, you may choose to export any general folder.
You may not export pseudo folders. </td></tr>
<tr><td>Datasets</td><td>When exporting, you may choose to export either all versions,
the latest version, or a specific version. </td></tr>
<tr><td>Forms </td><td>When exporting, you may choose to export a Form.
The definition of the form (UIL) must be identical at both sites.</td></tr>
<tr><td>Items </td><td>When exporting, if you choose an Item, then the Item and all its related data
(such as the Item Revisions, BOM View and BOM View Revisions,
associated Item Master and Item Revision master forms,
and also any exportable Requirement, Specification,
Manifestation or Reference objects) are exported.
Additionally, if the selected Item has an assembly (structure),
then all the items that make up the assembly are exported. </td></tr>
</table>
You cannot choose part of an Item to be exported.
For example, you cannot choose an Item Revision alone to be exported.
You need to select the Item which contains this Item Revision, in order to export the Item.
Similarly, the same would be true with BOMView and BOMViewRevision objects.
@note You can export any forms, datasets or any other exportable objects associated with the Item.
These will be as independent objects, rather than being part of the Item.
All the Teamcenter files that the dataset represents will be exported,
including the operating system files that these encapsulate, and the dataset's revision anchor.
When exporting, there is an option to transfer the ownership to another site.
If the ownership is transferred to a particular site, then,
when the same objects are imported at that particular site,
they will be imported with a read/write privilege. If the ownership is not transferred,
then the ownership of the objects still belongs to the export site.
When these objects are imported at another site, they will be imported with read only privilege.
Any modifications attempted on them would not be allowed.
<b>Common Return Values</b>
<table>
<tr><td>Return Value </td><td>Description </td></tr>
<tr><td>#BIER_invalid_for_remote_bier_type</td><td>manager_tag was not created with the proper type. </td></tr>
<tr><td>#IDSM_client_access_denied </td><td>The local site is not a permitted client of the remote site. </td></tr>
<tr><td>#IDSM_no_connect </td><td>Unable to connect to remote site. </td></tr>
<tr><td>#OBJIO_cannot_reuse_dir </td><td>area_name has already been used for object export. </td></tr>
<tr><td>#OBJIO_dir_not_found </td><td>area_name does not exist. </td></tr>
<tr><td>#OBJIO_invalid_attribute_flag </td><td>The attribute flag given for the import/export area is not supported.
See objio.h for valid attribute flags. </td></tr>
<tr><td>#OBJIO_invalid_dir_contents </td><td>Cannot read the import data.
Most likely due to out-of-date or missing POM transmit files.</td></tr>
<tr><td>#OBJIO_invalid_site </td><td>The given target site is not defined in the database. </td></tr>
<tr><td>#OBJIO_invalid_tag </td><td>The given tag for the import/export manager is not valid. </td></tr>
<tr><td>#OBJIO_unsupported_type </td><td>The type given for the import/export area is not supported.
See objio.h for valid types. </td></tr>
</table>
@{
*/
/**
@defgroup OBJIO_AREA Type of import/export manager to create via OBJIO_create().
@ingroup OBJIO
@{
*/
/**Defines a local export operation area*/
#define OBJIO_export_type 1
/**Defines a local import operation area*/
#define OBJIO_import_type 2
/** Defines an OBJIO area for archived objects.
<br/>Archived objects are exportable, but not transferable. */
#define OBJIO_archive_type 3
/**Defines an OBJIO area for archived objects.*/
#define OBJIO_restore_type 4
/**Defines an OBJIO area for backup objects.*/
#define OBJIO_backup_type 5
/**Defines an OBJIO area for recovery objects.*/
#define OBJIO_recover_type 6
/**OBJIO_create() should be called to create the manager_tag, specifying a type of
#OBJIO_remote_transfer_from_type as well as the local directory
where the metafile will go into.*/
#define OBJIO_remote_transfer_from_type 7
/**OBJIO_create() must be called with a type of #OBJIO_remote_transfer_to_type
and with the local directory containing the metafile*/
#define OBJIO_remote_transfer_to_type 8
/** @} */
/**
@defgroup OBJIO_IMPORT_EXPORT_TOKENS Tokens
<br/>Import/Export Options tokens are to be used to set the an import/export option by calling OBJIO_set_attribute().
<br/>Unless otherwise specified, an option is set to either 1 or 0 to indicate if option is selected/set or not
@ingroup OBJIO
@{
*/
/**Set this option to export all dataset versions.*/
#define OBJIO_dataset_all_versions 1
/**Set this option to export all revisions.
<br/>When transferring site ownership, this is the only option available.*/
#define OBJIO_item_all_revisions 2
/**This Opotion assumes that Object is owned by this Site.*/
#define OBJIO_assume_ownership 3
/**This option aborts operation if object is chacked out.*/
#define OBJIO_abort_if_checked_out 4
/**This option includes the contents of any specified folders.*/
#define OBJIO_include_contents 5
/**Select this option to transfer site ownership of the selected assembly
item and export all components with no site ownership transfer.
<br/>This option is enabled only if the Transfer Ownership option is selected.*/
#define OBJIO_xfr_top_lvl_only 6
/**Set this option to exclude reference attachments when transferring site ownership.*/
#define OBJIO_xfr_xcl_ref_atth 7
/**Set this option to exclude requirement attachments when transferring site ownership.*/
#define OBJIO_xfr_xcl_req_atth 8
/**Set this option to exclude Manifestation attachments when transferring site ownership.*/
#define OBJIO_xfr_xcl_manif_atth 9
/**Set this option to exclude Specifications when transferring site ownership.*/
#define OBJIO_xfr_xcl_spec_atth 10
/**Set this option to exclude Reference attachments when replicating.*/
#define OBJIO_xcl_ref_atth 11
/**Set this option to exclude Requirement attachments when replicating.*/
#define OBJIO_xcl_req_atth 12
/**Set this option to exclude Manifestation attachments when replicating.*/
#define OBJIO_xcl_manif_atth 13
/**Set this option to exclude Specification attachments when replicating.*/
#define OBJIO_xcl_spec_atth 14
/**This option exports dataset refrences.*/
#define OBJIO_export_dataset_refs 15
/**Select this option to include all components if the item selected is an assembly.
<br/>The revision selectors allow you choose which revision to
export with the selected item and its component items, if applicable.
You can choose only one revision selector.*/
#define OBJIO_export_BOM_components 16
/**Select this option to include a workspace object only if it was modified
since the last time it was exported to the target sites.
<br/>For example, if only the specification dataset was modified, then it is included and the remaining items are excluded.
<br/>When exporting to multiple target sites, an object is exported if it was modified since the last export to any site on the list.*/
#define OBJIO_include_modified_only 17
/**Select this option to exclude workspace objects that are protected
through the Access Manager from replication to remote sites.
<br/>For example, some of the revisions for an item do not have Export
and/or Import privileges granted at the owning site.
<br/>When this option is cleared, you receive an error when attempting to import/export the item.
<br/>By selecting this option, you can import/export those revisions (or other subobjects) that have Export and Import privileges.*/
#define OBJIO_exclude_protected_wso 18
/**Select this option to exclude assembly components that are protected through Access Manager from site ownership transfer to remote sites.*/
#define OBJIO_exclude_no_xfr_comp 19
/**Select this option to exclude assembly components that are protected through the Access Manager from replication to remote sites.*/
#define OBJIO_exclude_protected_comp 20
/**Set this option to export/import only the particular item revision selected in the GUI or specified via the -rev switch of a command line util.
<br/>This option is not valid for Remote Import of an item revision for the first time; however, it can be used for Remote Import to re-import a previously replicated item revision.*/
#define OBJIO_selected_revs_only 21
/**Set this option to export the latest revision regardless of whether it is a working or released revision*/
#define OBJIO_latest_rev_only 22
/**Set this option to export the latest working revision, if any; if no working revision found, an error is returned. */
#define OBJIO_latest_working_rev_only 23
/**Set this option to export the latest released revision with any release status.If no released revision is found, an error is returned*/
#define OBJIO_latest_released_rev_only 24
/**Set this option to export the latest working revision;if no working revision is found, export the latest released item revision with any release release status.*/
#define OBJIO_latest_working_any_only 25
/**This option states whether this is synching operation*/
#define OBJIO_is_synchronizing 26
/**Set this option if the operation is to be performed over a network to differentiate it with an offline operation (such as item_export/item_import).*/
#define OBJIO_is_remote_operation 27
/**If you select this option, no actual import or export object operation is performed.
<br/>Instead, a dry run of the import or export is performed and a report is generated.
<br/>During the dry run, all import/export options selected apply.
<br/>The report contains the list of Teamcenter objects that
are exported/imported if the actual operation were to be performed plus the names and size of files.
<br/>The report also includes error codes and messages for errors that would be encountered during the actual operation.
<br/>You can print the report or save it to a text or HTML file.*/
#define OBJIO_preview_mode 28
/**This option genrates report after completion of Operation*/
#define OBJIO_completion_report 29
/**Select this option to allow the remote import or export objects operation to continue
if errors are encountered while importing/exporting optional objects.
<br/>The objects that are required are dependent on your data model with many
objects related to items being optional.*/
#define OBJIO_continue_on_error 30
/**Use this option to ignore any import/export error regardless of whether object is required or optional.
<br/>Currently used only with undocumented "-force" switch in item_import util which is used to fix corrupted objects.
<br/>Use with extreme caution.*/
#define OBJIO_force_import_export 31
/**Set this to export the latest item revision with the given release status; if no item revision is found with the given release status, an error is returned.
<br/>This is currently available in the Rich Client only but it can also be used in command line utils if so desired.*/
#define OBJIO_specific_status_only 32
/**If selected during a remote import, set this option to execute the
Remote Import operation in the background so you can continue to use your workspace session
while the import/export operation takes place behind the scene.
<br/>You are allowed to import in background only one selected object at a time
so it is recommended that you use this option for importing an assembly.
<br/>While the background operation takes place, you can perform other Multi-Site Collaboration operations.
<br/>Even with the multiple simultaneous Multi-Site Collaboration operations, only one Multi-Site
Collaboration user license is used.*/
#define OBJIO_is_background_mode 33
/**When this option is selected, all the options that were used during the last export/import operation on an item,
as stored in the ItemExportRecord, will be used for the current operation.
<br/>By default, the data_sync utility synchronizes only the latest revision of
an item (latest_revision) when synchronizing to multiple sites.
<br/>If you are synchronizing to a single site, the selector used the last time the item was exported (same_as_last_export) is used.*/
#define OBJIO_same_as_last_export 34
/**Set this option to prevent the remote IDSM process from terminating until the client itself terminates.*/
#define OBJIO_synchronous_remote_transfer 35
/**Select this option to include components that may be owned by sites
other than the site from which you are importing an assembly.
Includes distributed components within a distributed assembly.
<br/>A distributed assembly consists of components owned by more than one site.
<br/>First, the top-level assembly and all components owned by the assemblies owning site are retrieved.
<br/>Then individual distributed components are retrieved from their respective owning sites.
<br/>This option is enabled only when you select the Include Entire BOM option.
<br/>It cannot be used in conjunction with the Transfer Ownership option.
<br/>This option is available only when you select the Remote Import
option; it cannot be used with an Interactive Object Export command.*/
#define OBJIO_is_retrieving_distributed_comp 36
/**Select this option to export all the revision(s) that are released.*/
#define OBJIO_all_released_revs_only 37
/**Select this option to include the BOMChange objects associated
with the affected assembly of the selected change object during
remote export.*/
#define OBJIO_include_bomchanges 38
/**Select this option to include supersedure objects associated with
each BOMChange object during a remote export.
<br/>When you select this option, you must also select the Include BomChanges option,
because supersedure information can only be transferred within the
context of a BOMChange.*/
#define OBJIO_include_supercedures 39
/**This option is set when export is performed for remote checkin*/
#define OBJIO_export_for_remote_checkin 40
/**This option is set when import is performed for remote checkin*/
#define OBJIO_import_for_remote_checkin 41
/**
Set this option to exclude variant expressions from the export/import operation.
*/
#define OBJIO_exclude_variant_expressions 42
/**Set this to defer the export/import of variant expressions. Can now be used to defer export/import of any class.*/
#define OBJIO_is_variant_background_mode 43
/**Set this to indicate that the transfer of volume files should be done via the FSC. Set this for export/import operations over a network.
<br/>Unset it for offline operations.*/
#define OBJIO_defer_bulk_data_xfer 44
/**This option is specific to NX Part Families.
<br/>Select this option to include Part Family members.*/
#define OBJIO_include_pfmembers 45
/**This option is specific to NX Part Families.
<br/>Select this option to include Part Family templates*/
#define OBJIO_include_pftemplates 46
/**This option is related to NX Part Families.
<br/>This option is set to export entire BOM of NX part families*/
#define OBJIO_bom_pf_option 47
/**This option is set to get error report for perticular operation*/
#define OBJIO_error_report 48
/**Select the revision rule to use for the report or synchronization
from a list of local site revision rules. When synchronizing
item revisions, Selected Revision appears as the value for the revision rule.
<br/>This indicates that the selected revision is the configured revision to be synchronized.*/
#define OBJIO_specific_rev_rule_only 49
/**This option is set for performing synchronous transfer of ownership*/
#define OBJIO_synchronous_site_transfer 50
/**When performing a remote import with transfer of ownership, Multi-Site Collaboration first exports the
object from the remote site into a metafile, then copies the metafile over the network in preparation
for import into the local site.
<br/>If an error occurs after the export but before the object is imported, the object is in a state where it
is not owned by any site. Multi-Site Collaboration attempts to automatically recover from such an
error by restoring ownership at the remote site using the metafile located at the remote site's transfer
area.*/
#define OBJIO_export_recovery_mode 51
/**When this option is set it indicates that operation is remote export to be performed over a network
to differentiate it with an offline operation (such as item_export/item_import)*/
#define OBJIO_is_remote_send 52
/** @} */
/**
@defgroup OBJIO_Global_Organization_Project Global Organization Project
@ingroup OBJIO
Options set by OBJIO_set_attribute
@{
*/
#define OBJIO_all_roles 53
/**Export all subgroups under a group.*/
#define OBJIO_all_subgroups 54
/**Export all group members under a group, or all groupmembers associated with a user.*/
#define OBJIO_all_groupmembers 55
/**Indicates this is an organization data export/import session.*/
#define OBJIO_org_exp_flag 56
/**Indicates the organization data export type. Pass by RAC ICCT remote export operation.*/
#define OBJIO_org_exp_type 57
/**Indicates this is an organization data export/import migration mode, to migrate remote site organization data as replica.*/
#define OBJIO_org_migrate_mode 58
#define OBJIO_transfer_shared_effectivity 59
/** Indicates this is a batch transfer of variant expressions from one site to another */
#define OBJIO_batch_transfer_of_ve 60
/** @} */
/**
@defgroup Global_Organization Global Organization
<br/>Options used during import/export related to organization
@ingroup OBJIO
@{
*/
/**An indicator to indicate the pom_file has AllRoles set(through Bier ask/setData in organization import/export).*/
#define OBJIO_all_roles_key "AllRoles"
/**An indicator to indicate the pom_file has AllSubGroups set(through Bier ask/setData in organization import/export).*/
#define OBJIO_all_subgroups_key "AllSubGroups"
/**An indicator to indicate the pom_file has AllGroupMembers set(through Bier ask/setData in organization import/export).*/
#define OBJIO_all_groupmembers_key "AllGroupMembers"
/**Indicate this is an organization data export/import session.*/
#define OBJIO_org_exp_flag_key "IsOrgImpExp"
/**Indicate the organization data export/import type.*/
#define OBJIO_org_exp_type_key "OrgExpType"
/**The first successfully stored organization top level object.*/
#define OBJIO_top_export_tag "TopExpObject"
/**The first successfully stored organization migration top level object.*/
#define OBJIO_top_migrate_tag "TopMigrateTag"
/**Indicate the selected Role to export under the RAC organization export panel tree.*/
#define OBJIO_role_export_index "RoleExpIndex"
/** @} */
/** Indicates Type of org object*/
typedef enum {
PERSON_EXP = 0, /**<Person in Organization.*/
ROLE_EXP, /**<Role in Organization.*/
GROUP_EXP, /**<Group in Organization.*/
USER_EXP, /**<User in Organization.*/
ROLE_IN_HIERACHY /**<Role in Organization.*/
}
ORGExpType;
/**
@defgroup Relation_Options Relation Options
<br/>This suggests that relation is mandatory or optional
@ingroup OBJIO
@{
*/
/**This option indicates that specified relation is required*/
#define OBJIO_IS_REQUIRED 0
/**This option indicates that specified relation is optional*/
#define OBJIO_IS_OPTIONAL 1
/** @} */
/**Holds reporting information on an object.*/
typedef struct OBJIO_report_s
{
char tag_string[POM_MAX_NAME_LENGTH+1]; /**<Tag of object.*/
char object_id[WSO_name_size_c+1]; /**<Identifier of object.*/
char object_string[(WSO_name_size_c+1)*2]; /**<Object display name.*/
char object_class[POM_MAX_NAME_LENGTH+1]; /**<Class of Object.*/
char object_relation[TCTYPE_name_size_c+1]; /**<Relation of object.*/
char object_comment[WSO_desc_size_c+1]; /**<Object comment.*/
int error_code; /**<Returns Error code for failure objects */
logical is_optional_object; /**<Defines if object is optional.*/
} OBJIO_report_t;
/**
@defgroup OBJIO_OPTIONS_TOKEN Tokens for OBJIO_set_sync_options
@ingroup OBJIO
@{
*/
/**Select this option to have the replica automatically synchronized
when master data is modified.*/
#define OBJIO_auto_sync 1
/**Select this option if you want the replica to be synchronized in batch
mode using the sync utility.*/
#define OBJIO_batch_sync 2
/**Select this option if you don't want the replica to be synchronized in batch
mode using the sync utility.*/
#define OBJIO_do_not_sync 3
/** @} */
/**
@defgroup OBJIO_Sync_Options Synchronization options
@ingroup OBJIO
@{
*/
/**Select this option if you want to be notified by e-mail when the master copy is modified and replica copy is automatically synchronized.*/
#define OBJIO_auto_sync_and_notify 101
/**Select this option if you want to sync replica copy but does not want notification via an email when the master copy is modified.*/
#define OBJIO_batch_sync_but_notify 102
/**Select this option if you want to be notified by e-mail but do not want replica to be automatically synchronized when the master copy is modified.*/
#define OBJIO_do_not_sync_but_notify 103
/**Select this option if you want to be notified by e-mail and synchronize replica copy when the master copy is modified.*/
#define OBJIO_notify_and_sync_unchanged 104
/**Select this option if you do not want to be notified by e-mail when the master copy is modified.*/
#define OBJIO_no_notify_and_sync_unchanged 105
/** @} */
/**
@defgroup OBJIO_REVISION_RULE_OPTIONS Revision Rules
<br/> These options indicate the status of revision rule at remote site
@ingroup OBJIO
@{
*/
/** This option indicates that rev rule at remote site is not defined*/
#define OBJIO_rev_rule_not_defined_at_remote_site 1
/** This option indicates that rev rule at remote site is diffrent*/
#define OBJIO_rev_rule_different_at_remote_site 2
/** This option indicates that rev rule at remote site is not identical even though it has same name*/
#define OBJIO_rev_rule_non_identical_with_same_name 3
/** @} */
#ifdef __cplusplus
extern "C"{
#endif
/**
Creates an area to use when moving objects into or out of the database.
<b>Restrictions:</b> The type must be #OBJIO_import_type or #OBJIO_export_type.
@returns
<ul>
<li>#ITK_ok on success.
<li>#SS_NOCREATE if the directory specified by @p area_name cannot be created.
<li>#OBJIO_unsupported_type if the @p type is not supported.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_create(
int type, /**< (I) Type of area to create.
<br>Types are #OBJIO_export_type, #OBJIO_import_type, #OBJIO_remote_transfer_from_type, #OBJIO_remote_transfer_to_type and #OBJIO_restore_type. */
char* area_name, /**< (I) Name of the area (for #OBJIO_export_type,
this is the name of the directory to be written to;
for #OBJIO_import_type,
it is the name of the directory to be read from). */
tag_t* manager_tag /**< (O) Tag of the newly created area */
);
/**
Identifies the sites that are authorized to import the data that will be exported without ownership transfer.
<br/>Either this function or #OBJIO_set_owning_site is required when exporting data.
@returns
<ul>
<li>#ITK_ok on success.
<li>#BIER_invalid_site if an invalid site is specified.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_set_target_sites(
tag_t manager_tag, /**< (I) Tag of the OBJIO area to export data to */
int n_sites, /**< (I) Number of target sites */
tag_t* site_list /**< (I) n_sites Tag of target sites */
);
/**
Sets the given site as the new owning site.
<br/>Either this function or #OBJIO_set_target_sites is required when exporting data.
@returns
<ul>
<li>#ITK_ok on success.
<li>#BIER_invalid_site if an invalid site is specified.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_set_owning_site(
tag_t manager_tag, /**< (I) Tag of the OBJIO area to export data to */
tag_t site_tag /**< (I) Tag of the new owning site */
);
/**
Sets the owning user of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_set_receiving_user2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
const char *receiving_user /**< (I) Name of receiving user */
);
/**
Sets the owning group of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_set_receiving_group2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
const char *receiving_user /**< (I) Name of receiving user */
);
/**
Sets the sending user of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_set_sending_user2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
const char *sending_user /**< (I) Name of sending user */
);
/**
Sets the sending group of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_set_sending_group2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
const char *sending_group /**< (I) Name of sending group */
);
/**
Retrieves the receiving user of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_ask_receiving_user2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
char **receiving_user /**< (OF) Name of receiving user */
);
/**
Retrieves the receiving group of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
</ul>
*/
extern OBJIO_API int OBJIO_ask_receiving_group2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
char **receiving_group /**< (OF) Name of receiving group */
);
/**
Retrieves the sending user of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
</ul>
*/
extern OBJIO_API int OBJIO_ask_sending_user2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
char **sending_user /**< (OF) Name of sending user */
);
/**
Retrieves the sending group of the imported objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_ask_sending_group2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
char **sending_group /**< (OF) Name of sending group */
);
/**
Sets an attribute for the area specified by manager_tag.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_attribute_flag if an invalid attribute flag is specified.
</ul>
*/
extern OBJIO_API int OBJIO_set_attribute(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int attribute_flag, /**< (I) Attribute flag to set or unset. Valid values are in objio.h.
The following attribute flags show examples of the valid values: <br>
#OBJIO_dataset_all_versions If value is non-zero,
include all revisions of any specified datasets. <br>
#OBJIO_include_contents If value is non-zero,
include the contents of any specified folders. */
int value /**< (I) Value to which to set the attribute */
);
/**
Sets an attribute for the area specified by manager_tag. The attribute may not be supported by all sites.
@returns
<ul>
<li>#ITK_ok on success.
<li>#BIER_invalid_site if @p remote_site is not a valid site.
<li>#OBJIO_invalid_attribute_flag if an invalid attribute flag is specified.
<li>#IDSM_ie_option_not_supported if an attribute flag is not supported at the the remote site.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_set_site_based_attribute(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
tag_t remote_site, /**< (I) Tag of remote site */
int attribute_flag, /**< (I) Attribute flag to set or unset. */
int value /**< (I) Value to which to set the attribute */
);
/**
Sets the export reason for the particular export. This is optional.
@returns
<ul>
<li>#ITK_ok on success.
</ul>
*/
extern OBJIO_API int OBJIO_set_export_reason(
tag_t manager_tag, /**< (I) Tag of the OBJIO area to export data to */
const char* export_reason /**< (I) Reason for the export. This can be up to 240 characters. */
);
/**
Sets the release status type that will be used to select item revisions to be exported.
For the release status type to take effect,
the attribute #OBJIO_specific_status_only must be set through #OBJIO_set_attribute.
<b>Restrictions:</b> The given release status type must be defined in the database where the export is being performed.
@returns
<ul>
<li>#ITK_ok on success.
<li>#CFM_invalid_status_type if an invalid release status is specified.
</ul>
*/
extern OBJIO_API int OBJIO_set_release_status2(
tag_t manager_tag, /**< (I) Export manager tag created via #OBJIO_create */
const char *status_type /**< (I) Valid release status type.
Only revisions with this release status will be exported. */
);
/**
Sets the revision rule type that will be used to select item revisions to be exported.
For the revision rule to take effect,
the attribute #OBJIO_specific_rev_rule_only must be set through #OBJIO_set_attribute.
<b>Restrictions:</b> The given revision rule type must be defined in the database where the export is being performed.
@returns
<ul>
<li>#ITK_ok on success.
<li>#CFM_cant_find_rev_rule if @p rev_rule_name is not a valid revision rule.
</ul>
*/
extern OBJIO_API int OBJIO_set_revision_rule2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
const char *rev_rule_name /**< (I) Name of status type */
);
/**
Stores the specified objects, ready for writing to the area specified by manager_tag.
You may call this function several times before calling #OBJIO_write.
<b>Restrictions:</b> You must have read access to all the objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#BIER_unknown_object if a target object class is not supported by OBJIO.
<li>#BIER_conflicting_ie_options if an invalid combination of export options were previously set with #OBJIO_set_attribute.
<li>#BIER_invalid_option_when_xferring if an invalid combination of transfer ownership options were previously set with #OBJIO_set_attribute.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_store_objects(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int n_objects, /**< (I) Number of objects to store */
tag_t* objects /**< (I) n_objects Tags of the objects to store */
);
/**
Writes the objects, specified in calls to #OBJIO_store_objects, to the area specified by manager_tag.
<b>Restrictions:</b> You should not call this function more than once with the same manager_tag, as it is not cumulative; that is, each call will overwrite the result of the previous call.
@returns
<ul>
<li>#ITK_ok on success.
<li>#BIER_nothing_to_export if no objects have been specified for export.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_write(
tag_t manager_tag /**< (I) Tag of the OBJIO area to which to write objects */
);
/**
Reads the objects that were written to the area specified by manager_tag,
preparatory to listing those objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_dir_contents if no valid metadata file found.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_read(
tag_t manager_tag /**< (I) Tag of the OBJIO area */
);
/**
Lists the contents of the area specified by manager_tag.
You must call #OBJIO_read before using this function, otherwise no objects will be listed.
The client is responsible for freeing objects with #MEM_free.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_ask_contents(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int* n_objects, /**< (O) Number of objects in the area */
tag_t** objects /**< (OF) n_objects Tags of the objects in the area */
);
/**
Restores the specified objects from the area specified by manager_tag.
You must call #OBJIO_read before using this function, otherwise no objects will be restored.
You may call this function several times with the same manager_tag.
<ul>
<li>#ITK_ok on success.
<li>#BIER_require_import_site_priv if there is insufficient site privilege to import into this site.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#OBJIO_internal_error if any internal error occurs.
</ul>
*/
extern OBJIO_API int OBJIO_restore_objects(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int n_objects, /**< (I) Number of objects to restore */
tag_t* objects /**< (I) n_objects Tags of the objects to restore */
);
/**
Lists the objects which failed to be stored/restored by a call to
#OBJIO_store_objects or #OBJIO_restore_objects.
For example, an object will not be restored if it does not exist in the area.
The client is responsible for freeing failing_objects and failures with #MEM_free.
@returns
<ul>
<li>#ITK_ok on success.
<li>#IDSM_get_remote_stack_failed if the remote error stack was not available.
<li>#OBJIO_internal_error if any internal error occurs.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_ask_failures(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int* n_failures, /**< (O) Number of objects that failed to be stored/restored */
tag_t** failing_objects, /**< (OF) n_failures Tags of the objects which failed to be stored/restored */
int** failures /**< (OF) n_failures Reasons why the objects failed */
);
/**
Specifies a number of objects to be excluded explicitly from operations on the area specified by manager_tag.
For example, when exporting a folder with many contents,
you can conveniently export most of the contents by first setting the #OBJIO_include_contents attribute to 1,
and then using this function to specify the small number of objects that you do not wish to export.
This function must be called before #OBJIO_store_objects or #OBJIO_restore_objects.
You may call this function several times before calling #OBJIO_store_objects or #OBJIO_restore_objects.
@returns
<ul>
<li>#ITK_ok on success.
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_exclude_objects(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int n_objects, /**< (I) Number of objects to exclude */
tag_t* objects /**< (I) n_objects Tags of the objects to exclude */
);
/**
Includes the specified objects to the bier class tag provided with @p manager_tag, in order to later export the objects to other sites.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if @p manager_tag is invalid.
<li>#OBJIO_internal_error if any internal error occurs
</ul>
*/
extern OBJIO_API int OBJIO_include_objects(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int n_objects, /**< (I) Number of objects to include */
tag_t * objects /**< (I) n_objects Tags of the objects to include */
);
/**
Deletes the area specified by manager_tag.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_delete(
tag_t manager_tag /**< (I) Tag of the OBJIO area to be deleted */
);
/**
Sets the the the being imported flag on the input tag.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_record_being_imported(
tag_t manager_tag /**< (I) Tag that is to be flagged as being imported */
);
/**
Sets the relation types excluded from export.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_exclude_relation_types(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int count, /**< (I) Number of relation types to exclude */
tag_t* relation_types /**< (I) count Tags of the relation types to exclude */
);
/**
Exports object(s) from the given remote site into a metafile within a local directory.
Before calling this function, the following functions must be called first with the appropriate parameters:
<table>
<tr><td>#OBJIO_create </td><td>This should be called to create the manager_tag, specifying a type of
#OBJIO_remote_transfer_from_type as well as the local directory
where the metafile will go into. </td></tr>
<tr><td>#OBJIO_store_objects</td><td>This should be called to specify which remote object(s) to export. </td></tr>
<tr><td>#OBJIO_set_attribute</td><td>May also be called before calling #OBJIO_retrieve.
If #OBJIO_retrieve returns a successful status, it is recommended
that you call #OBJIO_ask_failures to determine if any error occurred.</td></tr>
</table>
<b>Restrictions:</b> The local site must be a permitted client of the remote site.
@returns
<ul>
<li>#ITK_ok on success
<li>#BIER_user_denied_remote_import_privilege_for_site if the user lacks IMPORT privilege.
<li>#BIER_user_denied_transfer_ownership_privilege_for_site if the user lacks TRANSFER_IN privilege.
<li>#BIER_no_target_site if no target sites were specified.
<li>#BIER_invalid_site if the target site was invalid or the target site was the local site.
<li>#IDSM_client_access_denied if the remote IDSM is not configured to allow the local site access.
</ul>
*/
extern OBJIO_API int OBJIO_retrieve(
tag_t manager_tag, /**< (I) Export manager tag created via an earlier call to #OBJIO_create */
tag_t source_site /**< (I) Tag of remote site to export from */
);
/**
Imports object(s) from a metafile within a local directory into a remote site.
Before calling this function,
#OBJIO_create must be called with a type of #OBJIO_remote_transfer_to_type
and with the local directory containing the metafile.
If #OBJIO_send returns a successful status,
it is recommended that you call #OBJIO_ask_failures to determine if any error occurred.
<b>Restrictions:</b> The local site must be a permitted client of the remote site.
Before calling this function,
the metafile must already exist in the directory given in the #OBJIO_create call.
If the object to be sent has not been exported yet,
then you need to create a separate manager area,
store objects (via #OBJIO_store_objects) and write the objects (via #OBJIO_write).
After the object is exported, create a second manager area for sending and then call #OBJIO_send.
@returns
<ul>
<li>#ITK_ok on success
<li>#BIER_user_denied_remote_import_privilege_for_site if the user lacks IMPORT privilege.
<li>#BIER_user_denied_transfer_ownership_privilege_for_site if the user lacks TRANSFER_IN privilege.
<li>#BIER_no_target_site if no target sites were specified.
<li>#BIER_invalid_site if the target site was invalid or the target site was the local site.
<li>#IDSM_client_access_denied if the remote IDSM is not configured to allow the local site access.
</ul>
*/
extern OBJIO_API int OBJIO_send(
tag_t manager_tag, /**< (I) Export manager tag created via an earlier call to #OBJIO_create */
tag_t destination_site /**< (I) Tag of remote site to import into */
);
/**
Deletes the provided temporary staging directory.
@returns
<ul>
<li>#ITK_ok on success
<li>#SS_FILEBUSY if the directory is in use.
<li>#OBJIO_internal_error on error.
</ul>
*/
extern OBJIO_API int OBJIO_delete_staging_dir(
const char* directory /**< (I) Staging directory to be deleted */
);
/**Creates temporary staging Directory and returns path in output parameter directory. This directory is used to store files temporary during transfer.*/
extern OBJIO_API int OBJIO__make_temp_staging_dir(
char** directory /**< (OF) Name of staging directory*/
);
/**
Removes a relation type from the excluded from export list.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
</ul>
*/
extern OBJIO_API int OBJIO_remove_excluded_reltype(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
tag_t relation_type /**< (I) Tag of the relation type */
);
/**
Removes a relation type from the excluded from export list.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#BIER_conflicting_ie_options if the reporting options conflict.
</ul>
*/
extern OBJIO_API int OBJIO_ask_report_info(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int* n_info, /**< (O) Number of information count */
OBJIO_report_t** info_list /**< (O) info_list contains report information */
);
/**
Removes a relation type from the excluded from export list.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid.
<li>#BIER_conflicting_ie_options if the reporting options conflict.
</ul>
*/
extern OBJIO_API int OBJIO_ask_error_report_info(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
int * n_info, /**< (O) Number of error information count */
OBJIO_report_t** info_list /**< (O) info_list contains error report information */
);
/**
Aborts a site synchronous transfer operation before #OBJIO_write is called.
@returns
<ul>
<li>#ITK_ok on success
<li>#BIER_unknown_sst_state if the operation state in invalid.
<li>#OBJIO_internal_error on error.
</ul>
*/
extern OBJIO_API int OBJIO_abort_sst_export(
tag_t export_bier_tag /**< (I) Tag of the export object */
);
/**
Aborts a site synchronous transfer operation after #OBJIO_write is called.
@returns
<ul>
<li>#ITK_ok on success
<li>#BIER_unknown_sst_state if the operation state in invalid.
<li>#OBJIO_internal_error on error.
</ul>
*/
extern OBJIO_API int OBJIO_abort_sst_export_post_write(
tag_t main_object_tag /**< (I) Main object tag*/
);
/**
Abort a site synchronous transfer operation.
@returns
<ul>
<li>#ITK_ok on success
<li>#BIER_unknown_sst_state if the operation state in invalid.
<li>#OBJIO_internal_error on error.
</ul>
*/
extern OBJIO_API int OBJIO_abort_sst_import(
tag_t obj_tag /**< (I) Tag of the OBJIO area */
);
/**
Get the tag for the import/export metadata file.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid
</ul>
*/
extern OBJIO_API int OBJIO_ask_metafile(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
tag_t* metafile_tag /**< (O) Tag of the metafile */
);
/**
@name Multi-Site Collaboration Functions
@{
*/
/**
This function is called from the replica side to the owning site and is used to
set synchronization options for the existing replica objects given in the obj_tags argument.
The desired options are specified via the options_token argument.
<b>Restrictions:</b> The given owning site must be running V7.0 or later and must enable Subscriptions.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_sync_option if an invalid option was specified.
<li>#OBJIO_invalid_site if an invalid @p owning_site was specified.
</ul>
*/
extern OBJIO_API int OBJIO_set_sync_options(
tag_t owning_site, /**< (I) Integer site id of the site that owns the objects given in object_tags */
int options_token, /**< (I) Integer value that indicates the sync options specified.
Valid values are defined in objio.h. */
int n_obj_tags, /**< (I) Number of replica objects to apply sync options to */
const tag_t* obj_tags, /**< (I) Replica objects tags to apply options to.
All tags must be of the WorkspaceObject class. */
int** failure_codes /**< (OF) n_obj_tags Error code returned for each
corresponding object in object_tags list */
);
/**
Retrieves information regarding distributed components from the import/export metafile.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid
</ul>
*/
extern OBJIO_API int OBJIO_ask_distributed_assy_info(
tag_t manager_tag, /**< (I) Import manager tag */
int* n_dist_components, /**< (O) Number of distributed components */
tag_t** dist_component_list, /**< (OF) n_dist_components Tags of distributed components */
int** owning_site_list /**< (OF) n_dist_components Site ID of corresponding owning site for each component tag */
);
/**
Retrieves information about components owned by the exporting site so that they
can be remote-imported individually from the exporting site
as part of a one-at-a-time Remote Import operation of assembly components.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid
</ul>
*/
extern OBJIO_API int OBJIO_ask_assembly_components_owned_by_exporting_site(
tag_t manager_tag, /**< (I) Import manager tag */
int* n_components, /**< (O) Number of components */
tag_t** component_list, /**< (OF) n_components Tags of the Assembly components */
int** owning_site_list /**< (OF) n_components Site ID of the exporting site */
);
/**
Sets the new, modified and deleted occurrences for a incremental BVR export.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid
</ul>
*/
extern OBJIO_API int OBJIO_set_incremental_bvr_changes (
tag_t manager_tag, /**< (I) Import manager tag */
tag_t bvr, /**< (I) BOMViewRevision tag */
int n_modified_or_added_occs, /**< (I) Number of modifed or added occurrences */
const tag_t* modified_or_added_occs, /**< (I) List of modified and added occurrences */
int n_deleted_occs, /**< (I) Number of deleted occurrences */
const tag_t* deleted_occs /**< (I) List of deleted occurrences */
);
/** @} */
/**
Sets the full path to the script executed after export is complete.
@returns
<ul>
<li>#ITK_ok on success
<li>#OBJIO_invalid_tag if the @p manager_tag is invalid
<li>#SS_NOOPEN if the script file @p script cannot be opened.
</ul>
*/
extern OBJIO_API int OBJIO_set_script2(
tag_t manager_tag, /**< (I) Tag of the OBJIO area */
const char *script /**< (I) Full path to the post-export script */
);
/**
Retrieves the full path to the report file generated by an import/export operation.
@returns
<ul>
<li>#ITK_ok on success
</ul>
*/
extern OBJIO_API int OBJIO_get_report_file(
char** report_file_name /**< (OF) Full path to the report file */
);
/**
Retrieves the full path to the report file generated by a background import/export operation.
@returns
<ul>
<li>#ITK_ok on success
</ul>
*/
extern OBJIO_API int OBJIO_get_bg_report_file(
char* reportStr, /**< (I) Input string in the form of \<Current Process ID\>_sync */
char** report_file_name /**< (OF) Full path to the report file */
);
/**
Initiate controlled replication for the specified workflow hander.
@returns
<ul>
<li>#ITK_ok on success
<li>#BIER_CntrlRep_assembly_invalid_for_replication if the assembly is not valid for replication and release per the workflow handler definition.
<li>#BIER_CntrlRep_no_revision_rule_provided There is no revision rule provided in the handler.
<li>#BIER_CntrlRep_no_replication_sites if there are no valid controlled replication sites on the associated Project.
</ul>
*/
extern OBJIO_API int OBJIO_release_and_replicate(
EPM_action_message_t msg /**< (I) Message containing the EPM task */
);
/**
Return the GSIdentity object associated with a replicated organization object.
@returns
<ul>
<li>#ITK_ok on success
<li>#POM_invalid_tag if an invalid @p object_tag was supplied.
</ul>
*/
extern OBJIO_API int OBJIO_find_import_record_by_tag(
tag_t object_tag, /* (I) Tag of organization object */
tag_t* gsidentity_tag /* (O) Tag of GSIdentity object */
);
/**
Retrieves the sites an organization object has been exported to.
@returns
<ul>
<li>#ITK_ok on success
<li>#POM_invalid_tag if an invalid @p object_tag was supplied.
</ul>
*/
extern OBJIO_API int OBJIO_find_export_sites_by_tag(
tag_t object_tag, /* (I) Tag of tc object */
int* nSites, /* (O) number of expoted sites. */
tag_t** site_tags, /* (O) Tag of IXR object */
char** export_sites_as_string, /* (O) append site name as string. Useful for run time property */
logical* isSiteStrNull /* (O) check if the export_site_string is null */
);
/**
Deletes the main replicated object and all its dependents objects.
@returns
<ul>
<li>#ITK_ok on success
<li>#CXPOM_invalid_tag if an invalid @p replica_object is supplied.
<li>#CXPOM_object_deleted if a deleted @p replica_object is supplied.
<li>#OBJIO_invalid_object_type if a local @p replica_object is supplied.
<li>#OBJIO_ref_iman_master_form if a Form object is supplied which is referenced by IMAN_master_form relation.
<li>#OBJIO_is_checked_out if dependent objects are checked-out at remote site.
<li>#OBJIO_few_dependent_object_count if the supplied dependent object list count @p n_objects is fewer than the internal evaluation count.
<li>#OBJIO_insufficient_privileges if the current user does not have sufficient privileges to perform this operation.
<li>#OBJIO_mixed_ownership if dependent objects have mixed ownership of local and replica objects.
<li>#OBJIO_is_part_of_workflow if dependent objects are part of a workflow.
<li>#BIER_unable_to_exclude if an internally evaluated object is not part of the dependent objects list.
</ul>
*/
extern OBJIO_API int OBJIO_delete_replica_objects(
tag_t replica_object, /**< (I) A tag of main replica workspace object */
int n_objects, /**< (I) Number of dependent objects. This value can be set to zero (0).
<br/>If non-zero the input dependent_tags should match evaluated
dependent objects using optionset. */
const tag_t* dependents, /**< (I) n_objects The dependent objects
<br/>The ITK method ensures that internally evaluated object list is a subset of
supplied dependent object list. If it is determined that an internally evaluated
object is not part of dependent objects list, an error #BIER_unable_to_exclude is returned. */
const char* optionset, /**< (I) Name of the TransferOptionset used for traversal and evaluation of dependent objects.
<br/>This value can be set to NULL if internal TransferOptionset is to be used
for traversal and evaluation of dependent objects. */
logical delete_unref_pomstubs, /**< (I) Set it to "true" if the unreferenced POM stubs associated with dependent objects
are to be deleted. */
logical delete_export_records /**< (I) Set it to "true if the owning site ImanExportRecords and ItemExportRecords
associated with dependent objects is to be deleted. */
);
/** @} */
#ifdef __cplusplus
}
#endif
#include <objio/libobjio_undef.h>
#endif