ICU 78.1 78.1 |
UDataInfo contains the properties about the requested data.More...
#include <udata.h>
Data Fields | |
| uint16_t | size |
| sizeof(UDataInfo)More... | |
| uint16_t | reservedWord |
| unused, set to 0More... | |
| uint8_t | isBigEndian |
| 0 for little-endian machine, 1 for big-endianMore... | |
| uint8_t | charsetFamily |
| see U_CHARSET_FAMILY values inutypes.hMore... | |
| uint8_t | sizeofUChar |
| sizeof(UChar), one of { 1, 2, 4 }More... | |
| uint8_t | reservedByte |
| unused, set to 0More... | |
| uint8_t | dataFormat [4] |
| data format identifierMore... | |
| uint8_t | formatVersion [4] |
| versions: [0] major [1] minor [2] milli [3] microMore... | |
| uint8_t | dataVersion [4] |
| versions: [0] major [1] minor [2] milli [3] microMore... | |
UDataInfo contains the properties about the requested data.
This is meta data.
This structure may grow in the future, indicated by thesize field.
ICU data must be at least 8-aligned, and should be 16-aligned. TheUDataInfo 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 theudata_open[Choice]() functions may reject data based on the value inisBigEndian. No other field is used by theudata API implementation.
ThedataFormat may be used to identify the kind of data, e.g. a converter table.
TheformatVersion 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.
ThedataVersion 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::sizeofUChar |