00001
00002
00003
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