00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028 #ifndef __RTXERROR_H__
00029 #define __RTXERROR_H__
00030
00031 #include "rtxsrc/rtxContext.h"
00032 #include "rtxsrc/rtxErrCodes.h"
00033
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00038
00039
00057 #ifndef _COMPACT
00058
00059 #ifndef __MODULE__
00060 #define LOG_RTERR(pctxt,stat) \
00061 rtxErrSetData(pctxt,stat,__FILE__,__LINE__)
00062
00063 #define LOG_RTERRNEW(pctxt,stat) \
00064 rtxErrSetNewData(pctxt,stat,__FILE__,__LINE__)
00065
00066 #else
00067 #define LOG_RTERR(pctxt,stat) \
00068 rtxErrSetData(pctxt,stat,__MODULE__,__LINE__)
00069
00070 #define LOG_RTERRNEW(pctxt,stat) \
00071 rtxErrSetNewData(pctxt,stat,__MODULE__,__LINE__)
00072 #endif
00073
00082 #define OSRTASSERT(condition) \
00083 if (!(condition)) { rtxErrAssertionFailed(#condition,__LINE__,__FILE__); }
00084
00091 #define OSRTCHECKPARAM(condition) if (condition) { }
00092 #else
00093 #define LOG_RTERR(pctxt,stat) \
00094 rtxErrSetData(pctxt,stat,0,0)
00095
00096 #define LOG_RTERRNEW(pctxt,stat) \
00097 rtxErrSetNewData(pctxt,stat,0,0)
00098
00099 #define OSRTASSERT(condition)
00100 #define OSRTCHECKPARAM(condition)
00101 #endif
00102
00103 #define LOG_RTERR1(pctxt,stat,a) \
00104 (a,LOG_RTERR (pctxt, stat),stat)
00105
00106 #define LOG_RTERRNEW1(pctxt,stat,a) \
00107 (a,LOG_RTERRNEW (pctxt, stat),stat)
00108
00109 #define LOG_RTERR2(pctxt,stat,a,b) \
00110 (a,b,LOG_RTERR (pctxt, stat),stat)
00111
00112 #define LOG_RTERRNEW2(pctxt,stat,a,b) \
00113 (a,b,LOG_RTERRNEW (pctxt, stat),stat)
00114
00115
00116 typedef int (*OSErrCbFunc) (const char* ptext, void* cbArg_p);
00117
00127 EXTERNRT OSBOOL rtxErrAddCtxtBufParm (OSCTXT* pctxt);
00128
00138 EXTERNRT OSBOOL rtxErrAddDoubleParm (OSCTXT* pctxt, double errParm);
00139
00152 EXTERNRT OSBOOL rtxErrAddErrorTableEntry
00153 #if !defined(_ARMTCC) && !defined(__SYMBIAN32__)
00154 (const char* const* ppStatusText, OSINT32 minErrCode, OSINT32 maxErrCode);
00155 #else
00156 ();
00157 #endif
00158
00169 EXTERNRT OSBOOL rtxErrAddElemNameParm (OSCTXT* pctxt);
00170
00183 EXTERNRT OSBOOL rtxErrAddIntParm (OSCTXT* pctxt, int errParm);
00184
00185 #if !defined(_NO_INT64_SUPPORT)
00186
00199 EXTERNRT OSBOOL rtxErrAddInt64Parm (OSCTXT* pctxt, OSINT64 errParm);
00200 #endif
00201
00211 EXTERNRT OSBOOL rtxErrAddStrParm (OSCTXT* pctxt, const char* pErrParm);
00212
00223 EXTERNRT OSBOOL rtxErrAddStrnParm
00224 (OSCTXT* pctxt, const char* pErrParm, size_t nchars);
00225
00235 EXTERNRT OSBOOL rtxErrAddUIntParm (OSCTXT* pctxt, unsigned int errParm);
00236
00237 #if !defined(_NO_INT64_SUPPORT)
00238
00247 EXTERNRT OSBOOL rtxErrAddUInt64Parm (OSCTXT* pctxt, OSUINT64 errParm);
00248 #endif
00249
00260 EXTERNRT void rtxErrAssertionFailed
00261 (const char* conditionText, int lineNo, const char* fileName);
00262
00272 EXTERNRT const char* rtxErrFmtMsg
00273 (OSRTErrInfo* pErrInfo, char* bufp, size_t bufsiz);
00274
00282 EXTERNRT void rtxErrFreeParms (OSCTXT* pctxt);
00283
00303 EXTERNRT char* rtxErrGetText (OSCTXT* pctxt, char* pBuf, size_t* pBufSize);
00304
00314 EXTERNRT char* rtxErrGetTextBuf (OSCTXT* pctxt, char* pbuf, size_t bufsiz);
00315
00325 EXTERNRT OSRTErrInfo* rtxErrNewNode (OSCTXT* pctxt);
00326
00333 EXTERNRT void rtxErrInit ();
00334
00342 EXTERNRT int rtxErrReset (OSCTXT* pctxt);
00343
00361 EXTERNRT void rtxErrLogUsingCB (OSCTXT* pctxt, OSErrCbFunc cb, void* cbArg_p);
00362
00370 EXTERNRT void rtxErrPrint (OSCTXT* pctxt);
00371
00379 EXTERNRT void rtxErrPrintElement (OSRTErrInfo* pErrInfo);
00380
00392 EXTERNRT int rtxErrSetData (OSCTXT* pctxt, int status,
00393 const char* module, int lineno);
00394
00406 EXTERNRT int rtxErrSetNewData (OSCTXT* pctxt, int status,
00407 const char* module, int lineno);
00414 EXTERNRT int rtxErrGetFirstError (const OSCTXT* pctxt);
00415
00422 EXTERNRT int rtxErrGetLastError (const OSCTXT* pctxt);
00423
00430 EXTERNRT OSSIZE rtxErrGetErrorCnt (const OSCTXT* pctxt);
00431
00442 EXTERNRT int rtxErrGetStatus (const OSCTXT* pctxt);
00443
00454 EXTERNRT int rtxErrResetLastErrors (OSCTXT* pctxt, int errorsToReset);
00455
00467 EXTERNRT int rtxErrCopy (OSCTXT* pDestCtxt, const OSCTXT* pSrcCtxt);
00468
00473 #ifdef __cplusplus
00474 }
00475 #endif
00476
00477 #endif