ASN1C C/C++ Common Runtime  ASN1C v7.7.x
rtxError.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2003-2023 Objective Systems, Inc.
3  *
4  * This software is furnished under a license and may be used and copied
5  * only in accordance with the terms of such license and with the
6  * inclusion of the above copyright notice. This software or any other
7  * copies thereof may not be provided or otherwise made available to any
8  * other person. No title to and ownership of the software is hereby
9  * transferred.
10  *
11  * The information in this software is subject to change without notice
12  * and should not be construed as a commitment by Objective Systems, Inc.
13  *
14  * PROPRIETARY NOTICE
15  *
16  * This software is an unpublished work subject to a confidentiality agreement
17  * and is protected by copyright and trade secret law. Unauthorized copying,
18  * redistribution or other use of this work is prohibited.
19  *
20  * The above notice of copyright on this source code product does not indicate
21  * any actual or intended publication of such source code.
22  *
23  *****************************************************************************/
28 #ifndef __RTXERROR_H__
29 #define __RTXERROR_H__
30 
31 #include "rtxsrc/rtxContext.h"
32 #include "rtxsrc/rtxErrCodes.h"
33 
34 /* errno.h is supported on both windows and UNIX, though the values in UNIX
35  * systems are usually extended. The VC++ compiler has its own thread-safe
36  * version when building the DLLs, so we avoid defining errno in this case;
37  * see http://cygwin.com/ml/pthreads-win32/2001/msg00047.html; also, WinCE
38  * has its own version, apparently. */
39 #if !defined(_DLL) && !defined(_MT) && !defined(_WIN32_WCE)
40 #include <errno.h>
41 /* extern int errno; //okay for older UNIXes but not for newer */
42 #endif
43 
44 /* Define a cross-platform way to get the error number. */
45 #if defined(_WIN32) || defined(_WIN64)
46 #define ERRNO WSAGetLastError()
47 #elif !defined (_WIN32_WCE)
48 #define ERRNO errno
49 #else
50 #define ERRNO -1 /* must be an int */
51 #endif
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
57 /* Error handling */
58 
76 #ifndef _COMPACT
77 
78 #ifndef __MODULE__
79 #define LOG_RTERR(pctxt,stat) \
80 rtxErrSetData(pctxt,stat,__FILE__,__LINE__)
81 
82 #define LOG_RTERRNEW(pctxt,stat) \
83 rtxErrSetNewData(pctxt,stat,__FILE__,__LINE__)
84 
85 #else /* Should significantly decrease use of RAM in ARM systems */
86 #define LOG_RTERR(pctxt,stat) \
87 rtxErrSetData(pctxt,stat,__MODULE__,__LINE__)
88 
89 #define LOG_RTERRNEW(pctxt,stat) \
90 rtxErrSetNewData(pctxt,stat,__MODULE__,__LINE__)
91 #endif /* not defined __MODULE__ */
92 
93 #define RETURN_RTERR(pctxt, stat) \
94 return LOG_RTERR(pctxt, stat)
95 
104 #define OSRTASSERT(condition) \
105 if (!(condition)) { rtxErrAssertionFailed(#condition,__LINE__,__FILE__); }
106 
113 #define OSRTCHECKPARAM(condition) if (condition) { /* do nothing */ }
114 #else
115 #define LOG_RTERR(pctxt,stat) \
116 rtxErrSetData(pctxt,stat,0,0)
117 
118 #define LOG_RTERRNEW(pctxt,stat) \
119 rtxErrSetNewData(pctxt,stat,0,0)
120 
121 #define RETURN_RTERR(pctxt, stat) return stat
122 
123 #define OSRTASSERT(condition)
124 #define OSRTCHECKPARAM(condition)
125 #endif /* _COMPACT */
126 
127 #define LOG_RTERR1(pctxt,stat,a) \
128 (a,LOG_RTERR (pctxt, stat),stat)
129 
130 #define LOG_RTERRNEW1(pctxt,stat,a) \
131 (a,LOG_RTERRNEW (pctxt, stat),stat)
132 
133 #define LOG_RTERR2(pctxt,stat,a,b) \
134 (a,b,LOG_RTERR (pctxt, stat),stat)
135 
136 #define LOG_RTERRNEW2(pctxt,stat,a,b) \
137 (a,b,LOG_RTERRNEW (pctxt, stat),stat)
138 
149 #define LOG_RTERR_AND_FREE_MEM(ctxt_p,stat,mem_p) \
150 rtxMemFreePtr ((ctxt_p),(mem_p)), LOG_RTERR(ctxt_p, stat)
151 
152 typedef int (*OSErrCbFunc) (const char* ptext, void* cbArg_p);
153 
163 EXTERNRT OSBOOL rtxErrAddCtxtBufParm (OSCTXT* pctxt);
164 
174 EXTERNRT OSBOOL rtxErrAddDoubleParm (OSCTXT* pctxt, double errParm);
175 
188 EXTERNRT OSBOOL rtxErrAddErrorTableEntry
189 #if !defined(_ARMTCC) && !defined(__SYMBIAN32__)
190 (const char* const* ppStatusText, OSINT32 minErrCode, OSINT32 maxErrCode);
191 #else
192 (OSVOIDARG);
193 #endif
194 
205 EXTERNRT OSBOOL rtxErrAddElemNameParm (OSCTXT* pctxt);
206 
219 EXTERNRT OSBOOL rtxErrAddIntParm (OSCTXT* pctxt, int errParm);
220 
221 #if !defined(_NO_INT64_SUPPORT)
222 
235 EXTERNRT OSBOOL rtxErrAddInt64Parm (OSCTXT* pctxt, OSINT64 errParm);
236 #endif /* !defined(_NO_INT64_SUPPORT) */
237 
250 EXTERNRT OSBOOL rtxErrAddSizeParm (OSCTXT* pctxt, OSSIZE errParm);
251 
261 EXTERNRT OSBOOL rtxErrAddStrParm (OSCTXT* pctxt, const char* pErrParm);
262 
273 EXTERNRT OSBOOL rtxErrAddStrnParm
274  (OSCTXT* pctxt, const char* pErrParm, OSSIZE nchars);
275 
285 EXTERNRT OSBOOL rtxErrAddUIntParm (OSCTXT* pctxt, unsigned int errParm);
286 
287 #if !defined(_NO_INT64_SUPPORT)
288 
297 EXTERNRT OSBOOL rtxErrAddUInt64Parm (OSCTXT* pctxt, OSUINT64 errParm);
298 #endif /* !defined(_NO_INT64_SUPPORT) */
299 
310 EXTERNRT void rtxErrAssertionFailed
311 (const char* conditionText, int lineNo, const char* fileName);
312 
322 EXTERNRT const char* rtxErrFmtMsg
323 (OSRTErrInfo* pErrInfo, char* bufp, OSSIZE bufsiz);
324 
332 EXTERNRT void rtxErrFreeParms (OSCTXT* pctxt);
333 
355 EXTERNRT char* rtxErrGetText (OSCTXT* pctxt, char* pBuf, OSSIZE* pBufSize);
356 
366 EXTERNRT char* rtxErrGetTextBuf (OSCTXT* pctxt, char* pbuf, OSSIZE bufsiz);
367 
380 EXTERNRT char* rtxErrGetMsgText (OSCTXT* pctxt);
381 
393 EXTERNRT char* rtxErrGetMsgTextBuf (OSCTXT* pctxt, char* pbuf, OSSIZE bufsiz);
394 
405 EXTERNRT OSRTErrInfo* rtxErrNewNode (OSCTXT* pctxt);
406 
413 EXTERNRT void rtxErrInit (OSVOIDARG);
414 
422 EXTERNRT int rtxErrReset (OSCTXT* pctxt);
423 
433 EXTERNRT int rtxErrResetErrInfo (OSCTXT* pctxt);
434 
456 EXTERNRT void rtxErrLogUsingCB (OSCTXT* pctxt, OSErrCbFunc cb, void* cbArg_p);
457 
465 EXTERNRT void rtxErrPrint (OSCTXT* pctxt);
466 
474 EXTERNRT void rtxErrPrintElement (OSRTErrInfo* pErrInfo);
475 
489 EXTERNRT int rtxErrSetData (OSCTXT* pctxt, int status,
490  const char* module, int lineno);
491 
503 EXTERNRT int rtxErrSetNewData (OSCTXT* pctxt, int status,
504  const char* module, int lineno);
505 
513 EXTERNRT void rtxErrSetNonFatal(OSCTXT* pctxt);
514 
525 EXTERNRT int rtxErrCheckNonFatal(OSCTXT* pctxt);
526 
533 EXTERNRT int rtxErrGetFirstError (const OSCTXT* pctxt);
534 
541 EXTERNRT int rtxErrGetLastError (const OSCTXT* pctxt);
542 
550 EXTERNRT OSSIZE rtxErrGetErrorCnt (const OSCTXT* pctxt);
551 
563 EXTERNRT int rtxErrGetStatus (const OSCTXT* pctxt);
564 
575 EXTERNRT int rtxErrResetLastErrors (OSCTXT* pctxt, OSSIZE errorsToReset);
576 
590 EXTERNRT int rtxErrCopy (OSCTXT* pDestCtxt, const OSCTXT* pSrcCtxt);
591 
605 EXTERNRT int rtxErrAppend (OSCTXT* pDestCtxt, const OSCTXT* pSrcCtxt);
606 
614 EXTERNRT int rtxErrInvUIntOpt (OSCTXT* pctxt, OSUINT32 ident);
615 
620 #ifdef __cplusplus
621 }
622 #endif
623 
624 #endif
void rtxErrFreeParms(OSCTXT *pctxt)
OSBOOL rtxErrAddInt64Parm(OSCTXT *pctxt, OSINT64 errParm)
char * rtxErrGetTextBuf(OSCTXT *pctxt, char *pbuf, OSSIZE bufsiz)
int rtxErrCopy(OSCTXT *pDestCtxt, const OSCTXT *pSrcCtxt)
void rtxErrAssertionFailed(const char *conditionText, int lineNo, const char *fileName)
OSBOOL rtxErrAddStrnParm(OSCTXT *pctxt, const char *pErrParm, OSSIZE nchars)
int rtxErrResetErrInfo(OSCTXT *pctxt)
void rtxErrInit(OSVOIDARG)
int rtxErrGetFirstError(const OSCTXT *pctxt)
int rtxErrGetStatus(const OSCTXT *pctxt)
OSBOOL rtxErrAddErrorTableEntry(const char *const *ppStatusText, OSINT32 minErrCode, OSINT32 maxErrCode)
int rtxErrInvUIntOpt(OSCTXT *pctxt, OSUINT32 ident)
OSBOOL rtxErrAddStrParm(OSCTXT *pctxt, const char *pErrParm)
int rtxErrSetData(OSCTXT *pctxt, int status, const char *module, int lineno)
OSSIZE rtxErrGetErrorCnt(const OSCTXT *pctxt)
void rtxErrPrint(OSCTXT *pctxt)
char * rtxErrGetMsgText(OSCTXT *pctxt)
int rtxErrCheckNonFatal(OSCTXT *pctxt)
OSBOOL rtxErrAddDoubleParm(OSCTXT *pctxt, double errParm)
OSBOOL rtxErrAddUInt64Parm(OSCTXT *pctxt, OSUINT64 errParm)
int rtxErrGetLastError(const OSCTXT *pctxt)
OSBOOL rtxErrAddSizeParm(OSCTXT *pctxt, OSSIZE errParm)
char * rtxErrGetText(OSCTXT *pctxt, char *pBuf, OSSIZE *pBufSize)
int rtxErrSetNewData(OSCTXT *pctxt, int status, const char *module, int lineno)
void rtxErrSetNonFatal(OSCTXT *pctxt)
Definition: rtxContext.h:67
int rtxErrReset(OSCTXT *pctxt)
int rtxErrResetLastErrors(OSCTXT *pctxt, OSSIZE errorsToReset)
OSRTErrInfo * rtxErrNewNode(OSCTXT *pctxt)
const char * rtxErrFmtMsg(OSRTErrInfo *pErrInfo, char *bufp, OSSIZE bufsiz)
void rtxErrLogUsingCB(OSCTXT *pctxt, OSErrCbFunc cb, void *cbArg_p)
OSBOOL rtxErrAddIntParm(OSCTXT *pctxt, int errParm)
OSBOOL rtxErrAddUIntParm(OSCTXT *pctxt, unsigned int errParm)
Definition: rtxContext.h:198
void rtxErrPrintElement(OSRTErrInfo *pErrInfo)
OSBOOL rtxErrAddElemNameParm(OSCTXT *pctxt)
int rtxErrAppend(OSCTXT *pDestCtxt, const OSCTXT *pSrcCtxt)
char * rtxErrGetMsgTextBuf(OSCTXT *pctxt, char *pbuf, OSSIZE bufsiz)
OSBOOL rtxErrAddCtxtBufParm(OSCTXT *pctxt)