#include "unicode/utypes.h"
Go to the source code of this file.
Data Structures | |
struct | UDataInfo |
Typedefs | |
typedef UDataMemory | UDataMemory |
Forward declaration of the data memory type. | |
typedef UBool | UDataMemoryIsAcceptable (void *context, const char *type, const char *name, const UDataInfo *pInfo) |
Callback function for udata_openChoice(). | |
Functions | |
U_CAPI UDataMemory *U_EXPORT2 | udata_open (const char *path, const char *type, const char *name, UErrorCode *pErrorCode) |
Convenience function. | |
U_CAPI UDataMemory *U_EXPORT2 | udata_openChoice (const char *path, const char *type, const char *name, UDataMemoryIsAcceptable *isAcceptable, void *context, UErrorCode *pErrorCode) |
Data loading function. | |
U_CAPI void U_EXPORT2 | udata_close (UDataMemory *pData) |
Close the data memory. | |
U_CAPI const void *U_EXPORT2 | udata_getMemory (UDataMemory *pData) |
Get the pointer to the actual data inside the data memory. | |
U_CAPI void U_EXPORT2 | udata_getInfo (UDataMemory *pData, UDataInfo *pInfo) |
Get the information from the data memory header. | |
U_CAPI void U_EXPORT2 | udata_setCommonData (const void *data, UErrorCode *err) |
This function bypasses the normal ICU data loading process and allows you to force ICU's system data to come out of a user-specified area in memory. | |
U_CAPI void U_EXPORT2 | udata_setAppData (const char *path, const void *data, UErrorCode *err) |
This function bypasses the normal ICU data loading process for application-specific data and allows you to force the it to come out of a user-specified pointer. |
This structure may grow in the future, indicated by the size
field.
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. I 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.
|
Forward declaration of the data memory type.
|
|
Callback function for udata_openChoice().
|
|
Close the data memory. This function must be called to allow the system to release resources associated with this data memory. |
|
Get the information from the data memory header.
This allows to get access to the header containing platform data properties etc. which is not part of the data itself and can therefore not be accessed via the pointer that
*pInfo will be filled with the UDataInfo structure in the data memory object. If this structure is smaller than pInfo->size , then the size will be adjusted and only part of the structure will be filled. |
|
Get the pointer to the actual data inside the data memory. The data is read-only. |
|
Convenience function.
This function works the same as |
|
Data loading function. This function is used to find and load efficiently data for ICU and applications using ICU. It provides an abstract interface that allows to specify a data type and name to find and load the data. The implementation depends on platform properties and user preferences and may involve loading shared libraries (DLLs), mapping files into memory, or fopen()/fread() files. It may also involve using static memory or database queries etc. Several or all data items may be combined into one entity (DLL, memory-mappable file).
The data is always preceded by a header that includes a
If
|
|
This function bypasses the normal ICU data loading process for application-specific data and allows you to force the it to come out of a user-specified pointer. The format of this data is that of the icu common data file, like 'icudata.dat' The application must read in or otherwise construct an image of the data and then pass the address of it to this function. Warning: setAppData will fail with a U_USING_DEFAULT_ERROR error if data with the specifed path that has already been opened, or if setAppData with the same path has already been called. Any such calls to setAppData will have no effect.
|
|
This function bypasses the normal ICU data loading process and allows you to force ICU's system data to come out of a user-specified area in memory. The format of this data is that of the icu common data file, as is generated by the pkgdata tool with mode=common or mode=dll. You can read in a whole common mode file and pass the address to the start of the data, or (with the appropriate link options) pass in the pointer to the data that has been loaded from a dll by the operating system, as shown in this code: extern const void * U_IMPORT ENTRY_POINT_NAME; // ENTRY_POINT_NAME is same as entry point specified to pkgdata tool UErrorCode status = U_ZERO_ERROR; udata_setCommonData(&U_ICUDATA_ENTRY_POINT, &status); Warning: ICU must NOT have even attempted to access its data yet when this call is made, or U_USING_DEFAULT_ERROR [non-failing] will be returned. Be careful of UnicodeStrings in static initialization which may attempt to load a converter (use the UNICODE_STRING(x) macro instead). This function has no effect on application (non ICU) data. See udata_setAppData() for similar functionality for application data.
|