ITK Function Reference

(V10000.1.0.60_20160308.00)
ics2.h
Go to the documentation of this file.
1 /*HEAD ICS2 HHH CLASSIFICATION */
2 /*==============================================================================
3  Copyright (c) 2003-2005 UGS Corporation
4  Unpublished - All Rights Reserved
5 ==============================================================================*/
6 
13 /* */
14 
15 #ifndef ICS2_H_INCLUDED
16 #define ICS2_H_INCLUDED
17 
43 #define ICS_SEARCH_THIS_CLASS_ONLY ( 1 << 0 )
44 
49 #define ICS_SEARCH_CASE_INSENSITIVE ( 1 << 1 )
50 
58 #define ICS_SEARCH_ORDER_BY_ID ( 1 << 2 )
59 
65 #define ICS_SEARCH_IN_BOTH_UNIT_SYSTEMS ( 1 << 3 )
66 
71 #define ICS_SEARCH_IN_OTHER_UNIT_SYSTEM ( 1 << 4 )
72 
73 
74 
75 #define ICS_ICO_IGNORE_WRITE_PROTECTION_ERRORS ( 1 << 0 )
76 
77 #define ICS_MAX_CLASS_ATTR_SIZE 10
78 
79 #define ICS_DBL_STR_SIZE 64
80 
81 
86 typedef enum ICS_class_flags_s {
88  CLASS_flag_isGroup = (1 << 1),
93 
94 typedef enum ICS_class_properties_s {
95  CLASS_prop_id = -600,
99 
100 
101 typedef int(* ICS_auto_compute_function_t)( tag_t, int );
102 
104 {
110 
111 
116 {
118  char* keylov_id;
119  char* keylov_name;
120  tag_t keylov_tag;
121  char* owning_site;
123  char** shared_sites;
124  int flags;
126  char** keys;
127  char** values;
129  char* selected_key;
131 
132 
145 
146 
150 typedef enum ICS_unit_system_s {
155 
160  CLASS_ATTR_vla = (1 << 0),
164  CLASS_ATTR_unique = (1 << 4),
169  CLASS_ATTR_hidden = (1 << 20),
172  /* */
173 
175 
179 typedef enum ICS_view_type_s {
196 
200 typedef enum ICS_child_type_s {
203  ICS_CHILD_type_view = (1 << 2),
209 
221 
232 
233 
238 #define ICS_REFATTR_INHERITED 1
239 
244 #define ICS_REFATTR_CLASS_LOCAL 2
245 
249 #define ICS_REFATTR_CLASSIFIED_OBJECT 1
250 
254 #define ICS_REFATTR_MASTERFORM 2
255 
259 #define ICS_REFATTR_RELATED_OBJECT 3
260 
264 #define ICS_REFATTR_ICO 4
265 
270 #define ICS_REFATTR_ITEM_ATTR 1
271 
274 #define ICS_REFATTR_PROPERTY ( 1 << 1 )
275 
279 #define ICS_SUBCLASSES_TO_STORAGE_CLASSES ( 1 )
280 
284 #define ICS_IGNORE_UNREADABLE_CHILDREN ( 1 << 1 )
285 
289 #define ICS_COPY_INHERITED_ATTRIBUTES ( 1 << 2 )
290 
294 #define ICS_DRY_RUN ( 1 << 3 )
295 
299 #define ICS_COPY_THIS_CLASS_ONLY ( 1 << 4 )
300 
301 #define ICS_SHARED_IS_ERROR ( 1 << 5 )
302 
306 #define ICS_ADD_ATTRBIUTES_FROM_PARENT ( 1 << 6 )
307 
308 
309 #define ICS_DEFAULT_VIEW "defaultView"
310 
314 #define ICS_IGNORE_MAPPING_ERRORS ( 1 )
315 
320 /* NOTE: The value of this definition must be in sync of the corresponding definition in sml_defines.h */
321 #define ICS_ADD_ATTRIBUTE_MOVE_UP ( 1 << 0 )
322 
323 #define ICS_CLASS_USE_VIEW_IMAGE ( 1 << 0 )
324 
325 #include <ics/libics_exports.h>
326 
327 
328 #ifdef __cplusplus
329 extern "C"{
330 #endif
331 
357  extern ICS_API logical ICS_class_exists(
358  const char* theClassId
359  );
360 
364  extern ICS_API int ICS_class_create(
365  const char* theClassId,
366  const char* theParentId,
367  const char* theName,
368  int theClassFlags,
369  int theAttrCount,
370  int* theAttrIds
372  );
373 
377  extern ICS_API int ICS_class_create_unique( const char* theParentId,
378  const char* theName,
379  int theClassFlags,
380  int theAttrCount,
381  int *theAttrIds,
382  char* *theNewClassId
383  );
384 
390  extern ICS_API int ICS_class_remove(
391  const char* theClassId
392  );
393 
398  extern ICS_API int ICS_class_save(
399  const char* theClassId
400  );
401 
406  extern ICS_API int ICS_class_refresh(
407  const char* theClassId
408  );
409 
413  extern ICS_API int ICS_class_cancel(
414  const char* theClassId
415  );
416 
422  extern ICS_API int ICS_class_set_property(
423  const char* theClassId,
424  const char* thePropertyName,
428  const char* thePropertyValue
429  );
430 
434  extern ICS_API int ICS_class_ask_property(
435  const char* theClassId,
436  const char* thePropertyName,
439  char** thePropertyValue
440  );
441 
448  extern ICS_API int ICS_class_add_shared_site(
449  const char* theClassId,
450  const char* theSharedSite,
451  logical approveShareOfParents
458  );
459 
463  extern ICS_API int ICS_class_ask_shared_sites(
464  const char* theClassId,
465  int* theSiteCount,
466  char*** theSharedSites
468  );
469 
477  extern ICS_API int ICS_class_set_alias_names(
478  const char* theClassId,
479  int theCount,
480  const char** theLanguages,
481  const char** theAliasNames
482  );
483 
490  extern ICS_API int ICS_class_add_alias_name(
491  const char* theClassId,
492  const char* theLanguage,
493  const char* theAliasName
494  );
495 
496 
501  extern ICS_API int ICS_class_ask_alias_names(
502  const char* theClassId,
503  int *theCount,
504  char** *theLanguages,
505  char** *theAliasNames
506  );
507 
512  extern ICS_API int ICS_class_import_document(
513  const char* theClassId,
514  const char* theDocumentType,
517  const char* theFileName
518  );
519 
523  extern ICS_API int ICS_class_export_document(
524  const char* theClassId,
525  const char* theDocumentType,
526  const char* theOutputDirectory,
527  logical overwriteExistingFiles,
528  int* theFileCount,
529  char*** theFileNames
530  );
531 
532  extern ICS_API int ICS_class_ask_document_fileId(
533  const char* theClassId,
534  const char* theDocumentType,
535  char** theFileId
536  );
537 
543  extern ICS_API int ICS_class_ask_documents(
544  const char* theClassId,
545  int* theDocumentCount,
546  char*** theDocumentTypes,
547  tag_t** theDocumentTags
548  );
549 
553  extern ICS_API int ICS_class_remove_document(
554  const char* theClassId,
555  const char* theDocumentType
556  );
557 
562  extern ICS_API int ICS_class_add_attributes(
563  const char* theClassId,
564  int theAttrCount,
565  int* theAttrIds
567  );
568 
572  extern ICS_API int ICS_class_add_attributes2( const char *theClassId,
573  int theAttrCount,
574  int *theAttrIds,
576  int theOptions
580  );
581 
585  extern ICS_API int ICS_class_ask_attributes(
586  const char* theClassId,
587  int* theAttributeCount,
588  tag_t** theAttributeTags,
589  int** theAttributeIds
590  );
591 
597  extern ICS_API int ICS_class_remove_attributes(
598  const char* theClassId,
599  int theAttrCount,
600  int* theAttrIds
601  );
602 
611  extern ICS_API int ICS_class_set_attr_property(
612  const char* theClassId,
613  int theAttributeId,
614  const char* thePropertyName,
620  const char* thePropertyValue
621  );
622 
626  extern ICS_API int ICS_class_ask_attr_property(
627  const char* theClassId,
628  int theAttributeId,
629  const char* thePropertyName,
632  char** thePropertyValue
633  );
634 
635 
636  /*===+++========================================================================
637  ** ICS_class_search returns information about the classes found by evaluating theQuery
638  **
639  ** 3 attribute name
640  ** theSortOption : specifies the attribute to be used for sorting the result
641  ** Supported values are:
642  ** -600 class id (default if 0 or any invalid value is specified )
643  ** -607 class name
644  ** -608 class short name
645  ** -612 user data 1
646  ** -613 user data 2
647  **
648  ** theCount : the number of classes matching theQuery
649  **
650  ** NOTE: The input to all following values can be NULL to indicate
651  ** that the output should not be returned.
652  **
653  ** theTags : the tags of the found classes
654  ** theTypes : the types of the classes
655  ** Posible values are: Group, Class, StorrageClass
656  ** theCIDs : the unique class ids
657  ** theName : the class names
658  ** theInstancesCounts : the number of instances stored in each class (including subclass instances)
659  ** theChildCounts : the number of children (of type Group,Class or StorrageClass) each class has
660  ** theViewCounts : the number of views for each class
661  ** theSubClassCounts : the number of SML-SubClasses for each class
662  **
663  **
664  ** Return value :
665  ** ITK_OK
666  ** Error discovered
667  **
668  */
669  extern ICS_API int ICS_class_search( const char* theQuery,
680  int theSortOption,
681  int *theCount,
682  tag_t **theTags,
683  char* **theTypes,
684  char* **theCIDs,
685  char* **theNames,
686  int **theInstancesCounts,
687  int **theChildCounts,
688  int **theViewCounts,
689  int **theSubClassCounts
690  );
691 
696  extern ICS_API int ICS_class_ask_parent(
697  const char* theClassId,
698  tag_t* theParentTag,
699  char** theParentId
700  );
701 
706  extern ICS_API int ICS_class_ask_parents(
707  const char* theClassId,
708  logical includeGroups,
710  int* theParentCount,
711  tag_t** theParentTags,
714  char*** theParentIds
717  );
718 
722  extern ICS_API int ICS_class_ask_children(
723  const char* theClassId,
724  int theChildTypeFilter,
727  int* theChildCount,
728  char*** theChildren
730  );
731 
741  extern ICS_API int ICS_class_list_children(
742  const char* theClassId,
743  int theChildTypeFilter,
746  int theSortOption,
747  int* theChildCount,
748  tag_t** theChildrenTags,
749  char*** theChildrenIds,
750  char*** theChildrenTypes,
755  char*** theChildrenNames,
756  int** theInstanceCounts,
757  int** theChildrenCounts,
758  int** theViewCounts
759  );
760 
761  /*===+++========================================================================
762  ** ICS_WEB_class_list_children
763  ** provides the same values as method ICS_class_list_children
764  ** with the exception that:
765  ** Instead of childrenTags childrenUid will be transfered.
766  **
767  ** This method will be used until the web itk binding functionality
768  ** for arrays of tags is fixed.
769  **
770  */
771  extern ICS_API int ICS_WEB_class_list_children( const char *theClassId, /* <I> */
772  int theChildTypeFilter, /* <I> */
773  int theSortOption, /* <I> */
774  int *theChildCount, /* <O> */
775  char* **theChildrenUid, /* <OF> theChildCount */
776  char* **theChildrenIds, /* <OF> theChildCount */
777  char* **theChildrenTypes, /* <OF> theChildCount */
778  char* **theChildrenNames, /* <OF> theChildCount */
779  int **theInstanceCounts, /* <OF> theChildCount */
780  int **theChildrenCounts, /* <OF> theChildCount */
781  int **theViewCounts /* <OF> theChildCount */
782  );
783 
784 
794  extern ICS_API int ICS_class_list_children2(
795  const char* theClassId,
796  int theChildTypeFilter,
799  int theSortOption,
800  int theOptions,
806  int* theChildCount,
807  tag_t** theChildrenTags,
808  char*** theChildrenIds,
809  char*** theChildrenTypes,
814  char*** theChildrenNames,
815  int** theInstanceCounts,
816  int** theChildrenCounts,
817  int** theViewCounts,
818  char*** theIconImageTickets,
819  char*** theClassImageTickets
820  );
821 
822 
828  extern ICS_API int ICS_class_describe(
829  const char* theClassId,
830  char** theParent,
831  int* theType,
832  char** theName,
833  char** theShortName,
834  char** theDescription,
835  char** theUserData1,
836  char** theUserData2,
837  int* theOptions,
838  int* theInstanceCount,
839  int* theChildrenCount,
840  int* theViewCount
841  );
842 
847  extern ICS_API int ICS_class_describe_attributes(
848  const char* theClassId,
849  int* theCount,
850  int** theIds,
851  char*** theNames,
852  char*** theShortNames,
853  char*** theAnnotations,
854  int** theArraySize,
855  int** theFormat,
857  char*** theUnit,
858  char*** theMinValues,
859  char*** theMaxValues,
860  char*** theDefaultValues,
861  char*** theDescriptions,
862  int** theOptions
863  );
864 
865 
866 
867 
875  extern ICS_API int ICS_view_describe_view (
876  tag_t view,
877  int* nAttributes,
878  int** uncts,
879  int** formats,
880  int** nonMetricFormats,
881  char*** attributeIds,
882  char*** attributeNames,
883  char*** shortNames,
884  char*** units,
885  char*** configBefore,
886  char*** configField,
887  char*** configAfter,
888  int** flags,
889  char*** metricMin,
890  char*** metricMax,
891  char*** nonMetricMin,
892  char*** nonMetricMax,
893  char*** metricDefaultValue,
894  char*** nonMetricDefaultValue
895  );
896 
904  extern ICS_API int ICS_class_ask_icos(
905  const char* theClassId,
906  logical includeFromChildren,
907  int* theCount,
908  tag_t** theICOTags,
909  char*** theICOUIDs,
910  char*** theICOIds,
911  char*** theClassIds,
912  tag_t** theWSOTags,
913  char*** theWSOUIDs
914  );
915 
916  extern ICS_API int ICS_class_search_icos(
917  const char* theClassId,
918  logical searchInChildren,
919  int theExpressionCount,
920  int* theAttrIds,
921  char** theAttrExpressions,
922  int* theCount,
923  tag_t** theICOTags,
924  char*** theICOUIDs,
925  char*** theICOIds,
926  char*** theClassIds,
927  tag_t** theWSOTags,
928  char*** theWSOUIDs
929  );
930 
936  extern ICS_API int ICS_class_is_descendant(
937  const char* theClassId,
938  const char* theAncestor,
939  logical* theVerdict
940  );
941 
945  extern ICS_API int ICS_class_ask_id(
946  tag_t theClassTag,
947  char** theClassId
948  );
949 
961  extern ICS_API int ICS_class_ask_ids(
962  unsigned int theCount,
963  const tag_t* theClasses,
964  char* **theClassIds
966  );
967 
972  extern ICS_API int ICS_class_ask_tag(
973  const char* theClassId,
974  tag_t* theClassTag
975  );
976 
988  const char *theClassId,
991  int theAttributeID,
996  int theReferenceState,
1002  int theReferenceAttributeType,
1013  int theFlags,
1023  const char *theClassName,
1042  const char *theAttrName,
1064  const char *theRelationName
1070  );
1071 
1078  const char **theClassId,
1080  int theAttributeID,
1084  int *theReferenceAttributeState,
1093  int *theReferenceAttributeType,
1104  int *theFlags,
1114  char **theClassName,
1132  char **theAttrName,
1153  char **theRelationName
1159  );
1160 
1183  extern ICS_API int ICS_class_copy(
1184  const char *theClass,
1185  const char *theNewCidIn,
1186  const char *theNewParent,
1187  int theOptions,
1200  int theChildCountIn,
1201  const char **theOldIDsIn,
1203  const char **theNewIDsIn,
1205  char **theNewCidOut,
1206  int *theChildCountOut,
1207  char ***theOldIDsOut,
1209  char ***theNewIDsOut
1211  );
1212 
1231  int ICS_API ICS_class_move( const char* theClassToMove,
1232  const char* theNewParent,
1233  int *theFailedCount,
1234  char** *theFailedObjects
1235  );
1236 
1237 
1238  extern ICS_API int ICS_class_move_partfamily_templates( const char *theSourceClassId, const char *theTargetClassId, int theOptions );
1239 
1258  extern ICS_API int ICS_class_share_incl_children( const char *theClass,
1259  int theSiteCount,
1261  const char **theSites,
1263  int theOptions,
1265  logical shareParentsToo
1267  );
1268 
1278  extern ICS_API int ICS_class_ask_attr_dep_config(
1279  tag_t class_tag,
1280  int *attr_count,
1281  int **attr_ids,
1282  char* **dependency_attributes,
1284  char* **dependency_configurations
1286  );
1287 
1297  extern ICS_API int ICS_class_ask_attr_dep_config_by_id(
1298  const char* class_id,
1299  int *attr_count,
1300  int **attr_ids,
1301  char* **dependency_attributes,
1302  char* **dependency_configurations
1303  );
1304 
1305 
1334  extern ICS_API logical ICS_view_exists(
1335  const char* theClassId,
1336  const char* theViewId
1337  );
1338 
1342  extern ICS_API int ICS_view_create(
1343  const char* theClassId,
1344  const char* theViewId,
1346  ICS_view_type_e theViewType,
1354  const char* theName,
1355  int theAttrCount,
1356  int* theAttrIds
1357  );
1358 
1364  extern ICS_API int ICS_view_remove(
1365  const char* theClassId,
1366  const char* theViewId
1367  );
1368 
1373  extern ICS_API int ICS_view_save(
1374  const char* theClassId,
1375  const char* theViewId
1376  );
1377 
1382  extern ICS_API int ICS_view_refresh(
1383  const char* theClassId,
1384  const char* theViewId
1385  );
1386 
1390  extern ICS_API int ICS_view_cancel(
1391  const char* theClassId,
1392  const char* theViewId
1393  );
1394 
1401  extern ICS_API int ICS_view_set_property(
1402  const char* theClassId,
1403  const char* theViewId,
1404  const char* thePropertyName,
1406  const char* thePropertyValue
1407  );
1408 
1412  extern ICS_API int ICS_view_ask_property(
1413  const char* theClassId,
1414  const char* theViewId,
1415  const char* thePropertyName,
1418  char** thePropertyValue
1420  );
1421 
1428  extern ICS_API int ICS_view_add_shared_site(
1429  const char* theClassId,
1430  const char* theViewId,
1431  const char* theSharedSite,
1432  logical approveShareOfParents
1438  );
1439 
1443  extern ICS_API int ICS_view_ask_shared_sites(
1444  const char* theClassId,
1445  const char* theViewId,
1446  int* theSiteCount,
1447  char*** theSharedSites
1449  );
1450 
1451  extern ICS_API int ICS_view_add_attributes(
1452  const char* theClassId,
1453  const char* theViewId,
1454  int theAttrCount,
1455  int* theAttrIds
1456  );
1457 
1458  extern ICS_API int ICS_view_remove_attributes(
1459  const char* theClassId,
1460  const char* theViewId,
1461  int theAttrCount,
1462  int* theAttrIds
1463  );
1464 
1471  extern ICS_API int ICS_view_set_attr_property(
1472  const char* theClassId,
1473  const char* theViewId,
1474  int theAttributeId,
1475  const char* thePropertyName,
1478  const char* thePropertyValue
1479  );
1480 
1484  extern ICS_API int ICS_view_ask_attr_property(
1485  const char* theClassId,
1486  const char* theViewId,
1487  int theAttributeId,
1488  const char* thePropertyName,
1491  char** thePropertyValue
1493  );
1494 
1495 
1499  extern ICS_API int ICS_view_ask_attributes(
1500  const char* theClassId,
1501  const char* theViewId,
1502  int* theAttributeCount,
1503  int** theAttributeIds
1504  );
1505 
1506  /*********************************************************************************
1507  **
1508  */
1510  {
1511  int id;
1512  char* name;
1513  char* shortName;
1514  int format;
1515  char* unit;
1517  char* minValue;
1518  char* maxValue;
1522  int flags;
1523  char* userData1;
1524  char* userData2;
1526 
1527 
1528  /*********************************************************************************
1529  **
1530  */
1531  typedef struct ICS_view_descriptor_s
1532  {
1533  char* classId;
1534  char* viewId;
1535  char* unitSystem;
1536  int type;
1537  char* name;
1538  int options;
1539  char* userData1;
1540  char* userData2;
1541 
1543  ICS_view_attribute_descriptor_p_t attributes;
1544 
1546 
1558  extern ICS_API int ICS_view_describe(
1559  const char* theClassId,
1560  const char* theViewId,
1561  const char* theUnitSystem,
1565  logical theUserMode,
1566  ICS_view_descriptor_p_t *theViewDescriptor
1567  );
1568 
1569 
1573  extern ICS_API void ICS_view_descriptor_free(
1574  ICS_view_descriptor_p_t theViewDescriptor
1575  );
1576 
1577 
1578 
1583  extern ICS_API int ICS_view_ask_id(
1584  tag_t theViewTag,
1585  char** theViewId
1586  );
1587 
1588 
1592  extern ICS_API int ICS_view_ask_tag(
1593  const char* theViewId,
1594  tag_t* theViewTag
1595  );
1596 
1604  extern ICS_API int ICS_view_ask_documents(
1605  const char* theViewId,
1606  int* theDocumentCount,
1607  char*** theDocumentTypes,
1608  tag_t** theDocumentTags
1609  );
1610 
1615  extern ICS_API int ICS_view_import_document(
1616  const char* theViewId,
1617  const char* theDocumentType,
1620  const char* theFileName
1621  );
1622 
1626  extern ICS_API int ICS_view_export_document(
1627  const char* theViewId,
1628  const char* theDocumentType,
1629  const char* theOutputDirectory,
1630  logical overwriteExistingFiles,
1631  int* theFileCount,
1632  char*** theFileNames
1633  );
1634 
1638  extern ICS_API int ICS_view_remove_document(
1639  const char* theViewId,
1640  const char* theDocumentType
1641  );
1642 
1649  extern ICS_API int ICS_view_search( const char* theQuery,
1658  int theSortAttrId,
1659  int theOptions,
1660  int *theCount,
1661  tag_t **theTags,
1662  char* **theTypes,
1665  char* **theClassIds,
1666  char* **theViewIds,
1667  char* **theNames,
1668  int **theInstanceCounts
1669  );
1670 
1674 extern ICS_API int ICS_view_copy(
1675  const char *theClass,
1676  const char *theView,
1677  const char *theNewParent,
1678  const char *theNewId,
1679  ICS_view_type_e theNewType,
1687  int theOptions
1693  );
1694 
1709  extern ICS_API int ICS_ico_create(
1710  const char* theICOId,
1711  tag_t theClassifiedObjectTag,
1712  const char* theClassId,
1713  int theAttributeCount,
1714  int* theAttributeId,
1715  const char** theAttributeValues,
1716  tag_t* theICOTag
1717  );
1718 
1719  extern ICS_API int ICS_ico_create2(
1720  const char* theICOId,
1721  tag_t theClassifiedObjectTag,
1722  const char* theClassId,
1723  int theAttributeCount,
1724  int* theAttributeId,
1725  int* theAttributeValCounts,
1726  const char*** theAttributeValues,
1727  tag_t* theICOTag
1728  );
1729 
1733  extern ICS_API int ICS_ico_remove( tag_t theICOTag /* (I) The tag of the ICO to be removed */
1734  );
1735 
1748  extern ICS_API int ICS_ico_find(
1749  const char* theICOId,
1750  tag_t theClassifiedObjectTag,
1751  int theOptions,
1753  int* theCount,
1754  tag_t** theICOTags
1755  );
1756 
1768  extern ICS_API int ICS_ico_search(
1769  int theExprCount,
1770  int* theAttrIds,
1771  char** theAttrExpr,
1772  int theOptions,
1779  int* theCount,
1780  tag_t** theICOTags,
1781  char*** theICOUIDs,
1782  char*** theICOIds,
1783  char*** theClassIds,
1784  tag_t** theWSOTags,
1785  char*** theWSOUIDs
1786  );
1787 
1800 extern ICS_API int ICS_ico_search_count(
1801  int theExprCount,
1802  int *theAttrIds,
1803  char* *theAttrExpr,
1804  int theOptions,
1809  int *theCount
1810  );
1811 
1812 
1816  extern ICS_API int ICS_ico_ask_classified_object(
1817  tag_t theICOTag,
1818  tag_t* theClassifiedObject
1819  );
1820 
1828  extern ICS_API int ICS_ico_ask_class(
1829  tag_t theICOTag,
1830  char** theClassId
1831  );
1832 
1836  extern ICS_API int ICS_ico_ask_class_tag(
1837  tag_t theICOTag,
1838  tag_t* theClassTag
1839  );
1840 
1844  extern ICS_API int ICS_ico_ask_named_attributes(
1845  tag_t theICOTag,
1846  int theAttributeCount,
1847  int* theAttributeIds,
1848  int** theAttributeValCounts,
1849  char**** theAttributeValues
1850  );
1851 
1855  extern ICS_API int ICS_ico_set_attributes(
1856  tag_t theICOTag,
1857  int theAttributeCount,
1858  int* theAttributeIds,
1859  int* theAttributeValCounts,
1860  const char*** theAttributeValues
1861  );
1862 
1868  extern ICS_API int ICS_ico_ask_attributes(
1869  tag_t theICOTag,
1870  int* theAttributeCount,
1871  int** theAttributeIds,
1872  int** theAttributeValCounts,
1873  char**** theAttributeValues
1874  );
1875 
1882  extern ICS_API int ICS_ico_ask_attributes_optimized(
1883  tag_t theICOTag,
1884  int *theAttributeCount,
1885  int* *theAttributeIds,
1886  char** *theAttributeNames,
1887  int* *theAttributeValCounts,
1888  char*** *theAttributeOptimizedValues,
1889  char*** *theAttributeOptimizedUnits
1890  );
1891 
1895  extern ICS_API int ICS_ico_ask_all_attributes(
1896  tag_t theICOTag,
1897  int* theAttributeCount,
1898  int** theAttributeIds,
1899  int** theAttributeValCounts,
1900  char**** theAttributeValues
1901  );
1902 
1906  extern ICS_API int ICS_ico_free_attributes(
1907  int theAttributeCount,
1908  int* theAttributeIds,
1909  int* theAttributeValCounts,
1910  char*** theAttributeValues
1911  );
1912 
1913 
1918  extern ICS_API int ICS_ico_find_values(
1919  int theExprCount,
1920  int *theAttrIds,
1921  char* *theAttrExpr,
1922  int theOptions,
1923  int theAttributeId,
1924  int *theCount,
1925  char* **theValues,
1926  int **theValueCounts
1927  );
1928 
1934  extern ICS_API int ICS_ico_find_values2(
1935  int theExprCount,
1936  int *theAttrIds,
1937  char* *theAttrExpr,
1938  int theOptions,
1939  int theAttributeId,
1940  int *theCount,
1941  char* **theValues,
1942  int **theValueCounts,
1943  char* **theDisplayValues
1944  );
1945 
1949  extern ICS_API int ICS_ico_move( int theCount,
1950  const tag_t *theICOTags,
1951  const char *theNewClass,
1952  int *theErrorCount,
1953  tag_t **theUnsuccessfulICOTags,
1954  int **theErrorCodes,
1955  char ***theErrorMessages
1956  );
1957 
1958 
1959  /*===+++======================================================================== */
1960 
1971  extern ICS_API int ICS_ico_reassign_to_rev( tag_t theICOTag
1972  );
1973 
1974 
1980  extern ICS_API int ICS_ico_map( tag_t theSourceICOTag,
1981  char * theTargetItemID,
1982  char * theTargetItemName,
1983  char * theTargetItemTypeName,
1984  char * theTargetItemRevID,
1985  char * theTargetItemDescription,
1986  char * theTargetClassID,
1987  int theOptions,
1988  tag_t * theNewICOTag
1989  );
1990 
1994  extern ICS_API int ICS_class_ask_mapping_sources( char * theTargetClassID,
1995  int theMappingViewType,
1996  int * theSourceClassCount,
1997  char *** theSourceClassIDs,
1998  char *** theSourceClassNames
1999  );
2000 
2004  extern ICS_API int ICS_class_ask_mapping_targets( char * theSourceClassID,
2005  int theMappingViewType,
2006  int * theTargetClassCount,
2007  char *** theTargetClassIDs,
2008  char *** theTargetClassNames
2009  );
2010 
2015  extern ICS_API int ICS_class_create_mapping( char * theSourceClassID,
2016  char * theTargetClassID,
2017  int theMappingViewType,
2018  int theAttributeCount,
2019  int * theAttributeIds,
2020  char ** theAttributeMappings
2021  );
2022 
2027  extern ICS_API int ICS_class_describe_mapping( char * theSourceClassID,
2028  char * theTargetClassID,
2029  int theMappingViewType,
2030  int * theAttributeCount,
2031  int ** theAttributeIds,
2032  char *** theAttributeMappings
2033  );
2034 
2038  extern ICS_API int ICS_class_delete_mapping( char * theSourceClassID,
2039  char * theTargetClassID,
2040  int theMappingViewType
2041  );
2042 
2054  extern ICS_API int ICS_ico_create_wso(
2055  const char* theClassId,
2056  int theAttrCount,
2057  int* theAttrIds,
2058  char** theAttrValues,
2059  int theOptions,
2060  tag_t *theWSO
2061  );
2062 
2066  extern ICS_API int ICS_ico_where_used(
2067  const char* theICOId,
2068  int *theCount,
2069  tag_t* *theTagsWhereUsed
2070  );
2093  extern ICS_API int ICS_attribute_create(
2094  int theAttrId,
2095  const char* theAttrName,
2096  int theAttrFormat
2099  );
2100 
2104  extern ICS_API int ICS_attribute_create_unique( const char* theAttrName,
2105  int theAttrFormat,
2106  int *theAttrId
2107  );
2108 
2112  extern ICS_API int ICS_attribute_remove(
2113  int theAttrId
2114  );
2115 
2119  extern ICS_API int ICS_attribute_set_property(
2120  int theAttrId,
2121  const char* thePropertyName,
2133  const char* thePropertyValue
2134  );
2135 
2139  extern ICS_API int ICS_attribute_ask_property(
2140  int theAttrId,
2141  const char* thePropertyName,
2147  char** thePropertyValue
2148  );
2149 
2153  extern ICS_API int ICS_attribute_ask_shared_sites(
2154  int theAttrId,
2155  int* theSiteCount,
2156  char*** theSharedSites
2158  );
2159 
2163  extern ICS_API int ICS_attribute_ask_references(
2164  int theAttrId,
2165  int* theRefCount,
2166  char*** theRefs
2167  );
2168 
2172  extern ICS_API int ICS_attribute_ask_tag(
2173  int theAttrId,
2174  tag_t* theTag
2175  );
2176 
2180  extern ICS_API int ICS_attribute_ask_id(
2181  tag_t theTag,
2182  int* theAttrId
2183  );
2184 
2195  int ICS_API ICS_attribute_set_as_reference(
2196  int theAttributeID,
2199  int theReferenceAttributeType,
2210  int theFlags,
2220  const char *theClassName,
2240  const char *theAttrName,
2262  const char *theRelationName
2268  );
2275  int theAttributeID,
2278  int *theReferenceAttributeType,
2290  int *theFlags,
2298  char **theClassName,
2316  char **theAttrName,
2337  char **theRelationName
2343  );
2344 
2351  extern ICS_API int ICS_attribute_search( const char* theQuery,
2361  int theSortAttrID,
2363  int theOptions,
2365  int *theCount,
2366  tag_t **theTags,
2367  int **theIDs,
2368  char* **theNames
2369  );
2370 
2371 
2375  extern ICS_API int ICS_attribute_convert_attribute_values( const char* theInputUnit,
2376  const char* theInputValue,
2377  const char* theOutputUnit,
2378  int theOutputAttributeFormat,
2379  char** theOutputValue
2380  );
2381 
2400  extern ICS_API int ICS_keylov_create(
2401  const char* theKeyLOVId,
2405  const char* theKeyLOVName,
2406  int theOptions,
2407  int theCount,
2408  char** theKeys,
2410  char** theValues
2413  );
2414 
2419  extern ICS_API int ICS_keylov_create_unique(
2420  const char *theKeyLOVName,
2421  int theOptions,
2422  int theCount,
2423  char **theKeys,
2424  char **theValues,
2425  char* *theNewId
2426  );
2427 
2431  extern ICS_API int ICS_keylov_remove(
2432  const char* theKeyLOVId
2433  );
2434 
2438  extern ICS_API int ICS_keylov_insert_entries(
2439  const char* theKeyLOVId,
2440  const char* theInsertKey,
2443  int theCount,
2444  char** theKeys,
2445  char** theValues
2446  );
2447 
2451  extern ICS_API int ICS_keylov_remove_entries(
2452  const char* theKeyLOVId,
2453  int theCount,
2454  char** theKeys
2455  );
2456 
2463  extern ICS_API int ICS_keylov_set_options(
2464  const char* theKeyLOVId,
2465  int theOptions
2466  );
2467 
2480  extern ICS_API int ICS_keylov_describe(
2481  const char* theKeyLOVId,
2482  char** theKeyLOVName,
2483  int* theOptions,
2484  int* theCount,
2485  char*** theKeys,
2486  char*** theValues,
2487  char** theOwningSite,
2488  int* theSharedSiteCount,
2489  char*** theSharedSites
2490  );
2491 
2495  extern ICS_API int ICS_keylov_ask_shared_sites(
2496  const char* theKeyLOVId,
2497  int* theSiteCount,
2498  char*** theSharedSites
2500  );
2501 
2505  extern ICS_API int ICS_keylov_ask_references(
2506  const char* theKeyLOVId,
2507  int* theRefCount,
2508  int** theRefs
2509  );
2510 
2514  extern ICS_API int ICS_keylov_ask_tag(
2515  const char* theKeyLOVId,
2516  tag_t* theTag
2517  );
2518 
2522  extern ICS_API int ICS_keylov_ask_id(
2523  tag_t theTag,
2524  char** theKeyLOVId
2525  );
2526 
2533  extern ICS_API int ICS_keylov_search( const char* theQuery,
2537  int theSortAttrID,
2539  int theOptions,
2540  int *theCount,
2541  tag_t **theTags,
2542  char* **theIDs,
2543  char* **theNames
2544  );
2545 
2546 
2550  extern ICS_API int ICS_keylov_deprecate_entries( const char *key_lov_id , /* <(I)> The unique identifier of the Key LOV */
2551  int n_lov_value_keys, /* <(I)> Number of Keys of the LOV values */
2552  char **lov_value_keys, /* <(I)> n_lov_value_keys Array of LOV value Keys */
2553  logical *deprecate_status /* <(I)> n_lov_value_keys Array of Logical values true/false, indicates
2554  Deprecate/Un-deprecate status corresponds Key LOV
2555  value in the lov_value_keys array*/
2556  );
2557 
2561  extern ICS_API int ICS_keylov_get_keylov( const char* key_lov_id, /* <I> The unique identifier of the Key LOV */
2562  char **key_lov_name, /* <OF> The name of Key LOV */
2563  int *options, /* <O> The options for the Key LOV */
2564  int *n_lov_entries, /* <O> Number of Key LOV values */
2565  char ***lov_keys, /* <OF> n_lov_entries Array of LOV Keys */
2566  char ***lov_values, /* <OF> n_lov_entries Array of LOV values */
2567  logical **deprecated_staus, /* <OF> n_lov_entries Array of Deprecated status of each Key LOV value */
2568  char **owning_site, /* <OF> The owning site*/
2569  int *n_shared_sites, /* <O> The number of shared sites*/
2570  char ***shared_sites /* <OF> n_shared_sites Array of shared sites */
2571  );
2572 
2573 
2577  extern ICS_API int ICS_keylov_is_entry_deprecated( const char *key_lov_id,
2578  const char *lov_value_key,
2579  logical *deprecate
2580  );
2581 
2582 
2586  extern ICS_API int ICS_ico_property_isLocalizable(
2587  tag_t theICOTag,
2588  const int theAttributeId,
2589  logical *isLocalizable
2590  );
2591 
2595  extern ICS_API int ICS_ico_ask_localizable_properties(
2596  tag_t theICOTag,
2597  int *theAttributeCount,
2598  int **theAttributeIds
2599  );
2600 
2604  extern ICS_API int ICS_ico_set_localized_value_strings( tag_t theICOTag,
2605  int noAttributes,
2606  int* theAttributeIds,
2607  const char* locale,
2608  int* theAttributeValCount,
2609  char*** theAttributeValues,
2610  char** localization_statuses,
2611  logical isMaster
2612  );
2613 
2617  extern ICS_API int ICS_ico_ask_localized_value_strings(
2618  tag_t theICOTag,
2619  const int theAttributeId,
2620  const char* locale,
2621  int* theAttributeValCount,
2622  char*** theAttributeValues,
2623  char** localization_statuses,
2624  logical* isMaster
2625  );
2629  extern ICS_API logical ICS_is_keylov(
2630  tag_t theTag
2631  );
2632 
2636  extern ICS_API logical ICS_is_attribute(
2637  tag_t theTag
2638  );
2639 
2643  extern ICS_API logical ICS_is_class(
2644  tag_t theTag
2645  );
2646 
2650  extern ICS_API logical ICS_is_view(
2651  tag_t theTag
2652  );
2653 
2657  extern ICS_API logical ICS_is_subclass(
2658  tag_t theTag
2659  );
2660 
2664  extern ICS_API logical ICS_is_ico(
2665  tag_t theTag
2666  );
2667 
2671  extern ICS_API int ICS_sml_import(
2672  char *file,
2673  char *importMode
2674  );
2675 
2676 
2680  extern ICS_API int ICS_ico_auto_compute(
2681  const char *theICOid,
2682  const char *theClassId,
2683  const char *theViewId,
2684  const int theUnitSystem,
2685  tag_t theWsoTag,
2686  const int theMode,
2687  const int theAttributeCount,
2688  const int *theAttributeIds,
2689  const int *theAttrValueCounts,
2690  const char ***theAttributeValues,
2691  const int *theAttributeLengths,
2692  const char **theAttributeUnits,
2693  const int *theAttributeFlags,
2694  const logical *theModifiedFlag,
2695  int *theAutoComputedCount,
2696  int **theAutoComputedIds,
2697  int **theAutoComputedValueCounts,
2698  char ****theAutoComputedValues,
2699  int **theAutoComputedLengths,
2700  char ***theAutoComputedUnits,
2701  int **theAutoComputedFlags
2702  );
2703 
2704 
2709  extern ICS_API int ICS_auto_compute_register_attrs(
2710  const char *class_id,
2711  const char *view_id,
2712  const int size,
2713  ICS_auto_compute_attr_t *auto_compute_attrs,
2714  logical toOverride
2715  );
2716 
2721  extern ICS_API int ICS_auto_compute_set_attr_values(
2722  const int theAttributeId,
2723  const int theAttrValueCount,
2724  const char **theAttributeValues,
2725  const char *theUnit
2726  );
2731  extern ICS_API int ICS_auto_compute_set_attr_value(
2732  const int theAttributeId,
2733  const char *theAttributeValue,
2734  const char *theUnit
2735  );
2741  extern ICS_API int ICS_auto_compute_set_attr_prop(
2742  const int theAttributeId,
2743  const int thePropType,
2744  const logical theValue
2745  );
2750  extern ICS_API int ICS_auto_compute_get_attr_values(
2751  const int attributeId,
2752  int *valueCount,
2753  char ***value,
2754  int *format,
2755  char **unit
2756  );
2761  extern ICS_API int ICS_auto_compute_get_attr_value(
2762  const int attributeId,
2763  char **value,
2764  int *format,
2765  char **unit
2766  );
2767 
2768 
2773  extern ICS_API int ICS_auto_compute_get_attr_prop(
2774  const int theAttributeId,
2775  int thePropType,
2776  logical *theValue
2777  );
2782  extern ICS_API int ICS_check_privilege(
2783  tag_t theInstanceTag,
2784  const char *thePrivilegeName,
2785  logical *isGrantedExt
2786  );
2787 
2791  extern ICS_API int ICS_class_remove_hierarchy (
2792  const char *theClassId,
2793  logical theRecurseOption,
2794  logical theViewsOption,
2795  logical theIcosOption,
2796  logical theWSOOption,
2797  logical theChildrenOnlyOption,
2798  logical theIgnoreOption,
2799  logical thePurgeAttrs,
2800  logical thePurgeKeyLOV,
2801  int *theFailedObjectsCount,
2802  char* *theFailedObjects
2803  );
2804  /*===========================================================================
2805  ** ICS_class_search_libraries returns the information about the libraries found by searchStrings
2806  **
2807  ** theCount : the number of classes matching theQuery
2808  **
2809  ** NOTE: The input to all following values can be NULL to indicate
2810  ** that the output should not be returned.
2811  **
2812  ** theTags : the tags of the found classes
2813  ** theTypes : the types of the classes
2814  ** Posible values are: Group, Class, StorrageClass
2815  ** theCIDs : the unique class ids
2816  ** theparentCIDs : the unique class ids of parent
2817  ** theNames : the class names
2818  ** theInstancesCounts : the number of instances stored in each class (including subclass instances)
2819  ** theChildCounts : the number of children (of type Group,Class or StorrageClass) each class has
2820  ** theLibraries : the library value for found libraries
2821  **
2822  ** Return value :
2823  ** ITK_OK
2824  ** Error discovered
2825  **
2826  */
2827 
2832  extern ICS_API int ICS_class_search_libraries(
2833  int theNumSearchStrings,
2834  const char* *theSearchStrings,
2835  int *theCount,
2836  tag_t **theTags,
2837  char* **theTypes,
2838  char* **theCIDs,
2839  char* **theParentCIDs,
2840  char* **theNames,
2841  int **theInstancesCounts,
2842  int **theChildCounts,
2843  char* **theLibraries
2844  );
2845 
2846  /*===========================================================================
2847  ** ICS_class_ask_parentinfo returns the information about all the parents found by theChildCIDs
2848  **
2849  ** theParentCount : the number of classes matching theChildCIDs
2850  **
2851  ** NOTE: The input to all following values can be NULL to indicate
2852  ** that the output should not be returned.
2853  **
2854  ** theparentTags : the tags of the found parent classes
2855  ** theparentTypes : the types of the parent classes
2856  ** Posible values are: Group, Class, StorrageClass
2857  ** theparentCIDs : the unique class ids of parents
2858  ** theNames : the class names of parents
2859  ** theInstancesCounts : the number of instances stored in each parent class (including subclass instances)
2860  ** theChildCounts : the number of children (of type Group,Class or StorrageClass) each parent class has
2861  **
2862  ** Return value :
2863  ** ITK_OK
2864  ** Error discovered
2865  **
2866  */
2867 
2871  extern ICS_API int ICS_class_ask_parentinfo( int theNumCIDs,
2872  const char* *theChildCIDs,
2873  int *theParentCount,
2874  tag_t **theParentTags,
2875  char* **theParentTypes,
2877  char* **theParentCIDs,
2878  char* **theNames,
2879  int **theInstancesCounts,
2880  int **theChildCounts
2881  );
2882 
2904  extern ICS_API int ICS_class_attr_ask_dep_keylovs(
2905  const char* class_id,
2906  int selected_attr,
2907  const char* selected_value,
2908  int ui_attr_count,
2909  const int* ui_attr_ids,
2910  const char** ui_attr_values,
2911  int *changed_attr_count,
2912  ICS_keylov_descriptor_p_t **changed_keylovs
2913  );
2914 
2915 
2916 
2933  extern ICS_API int ICS_ask_common_attributes_used_as_facets(
2934  int class_ids_count,
2935  const char **class_ids,
2936  int *attribute_count,
2937  int **attribute_ids,
2938  int **attribute_metric_formats,
2943  int **attribute_non_metric_formats,
2944  char ***attribute_names
2946  );
2947 
2959  extern ICS_API int ICS_ask_indexable_attributes(
2960  int *attribute_count,
2961  int **attribute_ids,
2962  int **attribute_metric_formats,
2967  int **attribute_non_metric_formats,
2968  char ***attribute_names,
2970  char ***attribute_metric_units,
2972  char ***attribute_non_metric_units
2974  );
2975 
2984  extern ICS_API int ICS_ask_dependent_classified_WSO(
2985  const tag_t theWSOTag, /*< (I) The WorkspaceObject tag */
2986  tag_t *theDependentClassifiedWSO /*< (O) The dependent WorkspaceObject tag */
2987  );
2988 
2991 #ifdef __cplusplus
2992 }
2993 #endif
2994 
2995 #include <ics/libics_undef.h>
2996 
2997 #endif