00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef UTYPES_H
00023 #define UTYPES_H
00024 #include <wchar.h>
00025 #include <stdlib.h>
00026
00027
00028
00029
00030
00031
00032 #include "pos400.h"
00033
00034 XERCES_CPP_NAMESPACE_BEGIN
00035
00036
00037
00038 #ifdef __cplusplus
00039 # ifndef XP_CPLUSPLUS
00040 # define XP_CPLUSPLUS
00041 # endif
00042 #else
00043 # undef XP_CPLUSPLUS
00044 #endif
00045
00046
00047
00048
00049
00050 #if ! HAVE_BOOL_T
00051 typedef int8_t bool_t;
00052 #endif
00053
00054 #ifndef TRUE
00055 # define TRUE 1
00056 #endif
00057 #ifndef FALSE
00058 # define FALSE 0
00059 #endif
00060
00061
00062
00063
00064 typedef int32_t UTextOffset;
00065
00066
00067
00068
00069 typedef uint16_t UChar;
00070
00071
00072
00073
00074
00075
00076
00077
00078 #ifdef XP_CPLUSPLUS
00079 # define U_CFUNC extern "C"
00080 # define U_CDECL_BEGIN extern "C" {
00081 # define U_CDECL_END }
00082 #else
00083 # define U_CFUNC
00084 # define U_CDECL_BEGIN
00085 # define U_CDECL_END
00086 #endif
00087 #define U_CAPI U_CFUNC U_EXPORT
00088
00089
00090
00091
00092 #ifndef NULL
00093 #ifdef XP_CPLUSPLUS
00094 #define NULL 0
00095 #else
00096 #define NULL ((void *)0)
00097 #endif
00098 #endif
00099
00100
00101
00102 #define U_MAX_PTR ((void*)-1)
00103
00104
00105
00106
00107
00108
00109
00111 #ifdef __OS400__
00112 enum UErrorCode1 {
00113 #else
00114 enum UErrorCode {
00115 #endif
00116 U_ERROR_INFO_START = -128,
00117 U_USING_FALLBACK_ERROR = -128,
00118 U_USING_DEFAULT_ERROR = -127,
00119 U_ERROR_INFO_LIMIT,
00120
00121 U_ZERO_ERROR = 0,
00122
00123 U_ILLEGAL_ARGUMENT_ERROR = 1,
00124 U_MISSING_RESOURCE_ERROR = 2,
00125 U_INVALID_FORMAT_ERROR = 3,
00126 U_FILE_ACCESS_ERROR = 4,
00127 U_INTERNAL_PROGRAM_ERROR = 5,
00128 U_MESSAGE_PARSE_ERROR = 6,
00129 U_MEMORY_ALLOCATION_ERROR = 7,
00130 U_INDEX_OUTOFBOUNDS_ERROR = 8,
00131 U_PARSE_ERROR = 9,
00132 U_INVALID_CHAR_FOUND = 10,
00133 U_TRUNCATED_CHAR_FOUND = 11,
00134 U_ILLEGAL_CHAR_FOUND = 12,
00135 U_INVALID_TABLE_FORMAT = 13,
00136 U_INVALID_TABLE_FILE = 14,
00137 U_BUFFER_OVERFLOW_ERROR = 15,
00138 U_UNSUPPORTED_ERROR = 16,
00139 U_ERROR_LIMIT
00140 };
00141 #ifdef __OS400__
00142 typedef int UErrorCode;
00143 #define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
00144 #define U_FAILURE(x) ((x)>U_ZERO_ERROR)
00145 #else
00146 #ifndef XP_CPLUSPLUS
00147 typedef enum UErrorCode UErrorCode;
00148 #endif
00149 #endif
00150
00151
00152
00153
00154 #ifndef __OS400__
00155 #ifdef XP_CPLUSPLUS
00156 inline bool_t U_SUCCESS(UErrorCode code) { return (bool_t)(code<=U_ZERO_ERROR); }
00157 inline bool_t U_FAILURE(UErrorCode code) { return (bool_t)(code>U_ZERO_ERROR); }
00158 #else
00159 #define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
00160 #define U_FAILURE(x) ((x)>U_ZERO_ERROR)
00161 #endif
00162 #endif
00163
00164
00165
00166 #define T_INT32(i) ((int32_t)i)
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180 static const char *
00181 _uErrorInfoName[U_ERROR_INFO_LIMIT-U_ERROR_INFO_START]={
00182 "U_USING_FALLBACK_ERROR",
00183 "U_USING_DEFAULT_ERROR"
00184 };
00185
00186 static const char *
00187 _uErrorName[U_ERROR_LIMIT]={
00188 "U_ZERO_ERROR",
00189
00190 "U_ILLEGAL_ARGUMENT_ERROR",
00191 "U_MISSING_RESOURCE_ERROR",
00192 "U_INVALID_FORMAT_ERROR",
00193 "U_FILE_ACCESS_ERROR",
00194 "U_INTERNAL_PROGRAM_ERROR",
00195 "U_MESSAGE_PARSE_ERROR",
00196 "U_MEMORY_ALLOCATION_ERROR",
00197 "U_INDEX_OUTOFBOUNDS_ERROR",
00198 "U_PARSE_ERROR",
00199 "U_INVALID_CHAR_FOUND",
00200 "U_TRUNCATED_CHAR_FOUND",
00201 "U_ILLEGAL_CHAR_FOUND",
00202 "U_INVALID_TABLE_FORMAT",
00203 "U_INVALID_TABLE_FILE",
00204 "U_BUFFER_OVERFLOW_ERROR",
00205 "U_UNSUPPORTED_ERROR"
00206 };
00207
00208 #ifdef XP_CPLUSPLUS
00209 inline const char *
00210 errorName(UErrorCode code)
00211 {
00212 if(code>=0 && code<U_ERROR_LIMIT) {
00213 return _uErrorName[code];
00214 } else if(code>=U_ERROR_INFO_START && code<U_ERROR_INFO_LIMIT) {
00215 return _uErrorInfoName[code-U_ERROR_INFO_START];
00216 } else {
00217 return "[BOGUS UErrorCode]";
00218 }
00219 }
00220 #else
00221 # define errorName(code) \
00222 ((code)>=0 && (code)<U_ERROR_LIMIT) ? \
00223 _uErrorName[code] : \
00224 ((code)>=U_ERROR_INFO_START && (code)<U_ERROR_INFO_LIMIT) ? \
00225 _uErrorInfoName[code-U_ERROR_INFO_START] : \
00226 "[BOGUS UErrorCode]"
00227 #endif
00228
00229 XERCES_CPP_NAMESPACE_END
00230
00231 #endif