Main Page | Modules | Files | Functions | Code Elements | Data Structures | Deprecated

pie/pie.h

Go to the documentation of this file.
00001 /*==============================================================================
00002                 Copyright (c) 2003-2005 UGS Corporation
00003                    Unpublished - All Rights Reserved
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,                              /* <I> */
00349   logical    *multisite                                   /* <O> */
00350   );
00351 
00352 extern PIE_API int PIE_transfer_mode_set_multisite(
00353   tag_t       transfer_mode,                              /* <I> */
00354   logical     multisite                                   /* <I> */
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,                  /* <I> */
00902     tag_t     *incremental_change       /* <O> */
00903   );
00904 
00905 extern PIE_API int PIE_session_set_incremental_change(
00906     tag_t     session,                  /* <I> */
00907     tag_t     incremental_change        /* <I> */
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 // For AutoTest
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  * External User exits import/export methods support
01167  */
01171 typedef int (* PIE_user_method_func_t)( void *);
01172 typedef struct PIEUserMethodList_s
01173 {
01174     const char             *contextStr;   /* Context String */
01175     const char             *name;         /* Class or type name */
01176     PIE_user_method_func_t  func;         /* User method */
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;     /* Class name of Teamcenter object */
01191     char                 *plmxml_class;    /* Class name of plmxml object */
01192     char                 *teamcenterProperty;   /* Property name of Teamcenter object */
01193     char                 *plmxmlAttribute; /* Attribute name of plmxml object */
01194     logical              addToParent;      /* Flag to add to parent */
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