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.
548 lines
15 KiB
548 lines
15 KiB
/*==============================================================================
|
|
Copyright (c) 2003-2005 UGS Corporation
|
|
Unpublished - All Rights Reserved
|
|
==============================================================================*/
|
|
|
|
/**
|
|
@file
|
|
|
|
External header file containing constants and data structures for
|
|
Product Data Interface (PDI) module. This file is included by pdi.h
|
|
*/
|
|
|
|
/* */
|
|
|
|
#ifndef PDI_H_EXTERNAL
|
|
#define PDI_H_EXTERNAL
|
|
|
|
#ifdef __lint
|
|
#pragma uginclude only_in_error "pdi.h";
|
|
#endif
|
|
|
|
/**
|
|
Has definition for Read, Write access - 'mode' parameter in PDI calls
|
|
*/
|
|
#if !WNT
|
|
#include <unistd.h>
|
|
#endif
|
|
|
|
/**
|
|
@defgroup PDI Product Data Interface
|
|
@ingroup NXMGR
|
|
@{
|
|
*/
|
|
|
|
/**
|
|
@name PDI equivalents
|
|
|
|
For values used when calling the unix access function
|
|
@{
|
|
*/
|
|
|
|
/** Is it writable by caller */
|
|
#define PDI_W_OK 2
|
|
|
|
/** Is it readable by caller */
|
|
#define PDI_R_OK 4
|
|
|
|
/** @} */
|
|
|
|
#include <common/emh_const.h>
|
|
#include <nxmgr_im/libnxmgr_im_exports.h>
|
|
|
|
#define PDI_return_code_t int
|
|
|
|
#define PDI_ok 0
|
|
|
|
/** General failure error */
|
|
#define PDI_fail EMH_API_error_base
|
|
|
|
/** General RPC error */
|
|
#define PDI_rpc_fail EMH_API_error_base + 1
|
|
|
|
/** No objects found */
|
|
#define PDI_null EMH_API_error_base + 2
|
|
|
|
/** Bad tag as input */
|
|
#define PDI_invalid_tag EMH_API_error_base + 3
|
|
|
|
/** Access denied */
|
|
#define PDI_access_denied EMH_API_error_base + 4
|
|
|
|
/** Trying to create an object with same id. */
|
|
#define PDI_object_exists EMH_API_error_base + 5
|
|
|
|
/** Problems with logging into PDM */
|
|
#define PDI_login_failed EMH_API_error_base + 6
|
|
|
|
/** PDM internal error */
|
|
#define PDI_pdm_internal EMH_API_error_base + 7
|
|
|
|
/** Functionality not implemented */
|
|
#define PDI_not_implemented EMH_API_error_base + 8
|
|
|
|
/** Object may not be modified */
|
|
#define PDI_read_only EMH_API_error_base + 9
|
|
|
|
/** Object is locked already */
|
|
#define PDI_object_locked EMH_API_error_base + 10
|
|
|
|
/** Caller is not object locker */
|
|
#define PDI_not_locker EMH_API_error_base + 11
|
|
|
|
/** Object is not locked */
|
|
#define PDI_object_not_locked EMH_API_error_base + 12
|
|
|
|
/** Delay return from this routine */
|
|
#define PDI_call_block EMH_API_error_base + 13
|
|
|
|
/** Invalid role name for encap GS */
|
|
#define PDI_invalid_role EMH_API_error_base + 14
|
|
|
|
/** Unable to create export directory */
|
|
#define PDI_unable_to_create_dir EMH_API_error_base + 15
|
|
|
|
/** Export directory does not exist */
|
|
#define PDI_no_export_directory EMH_API_error_base + 16
|
|
|
|
/** Import fails to bring in files */
|
|
#define PDI_import_files_fail EMH_API_error_base + 17
|
|
|
|
/** Deletion of the exported stuff fails */
|
|
#define PDI_cancel_export_fail EMH_API_error_base + 18
|
|
|
|
/** Deletion of the exported stuff fails */
|
|
#define PDI_remove_export_dir_fail EMH_API_error_base + 19
|
|
|
|
/** Copy files from old appdata to new one fails */
|
|
#define PDI_copy_appdata_fail EMH_API_error_base + 20
|
|
|
|
/** Object Name cannot be set to a null value */
|
|
#define PDI_null_input_string EMH_API_error_base + 21
|
|
|
|
/** Failure in database user exit called from PDI */
|
|
#define PDI_user_exit_failure EMH_API_error_base + 22
|
|
|
|
/** Object has been deleted */
|
|
#define PDI_object_deleted EMH_API_error_base + 23
|
|
|
|
/** No clipboard is available */
|
|
#define PDI_no_clipboard EMH_API_error_base + 24
|
|
|
|
/** The Teamcenter Engineering attribute has no value */
|
|
#define PDI_attr_has_no_value EMH_API_error_base + 25
|
|
|
|
/** The mapping cannot be resolved for the object */
|
|
#define PDI_invalid_mapping_for_object EMH_API_error_base + 26
|
|
|
|
/** The object has been modified by some other process since we loaded it */
|
|
#define PDI_modified_elsewhere EMH_API_error_base + 27
|
|
|
|
/** Not licensed to perform the function */
|
|
#define PDI_not_licensed EMH_API_error_base + 28
|
|
|
|
/** @if DOX_IGNORE
|
|
szheng 10-Feb-2000: dated revision rules
|
|
@endif */
|
|
#define PDI_invalid_date_format EMH_API_error_base + 29
|
|
|
|
/** The object has already been added, e.g. when inserting into a folder */
|
|
#define PDI_object_already_added EMH_API_error_base + 30
|
|
|
|
/** @if DOX_IGNORE
|
|
szheng 14-Jul-2000: pr604226
|
|
@endif */
|
|
#define PDI_rdbms_error EMH_API_error_base + 31
|
|
|
|
#define PDI_foreign_object EMH_API_error_base + 32
|
|
|
|
/** @if DOX_IGNORE
|
|
(x_vivek) 18-Jul-2003 For Appuid NR in Alt-IDs proj
|
|
@endif */
|
|
#define PDI_more_than_one_objects EMH_API_error_base + 33
|
|
|
|
/** @if DOX_IGNORE
|
|
(RAB) 22-Jan-2004: ForAssy - Invalid TCEng preference scope given
|
|
@endif */
|
|
#define PDI_invalid_pref_scope EMH_API_error_base + 34
|
|
|
|
/** @if DOX_IGNORE
|
|
(x_tiruna) 24-Nov-2005 NXMGR Remote Checkout
|
|
if Remote Item is not checked out
|
|
@endif */
|
|
#define PDI_remote_item_not_co EMH_API_error_base + 35
|
|
|
|
/** @if DOX_IGNORE
|
|
(x_tiruna) 24-Nov-2005 NXMGR Remote Checkout
|
|
If the given object is not remote
|
|
@endif */
|
|
#define PDI_not_remote EMH_API_error_base + 36
|
|
|
|
/** server disconnected or time out */
|
|
#define PDI_server_disconnected EMH_API_error_base + 37
|
|
|
|
/** @if DOX_IGNORE
|
|
<x_tiruna>:07-Dec-2006: Fix PR#5651823 ,PR#PR#5558583
|
|
This indicates that the Item is already registered
|
|
@endif */
|
|
#define PDI_item_already_registered EMH_API_error_base + 38
|
|
|
|
/** Last used error token */
|
|
#define PDI_unused_error EMH_API_error_base + 39
|
|
|
|
|
|
/** @if DOX_IGNORE
|
|
(PDH) 28-Jun-96
|
|
These error numbers are specific to TC. The NX half should not attempt to
|
|
register text for them. At present the TC half does not either so when these are
|
|
passed back, the NX half gets PDI_pdm_internal as the error code, then the
|
|
explanation that TC provides is the text that went into the ERROR_raise. We
|
|
could add text registration in the TC half at some point.
|
|
@endif */
|
|
|
|
#define PDI_tc_error_base EMH_API_error_base + 1000
|
|
|
|
/** TC_NX_View_Type not present in pref file (pdi_im_rep.c) */
|
|
#define PDI_im_no_nx_view_type PDI_tc_error_base + 1
|
|
|
|
/** Volume is full */
|
|
#define PDI_volume_full PDI_tc_error_base + 2
|
|
|
|
/** Cannot contact Tcfs */
|
|
#define PDI_tcfs_error PDI_tc_error_base + 3
|
|
|
|
/**
|
|
@name Class IDs
|
|
@{
|
|
*/
|
|
#define PDI_class_t int
|
|
#define PDI_class_p_t int*
|
|
|
|
#define PDI_none_class 0
|
|
#define PDI_part_class 1
|
|
#define PDI_partrev_class 2
|
|
#define PDI_rep_class 3
|
|
#define PDI_reprev_class 4
|
|
#define PDI_appdata_class 5
|
|
#define PDI_appver_class 6
|
|
#define PDI_container_class 7
|
|
#define PDI_component_class 8
|
|
#define PDI_attribute_class 9
|
|
#define PDI_apptype_class 10
|
|
#define PDI_reltype_class 11
|
|
#define PDI_parttype_class 12
|
|
#define PDI_attr_mapping_class 13
|
|
#define PDI_lov_class 14
|
|
#define PDI_opaque_object_class 15
|
|
#define PDI_unused_class 16
|
|
#define PDI_CLASS_COUNT 17
|
|
/** @} */
|
|
|
|
/**
|
|
@name File formats in Application Data Versions
|
|
@{
|
|
*/
|
|
#define PDI_appver_format_t int
|
|
#define PDI_appver_format_p_t int*
|
|
|
|
#define PDI_none_format 0
|
|
#define PDI_ascii_format 1
|
|
#define PDI_binary_format 2
|
|
#define PDI_unused_format 3
|
|
#define PDI_APPVER_FORMAT_COUNT 4
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
/**
|
|
Corresponding names of format. Initialized in pdi_utils.c
|
|
*/
|
|
extern NXMGR_IM_API char* PDI_format_name(
|
|
int format
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/**
|
|
@name Supported Machine types
|
|
@{
|
|
*/
|
|
#define PDI_machine_type_t int
|
|
|
|
#define PDI_none_machine_type 0
|
|
#define PDI_unix 1
|
|
/** @if DOX_IGNORE
|
|
PDI_vms 2
|
|
@endif */
|
|
#define PDI_wnt 3
|
|
#define PDI_unused_machine_type 4
|
|
#define PDI_MACHINE_TYPE_COUNT 5
|
|
/** @} */
|
|
|
|
/**
|
|
@name Network Transports supported by RPC
|
|
@{
|
|
*/
|
|
#define PDI_transport_t int
|
|
|
|
#define PDI_none_transport 0
|
|
#define PDI_sys5_msg 1
|
|
#define PDI_tcpip 2
|
|
#define PDI_sockets 3
|
|
#define PDI_tc_ss 4
|
|
/** @if DOX_IGNORE
|
|
PDI_vms_mbx 5
|
|
@endif */
|
|
#define PDI_unused_transport 6
|
|
#define PDI_TRANSPORT_COUNT 7
|
|
/** @} */
|
|
|
|
/**
|
|
@name Possible values for lock status
|
|
|
|
Returned by PDI_ask_appdata_lock_status()
|
|
@{
|
|
*/
|
|
#define PDI_lock_status_t int
|
|
|
|
#define PDI_not_locked 0
|
|
#define PDI_locked_by_caller 1
|
|
#define PDI_locked_by_other 2
|
|
#define PDI_locked_and_exported 3
|
|
#define PDI_checked_out 4
|
|
/** @} */
|
|
|
|
/**
|
|
@name States of part number validity
|
|
|
|
Returned from PDI_validate_part_rev_id()
|
|
@{
|
|
*/
|
|
#define PDI_partno_validity_t int
|
|
|
|
#define PDI_partno_valid 0
|
|
#define PDI_partno_invalid 1
|
|
#define PDI_partno_modified 2
|
|
|
|
/** @if DOX_IGNORE
|
|
(Anurag) 30-Jun-1999 Fix for PR#1003853
|
|
@endif */
|
|
#define PDI_partno_override 3
|
|
/** @} */
|
|
|
|
/**
|
|
@name Constants for use by the operations functions and their callers
|
|
@{
|
|
*/
|
|
#define PDI_operation_ok 0
|
|
#define PDI_operation_failed 1
|
|
|
|
#define PDI_nx_load_operation "Unigraphics Part Load"
|
|
#define PDI_nx_load_operation_NX3 "Part Load"
|
|
/** @} */
|
|
|
|
/**
|
|
@name Bitmask for PDI_forget_var_configs
|
|
@{
|
|
*/
|
|
#define PDI_DISPLAYED_PART_ROLE ( 1 << 0 )
|
|
#define PDI_PROD_ASSY_ROLE ( 1 << 1 )
|
|
/** @} */
|
|
|
|
/**
|
|
@name Tokens for the PDI search functions
|
|
@{
|
|
*/
|
|
#define PDI_SEARCH_FIND_MORE 0
|
|
#define PDI_SEARCH_FIND_ALL -1
|
|
|
|
#define PDI_SEARCH_CONTEXT_ALL 0
|
|
#define PDI_SEARCH_CONTEXT_INFO 1
|
|
/** @} */
|
|
|
|
/**
|
|
These correspond directly to TC's #LOV_usage_t.
|
|
*/
|
|
typedef enum
|
|
{
|
|
PDI_LOV_unknown,
|
|
PDI_LOV_exhaustive,
|
|
PDI_LOV_suggested,
|
|
PDI_LOV_bounded
|
|
} PDI_LOV_usage_t;
|
|
|
|
/**
|
|
Values describing value types supported by attribute-synchronisation.
|
|
*/
|
|
typedef enum
|
|
{
|
|
PDI_int_value,
|
|
PDI_double_value,
|
|
PDI_string_value,
|
|
PDI_date_value,
|
|
PDI_tag_value,
|
|
PDI_logical_value,
|
|
PDI_unknown_value,
|
|
PDI_unsupported_value,
|
|
PDI_strings_value
|
|
} PDI_value_t;
|
|
|
|
/**
|
|
@name Flags
|
|
|
|
Indicate which mass properties are actually specified for AppData objects
|
|
@{
|
|
*/
|
|
|
|
/** An indication of how accurrately the values were calculated */
|
|
#define PDI_masspr_accuracy_defined (1 << 0)
|
|
|
|
/** The Mass (and corresponding error) is defined */
|
|
#define PDI_masspr_mass_defined (1 << 1)
|
|
|
|
/** The Volume (and corresponding error) is defined */
|
|
#define PDI_masspr_volume_defined (1 << 2)
|
|
|
|
/** The Density is defined */
|
|
#define PDI_masspr_density_defined (1 << 3)
|
|
|
|
/** The Surface Area (and corresponding error) is defined */
|
|
#define PDI_masspr_area_defined (1 << 4)
|
|
|
|
/** The Center Of Mass vector [X,Y,Z] (and its error distance) is defined */
|
|
#define PDI_masspr_com_defined (1 << 5)
|
|
|
|
/**
|
|
Both the Moments Of Inertia [XX, YY, ZZ] and Products Of Inertia
|
|
[XY, XZ, YZ] are defined (with its error range)
|
|
*/
|
|
#define PDI_masspr_inertia_defined (1 << 6)
|
|
|
|
/** The minimum allowable mass for this part is defined */
|
|
#define PDI_masspr_min_mass_defined (1 << 7)
|
|
|
|
/** The maximum allowable mass for this part is defined */
|
|
#define PDI_masspr_max_mass_defined (1 << 8)
|
|
/** @} */
|
|
|
|
/**
|
|
@name Indexes
|
|
|
|
For the order in which the Mass Property values are passed
|
|
@{
|
|
*/
|
|
#define PDI_masspr_accuracy_index 0
|
|
#define PDI_masspr_mass_index 1
|
|
#define PDI_masspr_mass_err_index 2
|
|
#define PDI_masspr_volume_index 3
|
|
#define PDI_masspr_volume_err_index 4
|
|
#define PDI_masspr_area_index 5
|
|
#define PDI_masspr_area_err_index 6
|
|
#define PDI_masspr_density_index 7
|
|
#define PDI_masspr_com_x_index 8
|
|
#define PDI_masspr_com_y_index 9
|
|
#define PDI_masspr_com_z_index 10
|
|
#define PDI_masspr_com_err_index 11
|
|
#define PDI_masspr_moi_xx_index 12
|
|
#define PDI_masspr_moi_yy_index 13
|
|
#define PDI_masspr_moi_zz_index 14
|
|
#define PDI_masspr_poi_xy_index 15
|
|
#define PDI_masspr_poi_xz_index 16
|
|
#define PDI_masspr_poi_yz_index 17
|
|
#define PDI_masspr_inertia_err_index 18
|
|
#define PDI_masspr_min_mass_index 19
|
|
#define PDI_masspr_max_mass_index 20
|
|
|
|
#define PDI_MASSPR_ARRAY_SIZE 21
|
|
/** @} */
|
|
|
|
/**
|
|
@name Prototypes and global variables
|
|
|
|
For error handling system in PDI module interface
|
|
@{
|
|
*/
|
|
|
|
typedef PDI_return_code_t (*PDI_error_handler_t)(
|
|
const char* function_name,
|
|
const PDI_return_code_t code
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
extern NXMGR_IM_API void PDI_set_error_handler(
|
|
PDI_error_handler_t handler
|
|
);
|
|
|
|
extern NXMGR_IM_API void PDI_allow_no_errors(void);
|
|
|
|
extern NXMGR_IM_API void PDI_allow_selected_errors(
|
|
const int error_count,
|
|
const PDI_return_code_t errors[]
|
|
);
|
|
|
|
extern NXMGR_IM_API void PDI_allow_all_errors(void);
|
|
|
|
/** @} */
|
|
|
|
/**
|
|
@name Initialization routines for client and server processes
|
|
@{
|
|
*/
|
|
|
|
typedef void (*PDI_input_callback_proc)(
|
|
void*, /**< (I) User defined data object */
|
|
int*, /**< (I) A file descriptor used in 'select' */
|
|
void** /**< (I) Returned from add input func */
|
|
);
|
|
|
|
typedef void* (*PDI_add_input_func_t)(
|
|
void*, /**< (I) (Motif) application context */
|
|
int, /**< (I) A file descriptor used in 'select' */
|
|
void*, /**< (I) Event type that triggers callback */
|
|
PDI_input_callback_proc, /**< (I) Routine to be called on event */
|
|
void* /**< (I) User defined data object */
|
|
);
|
|
|
|
typedef void (*PDI_remove_input_func_t)(
|
|
void* /**< (I) Returned from add input func */
|
|
);
|
|
|
|
extern NXMGR_IM_API PDI_return_code_t PDI_init_server(
|
|
char* process_id, /**< (I) */
|
|
void* ctxt, /**< (I) */
|
|
PDI_transport_t transport, /**< (I) */
|
|
char* ipcdata, /**< (I) */
|
|
PDI_add_input_func_t AppAddInput, /**< (I) */
|
|
PDI_remove_input_func_t RemoveInput /**< (I) */
|
|
);
|
|
|
|
extern NXMGR_IM_API PDI_return_code_t PDI_server_shutdown( void );
|
|
|
|
extern NXMGR_IM_API PDI_return_code_t PDI_init_client(
|
|
char* process_id /**< (I) */
|
|
);
|
|
|
|
extern NXMGR_IM_API void PDI_version(
|
|
char** letters, /**< (OF) */
|
|
int* major_number, /**< (O) */
|
|
int* minor_number /**< (O) */
|
|
);
|
|
|
|
/** @} */
|
|
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#include <nxmgr_im/libnxmgr_im_undef.h>
|
|
#endif
|