summaryrefslogtreecommitdiffstats
path: root/src/H5CXprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@koziol.gov>2019-03-11 22:29:14 (GMT)
committerQuincey Koziol <koziol@koziol.gov>2019-03-11 22:29:14 (GMT)
commit86598573641dfa27278c9e29df0fa79bd7d8e07f (patch)
tree449fbf063728fa602c311ec44ece4a4053bb24c8 /src/H5CXprivate.h
parent679b49d43d744f0cc34054944e827326f17a6f3d (diff)
downloadhdf5-86598573641dfa27278c9e29df0fa79bd7d8e07f.zip
hdf5-86598573641dfa27278c9e29df0fa79bd7d8e07f.tar.gz
hdf5-86598573641dfa27278c9e29df0fa79bd7d8e07f.tar.bz2
Add API routines to retrieve, restore, reset, and free library state.
(Primarily for use in the async VOL connector, which has to schedule API operations for future execution and then restore the state of the library when the operation actually executes)
Diffstat (limited to 'src/H5CXprivate.h')
-rw-r--r--src/H5CXprivate.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/H5CXprivate.h b/src/H5CXprivate.h
index 51ee96b..80f1ac4 100644
--- a/src/H5CXprivate.h
+++ b/src/H5CXprivate.h
@@ -39,6 +39,19 @@
/* Library Private Typedefs */
/****************************/
+/* API context state */
+typedef struct H5CX_state_t {
+ hid_t dxpl_id; /* DXPL for operation */
+ hid_t lapl_id; /* LAPL for operation */
+ void *vol_wrap_ctx; /* VOL connector's "wrap context" for creating IDs */
+ H5VL_connector_prop_t vol_connector_prop; /* VOL connector property */
+
+#ifdef H5_HAVE_PARALLEL
+ /* Internal: Parallel I/O settings */
+ hbool_t coll_metadata_read; /* Whether to use collective I/O for metadata read */
+#endif /* H5_HAVE_PARALLEL */
+} H5CX_state_t;
+
/*****************************/
/* Library-private Variables */
@@ -57,6 +70,11 @@ H5_DLL herr_t H5CX_pop(void);
H5_DLL void H5CX_push_special(void);
H5_DLL hbool_t H5CX_is_def_dxpl(void);
+/* API context state routines */
+H5_DLL herr_t H5CX_retrieve_state(H5CX_state_t **api_state);
+H5_DLL herr_t H5CX_restore_state(const H5CX_state_t *api_state);
+H5_DLL herr_t H5CX_free_state(H5CX_state_t *api_state);
+
/* "Setter" routines for API context info */
H5_DLL void H5CX_set_dxpl(hid_t dxpl_id);
H5_DLL void H5CX_set_lapl(hid_t lapl_id);