ICU 76.1 76.1
|
UDataInfo contains the properties about the requested data. More...
#include <udata.h>
Data Fields | |
uint16_t | size |
sizeof(UDataInfo) | |
uint16_t | reservedWord |
unused, set to 0 | |
uint8_t | isBigEndian |
0 for little-endian machine, 1 for big-endian | |
uint8_t | charsetFamily |
see U_CHARSET_FAMILY values in utypes.h | |
uint8_t | sizeofUChar |
sizeof(UChar), one of { 1, 2, 4 } | |
uint8_t | reservedByte |
unused, set to 0 | |
uint8_t | dataFormat [4] |
data format identifier | |
uint8_t | formatVersion [4] |
versions: [0] major [1] minor [2] milli [3] micro | |
uint8_t | dataVersion [4] |
versions: [0] major [1] minor [2] milli [3] micro | |
UDataInfo contains the properties about the requested data.
This is meta data.
This structure may grow in the future, indicated by the size
field.
ICU data must be at least 8-aligned, and should be 16-aligned. The UDataInfo struct begins 4 bytes after the start of the data item, so it is 4-aligned.
The platform data property fields help determine if a data file can be efficiently used on a given machine. The particular fields are of importance only if the data is affected by the properties - if there is integer data with word sizes > 1 byte, char* text, or UChar* text.
The implementation for the udata_open[Choice]()
functions may reject data based on the value in isBigEndian
. No other field is used by the udata
API implementation.
The dataFormat
may be used to identify the kind of data, e.g. a converter table.
The formatVersion
field should be used to make sure that the format can be interpreted. It may be a good idea to check only for the one or two highest of the version elements to allow the data memory to get more or somewhat rearranged contents, for as long as the using code can still interpret the older contents.
The dataVersion
field is intended to be a common place to store the source version of the data; for data from the Unicode character database, this could reflect the Unicode version.
uint8_t UDataInfo::charsetFamily |
uint8_t UDataInfo::dataFormat[4] |
uint8_t UDataInfo::dataVersion[4] |
uint8_t UDataInfo::formatVersion[4] |
uint8_t UDataInfo::isBigEndian |
uint8_t UDataInfo::reservedByte |
uint16_t UDataInfo::reservedWord |
uint8_t UDataInfo::sizeofUChar |