0
|
1 |
/* ************************************************************************** */
|
|
2 |
/* * For conditions of distribution and use, * */
|
|
3 |
/* * see copyright notice in libmng.h * */
|
|
4 |
/* ************************************************************************** */
|
|
5 |
/* * * */
|
|
6 |
/* * project : libmng * */
|
|
7 |
/* * file : libmng_error.h copyright (c) 2000-2002 G.Juyn * */
|
|
8 |
/* * version : 1.0.5 * */
|
|
9 |
/* * * */
|
|
10 |
/* * purpose : Error functions (definition) * */
|
|
11 |
/* * * */
|
|
12 |
/* * author : G.Juyn * */
|
|
13 |
/* * * */
|
|
14 |
/* * comment : Definition of the generic error-codes and functions * */
|
|
15 |
/* * * */
|
|
16 |
/* * changes : 0.5.1 - 05/06/2000 - G.Juyn * */
|
|
17 |
/* * - added some errorcodes * */
|
|
18 |
/* * 0.5.1 - 05/08/2000 - G.Juyn * */
|
|
19 |
/* * - added some errorcodes * */
|
|
20 |
/* * - changed strict-ANSI stuff * */
|
|
21 |
/* * 0.5.1 - 05/11/2000 - G.Juyn * */
|
|
22 |
/* * - added application errorcodes (used with callbacks) * */
|
|
23 |
/* * - moved chunk-access errorcodes to severity 5 * */
|
|
24 |
/* * * */
|
|
25 |
/* * 0.5.2 - 05/20/2000 - G.Juyn * */
|
|
26 |
/* * - added JNG errorcodes * */
|
|
27 |
/* * 0.5.2 - 05/23/2000 - G.Juyn * */
|
|
28 |
/* * - added error tell-tale definition * */
|
|
29 |
/* * 0.5.2 - 05/30/2000 - G.Juyn * */
|
|
30 |
/* * - added errorcodes for delta-image processing * */
|
|
31 |
/* * 0.5.2 - 06/06/2000 - G.Juyn * */
|
|
32 |
/* * - added errorcode for delayed buffer-processing * */
|
|
33 |
/* * - moved errorcodes to "libmng.h" * */
|
|
34 |
/* * * */
|
|
35 |
/* * 0.9.1 - 07/15/2000 - G.Juyn * */
|
|
36 |
/* * - added macro + routine to set returncode without * */
|
|
37 |
/* * calling error callback * */
|
|
38 |
/* * * */
|
|
39 |
/* * 0.9.2 - 08/05/2000 - G.Juyn * */
|
|
40 |
/* * - changed file-prefixes * */
|
|
41 |
/* * * */
|
|
42 |
/* * 1.0.5 - 08/19/2002 - G.Juyn * */
|
|
43 |
/* * - B597134 - libmng pollutes the linker namespace * */
|
|
44 |
/* * 1.0.5 - 08/20/2002 - G.Juyn * */
|
|
45 |
/* * - added option for soft-handling of errors * */
|
|
46 |
/* * * */
|
|
47 |
/* ************************************************************************** */
|
|
48 |
|
|
49 |
#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
|
|
50 |
#pragma option -A /* force ANSI-C */
|
|
51 |
#endif
|
|
52 |
|
|
53 |
#ifndef _libmng_error_h_
|
|
54 |
#define _libmng_error_h_
|
|
55 |
|
|
56 |
/* ************************************************************************** */
|
|
57 |
/* * * */
|
|
58 |
/* * Default error routines * */
|
|
59 |
/* * * */
|
|
60 |
/* ************************************************************************** */
|
|
61 |
|
|
62 |
mng_bool mng_store_error (mng_datap pData,
|
|
63 |
mng_retcode iError,
|
|
64 |
mng_retcode iExtra1,
|
|
65 |
mng_retcode iExtra2);
|
|
66 |
|
|
67 |
mng_bool mng_process_error (mng_datap pData,
|
|
68 |
mng_retcode iError,
|
|
69 |
mng_retcode iExtra1,
|
|
70 |
mng_retcode iExtra2);
|
|
71 |
|
|
72 |
/* ************************************************************************** */
|
|
73 |
/* * * */
|
|
74 |
/* * Error handling macros * */
|
|
75 |
/* * * */
|
|
76 |
/* ************************************************************************** */
|
|
77 |
|
|
78 |
#ifdef MNG_SOFTERRORS
|
|
79 |
#define MNG_ERROR(D,C) { if (!mng_process_error (D, C, 0, 0)) return C; }
|
|
80 |
#define MNG_ERRORZ(D,Z) { if (!mng_process_error (D, MNG_ZLIBERROR, Z, 0)) return MNG_ZLIBERROR; }
|
|
81 |
#define MNG_ERRORJ(D,J) { if (!mng_process_error (D, MNG_JPEGERROR, J, 0)) return MNG_JPEGERROR; }
|
|
82 |
#define MNG_ERRORL(D,L) { if (!mng_process_error (D, MNG_LCMSERROR, L, 0)) return MNG_LCMSERROR; }
|
|
83 |
#else
|
|
84 |
#define MNG_ERROR(D,C) { mng_process_error (D, C, 0, 0); return C; }
|
|
85 |
#define MNG_ERRORZ(D,Z) { mng_process_error (D, MNG_ZLIBERROR, Z, 0); return MNG_ZLIBERROR; }
|
|
86 |
#define MNG_ERRORJ(D,J) { mng_process_error (D, MNG_JPEGERROR, J, 0); return MNG_JPEGERROR; }
|
|
87 |
#define MNG_ERRORL(D,L) { mng_process_error (D, MNG_LCMSERROR, L, 0); return MNG_LCMSERROR; }
|
|
88 |
#endif
|
|
89 |
|
|
90 |
#define MNG_RETURN(D,C) { mng_store_error (D, C, 0, 0); return C; }
|
|
91 |
|
|
92 |
#define MNG_WARNING(D,C) { if (!mng_process_error (D, C, 0, 0)) return C; }
|
|
93 |
|
|
94 |
#define MNG_VALIDHANDLE(H) { if ((H == 0) || (((mng_datap)H)->iMagic != MNG_MAGIC)) \
|
|
95 |
return MNG_INVALIDHANDLE; }
|
|
96 |
#define MNG_VALIDHANDLEX(H) { if ((H == 0) || (((mng_datap)H)->iMagic != MNG_MAGIC)) \
|
|
97 |
return 0; }
|
|
98 |
#define MNG_VALIDCB(D,C) { if (!((mng_datap)D)->C) \
|
|
99 |
MNG_ERROR (((mng_datap)D), MNG_NOCALLBACK) }
|
|
100 |
|
|
101 |
/* ************************************************************************** */
|
|
102 |
/* * * */
|
|
103 |
/* * Error string-table entry * */
|
|
104 |
/* * * */
|
|
105 |
/* ************************************************************************** */
|
|
106 |
|
|
107 |
typedef struct {
|
|
108 |
mng_retcode iError;
|
|
109 |
mng_pchar zErrortext;
|
|
110 |
} mng_error_entry;
|
|
111 |
typedef mng_error_entry const * mng_error_entryp;
|
|
112 |
|
|
113 |
/* ************************************************************************** */
|
|
114 |
|
|
115 |
#endif /* _libmng_error_h_ */
|
|
116 |
|
|
117 |
/* ************************************************************************** */
|
|
118 |
/* * end of file * */
|
|
119 |
/* ************************************************************************** */
|