summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorDavid Young <dyoung@hdfgroup.org>2020-06-19 21:38:01 (GMT)
committerDavid Young <dyoung@hdfgroup.org>2020-06-19 21:38:01 (GMT)
commit2b1df1692588c12426f22a6daf2f697dbe71a0a6 (patch)
treea664b3743967e5da8760a06da327188d252afb84 /src/H5Oprivate.h
parentbd87af0408461fee290c559f45e251919f2c1263 (diff)
downloadhdf5-2b1df1692588c12426f22a6daf2f697dbe71a0a6.zip
hdf5-2b1df1692588c12426f22a6daf2f697dbe71a0a6.tar.gz
hdf5-2b1df1692588c12426f22a6daf2f697dbe71a0a6.tar.bz2
Make H5Drefresh() copy non-persistent properties---e.g., dataset access
property lists---from the closed dataset to the reopened dataset. Now my chunk-cache settings appear to survive H5Drefresh() calls.
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 0be6d89..9a1c1ed 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -275,6 +275,14 @@ typedef struct H5O_shared_t {
} u;
} H5O_shared_t;
+/* Storage for non-persistent (i.e., not stored in the HDF5 file) information
+ * that has to be preserved when an object is closed & reopened by
+ * H5O_refresh_metadata().
+ */
+typedef union _H5O_refresh_state {
+ hid_t dapl_id; // dataset refresh: access plist
+ H5O_shared_t shared_ohdr_info; // datatype refresh
+} H5O_refresh_state_t;
/*
* Link Info Message.
@@ -972,7 +980,8 @@ H5_DLL herr_t H5O_msg_get_flags(const H5O_loc_t *loc, unsigned type_id, uint8_t
H5_DLL herr_t H5O_flush(H5O_loc_t *oloc, hid_t obj_id);
H5_DLL herr_t H5O_flush_common(H5O_loc_t *oloc, hid_t obj_id);
H5_DLL herr_t H5O_refresh_metadata(hid_t oid, H5O_loc_t oloc);
-H5_DLL herr_t H5O_refresh_metadata_reopen(hid_t oid, H5G_loc_t *obj_loc, H5VL_t *vol_driver, hbool_t start_swmr);
+H5_DLL herr_t H5O_refresh_metadata_reopen(hid_t, H5G_loc_t *,
+ const H5O_refresh_state_t *, H5VL_t *, hbool_t);
/* Cache corking functions */
H5_DLL herr_t H5O_disable_mdc_flushes(H5O_loc_t *oloc);