Files
hdf5/docs/doxygen/dox/UsingIdentifiers.dox
Scot Breitenfeld 05676d1abe Consolidate documentation under docs/ directory (#6310)
* Consolidate documentation under doc/ directory

Move user-facing guides from release_docs/ and doxygen/ into a single
doc/ root. release_docs/ now holds only release artifacts (changelogs,
history, release process, maintainer info).

- git mv release_docs/INSTALL*.md, USING_*.md, README_HPC.md,
  BuildSystemNotes.md, AutotoolsToCMakeOptions.md,
  HDF5_Library_2.0.0_Migration_Guide.md → doc/
- git mv doxygen/ → doc/doxygen/
- Update CMakeLists.txt: HDF5_DOXYGEN_DIR and add_subdirectory path
- Update CMakeInstallation.cmake: all install paths for moved files
- Update bin/make_vers: hardcoded doxygen/ path substitution
- Update doc/doxygen/CMakeLists.txt: EXAMPLES_DIRECTORY and comments
- Update README.md, CONTRIBUTING.md, SECURITY.md, config/README.md,
  release_docs/RELEASE_PROCESS.md: links to moved files
- Update doxygen .dox files: release_docs/ URLs for moved guides
- Rewrite release_docs/README.md for narrowed scope

* Add HDF5_DOCS_DIR variable for doc/ root path

Introduce HDF5_DOCS_DIR = \${HDF5_SOURCE_DIR}/doc so that
CMakeInstallation.cmake and future callers reference the doc/
directory symbolically rather than by hardcoded path.
HDF5_DOXYGEN_DIR is now derived from HDF5_DOCS_DIR.
2026-03-31 17:01:54 -06:00

104 lines
4.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** \page UsingIdentifiers Using Identifiers
*
* Navigate back: \ref index "Main" / \ref UG / \ref AR_UG
* <hr>
*
* \section sec_using_identifiers Using Identifiers
*
* The purpose of this topic is to describe how identifiers behave and how they should be treated by application programs.
*
* When an application program uses the HDF5 library to create or open an item, a unique identifier is
* returned. The items that return a unique identifier when they are created or opened include the following:
* \li dataset
* \li group
* \li datatype
* \li dataspace
* \li file
* \li attribute
* \li property list
* \li referenced object
* \li error stack
* \li error message
*
* An application may open one of the items listed above more than once at the same time. For example, an
* application might open a group twice, receiving two identifiers. Information from one dataset in the
* group could be handled through one identifier, and the information from another dataset in the group
* could be handled by a different identifier.
*
* An application program should track every identifier it receives as a result of creating or opening one of
* the items listed above. In order for an application to close properly, it must release every identifier it
* has opened. If an application opened a group twice for example, it would need to issue two #H5Gclose
* commands, one for each identifier. Not releasing identifiers causes resource leaks. Until an identifier
* is released, the item associated with the identifier is still open.
*
* The library considers a file open until all of the identifiers associated with the file and with the file’s
* various items have been released. The identifiers associated with these open items must be released separately.
* This means that an application can close a file and still work with one or more portions of the file. Suppose
* an application opened a file, a group within the file, and two datasets within the group. If the application
* closed the file with #H5Fclose, then the file would be considered closed to the application, but the group
* and two datasets would still be open.
*
* There are several exceptions to the above file closing rule. One is when the #H5close function is used
* instead of #H5Fclose. #H5close causes a general shut down of the library: all data is written to disk,
* all identifiers are closed, and all memory used by the library is cleaned up. Another exception occurs on
* parallel processing systems. Suppose on a parallel system an application has opened a file, a group in the
* file, and two datasets in the group. If the application uses the #H5Fclose function to close the file, the
* call will fail with an error. The open group and datasets must be closed before the file can be closed.
* A third exception is when the file access property list includes the property #H5F_CLOSE_STRONG. This
* property causes the closing of all of the file’s open items when the file is closed with #H5Fclose. For
* more information about #H5close, #H5Fclose, and #H5Pset_fclose_degree, see the \ref RM.
*
* The reference manual entries for functions that return identifiers describe what might be returned as
* follows:
* \b Returns:
* Returns an identifier if successful; otherwise returns a negative value.
*
* In other words, a successful operation will return a non-negative identifier which will never be 0
* (zero) and will always be a positive value.
*
* \subsection subsec_using_identifiers_func Functions that Return Identifiers
*
* Some of the functions that return identifiers are listed below.
*
* \li #H5Acreate
* \li #H5Acreate_by_name
* \li #H5Aget_type
* \li #H5Aopen
* \li #H5Aopen_by_idx
* \li #H5Aopen_by_name
* \li #H5Dcreate
* \li #H5Dcreate_anon
* \li #H5Dget_access_plist
* \li #H5Dget_create_plist
* \li #H5Dget_space
* \li #H5Dget_type
* \li #H5Dopen
* \li #H5Ecreate_msg
* \li #H5Ecreate_stack
* \li #H5Fcreate
* \li #H5Fopen
* \li #H5Freopen
* \li #H5Gcreate
* \li #H5Gcreate_anon
* \li #H5Gopen
* \li #H5Oopen
* \li #H5Oopen_by_addr
* \li #H5Oopen_by_idx
* \li #H5Pcreate
* \li #H5Pget_virtual_srcspace
* \li #H5Pget_virtual_vspace
* \li #H5Rdereference
* \li #H5Rget_region
* \li #H5Screate
* \li #H5Screate_simple
* \li #H5Tcopy
* \li #H5Tcreate
* \li #H5Tdecode
* \li #H5Tget_member_type
* \li #H5Tget_super
* \li #H5Topen
*
* <hr>
* Navigate back: \ref index "Main" / \ref UG / \ref AR_UG
*/