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

tccore/aom.h

Go to the documentation of this file.
00001 /*==============================================================================
00002                 Copyright (c) 2003-2005 UGS Corporation
00003                    Unpublished - All Rights Reserved
00004  ==============================================================================*/
00005 
00008 #ifndef AOM_H
00009 #define AOM_H
00010 
00011 #include <tc/tc_startup.h>
00012 
00013 #include <tccore/workspaceobject.h>
00014 
00015 #include <tccore/libtccore_exports.h>
00016 
00044 #define AOM_archive_size_c     127
00045 #define AOM_ixr_transactionid_size_c 1023
00046 
00047 #define AOM_max_VLA_size 3952
00048 
00049 typedef struct AOM_export_info_entry_s
00050 {
00051     tag_t      site;
00052     char       exporting_user[WSO_name_size_c+1];
00053     char       export_reason[WSO_desc_size_c+1];
00054     char       transaction_id[AOM_ixr_transactionid_size_c+1];
00055     date_t     last_export_date;
00056 } AOM_export_info_entry_t;
00057 
00058 typedef struct AOM_publication_info_entry_s
00059 {
00060     tag_t      site;
00061     char       publishing_user[WSO_name_size_c+1];
00062     date_t     last_publication_date;
00063 } AOM_publication_info_entry_t;
00064 
00065 typedef enum AOM_sync_state_e
00066 {
00067     AOM_SYNC_STATE_UP_TO_DATE                  = 1,
00068     AOM_SYNC_STATE_OUT_OF_DATE                 = 2,
00069     AOM_SYNC_STATE_REPLICA_HAS_LATER_DATE      = 3,
00070     AOM_SYNC_STATE_UNKNOWN                     = 4,
00071     AOM_SYNC_STATE_NOT_REPLICATED              = 5,
00072     AOM_SYNC_STATE_MASTER_DOES_NOT_EXIST       = 6,
00073     AOM_SYNC_STATE_UP_TO_DATE_PER_HUB          = 7,
00074     AOM_SYNC_STATE_UNKNOWN_OWNING_SITE         = 8,
00075     AOM_SYNC_STATE_REPLICA_HAS_BEEN_SUPERSEDED = 9,
00076     AOM_SYNC_STATE_NOT_A_REPLICA               = 10
00077 } AOM_sync_state_t;
00078 
00079 typedef enum AOM_sync_type_e
00080 {
00081     OBJECT_SYNC         = 1,
00082     COMPONENT_SYNC      = 2,
00083     ASSEMBLY_SYNC       = 3
00084 } AOM_sync_type_t;
00085 
00086 #ifdef __cplusplus
00087     extern "C"{
00088 #endif
00089 
00094 extern TCCORE_API int AOM_init_module();
00095 
00099 extern TCCORE_API int AOM_exit_module();
00100 
00107 extern TCCORE_API int AOM_load(
00108     tag_t               obj     
00109     );
00110 
00114 extern TCCORE_API int AOM_load_instances(
00115     int                 n,              
00116     tag_t*              objs,           
00117     int*                n_loaded,       
00118     tag_t**             objs_loaded     
00119     );
00120 
00143 extern TCCORE_API int AOM_refresh(
00144     tag_t               obj,        
00145     int                 lockFlag    
00146     );
00147 
00154 extern TCCORE_API int AOM_save(
00155     tag_t               obj     
00156     );
00157 
00166 extern TCCORE_API int AOM_save_with_extensions(
00167     tag_t               obj     
00168     );
00169 
00173 extern TCCORE_API int AOM_unload(
00174     tag_t               obj     
00175     );
00176 
00182 extern TCCORE_API int AOM_delete(
00183     tag_t               obj     
00184     );
00185 
00190 extern TCCORE_API int AOM_delete_from_parent(
00191     tag_t               obj,        
00192     tag_t               parent      
00193     );
00194 
00199 extern TCCORE_API int AOM_describe_class
00200   ( tag_t             class_id,          
00201     int               n_names,           
00202     char **           attr_names,        
00203     char **           application_name,  
00204     int *             descriptor,        
00205     int *             n_attrs,           
00206     tag_t **          attr_ids           
00207   );
00208 
00209 
00210 extern TCCORE_API int AOM_register_localized_attribute
00211     ( tag_t         class_id,           
00212       tag_t         source_att,         
00213       tag_t         target_att          
00214     );
00215 
00216 
00217 #ifdef __cplusplus
00218 }
00219 #endif
00220 
00224 #define AOM_unlock(t)           (AOM_refresh(t,FALSE))
00225 
00226 #ifdef __cplusplus
00227     extern "C"{
00228 #endif
00229 
00235 extern TCCORE_API int AOM_lock(
00236     tag_t               obj     
00237     );
00238 
00239 extern TCCORE_API int AOM_lock_for_delete(
00240     tag_t               obj     
00241     );
00242 
00246 extern TCCORE_API int AOM_freeze(
00247     tag_t               obj     
00248     );
00249 
00253 extern TCCORE_API int AOM_unfreeze(
00254     tag_t               obj     
00255     );
00256 
00261 extern TCCORE_API int AOM_ask_if_frozen(
00262     tag_t               obj,        
00263     logical*            frozen      
00264     );
00265 
00272 extern TCCORE_API int AOM_set_ownership(
00273     tag_t               obj,    
00274     tag_t               user,   
00275     tag_t               group   
00276     );
00277 
00281 extern TCCORE_API int AOM_ask_owner(
00282     tag_t               obj,            
00283     tag_t*              owning_user     
00284     );
00285 
00289 extern TCCORE_API int AOM_ask_group(
00290     tag_t               obj,            
00291     tag_t*              owning_group    
00292     );
00293 
00297 extern TCCORE_API int AOM_ask_last_modifier(
00298     tag_t               obj,        
00299     tag_t*              a_user      
00300     );
00301 
00305 extern TCCORE_API int AOM_ask_creation_date(
00306     tag_t               obj,            
00307     date_t*             creation_date   
00308     );
00309 
00313 extern TCCORE_API int AOM_ask_modified_date(
00314     tag_t               obj,            
00315     date_t*             modified_date   
00316     );
00317 
00321 extern TCCORE_API int AOM_ask_backup_date(
00322     tag_t               obj,            
00323     date_t*             backup_date     
00324     );
00325 
00332 extern TCCORE_API int AOM_ask_archive_info(
00333     tag_t               obj,                                    
00334     char                archive_info[AOM_archive_size_c + 1]    
00335     );
00336 
00340 extern TCCORE_API int AOM_ask_archive_info2(
00341     tag_t               obj,                                    
00342     char                **archive_info                          
00343     );
00344 
00351 extern TCCORE_API int AOM_ask_archive_date (
00352     tag_t               object_tag,                         
00353     char                date_string [WSO_date_size_c + 1]   
00354     );
00355 
00359 extern TCCORE_API int AOM_ask_archive_date2 (
00360     tag_t               object_tag,                         
00361     char                **date_string                       
00362     );
00363 
00368 extern TCCORE_API int AOM_is_archived (
00369     tag_t               object_tag,     
00370     logical*            answer          
00371     );
00372 
00391 extern TCCORE_API int AOM_get_export_info(
00392     tag_t                       object_tag,     
00393     int*                        n_export_info,  
00394     AOM_export_info_entry_t**   export_info     
00396     );
00397 
00413 extern TCCORE_API int AOM_get_publication_info(
00414     tag_t                           object_tag,             
00415     int*                            n_publication_info,     
00416     AOM_publication_info_entry_t**  publication_info        
00418     );
00419 
00420 extern TCCORE_API int AOM_ask_if_modifiable(
00421     tag_t               object_tag,     
00422     logical*            verdict         
00423     );
00424 
00425 extern TCCORE_API int AOM_ask_name(
00426     tag_t               obj,    
00427     char**              name    
00428     );
00429 
00434 extern TCCORE_API int AOM_is_type_of(
00435     tag_t     object_tag,          
00436     tag_t     type_tag,            
00437     logical * answer               
00440     );
00441 
00442 extern TCCORE_API int AOM_check_sync_state(
00443     int                 n_replicas,     
00444     tag_t*              replica_tags,   
00445     int**               owning_site_ids,
00446     AOM_sync_state_t**  sync_state,     
00447     date_t**            master_lmd,     
00448     date_t**            replica_lmd,    
00449     int**               error_codes     
00450     );
00451 
00452 extern TCCORE_API int AOM_ask_import_record(
00453     tag_t   object_tag,             
00454     tag_t *import_record            
00455     );
00456 
00457 extern TCCORE_API int AOM_ask_import_record_associated_object(
00458     tag_t import_record,            
00459     tag_t *obj_tag                  
00460     );
00461 extern TCCORE_API int AOM_set_query_rewrite_mode
00462 (
00463     logical mode  
00464 );
00465 
00466 extern TCCORE_API int AOM_ask_query_rewrite_mode
00467 (
00468     logical *mode  
00469 );
00470 
00471 extern TCCORE_API int AOM_set_query_locale_neutral
00472 (
00473     logical mode 
00474 );
00475 
00476 extern TCCORE_API int AOM_ask_query_locale_neutral
00477 (
00478         logical *mode 
00479 );
00480 
00490 extern TCCORE_API int AOM_bulk_save_instances(
00491     int n_instances, 
00492     const tag_t *instances 
00493     );
00494 
00497 #ifdef __cplusplus
00498 }
00499 #endif
00500 
00501 #include <tccore/libtccore_undef.h>
00502 
00503 #endif