- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# utypes.h

Go to the documentation of this file.

    00001 /*
    00002 **********************************************************************
    00003 *   Copyright (C) 1996-2010, International Business Machines
    00004 *   Corporation and others.  All Rights Reserved.
    00005 **********************************************************************
    00006 *
    00007 *  FILE NAME : UTYPES.H (formerly ptypes.h)
    00008 *
    00009 *   Date        Name        Description
    00010 *   12/11/96    helena      Creation.
    00011 *   02/27/97    aliu        Added typedefs for UClassID, int8, int16, int32,
    00012 *                           uint8, uint16, and uint32.
    00013 *   04/01/97    aliu        Added XP_CPLUSPLUS and modified to work under C as
    00014 *                            well as C++.
    00015 *                           Modified to use memcpy() for uprv_arrayCopy() fns.
    00016 *   04/14/97    aliu        Added TPlatformUtilities.
    00017 *   05/07/97    aliu        Added import/export specifiers (replacing the old
    00018 *                           broken EXT_CLASS).  Added version number for our
    00019 *                           code.  Cleaned up header.
    00020 *    6/20/97    helena      Java class name change.
    00021 *   08/11/98    stephen     UErrorCode changed from typedef to enum
    00022 *   08/12/98    erm         Changed T_ANALYTIC_PACKAGE_VERSION to 3
    00023 *   08/14/98    stephen     Added uprv_arrayCopy() for int8_t, int16_t, int32_t
    00024 *   12/09/98    jfitz       Added BUFFER_OVERFLOW_ERROR (bug 1100066)
    00025 *   04/20/99    stephen     Cleaned up & reworked for autoconf.
    00026 *                           Renamed to utypes.h.
    00027 *   05/05/99    stephen     Changed to use <inttypes.h>
    00028 *   12/07/99    helena      Moved copyright notice string from ucnv_bld.h here.
    00029 *******************************************************************************
    00030 */
    00031
    00032 #ifndef UTYPES_H
    00033 #define UTYPES_H
    00034
    00035
    00036 #include "unicode/umachine.h"
    00037 #include "unicode/utf.h"
    00038 #include "unicode/uversion.h"
    00039 #include "unicode/uconfig.h"
    00040
    00056 #ifdef XP_CPLUSPLUS
    00057 #   ifndef U_SHOW_CPLUSPLUS_API
    00058 #       define U_SHOW_CPLUSPLUS_API 1
    00059 #   endif
    00060 #else
    00061 #   undef U_SHOW_CPLUSPLUS_API
    00062 #   define U_SHOW_CPLUSPLUS_API 0
    00063 #endif
    00064
    00071 #if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_DRAFT_API)
    00072 #define U_HIDE_DRAFT_API 1
    00073 #endif
    00074 #if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_INTERNAL_API)
    00075 #define U_HIDE_INTERNAL_API 1
    00076 #endif
    00077
    00078 #ifdef U_HIDE_DRAFT_API
    00079 #include "unicode/udraft.h"
    00080 #endif
    00081
    00082 #ifdef U_HIDE_DEPRECATED_API
    00083 #include "unicode/udeprctd.h"
    00084 #endif
    00085
    00086 #ifdef U_HIDE_DEPRECATED_API
    00087 #include "unicode/uobslete.h"
    00088 #endif
    00089
    00090 #ifdef U_HIDE_INTERNAL_API
    00091 #include "unicode/uintrnal.h"
    00092 #endif
    00093
    00094 #ifdef U_HIDE_SYSTEM_API
    00095 #include "unicode/usystem.h"
    00096 #endif
    00097
    00101 /*===========================================================================*/
    00102 /* char Character set family                                                 */
    00103 /*===========================================================================*/
    00104
    00109 #define U_ASCII_FAMILY 0
    00110
    00115 #define U_EBCDIC_FAMILY 1
    00116
    00160 #ifndef U_CHARSET_FAMILY
    00161 #   define U_CHARSET_FAMILY 0
    00162 #endif
    00163
    00184 #ifndef U_CHARSET_IS_UTF8
    00185 #   define U_CHARSET_IS_UTF8 0
    00186 #endif
    00187
    00188 /*===========================================================================*/
    00189 /* ICUDATA naming scheme                                                     */
    00190 /*===========================================================================*/
    00191
    00208 #if U_CHARSET_FAMILY
    00209 #   if U_IS_BIG_ENDIAN
    00210    /* EBCDIC - should always be BE */
    00211 #     define U_ICUDATA_TYPE_LETTER "e"
    00212 #     define U_ICUDATA_TYPE_LITLETTER e
    00213 #   else
    00214 #     error "Don't know what to do with little endian EBCDIC!"
    00215 #     define U_ICUDATA_TYPE_LETTER "x"
    00216 #     define U_ICUDATA_TYPE_LITLETTER x
    00217 #   endif
    00218 #else
    00219 #   if U_IS_BIG_ENDIAN
    00220       /* Big-endian ASCII */
    00221 #     define U_ICUDATA_TYPE_LETTER "b"
    00222 #     define U_ICUDATA_TYPE_LITLETTER b
    00223 #   else
    00224       /* Little-endian ASCII */
    00225 #     define U_ICUDATA_TYPE_LETTER "l"
    00226 #     define U_ICUDATA_TYPE_LITLETTER l
    00227 #   endif
    00228 #endif
    00229
    00235 #define U_ICUDATA_NAME    "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
    00236 #define U_USRDATA_NAME    "usrdt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
    00237 #define U_USE_USRDATA     1
    00250 #define U_ICUDATA_ENTRY_POINT  U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)
    00251
    00256 #define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)
    00257
    00261 #ifndef U_DEF_ICUDATA_ENTRY_POINT
    00262 /* affected by symbol renaming. See platform.h */
    00263 #define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat
    00264 #endif
    00265
    00277 #if defined(OS390) && defined(XP_CPLUSPLUS)
    00278 #    define U_CALLCONV __cdecl
    00279 #else
    00280 #    define U_CALLCONV U_EXPORT2
    00281 #endif
    00282
    00288 #ifndef NULL
    00289 #ifdef XP_CPLUSPLUS
    00290 #define NULL    0
    00291 #else
    00292 #define NULL    ((void *)0)
    00293 #endif
    00294 #endif
    00295
    00296 /*===========================================================================*/
    00297 /* Calendar/TimeZone data types                                              */
    00298 /*===========================================================================*/
    00299
    00307 typedef double UDate;
    00308
    00310 #define U_MILLIS_PER_SECOND        (1000)
    00311
    00312 #define U_MILLIS_PER_MINUTE       (60000)
    00313
    00314 #define U_MILLIS_PER_HOUR       (3600000)
    00315
    00316 #define U_MILLIS_PER_DAY       (86400000)
    00317
    00318
    00319 /*===========================================================================*/
    00320 /* UClassID-based RTTI */
    00321 /*===========================================================================*/
    00322
    00365 typedef void* UClassID;
    00366
    00367 /*===========================================================================*/
    00368 /* Shared library/DLL import-export API control                              */
    00369 /*===========================================================================*/
    00370
    00371 /*
    00372  * Control of symbol import/export.
    00373  * ICU is separated into three libraries.
    00374  */
    00375
    00376 /*
    00377  * \def U_COMBINED_IMPLEMENTATION
    00378  * Set to export library symbols from inside the ICU library
    00379  * when all of ICU is in a single library.
    00380  * This can be set as a compiler option while building ICU, and it
    00381  * needs to be the first one tested to override U_COMMON_API, U_I18N_API, etc.
    00382  * @stable ICU 2.0
    00383  */
    00384
    00434 #if defined(U_COMBINED_IMPLEMENTATION)
    00435 #define U_DATA_API     U_EXPORT
    00436 #define U_COMMON_API   U_EXPORT
    00437 #define U_I18N_API     U_EXPORT
    00438 #define U_LAYOUT_API   U_EXPORT
    00439 #define U_LAYOUTEX_API U_EXPORT
    00440 #define U_IO_API       U_EXPORT
    00441 #define U_TOOLUTIL_API U_EXPORT
    00442 #elif defined(U_STATIC_IMPLEMENTATION)
    00443 #define U_DATA_API
    00444 #define U_COMMON_API
    00445 #define U_I18N_API
    00446 #define U_LAYOUT_API
    00447 #define U_LAYOUTEX_API
    00448 #define U_IO_API
    00449 #define U_TOOLUTIL_API
    00450 #elif defined(U_COMMON_IMPLEMENTATION)
    00451 #define U_DATA_API     U_IMPORT
    00452 #define U_COMMON_API   U_EXPORT
    00453 #define U_I18N_API     U_IMPORT
    00454 #define U_LAYOUT_API   U_IMPORT
    00455 #define U_LAYOUTEX_API U_IMPORT
    00456 #define U_IO_API       U_IMPORT
    00457 #define U_TOOLUTIL_API U_IMPORT
    00458 #elif defined(U_I18N_IMPLEMENTATION)
    00459 #define U_DATA_API     U_IMPORT
    00460 #define U_COMMON_API   U_IMPORT
    00461 #define U_I18N_API     U_EXPORT
    00462 #define U_LAYOUT_API   U_IMPORT
    00463 #define U_LAYOUTEX_API U_IMPORT
    00464 #define U_IO_API       U_IMPORT
    00465 #define U_TOOLUTIL_API U_IMPORT
    00466 #elif defined(U_LAYOUT_IMPLEMENTATION)
    00467 #define U_DATA_API     U_IMPORT
    00468 #define U_COMMON_API   U_IMPORT
    00469 #define U_I18N_API     U_IMPORT
    00470 #define U_LAYOUT_API   U_EXPORT
    00471 #define U_LAYOUTEX_API U_IMPORT
    00472 #define U_IO_API       U_IMPORT
    00473 #define U_TOOLUTIL_API U_IMPORT
    00474 #elif defined(U_LAYOUTEX_IMPLEMENTATION)
    00475 #define U_DATA_API     U_IMPORT
    00476 #define U_COMMON_API   U_IMPORT
    00477 #define U_I18N_API     U_IMPORT
    00478 #define U_LAYOUT_API   U_IMPORT
    00479 #define U_LAYOUTEX_API U_EXPORT
    00480 #define U_IO_API       U_IMPORT
    00481 #define U_TOOLUTIL_API U_IMPORT
    00482 #elif defined(U_IO_IMPLEMENTATION)
    00483 #define U_DATA_API     U_IMPORT
    00484 #define U_COMMON_API   U_IMPORT
    00485 #define U_I18N_API     U_IMPORT
    00486 #define U_LAYOUT_API   U_IMPORT
    00487 #define U_LAYOUTEX_API U_IMPORT
    00488 #define U_IO_API       U_EXPORT
    00489 #define U_TOOLUTIL_API U_IMPORT
    00490 #elif defined(U_TOOLUTIL_IMPLEMENTATION)
    00491 #define U_DATA_API     U_IMPORT
    00492 #define U_COMMON_API   U_IMPORT
    00493 #define U_I18N_API     U_IMPORT
    00494 #define U_LAYOUT_API   U_IMPORT
    00495 #define U_LAYOUTEX_API U_IMPORT
    00496 #define U_IO_API       U_IMPORT
    00497 #define U_TOOLUTIL_API U_EXPORT
    00498 #else
    00499 #define U_DATA_API     U_IMPORT
    00500 #define U_COMMON_API   U_IMPORT
    00501 #define U_I18N_API     U_IMPORT
    00502 #define U_LAYOUT_API   U_IMPORT
    00503 #define U_LAYOUTEX_API U_IMPORT
    00504 #define U_IO_API       U_IMPORT
    00505 #define U_TOOLUTIL_API U_IMPORT
    00506 #endif
    00507
    00513 #ifdef __cplusplus
    00514 #define U_STANDARD_CPP_NAMESPACE        ::
    00515 #else
    00516 #define U_STANDARD_CPP_NAMESPACE
    00517 #endif
    00518
    00519
    00520 /*===========================================================================*/
    00521 /* Global delete operator                                                    */
    00522 /*===========================================================================*/
    00523
    00524 /*
    00525  * The ICU4C library must not use the global new and delete operators.
    00526  * These operators here are defined to enable testing for this.
    00527  * See Jitterbug 2581 for details of why this is necessary.
    00528  *
    00529  * Verification that ICU4C's memory usage is correct, i.e.,
    00530  * that global new/delete are not used:
    00531  *
    00532  * a) Check for imports of global new/delete (see uobject.cpp for details)
    00533  * b) Verify that new is never imported.
    00534  * c) Verify that delete is only imported from object code for interface/mixin classes.
    00535  * d) Add global delete and delete[] only for the ICU4C library itself
    00536  *    and define them in a way that crashes or otherwise easily shows a problem.
    00537  *
    00538  * The following implements d).
    00539  * The operator implementations crash; this is intentional and used for library debugging.
    00540  *
    00541  * Note: This is currently only done on Windows because
    00542  * some Linux/Unix compilers have problems with defining global new/delete.
    00543  * On Windows, U_WINDOWS is defined, and it is _MSC_VER>=1200 for MSVC 6.0 and higher.
    00544  */
    00545 #if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && U_DEBUG && U_OVERRIDE_CXX_ALLOCATION && (_MSC_VER>=1200) && !defined(U_STATIC_IMPLEMENTATION) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION))
    00546
    00547 #ifndef U_HIDE_INTERNAL_API
    00548
    00553 inline void *
    00554 operator new(size_t /*size*/) {
    00555     char *q=NULL;
    00556     *q=5; /* break it */
    00557     return q;
    00558 }
    00559
    00560 #ifdef _Ret_bytecap_
    00561 /* This is only needed to suppress a Visual C++ 2008 warning for operator new[]. */
    00562 _Ret_bytecap_(_Size)
    00563 #endif
    00564
    00569 inline void *
    00570 operator new[](size_t /*size*/) {
    00571     char *q=NULL;
    00572     *q=5; /* break it */
    00573     return q;
    00574 }
    00575
    00581 inline void
    00582 operator delete(void * /*p*/) {
    00583     char *q=NULL;
    00584     *q=5; /* break it */
    00585 }
    00586
    00592 inline void
    00593 operator delete[](void * /*p*/) {
    00594     char *q=NULL;
    00595     *q=5; /* break it */
    00596 }
    00597
    00598 #endif /* U_HIDE_INTERNAL_API */
    00599 #endif
    00600
    00601 /*===========================================================================*/
    00602 /* UErrorCode */
    00603 /*===========================================================================*/
    00604
    00619 typedef enum UErrorCode {
    00620     /* The ordering of U_ERROR_INFO_START Vs U_USING_FALLBACK_WARNING looks weird
    00621      * and is that way because VC++ debugger displays first encountered constant,
    00622      * which is not the what the code is used for
    00623      */
    00624
    00625     U_USING_FALLBACK_WARNING  = -128,
    00627     U_ERROR_WARNING_START     = -128,
    00629     U_USING_DEFAULT_WARNING   = -127,
    00631     U_SAFECLONE_ALLOCATED_WARNING = -126,
    00633     U_STATE_OLD_WARNING       = -125,
    00635     U_STRING_NOT_TERMINATED_WARNING = -124,
    00637     U_SORT_KEY_TOO_SHORT_WARNING = -123,
    00639     U_AMBIGUOUS_ALIAS_WARNING = -122,
    00641     U_DIFFERENT_UCA_VERSION = -121,
    00643     U_PLUGIN_CHANGED_LEVEL_WARNING = -120,
    00645     U_ERROR_WARNING_LIMIT,
    00648     U_ZERO_ERROR              =  0,
    00650     U_ILLEGAL_ARGUMENT_ERROR  =  1,
    00651     U_MISSING_RESOURCE_ERROR  =  2,
    00652     U_INVALID_FORMAT_ERROR    =  3,
    00653     U_FILE_ACCESS_ERROR       =  4,
    00654     U_INTERNAL_PROGRAM_ERROR  =  5,
    00655     U_MESSAGE_PARSE_ERROR     =  6,
    00656     U_MEMORY_ALLOCATION_ERROR =  7,
    00657     U_INDEX_OUTOFBOUNDS_ERROR =  8,
    00658     U_PARSE_ERROR             =  9,
    00659     U_INVALID_CHAR_FOUND      = 10,
    00660     U_TRUNCATED_CHAR_FOUND    = 11,
    00661     U_ILLEGAL_CHAR_FOUND      = 12,
    00662     U_INVALID_TABLE_FORMAT    = 13,
    00663     U_INVALID_TABLE_FILE      = 14,
    00664     U_BUFFER_OVERFLOW_ERROR   = 15,
    00665     U_UNSUPPORTED_ERROR       = 16,
    00666     U_RESOURCE_TYPE_MISMATCH  = 17,
    00667     U_ILLEGAL_ESCAPE_SEQUENCE = 18,
    00668     U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,
    00669     U_NO_SPACE_AVAILABLE      = 20,
    00670     U_CE_NOT_FOUND_ERROR      = 21,
    00671     U_PRIMARY_TOO_LONG_ERROR  = 22,
    00672     U_STATE_TOO_OLD_ERROR     = 23,
    00673     U_TOO_MANY_ALIASES_ERROR  = 24,
    00675     U_ENUM_OUT_OF_SYNC_ERROR  = 25,
    00676     U_INVARIANT_CONVERSION_ERROR = 26,
    00677     U_INVALID_STATE_ERROR     = 27,
    00678     U_COLLATOR_VERSION_MISMATCH = 28,
    00679     U_USELESS_COLLATOR_ERROR  = 29,
    00680     U_NO_WRITE_PERMISSION     = 30,
    00682     U_STANDARD_ERROR_LIMIT,
    00683     /*
    00684      * the error code range 0x10000 0x10100 are reserved for Transliterator
    00685      */
    00686     U_BAD_VARIABLE_DEFINITION=0x10000,
    00687     U_PARSE_ERROR_START = 0x10000,
    00688     U_MALFORMED_RULE,
    00689     U_MALFORMED_SET,
    00690     U_MALFORMED_SYMBOL_REFERENCE,
    00691     U_MALFORMED_UNICODE_ESCAPE,
    00692     U_MALFORMED_VARIABLE_DEFINITION,
    00693     U_MALFORMED_VARIABLE_REFERENCE,
    00694     U_MISMATCHED_SEGMENT_DELIMITERS,
    00695     U_MISPLACED_ANCHOR_START,
    00696     U_MISPLACED_CURSOR_OFFSET,
    00697     U_MISPLACED_QUANTIFIER,
    00698     U_MISSING_OPERATOR,
    00699     U_MISSING_SEGMENT_CLOSE,
    00700     U_MULTIPLE_ANTE_CONTEXTS,
    00701     U_MULTIPLE_CURSORS,
    00702     U_MULTIPLE_POST_CONTEXTS,
    00703     U_TRAILING_BACKSLASH,
    00704     U_UNDEFINED_SEGMENT_REFERENCE,
    00705     U_UNDEFINED_VARIABLE,
    00706     U_UNQUOTED_SPECIAL,
    00707     U_UNTERMINATED_QUOTE,
    00708     U_RULE_MASK_ERROR,
    00709     U_MISPLACED_COMPOUND_FILTER,
    00710     U_MULTIPLE_COMPOUND_FILTERS,
    00711     U_INVALID_RBT_SYNTAX,
    00712     U_INVALID_PROPERTY_PATTERN,
    00713     U_MALFORMED_PRAGMA,
    00714     U_UNCLOSED_SEGMENT,
    00715     U_ILLEGAL_CHAR_IN_SEGMENT,
    00716     U_VARIABLE_RANGE_EXHAUSTED,
    00717     U_VARIABLE_RANGE_OVERLAP,
    00718     U_ILLEGAL_CHARACTER,
    00719     U_INTERNAL_TRANSLITERATOR_ERROR,
    00720     U_INVALID_ID,
    00721     U_INVALID_FUNCTION,
    00722     U_PARSE_ERROR_LIMIT,
    00724     /*
    00725      * the error code range 0x10100 0x10200 are reserved for formatting API parsing error
    00726      */
    00727     U_UNEXPECTED_TOKEN=0x10100,
    00728     U_FMT_PARSE_ERROR_START=0x10100,
    00729     U_MULTIPLE_DECIMAL_SEPARATORS,
    00730     U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS,
    00731     U_MULTIPLE_EXPONENTIAL_SYMBOLS,
    00732     U_MALFORMED_EXPONENTIAL_PATTERN,
    00733     U_MULTIPLE_PERCENT_SYMBOLS,
    00734     U_MULTIPLE_PERMILL_SYMBOLS,
    00735     U_MULTIPLE_PAD_SPECIFIERS,
    00736     U_PATTERN_SYNTAX_ERROR,
    00737     U_ILLEGAL_PAD_POSITION,
    00738     U_UNMATCHED_BRACES,
    00739     U_UNSUPPORTED_PROPERTY,
    00740     U_UNSUPPORTED_ATTRIBUTE,
    00741     U_ARGUMENT_TYPE_MISMATCH,
    00742     U_DUPLICATE_KEYWORD,
    00743     U_UNDEFINED_KEYWORD,
    00744     U_DEFAULT_KEYWORD_MISSING,
    00745     U_DECIMAL_NUMBER_SYNTAX_ERROR,
    00746     U_FMT_PARSE_ERROR_LIMIT,
    00748     /*
    00749      * the error code range 0x10200 0x102ff are reserved for Break Iterator related error
    00750      */
    00751     U_BRK_INTERNAL_ERROR=0x10200,
    00752     U_BRK_ERROR_START=0x10200,
    00753     U_BRK_HEX_DIGITS_EXPECTED,
    00754     U_BRK_SEMICOLON_EXPECTED,
    00755     U_BRK_RULE_SYNTAX,
    00756     U_BRK_UNCLOSED_SET,
    00757     U_BRK_ASSIGN_ERROR,
    00758     U_BRK_VARIABLE_REDFINITION,
    00759     U_BRK_MISMATCHED_PAREN,
    00760     U_BRK_NEW_LINE_IN_QUOTED_STRING,
    00761     U_BRK_UNDEFINED_VARIABLE,
    00762     U_BRK_INIT_ERROR,
    00763     U_BRK_RULE_EMPTY_SET,
    00764     U_BRK_UNRECOGNIZED_OPTION,
    00765     U_BRK_MALFORMED_RULE_TAG,
    00766     U_BRK_ERROR_LIMIT,
    00768     /*
    00769      * The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs
    00770      */
    00771     U_REGEX_INTERNAL_ERROR=0x10300,
    00772     U_REGEX_ERROR_START=0x10300,
    00773     U_REGEX_RULE_SYNTAX,
    00774     U_REGEX_INVALID_STATE,
    00775     U_REGEX_BAD_ESCAPE_SEQUENCE,
    00776     U_REGEX_PROPERTY_SYNTAX,
    00777     U_REGEX_UNIMPLEMENTED,
    00778     U_REGEX_MISMATCHED_PAREN,
    00779     U_REGEX_NUMBER_TOO_BIG,
    00780     U_REGEX_BAD_INTERVAL,
    00781     U_REGEX_MAX_LT_MIN,
    00782     U_REGEX_INVALID_BACK_REF,
    00783     U_REGEX_INVALID_FLAG,
    00784     U_REGEX_LOOK_BEHIND_LIMIT,
    00785     U_REGEX_SET_CONTAINS_STRING,
    00786     U_REGEX_OCTAL_TOO_BIG,
    00787     U_REGEX_MISSING_CLOSE_BRACKET,
    00788     U_REGEX_INVALID_RANGE,
    00789     U_REGEX_STACK_OVERFLOW,
    00790     U_REGEX_TIME_OUT,
    00791     U_REGEX_STOPPED_BY_CALLER,
    00792     U_REGEX_ERROR_LIMIT,
    00794     /*
    00795      * The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes
    00796      */
    00797     U_IDNA_PROHIBITED_ERROR=0x10400,
    00798     U_IDNA_ERROR_START=0x10400,
    00799     U_IDNA_UNASSIGNED_ERROR,
    00800     U_IDNA_CHECK_BIDI_ERROR,
    00801     U_IDNA_STD3_ASCII_RULES_ERROR,
    00802     U_IDNA_ACE_PREFIX_ERROR,
    00803     U_IDNA_VERIFICATION_ERROR,
    00804     U_IDNA_LABEL_TOO_LONG_ERROR,
    00805     U_IDNA_ZERO_LENGTH_LABEL_ERROR,
    00806     U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR,
    00807     U_IDNA_ERROR_LIMIT,
    00808     /*
    00809      * Aliases for StringPrep
    00810      */
    00811     U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR,
    00812     U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR,
    00813     U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR,
    00814
    00815     /*
    00816      * The error code in the range 0x10500-0x105ff are reserved for Plugin related error codes
    00817      */
    00818     U_PLUGIN_ERROR_START=0x10500,
    00819     U_PLUGIN_TOO_HIGH=0x10500,
    00820     U_PLUGIN_DIDNT_SET_LEVEL,
    00821     U_PLUGIN_ERROR_LIMIT,
    00823     U_ERROR_LIMIT=U_PLUGIN_ERROR_LIMIT
    00824 } UErrorCode;
    00825
    00826 /* Use the following to determine if an UErrorCode represents */
    00827 /* operational success or failure. */
    00828
    00829 #ifdef XP_CPLUSPLUS
    00830
    00834     static
    00835     inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); }
    00840     static
    00841     inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); }
    00842 #else
    00843
    00847 #   define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
    00848
    00852 #   define U_FAILURE(x) ((x)>U_ZERO_ERROR)
    00853 #endif
    00854
    00861 U_STABLE const char * U_EXPORT2
    00862 u_errorName(UErrorCode code);
    00863
    00864
    00865 #endif /* _UTYPES */

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines