<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ICU 3.8: utypes.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.1 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="classes.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <h1>utypes.h</h1><a href="utypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment">**********************************************************************</span> <a name="l00003"></a>00003 <span class="comment">* Copyright (C) 1996-2007, International Business Machines</span> <a name="l00004"></a>00004 <span class="comment">* Corporation and others. All Rights Reserved.</span> <a name="l00005"></a>00005 <span class="comment">**********************************************************************</span> <a name="l00006"></a>00006 <span class="comment">*</span> <a name="l00007"></a>00007 <span class="comment">* FILE NAME : UTYPES.H (formerly ptypes.h)</span> <a name="l00008"></a>00008 <span class="comment">*</span> <a name="l00009"></a>00009 <span class="comment">* Date Name Description</span> <a name="l00010"></a>00010 <span class="comment">* 12/11/96 helena Creation.</span> <a name="l00011"></a>00011 <span class="comment">* 02/27/97 aliu Added typedefs for UClassID, int8, int16, int32,</span> <a name="l00012"></a>00012 <span class="comment">* uint8, uint16, and uint32.</span> <a name="l00013"></a>00013 <span class="comment">* 04/01/97 aliu Added XP_CPLUSPLUS and modified to work under C as</span> <a name="l00014"></a>00014 <span class="comment">* well as C++.</span> <a name="l00015"></a>00015 <span class="comment">* Modified to use memcpy() for uprv_arrayCopy() fns.</span> <a name="l00016"></a>00016 <span class="comment">* 04/14/97 aliu Added TPlatformUtilities.</span> <a name="l00017"></a>00017 <span class="comment">* 05/07/97 aliu Added import/export specifiers (replacing the old</span> <a name="l00018"></a>00018 <span class="comment">* broken EXT_CLASS). Added version number for our</span> <a name="l00019"></a>00019 <span class="comment">* code. Cleaned up header.</span> <a name="l00020"></a>00020 <span class="comment">* 6/20/97 helena Java class name change.</span> <a name="l00021"></a>00021 <span class="comment">* 08/11/98 stephen UErrorCode changed from typedef to enum</span> <a name="l00022"></a>00022 <span class="comment">* 08/12/98 erm Changed T_ANALYTIC_PACKAGE_VERSION to 3</span> <a name="l00023"></a>00023 <span class="comment">* 08/14/98 stephen Added uprv_arrayCopy() for int8_t, int16_t, int32_t</span> <a name="l00024"></a>00024 <span class="comment">* 12/09/98 jfitz Added BUFFER_OVERFLOW_ERROR (bug 1100066)</span> <a name="l00025"></a>00025 <span class="comment">* 04/20/99 stephen Cleaned up & reworked for autoconf.</span> <a name="l00026"></a>00026 <span class="comment">* Renamed to utypes.h.</span> <a name="l00027"></a>00027 <span class="comment">* 05/05/99 stephen Changed to use <inttypes.h></span> <a name="l00028"></a>00028 <span class="comment">* 12/07/99 helena Moved copyright notice string from ucnv_bld.h here.</span> <a name="l00029"></a>00029 <span class="comment">*******************************************************************************</span> <a name="l00030"></a>00030 <span class="comment">*/</span> <a name="l00031"></a>00031 <a name="l00032"></a>00032 <span class="preprocessor">#ifndef UTYPES_H</span> <a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define UTYPES_H</span> <a name="l00034"></a>00034 <span class="preprocessor"></span> <a name="l00035"></a>00035 <a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="umachine_8h.html">unicode/umachine.h</a>"</span> <a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="utf_8h.html">unicode/utf.h</a>"</span> <a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="uversion_8h.html">unicode/uversion.h</a>"</span> <a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="uconfig_8h.html">unicode/uconfig.h</a>"</span> <a name="l00040"></a>00040 <a name="l00041"></a>00041 <span class="preprocessor">#if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_DRAFT_API)</span> <a name="l00042"></a><a class="code" href="utypes_8h.html#06945159db789670a11e785b4f691b41">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define U_HIDE_DRAFT_API 1</span> <a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00044"></a>00044 <span class="preprocessor"></span> <a name="l00045"></a>00045 <span class="preprocessor">#ifdef U_HIDE_DRAFT_API</span> <a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/udraft.h"</span> <a name="l00047"></a>00047 <span class="preprocessor">#endif</span> <a name="l00048"></a>00048 <span class="preprocessor"></span> <a name="l00049"></a>00049 <span class="preprocessor">#ifdef U_HIDE_DEPRECATED_API</span> <a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/udeprctd.h"</span> <a name="l00051"></a>00051 <span class="preprocessor">#endif</span> <a name="l00052"></a>00052 <span class="preprocessor"></span> <a name="l00053"></a>00053 <span class="preprocessor">#ifdef U_HIDE_DEPRECATED_API</span> <a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/uobslete.h"</span> <a name="l00055"></a>00055 <span class="preprocessor">#endif</span> <a name="l00056"></a>00056 <span class="preprocessor"></span> <a name="l00057"></a>00057 <span class="preprocessor">#ifdef U_HIDE_INTERNAL_API</span> <a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/uintrnal.h"</span> <a name="l00059"></a>00059 <span class="preprocessor">#endif</span> <a name="l00060"></a>00060 <span class="preprocessor"></span> <a name="l00061"></a>00061 <span class="preprocessor">#ifdef U_HIDE_SYSTEM_API</span> <a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#include "unicode/usystem.h"</span> <a name="l00063"></a>00063 <span class="preprocessor">#endif</span> <a name="l00064"></a>00064 <span class="preprocessor"></span> <a name="l00075"></a>00075 <span class="comment">/*===========================================================================*/</span> <a name="l00076"></a>00076 <span class="comment">/* char Character set family */</span> <a name="l00077"></a>00077 <span class="comment">/*===========================================================================*/</span> <a name="l00078"></a>00078 <a name="l00083"></a><a class="code" href="utypes_8h.html#c909e31de712001c1f7b4697ce741bfd">00083</a> <span class="preprocessor">#define U_ASCII_FAMILY 0</span> <a name="l00084"></a>00084 <span class="preprocessor"></span> <a name="l00089"></a><a class="code" href="utypes_8h.html#6d9eee92eaf6704604a5951470786cfa">00089</a> <span class="preprocessor">#define U_EBCDIC_FAMILY 1</span> <a name="l00090"></a>00090 <span class="preprocessor"></span> <a name="l00134"></a>00134 <span class="preprocessor">#ifndef U_CHARSET_FAMILY</span> <a name="l00135"></a><a class="code" href="utypes_8h.html#7fb0b0fede299f9d74973b15e79d3085">00135</a> <span class="preprocessor"></span><span class="preprocessor"># define U_CHARSET_FAMILY 0</span> <a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00137"></a>00137 <span class="preprocessor"></span> <a name="l00138"></a>00138 <span class="comment">/*===========================================================================*/</span> <a name="l00139"></a>00139 <span class="comment">/* ICUDATA naming scheme */</span> <a name="l00140"></a>00140 <span class="comment">/*===========================================================================*/</span> <a name="l00141"></a>00141 <a name="l00158"></a>00158 <span class="preprocessor">#if U_CHARSET_FAMILY</span> <a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor"># if U_IS_BIG_ENDIAN</span> <a name="l00160"></a>00160 <span class="preprocessor"></span> <span class="comment">/* EBCDIC - should always be BE */</span> <a name="l00161"></a>00161 <span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "e"</span> <a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER e</span> <a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor"># else</span> <a name="l00164"></a>00164 <span class="preprocessor"></span><span class="preprocessor"># error "Don't know what to do with little endian EBCDIC!"</span> <a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "x"</span> <a name="l00166"></a>00166 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER x</span> <a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor"># if U_IS_BIG_ENDIAN</span> <a name="l00170"></a>00170 <span class="preprocessor"></span> <span class="comment">/* Big-endian ASCII */</span> <a name="l00171"></a>00171 <span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "b"</span> <a name="l00172"></a>00172 <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER b</span> <a name="l00173"></a>00173 <span class="preprocessor"></span><span class="preprocessor"># else</span> <a name="l00174"></a>00174 <span class="preprocessor"></span> <span class="comment">/* Little-endian ASCII */</span> <a name="l00175"></a><a class="code" href="utypes_8h.html#5ffc2b3a9a3b3e33c35e8b9f1d5b5055">00175</a> <span class="preprocessor"># define U_ICUDATA_TYPE_LETTER "l"</span> <a name="l00176"></a><a class="code" href="utypes_8h.html#8f6a7088610de8810d4892c72d07f857">00176</a> <span class="preprocessor"></span><span class="preprocessor"># define U_ICUDATA_TYPE_LITLETTER l</span> <a name="l00177"></a>00177 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00179"></a>00179 <span class="preprocessor"></span> <a name="l00185"></a><a class="code" href="utypes_8h.html#2c1a674c492e0cd5019006c64ed1fa32">00185</a> <span class="preprocessor">#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER</span> <a name="l00186"></a>00186 <span class="preprocessor"></span> <a name="l00187"></a>00187 <a name="l00199"></a><a class="code" href="utypes_8h.html#1d160c8ac5758feae64eccf08557d9e5">00199</a> <span class="preprocessor">#define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)</span> <a name="l00200"></a>00200 <span class="preprocessor"></span> <a name="l00205"></a><a class="code" href="utypes_8h.html#24ed1c481bf131937c2bd505119aebc0">00205</a> <span class="preprocessor">#define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)</span> <a name="l00206"></a>00206 <span class="preprocessor"></span> <a name="l00210"></a><a class="code" href="utypes_8h.html#7ec71c08c0f02f795466b82c12c91426">00210</a> <span class="preprocessor">#define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat</span> <a name="l00211"></a>00211 <span class="preprocessor"></span> <a name="l00223"></a>00223 <span class="preprocessor">#if defined(OS390) && (__COMPILER_VER__ < 0x41020000) && defined(XP_CPLUSPLUS)</span> <a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor"># define U_CALLCONV __cdecl</span> <a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00226"></a><a class="code" href="utypes_8h.html#1fae478cb5a46c7e4a0673d267626696">00226</a> <span class="preprocessor"></span><span class="preprocessor"># define U_CALLCONV U_EXPORT2</span> <a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00228"></a>00228 <span class="preprocessor"></span> <a name="l00234"></a>00234 <span class="preprocessor">#ifndef NULL</span> <a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#ifdef XP_CPLUSPLUS</span> <a name="l00236"></a>00236 <span class="preprocessor"></span><span class="preprocessor">#define NULL 0</span> <a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00238"></a><a class="code" href="utypes_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">00238</a> <span class="preprocessor"></span><span class="preprocessor">#define NULL ((void *)0)</span> <a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00241"></a>00241 <span class="preprocessor"></span> <a name="l00242"></a>00242 <span class="comment">/*===========================================================================*/</span> <a name="l00243"></a>00243 <span class="comment">/* Calendar/TimeZone data types */</span> <a name="l00244"></a>00244 <span class="comment">/*===========================================================================*/</span> <a name="l00245"></a>00245 <a name="l00253"></a><a class="code" href="utypes_8h.html#ce1704e9e77d407d1eaaa2e73ec0c039">00253</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="utypes_8h.html#ce1704e9e77d407d1eaaa2e73ec0c039">UDate</a>; <a name="l00254"></a>00254 <a name="l00256"></a><a class="code" href="utypes_8h.html#38068d79565f22b0f14ff562f2fb5b19">00256</a> <span class="preprocessor">#define U_MILLIS_PER_SECOND (1000)</span> <a name="l00257"></a>00257 <span class="preprocessor"></span> <a name="l00258"></a><a class="code" href="utypes_8h.html#abc4b1495952bc1ad9707930dd4562b0">00258</a> <span class="preprocessor">#define U_MILLIS_PER_MINUTE (60000)</span> <a name="l00259"></a>00259 <span class="preprocessor"></span> <a name="l00260"></a><a class="code" href="utypes_8h.html#da7332e7606334a9c09e510862f1b80e">00260</a> <span class="preprocessor">#define U_MILLIS_PER_HOUR (3600000)</span> <a name="l00261"></a>00261 <span class="preprocessor"></span> <a name="l00262"></a><a class="code" href="utypes_8h.html#d0729b7981555063c58da3cc3969dc33">00262</a> <span class="preprocessor">#define U_MILLIS_PER_DAY (86400000)</span> <a name="l00263"></a>00263 <span class="preprocessor"></span> <a name="l00264"></a>00264 <a name="l00265"></a>00265 <span class="comment">/*===========================================================================*/</span> <a name="l00266"></a>00266 <span class="comment">/* UClassID-based RTTI */</span> <a name="l00267"></a>00267 <span class="comment">/*===========================================================================*/</span> <a name="l00268"></a>00268 <a name="l00311"></a><a class="code" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">00311</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span>* <a class="code" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a>; <a name="l00312"></a>00312 <a name="l00313"></a>00313 <span class="comment">/*===========================================================================*/</span> <a name="l00314"></a>00314 <span class="comment">/* Shared library/DLL import-export API control */</span> <a name="l00315"></a>00315 <span class="comment">/*===========================================================================*/</span> <a name="l00316"></a>00316 <a name="l00317"></a>00317 <span class="comment">/*</span> <a name="l00318"></a>00318 <span class="comment"> * Control of symbol import/export.</span> <a name="l00319"></a>00319 <span class="comment"> * ICU is separated into three libraries.</span> <a name="l00320"></a>00320 <span class="comment"> */</span> <a name="l00321"></a>00321 <a name="l00322"></a>00322 <span class="comment">/*</span> <a name="l00323"></a>00323 <span class="comment"> * \def U_COMBINED_IMPLEMENTATION</span> <a name="l00324"></a>00324 <span class="comment"> * Set to export library symbols from inside the ICU library</span> <a name="l00325"></a>00325 <span class="comment"> * when all of ICU is in a single library.</span> <a name="l00326"></a>00326 <span class="comment"> * This can be set as a compiler option while building ICU, and it</span> <a name="l00327"></a>00327 <span class="comment"> * needs to be the first one tested to override U_COMMON_API, U_I18N_API, etc.</span> <a name="l00328"></a>00328 <span class="comment"> * @stable ICU 2.0</span> <a name="l00329"></a>00329 <span class="comment"> */</span> <a name="l00330"></a>00330 <a name="l00380"></a>00380 <span class="preprocessor">#if defined(U_COMBINED_IMPLEMENTATION)</span> <a name="l00381"></a>00381 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_EXPORT</span> <a name="l00382"></a>00382 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_EXPORT</span> <a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_EXPORT</span> <a name="l00384"></a>00384 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_EXPORT</span> <a name="l00385"></a>00385 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_EXPORT</span> <a name="l00386"></a>00386 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_EXPORT</span> <a name="l00387"></a>00387 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_EXPORT</span> <a name="l00388"></a>00388 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_STATIC_IMPLEMENTATION)</span> <a name="l00389"></a>00389 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API</span> <a name="l00390"></a>00390 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API</span> <a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API</span> <a name="l00392"></a>00392 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API</span> <a name="l00393"></a>00393 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API</span> <a name="l00394"></a>00394 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API</span> <a name="l00395"></a>00395 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API</span> <a name="l00396"></a>00396 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_COMMON_IMPLEMENTATION)</span> <a name="l00397"></a>00397 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00398"></a>00398 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_EXPORT</span> <a name="l00399"></a>00399 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00400"></a>00400 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00401"></a>00401 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00402"></a>00402 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00403"></a>00403 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00404"></a>00404 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_I18N_IMPLEMENTATION)</span> <a name="l00405"></a>00405 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00406"></a>00406 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00407"></a>00407 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_EXPORT</span> <a name="l00408"></a>00408 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00410"></a>00410 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00411"></a>00411 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_LAYOUT_IMPLEMENTATION)</span> <a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00414"></a>00414 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00415"></a>00415 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00416"></a>00416 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_EXPORT</span> <a name="l00417"></a>00417 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00419"></a>00419 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00420"></a>00420 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_LAYOUTEX_IMPLEMENTATION)</span> <a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00422"></a>00422 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00423"></a>00423 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00424"></a>00424 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00425"></a>00425 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_EXPORT</span> <a name="l00426"></a>00426 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00428"></a>00428 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_IO_IMPLEMENTATION)</span> <a name="l00429"></a>00429 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00430"></a>00430 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00431"></a>00431 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00432"></a>00432 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00433"></a>00433 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00434"></a>00434 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_EXPORT</span> <a name="l00435"></a>00435 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00436"></a>00436 <span class="preprocessor"></span><span class="preprocessor">#elif defined(U_TOOLUTIL_IMPLEMENTATION)</span> <a name="l00437"></a>00437 <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00438"></a>00438 <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00439"></a>00439 <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00440"></a>00440 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00441"></a>00441 <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00443"></a>00443 <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_EXPORT</span> <a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00445"></a><a class="code" href="utypes_8h.html#12732929e67c6d977b94c68c8911ae21">00445</a> <span class="preprocessor"></span><span class="preprocessor">#define U_DATA_API U_IMPORT</span> <a name="l00446"></a><a class="code" href="utypes_8h.html#559955ec3bc692657c5d8b1c6de8e334">00446</a> <span class="preprocessor"></span><span class="preprocessor">#define U_COMMON_API U_IMPORT</span> <a name="l00447"></a><a class="code" href="utypes_8h.html#b9d90a30137b6ec046fe59e79b09745a">00447</a> <span class="preprocessor"></span><span class="preprocessor">#define U_I18N_API U_IMPORT</span> <a name="l00448"></a><a class="code" href="utypes_8h.html#623f81640d6092d9141a1d4d24ccaffc">00448</a> <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUT_API U_IMPORT</span> <a name="l00449"></a><a class="code" href="utypes_8h.html#29c71565364a6e97d98b45c4e928d567">00449</a> <span class="preprocessor"></span><span class="preprocessor">#define U_LAYOUTEX_API U_IMPORT</span> <a name="l00450"></a><a class="code" href="utypes_8h.html#845bce6fe50083b4fc9c890286aa509e">00450</a> <span class="preprocessor"></span><span class="preprocessor">#define U_IO_API U_IMPORT</span> <a name="l00451"></a><a class="code" href="utypes_8h.html#a03f48d3ba4dd985dcde4d6c0e5b2d07">00451</a> <span class="preprocessor"></span><span class="preprocessor">#define U_TOOLUTIL_API U_IMPORT</span> <a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00453"></a>00453 <span class="preprocessor"></span> <a name="l00459"></a>00459 <span class="preprocessor">#ifdef __cplusplus</span> <a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor">#define U_STANDARD_CPP_NAMESPACE ::</span> <a name="l00461"></a>00461 <span class="preprocessor"></span><span class="preprocessor">#else</span> <a name="l00462"></a><a class="code" href="utypes_8h.html#13b45bffcfdecc8f549963443b5aeac9">00462</a> <span class="preprocessor"></span><span class="preprocessor">#define U_STANDARD_CPP_NAMESPACE</span> <a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00464"></a>00464 <span class="preprocessor"></span> <a name="l00465"></a>00465 <a name="l00466"></a>00466 <span class="comment">/*===========================================================================*/</span> <a name="l00467"></a>00467 <span class="comment">/* Global delete operator */</span> <a name="l00468"></a>00468 <span class="comment">/*===========================================================================*/</span> <a name="l00469"></a>00469 <a name="l00470"></a>00470 <span class="comment">/*</span> <a name="l00471"></a>00471 <span class="comment"> * The ICU4C library must not use the global new and delete operators.</span> <a name="l00472"></a>00472 <span class="comment"> * These operators here are defined to enable testing for this.</span> <a name="l00473"></a>00473 <span class="comment"> * See Jitterbug 2581 for details of why this is necessary.</span> <a name="l00474"></a>00474 <span class="comment"> *</span> <a name="l00475"></a>00475 <span class="comment"> * Verification that ICU4C's memory usage is correct, i.e.,</span> <a name="l00476"></a>00476 <span class="comment"> * that global new/delete are not used:</span> <a name="l00477"></a>00477 <span class="comment"> *</span> <a name="l00478"></a>00478 <span class="comment"> * a) Check for imports of global new/delete (see uobject.cpp for details)</span> <a name="l00479"></a>00479 <span class="comment"> * b) Verify that new is never imported.</span> <a name="l00480"></a>00480 <span class="comment"> * c) Verify that delete is only imported from object code for interface/mixin classes.</span> <a name="l00481"></a>00481 <span class="comment"> * d) Add global delete and delete[] only for the ICU4C library itself</span> <a name="l00482"></a>00482 <span class="comment"> * and define them in a way that crashes or otherwise easily shows a problem.</span> <a name="l00483"></a>00483 <span class="comment"> *</span> <a name="l00484"></a>00484 <span class="comment"> * The following implements d).</span> <a name="l00485"></a>00485 <span class="comment"> * The operator implementations crash; this is intentional and used for library debugging.</span> <a name="l00486"></a>00486 <span class="comment"> *</span> <a name="l00487"></a>00487 <span class="comment"> * Note: This is currently only done on Windows because</span> <a name="l00488"></a>00488 <span class="comment"> * some Linux/Unix compilers have problems with defining global new/delete.</span> <a name="l00489"></a>00489 <span class="comment"> * On Windows, U_WINDOWS is defined, and it is _MSC_VER>=1200 for MSVC 6.0 and higher.</span> <a name="l00490"></a>00490 <span class="comment"> */</span> <a name="l00491"></a>00491 <span class="preprocessor">#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))</span> <a name="l00492"></a>00492 <span class="preprocessor"></span> <a name="l00493"></a>00493 <span class="preprocessor">#ifndef U_HIDE_INTERNAL_API</span> <a name="l00494"></a>00494 <span class="preprocessor"></span> <a name="l00499"></a>00499 <span class="keyword">inline</span> <span class="keywordtype">void</span> * <a name="l00500"></a>00500 operator new(size_t <span class="comment">/*size*/</span>) { <a name="l00501"></a>00501 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; <a name="l00502"></a>00502 *q=5; <span class="comment">/* break it */</span> <a name="l00503"></a>00503 <span class="keywordflow">return</span> q; <a name="l00504"></a>00504 } <a name="l00505"></a>00505 <a name="l00511"></a>00511 <span class="keyword">inline</span> <span class="keywordtype">void</span> * <a name="l00512"></a>00512 operator new[](size_t <span class="comment">/*size*/</span>) { <a name="l00513"></a>00513 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; <a name="l00514"></a>00514 *q=5; <span class="comment">/* break it */</span> <a name="l00515"></a>00515 <span class="keywordflow">return</span> q; <a name="l00516"></a>00516 } <a name="l00517"></a>00517 <a name="l00523"></a>00523 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l00524"></a>00524 operator delete(<span class="keywordtype">void</span> * <span class="comment">/*p*/</span>) { <a name="l00525"></a>00525 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; <a name="l00526"></a>00526 *q=5; <span class="comment">/* break it */</span> <a name="l00527"></a>00527 } <a name="l00528"></a>00528 <a name="l00534"></a>00534 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a name="l00535"></a>00535 operator delete[](<span class="keywordtype">void</span> * <span class="comment">/*p*/</span>) { <a name="l00536"></a>00536 <span class="keywordtype">char</span> *q=<a class="code" href="utypes_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; <a name="l00537"></a>00537 *q=5; <span class="comment">/* break it */</span> <a name="l00538"></a>00538 } <a name="l00539"></a>00539 <a name="l00540"></a>00540 <span class="preprocessor">#endif </span><span class="comment">/* U_HIDE_INTERNAL_API */</span> <a name="l00541"></a>00541 <span class="preprocessor">#endif</span> <a name="l00542"></a>00542 <span class="preprocessor"></span> <a name="l00543"></a>00543 <span class="comment">/*===========================================================================*/</span> <a name="l00544"></a>00544 <span class="comment">/* UErrorCode */</span> <a name="l00545"></a>00545 <span class="comment">/*===========================================================================*/</span> <a name="l00546"></a>00546 <a name="l00561"></a><a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">00561</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> { <a name="l00562"></a>00562 <span class="comment">/* The ordering of U_ERROR_INFO_START Vs U_USING_FALLBACK_WARNING looks weird</span> <a name="l00563"></a>00563 <span class="comment"> * and is that way because VC++ debugger displays first encountered constant,</span> <a name="l00564"></a>00564 <span class="comment"> * which is not the what the code is used for</span> <a name="l00565"></a>00565 <span class="comment"> */</span> <a name="l00566"></a>00566 <a name="l00567"></a>00567 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd5587ac25f5b1f340bed0ed09d45d77f">U_USING_FALLBACK_WARNING</a> = -128, <a name="l00569"></a>00569 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ccfc1c1bb23eb007f8a61b966ae58da08">U_ERROR_WARNING_START</a> = -128, <a name="l00571"></a>00571 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ced8d36a0afbe3e5a2242f0005fcfad84">U_USING_DEFAULT_WARNING</a> = -127, <a name="l00573"></a>00573 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c5bb41deb082d216dd5315e29f2727405">U_SAFECLONE_ALLOCATED_WARNING</a> = -126, <a name="l00575"></a>00575 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ce0626ff8bde8f7f0106562a89ef2ea72">U_STATE_OLD_WARNING</a> = -125, <a name="l00577"></a>00577 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c34815fae03bafa4b3dd9685489f1c8d8">U_STRING_NOT_TERMINATED_WARNING</a> = -124, <a name="l00579"></a>00579 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c78081263df2c8503a63084605098ee3e">U_SORT_KEY_TOO_SHORT_WARNING</a> = -123, <a name="l00581"></a>00581 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c90c95e7c0f281420f210a552baa7c13d">U_AMBIGUOUS_ALIAS_WARNING</a> = -122, <a name="l00583"></a>00583 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cb2163a7cc546a28c1f4c78aff39c99a2">U_DIFFERENT_UCA_VERSION</a> = -121, <a name="l00585"></a>00585 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ce2073a8ed9011fdcf255a26f11a624b2">U_ERROR_WARNING_LIMIT</a>, <a name="l00588"></a>00588 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca43dbfc9499c5f911d04e1a0ca3bf6f9">U_ZERO_ERROR</a> = 0, <a name="l00590"></a>00590 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c309ec9eeda4fba18847cf61f833445ea">U_ILLEGAL_ARGUMENT_ERROR</a> = 1, <a name="l00591"></a>00591 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c170fabb40612097923596f80536a07b7">U_MISSING_RESOURCE_ERROR</a> = 2, <a name="l00592"></a>00592 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c3b2830761371670dcbe807353eba2b6a">U_INVALID_FORMAT_ERROR</a> = 3, <a name="l00593"></a>00593 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c620c910f69c3f27151ce5b1215a8662a">U_FILE_ACCESS_ERROR</a> = 4, <a name="l00594"></a>00594 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca982af5a82abf1560473c7531f30a2a8">U_INTERNAL_PROGRAM_ERROR</a> = 5, <a name="l00595"></a>00595 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c48ad88b7be07ab3e2ad9110195e18afc">U_MESSAGE_PARSE_ERROR</a> = 6, <a name="l00596"></a>00596 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c243253eeb4885e17158b876849063269">U_MEMORY_ALLOCATION_ERROR</a> = 7, <a name="l00597"></a>00597 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c80c72dc6aa73be1a0ea6586a6ab8d73d">U_INDEX_OUTOFBOUNDS_ERROR</a> = 8, <a name="l00598"></a>00598 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cc45cee739cf5ac404a09ee6555f28881">U_PARSE_ERROR</a> = 9, <a name="l00599"></a>00599 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ce502473abb14aca98816038f02050abe">U_INVALID_CHAR_FOUND</a> = 10, <a name="l00600"></a>00600 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf0c13ee36e89774c7056360b81c76caf">U_TRUNCATED_CHAR_FOUND</a> = 11, <a name="l00601"></a>00601 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c616dcef9e839f1f7d2b15d9ad300f7e7">U_ILLEGAL_CHAR_FOUND</a> = 12, <a name="l00602"></a>00602 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cb1b46153d94ce20a3cac0b6c9550963b">U_INVALID_TABLE_FORMAT</a> = 13, <a name="l00603"></a>00603 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c2137af5bb9737b75855f7079d2b35706">U_INVALID_TABLE_FILE</a> = 14, <a name="l00604"></a>00604 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c294424f5f497a3161ed08b63ac962135">U_BUFFER_OVERFLOW_ERROR</a> = 15, <a name="l00605"></a>00605 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c65a5a3a1b2f8ed0fb97e26068729a758">U_UNSUPPORTED_ERROR</a> = 16, <a name="l00606"></a>00606 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c7cd9d3af8106c1b382989157231c0665">U_RESOURCE_TYPE_MISMATCH</a> = 17, <a name="l00607"></a>00607 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ce769daf822521fe8d36b8749246b9f44">U_ILLEGAL_ESCAPE_SEQUENCE</a> = 18, <a name="l00608"></a>00608 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c16db18ca778f2592b98780dc7a18d759">U_UNSUPPORTED_ESCAPE_SEQUENCE</a> = 19, <a name="l00609"></a>00609 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ceac8862f7c2a47173a69908dcc1f42ea">U_NO_SPACE_AVAILABLE</a> = 20, <a name="l00610"></a>00610 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c50a9aa38bb45d5a82b8e08896f45b27c">U_CE_NOT_FOUND_ERROR</a> = 21, <a name="l00611"></a>00611 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c9a7178629da59c629b17814c2ec99f77">U_PRIMARY_TOO_LONG_ERROR</a> = 22, <a name="l00612"></a>00612 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c70eacab52e96e3dea2d6b3a141751cd1">U_STATE_TOO_OLD_ERROR</a> = 23, <a name="l00613"></a>00613 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c6cd747442c17866090e3c3994d49d3fa">U_TOO_MANY_ALIASES_ERROR</a> = 24, <a name="l00615"></a>00615 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf1014aa7aa1eec9e3f905384749c7545">U_ENUM_OUT_OF_SYNC_ERROR</a> = 25, <a name="l00616"></a>00616 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c97525a3511b2c591162ed77701199bbe">U_INVARIANT_CONVERSION_ERROR</a> = 26, <a name="l00617"></a>00617 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c790a28fc945834604e4427c43ec4d44f">U_INVALID_STATE_ERROR</a> = 27, <a name="l00618"></a>00618 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c8352f1cee5f89b40b5aded225a593464">U_COLLATOR_VERSION_MISMATCH</a> = 28, <a name="l00619"></a>00619 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c581795b7e78afdef483a5d40fb375cde">U_USELESS_COLLATOR_ERROR</a> = 29, <a name="l00620"></a>00620 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c3913819239c9825d3b3bb6a0cb1d0a28">U_NO_WRITE_PERMISSION</a> = 30, <a name="l00622"></a>00622 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cc95be10a0360afc8388874d592bd4074">U_STANDARD_ERROR_LIMIT</a>, <a name="l00623"></a>00623 <span class="comment">/*</span> <a name="l00624"></a>00624 <span class="comment"> * the error code range 0x10000 0x10100 are reserved for Transliterator</span> <a name="l00625"></a>00625 <span class="comment"> */</span> <a name="l00626"></a>00626 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c50abf3ccf88eac601ca09bf61a481ab0">U_BAD_VARIABLE_DEFINITION</a>=0x10000, <a name="l00627"></a>00627 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cec7ea07e89fe6a730ce09a8f6809db7e">U_PARSE_ERROR_START</a> = 0x10000, <a name="l00628"></a>00628 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf8f95e1a86910196fe3a0e5035be261b">U_MALFORMED_RULE</a>, <a name="l00629"></a>00629 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cc9f1e99ef167efb2c2c5ff3275d5dc96">U_MALFORMED_SET</a>, <a name="l00630"></a>00630 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c51b7ac271c05ab7ebb542b9fbc0ce1e8">U_MALFORMED_SYMBOL_REFERENCE</a>, <a name="l00631"></a>00631 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd2fdf57ac1e600a0df82c2f291b09cd1">U_MALFORMED_UNICODE_ESCAPE</a>, <a name="l00632"></a>00632 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c106338b0bffa6a9ea609b71248875c11">U_MALFORMED_VARIABLE_DEFINITION</a>, <a name="l00633"></a>00633 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca4c1301c8a9be1f8702cf23ecf368278">U_MALFORMED_VARIABLE_REFERENCE</a>, <a name="l00634"></a>00634 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c10b78ae0d07d5a8e26c6b9e456e811f4">U_MISMATCHED_SEGMENT_DELIMITERS</a>, <a name="l00635"></a>00635 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c00aec83ccfff4956f935ccf38b12b29a">U_MISPLACED_ANCHOR_START</a>, <a name="l00636"></a>00636 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf882f276381c050b003d6362dbb5058b">U_MISPLACED_CURSOR_OFFSET</a>, <a name="l00637"></a>00637 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c30d5acd21c9ecbc8f730a41699c199ca">U_MISPLACED_QUANTIFIER</a>, <a name="l00638"></a>00638 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd87737926f4b233af6ce9565bfa81a1c">U_MISSING_OPERATOR</a>, <a name="l00639"></a>00639 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cdc9ce9558c209821a9d7659e6b229733">U_MISSING_SEGMENT_CLOSE</a>, <a name="l00640"></a>00640 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c707c6061ad56bba1f743b53881e44a5e">U_MULTIPLE_ANTE_CONTEXTS</a>, <a name="l00641"></a>00641 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ce372e7e28fb47cca90da238d59ce0793">U_MULTIPLE_CURSORS</a>, <a name="l00642"></a>00642 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c86d28c53aa7b81b97bcd1eabcbd9cf5c">U_MULTIPLE_POST_CONTEXTS</a>, <a name="l00643"></a>00643 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c443d8966c7e15de3d94abf88d29d2beb">U_TRAILING_BACKSLASH</a>, <a name="l00644"></a>00644 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c41a94a1720054961f1017c66bd26628d">U_UNDEFINED_SEGMENT_REFERENCE</a>, <a name="l00645"></a>00645 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cc995e7e9423963fd341fd7ec03578e91">U_UNDEFINED_VARIABLE</a>, <a name="l00646"></a>00646 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c750906a142c04e162ea5bb6167411f1a">U_UNQUOTED_SPECIAL</a>, <a name="l00647"></a>00647 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c5d7fb2a6ceb9425e787380c06932b721">U_UNTERMINATED_QUOTE</a>, <a name="l00648"></a>00648 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c64deab5ad883d0b98f4e34a003cdee74">U_RULE_MASK_ERROR</a>, <a name="l00649"></a>00649 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c29c6b7710dd0b2b8994e17da66f89e5f">U_MISPLACED_COMPOUND_FILTER</a>, <a name="l00650"></a>00650 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd892b393c258949c152eb3eff308c68b">U_MULTIPLE_COMPOUND_FILTERS</a>, <a name="l00651"></a>00651 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ccf6fe18f0d25f256620ce4ac2a387e46">U_INVALID_RBT_SYNTAX</a>, <a name="l00652"></a>00652 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c9fa5da278a2680afcb071ead158ab95d">U_INVALID_PROPERTY_PATTERN</a>, <a name="l00653"></a>00653 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c514841a426025a6957b6d11ea207a754">U_MALFORMED_PRAGMA</a>, <a name="l00654"></a>00654 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cae4a595a231d975465c645adbd39a57c">U_UNCLOSED_SEGMENT</a>, <a name="l00655"></a>00655 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cbd5b105dae090d5fa649bff207d38c37">U_ILLEGAL_CHAR_IN_SEGMENT</a>, <a name="l00656"></a>00656 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c2de147d1b7be08244899c3e1daeda686">U_VARIABLE_RANGE_EXHAUSTED</a>, <a name="l00657"></a>00657 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf58b05f041edd7c47bc4e348648ac0b1">U_VARIABLE_RANGE_OVERLAP</a>, <a name="l00658"></a>00658 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c7b8a758591ac2fba23bc089daf461d85">U_ILLEGAL_CHARACTER</a>, <a name="l00659"></a>00659 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c5565ed94e6edc7c5bc91344c021cb22f">U_INTERNAL_TRANSLITERATOR_ERROR</a>, <a name="l00660"></a>00660 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c30e61bc30bde484b10be863ed95f6bc6">U_INVALID_ID</a>, <a name="l00661"></a>00661 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca07903569836a4303ce25e16ca26487b">U_INVALID_FUNCTION</a>, <a name="l00662"></a>00662 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c7c3149ecac825fdea24fe3bd6bc097c2">U_PARSE_ERROR_LIMIT</a>, <a name="l00664"></a>00664 <span class="comment">/*</span> <a name="l00665"></a>00665 <span class="comment"> * the error code range 0x10100 0x10200 are reserved for formatting API parsing error</span> <a name="l00666"></a>00666 <span class="comment"> */</span> <a name="l00667"></a>00667 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c5fe9c6fff314fa4216c3620f0c0a3e3e">U_UNEXPECTED_TOKEN</a>=0x10100, <a name="l00668"></a>00668 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c1543d02dfce2f7b01b57ad882c65c470">U_FMT_PARSE_ERROR_START</a>=0x10100, <a name="l00669"></a>00669 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78caebc292d3c792264512d92d54975b98e">U_MULTIPLE_DECIMAL_SEPARATORS</a>, <a name="l00670"></a>00670 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cbdd40525be1960330852363dcead1f1b">U_MULTIPLE_DECIMAL_SEPERATORS</a> = <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78caebc292d3c792264512d92d54975b98e">U_MULTIPLE_DECIMAL_SEPARATORS</a>, <a name="l00671"></a>00671 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca4bca1e41f3f5326ccd942a870ed84db">U_MULTIPLE_EXPONENTIAL_SYMBOLS</a>, <a name="l00672"></a>00672 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cda16431d7e64fb0fbf33dd243f98c53d">U_MALFORMED_EXPONENTIAL_PATTERN</a>, <a name="l00673"></a>00673 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c17f25ea678b6c7a708c9d4375799c383">U_MULTIPLE_PERCENT_SYMBOLS</a>, <a name="l00674"></a>00674 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c7ee91a3227e15a738068609836f6c12d">U_MULTIPLE_PERMILL_SYMBOLS</a>, <a name="l00675"></a>00675 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c619fdb4d123a8db36dc0a4de49a5e77e">U_MULTIPLE_PAD_SPECIFIERS</a>, <a name="l00676"></a>00676 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c94bdd0fcb81e66c9a35e012266490748">U_PATTERN_SYNTAX_ERROR</a>, <a name="l00677"></a>00677 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c0780797f658a0ce7d6bfea272bf83277">U_ILLEGAL_PAD_POSITION</a>, <a name="l00678"></a>00678 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cb0996404b555df6f27b3df22b585824b">U_UNMATCHED_BRACES</a>, <a name="l00679"></a>00679 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c38f8cd32b3ee005b378bac6041143279">U_UNSUPPORTED_PROPERTY</a>, <a name="l00680"></a>00680 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cca32851eb79fc23c4c317bdc6a6b9c76">U_UNSUPPORTED_ATTRIBUTE</a>, <a name="l00681"></a>00681 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c0de6e0b25ba1af9b5e5197a104a86c94">U_FMT_PARSE_ERROR_LIMIT</a>, <a name="l00683"></a>00683 <span class="comment">/*</span> <a name="l00684"></a>00684 <span class="comment"> * the error code range 0x10200 0x102ff are reserved for Break Iterator related error</span> <a name="l00685"></a>00685 <span class="comment"> */</span> <a name="l00686"></a>00686 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c8ebaa33af906deb1919c154f6ecc8bac">U_BRK_INTERNAL_ERROR</a>=0x10200, <a name="l00687"></a>00687 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca04c56bb85e8c660a149af213a1c16eb">U_BRK_ERROR_START</a>=0x10200, <a name="l00688"></a>00688 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c95f5e504e28e34d8c1961ea3554b859c">U_BRK_HEX_DIGITS_EXPECTED</a>, <a name="l00689"></a>00689 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd1a561a593cae45f0870feeb5d533e76">U_BRK_SEMICOLON_EXPECTED</a>, <a name="l00690"></a>00690 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd9eb5f57e3ce0ae1513c6af6e9a7f26d">U_BRK_RULE_SYNTAX</a>, <a name="l00691"></a>00691 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c9ae495564696e360a64e69c04e328d19">U_BRK_UNCLOSED_SET</a>, <a name="l00692"></a>00692 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c90f9350c9815ac1753fa6ecfcfa72202">U_BRK_ASSIGN_ERROR</a>, <a name="l00693"></a>00693 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c5af6b7b2ac5a0bf9b766d0d0dbce5391">U_BRK_VARIABLE_REDFINITION</a>, <a name="l00694"></a>00694 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c786bd587116eb657a1c17df1820b5c77">U_BRK_MISMATCHED_PAREN</a>, <a name="l00695"></a>00695 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cbb5958d9fedfdc8755a0e3d6eb60fa9c">U_BRK_NEW_LINE_IN_QUOTED_STRING</a>, <a name="l00696"></a>00696 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c6917c38c966be30c57455247bf7ae98f">U_BRK_UNDEFINED_VARIABLE</a>, <a name="l00697"></a>00697 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c86b9d24bf7bc48f6ebfd9ee76f2dd406">U_BRK_INIT_ERROR</a>, <a name="l00698"></a>00698 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c4b5d04fbb22a826e56112cf743cce449">U_BRK_RULE_EMPTY_SET</a>, <a name="l00699"></a>00699 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c46c8330d5d1ee0b6d1248536a3ca963d">U_BRK_UNRECOGNIZED_OPTION</a>, <a name="l00700"></a>00700 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf85f658b26f83d683de3cd0d943c2435">U_BRK_MALFORMED_RULE_TAG</a>, <a name="l00701"></a>00701 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c6f7028fcc27d5e583873df027be17718">U_BRK_ERROR_LIMIT</a>, <a name="l00703"></a>00703 <span class="comment">/*</span> <a name="l00704"></a>00704 <span class="comment"> * The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs</span> <a name="l00705"></a>00705 <span class="comment"> */</span> <a name="l00706"></a>00706 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c30d5e3ae5f9c11e5adcc0a15f6600981">U_REGEX_INTERNAL_ERROR</a>=0x10300, <a name="l00707"></a>00707 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ccbde4696a63fa1ab358131b7148461dd">U_REGEX_ERROR_START</a>=0x10300, <a name="l00708"></a>00708 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca29705b19e5107222d9dd481342860fd">U_REGEX_RULE_SYNTAX</a>, <a name="l00709"></a>00709 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cdf17d183789528d9f02bba60b698590a">U_REGEX_INVALID_STATE</a>, <a name="l00710"></a>00710 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c06679e78947417e52a12cbe1f1b1df29">U_REGEX_BAD_ESCAPE_SEQUENCE</a>, <a name="l00711"></a>00711 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c217a040cc2a3757a5821232989659267">U_REGEX_PROPERTY_SYNTAX</a>, <a name="l00712"></a>00712 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c299b06abcbff1d470222e6f1522a6dac">U_REGEX_UNIMPLEMENTED</a>, <a name="l00713"></a>00713 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c87ea0641eb620d9a20f2a760a092089d">U_REGEX_MISMATCHED_PAREN</a>, <a name="l00714"></a>00714 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c78073885b5f48f21fe1daf1e1a782300">U_REGEX_NUMBER_TOO_BIG</a>, <a name="l00715"></a>00715 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cfca17e0e28b27701b8adebe9cb379960">U_REGEX_BAD_INTERVAL</a>, <a name="l00716"></a>00716 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cedaeec4f630c43294cf59422d15e811d">U_REGEX_MAX_LT_MIN</a>, <a name="l00717"></a>00717 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c6c6c9f669dc9210f2dc7161d7925cda8">U_REGEX_INVALID_BACK_REF</a>, <a name="l00718"></a>00718 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cd34950bf8a463d7e819e682b1d178cf6">U_REGEX_INVALID_FLAG</a>, <a name="l00719"></a>00719 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c03eb7cf44e4e79ef3c4368a3297c8069">U_REGEX_LOOK_BEHIND_LIMIT</a>, <a name="l00720"></a>00720 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cf2b434e65a7d60093d9160f8c53375d4">U_REGEX_SET_CONTAINS_STRING</a>, <a name="l00721"></a>00721 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78cabd1e7808122f0213e71412a7b7a2867">U_REGEX_ERROR_LIMIT</a>, <a name="l00723"></a>00723 <span class="comment">/*</span> <a name="l00724"></a>00724 <span class="comment"> * The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes</span> <a name="l00725"></a>00725 <span class="comment"> */</span> <a name="l00726"></a>00726 U_IDNA_PROHIBITED_ERROR=0x10400, <a name="l00727"></a>00727 U_IDNA_ERROR_START=0x10400, <a name="l00728"></a>00728 U_IDNA_UNASSIGNED_ERROR, <a name="l00729"></a>00729 U_IDNA_CHECK_BIDI_ERROR, <a name="l00730"></a>00730 U_IDNA_STD3_ASCII_RULES_ERROR, <a name="l00731"></a>00731 U_IDNA_ACE_PREFIX_ERROR, <a name="l00732"></a>00732 U_IDNA_VERIFICATION_ERROR, <a name="l00733"></a>00733 U_IDNA_LABEL_TOO_LONG_ERROR, <a name="l00734"></a>00734 U_IDNA_ZERO_LENGTH_LABEL_ERROR, <a name="l00735"></a>00735 U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR, <a name="l00736"></a>00736 U_IDNA_ERROR_LIMIT, <a name="l00737"></a>00737 <span class="comment">/*</span> <a name="l00738"></a>00738 <span class="comment"> * Aliases for StringPrep</span> <a name="l00739"></a>00739 <span class="comment"> */</span> <a name="l00740"></a>00740 U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR, <a name="l00741"></a>00741 U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR, <a name="l00742"></a>00742 U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR, <a name="l00743"></a>00743 <a name="l00744"></a>00744 <a name="l00745"></a><a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c1ee60e67a1a4b175e00d0e9f0e449b52">00745</a> <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c1ee60e67a1a4b175e00d0e9f0e449b52">U_ERROR_LIMIT</a>=U_IDNA_ERROR_LIMIT <a name="l00746"></a>00746 } <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>; <a name="l00747"></a>00747 <a name="l00748"></a>00748 <span class="comment">/* Use the following to determine if an UErrorCode represents */</span> <a name="l00749"></a>00749 <span class="comment">/* operational success or failure. */</span> <a name="l00750"></a>00750 <a name="l00751"></a>00751 <span class="preprocessor">#ifdef XP_CPLUSPLUS</span> <a name="l00752"></a>00752 <span class="preprocessor"></span> <a name="l00756"></a>00756 <span class="keyword">static</span> <a name="l00757"></a>00757 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> <a class="code" href="utypes_8h.html#527f2c69e6b2e3b2c53ad8a99fb36711">U_SUCCESS</a>(<a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> code) { <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a>)(code<=<a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca43dbfc9499c5f911d04e1a0ca3bf6f9">U_ZERO_ERROR</a>); } <a name="l00762"></a>00762 <span class="keyword">static</span> <a name="l00763"></a>00763 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> <a class="code" href="utypes_8h.html#4d202200b6aa6f3c965ea370e0c8155f">U_FAILURE</a>(<a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> code) { <span class="keywordflow">return</span> (<a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a>)(code><a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78ca43dbfc9499c5f911d04e1a0ca3bf6f9">U_ZERO_ERROR</a>); } <a name="l00764"></a>00764 <span class="preprocessor">#else</span> <a name="l00765"></a>00765 <span class="preprocessor"></span> <a name="l00769"></a><a class="code" href="utypes_8h.html#527f2c69e6b2e3b2c53ad8a99fb36711">00769</a> <span class="preprocessor"># define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)</span> <a name="l00770"></a>00770 <span class="preprocessor"></span> <a name="l00774"></a><a class="code" href="utypes_8h.html#4d202200b6aa6f3c965ea370e0c8155f">00774</a> <span class="preprocessor"># define U_FAILURE(x) ((x)>U_ZERO_ERROR)</span> <a name="l00775"></a>00775 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00776"></a>00776 <span class="preprocessor"></span> <a name="l00783"></a>00783 <a class="code" href="umachine_8h.html#f3e3799716eaa41e3f49c7bf18c62b98">U_STABLE</a> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="platform_8h.html#72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> <a name="l00784"></a>00784 <a class="code" href="utypes_8h.html#89eb455526bb29bf5350ee861d81df92">u_errorName</a>(<a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> code); <a name="l00785"></a>00785 <a name="l00786"></a>00786 <a name="l00787"></a>00787 <span class="preprocessor">#endif </span><span class="comment">/* _UTYPES */</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Sep 14 12:59:21 2007 for ICU 3.8 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address> </body> </html>