1 #ifndef BASETYPE_H
2 #define BASETYPE_H
3 
4 /*
5 * NIST STEP Core Class Library
6 * clstepcore/baseType.h
7 * April 1997
8 * David Sauder
9 * KC Morris
10 
11 * Development of this software was funded by the United States Government,
12 * and is not subject to copyright.
13 */
14 
15 //     **************  TYPES of attributes
16 
17 // IMS, 9 Aug 95: changed values to make these values usable in a bitmask
18 
19 enum PrimitiveType {
20     sdaiINTEGER     = 0x0001,
21     sdaiREAL        = 0x0002,
22     sdaiBOOLEAN     = 0x0004,
23     sdaiLOGICAL     = 0x0008,
24     sdaiSTRING      = 0x0010,
25     sdaiBINARY      = 0x0020,
26     sdaiENUMERATION = 0x0040,
27     sdaiSELECT      = 0x0080,
28     sdaiINSTANCE    = 0x0100,
29     sdaiAGGR        = 0x0200,
30     sdaiNUMBER      = 0x0400,
31 // The elements defined below are not part of part 23
32 // (IMS: these should not be used as bitmask fields)
33     ARRAY_TYPE,     // DAS
34     BAG_TYPE,       // DAS
35     SET_TYPE,       // DAS
36     LIST_TYPE,      // DAS
37     GENERIC_TYPE,
38     REFERENCE_TYPE,
39     UNKNOWN_TYPE
40 };
41 
42 // for backwards compatibility with our previous implementation
43 typedef PrimitiveType BASE_TYPE;
44 
45 // the previous element types of the enum BASE_TYPE that have been redefined
46 #define INTEGER_TYPE sdaiINTEGER
47 #define REAL_TYPE sdaiREAL
48 #define BOOLEAN_TYPE sdaiBOOLEAN
49 #define LOGICAL_TYPE sdaiLOGICAL
50 #define STRING_TYPE sdaiSTRING
51 #define BINARY_TYPE sdaiBINARY
52 #define ENUM_TYPE sdaiENUMERATION
53 #define SELECT_TYPE sdaiSELECT
54 #define ENTITY_TYPE sdaiINSTANCE
55 #define AGGREGATE_TYPE sdaiAGGR
56 #define NUMBER_TYPE sdaiNUMBER
57 
58 /* not defined in part 23
59     ARRAY_TYPE,     // DAS
60     BAG_TYPE,       // DAS
61     SET_TYPE,       // DAS
62     LIST_TYPE,      // DAS
63     GENERIC_TYPE,
64     REFERENCE_TYPE,
65     UNKNOWN_TYPE
66 */
67 
68 #endif
69