summaryrefslogtreecommitdiffstats
path: root/src/H5VL.c
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2021-11-05 12:33:02 (GMT)
committerGitHub <noreply@github.com>2021-11-05 12:33:02 (GMT)
commit93ac9b0aeb9261165eb7d7fe685188515ba6c12f (patch)
tree427fcd00538881e9e4ef3c3db7284f3050900c08 /src/H5VL.c
parent55ee1fd6558e469e84b4cfb74c8abedc2f231b55 (diff)
downloadhdf5-93ac9b0aeb9261165eb7d7fe685188515ba6c12f.zip
hdf5-93ac9b0aeb9261165eb7d7fe685188515ba6c12f.tar.gz
hdf5-93ac9b0aeb9261165eb7d7fe685188515ba6c12f.tar.bz2
New references for Dimension Scale APIs (#1139)
* Enable usage of new-style references with dimension scale APIs * Add API to check if an object ID represents a native connector object * Modified code to use new function H5DSwith_new_ref to determine if new references should be used with Dimension Scales. The new function return TRUE if non-native connector is used or if H5_DIMENSION_SCALES_WITH_NEW_REF varible is define at configure time (--enable-dimension-scales-with-new-ref). Tested on jelly. ToDo: generate testing file on BE system and enable the test; add flag to CMake; test netCDF-4 with the new references. * Adding new test files generated on BE system (hedgehog) created by 32 and 64-bit library. test_ds chokes on test_ds_le_new_ref.h5 on BE system; test passes for test_ds_be_new_ref-32bit.h5 for the 32-bit library and fails for the 64-bit library, and vice versa. I am checking the files for further investigation; but current implementation of the new references is not portable between LE and BE systems, and 32 and 64-bit systems. * Minor fixes for testing issues * Update test_ds.c Enabled broken test; tests pass now. * Update RELEASE.txt Documented new option to use new references with the HDF5 dimension scales APIs (H5DS*). * Update MANIFEST for new 32-bit new-style references test file for H5DS APIs * Update 'dimension scales w/ new-style refs' feature based on review Co-authored-by: Elena <epourmal@hdfgroup.org>
Diffstat (limited to 'src/H5VL.c')
-rw-r--r--src/H5VL.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/H5VL.c b/src/H5VL.c
index 2cece6d..c92d01d 100644
--- a/src/H5VL.c
+++ b/src/H5VL.c
@@ -655,6 +655,37 @@ done:
FUNC_LEAVE_API(ret_value)
} /* H5VLobject() */
+/*---------------------------------------------------------------------------
+ * Function: H5VLobject_is_native
+ *
+ * Purpose: Determines whether an object ID represents a native VOL
+ * connector object.
+ *
+ * Return: Success: TRUE/FALSE
+ * Failure: FAIL
+ *
+ *---------------------------------------------------------------------------
+ */
+hbool_t
+H5VLobject_is_native(hid_t obj_id)
+{
+ H5VL_object_t *vol_obj = NULL;
+ hbool_t ret_value = FALSE;
+
+ FUNC_ENTER_API(FALSE)
+ H5TRACE1("b", "i", obj_id);
+
+ /* Get the location object for the ID */
+ if (NULL == (vol_obj = H5VL_vol_object(obj_id)))
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid object identifier")
+
+ if (H5VL_object_is_native(vol_obj, &ret_value) < 0)
+ HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "can't determine if object is a native connector object")
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* H5VLobject_is_native() */
+
/*-------------------------------------------------------------------------
* Function: H5VLget_file_type
*