Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added documentation for the deprecated H5G calls. #542

Merged
merged 21 commits into from
Apr 10, 2021
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4966a13
Added H5AC cache image stuff and file format study.
gheber Mar 5, 2021
41247ad
Added older FMT versions. Where did 1.0 go?
gheber Mar 6, 2021
38fd5f3
Updated C/C++ note and replaced ambiguous labels.
gheber Mar 8, 2021
3053650
Added the VFL technical note.
gheber Mar 11, 2021
d0e9525
Added what I believe might be called version 1.0 of the format.
gheber Mar 11, 2021
a0d9d12
Added the remaining specs.
gheber Mar 12, 2021
2285bbd
Added H5Z callback documentation and fixed a few mistakes.
gheber Mar 12, 2021
8c1488c
Merge remote-tracking branch 'upstream/doxygen2' into doxygen2
gheber Mar 12, 2021
b4e8c55
Added dox for deprecated H5G calls and fixed a few snippet blockIDs.
gheber Apr 5, 2021
4d3d76f
clang-format happy?
gheber Apr 5, 2021
d8ede70
Ok?
gheber Apr 5, 2021
b1f395b
Bonus track: Deprecated H5D functions.
gheber Apr 6, 2021
30cee2b
Carry over the more detailed group description.
gheber Apr 6, 2021
6dc33ad
Added documentation for the missing and deprecated H5R calls.
gheber Apr 6, 2021
0aa68cc
Life is easier and less repetitive w/ snippets. Use them!
gheber Apr 6, 2021
22f93e3
Eliminate the snippet block ID artifacts in the HTML rendering.
gheber Apr 8, 2021
0f0fb85
Fixed snippet HTML artifacts and added a few missing calls.
gheber Apr 9, 2021
da87917
Under 20 H5Ps to go!
gheber Apr 9, 2021
60d6eb2
Almost complete!
gheber Apr 9, 2021
08ebb4f
"This is a form of pedantry up with which I will not put." (Churchill)
gheber Apr 9, 2021
fe82783
Let's not waste as much space on bulleted lists!
gheber Apr 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doxygen/aliases
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ ALIASES += es_id="\param[in] es_id The event set ID to add this asynchronous ope

ALIASES += estack_id="\param[in] estack_id Error stack identifier"
ALIASES += estack_id{1}="\param[in] \1 Error stack identifier"
ALIASES += cpp_c_api_note="\note \Bold{C++ Developers using HDF5 C-API functions beware:}\n If a C routine that takes a function pointer as an argument is called from within C++ code, the C routine should be returned from normally. Examples of this kind of routine include callbacks such as H5Pset_elink_cb() and H5Pset_type_conv_cb() and functions such as H5Tconvert() and H5Ewalk2().\n Exiting the routine in its normal fashion allows the HDF5 C library to clean up its work properly. In other words, if the C++ application jumps out of the routine back to the C++ \c catch statement, the library is not given the opportunity to close any temporary data structures that were set up when the routine was called. The C++ application should save some state as the routine is started so that any problem that occurs might be diagnosed."
ALIASES += cpp_c_api_note="\attention \Bold{C++ Developers using HDF5 C-API functions beware:}\n Several functions in this C-API take function pointers or callbacks as arguments. Examples include H5Pset_elink_cb(), H5Pset_type_conv_cb(), H5Tconvert(), and H5Ewalk2(). Application code must ensure that those callback functions return normally such to allow the HDF5 to manage its resources and maintain a consistent state. For instance, those functions must not use the C \c setjmp / \c longjmp mechanism to leave those callback functions. Within the context of C++, any exceptions thrown within the callback function must be caught, such as with a \Code{catch(…)} statement. Any exception state can be placed within the provided user data function call arguments, and may be thrown again once the calling function has returned. Exceptions raised and not handled inside the callback are not supported as it might leave the HDF5 library in an inconsistent state. Similarly, using C++20 coroutines cannot be used as callbacks, since they do not support plain return statements. If a callback function yields execution to another C++20 coroutine calling HDF5 functions as well, this may lead to undefined behavior."
ALIASES += sa_metadata_ops="\sa \li H5Pget_all_coll_metadata_ops() \li H5Pget_coll_metadata_write() \li H5Pset_all_coll_metadata_ops() \li H5Pset_coll_metadata_write() \li \ref maybe_metadata_reads"

################################################################################
Expand Down
8 changes: 4 additions & 4 deletions doxygen/dox/DDLBNF110.dox
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

\todo Revise this & break it up!

\section intro Introduction
\section intro110 Introduction

This document contains the data description language (DDL) for an HDF5 file. The
description is in Backus-Naur Form (BNF).

\section expo Explanation of Symbols
\section expo110 Explanation of Symbols

This section contains a brief explanation of the symbols used in the DDL.

Expand All @@ -23,7 +23,7 @@ This section contains a brief explanation of the symbols used in the DDL.
TBD To Be Decided
\endcode

\section ddl The DDL
\section ddl110 The DDL

\code{.unparsed}
<file> ::= HDF5 <file_name> { <file_super_block>opt <root_group> }
Expand Down Expand Up @@ -509,7 +509,7 @@ This section contains a brief explanation of the symbols used in the DDL.
<hex_value> ::= 0x[0-F][0-F]+ | [0-F][0-F]+
\endcode

\section example An Example of an HDF5 File in DDL
\section example110 An Example of an HDF5 File in DDL

\code{.unparsed}
HDF5 "example.h5" {
Expand Down
8 changes: 4 additions & 4 deletions doxygen/dox/DDLBNF112.dox
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

\todo Revise this & break it up!

\section intro Introduction
\section intro112 Introduction

This document contains the data description language (DDL) for an HDF5 file. The
description is in Backus-Naur Form (BNF).

\section expo Explanation of Symbols
\section expo112 Explanation of Symbols

This section contains a brief explanation of the symbols used in the DDL.

Expand All @@ -23,7 +23,7 @@ This section contains a brief explanation of the symbols used in the DDL.
TBD To Be Decided
\endcode

\section ddl The DDL
\section ddl112 The DDL

\code{.unparsed}
<file> ::= HDF5 <file_name> { <file_super_block>opt <root_group> }
Expand Down Expand Up @@ -512,7 +512,7 @@ This section contains a brief explanation of the symbols used in the DDL.
<hex_value> ::= 0x[0-F][0-F]+ | [0-F][0-F]+
\endcode

\section example An Example of an HDF5 File in DDL
\section example112 An Example of an HDF5 File in DDL

\code{.unparsed}
HDF5 "example.h5" {
Expand Down
23 changes: 23 additions & 0 deletions doxygen/dox/FileFormatSpec.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/** \page FMT3 HDF5 File Format Specification Version 3.0

\htmlinclude H5.format.html

*/

/** \page FMT2 HDF5 File Format Specification Version 2.0

\htmlinclude H5.format.2.0.html

*/

/** \page FMT11 HDF5 File Format Specification Version 1.1

\htmlinclude H5.format.1.1.html

*/

/** \page FMT1 HDF5 File Format Specification Version 1.0

\htmlinclude H5.format.1.0.html

*/
2 changes: 1 addition & 1 deletion doxygen/dox/MetadataCachingInHDF5.dox
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ From the user perspective, all the cache configuration data for a given file is
contained in an instance of the \ref H5AC_cache_config_t structure -- the definition
of which is given below:

\snippet H5ACpublic.h H5AC_cache_config_t_general_snip
\snippet H5ACpublic.h H5AC_cache_config_t_snip

This structure is defined in \c H5ACpublic.h. Each field is discussed below and in
the associated header comment.
Expand Down
11 changes: 11 additions & 0 deletions doxygen/dox/OtherSpecs.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/** \page IMG HDF5 Image and Palette Specification Version 1.2

\htmlinclude ImageSpec.html

*/

/** \page TBL HDF5 Table Specification Version 1.0

\htmlinclude TableSpec.html

*/
3 changes: 2 additions & 1 deletion doxygen/dox/Overview.dox
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Finally, do not miss the search engine (top right-hand corner)! If you are
looking for a specific function, it'll take you there directly. If unsure, it'll
give you an idea of what's on offer and a few promising leads.

See also: \link api-compat-macros API Compatibility Macros \endlink
\par ToDo List
There is plenty of <a href="./todo.html">unfinished business</a>.

*/
24 changes: 5 additions & 19 deletions doxygen/dox/ReferenceManual.dox
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/** \page RM Reference Manual

The HDF5 C-API provides applications with fine-grained control over all aspects
of HDF5 functionality. This functionality is grouped into the following
The functions provides by the HDF5 C-API are grouped into the following
\Emph{modules}:

\li \ref H5A "Attributes" — Management of HDF5 attributes (\ref H5A)
Expand All @@ -27,29 +26,16 @@ of HDF5 functionality. This functionality is grouped into the following
\par API Versioning
See \ref api-compat-macros

\par Deprecated Functions
A list of deprecated functions can be found <a href="./deprecated.html">here</a>.
\par Deprecated Functions and Types
A list of deprecated functions and types can be found
<a href="./deprecated.html">here</a>.

\par Etiquette
Here are a few simple rules to follow:
\li \Bold{Handle discipline:} If you acquire a handle (by creation or copy), \Emph{you own it!} (..., i.e., you have to close it.)
\li \Bold{Dynamic memory allocation:} ...
\li \Bold{Use of locations:} Identifier + name combo

\attention \Bold{C++ Developers using HDF5 C-API functions beware:}\n
If a C routine that takes a function pointer as an argument is called from
within C++ code, the C routine should be returned from normally.
Examples of this kind of routine include callbacks such as H5Pset_elink_cb()
and H5Pset_type_conv_cb() and functions such as H5Tconvert() and H5Ewalk2().\n
Exiting the routine in its normal fashion allows the HDF5 C library to clean
up its work properly. In other words, if the C++ application jumps out of
the routine back to the C++ \c catch statement, the library is not given the
opportunity to close any temporary data structures that were set up when the
routine was called. The C++ application should save some state as the
routine is started so that any problem that occurs might be diagnosed.


\par ToDo List
There is plenty of <a href="./todo.html">unfinished business</a>.
\cpp_c_api_note

*/
19 changes: 17 additions & 2 deletions doxygen/dox/Specifications.dox
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
/** \page SPEC Specifications

\li \ref DDLBNF112 "DDL in BNF for HDF5 1.12 and above"
\section DDL

\li \ref DDLBNF110 "DDL in BNF through HDF5 1.10"
\li <a href="https://portal.hdfgroup.org/display/HDF5/Design+Specifications"> Other Specifications</a>
\li \ref DDLBNF112 "DDL in BNF for HDF5 1.12 and above"

\section File Format

\li \ref FMT1 "HDF5 File Format Specification Version 1.0"
\li \ref FMT11 "HDF5 File Format Specification Version 1.1"
\li \ref FMT2 "HDF5 File Format Specification Version 2.0"
\li \ref FMT3 "HDF5 File Format Specification Version 3.0"

\section Other

\li \ref IMG "HDF5 Image and Palette Specification Version 1.2"
\li \ref TBL "HDF5 Table Specification Version 1.0"
\li <a href="https://support.hdfgroup.org/HDF5/doc/HL/H5DS_Spec.pdf">
HDF5 Dimension Scale Specification</a>

*/
16 changes: 15 additions & 1 deletion doxygen/dox/TechnicalNotes.dox
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
/** \page TN Technical Notes

\li \link api-compat-macros API Compatibility Macros \endlink
\li \ref TNMDC "Metadata Caching in HDF5"
\li \ref MT "Thread Safe library"
\li \ref VFL "Virtual File Layer"

*/

*/
/** \page MT HDF5 Thread Safe library

\htmlinclude ThreadSafeLibrary.html

*/

/** \page VFL HDF5 Virtual File Layer

\htmlinclude VFL.html

*/
1 change: 0 additions & 1 deletion doxygen/dox/api-compat-macros.dox
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/** \page api-compat-macros API Compatibility Macros
\tableofcontents

\section audience Audience
The target audience for this document has existing applications that use the
Expand Down
Binary file added doxygen/examples/FF-IH_FileGroup.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doxygen/examples/FF-IH_FileObject.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doxygen/examples/FileFormatSpecChunkDiagram.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading