8.1 TData_Type
The TData_Type class is used to pass data type information.
The TData_Type class has the following methods:
integer Family
Indicates the family of the data type. The following families are defined:
Value | Mnuemonic | Description |
---|---|---|
0 | DataType_Family_Undefined | Undefined or unknown (untyped). |
1 | DataType_Family_Logical | Logical (boolean). |
2 | DataType_Family_String | Text. |
3 | DataType_Family_Numeric | Numeric. |
4 | DataType_Family_Procedure | Code (procedure/function/method). |
int Data_Type
Indicates the data type. The lowest 3 bits are the family (one of the above datatype families), and the
rest of the bits indicate which type within that family. CEF understands the following data types:
Value | Mnuemonic | Description |
---|---|---|
1 | DataType_Boolean | Boolean value (0=false, anything else=true) |
2 | DataType_String | String value. |
3 | DataType_Integer | Integer (whole) number. |
11 | DataType_Real | Floating-point number. |
19 | DataType_BCD | Binary-coded decimal number. |
int Size
Total current size in bits. Note that this may be smaller than the maximum size.
boolean Big_Endian
True if value is stored in big-endian form.
int Max_Size
Maximum size in bits. For fixed-length data, this is the same as the current size.
The following methods apply to numeric types:
TTri_State Signed
True if signed, False if unsigned, Dont_Care if either/neither.
TTri-State is an enumeration, as follows:
Value | Mneumonic | Description |
---|---|---|
0 | TS_False | False. Not signed. |
1 | TS_True | True. Signed. |
2 | TS_Dont_Care | Either signed or unsigned, unknown, or don't care. |
integer Mantissa
Number of bits in mantissa (including sign, if signed).
integer Exponent
Number of bits in exponent (DataType_Real only).
boolean Fixed
True if fixed point number (DataType_Real and Data_Type_BCD only) or fixed-length string.
integer Fixed_Position
If fixed, this is the position of the decimal place (eg 3 means the 3rd digit is the first digit of the fractional part).
boolean Pack
True if packed (DataType_BCD only).
The following methods apply to string types:
integer Length_Encoding
Indicates the way that string length is encoded in the data:
Value | Mneumonic | Description |
---|---|---|
0 | Datatype_String_Length_Other | Fixed or otherwise unknown length encoding. |
1 | Datatype_String_Length_Terminated | String is terminated by a null (ASCII 0). |
2 | Datatype_String_Length_Prefix | String is prefixed with length. |
integer Prefix_Size
Number of bits of length for strings with length prefix.
integer Encoding
The character encoding scheme used for this string:
Value | Mneumonic | Description |
---|---|---|
0 | Datatype_String_Encoding_Unknown | Undefined or unknown encoding. |
1 | Datatype_String_Encoding_ASCII | 7-bit ASCII (8th-bit ignored). |
2 | Datatype_String_Encoding_EBCDIC | EBCDIC. |
3 | Datatype_String_Encoding_Radix50 | Radix-50. |
4 | Datatype_String_Encoding_UTF8 | 8-bit (multi-bit) UNICODE (utf8) |
5 | Datatype_String_Encoding_Unicode16 | 16-bit UNICODE. |
6 | Datatype_String_Encoding_Unicode32 | 32-bit UNICODE. |