summaryrefslogtreecommitdiffstats
path: root/src/H5VLprivate.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/H5VLprivate.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/H5VLprivate.h')
-rw-r--r--src/H5VLprivate.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/H5VLprivate.h b/src/H5VLprivate.h
index 283c77a..ac77ee0 100644
--- a/src/H5VLprivate.h
+++ b/src/H5VLprivate.h
@@ -41,8 +41,8 @@ typedef struct H5VL_object_t {
/* Internal structure to hold the connector ID & info for FAPLs */
typedef struct H5VL_connector_prop_t {
- hid_t connector_id; /* VOL connector's ID */
- const void *connector_info; /* VOL connector info, for open callbacks */
+ hid_t connector_id; /* VOL connector's ID */
+ void *connector_info; /* VOL connector info, for open callbacks */
} H5VL_connector_prop_t;
/* Which kind of VOL connector field to use for searching */
@@ -92,11 +92,19 @@ H5_DLL herr_t H5VL_free_object(H5VL_object_t *obj);
H5_DLL herr_t H5VL_get_wrap_ctx(const H5VL_class_t *connector, void *obj,
void **wrap_ctx);
H5_DLL herr_t H5VL_free_wrap_ctx(const H5VL_class_t *connector, void *wrap_ctx);
-H5_DLL herr_t H5VL_set_vol_wrapper(void *obj, const H5VL_t *vol_connector);
+H5_DLL herr_t H5VL_set_vol_wrapper(void *obj, H5VL_t *vol_connector);
+H5_DLL herr_t H5VL_inc_vol_wrapper(void *vol_wrap_ctx);
+H5_DLL herr_t H5VL_dec_vol_wrapper(void *vol_wrap_ctx);
H5_DLL herr_t H5VL_reset_vol_wrapper(void);
H5_DLL void * H5VL_wrap_object(const H5VL_class_t *connector, void *wrap_ctx,
void *obj, H5I_type_t obj_type);
+/* Library state functions */
+H5_DLL herr_t H5VL_retrieve_lib_state(void **state);
+H5_DLL herr_t H5VL_restore_lib_state(const void *state);
+H5_DLL herr_t H5VL_reset_lib_state(void);
+H5_DLL herr_t H5VL_free_lib_state(void *state);
+
/* ID registration functions */
H5_DLL hid_t H5VL_register(H5I_type_t type, void *object, H5VL_t *vol_connector, hbool_t app_ref);
H5_DLL hid_t H5VL_wrap_register(H5I_type_t type, void *obj, hbool_t app_ref);