summaryrefslogtreecommitdiffstats
path: root/src/H5VLprivate.h
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2021-01-27 23:48:31 (GMT)
committerGitHub <noreply@github.com>2021-01-27 23:48:31 (GMT)
commit98a27f1fe4f0cb96ce7fdeee2e95079ae19db5cd (patch)
tree2e0dd2c18e2b05870ea50835e8c7997935ac95a3 /src/H5VLprivate.h
parentdf1d5505c15e27eca9236952bbfef94a6dc8f20d (diff)
downloadhdf5-98a27f1fe4f0cb96ce7fdeee2e95079ae19db5cd.zip
hdf5-98a27f1fe4f0cb96ce7fdeee2e95079ae19db5cd.tar.gz
hdf5-98a27f1fe4f0cb96ce7fdeee2e95079ae19db5cd.tar.bz2
Merge PR #274 to 1.12 Branch (#283)
* Improve performance of multiple calls to H5Sget_select_elem_pointlist (#270) * Cache the pointer to the next point to process after the last call to H5S__get_select_elem_pointlist. This allows the normal process of iterating over the points in batches to be much more efficient, as the library does not need to traverse the entirety of the preceding points every time the funciton is re-entered. * Update RELEASE.txt for point selection iteration performance fix. * Fix problems with vlens and refs inside compound using H5VLget_file_type() (#274) * Fixed problems with vlens and refs inside compound using H5VLget_file_type() * Fix date in RELEASE.txt * Add assertions * Move some manipulation of H5VL_object_t struct fields into the H5VL package. * Add fix that was mistakenly left off merge commit. * Update src/H5Tprivate.h Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
Diffstat (limited to 'src/H5VLprivate.h')
-rw-r--r--src/H5VLprivate.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/H5VLprivate.h b/src/H5VLprivate.h
index 581a24d..e3ff040 100644
--- a/src/H5VLprivate.h
+++ b/src/H5VLprivate.h
@@ -37,6 +37,7 @@ typedef struct H5VL_t {
typedef struct H5VL_object_t {
void * data; /* Pointer to connector-managed data for this object */
H5VL_t *connector; /* Pointer to VOL connector struct */
+ size_t rc; /* Reference count */
} H5VL_object_t;
/* Internal structure to hold the connector ID & info for FAPLs */
@@ -86,7 +87,9 @@ H5_DLL void *H5VL_object_data(const H5VL_object_t *vol_obj);
H5_DLL void *H5VL_object_unwrap(const H5VL_object_t *vol_obj);
H5_DLL void *H5VL_object_verify(hid_t id, H5I_type_t obj_type);
H5_DLL H5VL_object_t *H5VL_vol_object(hid_t id);
+H5_DLL H5VL_object_t *H5VL_create_object(void *object, H5VL_t *vol_connector);
H5_DLL H5VL_object_t *H5VL_create_object_using_vol_id(H5I_type_t type, void *obj, hid_t connector_id);
+H5_DLL hsize_t H5VL_object_inc_rc(H5VL_object_t *obj);
H5_DLL herr_t H5VL_free_object(H5VL_object_t *obj);
H5_DLL herr_t H5VL_object_is_native(const H5VL_object_t *obj, hbool_t *is_native);
H5_DLL herr_t H5VL_file_is_same(const H5VL_object_t *vol_obj1, const H5VL_object_t *vol_obj2,