| OLD | NEW |
| 1 /* | 1 /* |
| 2 ****************************************************************************** | 2 ****************************************************************************** |
| 3 * | 3 * |
| 4 * Copyright (C) 1999-2012, International Business Machines | 4 * Copyright (C) 1999-2014, International Business Machines |
| 5 * Corporation and others. All Rights Reserved. | 5 * Corporation and others. All Rights Reserved. |
| 6 * | 6 * |
| 7 ****************************************************************************** | 7 ****************************************************************************** |
| 8 * file name: udata.h | 8 * file name: udata.h |
| 9 * encoding: US-ASCII | 9 * encoding: US-ASCII |
| 10 * tab size: 8 (not used) | 10 * tab size: 8 (not used) |
| 11 * indentation:4 | 11 * indentation:4 |
| 12 * | 12 * |
| 13 * created on: 1999oct25 | 13 * created on: 1999oct25 |
| 14 * created by: Markus W. Scherer | 14 * created by: Markus W. Scherer |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 | 70 |
| 71 #endif /* U_HIDE_INTERNAL_API */ | 71 #endif /* U_HIDE_INTERNAL_API */ |
| 72 | 72 |
| 73 /** | 73 /** |
| 74 * UDataInfo contains the properties about the requested data. | 74 * UDataInfo contains the properties about the requested data. |
| 75 * This is meta data. | 75 * This is meta data. |
| 76 * | 76 * |
| 77 * <p>This structure may grow in the future, indicated by the | 77 * <p>This structure may grow in the future, indicated by the |
| 78 * <code>size</code> field.</p> | 78 * <code>size</code> field.</p> |
| 79 * | 79 * |
| 80 * <p>ICU data must be at least 8-aligned, and should be 16-aligned. |
| 81 * The UDataInfo struct begins 4 bytes after the start of the data item, |
| 82 * so it is 4-aligned. |
| 83 * |
| 80 * <p>The platform data property fields help determine if a data | 84 * <p>The platform data property fields help determine if a data |
| 81 * file can be efficiently used on a given machine. | 85 * file can be efficiently used on a given machine. |
| 82 * The particular fields are of importance only if the data | 86 * The particular fields are of importance only if the data |
| 83 * is affected by the properties - if there is integer data | 87 * is affected by the properties - if there is integer data |
| 84 * with word sizes > 1 byte, char* text, or UChar* text.</p> | 88 * with word sizes > 1 byte, char* text, or UChar* text.</p> |
| 85 * | 89 * |
| 86 * <p>The implementation for the <code>udata_open[Choice]()</code> | 90 * <p>The implementation for the <code>udata_open[Choice]()</code> |
| 87 * functions may reject data based on the value in <code>isBigEndian</code>. | 91 * functions may reject data based on the value in <code>isBigEndian</code>. |
| 88 * No other field is used by the <code>udata</code> API implementation.</p> | 92 * No other field is used by the <code>udata</code> API implementation.</p> |
| 89 * | 93 * |
| 90 * <p>The <code>dataFormat</code> may be used to identify | 94 * <p>The <code>dataFormat</code> may be used to identify |
| 91 * the kind of data, e.g. a converter table.</p> | 95 * the kind of data, e.g. a converter table.</p> |
| 92 * | 96 * |
| 93 * <p>The <code>formatVersion</code> field should be used to | 97 * <p>The <code>formatVersion</code> field should be used to |
| 94 * make sure that the format can be interpreted. | 98 * make sure that the format can be interpreted. |
| 95 * I may be a good idea to check only for the one or two highest | 99 * It may be a good idea to check only for the one or two highest |
| 96 * of the version elements to allow the data memory to | 100 * of the version elements to allow the data memory to |
| 97 * get more or somewhat rearranged contents, for as long | 101 * get more or somewhat rearranged contents, for as long |
| 98 * as the using code can still interpret the older contents.</p> | 102 * as the using code can still interpret the older contents.</p> |
| 99 * | 103 * |
| 100 * <p>The <code>dataVersion</code> field is intended to be a | 104 * <p>The <code>dataVersion</code> field is intended to be a |
| 101 * common place to store the source version of the data; | 105 * common place to store the source version of the data; |
| 102 * for data from the Unicode character database, this could | 106 * for data from the Unicode character database, this could |
| 103 * reflect the Unicode version.</p> | 107 * reflect the Unicode version.</p> |
| 108 * |
| 104 * @stable ICU 2.0 | 109 * @stable ICU 2.0 |
| 105 */ | 110 */ |
| 106 typedef struct { | 111 typedef struct { |
| 107 /** sizeof(UDataInfo) | 112 /** sizeof(UDataInfo) |
| 108 * @stable ICU 2.0 */ | 113 * @stable ICU 2.0 */ |
| 109 uint16_t size; | 114 uint16_t size; |
| 110 | 115 |
| 111 /** unused, set to 0 | 116 /** unused, set to 0 |
| 112 * @stable ICU 2.0*/ | 117 * @stable ICU 2.0*/ |
| 113 uint16_t reservedWord; | 118 uint16_t reservedWord; |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 */ | 277 */ |
| 273 U_DEFINE_LOCAL_OPEN_POINTER(LocalUDataMemoryPointer, UDataMemory, udata_close); | 278 U_DEFINE_LOCAL_OPEN_POINTER(LocalUDataMemoryPointer, UDataMemory, udata_close); |
| 274 | 279 |
| 275 U_NAMESPACE_END | 280 U_NAMESPACE_END |
| 276 | 281 |
| 277 #endif | 282 #endif |
| 278 | 283 |
| 279 /** | 284 /** |
| 280 * Get the pointer to the actual data inside the data memory. | 285 * Get the pointer to the actual data inside the data memory. |
| 281 * The data is read-only. | 286 * The data is read-only. |
| 287 * |
| 288 * ICU data must be at least 8-aligned, and should be 16-aligned. |
| 289 * |
| 282 * @param pData The pointer to data memory object | 290 * @param pData The pointer to data memory object |
| 283 * @stable ICU 2.0 | 291 * @stable ICU 2.0 |
| 284 */ | 292 */ |
| 285 U_STABLE const void * U_EXPORT2 | 293 U_STABLE const void * U_EXPORT2 |
| 286 udata_getMemory(UDataMemory *pData); | 294 udata_getMemory(UDataMemory *pData); |
| 287 | 295 |
| 288 /** | 296 /** |
| 289 * Get the information from the data memory header. | 297 * Get the information from the data memory header. |
| 290 * This allows to get access to the header containing | 298 * This allows to get access to the header containing |
| 291 * platform data properties etc. which is not part of | 299 * platform data properties etc. which is not part of |
| (...skipping 12 matching lines...) Expand all Loading... |
| 304 * @stable ICU 2.0 | 312 * @stable ICU 2.0 |
| 305 */ | 313 */ |
| 306 U_STABLE void U_EXPORT2 | 314 U_STABLE void U_EXPORT2 |
| 307 udata_getInfo(UDataMemory *pData, UDataInfo *pInfo); | 315 udata_getInfo(UDataMemory *pData, UDataInfo *pInfo); |
| 308 | 316 |
| 309 /** | 317 /** |
| 310 * This function bypasses the normal ICU data loading process and | 318 * This function bypasses the normal ICU data loading process and |
| 311 * allows you to force ICU's system data to come out of a user-specified | 319 * allows you to force ICU's system data to come out of a user-specified |
| 312 * area in memory. | 320 * area in memory. |
| 313 * | 321 * |
| 322 * ICU data must be at least 8-aligned, and should be 16-aligned. |
| 323 * See http://userguide.icu-project.org/icudata |
| 324 * |
| 314 * The format of this data is that of the icu common data file, as is | 325 * The format of this data is that of the icu common data file, as is |
| 315 * generated by the pkgdata tool with mode=common or mode=dll. | 326 * generated by the pkgdata tool with mode=common or mode=dll. |
| 316 * You can read in a whole common mode file and pass the address to the start of
the | 327 * You can read in a whole common mode file and pass the address to the start of
the |
| 317 * data, or (with the appropriate link options) pass in the pointer to | 328 * data, or (with the appropriate link options) pass in the pointer to |
| 318 * the data that has been loaded from a dll by the operating system, | 329 * the data that has been loaded from a dll by the operating system, |
| 319 * as shown in this code: | 330 * as shown in this code: |
| 320 * | 331 * |
| 321 * extern const char U_IMPORT U_ICUDATA_ENTRY_POINT []; | 332 * extern const char U_IMPORT U_ICUDATA_ENTRY_POINT []; |
| 322 * // U_ICUDATA_ENTRY_POINT is same as entry point specified to pkgdata t
ool | 333 * // U_ICUDATA_ENTRY_POINT is same as entry point specified to pkgdata t
ool |
| 323 * UErrorCode status = U_ZERO_ERROR; | 334 * UErrorCode status = U_ZERO_ERROR; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 348 */ | 359 */ |
| 349 U_STABLE void U_EXPORT2 | 360 U_STABLE void U_EXPORT2 |
| 350 udata_setCommonData(const void *data, UErrorCode *err); | 361 udata_setCommonData(const void *data, UErrorCode *err); |
| 351 | 362 |
| 352 | 363 |
| 353 /** | 364 /** |
| 354 * This function bypasses the normal ICU data loading process for application-sp
ecific | 365 * This function bypasses the normal ICU data loading process for application-sp
ecific |
| 355 * data and allows you to force the it to come out of a user-specified | 366 * data and allows you to force the it to come out of a user-specified |
| 356 * pointer. | 367 * pointer. |
| 357 * | 368 * |
| 369 * ICU data must be at least 8-aligned, and should be 16-aligned. |
| 370 * See http://userguide.icu-project.org/icudata |
| 371 * |
| 358 * The format of this data is that of the icu common data file, like 'icudt26l.d
at' | 372 * The format of this data is that of the icu common data file, like 'icudt26l.d
at' |
| 359 * or the corresponding shared library (DLL) file. | 373 * or the corresponding shared library (DLL) file. |
| 360 * The application must read in or otherwise construct an image of the data and
then | 374 * The application must read in or otherwise construct an image of the data and
then |
| 361 * pass the address of it to this function. | 375 * pass the address of it to this function. |
| 362 * | 376 * |
| 363 * | 377 * |
| 364 * Warning: setAppData will set a U_USING_DEFAULT_WARNING code if | 378 * Warning: setAppData will set a U_USING_DEFAULT_WARNING code if |
| 365 * data with the specifed path that has already been opened, or | 379 * data with the specifed path that has already been opened, or |
| 366 * if setAppData with the same path has already been called. | 380 * if setAppData with the same path has already been called. |
| 367 * Any such calls to setAppData will have no effect. | 381 * Any such calls to setAppData will have no effect. |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 * @param status Error code. | 421 * @param status Error code. |
| 408 * @see UDataFileAccess | 422 * @see UDataFileAccess |
| 409 * @stable ICU 3.4 | 423 * @stable ICU 3.4 |
| 410 */ | 424 */ |
| 411 U_STABLE void U_EXPORT2 | 425 U_STABLE void U_EXPORT2 |
| 412 udata_setFileAccess(UDataFileAccess access, UErrorCode *status); | 426 udata_setFileAccess(UDataFileAccess access, UErrorCode *status); |
| 413 | 427 |
| 414 U_CDECL_END | 428 U_CDECL_END |
| 415 | 429 |
| 416 #endif | 430 #endif |
| OLD | NEW |