summaryrefslogtreecommitdiffstats
path: root/src/H5Emodule.h
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2021-07-06 18:21:42 (GMT)
committerLarry Knox <lrknox@hdfgroup.org>2021-07-06 18:21:42 (GMT)
commit820695a78e3a277daea1bdcbb8ad54b8ee6650a5 (patch)
treefe7545305c0a77db3b9671e5a82fdffc4b2cc82e /src/H5Emodule.h
parent9f13ecfa2e93840d1cc45dbf0bfcf8b955814931 (diff)
parent18bbd3f0a7f14adeebf8f342ed242ff191f9b7c5 (diff)
downloadhdf5-hdf5-1_12_1.zip
hdf5-hdf5-1_12_1.tar.gz
hdf5-hdf5-1_12_1.tar.bz2
Merge remote-tracking branch 'origin/hdf5_1_12_1' into 1.12/master forhdf5-1_12_1
HDF5 1.12.1 release.
Diffstat (limited to 'src/H5Emodule.h')
-rw-r--r--src/H5Emodule.h39
1 files changed, 34 insertions, 5 deletions
diff --git a/src/H5Emodule.h b/src/H5Emodule.h
index 8137673..43d5d36 100644
--- a/src/H5Emodule.h
+++ b/src/H5Emodule.h
@@ -5,21 +5,21 @@
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
- * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Programmer: Quincey Koziol <koziol@hdfgroup.org>
+ * Programmer: Quincey Koziol
* Saturday, September 12, 2015
*
* Purpose: This file contains declarations which define macros for the
* H5E package. Including this header means that the source file
* is part of the H5E package.
*/
-#ifndef _H5Emodule_H
-#define _H5Emodule_H
+#ifndef H5Emodule_H
+#define H5Emodule_H
/* Define the proper control macros for the generic FUNC_ENTER/LEAVE and error
* reporting macros.
@@ -29,4 +29,33 @@
#define H5_MY_PKG_ERR H5E_ERROR
#define H5_MY_PKG_INIT YES
-#endif /* _H5Emodule_H */
+/**
+ * \defgroup H5E H5E
+ * \brief Error Handling Interface
+ *
+ * \details The Error interface provides error handling in the form of a stack.
+ * The \Code{FUNC_ENTER} macro clears the error stack whenever an
+ * interface function is entered. When an error is detected, an entry
+ * is pushed onto the stack. As the functions unwind, additional
+ * entries are pushed onto the stack. The API function will return some
+ * indication that an error occurred and the application can print the
+ * error stack.
+ *
+ * Certain API functions in the \c H5E package, such as H5Eprint1(), do
+ * not clear the error stack. Otherwise, any function which does not
+ * have an underscore immediately after the package name will clear the
+ * error stack. For instance, H5Fopen() clears the error stack while
+ * \Code{H5F_open} does not.
+ *
+ * An error stack has a fixed maximum size. If this size is exceeded
+ * then the stack will be truncated and only the inner-most functions
+ * will have entries on the stack. This is expected to be a rare
+ * condition.
+ *
+ * Each thread has its own error stack, but since multi-threading has
+ * not been added to the library yet, this package maintains a single
+ * error stack. The error stack is statically allocated to reduce the
+ * complexity of handling errors within the \c H5E package.
+ */
+
+#endif /* H5Emodule_H */