summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST1
-rw-r--r--config/cmake/HDF5_Examples.cmake.in8
-rw-r--r--config/cmake/patch.xml4
-rw-r--r--config/cmake_ext_mod/HDFMacros.cmake4
-rw-r--r--java/src/hdf/hdf5lib/H5.java131
-rw-r--r--java/src/hdf/overview.html3
-rw-r--r--release_docs/RELEASE.txt15
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/H5O.c598
-rw-r--r--src/H5Odeprec.c337
-rw-r--r--src/H5Opublic.h10
11 files changed, 532 insertions, 580 deletions
diff --git a/MANIFEST b/MANIFEST
index d240527..33038a3 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -759,7 +759,6 @@
./src/H5Ocont.c
./src/H5Ocopy.c
./src/H5Odbg.c
-./src/H5Odeprec.c
./src/H5Odrvinfo.c
./src/H5Odtype.c
./src/H5Oefl.c
diff --git a/config/cmake/HDF5_Examples.cmake.in b/config/cmake/HDF5_Examples.cmake.in
index d30f2ab..6951b09 100644
--- a/config/cmake/HDF5_Examples.cmake.in
+++ b/config/cmake/HDF5_Examples.cmake.in
@@ -48,7 +48,11 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCTEST_CONFIGURATION_TYPE:STRING=${
##################################################################
if(NOT DEFINED INSTALLDIR)
- set(INSTALLDIR "C:/Program Files/HDF_Group/@HDF5_PACKAGE_NAME@/@HDF5_PACKAGE_VERSION@")
+ if(WIN32)
+ set(INSTALLDIR "C:/Program Files/HDF_Group/@HDF5_PACKAGE_NAME@/@HDF5_PACKAGE_VERSION@")
+ else()
+ set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
+ endif()
endif()
if(NOT DEFINED CTEST_SOURCE_NAME)
@@ -70,7 +74,7 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDN
#TAR_SOURCE - name of tarfile
#if(NOT DEFINED TAR_SOURCE)
-# set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.10.10-Source")
+# set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.10.13-Source")
#endif()
###############################################################################################################
diff --git a/config/cmake/patch.xml b/config/cmake/patch.xml
index 70571c5..1bdff3e 100644
--- a/config/cmake/patch.xml
+++ b/config/cmake/patch.xml
@@ -1,5 +1,5 @@
<CPackWiXPatch>
- <CPackWiXFragment Id="CM_CP_libraries.bin.hdf5.dll">
+ <CPackWiXFragment Id="CM_CP_libraries.bin.hdf5.dll">
<Environment Id="PATH"
Name="PATH"
Value="[CM_DP_libraries.bin]"
@@ -7,5 +7,5 @@
Part="last"
Action="set"
System="yes"/>
- </CPackWiXFragment>
+ </CPackWiXFragment>
</CPackWiXPatch>
diff --git a/config/cmake_ext_mod/HDFMacros.cmake b/config/cmake_ext_mod/HDFMacros.cmake
index 147ae2f..27d730b 100644
--- a/config/cmake_ext_mod/HDFMacros.cmake
+++ b/config/cmake_ext_mod/HDFMacros.cmake
@@ -170,7 +170,7 @@ macro (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
if (${importtype} MATCHES "IMPORT")
set (importprefix "${CMAKE_STATIC_LIBRARY_PREFIX}")
endif ()
- if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+ if (${HDF_CFG_NAME} MATCHES "Debug")
set (IMPORT_LIB_NAME ${LIB_DEBUG_NAME})
else ()
set (IMPORT_LIB_NAME ${LIB_RELEASE_NAME})
@@ -273,7 +273,7 @@ macro (HDF_README_PROPERTIES target_fortran)
set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2015")
else ()
set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2017")
- endif ()
+ endif ()
else ()
set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}")
endif ()
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index 40a6358..03266e6 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -57,21 +57,21 @@ import hdf.hdf5lib.structs.H5O_info_t;
/**
* This class is the Java interface for the HDF5 library.
* <p>
- * This code is the called by Java programs to access the entry points of the HDF5 library. Each routine wraps a single
- * HDF5 entry point, generally with the arguments and return codes analogous to the C interface.
+ * This code is the called by Java programs to access the entry points of the HDF5 library. Each
+ * routine wraps a single HDF5 entry point, generally with the arguments and return codes analogous
+ * to the C interface.
* <p>
- * For details of the HDF5 library, see the HDF5 Documentation at: <a
- * href="http://hdfgroup.org/HDF5/">http://hdfgroup.org/HDF5/</a>
+ * For details of the HDF5 library, see the HDF5 Documentation at:
+ * <a href="http://hdfgroup.org/HDF5/">http://hdfgroup.org/HDF5/</a>
* <hr>
* <p>
* <b>Mapping of arguments for Java</b>
*
* <p>
- * In general, arguments to the HDF Java API are straightforward translations from the 'C' API described in the HDF
- * Reference Manual.
+ * In general, arguments to the HDF Java API are straightforward translations from the 'C' API
+ * described in the HDF Reference Manual.
*
- * <center>
- * <table border=2 cellpadding=2>
+ * <table border=1>
* <caption><b>HDF-5 C types to Java types</b> </caption>
* <tr>
* <td><b>HDF-5</b></td>
@@ -107,20 +107,21 @@ import hdf.hdf5lib.structs.H5O_info_t;
* <td>Special -- see HDFArray</td>
* </tr>
* </table>
- * </center>
- * <center> <b>General Rules for Passing Arguments and Results</b> </center>
+ * <b>General Rules for Passing Arguments and Results</b>
* <p>
- * In general, arguments passed <b>IN</b> to Java are the analogous basic types, as above. The exception is for arrays,
- * which are discussed below.
+ * In general, arguments passed <b>IN</b> to Java are the analogous basic types, as above. The
+ * exception is for arrays, which are discussed below.
* <p>
- * The <i>return value</i> of Java methods is also the analogous type, as above. A major exception to that rule is that
- * all HDF functions that return SUCCEED/FAIL are declared <i>boolean</i> in the Java version, rather than <i>int</i> as
- * in the C. Functions that return a value or else FAIL are declared the equivalent to the C function. However, in most
- * cases the Java method will raise an exception instead of returning an error code. See <a href="#ERRORS">Errors and
- * Exceptions</a> below.
+ * The <i>return value</i> of Java methods is also the analogous type, as above. A major exception
+ * to that rule is that all HDF functions that return SUCCEED/FAIL are declared <i>boolean</i> in
+ * the Java version, rather than <i>int</i> as in the C. Functions that return a value or else FAIL
+ * are declared the equivalent to the C function. However, in most cases the Java method will raise
+ * an exception instead of returning an error code. See <a href="#ERRORS">Errors and Exceptions</a>
+ * below.
* <p>
- * Java does not support pass by reference of arguments, so arguments that are returned through <b>OUT</b> parameters
- * must be wrapped in an object or array. The Java API for HDF consistently wraps arguments in arrays.
+ * Java does not support pass by reference of arguments, so arguments that are returned through
+ * <b>OUT</b> parameters must be wrapped in an object or array. The Java API for HDF consistently
+ * wraps arguments in arrays.
* <p>
* For instance, a function that returns two integers is declared:
*
@@ -141,12 +142,14 @@ import hdf.hdf5lib.structs.H5O_info_t;
* </pre>
*
* <p>
- * All the routines where this convention is used will have specific documentation of the details, given below.
+ * All the routines where this convention is used will have specific documentation of the details,
+ * given below.
* <p>
- * <a NAME="ARRAYS"> <b>Arrays</b> </a>
+ * <b>Arrays</b>
* <p>
- * HDF5 needs to read and write multi-dimensional arrays of any number type (and records). The HDF5 API describes the
- * layout of the source and destination, and the data for the array passed as a block of bytes, for instance,
+ * HDF5 needs to read and write multi-dimensional arrays of any number type (and records). The HDF5
+ * API describes the layout of the source and destination, and the data for the array passed as a
+ * block of bytes, for instance,
*
* <pre>
* herr_t H5Dread(long fid, long filetype, long memtype, long memspace,
@@ -154,40 +157,45 @@ import hdf.hdf5lib.structs.H5O_info_t;
* </pre>
*
* <p>
- * where ``void *'' means that the data may be any valid numeric type, and is a contiguous block of bytes that is the
- * data for a multi-dimensional array. The other parameters describe the dimensions, rank, and datatype of the array on
- * disk (source) and in memory (destination).
+ * where ``void *'' means that the data may be any valid numeric type, and is a contiguous block of
+ * bytes that is the data for a multi-dimensional array. The other parameters describe the
+ * dimensions, rank, and datatype of the array on disk (source) and in memory (destination).
* <p>
- * For Java, this ``ANY'' is a problem, as the type of data must always be declared. Furthermore, multidimensional
- * arrays are definitely <i>not</i> layed out contiguously in memory. It would be infeasible to declare a separate
- * routine for every combination of number type and dimensionality. For that reason, the <a
- * href="./hdf.hdf5lib.HDFArray.html"><b>HDFArray</b></a> class is used to discover the type, shape, and size of the
- * data array at run time, and to convert to and from a contiguous array of bytes in synchronized static native C order.
+ * For Java, this ``ANY'' is a problem, as the type of data must always be declared. Furthermore,
+ * multidimensional arrays are definitely <i>not</i> layed out contiguously in memory. It would be
+ * infeasible to declare a separate routine for every combination of number type and dimensionality.
+ * For that reason, the <a href="./hdf.hdf5lib.HDFArray.html"><b>HDFArray</b></a> class is used to
+ * discover the type, shape, and size of the data array at run time, and to convert to and from a
+ * contiguous array of bytes in synchronized static native C order.
* <p>
- * The upshot is that any Java array of numbers (either primitive or sub-classes of type <b>Number</b>) can be passed as
- * an ``Object'', and the Java API will translate to and from the appropriate packed array of bytes needed by the C
- * library. So the function above would be declared:
+ * The upshot is that any Java array of numbers (either primitive or sub-classes of type
+ * <b>Number</b>) can be passed as an ``Object'', and the Java API will translate to and from the
+ * appropriate packed array of bytes needed by the C library. So the function above would be
+ * declared:
*
* <pre>
* public synchronized static native int H5Dread(long fid, long filetype, long memtype, long memspace, Object data);
* </pre>
- * OPEN_IDS.addElement(id);
-
- * and the parameter <i>data</i> can be any multi-dimensional array of numbers, such as float[][], or int[][][], or
- * Double[][].
+ *
+ * OPEN_IDS.addElement(id);
+ *
+ * and the parameter <i>data</i> can be any multi-dimensional array of numbers, such as float[][],
+ * or int[][][], or Double[][].
* <p>
- * <a NAME="CONSTANTS"> <b>HDF-5 Constants</b></a>
+ * <b>HDF-5 Constants</b>
* <p>
- * The HDF-5 API defines a set of constants and enumerated values. Most of these values are available to Java programs
- * via the class <a href="./hdf.hdf5lib.HDF5Constants.html"> <b>HDF5Constants</b></a>. For example, the parameters for
- * the h5open() call include two numeric values, <b><i>HDFConstants.H5F_ACC_RDWR</i></b> and
- * <b><i>HDF5Constants.H5P_DEFAULT</i></b>. As would be expected, these numbers correspond to the C constants
- * <b><i>H5F_ACC_RDWR</i></b> and <b><i>H5P_DEFAULT</i></b>.
+ * The HDF-5 API defines a set of constants and enumerated values. Most of these values are
+ * available to Java programs via the class <a href="./hdf.hdf5lib.HDF5Constants.html">
+ * <b>HDF5Constants</b></a>. For example, the parameters for the h5open() call include two numeric
+ * values, <b><i>HDFConstants.H5F_ACC_RDWR</i></b> and <b><i>HDF5Constants.H5P_DEFAULT</i></b>. As
+ * would be expected, these numbers correspond to the C constants <b><i>H5F_ACC_RDWR</i></b> and
+ * <b><i>H5P_DEFAULT</i></b>.
* <p>
- * The HDF-5 API defines a set of values that describe number types and sizes, such as "H5T_NATIVE_INT" and "hsize_t".
- * These values are determined at run time by the HDF-5 C library. To support these parameters, the Java class <a
- * href="./hdf.hdf5lib.HDF5CDataTypes.html"> <b>HDF5CDataTypes</b></a> looks up the values when initiated. The values
- * can be accessed as public variables of the Java class, such as:
+ * The HDF-5 API defines a set of values that describe number types and sizes, such as
+ * "H5T_NATIVE_INT" and "hsize_t". These values are determined at run time by the HDF-5 C library.
+ * To support these parameters, the Java class <a href="./hdf.hdf5lib.HDF5CDataTypes.html">
+ * <b>HDF5CDataTypes</b></a> looks up the values when initiated. The values can be accessed as
+ * public variables of the Java class, such as:
*
* <pre>
* long data_type = HDF5CDataTypes.JH5T_NATIVE_INT;
@@ -196,22 +204,23 @@ import hdf.hdf5lib.structs.H5O_info_t;
* The Java application uses both types of constants the same way, the only difference is that the
* <b><i>HDF5CDataTypes</i></b> may have different values on different platforms.
* <p>
- * <a NAME="ERRORS"> <b>Error handling and Exceptions</b></a>
+ * <b>Error handling and Exceptions</b>
* <p>
- * The HDF5 error API (H5E) manages the behavior of the error stack in the HDF-5 library. This API is omitted from the
- * JHI5. Errors are converted into Java exceptions. This is totally different from the C interface, but is very natural
- * for Java programming.
+ * The HDF5 error API (H5E) manages the behavior of the error stack in the HDF-5 library. This API
+ * is omitted from the JHI5. Errors are converted into Java exceptions. This is totally different
+ * from the C interface, but is very natural for Java programming.
* <p>
- * The exceptions of the JHI5 are organized as sub-classes of the class <a
- * href="./hdf.hdf5lib.exceptions.HDF5Exception.html"> <b>HDF5Exception</b></a>. There are two subclasses of
- * <b>HDF5Exception</b>, <a href="./hdf.hdf5lib.exceptions.HDF5LibraryException.html"> <b>HDF5LibraryException</b></a>
- * and <a href="./hdf.hdf5lib.exceptions.HDF5JavaException.html"> <b>HDF5JavaException</b></a>. The sub-classes of the
- * former represent errors from the HDF-5 C library, while sub-classes of the latter represent errors in the JHI5
- * wrapper and support code.
+ * The exceptions of the JHI5 are organized as sub-classes of the class
+ * <a href="./hdf.hdf5lib.exceptions.HDF5Exception.html"> <b>HDF5Exception</b></a>. There are two
+ * subclasses of <b>HDF5Exception</b>, <a href="./hdf.hdf5lib.exceptions.HDF5LibraryException.html">
+ * <b>HDF5LibraryException</b></a> and <a href="./hdf.hdf5lib.exceptions.HDF5JavaException.html">
+ * <b>HDF5JavaException</b></a>. The sub-classes of the former represent errors from the HDF-5 C
+ * library, while sub-classes of the latter represent errors in the JHI5 wrapper and support code.
* <p>
- * The super-class <b><i>HDF5LibraryException</i></b> implements the method '<b><i>printStackTrace()</i></b>', which
- * prints out the HDF-5 error stack, as described in the HDF-5 C API <i><b>H5Eprint()</b>.</i> This may be used by Java
- * exception handlers to print out the HDF-5 error stack.
+ * The super-class <b><i>HDF5LibraryException</i></b> implements the method
+ * '<b><i>printStackTrace()</i></b>', which prints out the HDF-5 error stack, as described in the
+ * HDF-5 C API <i><b>H5Eprint()</b>.</i> This may be used by Java exception handlers to print out
+ * the HDF-5 error stack.
* <hr>
*
* @version HDF5 1.10.5 <BR>
diff --git a/java/src/hdf/overview.html b/java/src/hdf/overview.html
index edb1b76..e3a032b 100644
--- a/java/src/hdf/overview.html
+++ b/java/src/hdf/overview.html
@@ -90,8 +90,7 @@ like this:
The <i><b>H5</b> </i>class automatically loads the native method implementations
and the HDF5 library.
-<h3>
-<a NAME="DOWNLOAD"></a>To Obtain</h3>
+<h3>To Obtain</h3>
The JHI5 is included with the <a href="https://portal.hdfgroup.org/display/support/Downloads">HDF5</a> library.
</body>
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 4675f61..4c254ab 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -318,6 +318,21 @@ Bug Fixes since HDF5-1.10.3 release
Library
-------
+ - Revert H5Oget_info* and H5Ovisit* functions
+
+ In 1.10.3 new H5Oget_info*2 and H5Ovisit*2 functions were
+ added for performance. Inadvertently, the original functions;
+ H5Oget_info,
+ H5Oget_info_by_name,
+ H5Oget_info_by_idx,
+ H5Ovisit,
+ H5Ovisit_by_name
+ were versioned to H5Oget_info*1 and H5Ovisit*1. This
+ broke the API compatibility for a maintenance release. The
+ original functions have been restored.
+
+ (ADB - 2019/01/24, HDFFV-10686)
+
- Deleting attributes in dense storage
The library aborts with "infinite loop closing library" after
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3b3459d..983add1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -423,7 +423,6 @@ set (H5O_SOURCES
${HDF5_SRC_DIR}/H5Ocont.c
${HDF5_SRC_DIR}/H5Ocopy.c
${HDF5_SRC_DIR}/H5Odbg.c
- ${HDF5_SRC_DIR}/H5Odeprec.c
${HDF5_SRC_DIR}/H5Odrvinfo.c
${HDF5_SRC_DIR}/H5Odtype.c
${HDF5_SRC_DIR}/H5Oefl.c
diff --git a/src/H5O.c b/src/H5O.c
index 25c3d83..aa175eb 100644
--- a/src/H5O.c
+++ b/src/H5O.c
@@ -73,11 +73,11 @@
/* Local Variables */
/*******************/
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oopen
+ * Function: H5Oopen
*
- * Purpose: Opens an object within an HDF5 file.
+ * Purpose: Opens an object within an HDF5 file.
*
* This function opens an object in the same way that H5Gopen2,
* H5Topen2, and H5Dopen2 do. However, H5Oopen doesn't require
@@ -88,18 +88,18 @@
* The opened object should be closed again with H5Oclose
* or H5Gclose, H5Tclose, or H5Dclose.
*
- * Return: Success: An open object identifier
- * Failure: Negative
+ * Return: Success: An open object identifier
+ * Failure: Negative
*
- * Programmer: James Laird
- * July 14 2006
+ * Programmer: James Laird
+ * July 14 2006
*
*-------------------------------------------------------------------------
*/
hid_t
H5Oopen(hid_t loc_id, const char *name, hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
hid_t ret_value = FAIL;
FUNC_ENTER_API(FAIL)
@@ -123,11 +123,11 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oopen() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oopen_by_idx
+ * Function: H5Oopen_by_idx
*
- * Purpose: Opens an object within an HDF5 file, according to the offset
+ * Purpose: Opens an object within an HDF5 file, according to the offset
* within an index.
*
* This function opens an object in the same way that H5Gopen,
@@ -139,11 +139,11 @@ done:
* The opened object should be closed again with H5Oclose
* or H5Gclose, H5Tclose, or H5Dclose.
*
- * Return: Success: An open object identifier
- * Failure: Negative
+ * Return: Success: An open object identifier
+ * Failure: Negative
*
- * Programmer: Quincey Koziol
- * November 20 2006
+ * Programmer: Quincey Koziol
+ * November 20 2006
*
*-------------------------------------------------------------------------
*/
@@ -151,7 +151,7 @@ hid_t
H5Oopen_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
H5_iter_order_t order, hsize_t n, hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
hid_t ret_value = FAIL;
FUNC_ENTER_API(FAIL)
@@ -179,11 +179,11 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oopen_by_idx() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oopen_by_addr
+ * Function: H5Oopen_by_addr
*
- * Purpose: Warning! This function is EXTREMELY DANGEROUS!
+ * Purpose: Warning! This function is EXTREMELY DANGEROUS!
* Improper use can lead to FILE CORRUPTION, INACCESSIBLE DATA,
* and other VERY BAD THINGS!
*
@@ -207,19 +207,19 @@ done:
* HDF5 file, and HDF5's file drivers will transparently
* map this to an address on disk for the filesystem.
*
- * Return: Success: An open object identifier
- * Failure: Negative
+ * Return: Success: An open object identifier
+ * Failure: Negative
*
- * Programmer: James Laird
- * July 14 2006
+ * Programmer: James Laird
+ * July 14 2006
*
*-------------------------------------------------------------------------
*/
hid_t
H5Oopen_by_addr(hid_t loc_id, haddr_t addr)
{
- H5G_loc_t loc; /* Location within file */
- hid_t ret_value = H5I_INVALID_HID; /* Return value */
+ H5G_loc_t loc; /* Location within file */
+ hid_t ret_value = H5I_INVALID_HID; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE2("i", "ia", loc_id, addr);
@@ -238,24 +238,24 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oopen_by_addr() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Olink
+ * Function: H5Olink
*
- * Purpose: Creates a hard link from NEW_NAME to the object specified
- * by OBJ_ID using properties defined in the Link Creation
+ * Purpose: Creates a hard link from NEW_NAME to the object specified
+ * by OBJ_ID using properties defined in the Link Creation
* Property List LCPL.
*
- * This function should be used to link objects that have just
+ * This function should be used to link objects that have just
* been created.
*
- * NEW_NAME is interpreted relative to
- * NEW_LOC_ID, which is either a file ID or a
- * group ID.
+ * NEW_NAME is interpreted relative to
+ * NEW_LOC_ID, which is either a file ID or a
+ * group ID.
*
- * Return: Non-negative on success/Negative on failure
+ * Return: Non-negative on success/Negative on failure
*
- * Programmer: James Laird
+ * Programmer: James Laird
* Tuesday, December 13, 2005
*
*-------------------------------------------------------------------------
@@ -264,8 +264,8 @@ herr_t
H5Olink(hid_t obj_id, hid_t new_loc_id, const char *new_name, hid_t lcpl_id,
hid_t lapl_id)
{
- H5G_loc_t new_loc; /* Location of group to link from */
- H5G_loc_t obj_loc; /* Location of object to link to */
+ H5G_loc_t new_loc; /* Location of group to link from */
+ H5G_loc_t obj_loc; /* Location of object to link to */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -300,11 +300,11 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Olink() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oincr_refcount
+ * Function: H5Oincr_refcount
*
- * Purpose: Warning! This function is EXTREMELY DANGEROUS!
+ * Purpose: Warning! This function is EXTREMELY DANGEROUS!
* Improper use can lead to FILE CORRUPTION, INACCESSIBLE DATA,
* and other VERY BAD THINGS!
*
@@ -313,19 +313,19 @@ done:
* that references an object by address is created. When the
* link is deleted, H5Odecr_refcount should be used.
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: James Laird
- * July 14 2006
+ * Programmer: James Laird
+ * July 14 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5Oincr_refcount(hid_t object_id)
{
- H5O_loc_t *oloc; /* Object location */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5O_loc_t *oloc; /* Object location */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("e", "i", object_id);
@@ -346,11 +346,11 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5O_incr_refcount() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Odecr_refcount
+ * Function: H5Odecr_refcount
*
- * Purpose: Warning! This function is EXTREMELY DANGEROUS!
+ * Purpose: Warning! This function is EXTREMELY DANGEROUS!
* Improper use can lead to FILE CORRUPTION, INACCESSIBLE DATA,
* and other VERY BAD THINGS!
*
@@ -359,19 +359,19 @@ done:
* that reference an object by address are deleted, and only
* after H5Oincr_refcount has already been used.
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: James Laird
- * July 14 2006
+ * Programmer: James Laird
+ * July 14 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5Odecr_refcount(hid_t object_id)
{
- H5O_loc_t *oloc; /* Object location */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5O_loc_t *oloc; /* Object location */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("e", "i", object_id);
@@ -392,24 +392,24 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Odecr_refcount() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oexists_by_name
+ * Function: H5Oexists_by_name
*
- * Purpose: Determine if a linked-to object exists
+ * Purpose: Determine if a linked-to object exists
*
- * Return: Success: TRUE/FALSE
- * Failure: Negative
+ * Return: Success: TRUE/FALSE
+ * Failure: Negative
*
- * Programmer: Quincey Koziol
- * February 2 2010
+ * Programmer: Quincey Koziol
+ * February 2 2010
*
*-------------------------------------------------------------------------
*/
htri_t
H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id)
{
- H5G_loc_t loc; /* Location info */
+ H5G_loc_t loc; /* Location info */
htri_t ret_value = FAIL; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -433,7 +433,7 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oexists_by_name() */
-
+
/*-------------------------------------------------------------------------
* Function: H5Oget_info2
*
@@ -474,7 +474,7 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oget_info2() */
-
+
/*-------------------------------------------------------------------------
* Function: H5Oget_info_by_name2
*
@@ -494,7 +494,7 @@ herr_t
H5Oget_info_by_name2(hid_t loc_id, const char *name, H5O_info_t *oinfo,
unsigned fields, hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -522,7 +522,7 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oget_info_by_name2() */
-
+
/*-------------------------------------------------------------------------
* Function: H5Oget_info_by_idx2
*
@@ -531,10 +531,10 @@ done:
*
* NOTE: Add a parameter "fields" to indicate selection of object info.
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: Quincey Koziol
+ * Programmer: Quincey Koziol
* November 26 2006
*
*-------------------------------------------------------------------------
@@ -543,7 +543,7 @@ herr_t
H5Oget_info_by_idx2(hid_t loc_id, const char *group_name, H5_index_t idx_type,
H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo, unsigned fields, hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -576,28 +576,28 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oget_info_by_idx2() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oset_comment
+ * Function: H5Oset_comment
*
* Purpose: Gives the specified object a comment. The COMMENT string
- * should be a null terminated string. An object can have only
- * one comment at a time. Passing NULL for the COMMENT argument
- * will remove the comment property from the object.
+ * should be a null terminated string. An object can have only
+ * one comment at a time. Passing NULL for the COMMENT argument
+ * will remove the comment property from the object.
*
- * Note: Deprecated in favor of using attributes on objects
+ * Note: Deprecated in favor of using attributes on objects
*
- * Return: Non-negative on success/Negative on failure
+ * Return: Non-negative on success/Negative on failure
*
- * Programmer: Quincey Koziol
- * August 30 2007
+ * Programmer: Quincey Koziol
+ * August 30 2007
*
*-------------------------------------------------------------------------
*/
herr_t
H5Oset_comment(hid_t obj_id, const char *comment)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -619,21 +619,21 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oset_comment() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oset_comment_by_name
+ * Function: H5Oset_comment_by_name
*
* Purpose: Gives the specified object a comment. The COMMENT string
- * should be a null terminated string. An object can have only
- * one comment at a time. Passing NULL for the COMMENT argument
- * will remove the comment property from the object.
+ * should be a null terminated string. An object can have only
+ * one comment at a time. Passing NULL for the COMMENT argument
+ * will remove the comment property from the object.
*
- * Note: Deprecated in favor of using attributes on objects
+ * Note: Deprecated in favor of using attributes on objects
*
- * Return: Non-negative on success/Negative on failure
+ * Return: Non-negative on success/Negative on failure
*
- * Programmer: Quincey Koziol
- * August 30 2007
+ * Programmer: Quincey Koziol
+ * August 30 2007
*
*-------------------------------------------------------------------------
*/
@@ -641,7 +641,7 @@ herr_t
H5Oset_comment_by_name(hid_t loc_id, const char *name, const char *comment,
hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -665,27 +665,27 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oset_comment_by_name() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oget_comment
+ * Function: H5Oget_comment
*
- * Purpose: Retrieve comment for an object.
+ * Purpose: Retrieve comment for an object.
*
- * Return: Success: Number of bytes in the comment excluding the
- * null terminator. Zero if the object has no
- * comment.
+ * Return: Success: Number of bytes in the comment excluding the
+ * null terminator. Zero if the object has no
+ * comment.
*
- * Failure: Negative
+ * Failure: Negative
*
- * Programmer: Quincey Koziol
- * August 30 2007
+ * Programmer: Quincey Koziol
+ * August 30 2007
*
*-------------------------------------------------------------------------
*/
ssize_t
H5Oget_comment(hid_t obj_id, char *comment, size_t bufsize)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
ssize_t ret_value; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -703,20 +703,20 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oget_comment() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oget_comment_by_name
+ * Function: H5Oget_comment_by_name
*
- * Purpose: Retrieve comment for an object.
+ * Purpose: Retrieve comment for an object.
*
- * Return: Success: Number of bytes in the comment excluding the
- * null terminator. Zero if the object has no
- * comment.
+ * Return: Success: Number of bytes in the comment excluding the
+ * null terminator. Zero if the object has no
+ * comment.
*
- * Failure: Negative
+ * Failure: Negative
*
- * Programmer: Quincey Koziol
- * August 30 2007
+ * Programmer: Quincey Koziol
+ * August 30 2007
*
*-------------------------------------------------------------------------
*/
@@ -724,7 +724,7 @@ ssize_t
H5Oget_comment_by_name(hid_t loc_id, const char *name, char *comment, size_t bufsize,
hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
+ H5G_loc_t loc; /* Location of group */
ssize_t ret_value; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -748,11 +748,11 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oget_comment_by_name() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Ovisit2
+ * Function: H5Ovisit2
*
- * Purpose: Recursively visit an object and all the objects reachable
+ * Purpose: Recursively visit an object and all the objects reachable
* from it. If the starting object is a group, all the objects
* linked to from that group will be visited. Links within
* each group are visited according to the order within the
@@ -772,14 +772,14 @@ done:
* object info to be retrieved to the callback "op".
*
* Return: Success: The return value of the first operator that
- * returns non-zero, or zero if all members were
- * processed with no operator returning non-zero.
+ * returns non-zero, or zero if all members were
+ * processed with no operator returning non-zero.
*
* Failure: Negative if something goes wrong within the
- * library, or the negative value returned by one
- * of the operators.
+ * library, or the negative value returned by one
+ * of the operators.
*
- * Programmer: Quincey Koziol
+ * Programmer: Quincey Koziol
* November 25 2007
*
*-------------------------------------------------------------------------
@@ -811,9 +811,9 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Ovisit2() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Ovisit_by_name2
+ * Function: H5Ovisit_by_name2
*
* Purpose: Recursively visit an object and all the objects reachable
* from it. If the starting object is a group, all the objects
@@ -835,14 +835,14 @@ done:
* object info to be retrieved to the callback "op".
*
* Return: Success: The return value of the first operator that
- * returns non-zero, or zero if all members were
- * processed with no operator returning non-zero.
+ * returns non-zero, or zero if all members were
+ * processed with no operator returning non-zero.
*
- * Failure: Negative if something goes wrong within the
- * library, or the negative value returned by one
- * of the operators.
+ * Failure: Negative if something goes wrong within the
+ * library, or the negative value returned by one
+ * of the operators.
*
- * Programmer: Quincey Koziol
+ * Programmer: Quincey Koziol
* November 24 2007
*
*-------------------------------------------------------------------------
@@ -881,22 +881,22 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Ovisit_by_name2() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oclose
+ * Function: H5Oclose
*
- * Purpose: Close an open file object.
+ * Purpose: Close an open file object.
*
* This is the companion to H5Oopen. It is used to close any
* open object in an HDF5 file (but not IDs are that not file
* objects, such as property lists and dataspaces). It has
* the same effect as calling H5Gclose, H5Dclose, or H5Tclose.
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: James Laird
- * July 14 2006
+ * Programmer: James Laird
+ * July 14 2006
*
*-------------------------------------------------------------------------
*/
@@ -941,26 +941,26 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Oclose() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Odisable_mdc_flushes
+ * Function: H5Odisable_mdc_flushes
*
- * Purpose: To "cork" an object:
- * --keep dirty entries associated with the object in the metadata cache
+ * Purpose: To "cork" an object:
+ * --keep dirty entries associated with the object in the metadata cache
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: Vailin Choi
- * January 2014
+ * Programmer: Vailin Choi
+ * January 2014
*
*-------------------------------------------------------------------------
*/
herr_t
H5Odisable_mdc_flushes(hid_t object_id)
{
- H5O_loc_t *oloc; /* Object location */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5O_loc_t *oloc; /* Object location */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("e", "i", object_id);
@@ -976,27 +976,27 @@ done:
FUNC_LEAVE_API(ret_value)
} /* H5Odisable_mdc_flushes() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oenable_mdc_flushes
+ * Function: H5Oenable_mdc_flushes
*
- * Purpose: To "uncork" an object
- * --release keeping dirty entries associated with the object
- * in the metadata cache
+ * Purpose: To "uncork" an object
+ * --release keeping dirty entries associated with the object
+ * in the metadata cache
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: Vailin Choi
- * January 2014
+ * Programmer: Vailin Choi
+ * January 2014
*
*-------------------------------------------------------------------------
*/
herr_t
H5Oenable_mdc_flushes(hid_t object_id)
{
- H5O_loc_t *oloc; /* Object location */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5O_loc_t *oloc; /* Object location */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("e", "i", object_id);
@@ -1013,28 +1013,28 @@ done:
FUNC_LEAVE_API(ret_value)
} /* H5Oenable_mdc_flushes() */
-
+
/*-------------------------------------------------------------------------
- * Function: H5Oare_mdc_flushes_disabled
+ * Function: H5Oare_mdc_flushes_disabled
*
- * Purpose: Retrieve the object's "cork" status in the parameter "are_disabled":
- * TRUE if mdc flushes for the object is disabled
- * FALSE if mdc flushes for the object is not disabled
- * Return error if the parameter "are_disabled" is not supplied
+ * Purpose: Retrieve the object's "cork" status in the parameter "are_disabled":
+ * TRUE if mdc flushes for the object is disabled
+ * FALSE if mdc flushes for the object is not disabled
+ * Return error if the parameter "are_disabled" is not supplied
*
- * Return: Success: Non-negative
- * Failure: Negative
+ * Return: Success: Non-negative
+ * Failure: Negative
*
- * Programmer: Vailin Choi
- * January 2014
+ * Programmer: Vailin Choi
+ * January 2014
*
*-------------------------------------------------------------------------
*/
herr_t
H5Oare_mdc_flushes_disabled(hid_t object_id, hbool_t *are_disabled)
{
- H5O_loc_t *oloc; /* Object location */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5O_loc_t *oloc; /* Object location */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE2("e", "i*b", object_id, are_disabled);
@@ -1055,3 +1055,267 @@ done:
FUNC_LEAVE_API(ret_value)
} /* H5Oare_mdc_flushes_disabled() */
+/* Future function prototypes to be deprecated in next major version
+ * see HDFFV-10552
+#ifndef H5_NO_DEPRECATED_SYMBOLS
+ */
+
+/*-------------------------------------------------------------------------
+ * Function: H5Oget_info
+ *
+ * Purpose: Retrieve information about an object.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5Oget_info(hid_t loc_id, H5O_info_t *oinfo)
+{
+ H5G_loc_t loc; /* Location of group */
+ herr_t ret_value = SUCCEED; /* Return value */
+
+ FUNC_ENTER_API(FAIL)
+ H5TRACE2("e", "i*x", loc_id, oinfo);
+
+ /* Check args */
+ if(H5G_loc(loc_id, &loc) < 0)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
+ if(!oinfo)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
+
+ /* Retrieve the object's information */
+ if(H5G_loc_info(&loc, ".", oinfo/*out*/, H5O_INFO_ALL) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't retrieve object info")
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* end H5Oget_info() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5Oget_info_by_name
+ *
+ * Purpose: Retrieve information about an object.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo, hid_t lapl_id)
+{
+ H5G_loc_t loc; /* Location of group */
+ herr_t ret_value = SUCCEED; /* Return value */
+
+ FUNC_ENTER_API(FAIL)
+ H5TRACE4("e", "i*s*xi", loc_id, name, oinfo, lapl_id);
+
+ /* Check args */
+ if(H5G_loc(loc_id, &loc) < 0)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
+ if(!name || !*name)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
+ if(!oinfo)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
+
+ /* Verify access property list and set up collective metadata if appropriate */
+ if(H5CX_set_apl(&lapl_id, H5P_CLS_LACC, loc_id, FALSE) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access property list info")
+
+ /* Retrieve the object's information */
+ if(H5G_loc_info(&loc, name, oinfo/*out*/, H5O_INFO_ALL) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object: '%s'", name)
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* end H5Oget_info_by_name() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5Oget_info_by_idx
+ *
+ * Purpose: Retrieve information about an object, according to the order
+ * of an index.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ * Programmer: Quincey Koziol
+ * November 26 2006
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5Oget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
+ H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo, hid_t lapl_id)
+{
+ H5G_loc_t loc; /* Location of group */
+ H5G_loc_t obj_loc; /* Location used to open group */
+ H5G_name_t obj_path; /* Opened object group hier. path */
+ H5O_loc_t obj_oloc; /* Opened object object location */
+ hbool_t loc_found = FALSE; /* Entry at 'name' found */
+ herr_t ret_value = SUCCEED; /* Return value */
+
+ FUNC_ENTER_API(FAIL)
+ H5TRACE7("e", "i*sIiIoh*xi", loc_id, group_name, idx_type, order, n, oinfo,
+ lapl_id);
+
+ /* Check args */
+ if(H5G_loc(loc_id, &loc) < 0)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
+ if(!group_name || !*group_name)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
+ if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid index type specified")
+ if(order <= H5_ITER_UNKNOWN || order >= H5_ITER_N)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
+ if(!oinfo)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
+
+ /* Verify access property list and set up collective metadata if appropriate */
+ if(H5CX_set_apl(&lapl_id, H5P_CLS_LACC, loc_id, FALSE) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access property list info")
+
+ /* Retrieve the object's information */
+ if(H5O__get_info_by_idx(&loc, group_name, idx_type, order, n, oinfo, H5O_INFO_ALL) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object")
+
+done:
+ /* Release the object location */
+ if(loc_found && H5G_loc_free(&obj_loc) < 0)
+ HDONE_ERROR(H5E_OHDR, H5E_CANTRELEASE, FAIL, "can't free location")
+
+ FUNC_LEAVE_API(ret_value)
+} /* end H5Oget_info_by_idx() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5Ovisit
+ *
+ * Purpose: Recursively visit an object and all the objects reachable
+ * from it. If the starting object is a group, all the objects
+ * linked to from that group will be visited. Links within
+ * each group are visited according to the order within the
+ * specified index (unless the specified index does not exist for
+ * a particular group, then the "name" index is used).
+ *
+ * NOTE: Soft links and user-defined links are ignored during
+ * this operation.
+ *
+ * NOTE: Each _object_ reachable from the initial group will only
+ * be visited once. If multiple hard links point to the same
+ * object, the first link to the object's path (according to the
+ * iteration index and iteration order given) will be used to in
+ * the callback about the object.
+ *
+ * Return: Success: The return value of the first operator that
+ * returns non-zero, or zero if all members were
+ * processed with no operator returning non-zero.
+ *
+ * Failure: Negative if something goes wrong within the
+ * library, or the negative value returned by one
+ * of the operators.
+ *
+ * Programmer: Quincey Koziol
+ * November 25 2007
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5Ovisit(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
+ H5O_iterate_t op, void *op_data)
+{
+ herr_t ret_value; /* Return value */
+
+ FUNC_ENTER_API(FAIL)
+ H5TRACE5("e", "iIiIox*x", obj_id, idx_type, order, op, op_data);
+
+ /* Check args */
+ if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid index type specified")
+ if(order <= H5_ITER_UNKNOWN || order >= H5_ITER_N)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
+ if(!op)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
+
+ /* Call internal object visitation routine */
+ if((ret_value = H5O__visit(obj_id, ".", idx_type, order, op, op_data, H5O_INFO_ALL)) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "object visitation failed")
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* end H5Ovisit() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5Ovisit_by_name
+ *
+ * Purpose: Recursively visit an object and all the objects reachable
+ * from it. If the starting object is a group, all the objects
+ * linked to from that group will be visited. Links within
+ * each group are visited according to the order within the
+ * specified index (unless the specified index does not exist for
+ * a particular group, then the "name" index is used).
+ *
+ * NOTE: Soft links and user-defined links are ignored during
+ * this operation.
+ *
+ * NOTE: Each _object_ reachable from the initial group will only
+ * be visited once. If multiple hard links point to the same
+ * object, the first link to the object's path (according to the
+ * iteration index and iteration order given) will be used to in
+ * the callback about the object.
+ *
+ * Return: Success: The return value of the first operator that
+ * returns non-zero, or zero if all members were
+ * processed with no operator returning non-zero.
+ *
+ * Failure: Negative if something goes wrong within the
+ * library, or the negative value returned by one
+ * of the operators.
+ *
+ * Programmer: Quincey Koziol
+ * November 24 2007
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5Ovisit_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
+ H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id)
+{
+ herr_t ret_value; /* Return value */
+
+ FUNC_ENTER_API(FAIL)
+ H5TRACE7("e", "i*sIiIox*xi", loc_id, obj_name, idx_type, order, op, op_data,
+ lapl_id);
+
+ /* Check args */
+ if(!obj_name || !*obj_name)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
+ if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid index type specified")
+ if(order <= H5_ITER_UNKNOWN || order >= H5_ITER_N)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
+ if(!op)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
+
+ /* Verify access property list and set up collective metadata if appropriate */
+ if(H5CX_set_apl(&lapl_id, H5P_CLS_LACC, loc_id, FALSE) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access property list info")
+
+ /* Call internal object visitation routine */
+ if((ret_value = H5O__visit(loc_id, obj_name, idx_type, order, op, op_data, H5O_INFO_ALL)) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "object visitation failed")
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* end H5Ovisit_by_name() */
+
+/* Future function prototypes to be deprecated in next major version
+ * see HDFFV-10552
+#endif (* H5_NO_DEPRECATED_SYMBOLS *)
+ */
+
diff --git a/src/H5Odeprec.c b/src/H5Odeprec.c
deleted file mode 100644
index 9f0babc..0000000
--- a/src/H5Odeprec.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group. *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * 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. *
- * If you do not have access to either file, you may request a copy from *
- * help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*-------------------------------------------------------------------------
- *
- * Purpose: Deprecated functions from the H5O interface. These
- * functions are here for compatibility purposes and may be
- * removed in the future. Applications should switch to the
- * newer APIs.
- *
- *-------------------------------------------------------------------------
- */
-
-/****************/
-/* Module Setup */
-/****************/
-
-#include "H5Omodule.h" /* This source code file is part of the H5O module */
-
-
-/***********/
-/* Headers */
-/***********/
-#include "H5private.h" /* Generic Functions */
-#include "H5CXprivate.h" /* API Contexts */
-#include "H5Eprivate.h" /* Error handling */
-#include "H5Opkg.h" /* Object headers */
-
-
-/****************/
-/* Local Macros */
-/****************/
-
-
-/******************/
-/* Local Typedefs */
-/******************/
-
-
-/********************/
-/* Package Typedefs */
-/********************/
-
-
-/********************/
-/* Local Prototypes */
-/********************/
-
-
-/*********************/
-/* Package Variables */
-/*********************/
-
-
-/*****************************/
-/* Library Private Variables */
-/*****************************/
-
-
-/*******************/
-/* Local Variables */
-/*******************/
-
-
-/* Future function prototypes to be deprecated in next major version
- * see HDFFV-10552
-#ifndef H5_NO_DEPRECATED_SYMBOLS
- */
-
-/*-------------------------------------------------------------------------
- * Function: H5Oget_info1
- *
- * Purpose: Retrieve information about an object.
- *
- * Return: Success: Non-negative
- * Failure: Negative
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Oget_info1(hid_t loc_id, H5O_info_t *oinfo)
-{
- H5G_loc_t loc; /* Location of group */
- herr_t ret_value = SUCCEED; /* Return value */
-
- FUNC_ENTER_API(FAIL)
- H5TRACE2("e", "i*x", loc_id, oinfo);
-
- /* Check args */
- if(H5G_loc(loc_id, &loc) < 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
- if(!oinfo)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
-
- /* Retrieve the object's information */
- if(H5G_loc_info(&loc, ".", oinfo/*out*/, H5O_INFO_ALL) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't retrieve object info")
-
-done:
- FUNC_LEAVE_API(ret_value)
-} /* end H5Oget_info1() */
-
-
-/*-------------------------------------------------------------------------
- * Function: H5Oget_info_by_name1
- *
- * Purpose: Retrieve information about an object.
- *
- * Return: Success: Non-negative
- * Failure: Negative
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Oget_info_by_name1(hid_t loc_id, const char *name, H5O_info_t *oinfo, hid_t lapl_id)
-{
- H5G_loc_t loc; /* Location of group */
- herr_t ret_value = SUCCEED; /* Return value */
-
- FUNC_ENTER_API(FAIL)
- H5TRACE4("e", "i*s*xi", loc_id, name, oinfo, lapl_id);
-
- /* Check args */
- if(H5G_loc(loc_id, &loc) < 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
- if(!name || !*name)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
- if(!oinfo)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
-
- /* Verify access property list and set up collective metadata if appropriate */
- if(H5CX_set_apl(&lapl_id, H5P_CLS_LACC, loc_id, FALSE) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access property list info")
-
- /* Retrieve the object's information */
- if(H5G_loc_info(&loc, name, oinfo/*out*/, H5O_INFO_ALL) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object: '%s'", name)
-
-done:
- FUNC_LEAVE_API(ret_value)
-} /* end H5Oget_info_by_name1() */
-
-
-/*-------------------------------------------------------------------------
- * Function: H5Oget_info_by_idx1
- *
- * Purpose: Retrieve information about an object, according to the order
- * of an index.
- *
- * Return: Success: Non-negative
- * Failure: Negative
- *
- * Programmer: Quincey Koziol
- * November 26 2006
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Oget_info_by_idx1(hid_t loc_id, const char *group_name, H5_index_t idx_type,
- H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo, hid_t lapl_id)
-{
- H5G_loc_t loc; /* Location of group */
- H5G_loc_t obj_loc; /* Location used to open group */
- H5G_name_t obj_path; /* Opened object group hier. path */
- H5O_loc_t obj_oloc; /* Opened object object location */
- hbool_t loc_found = FALSE; /* Entry at 'name' found */
- herr_t ret_value = SUCCEED; /* Return value */
-
- FUNC_ENTER_API(FAIL)
- H5TRACE7("e", "i*sIiIoh*xi", loc_id, group_name, idx_type, order, n, oinfo,
- lapl_id);
-
- /* Check args */
- if(H5G_loc(loc_id, &loc) < 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
- if(!group_name || !*group_name)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
- if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid index type specified")
- if(order <= H5_ITER_UNKNOWN || order >= H5_ITER_N)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
- if(!oinfo)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
-
- /* Verify access property list and set up collective metadata if appropriate */
- if(H5CX_set_apl(&lapl_id, H5P_CLS_LACC, loc_id, FALSE) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access property list info")
-
- /* Retrieve the object's information */
- if(H5O__get_info_by_idx(&loc, group_name, idx_type, order, n, oinfo, H5O_INFO_ALL) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't get info for object")
-
-done:
- /* Release the object location */
- if(loc_found && H5G_loc_free(&obj_loc) < 0)
- HDONE_ERROR(H5E_OHDR, H5E_CANTRELEASE, FAIL, "can't free location")
-
- FUNC_LEAVE_API(ret_value)
-} /* end H5Oget_info_by_idx1() */
-
-
-/*-------------------------------------------------------------------------
- * Function: H5Ovisit1
- *
- * Purpose: Recursively visit an object and all the objects reachable
- * from it. If the starting object is a group, all the objects
- * linked to from that group will be visited. Links within
- * each group are visited according to the order within the
- * specified index (unless the specified index does not exist for
- * a particular group, then the "name" index is used).
- *
- * NOTE: Soft links and user-defined links are ignored during
- * this operation.
- *
- * NOTE: Each _object_ reachable from the initial group will only
- * be visited once. If multiple hard links point to the same
- * object, the first link to the object's path (according to the
- * iteration index and iteration order given) will be used to in
- * the callback about the object.
- *
- * Return: Success: The return value of the first operator that
- * returns non-zero, or zero if all members were
- * processed with no operator returning non-zero.
- *
- * Failure: Negative if something goes wrong within the
- * library, or the negative value returned by one
- * of the operators.
- *
- * Programmer: Quincey Koziol
- * November 25 2007
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Ovisit1(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
- H5O_iterate_t op, void *op_data)
-{
- herr_t ret_value; /* Return value */
-
- FUNC_ENTER_API(FAIL)
- H5TRACE5("e", "iIiIox*x", obj_id, idx_type, order, op, op_data);
-
- /* Check args */
- if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid index type specified")
- if(order <= H5_ITER_UNKNOWN || order >= H5_ITER_N)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
- if(!op)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
-
- /* Call internal object visitation routine */
- if((ret_value = H5O__visit(obj_id, ".", idx_type, order, op, op_data, H5O_INFO_ALL)) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "object visitation failed")
-
-done:
- FUNC_LEAVE_API(ret_value)
-} /* end H5Ovisit1() */
-
-
-/*-------------------------------------------------------------------------
- * Function: H5Ovisit_by_name1
- *
- * Purpose: Recursively visit an object and all the objects reachable
- * from it. If the starting object is a group, all the objects
- * linked to from that group will be visited. Links within
- * each group are visited according to the order within the
- * specified index (unless the specified index does not exist for
- * a particular group, then the "name" index is used).
- *
- * NOTE: Soft links and user-defined links are ignored during
- * this operation.
- *
- * NOTE: Each _object_ reachable from the initial group will only
- * be visited once. If multiple hard links point to the same
- * object, the first link to the object's path (according to the
- * iteration index and iteration order given) will be used to in
- * the callback about the object.
- *
- * Return: Success: The return value of the first operator that
- * returns non-zero, or zero if all members were
- * processed with no operator returning non-zero.
- *
- * Failure: Negative if something goes wrong within the
- * library, or the negative value returned by one
- * of the operators.
- *
- * Programmer: Quincey Koziol
- * November 24 2007
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5Ovisit_by_name1(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
- H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id)
-{
- herr_t ret_value; /* Return value */
-
- FUNC_ENTER_API(FAIL)
- H5TRACE7("e", "i*sIiIox*xi", loc_id, obj_name, idx_type, order, op, op_data,
- lapl_id);
-
- /* Check args */
- if(!obj_name || !*obj_name)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
- if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid index type specified")
- if(order <= H5_ITER_UNKNOWN || order >= H5_ITER_N)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
- if(!op)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
-
- /* Verify access property list and set up collective metadata if appropriate */
- if(H5CX_set_apl(&lapl_id, H5P_CLS_LACC, loc_id, FALSE) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access property list info")
-
- /* Call internal object visitation routine */
- if((ret_value = H5O__visit(loc_id, obj_name, idx_type, order, op, op_data, H5O_INFO_ALL)) < 0)
- HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "object visitation failed")
-
-done:
- FUNC_LEAVE_API(ret_value)
-} /* end H5Ovisit_by_name1() */
-
-/* Future function prototypes to be deprecated in next major version
- * see HDFFV-10552
-#endif (* H5_NO_DEPRECATED_SYMBOLS *)
- */
diff --git a/src/H5Opublic.h b/src/H5Opublic.h
index 3a34fd2..e779627 100644
--- a/src/H5Opublic.h
+++ b/src/H5Opublic.h
@@ -198,16 +198,16 @@ H5_DLL herr_t H5Oenable_mdc_flushes(hid_t object_id);
H5_DLL herr_t H5Oare_mdc_flushes_disabled(hid_t object_id, hbool_t *are_disabled);
/* Future function prototypes to be deprecated in next version */
-H5_DLL herr_t H5Oget_info1(hid_t loc_id, H5O_info_t *oinfo);
-H5_DLL herr_t H5Oget_info_by_name1(hid_t loc_id, const char *name, H5O_info_t *oinfo,
+H5_DLL herr_t H5Oget_info(hid_t loc_id, H5O_info_t *oinfo);
+H5_DLL herr_t H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo,
hid_t lapl_id);
-H5_DLL herr_t H5Oget_info_by_idx1(hid_t loc_id, const char *group_name,
+H5_DLL herr_t H5Oget_info_by_idx(hid_t loc_id, const char *group_name,
H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo,
hid_t lapl_id);
-H5_DLL herr_t H5Ovisit1(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
+H5_DLL herr_t H5Ovisit(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
H5O_iterate_t op, void *op_data);
-H5_DLL herr_t H5Ovisit_by_name1(hid_t loc_id, const char *obj_name,
+H5_DLL herr_t H5Ovisit_by_name(hid_t loc_id, const char *obj_name,
H5_index_t idx_type, H5_iter_order_t order, H5O_iterate_t op,
void *op_data, hid_t lapl_id);