00001
00002
00003
00004
00005
00012
00013
00014 #ifndef PIE_H
00015 #define PIE_H
00016
00017 #include <tc/tc_startup.h>
00018
00019 #include <tccore/workspaceobject.h>
00020 #include <pie/libpie_exports.h>
00021
00043 #define PIE_name_size_c 32
00044 #define PIE_context_size_c 240
00045 #define PIE_desc_size_c 240
00046 #define CLAUSE_DELIMITERS ":."
00047 #define PIE_COLON_DELIMITER ":"
00048 #define PIE_DOT_DELIMITER "."
00049 #define PIE_WILD_CARD_ASTERIX "*"
00050
00051 #define CLAUSE_TYPE_STR "TYPE"
00052 #define CLAUSE_CLASS_STR "CLASS"
00053 #define CLAUSE_PROPERTY_STR "PROPERTY"
00054 #define CLAUSE_ATTRIBUTE_STR "ATTRIBUTE"
00055 #define CLAUSE_RELATION_STR "RELATION"
00056 #define CLAUSE_RELATIONP2S_STR "RELATIONP2S"
00057 #define CLAUSE_RELATIONS2P_STR "RELATIONS2P"
00058 #define CLAUSE_REFBY_STR "REFBY"
00059 #define CLAUSE_OCCTYPE_STR "OCCTYPE"
00060 #define CLAUSE_CONTENT_STR "CONTENT"
00061 #define CLAUSE_FUNCTION_STR "FUNCTION"
00062
00063 #define PROCESS_DIRECTIVE "PROCESS"
00064 #define NOPROCESS_TRAVERSE_DIRECTIVE "TRAVERSE_NO_PROCESS"
00065 #define PROCESS_AND_TRAVERSE_DIRECTIVE "TRAVERSE_AND_PROCESS"
00066
00067 #define CLAUSE_PROPERTY_RULE_DO_STR "DO"
00068 #define CLAUSE_PROPERTY_RULE_SKIP_STR "SKIP"
00069 #define CLAUSE_PROPERTY_RULE_SKIP_GRM_STR "SKIP_GRM"
00070
00072 #define CLAUSE_PROPERTY_RULE_STUB_KEY_STR "STUB_KEY"
00073
00075 #define CLAUSE_PROPERTY_RULE_CAND_KEY_STR "CAND_KEY"
00076
00077 #define TRANSIENT_VOLUME_ROOTDIR "Transient_Volume_RootDir"
00078
00082 typedef enum PIE_type_e
00083 {
00084 PIE_class = 0,
00085 PIE_type = 1
00086 } PIE_type_t;
00087
00091 typedef enum PIE_connection_type_e
00092 {
00093 PIE_property = 0,
00094 PIE_attribute = 1,
00095 PIE_relation_primary = 2,
00096 PIE_relation_secondary = 3,
00097 PIE_referenced_by = 4,
00098 PIE_all = 5,
00099 PIE_occurrence_type = 6,
00100 PIE_content = 7,
00101 PIE_function = 8
00102 } PIE_connection_type_t;
00103
00112 typedef enum PIE_rule_type_e
00113 {
00114 PIE_skip = 1,
00115 PIE_process = 2,
00116 PIE_travers_no_process = 4,
00117 PIE_travers_and_process = 6,
00118 PIE_skip_grm = 32
00119 } PIE_rule_type_t;
00120
00124 typedef enum PIE_prop_rule_type_e
00125 {
00126 PIE_prop_do = 0,
00127 PIE_prop_skip = 1,
00128 PIE_prop_stub_key = 2,
00129 PIE_prop_cand_key = 3
00130 } PIE_prop_rule_type_t;
00131
00135 typedef enum PIE_direction_e
00136 {
00137 PIE_teamcenter2PLMXML = 0,
00138 PIE_PLMXML2teamcenter = 1,
00139 PIE_direction_both = 2
00140 } PIE_direction_t;
00141
00145 typedef enum PIE_schema_e
00146 {
00147 PIE_ALL_schema = 2,
00148 PIE_PLMXML_schema = 0,
00149 PIE_TcXML_schema = 1
00150 } PIE_schema_t;
00151
00155 #define PIE_TcPLMXML_schema PIE_TcXML_schema
00156
00160 typedef enum PIE_transferoptionset_scope_e
00161 {
00162 PIE_transferoptionset_private = 0,
00163 PIE_transferoptionset_public = 1,
00164 PIE_transferoptionset_all = 2
00165 } PIE_transferoptionset_scope_t;
00166
00170 typedef enum PIE_scope_e
00171 {
00172 PIE_TEAMCENTER = 0,
00173 PIE_PLMXML = 1
00174 } PIE_scope_t;
00175
00176 typedef enum PIE_action_e
00177 {
00178 PIE_PREACTION = 0,
00179 PIE_DURINGACTION = 1,
00180 PIE_POSTACTION = 2
00181 } PIE_action_t;
00182
00186 typedef enum PIE_object_status_in_map_e
00187 {
00188 PIE_NOCOMMENT = 0,
00189 PIE_NEW = 1,
00190 PIE_MOD = 2,
00192 PIE_PROC_NO_TRAV = 3,
00194 PIE_PROC_AGAIN = 4,
00196 PIE_DS_REVISED = 5,
00198 PIE_DS_ADD_TO_IC = 6,
00200 PIE_DS_TO_VERSION = 7,
00201 PIE_BOMLine_editable = 8,
00202 PIE_POMCLASS = 1024,
00203 PIE_DEL = 10,
00204 PIE_INCOMPLETE = 11
00206 } PIE_object_status_in_map_t;
00207
00211 typedef enum PIE_user_exits_type_e
00212 {
00213 PIE_internal_user_exits = 0,
00214 PIE_external_user_exits = 1
00215 }PIE_user_exits_type_t;
00216
00217
00218 #ifdef __cplusplus
00219 extern "C"{
00220 #endif
00221
00226 extern PIE_API int PIE_find_transfer_mode(
00227 const char transfer_mode_name[WSO_name_size_c +1],
00228 const char context_string[PIE_context_size_c +1],
00229 int* n_transfer_mode_tags,
00230 tag_t** transfer_mode_tags
00231 );
00232
00236 extern PIE_API int PIE_find_transfer_mode2(
00237 const char *transfer_mode_name,
00238 const char *context_string,
00239 int* n_transfer_mode_tags,
00240 tag_t** transfer_mode_tags
00241 );
00242
00243 extern PIE_API int PIE_extent_transfer_modes(
00244 int* n_transfer_modes,
00245 tag_t** transfer_modes
00246 );
00247
00252 extern PIE_API int PIE_create_transfer_mode_instance(
00253 const char transfer_mode_name[WSO_name_size_c +1],
00254 const char transfer_mode_desc[WSO_desc_size_c +1],
00255 const char context_string[PIE_context_size_c +1],
00256 tag_t* transfer_mode
00257 );
00258
00262 extern PIE_API int PIE_create_transfer_mode_instance2(
00263 const char *transfer_mode_name,
00264 const char *transfer_mode_desc,
00265 const char *context_string,
00266 tag_t* transfer_mode
00267 );
00268
00269
00274 extern PIE_API int PIE_transfer_mode_get_context_string(
00275 tag_t transfer_mode,
00276 char context_string[PIE_context_size_c + 1]
00277 );
00278
00279
00280 extern PIE_API int PIE_transfer_mode_get_context_string2(
00281 tag_t transfer_mode,
00282 char **context_string
00283 );
00284
00289 extern PIE_API int PIE_transfer_mode_set_context_string(
00290 tag_t transfer_mode,
00291 const char context_string[PIE_context_size_c +1]
00292 );
00293
00294
00295 extern PIE_API int PIE_transfer_mode_set_context_string2(
00296 tag_t transfer_mode,
00297 const char *context_string
00298 );
00299
00300 extern PIE_API int PIE_transfer_mode_set_xslt(
00301 tag_t transfer_mode,
00302 int n_files,
00303 tag_t* xslt_files
00304 );
00305
00306 extern PIE_API int PIE_transfer_mode_remove_xslt(
00307 tag_t transfer_mode,
00308 tag_t xslt_file
00309 );
00310
00311 extern PIE_API int PIE_transfer_mode_get_xslt(
00312 tag_t transfer_mode,
00313 int* n_files,
00314 tag_t** xslt_files
00315 );
00316
00317 extern PIE_API int PIE_transfer_mode_get_direction(
00318 tag_t transfer_mode,
00319 PIE_direction_t* direction
00320 );
00321
00322 extern PIE_API int PIE_transfer_mode_set_direction(
00323 tag_t transfer_mode,
00324 PIE_direction_t direction
00325 );
00326
00327 extern PIE_API int PIE_transfer_mode_get_schema_format(
00328 tag_t transfer_mode,
00329 PIE_schema_t* schema_format
00330 );
00331
00332 extern PIE_API int PIE_transfer_mode_set_schema_format(
00333 tag_t transfer_mode,
00334 PIE_schema_t schema_format
00335 );
00336
00337 extern PIE_API int PIE_transfer_mode_get_incremental(
00338 tag_t transfer_mode,
00339 logical* incremental
00340 );
00341
00342 extern PIE_API int PIE_transfer_mode_set_incremental(
00343 tag_t transfer_mode,
00344 logical incremental
00345 );
00346
00347 extern PIE_API int PIE_transfer_mode_get_multisite(
00348 tag_t transfer_mode,
00349 logical *multisite
00350 );
00351
00352 extern PIE_API int PIE_transfer_mode_set_multisite(
00353 tag_t transfer_mode,
00354 logical multisite
00355 );
00356
00357 extern PIE_API int PIE_transfer_mode_get_closures(
00358 tag_t transfer_mode,
00359 tag_t* closure
00360 );
00361
00362 extern PIE_API int PIE_transfer_mode_set_closures(
00363 tag_t transfer_mode,
00364 tag_t closure
00365 );
00366
00367 extern PIE_API int PIE_transfer_mode_get_filters(
00368 tag_t transfer_mode,
00369 tag_t* filter
00370 );
00371
00372 extern PIE_API int PIE_transfer_mode_set_filters(
00373 tag_t transfer_mode,
00374 tag_t filter
00375 );
00376
00377 extern PIE_API int PIE_transfer_mode_load_defaults(
00378 tag_t transfer_mode
00379 );
00380
00381 extern PIE_API int PIE_transfer_mode_get_prop_set(
00382 tag_t transfer_mode,
00383 tag_t* prop_set
00384 );
00385
00386 extern PIE_API int PIE_transfer_mode_set_prop_set(
00387 tag_t transfer_mode,
00388 tag_t prop_set
00389 );
00390
00391 extern PIE_API int PIE_transfer_mode_get_config_objs(
00392 tag_t transfer_mode,
00393 int* n_config_objs,
00394 tag_t** config_objs
00395 );
00396
00397 extern PIE_API int PIE_transfer_mode_set_config_objs(
00398 tag_t transfer_mode,
00399 int n_config_objs,
00400 tag_t* config_objs
00401 );
00402
00403 extern PIE_API int PIE_transfer_mode_get_action_list(
00404 tag_t transfer_mode,
00405 int* n_action_list_objs,
00406 tag_t** action_list_objs
00407 );
00408
00409 extern PIE_API int PIE_transfer_mode_set_action_list(
00410 tag_t transfer_mode,
00411 int n_action_list_objs,
00412 tag_t* action_list_objs
00413 );
00414
00419 extern PIE_API int PIE_create_closure_rules(
00420 const char name[PIE_name_size_c + 1],
00421 const char desc[PIE_desc_size_c + 1],
00422 PIE_scope_t scope,
00423 tag_t* closure_tag
00424 );
00425
00429 extern PIE_API int PIE_create_closure_rules2(
00430 const char *name,
00431 const char *desc,
00432 PIE_scope_t scope,
00433 tag_t* closure_tag
00434 );
00435
00436 extern PIE_API int PIE_closure_add_rule_clause(
00437 tag_t closure_tag,
00438 PIE_type_t p_class_or_type,
00439 const char* p_name,
00440 PIE_connection_type_t c_type,
00441 const char* c_name,
00442 const char* prop_name,
00443 PIE_type_t s_class_or_type,
00444 const char* s_name,
00445 PIE_rule_type_t rule_type
00446 );
00447
00448 extern PIE_API int PIE_closure_set_rule_clause(
00449 tag_t closure_tag,
00450 int index,
00451 PIE_type_t p_class_or_type,
00452 const char* p_name,
00453 PIE_connection_type_t c_type,
00454 const char* c_name,
00455 const char* prop_name,
00456 PIE_type_t s_class_or_type,
00457 const char* s_name,
00458 PIE_rule_type_t rule_type
00459 );
00460
00465 extern PIE_API int PIE_describe_closure_rule(
00466 tag_t closure_tag,
00467 char name[PIE_name_size_c + 1],
00468 char desc[PIE_desc_size_c + 1],
00469 PIE_scope_t* scope,
00470 int* n_clauses
00471 );
00472
00476 extern PIE_API int PIE_describe_closure_rule2(
00477 tag_t closure_tag,
00478 char **name,
00479 char **desc,
00480 PIE_scope_t* scope,
00481 int* n_clauses
00482 );
00483
00484 extern PIE_API int PIE_closure_get_rule_clause(
00485 tag_t closure_tag,
00486 int index,
00487 PIE_type_t* p_class_or_type,
00488 char** p_name,
00489 PIE_connection_type_t* c_type,
00490 char** c_name,
00491 char** prop_name,
00492 PIE_type_t* s_class_or_type,
00493 char** s_name,
00494 PIE_rule_type_t* rule_type
00495 );
00496
00497
00502 extern PIE_API int PIE_find_closure_rules(
00503 const char name[PIE_name_size_c + 1],
00504 PIE_scope_t scope,
00505 int* n_closure_tags,
00506 tag_t** closure_tags
00507 );
00508
00512 extern PIE_API int PIE_find_closure_rules2(
00513 const char *name,
00514 PIE_scope_t scope,
00515 int* n_closure_tags,
00516 tag_t** closure_tags
00517 );
00518
00523 extern PIE_API int PIE_create_filter(
00524 const char name[PIE_name_size_c + 1],
00525 const char desc[PIE_desc_size_c + 1],
00526 PIE_scope_t scope,
00527 tag_t* filter
00528 );
00529
00533 extern PIE_API int PIE_create_filter2(
00534 const char *name,
00535 const char *desc,
00536 PIE_scope_t scope,
00537 tag_t* filter
00538 );
00539
00544 extern PIE_API int PIE_find_filter(
00545 const char name[PIE_name_size_c + 1],
00546 PIE_scope_t scope,
00547 int* n_filter_tags,
00548 tag_t** filter_tags
00549 );
00550
00551
00552 extern PIE_API int PIE_find_filter2(
00553 const char *name,
00554 PIE_scope_t scope,
00555 int* n_filter_tags,
00556 tag_t** filter_tags
00557 );
00558
00563 extern PIE_API int PIE_describe_filter(
00564 tag_t filter_tag,
00565 char name[PIE_name_size_c + 1],
00566 char desc[PIE_desc_size_c + 1],
00567 PIE_scope_t* scope,
00568 int* n_clauses
00569 );
00570
00574 extern PIE_API int PIE_describe_filter2(
00575 tag_t filter_tag,
00576 char **name,
00577 char **desc,
00578 PIE_scope_t* scope,
00579 int* n_clauses
00580 );
00581
00582 extern PIE_API int PIE_filter_add_clause(
00583 tag_t filter,
00584 PIE_type_t type_or_class,
00585 const char* p_name,
00586 const char* filter_name
00587 );
00588
00589 extern PIE_API int PIE_filter_get_clause(
00590 tag_t filter,
00591 int index,
00592 PIE_type_t* type_or_class,
00593 char** p_name,
00594 char** filter_name
00595 );
00596
00606 extern PIE_API int PIE_create_action(
00607 const char name[PIE_name_size_c + 1],
00608 const char desc[PIE_desc_size_c + 1],
00609 PIE_scope_t scope,
00610 PIE_action_t type,
00611 const char* actionName,
00612 tag_t* action
00613 );
00614
00618 extern PIE_API int PIE_create_action2(
00619 const char *name,
00620 const char *desc,
00621 PIE_scope_t scope,
00622 PIE_action_t type,
00623 const char* actionName,
00624 tag_t* action
00625 );
00626
00631 extern PIE_API int PIE_find_action(
00632 const char name[PIE_name_size_c + 1],
00633 PIE_scope_t scope,
00634 int* n_action_tags,
00635 tag_t** action_tags
00636 );
00637
00638
00639 extern PIE_API int PIE_find_action2(
00640 const char *name,
00641 PIE_scope_t scope,
00642 int* n_action_tags,
00643 tag_t** action_tags
00644 );
00645
00650 extern PIE_API int PIE_describe_action(
00651 tag_t action_tag,
00652 char name[PIE_name_size_c + 1],
00653 char desc[PIE_desc_size_c + 1],
00654 PIE_scope_t* scope,
00655 PIE_action_t* type,
00656 char** actionName
00657 );
00658
00662 extern PIE_API int PIE_describe_action2(
00663 tag_t action_tag,
00664 char **name,
00665 char **desc,
00666 PIE_scope_t* scope,
00667 PIE_action_t* type,
00668 char** actionName
00669 );
00670
00671 extern PIE_API int PIE_action_set_func_name(
00672 tag_t action,
00673 const char* func_name
00674 );
00675
00676 extern PIE_API int PIE_action_get_func_name(
00677 tag_t action,
00678 char** func_name
00679 );
00680
00692 extern PIE_API int PIE_create_prop_set(
00693 const char name[PIE_name_size_c + 1],
00694 const char desc[PIE_desc_size_c + 1],
00695 PIE_scope_t scope,
00696 tag_t* prop_set
00697 );
00698
00702 extern PIE_API int PIE_create_prop_set2(
00703 const char *name,
00704 const char *desc,
00705 PIE_scope_t scope,
00706 tag_t* prop_set
00707 );
00708
00713 extern PIE_API int PIE_find_prop_set(
00714 const char name[PIE_name_size_c + 1],
00715 PIE_scope_t scope,
00716 int* n_propset_tags,
00717 tag_t** propset_tags
00718 );
00719
00723 extern PIE_API int PIE_find_prop_set2(
00724 const char *name,
00725 PIE_scope_t scope,
00726 int* n_propset_tags,
00727 tag_t** propset_tags
00728 );
00729
00730 extern PIE_API int PIE_prop_add_clause(
00731 tag_t prop_set,
00732 PIE_type_t type_or_class,
00733 const char* p_name,
00734 PIE_connection_type_t prop_or_attr,
00735 const char* a_name,
00736 PIE_prop_rule_type_t rule_type
00737 );
00738
00743 extern PIE_API int PIE_describe_prop_set(
00744 tag_t prop_set,
00745 char name[PIE_name_size_c + 1],
00746 char desc[PIE_desc_size_c + 1],
00747 PIE_scope_t* scope,
00748 int* n_clauses
00749 );
00750
00754 extern PIE_API int PIE_describe_prop_set2(
00755 tag_t prop_set,
00756 char **name,
00757 char **desc,
00758 PIE_scope_t* scope,
00759 int* n_clauses
00760 );
00761
00762 extern PIE_API int PIE_prop_get_clause(
00763 tag_t prop_set,
00764 int index,
00765 PIE_type_t* type_or_class,
00766 char** p_name,
00767 PIE_connection_type_t* prop_or_attr,
00768 char** a_name,
00769 PIE_prop_rule_type_t* rule_type
00770 );
00771
00787 extern PIE_API int PIE_get_available_transfer_option_sets(
00788 tag_t user,
00789 tag_t group,
00790 tag_t role,
00791 int n_sites,
00792 tag_t * sites,
00793 logical is_push,
00794 logical is_export,
00795 int * n_optionsets,
00796 tag_t ** option_set_objs
00797 );
00798
00803 extern PIE_API int PIE_describe_option_set(
00804 tag_t option_set_tag,
00805 char option_set_name[WSO_name_size_c + 1],
00806 char option_set_description[WSO_desc_size_c + 1],
00807 tag_t* transfermode,
00808 char transfermode_name[WSO_name_size_c + 1],
00809 tag_t* site,
00810 int* n_options,
00811 char*** option_names,
00812 char*** option_display_names,
00813 char*** option_values,
00814 char*** option_descriptions,
00815 char*** option_group_names,
00816 logical** option_read_only_flags
00817 );
00818
00822 extern PIE_API int PIE_describe_option_set2(
00823 tag_t option_set_tag,
00824 char **option_set_name,
00825 char **option_set_description,
00826 tag_t* transfermode,
00827 char **transfermode_name,
00828 tag_t* site,
00829 int* n_options,
00830 char*** option_names,
00831 char*** option_display_names,
00832 char*** option_values,
00833 char*** option_descriptions,
00834 char*** option_group_names,
00835 logical** option_read_only_flags
00836 );
00837
00845 extern PIE_API int PIE_create_session(
00846 tag_t* session
00847 );
00848
00849 extern PIE_API int PIE_create_session_for_ai(
00850 tag_t request,
00851 tag_t* session
00852 );
00853
00854 extern PIE_API int PIE_session_set_file(
00855 tag_t session,
00856 const char* file_name
00857 );
00858
00859 extern PIE_API int PIE_session_ask_file(
00860 tag_t session,
00861 const char** file_name
00862 );
00863
00864 extern PIE_API int PIE_session_set_log_file(
00865 tag_t session,
00866 const char* file_name
00867 );
00868
00869 extern PIE_API int PIE_session_ask_transfer_mode(
00870 tag_t session,
00871 tag_t* transfer_mode
00872 );
00873
00874 extern PIE_API int PIE_session_set_transfer_mode(
00875 tag_t session,
00876 tag_t transfer_mode
00877 );
00878
00879 extern PIE_API int PIE_session_set_revision_rule(
00880 tag_t session,
00881 tag_t revision_rule
00882 );
00883
00884 extern PIE_API int PIE_session_export_objects(
00885 tag_t session,
00886 int n_objs,
00887 tag_t* obj_list
00888 );
00889
00890 extern PIE_API int PIE_session_get_target_pathname(
00891 tag_t session,
00892 char** pathname
00893 );
00894
00895 extern PIE_API int PIE_session_set_target_pathname(
00896 tag_t session,
00897 char* pathname
00898 );
00899
00900 extern PIE_API int PIE_session_get_incremental_change(
00901 tag_t session,
00902 tag_t *incremental_change
00903 );
00904
00905 extern PIE_API int PIE_session_set_incremental_change(
00906 tag_t session,
00907 tag_t incremental_change
00908 );
00909
00910 extern PIE_API int PIE_session_set_edit_targets(
00911 tag_t session,
00912 int num_tags,
00913 tag_t* tags_allowed_to_edit
00914 );
00915
00921 extern PIE_API int PIE_session_set_ic_exclusion_list(
00922 tag_t session,
00923 int num_tags,
00924 tag_t* ic_tags_to_exclude
00925 );
00926
00930 extern PIE_API int PIE_session_import_objects(
00931 tag_t session,
00932 logical dry_run,
00933 int* n_objs,
00934 tag_t** obj_list
00935 );
00936
00937 extern PIE_API int PIE_session_get_rule_types(
00938 tag_t session,
00939 int* n_types,
00940 char*** typeNames
00941 );
00948 extern PIE_API int PIE_session_get_log_lines(
00949 tag_t session,
00950 int* n_lines,
00951 char*** log_lines
00952 );
00957 extern PIE_API int PIE_session_get_errors(
00958 tag_t session,
00959 int* n_errors,
00960 tag_t** error_objs,
00961 int** error_codes
00962 );
00967 extern PIE_API int PIE_session_get_import_errors(
00968 tag_t session,
00969 int* n_errors,
00970 char*** error_ids,
00971 int** error_codes
00972 );
00973
00974 extern PIE_API int PIE_delete_session(
00975 tag_t session
00976 );
00977
00978 extern PIE_API int PIE_session_add_info(
00979 tag_t session,
00980 int n_strings,
00981 char** titles,
00982 char** values
00983 );
00984
00985 extern PIE_API int PIE_session_ask_info(
00986 tag_t session,
00987 int* n_strings,
00988 char*** titles,
00989 char*** values
00990 );
00997 extern PIE_API int PIE_session_set_xslt(
00998 tag_t session,
00999 logical override,
01000 int n_files,
01001 tag_t* xslt_files
01002 );
01009 extern PIE_API int PIE_session_get_xslt(
01010 tag_t session,
01011 logical* override,
01012 int* n_files,
01013 tag_t** xslt_files
01014 );
01015
01016 extern PIE_API int PIE_session_get_user_xslt_file(
01017 tag_t session,
01018 char** user_xslt_fname
01019 );
01020
01021 extern PIE_API int PIE_session_set_user_xslt_file(
01022 tag_t session,
01023 const char* user_xslt_fname
01024 );
01025
01030 extern PIE_API int PIE_session_get_export_locales(
01031 tag_t session,
01032 int *exportlocaleCount,
01033 char ***exportLocales
01034 );
01035
01042 extern PIE_API int PIE_session_set_export_locales(
01043 tag_t session,
01044 const int exportlocaleCount,
01045 char **exportLocales
01046 );
01047
01051 extern PIE_API int PIE_session_get_plmxml_document(
01052 tag_t session,
01053 void **plmxmlDoc
01054 );
01055
01060 extern PIE_API int PIE_session_update_processed_object(
01061 tag_t session,
01062 tag_t obj,
01063 void *plmxmlObj,
01064 int failCode
01065 );
01066
01070 extern PIE_API int PIE_session_get_processed_plmxml_object(
01071 tag_t session,
01072 tag_t obj,
01073 void **plmxmlObj,
01074 int *failCode
01075 );
01076
01080 extern PIE_API int PIE_session_get_processed_tc_object(
01081 tag_t session,
01082 void *plmxmlObj,
01083 tag_t *obj,
01084 int *failCode
01085 );
01086
01094 extern PIE_API int PIE_create_delta_info(
01095 tag_t* delta_info
01096 );
01097
01098 extern PIE_API int PIE_create_bom_delta_info(
01099 tag_t* piebomdeltainfo
01100 );
01101
01102 extern PIE_API int PIE_add_delta_objects(
01103 tag_t delta_info,
01104 int n_objs,
01105 tag_t* objs
01106 );
01107
01108 extern PIE_API int PIE_get_delta_adds(
01109 tag_t delta_info,
01110 int* n_objs,
01111 tag_t** added_objs
01112 );
01113
01114 extern PIE_API int PIE_get_delta_deletes(
01115 tag_t delta_info,
01116 int* n_objs,
01117 tag_t** deleted_objs
01118 );
01119
01120 extern PIE_API int PIE_get_delta_modifications(
01121 tag_t delta_info,
01122 int* n_objs,
01123 tag_t** modified_objs
01124 );
01125
01126 extern PIE_API int PIE_create_delta_session(
01127 tag_t old_xml_file,
01128 char* targetPathName,
01129 tag_t* session
01130 );
01131
01132 extern PIE_API int PIE_merge_delta_to_base(
01133 tag_t session,
01134 tag_t* merged_xml_file
01135 );
01136
01139
01140 extern PIE_API int PIE__compare_set_visitor(
01141 tag_t diff_set,
01142 int depth,
01143 void* user_data
01144 );
01145
01147 extern PIE_API int PIE_find_object_by_appref(
01148 char *appuid,
01149 char *appl,
01150 char *site,
01151 char *ver,
01152 int *count,
01153 tag_t **found
01154 );
01155
01156
01165
01166
01167
01171 typedef int (* PIE_user_method_func_t)( void *);
01172 typedef struct PIEUserMethodList_s
01173 {
01174 const char *contextStr;
01175 const char *name;
01176 PIE_user_method_func_t func;
01177 } PIEUserMethodList_t;
01178
01179
01180 extern PIE_API int PIE_register_user_methods(
01181 void* listUserMethods,
01182 int n_methods
01183 );
01184
01188 typedef struct
01189 {
01190 char *teamcenterObject;
01191 char *plmxml_class;
01192 char *teamcenterProperty;
01193 char *plmxmlAttribute;
01194 logical addToParent;
01195 } PIEUserSchemaMap;
01196
01197
01198 extern PIE_API int PIE_register_user_schema(
01199 void* listUserSchemas,
01200 int n_schemas
01201 );
01202
01206 typedef int (* PIE_user_action_func_t)( tag_t );
01207
01208 extern PIE_API int PIE_register_user_action (
01209 char* handleName,
01210 PIE_user_action_func_t user_m
01211 );
01212
01213
01217 typedef PIE_rule_type_t (* PIE_user_filter_func_t)( void *);
01218
01219 extern PIE_API int PIE_register_user_filter (
01220 char* filterRuleName,
01221 PIE_user_filter_func_t user_m
01222 );
01223
01233 extern PIE_API int PIE_get_class_from_callpath(
01234 void *userPath,
01235 char **calledClass
01236 );
01237
01242 extern PIE_API int PIE_get_type_from_callpath(
01243 void *userPath,
01244 char **calledType
01245 );
01246
01251 extern PIE_API int PIE_get_obj_from_callpath(
01252 void *userPath,
01253 tag_t *objTag
01254 );
01255
01260 extern PIE_API int PIE_get_plmxmlobj_from_callpath(
01261 void *userPath,
01262 void **plmxmlobj
01263 );
01264
01269 extern PIE_API int PIE_get_prior_callpath(
01270 void *userPath,
01271 void **prev_userPath
01272 );
01273
01278 extern PIE_API int PIE_find_callpath_by_class(
01279 void *userPath,
01280 char *className,
01281 void **calledPath
01282 );
01283
01288 extern PIE_API int PIE_find_callpath_by_type(
01289 void *userPath,
01290 char *typeName,
01291 void **calledPath
01292 );
01293
01298 extern PIE_API int PIE_get_transfermode(
01299 void *userPath,
01300 tag_t *transMode
01301 );
01302
01307 extern PIE_API int PIE_get_session(
01308 void *userPath,
01309 tag_t *session
01310 );
01311
01316 extern PIE_API int PIE_get_relation_type(
01317 void *userPath,
01318 char **relType
01319 );
01320
01325 extern PIE_API int PIE_get_relation_name(
01326 void *userPath,
01327 char **relName
01328 );
01331 extern PIE_API int PIE_create_working_dir(
01332 char **dirName
01333 );
01334
01335 extern PIE_API int PIE_ensure_file_readable(
01336 char *path
01337 );
01338
01339 extern PIE_API int PIE_send_socket_message(
01340 const char *message,
01341 char *host_n_port,
01342 int *response
01343 );
01344
01345 #ifdef __cplusplus
01346 }
01347 #endif
01348
01349 #include <pie/libpie_undef.h>
01350
01351 #endif
01352