18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project********************************************************************** 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Copyright (C) 1996-2004, International Business Machines 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Corporation and others. All Rights Reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project********************************************************************** 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* FILE NAME : UTYPES.H (formerly ptypes.h) 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Date Name Description 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 12/11/96 helena Creation. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 02/27/97 aliu Added typedefs for UClassID, int8, int16, int32, 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* uint8, uint16, and uint32. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 04/01/97 aliu Added XP_CPLUSPLUS and modified to work under C as 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* well as C++. 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Modified to use memcpy() for uprv_arrayCopy() fns. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 04/14/97 aliu Added TPlatformUtilities. 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 05/07/97 aliu Added import/export specifiers (replacing the old 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* broken EXT_CLASS). Added version number for our 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* code. Cleaned up header. 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 6/20/97 helena Java class name change. 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 08/11/98 stephen UErrorCode changed from typedef to enum 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 08/12/98 erm Changed T_ANALYTIC_PACKAGE_VERSION to 3 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 08/14/98 stephen Added uprv_arrayCopy() for int8_t, int16_t, int32_t 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 12/09/98 jfitz Added BUFFER_OVERFLOW_ERROR (bug 1100066) 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 04/20/99 stephen Cleaned up & reworked for autoconf. 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Renamed to utypes.h. 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 05/05/99 stephen Changed to use <inttypes.h> 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* 12/07/99 helena Moved copyright notice string from ucnv_bld.h here. 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project******************************************************************************* 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UTYPES_H 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define UTYPES_H 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/umachine.h" 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/utf.h" 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/uversion.h" 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/uconfig.h" 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef U_HIDE_DRAFT_API 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/udraft.h" 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef U_HIDE_DEPRECATED_API 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/udeprctd.h" 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef U_HIDE_DEPRECATED_API 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/uobslete.h" 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \file 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \brief Basic definitions for ICU, for both C and C++ APIs 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This file defines basic types, constants, and enumerations directly or 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * indirectly by including other header files, especially utf.h for the 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * basic character and string definitions and umachine.h for consistent 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * integer and other types. 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* char Character set family */ 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * U_CHARSET_FAMILY is equal to this value when the platform is an ASCII based platform. 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_ASCII_FAMILY 0 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * U_CHARSET_FAMILY is equal to this value when the platform is an EBCDIC based platform. 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_EBCDIC_FAMILY 1 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_CHARSET_FAMILY 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>These definitions allow to specify the encoding of text 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in the char data type as defined by the platform and the compiler. 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * It is enough to determine the code point values of "invariant characters", 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * which are the ones shared by all encodings that are in use 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * on a given platform.</p> 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>Those "invariant characters" should be all the uppercase and lowercase 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * latin letters, the digits, the space, and "basic punctuation". 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Also, '\\n', '\\r', '\\t' should be available.</p> 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>The list of "invariant characters" is:<br> 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \code 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A-Z a-z 0-9 SPACE " % & ' ( ) * + , - . / : ; < = > ? _ 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \endcode 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <br> 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (52 letters + 10 numbers + 20 punc/sym/space = 82 total)</p> 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>This matches the IBM Syntactic Character Set (CS 640).</p> 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>In other words, all the graphic characters in 7-bit ASCII should 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * be safely accessible except the following:</p> 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \code 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '\' <backslash> 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '[' <left bracket> 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ']' <right bracket> 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '{' <left brace> 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '}' <right brace> 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '^' <circumflex> 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '~' <tilde> 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '!' <exclamation mark> 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '#' <number sign> 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '|' <vertical line> 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '$' <dollar sign> 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '@' <commercial at> 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * '`' <grave accent> 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \endcode 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef U_CHARSET_FAMILY 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_CHARSET_FAMILY 0 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* ICUDATA naming scheme */ 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_ICUDATA_TYPE_LETTER 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a platform-dependent string containing one letter: 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - b for big-endian, ASCII-family platforms 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - l for little-endian, ASCII-family platforms 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - e for big-endian, EBCDIC-family platforms 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This letter is part of the common data file name. 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_ICUDATA_TYPE_LITLETTER 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The non-string form of U_ICUDATA_TYPE_LETTER 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if U_CHARSET_FAMILY 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# if U_IS_BIG_ENDIAN 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* EBCDIC - should always be BE */ 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LETTER "e" 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LITLETTER e 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# else 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# error "Don't know what to do with little endian EBCDIC!" 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LETTER "x" 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LITLETTER x 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# endif 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# if U_IS_BIG_ENDIAN 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* Big-endian ASCII */ 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LETTER "b" 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LITLETTER b 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# else 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* Little-endian ASCII */ 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LETTER "l" 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_ICUDATA_TYPE_LITLETTER l 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# endif 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A single string literal containing the icudata stub name. i.e. 'icudt18e' for 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ICU 1.8.x on EBCDIC, etc.. 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * U_ICU_ENTRY_POINT is the name of the DLL entry point to the ICU data library. 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Defined as a literal, not a string. 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Tricky Preprocessor use - ## operator replaces macro paramters with the literal string 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * from the corresponding macro invocation, _before_ other macro substitutions. 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Need a nested #defines to get the actual version numbers rather than 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the literal text U_ICU_VERSION_MAJOR_NUM into the name. 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The net result will be something of the form 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * #define U_ICU_ENTRY_POINT icudt19_dat 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM) 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @internal 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor) 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @internal 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_CALLCONV 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in callback function typedefs to make sure that the calling convention 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * is compatible. 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is only used for non-ICU-API functions. 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * When a function is a public ICU API, 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * you must use the U_CAPI and U_EXPORT2 qualifiers. 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if defined(OS390) && (__COMPILER_VER__ < 0x41020000) && defined(XP_CPLUSPLUS) 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_CALLCONV __cdecl 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_CALLCONV U_EXPORT2 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def NULL 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Define NULL if necessary, to 0 for C++ and to ((void *)0) for C. 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef NULL 2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef XP_CPLUSPLUS 2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define NULL 0 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define NULL ((void *)0) 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Calendar/TimeZone data types */ 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Date and Time data type. 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a primitive data type that holds the date and time 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as the number of milliseconds since 1970-jan-01, 00:00 UTC. 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UTC leap seconds are ignored. 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef double UDate; 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** The number of milliseconds per second @stable ICU 2.0 */ 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_MILLIS_PER_SECOND (1000) 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** The number of milliseconds per minute @stable ICU 2.0 */ 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_MILLIS_PER_MINUTE (60000) 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** The number of milliseconds per hour @stable ICU 2.0 */ 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_MILLIS_PER_HOUR (3600000) 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** The number of milliseconds per day @stable ICU 2.0 */ 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_MILLIS_PER_DAY (86400000) 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* UClassID-based RTTI */ 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UClassID is used to identify classes without using RTTI, since RTTI 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * is not yet supported by all C++ compilers. Each class hierarchy which needs 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * to implement polymorphic clone() or operator==() defines two methods, 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * described in detail below. UClassID values can be compared using 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * operator==(). Nothing else should be done with them. 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \par 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * getDynamicClassID() is declared in the base class of the hierarchy as 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * a pure virtual. Each concrete subclass implements it in the same way: 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \code 2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * class Base { 2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * public: 2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * virtual UClassID getDynamicClassID() const = 0; 2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * } 2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * class Derived { 2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * public: 2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * virtual UClassID getDynamicClassID() const 2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * { return Derived::getStaticClassID(); } 2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * } 2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \endcode 2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Each concrete class implements getStaticClassID() as well, which allows 2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * clients to test for a specific type. 2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \code 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * class Derived { 2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * public: 2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * static UClassID U_EXPORT2 getStaticClassID(); 2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * private: 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * static char fgClassID; 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * } 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * // In Derived.cpp: 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UClassID Derived::getStaticClassID() 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * { return (UClassID)&Derived::fgClassID; } 2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * char Derived::fgClassID = 0; // Value is irrelevant 2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \endcode 2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef void* UClassID; 2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Shared library/DLL import-export API control */ 3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Control of symbol import/export. 3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ICU is separated into three libraries. 3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_COMBINED_IMPLEMENTATION 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the ICU library 3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * when all of ICU is in a single library. 3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This can be set as a compiler option while building ICU, and it 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * needs to be the first one tested to override U_COMMON_API, U_I18N_API, etc. 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_DATA_API 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the stubdata library, 3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to import them from outside. 3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @draft ICU 3.0 3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_COMMON_API 3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the common library, 3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to import them from outside. 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_I18N_API 3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the i18n library, 3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to import them from outside. 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_LAYOUT_API 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the layout engine library, 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to import them from outside. 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_LAYOUTEX_API 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the layout extensions library, 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to import them from outside. 3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6 3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_IO_API 3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Set to export library symbols from inside the ustdio library, 3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to import them from outside. 3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if defined(U_COMBINED_IMPLEMENTATION) 3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_EXPORT 3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_EXPORT 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_EXPORT 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_EXPORT 3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_EXPORT 3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_EXPORT 3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(U_STATIC_IMPLEMENTATION) 3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API 3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API 3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API 3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API 3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(U_COMMON_IMPLEMENTATION) 3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_IMPORT 3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_EXPORT 3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_IMPORT 3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_IMPORT 3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_IMPORT 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_IMPORT 3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(U_I18N_IMPLEMENTATION) 3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_IMPORT 3828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_IMPORT 3838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_EXPORT 3848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_IMPORT 3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_IMPORT 3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_IMPORT 3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(U_LAYOUT_IMPLEMENTATION) 3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_IMPORT 3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_IMPORT 3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_IMPORT 3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_EXPORT 3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_IMPORT 3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_IMPORT 3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(U_LAYOUTEX_IMPLEMENTATION) 3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_IMPORT 3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_IMPORT 3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_IMPORT 3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_IMPORT 3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_EXPORT 4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_IMPORT 4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(U_IO_IMPLEMENTATION) 4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_IMPORT 4038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_IMPORT 4048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_IMPORT 4058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_IMPORT 4068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_IMPORT 4078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_EXPORT 4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_DATA_API U_IMPORT 4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_COMMON_API U_IMPORT 4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_I18N_API U_IMPORT 4128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUT_API U_IMPORT 4138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_LAYOUTEX_API U_IMPORT 4148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_IO_API U_IMPORT 4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 4188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def U_STANDARD_CPP_NAMESPACE 4198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Control of C++ Namespace 4208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 4218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 4228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __cplusplus 4238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_STANDARD_CPP_NAMESPACE :: 4248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 4258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_STANDARD_CPP_NAMESPACE 4268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Global delete operator */ 4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 4328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 4348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The ICU4C library must not use the global new and delete operators. 4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * These operators here are defined to enable testing for this. 4368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See Jitterbug 2581 for details of why this is necessary. 4378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 4388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Verification that ICU4C's memory usage is correct, i.e., 4398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * that global new/delete are not used: 4408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 4418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * a) Check for imports of global new/delete (see uobject.cpp for details) 4428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * b) Verify that new is never imported. 4438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * c) Verify that delete is only imported from object code for interface/mixin classes. 4448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * d) Add global delete and delete[] only for the ICU4C library itself 4458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and define them in a way that crashes or otherwise easily shows a problem. 4468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 4478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The following implements d). 4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The operator implementations crash; this is intentional and used for library debugging. 4498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 4508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: This is currently only done on Windows because 4518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * some Linux/Unix compilers have problems with defining global new/delete. 4528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * On Windows, WIN32 is defined, and it is _MSC_Ver>=1200 for MSVC 6.0 and higher. 4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 4548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if defined(XP_CPLUSPLUS) && defined(WIN32) && (_MSC_Ver>=1200) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION)) 4558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 4578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Global operator new, defined only inside ICU4C, must not be used. 4588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Crashes intentionally. 4598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @internal 4608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinline void * 4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectoperator new(size_t /*size*/) { 4638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project char *q=NULL; 4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *q=5; /* break it */ 4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return q; 4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 4698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Global operator new[], defined only inside ICU4C, must not be used. 4708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Crashes intentionally. 4718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @internal 4728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 4738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinline void * 4748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectoperator new[](size_t /*size*/) { 4758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project char *q=NULL; 4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *q=5; /* break it */ 4778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return q; 4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Global operator delete, defined only inside ICU4C, must not be used. 4828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Crashes intentionally. 4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @internal 4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinline void 4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectoperator delete(void * /*p*/) { 4878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project char *q=NULL; 4888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *q=5; /* break it */ 4898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 4908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 4928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Global operator delete[], defined only inside ICU4C, must not be used. 4938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Crashes intentionally. 4948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @internal 4958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinline void 4978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectoperator delete[](void * /*p*/) { 4988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project char *q=NULL; 4998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *q=5; /* break it */ 5008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 5038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 5058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* UErrorCode */ 5068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*===========================================================================*/ 5078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 5098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Error code to replace exception handling, so that the code is compatible with all C++ compilers, 5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and to use the same mechanism for C and C++. 5118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \par 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ICU functions that take a reference (C++) or a pointer (C) to a UErrorCode 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * first test if(U_FAILURE(errorCode)) { return immediately; } 5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * so that in a chain of such functions the first one that sets an error code 5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * causes the following ones to not perform any operations. 5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \par 5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Error codes should be tested using U_FAILURE() and U_SUCCESS(). 5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UErrorCode { 5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* The ordering of U_ERROR_INFO_START Vs U_USING_FALLBACK_WARNING looks weird 5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and is that way because VC++ debugger displays first encountered constant, 5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * which is not the what the code is used for 5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_USING_FALLBACK_WARNING = -128, /**< A resource bundle lookup returned a fallback result (not an error) */ 5298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ERROR_WARNING_START = -128, /**< Start of information results (semantically successful) */ 5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_USING_DEFAULT_WARNING = -127, /**< A resource bundle lookup returned a result from the root locale (not an error) */ 5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_SAFECLONE_ALLOCATED_WARNING = -126, /**< A SafeClone operation required allocating memory (informational only) */ 5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STATE_OLD_WARNING = -125, /**< ICU has to use compatibility layer to construct the service. Expect performance/memory usage degradation. Consider upgrading */ 5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STRING_NOT_TERMINATED_WARNING = -124,/**< An output string could not be NUL-terminated because output length==destCapacity. */ 5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_SORT_KEY_TOO_SHORT_WARNING = -123, /**< Number of levels requested in getBound is higher than the number of levels in the sort key */ 5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_AMBIGUOUS_ALIAS_WARNING = -122, /**< This converter alias can go to different converter implementations */ 5438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_DIFFERENT_UCA_VERSION = -121, /**< ucol_open encountered a mismatch between UCA version and collator image version, so the collator was constructed from rules. No impact to further function */ 5458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ERROR_WARNING_LIMIT, /**< This must always be the last warning value to indicate the limit for UErrorCode warnings (last warning code +1) */ 5478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ZERO_ERROR = 0, /**< No error, no warning. */ 5508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ILLEGAL_ARGUMENT_ERROR = 1, /**< Start of codes indicating failure */ 5528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISSING_RESOURCE_ERROR = 2, /**< The requested resource cannot be found */ 5538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_FORMAT_ERROR = 3, /**< Data format is not what is expected */ 5548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_FILE_ACCESS_ERROR = 4, /**< The requested file cannot be found */ 5558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INTERNAL_PROGRAM_ERROR = 5, /**< Indicates a bug in the library code */ 5568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MESSAGE_PARSE_ERROR = 6, /**< Unable to parse a message (message format) */ 5578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MEMORY_ALLOCATION_ERROR = 7, /**< Memory allocation error */ 5588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INDEX_OUTOFBOUNDS_ERROR = 8, /**< Trying to access the index that is out of bounds */ 5598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_PARSE_ERROR = 9, /**< Equivalent to Java ParseException */ 5608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_CHAR_FOUND = 10, /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character. */ 5618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_TRUNCATED_CHAR_FOUND = 11, /**< Character conversion: Incomplete input sequence. */ 5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units.. */ 5638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_TABLE_FORMAT = 13, /**< Conversion table file found, but corrupted */ 5648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_TABLE_FILE = 14, /**< Conversion table file not found */ 5658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BUFFER_OVERFLOW_ERROR = 15, /**< A result would not fit in the supplied buffer */ 5668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNSUPPORTED_ERROR = 16, /**< Requested operation not supported in current context */ 5678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_RESOURCE_TYPE_MISMATCH = 17, /**< an operation is requested over a resource that does not support it */ 5688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ILLEGAL_ESCAPE_SEQUENCE = 18, /**< ISO-2022 illlegal escape sequence */ 5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNSUPPORTED_ESCAPE_SEQUENCE = 19, /**< ISO-2022 unsupported escape sequence */ 5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_NO_SPACE_AVAILABLE = 20, /**< No space available for in-buffer expansion for Arabic shaping */ 5718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_CE_NOT_FOUND_ERROR = 21, /**< Currently used only while setting variable top, but can be used generally */ 5728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_PRIMARY_TOO_LONG_ERROR = 22, /**< User tried to set variable top to a primary that is longer than two bytes */ 5738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STATE_TOO_OLD_ERROR = 23, /**< ICU cannot construct a service from this state, as it is no longer supported */ 5748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_TOO_MANY_ALIASES_ERROR = 24, /**< There are too many aliases in the path to the requested resource. 5758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project It is very possible that a circular alias definition has occured */ 5768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ENUM_OUT_OF_SYNC_ERROR = 25, /**< UEnumeration out of sync with underlying collection */ 5778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVARIANT_CONVERSION_ERROR = 26, /**< Unable to convert a UChar* string to char* with the invariant converter. */ 5788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_STATE_ERROR = 27, /**< Requested operation can not be completed with ICU in its current state */ 5798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_COLLATOR_VERSION_MISMATCH = 28, /**< Collator version is not compatible with the base version */ 5808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_USELESS_COLLATOR_ERROR = 29, /**< Collator is options only and no base is specified */ 5818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STANDARD_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for standard errors */ 5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* 5848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the error code range 0x10000 0x10100 are reserved for Transliterator 5858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 5868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BAD_VARIABLE_DEFINITION=0x10000,/**< Missing '$' or duplicate variable name */ 5878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_PARSE_ERROR_START = 0x10000, /**< Start of Transliterator errors */ 5888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_RULE, /**< Elements of a rule are misplaced */ 5898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_SET, /**< A UnicodeSet pattern is invalid*/ 5908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_SYMBOL_REFERENCE, /**< UNUSED as of ICU 2.4 */ 5918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_UNICODE_ESCAPE, /**< A Unicode escape pattern is invalid*/ 5928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_VARIABLE_DEFINITION, /**< A variable definition is invalid */ 5938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_VARIABLE_REFERENCE, /**< A variable reference is invalid */ 5948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISMATCHED_SEGMENT_DELIMITERS, /**< UNUSED as of ICU 2.4 */ 5958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISPLACED_ANCHOR_START, /**< A start anchor appears at an illegal position */ 5968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISPLACED_CURSOR_OFFSET, /**< A cursor offset occurs at an illegal position */ 5978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISPLACED_QUANTIFIER, /**< A quantifier appears after a segment close delimiter */ 5988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISSING_OPERATOR, /**< A rule contains no operator */ 5998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISSING_SEGMENT_CLOSE, /**< UNUSED as of ICU 2.4 */ 6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_ANTE_CONTEXTS, /**< More than one ante context */ 6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_CURSORS, /**< More than one cursor */ 6028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_POST_CONTEXTS, /**< More than one post context */ 6038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_TRAILING_BACKSLASH, /**< A dangling backslash */ 6048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNDEFINED_SEGMENT_REFERENCE, /**< A segment reference does not correspond to a defined segment */ 6058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNDEFINED_VARIABLE, /**< A variable reference does not correspond to a defined variable */ 6068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNQUOTED_SPECIAL, /**< A special character was not quoted or escaped */ 6078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNTERMINATED_QUOTE, /**< A closing single quote is missing */ 6088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_RULE_MASK_ERROR, /**< A rule is hidden by an earlier more general rule */ 6098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MISPLACED_COMPOUND_FILTER, /**< A compound filter is in an invalid location */ 6108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_COMPOUND_FILTERS, /**< More than one compound filter */ 6118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_RBT_SYNTAX, /**< A "::id" rule was passed to the RuleBasedTransliterator parser */ 6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_PROPERTY_PATTERN, /**< UNUSED as of ICU 2.4 */ 6138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_PRAGMA, /**< A 'use' pragma is invlalid */ 6148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNCLOSED_SEGMENT, /**< A closing ')' is missing */ 6158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ILLEGAL_CHAR_IN_SEGMENT, /**< UNUSED as of ICU 2.4 */ 6168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_VARIABLE_RANGE_EXHAUSTED, /**< Too many stand-ins generated for the given variable range */ 6178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_VARIABLE_RANGE_OVERLAP, /**< The variable range overlaps characters used in rules */ 6188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ILLEGAL_CHARACTER, /**< A special character is outside its allowed context */ 6198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INTERNAL_TRANSLITERATOR_ERROR, /**< Internal transliterator system error */ 6208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_ID, /**< A "::id" rule specifies an unknown transliterator */ 6218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_INVALID_FUNCTION, /**< A "&fn()" rule specifies an unknown transliterator */ 6228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_PARSE_ERROR_LIMIT, /**< The limit for Transliterator errors */ 6238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* 6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the error code range 0x10100 0x10200 are reserved for formatting API parsing error 6268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 6278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNEXPECTED_TOKEN=0x10100, /**< Syntax error in format pattern */ 6288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_FMT_PARSE_ERROR_START=0x10100, /**< Start of format library errors */ 6298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_DECIMAL_SEPARATORS, /**< More than one decimal separator in number pattern */ 6308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS, /**< Typo: kept for backward compatibility. Use U_MULTIPLE_DECIMAL_SEPARATORS */ 6318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_EXPONENTIAL_SYMBOLS, /**< More than one exponent symbol in number pattern */ 6328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MALFORMED_EXPONENTIAL_PATTERN, /**< Grouping symbol in exponent pattern */ 6338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_PERCENT_SYMBOLS, /**< More than one percent symbol in number pattern */ 6348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_PERMILL_SYMBOLS, /**< More than one permill symbol in number pattern */ 6358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_MULTIPLE_PAD_SPECIFIERS, /**< More than one pad symbol in number pattern */ 6368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_PATTERN_SYNTAX_ERROR, /**< Syntax error in format pattern */ 6378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ILLEGAL_PAD_POSITION, /**< Pad symbol misplaced in number pattern */ 6388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNMATCHED_BRACES, /**< Braces do not match in message pattern */ 6398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNSUPPORTED_PROPERTY, /**< UNUSED as of ICU 2.4 */ 6408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_UNSUPPORTED_ATTRIBUTE, /**< UNUSED as of ICU 2.4 */ 6418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_FMT_PARSE_ERROR_LIMIT, /**< The limit for format library errors */ 6428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* 6448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the error code range 0x10200 0x102ff are reserved for Break Iterator related error 6458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 6468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_ERROR_START=0x10200, /**< Start of codes indicating Break Iterator failures */ 6478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_INTERNAL_ERROR, /**< An internal error (bug) was detected. */ 6488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_HEX_DIGITS_EXPECTED, /**< Hex digits expected as part of a escaped char in a rule. */ 6498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_SEMICOLON_EXPECTED, /**< Missing ';' at the end of a RBBI rule. */ 6508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_RULE_SYNTAX, /**< Syntax error in RBBI rule. */ 6518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_UNCLOSED_SET, /**< UnicodeSet witing an RBBI rule missing a closing ']'. */ 6528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_ASSIGN_ERROR, /**< Syntax error in RBBI rule assignment statement. */ 6538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_VARIABLE_REDFINITION, /**< RBBI rule $Variable redefined. */ 6548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_MISMATCHED_PAREN, /**< Mis-matched parentheses in an RBBI rule. */ 6558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_NEW_LINE_IN_QUOTED_STRING, /**< Missing closing quote in an RBBI rule. */ 6568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_UNDEFINED_VARIABLE, /**< Use of an undefined $Variable in an RBBI rule. */ 6578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_INIT_ERROR, /**< Initialization failure. Probable missing ICU Data. */ 6588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_RULE_EMPTY_SET, /**< Rule contains an empty Unicode Set. */ 6598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_UNRECOGNIZED_OPTION, /**< !!option in RBBI rules not recognized. */ 6608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_MALFORMED_RULE_TAG, /**< The {nnn} tag on a rule is mal formed */ 6618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_BRK_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for Break Iterator failures */ 6628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* 6648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs 6658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 6668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_ERROR_START=0x10300, /**< Start of codes indicating Regexp failures */ 6678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_INTERNAL_ERROR, /**< An internal error (bug) was detected. */ 6688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_RULE_SYNTAX, /**< Syntax error in regexp pattern. */ 6698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_INVALID_STATE, /**< RegexMatcher in invalid state for requested operation */ 6708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_BAD_ESCAPE_SEQUENCE, /**< Unrecognized backslash escape sequence in pattern */ 6718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_PROPERTY_SYNTAX, /**< Incorrect Unicode property */ 6728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_UNIMPLEMENTED, /**< Use of regexp feature that is not yet implemented. */ 6738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_MISMATCHED_PAREN, /**< Incorrectly nested parentheses in regexp pattern. */ 6748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_NUMBER_TOO_BIG, /**< Decimal number is too large. */ 6758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_BAD_INTERVAL, /**< Error in {min,max} interval */ 6768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_MAX_LT_MIN, /**< In {min,max}, max is less than min. */ 6778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_INVALID_BACK_REF, /**< Back-reference to a non-existent capture group. */ 6788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_INVALID_FLAG, /**< Invalid value for match mode flags. */ 6798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_LOOK_BEHIND_LIMIT, /**< Look-Behind pattern matches must have a bounded maximum length. */ 6808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_SET_CONTAINS_STRING, /**< Regexps cannot have UnicodeSets containing strings.*/ 6818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_REGEX_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for regexp errors */ 6828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* 6848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes 6858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 6868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_ERROR_START=0x10400, 6878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_PROHIBITED_ERROR, 6888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_UNASSIGNED_ERROR, 6898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_CHECK_BIDI_ERROR, 6908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_STD3_ASCII_RULES_ERROR, 6918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_ACE_PREFIX_ERROR, 6928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_VERIFICATION_ERROR, 6938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_LABEL_TOO_LONG_ERROR, 6948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_IDNA_ERROR_LIMIT, 6958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /* 6968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Aliases for StringPrep 6978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 6988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR, 6998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR, 7008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR, 7018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project U_ERROR_LIMIT=U_IDNA_ERROR_LIMIT /**< This must always be the last value to indicate the limit for UErrorCode (last error code +1) */ 7048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UErrorCode; 7058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Use the following to determine if an UErrorCode represents */ 7078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* operational success or failure. */ 7088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef XP_CPLUSPLUS 7108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /** 7118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Does the error code indicate success? 7128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 7138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 7148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static 7158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); } 7168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /** 7178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Does the error code indicate a failure? 7188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 7198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 7208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static 7218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); } 7228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 7238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /** 7248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Does the error code indicate success? 7258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 7268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 7278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_SUCCESS(x) ((x)<=U_ZERO_ERROR) 7288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /** 7298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Does the error code indicate a failure? 7308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 7318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 7328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project# define U_FAILURE(x) ((x)>U_ZERO_ERROR) 7338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 7348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 7368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Return a string for a UErrorCode value. 7378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The string will be the same as the name of the error code constant 7388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in the UErrorCode enum above. 7398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0 7408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 7418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE const char * U_EXPORT2 7428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_errorName(UErrorCode code); 7438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif /* _UTYPES */ 746