summaryrefslogtreecommitdiffstats
path: root/src/H5Epublic.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2007-04-12 01:59:45 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2007-04-12 01:59:45 (GMT)
commitd6bb18abbc2d6e145afff18446a0814403f1a3b7 (patch)
tree8a340ebde9f0fea052c3d40b6e98f2d0ca7f7aaa /src/H5Epublic.h
parentde71a7fe74ca0954efec963066e2606d798691f4 (diff)
downloadhdf5-d6bb18abbc2d6e145afff18446a0814403f1a3b7.zip
hdf5-d6bb18abbc2d6e145afff18446a0814403f1a3b7.tar.gz
hdf5-d6bb18abbc2d6e145afff18446a0814403f1a3b7.tar.bz2
[svn-r13648] Description:
Rename new error handling API routines from H5E<foo>_stack() to H5E<foo>2(). Tested on: Mac OS X/32 10.4.9 (amazon) FreeBSD/32 6.2 (duty) FreeBSD/64 6.2 (liberty)
Diffstat (limited to 'src/H5Epublic.h')
-rw-r--r--src/H5Epublic.h92
1 files changed, 49 insertions, 43 deletions
diff --git a/src/H5Epublic.h b/src/H5Epublic.h
index 6591cd6..ce68b71 100644
--- a/src/H5Epublic.h
+++ b/src/H5Epublic.h
@@ -49,7 +49,7 @@ typedef struct H5E_error_t {
} H5E_error_t;
/* Information about an error; element of error stack */
-typedef struct H5E_error_stack_t {
+typedef struct H5E_error2_t {
hid_t cls_id; /*class ID */
hid_t maj_num; /*major error ID */
hid_t min_num; /*minor error number */
@@ -57,7 +57,7 @@ typedef struct H5E_error_stack_t {
const char *func_name; /*function in which error occurred */
const char *file_name; /*file in which error occurred */
const char *desc; /*optional supplied description */
-} H5E_error_stack_t;
+} H5E_error2_t;
/* When this header is included from a private header, don't make calls to H5open() */
#undef H5OPEN
@@ -93,52 +93,51 @@ H5_DLLVAR hid_t H5E_ERR_CLS_g;
* purpose.
*/
#define H5E_BEGIN_TRY { \
- unsigned H5E_saved_is_stack; \
+ unsigned H5E_saved_is_v2; \
union { \
- H5E_auto_stack_t stack_efunc; \
H5E_auto_t efunc; \
+ H5E_auto2_t efunc2; \
} H5E_saved; \
void *H5E_saved_edata; \
\
- (void)H5Eauto_is_stack(H5E_DEFAULT, &H5E_saved_is_stack); \
- if(H5E_saved_is_stack) { \
- (void)H5Eget_auto_stack(H5E_DEFAULT, &H5E_saved.stack_efunc, &H5E_saved_edata); \
- (void)H5Eset_auto_stack(H5E_DEFAULT, NULL, NULL); \
+ (void)H5Eauto_is_v2(H5E_DEFAULT, &H5E_saved_is_v2); \
+ if(H5E_saved_is_v2) { \
+ (void)H5Eget_auto2(H5E_DEFAULT, &H5E_saved.efunc2, &H5E_saved_edata); \
+ (void)H5Eset_auto2(H5E_DEFAULT, NULL, NULL); \
} else { \
(void)H5Eget_auto(&H5E_saved.efunc, &H5E_saved_edata); \
(void)H5Eset_auto(NULL, NULL); \
}
#define H5E_END_TRY \
- if(H5E_saved_is_stack) { \
- (void)H5Eset_auto_stack(H5E_DEFAULT, H5E_saved.stack_efunc, H5E_saved_edata); \
- } else { \
+ if(H5E_saved_is_v2) \
+ (void)H5Eset_auto2(H5E_DEFAULT, H5E_saved.efunc2, H5E_saved_edata); \
+ else \
(void)H5Eset_auto(H5E_saved.efunc, H5E_saved_edata); \
- } \
}
/*
* Public API Convenience Macros for Error reporting - Documented
*/
/* Use the Standard C __FILE__ & __LINE__ macros instead of typing them in */
-#define H5Epush_sim(func,cls,maj,min,str) H5Epush_stack(H5E_DEFAULT,__FILE__,func,__LINE__,cls,maj,min,str)
+#define H5Epush_sim(func, cls, maj, min, str) H5Epush2(H5E_DEFAULT, __FILE__, func, __LINE__, cls, maj, min, str)
/*
* Public API Convenience Macros for Error reporting - Undocumented
*/
/* Use the Standard C __FILE__ & __LINE__ macros instead of typing them in */
/* And return after pushing error onto stack */
-#define H5Epush_ret(func,cls,maj,min,str,ret) { \
- H5Epush_stack(H5E_DEFAULT,__FILE__,func,__LINE__,cls,maj,min,str); \
- return(ret); \
+#define H5Epush_ret(func, cls, maj, min, str, ret) { \
+ H5Epush2(H5E_DEFAULT, __FILE__, func, __LINE__, cls, maj, min, str); \
+ return(ret); \
}
/* Use the Standard C __FILE__ & __LINE__ macros instead of typing them in
* And goto a label after pushing error onto stack.
*/
-#define H5Epush_goto(func,cls,maj,min,str,label) { \
- H5Epush_stack(H5E_DEFAULT,__FILE__,func,__LINE__,cls,maj,min,str); \
- goto label; \
+#define H5Epush_goto(func, cls, maj, min, str, label) { \
+ H5Epush2(H5E_DEFAULT, __FILE__, func, __LINE__, cls, maj, min, str); \
+ goto label; \
}
/* Error stack traversal direction */
@@ -153,49 +152,56 @@ extern "C" {
#endif
/* Error stack traversal callback function pointers */
-typedef herr_t (*H5E_walk_t)(unsigned n, const H5E_error_t *err_desc, void *client_data);
-typedef herr_t (*H5E_walk_stack_t)(unsigned n, const H5E_error_stack_t *err_desc, void *client_data);
+typedef herr_t (*H5E_walk_t)(unsigned n, const H5E_error_t *err_desc,
+ void *client_data);
+typedef herr_t (*H5E_walk2_t)(unsigned n, const H5E_error2_t *err_desc,
+ void *client_data);
typedef herr_t (*H5E_auto_t)(void *client_data);
-typedef herr_t (*H5E_auto_stack_t)(hid_t estack, void *client_data);
+typedef herr_t (*H5E_auto2_t)(hid_t estack, void *client_data);
/* Public API functions */
-H5_DLL hid_t H5Eregister_class(const char *cls_name, const char *lib_name, const char *version);
+H5_DLL hid_t H5Eregister_class(const char *cls_name, const char *lib_name,
+ const char *version);
H5_DLL herr_t H5Eunregister_class(hid_t class_id);
H5_DLL herr_t H5Eclose_msg(hid_t err_id);
H5_DLL hid_t H5Ecreate_msg(hid_t cls, H5E_type_t msg_type, const char *msg);
H5_DLL hid_t H5Eget_current_stack(void);
H5_DLL herr_t H5Eclose_stack(hid_t stack_id);
H5_DLL ssize_t H5Eget_class_name(hid_t class_id, char *name, size_t size);
-H5_DLL ssize_t H5Eget_msg(hid_t msg_id, H5E_type_t *type, char *msg, size_t size);
+H5_DLL ssize_t H5Eget_msg(hid_t msg_id, H5E_type_t *type, char *msg,
+ size_t size);
H5_DLL ssize_t H5Eget_num(hid_t error_stack_id);
H5_DLL herr_t H5Eset_current_stack(hid_t err_stack_id);
H5_DLL herr_t H5Epop(hid_t err_stack, size_t count);
-H5_DLL herr_t H5Eauto_is_stack(hid_t err_stack, unsigned *is_stack);
+H5_DLL herr_t H5Eauto_is_v2(hid_t err_stack, unsigned *is_stack);
/* These old APIs are kept for backward compatibility. They don't have
* the error stack in the parameters. */
H5_DLL herr_t H5Epush(const char *file, const char *func, unsigned line,
- H5E_major_t maj, H5E_minor_t min, const char *str);
-H5_DLL herr_t H5Eprint(FILE *stream);
-H5_DLL herr_t H5Ewalk(H5E_direction_t direction, H5E_walk_t func,
- void *client_data);
-H5_DLL herr_t H5Eget_auto(H5E_auto_t *func, void **client_data);
-H5_DLL herr_t H5Eset_auto(H5E_auto_t func, void *client_data);
-H5_DLL herr_t H5Eclear(void);
-H5_DLL const char * H5Eget_major(H5E_major_t maj);
-H5_DLL const char * H5Eget_minor(H5E_minor_t min);
+ H5E_major_t maj, H5E_minor_t min, const char *str);
+H5_DLL herr_t H5Eprint(FILE *stream);
+H5_DLL herr_t H5Ewalk(H5E_direction_t direction, H5E_walk_t func,
+ void *client_data);
+H5_DLL herr_t H5Eget_auto(H5E_auto_t *func, void **client_data);
+H5_DLL herr_t H5Eset_auto(H5E_auto_t func, void *client_data);
+H5_DLL herr_t H5Eclear(void);
+H5_DLL const char *H5Eget_major(H5E_major_t maj);
+H5_DLL const char *H5Eget_minor(H5E_minor_t min);
/* New APIs function the same as the old ones above, with the error stack
* in the parameters */
-H5_DLL herr_t H5Epush_stack(hid_t err_stack, const char *file, const char *func, unsigned line,
- hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...);
-H5_DLL herr_t H5Eprint_stack(hid_t err_stack, FILE *stream);
-H5_DLL herr_t H5Ewalk_stack(hid_t err_stack, H5E_direction_t direction, H5E_walk_stack_t func,
- void *client_data);
-H5_DLL herr_t H5Eget_auto_stack(hid_t estack_id, H5E_auto_stack_t *func, void **client_data);
-H5_DLL herr_t H5Eset_auto_stack(hid_t estack_id, H5E_auto_stack_t func, void *client_data);
-H5_DLL herr_t H5Eclear_stack(hid_t err_stack);
+H5_DLL herr_t H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line,
+ hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...);
+H5_DLL herr_t H5Eprint2(hid_t err_stack, FILE *stream);
+H5_DLL herr_t H5Ewalk2(hid_t err_stack, H5E_direction_t direction, H5E_walk2_t func,
+ void *client_data);
+H5_DLL herr_t H5Eget_auto2(hid_t estack_id, H5E_auto2_t *func, void **client_data);
+H5_DLL herr_t H5Eset_auto2(hid_t estack_id, H5E_auto2_t func, void *client_data);
+H5_DLL herr_t H5Eclear2(hid_t err_stack);
+
#ifdef __cplusplus
}
#endif
-#endif
+
+#endif /* end _H5Epublic_H */
+