ICU 62.1  62.1
udata.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 ******************************************************************************
5 *
6 * Copyright (C) 1999-2014, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 ******************************************************************************
10 * file name: udata.h
11 * encoding: UTF-8
12 * tab size: 8 (not used)
13 * indentation:4
14 *
15 * created on: 1999oct25
16 * created by: Markus W. Scherer
17 */
18 
19 #ifndef __UDATA_H__
20 #define __UDATA_H__
21 
22 #include "unicode/utypes.h"
23 #include "unicode/localpointer.h"
24 
26 
42 #ifndef U_HIDE_INTERNAL_API
43 
47 #define U_TREE_SEPARATOR '-'
48 
53 #define U_TREE_SEPARATOR_STRING "-"
54 
59 #define U_TREE_ENTRY_SEP_CHAR '/'
60 
65 #define U_TREE_ENTRY_SEP_STRING "/"
66 
71 #define U_ICUDATA_ALIAS "ICUDATA"
72 
73 #endif /* U_HIDE_INTERNAL_API */
74 
113 typedef struct {
116  uint16_t size;
117 
120  uint16_t reservedWord;
121 
122  /* platform data properties */
125  uint8_t isBigEndian;
126 
129  uint8_t charsetFamily;
130 
133  uint8_t sizeofUChar;
134 
137  uint8_t reservedByte;
138 
141  uint8_t dataFormat[4];
142 
145  uint8_t formatVersion[4];
146 
149  uint8_t dataVersion[4];
150 } UDataInfo;
151 
152 /* API for reading data -----------------------------------------------------*/
153 
158 typedef struct UDataMemory UDataMemory;
159 
173 typedef UBool U_CALLCONV
175  const char *type, const char *name,
176  const UDataInfo *pInfo);
177 
178 
200 U_STABLE UDataMemory * U_EXPORT2
201 udata_open(const char *path, const char *type, const char *name,
202  UErrorCode *pErrorCode);
203 
252 U_STABLE UDataMemory * U_EXPORT2
253 udata_openChoice(const char *path, const char *type, const char *name,
254  UDataMemoryIsAcceptable *isAcceptable, void *context,
255  UErrorCode *pErrorCode);
256 
264 U_STABLE void U_EXPORT2
265 udata_close(UDataMemory *pData);
266 
267 #if U_SHOW_CPLUSPLUS_API
268 
270 
281 
283 
284 #endif
285 
295 U_STABLE const void * U_EXPORT2
297 
316 U_STABLE void U_EXPORT2
317 udata_getInfo(UDataMemory *pData, UDataInfo *pInfo);
318 
362 U_STABLE void U_EXPORT2
363 udata_setCommonData(const void *data, UErrorCode *err);
364 
365 
393 U_STABLE void U_EXPORT2
394 udata_setAppData(const char *packageName, const void *data, UErrorCode *err);
395 
401 typedef enum UDataFileAccess {
413 #ifndef U_HIDE_DEPRECATED_API
414 
419 #endif // U_HIDE_DEPRECATED_API
421 
432 U_STABLE void U_EXPORT2
434 
436 
437 #endif
UDataInfo::isBigEndian
uint8_t isBigEndian
0 for little-endian machine, 1 for big-endian
Definition: udata.h:125
udata_openChoice
UDataMemory * udata_openChoice(const char *path, const char *type, const char *name, UDataMemoryIsAcceptable *isAcceptable, void *context, UErrorCode *pErrorCode)
Data loading function.
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:236
udata_setFileAccess
void udata_setFileAccess(UDataFileAccess access, UErrorCode *status)
This function may be called to control how ICU loads data.
UDataInfo::reservedByte
uint8_t reservedByte
unused, set to 0
Definition: udata.h:137
U_CALLCONV
#define U_CALLCONV
Definition: platform.h:836
UDataInfo
UDataInfo contains the properties about the requested data.
Definition: udata.h:113
UDataMemoryIsAcceptable
UBool UDataMemoryIsAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo)
Callback function for udata_openChoice().
Definition: udata.h:174
udata_open
UDataMemory * udata_open(const char *path, const char *type, const char *name, UErrorCode *pErrorCode)
Convenience function.
UDataInfo::size
uint16_t size
sizeof(UDataInfo)
Definition: udata.h:116
udata_setCommonData
void 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 ...
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition: utypes.h:396
udata_setAppData
void udata_setAppData(const char *packageName, const void *data, UErrorCode *err)
This function bypasses the normal ICU data loading process for application-specific data and allows y...
UDATA_DEFAULT_ACCESS
@ UDATA_DEFAULT_ACCESS
An alias for the default access mode.
Definition: udata.h:405
UDATA_ONLY_PACKAGES
@ UDATA_ONLY_PACKAGES
ICU only loads data from packages, not from single files.
Definition: udata.h:407
U_CDECL_END
#define U_CDECL_END
Definition: umachine.h:85
U_CDECL_BEGIN
#define U_CDECL_BEGIN
Definition: umachine.h:84
UDATA_FILES_FIRST
@ UDATA_FILES_FIRST
ICU looks for data in single files first, then in packages.
Definition: udata.h:403
UDataMemory
struct UDataMemory UDataMemory
Forward declaration of the data memory type.
Definition: udata.h:158
udata_close
void udata_close(UDataMemory *pData)
Close the data memory.
UDATA_FILE_ACCESS_COUNT
@ UDATA_FILE_ACCESS_COUNT
Number of real UDataFileAccess values.
Definition: udata.h:418
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
Definition: localpointer.h:487
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
UDataInfo::charsetFamily
uint8_t charsetFamily
see U_CHARSET_FAMILY values in utypes.h
Definition: udata.h:129
UDataFileAccess
UDataFileAccess
Possible settings for udata_setFileAccess()
Definition: udata.h:401
U_STABLE
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111
udata_getInfo
void udata_getInfo(UDataMemory *pData, UDataInfo *pInfo)
Get the information from the data memory header.
udata_getMemory
const void * udata_getMemory(UDataMemory *pData)
Get the pointer to the actual data inside the data memory.
UDataInfo::sizeofUChar
uint8_t sizeofUChar
sizeof(UChar), one of { 1, 2, 4 }
Definition: udata.h:133
UDATA_PACKAGES_FIRST
@ UDATA_PACKAGES_FIRST
ICU loads data from packages first, and only from single files if the data cannot be found in a packa...
Definition: udata.h:410
UDataInfo::reservedWord
uint16_t reservedWord
unused, set to 0
Definition: udata.h:120
U_NAMESPACE_END
#define U_NAMESPACE_END
Definition: uversion.h:138
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
Definition: uversion.h:137
LocalUDataMemoryPointer
UDATA_NO_FILES
@ UDATA_NO_FILES
ICU does not access the file system for data loading.
Definition: udata.h:412