HDF5  1.12.0
H5VLprivate.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * All rights reserved. *
4  * *
5  * This file is part of HDF5. The full HDF5 copyright notice, including *
6  * terms governing use, modification, and redistribution, is contained in *
7  * the COPYING file, which can be found at the root of the source code *
8  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
9  * If you do not have access to either file, you may request a copy from *
10  * help@hdfgroup.org. *
11  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
12 
13 #ifndef _H5VLprivate_H
14 #define _H5VLprivate_H
15 
16 /* Include package's public header */
17 #include "H5VLpublic.h" /* Generic Functions */
18 
19 /* Private headers needed by this file */
20 
21 
22 /**************************/
23 /* Library Private Macros */
24 /**************************/
25 
26 
27 /****************************/
28 /* Library Private Typedefs */
29 /****************************/
30 
31 /* Internal struct to track VOL connector information for objects */
32 typedef struct H5VL_t {
33  const H5VL_class_t *cls; /* Pointer to connector class struct */
34  int64_t nrefs; /* Number of references by objects using this struct */
35  hid_t id; /* Identifier for the VOL connector */
37 
38 /* Internal vol object structure returned to the API */
39 typedef struct H5VL_object_t {
40  void *data; /* Pointer to connector-managed data for this object */
41  H5VL_t *connector; /* Pointer to VOL connector struct */
43 
44 /* Internal structure to hold the connector ID & info for FAPLs */
45 typedef struct H5VL_connector_prop_t {
46  hid_t connector_id; /* VOL connector's ID */
47  void *connector_info; /* VOL connector info, for open callbacks */
49 
50 /* Which kind of VOL connector field to use for searching */
52  H5VL_GET_CONNECTOR_BY_NAME, /* Name field is set */
53  H5VL_GET_CONNECTOR_BY_VALUE /* Value field is set */
55 
56 
57 /*****************************/
58 /* Library Private Variables */
59 /*****************************/
60 
61 
62 /******************************/
63 /* Library Private Prototypes */
64 /******************************/
65 
66 /* Utility functions */
69 H5_DLL herr_t H5VL_cmp_connector_cls(int *cmp_value, const H5VL_class_t *cls1, const H5VL_class_t *cls2);
72 
73 /* Functions that deal with VOL connectors */
74 H5_DLL hid_t H5VL_register_connector(const void *cls, hbool_t app_ref, hid_t vipl_id);
75 
76 /* NOTE: The object and ID functions below deal in VOL objects (i.e.;
77  * H5VL_object_t). Similar non-VOL calls exist in H5Iprivate.h. Use
78  * the H5VL calls with objects that go through the VOL, such as
79  * datasets and groups, and the H5I calls with objects
80  * that do not, such as property lists and dataspaces. Datatypes
81  * are can be either named, where they will use the VOL, or not,
82  * and thus require special treatment. See the datatype docs for
83  * how to handle this.
84  */
85 
86 /* Functions that manipulate VOL objects */
87 H5_DLL void *H5VL_object(hid_t id);
88 H5_DLL void *H5VL_object_data(const H5VL_object_t *vol_obj);
89 H5_DLL void *H5VL_object_unwrap(const H5VL_object_t *vol_obj);
90 H5_DLL void *H5VL_object_verify(hid_t id, H5I_type_t obj_type);
95 H5_DLL herr_t H5VL_file_is_same(const H5VL_object_t *vol_obj1, const H5VL_object_t *vol_obj2,
96  hbool_t *same_file);
97 
98 /* Functions that wrap / unwrap VOL objects */
99 H5_DLL herr_t H5VL_get_wrap_ctx(const H5VL_class_t *connector, void *obj,
100  void **wrap_ctx);
101 H5_DLL void * H5VL_wrap_object(const H5VL_class_t *connector, void *wrap_ctx,
102  void *obj, H5I_type_t obj_type);
103 H5_DLL void * H5VL_unwrap_object(const H5VL_class_t *connector, void *obj);
104 H5_DLL herr_t H5VL_free_wrap_ctx(const H5VL_class_t *connector, void *wrap_ctx);
106 H5_DLL herr_t H5VL_inc_vol_wrapper(void *vol_wrap_ctx);
107 H5_DLL herr_t H5VL_dec_vol_wrapper(void *vol_wrap_ctx);
109 
110 /* Library state functions */
112 H5_DLL herr_t H5VL_restore_lib_state(const void *state);
114 H5_DLL herr_t H5VL_free_lib_state(void *state);
115 
116 /* ID registration functions */
117 H5_DLL hid_t H5VL_register(H5I_type_t type, void *object, H5VL_t *vol_connector, hbool_t app_ref);
118 H5_DLL hid_t H5VL_wrap_register(H5I_type_t type, void *obj, hbool_t app_ref);
119 H5_DLL hid_t H5VL_register_using_vol_id(H5I_type_t type, void *obj, hid_t connector_id, hbool_t app_ref);
120 H5_DLL herr_t H5VL_register_using_existing_id(H5I_type_t type, void *object, H5VL_t *vol_connector, hbool_t app_ref, hid_t existing_id);
121 
122 /**********************************
123  * VOL connector callback wrappers
124  *********************************/
125 
126 /* Connector "management" functions */
127 H5_DLL int H5VL_copy_connector_info(const H5VL_class_t *connector, void **dst_info,
128  const void *src_info);
129 H5_DLL herr_t H5VL_cmp_connector_info(const H5VL_class_t *connector, int *cmp_value,
130  const void *info1, const void *info2);
131 H5_DLL herr_t H5VL_free_connector_info(hid_t connector_id, void *info);
132 
133 /* Attribute functions */
134 H5_DLL void *H5VL_attr_create(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *attr_name, hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t aapl_id, hid_t dxpl_id, void **req);
135 H5_DLL void *H5VL_attr_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t aapl_id, hid_t dxpl_id, void **req);
136 H5_DLL herr_t H5VL_attr_read(const H5VL_object_t *vol_obj, hid_t dtype_id, void *buf, hid_t dxpl_id, void **req);
137 H5_DLL herr_t H5VL_attr_write(const H5VL_object_t *vol_obj, hid_t dtype_id, const void *buf, hid_t dxpl_id, void **req);
138 H5_DLL herr_t H5VL_attr_get(const H5VL_object_t *vol_obj, H5VL_attr_get_t get_type, hid_t dxpl_id, void **req, ...);
139 H5_DLL herr_t H5VL_attr_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_attr_specific_t specific_type, hid_t dxpl_id, void **req, ...);
140 H5_DLL herr_t H5VL_attr_optional(const H5VL_object_t *vol_obj, H5VL_attr_optional_t opt_type, hid_t dxpl_id, void **req, ...);
141 H5_DLL herr_t H5VL_attr_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req);
142 
143 /* Dataset functions */
144 H5_DLL void *H5VL_dataset_create(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t lcpl_id, hid_t type_id, hid_t space_id, hid_t dcpl_id, hid_t dapl_id, hid_t dxpl_id, void **req);
145 H5_DLL void *H5VL_dataset_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t dapl_id, hid_t dxpl_id, void **req);
146 H5_DLL herr_t H5VL_dataset_read(const H5VL_object_t *vol_obj, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, void *buf, void **req);
147 H5_DLL herr_t H5VL_dataset_write(const H5VL_object_t *vol_obj, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, const void *buf, void **req);
148 H5_DLL herr_t H5VL_dataset_get(const H5VL_object_t *vol_obj, H5VL_dataset_get_t get_type, hid_t dxpl_id, void **req, ...);
149 H5_DLL herr_t H5VL_dataset_specific(const H5VL_object_t *cls, H5VL_dataset_specific_t specific_type, hid_t dxpl_id, void **req, ...);
150 H5_DLL herr_t H5VL_dataset_optional(const H5VL_object_t *vol_obj, H5VL_dataset_optional_t opt_type, hid_t dxpl_id, void **req, ...);
151 H5_DLL herr_t H5VL_dataset_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req);
152 
153 /* Datatype functions */
154 H5_DLL void *H5VL_datatype_commit(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t type_id, hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id, hid_t dxpl_id, void **req);
155 H5_DLL void *H5VL_datatype_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t tapl_id, hid_t dxpl_id, void **req);
156 H5_DLL herr_t H5VL_datatype_get(const H5VL_object_t *vol_obj, H5VL_datatype_get_t get_type, hid_t dxpl_id, void **req, ...);
157 H5_DLL herr_t H5VL_datatype_specific(const H5VL_object_t *vol_obj, H5VL_datatype_specific_t specific_type, hid_t dxpl_id, void **req, ...);
158 H5_DLL herr_t H5VL_datatype_optional(const H5VL_object_t *vol_obj, H5VL_datatype_optional_t opt_type, hid_t dxpl_id, void **req, ...);
159 H5_DLL herr_t H5VL_datatype_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req);
160 
161 /* File functions */
162 H5_DLL void *H5VL_file_create(const H5VL_connector_prop_t *connector_prop, const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id, hid_t dxpl_id, void **req);
163 H5_DLL void *H5VL_file_open(const H5VL_connector_prop_t *connector_prop, const char *name, unsigned flags, hid_t fapl_id, hid_t dxpl_id, void **req);
164 H5_DLL herr_t H5VL_file_get(const H5VL_object_t *vol_obj, H5VL_file_get_t get_type, hid_t dxpl_id, void **req, ...);
165 H5_DLL herr_t H5VL_file_specific(const H5VL_object_t *vol_obj, H5VL_file_specific_t specific_type, hid_t dxpl_id, void **req, ...);
166 H5_DLL herr_t H5VL_file_optional(const H5VL_object_t *vol_obj, H5VL_file_optional_t opt_type, hid_t dxpl_id, void **req, ...);
167 H5_DLL herr_t H5VL_file_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req);
168 
169 /* Group functions */
170 H5_DLL void *H5VL_group_create(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t lcpl_id, hid_t gcpl_id, hid_t gapl_id, hid_t dxpl_id, void **req);
171 H5_DLL void *H5VL_group_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t gapl_id, hid_t dxpl_id, void **req);
172 H5_DLL herr_t H5VL_group_get(const H5VL_object_t *vol_obj, H5VL_group_get_t get_type, hid_t dxpl_id, void **req, ...);
173 H5_DLL herr_t H5VL_group_specific(const H5VL_object_t *vol_obj, H5VL_group_specific_t specific_type, hid_t dxpl_id, void **req, ...);
174 H5_DLL herr_t H5VL_group_optional(const H5VL_object_t *vol_obj, H5VL_group_optional_t opt_type, hid_t dxpl_id, void **req, ...);
175 H5_DLL herr_t H5VL_group_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req);
176 
177 /* Link functions */
178 H5_DLL herr_t H5VL_link_create(H5VL_link_create_type_t create_type, const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req, ...);
179 H5_DLL herr_t H5VL_link_copy(const H5VL_object_t *src_vol_obj, const H5VL_loc_params_t *loc_params1, const H5VL_object_t *dst_vol_obj, const H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req);
180 H5_DLL herr_t H5VL_link_move(const H5VL_object_t *src_vol_obj, const H5VL_loc_params_t *loc_params1, const H5VL_object_t *dst_vol_obj, const H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req);
181 H5_DLL herr_t H5VL_link_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_link_get_t get_type, hid_t dxpl_id, void **req, ...);
182 H5_DLL herr_t H5VL_link_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_link_specific_t specific_type, hid_t dxpl_id, void **req, ...);
183 H5_DLL herr_t H5VL_link_optional(const H5VL_object_t *vol_obj, H5VL_link_optional_t opt_type, hid_t dxpl_id, void **req, ...);
184 
185 /* Object functions */
186 H5_DLL void *H5VL_object_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *params, H5I_type_t *opened_type, hid_t dxpl_id, void **req);
187 H5_DLL herr_t H5VL_object_copy(const H5VL_object_t *src_obj, const H5VL_loc_params_t *src_loc_params, const char *src_name, const H5VL_object_t *dst_obj, const H5VL_loc_params_t *dst_loc_params, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id, void **req);
188 H5_DLL herr_t H5VL_object_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_object_get_t get_type, hid_t dxpl_id, void **req, ...);
189 H5_DLL herr_t H5VL_object_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_object_specific_t specific_type, hid_t dxpl_id, void **req, ...);
190 H5_DLL herr_t H5VL_object_optional(const H5VL_object_t *vol_obj, H5VL_object_optional_t opt_type, hid_t dxpl_id, void **req, ...);
191 
192 /* Connector/container introspection functions */
194  const H5VL_class_t **conn_cls);
196  int opt_type, hbool_t *supported);
197 
198 /* Asynchronous functions */
199 H5_DLL herr_t H5VL_request_wait(const H5VL_object_t *vol_obj, uint64_t timeout, H5ES_status_t *status);
202 H5_DLL herr_t H5VL_request_specific(const H5VL_object_t *vol_obj, H5VL_request_specific_t specific_type, ...);
205 
206 /* Blob functions */
207 H5_DLL herr_t H5VL_blob_put(const H5VL_object_t *vol_obj, const void *buf, size_t size, void *blob_id, void *ctx);
208 H5_DLL herr_t H5VL_blob_get(const H5VL_object_t *vol_obj, const void *blob_id, void *buf, size_t size, void *ctx);
209 H5_DLL herr_t H5VL_blob_specific(const H5VL_object_t *vol_obj, void *blob_id, H5VL_blob_specific_t specific_type, ...);
210 H5_DLL herr_t H5VL_blob_optional(const H5VL_object_t *vol_obj, void *blob_id, H5VL_blob_optional_t opt_type, ...);
211 
212 /* Token functions */
213 H5_DLL herr_t H5VL_token_cmp(const H5VL_object_t *vol_obj, const H5O_token_t *token1,
214  const H5O_token_t *token2, int *cmp_value);
215 H5_DLL herr_t H5VL_token_to_str(const H5VL_object_t *vol_obj, H5I_type_t obj_type,
216  const H5O_token_t *token, char **token_str);
217 H5_DLL herr_t H5VL_token_from_str(const H5VL_object_t *vol_obj, H5I_type_t obj_type,
218  const char *token_str, H5O_token_t *token);
219 
220 /* Generic functions */
221 H5_DLL herr_t H5VL_optional(const H5VL_object_t *vol_obj, int op_type, hid_t dxpl_id, void **req, ...);
222 
223 #endif /* _H5VLprivate_H */
224 
H5VL_get_conn_lvl_t
H5VL_get_conn_lvl_t
Definition: H5VLconnector.h:421
H5VL_loc_params_t
Definition: H5VLconnector.h:270
H5VL_t::nrefs
int64_t nrefs
Definition: H5VLprivate.h:34
H5VL_object
H5_DLL void * H5VL_object(hid_t id)
Definition: H5VLint.c:1840
H5VL_group_specific_t
H5VL_group_specific_t
Definition: H5VLconnector.h:159
H5VL_register_using_existing_id
H5_DLL herr_t H5VL_register_using_existing_id(H5I_type_t type, void *object, H5VL_t *vol_connector, hbool_t app_ref, hid_t existing_id)
Definition: H5VLint.c:756
H5VL_object_verify
H5_DLL void * H5VL_object_verify(hid_t id, H5I_type_t obj_type)
Definition: H5VLint.c:1867
H5VL_connector_prop_t
Definition: H5VLprivate.h:45
H5VL_group_optional
H5_DLL herr_t H5VL_group_optional(const H5VL_object_t *vol_obj, H5VL_group_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:4499
H5VL_conn_free
H5_DLL herr_t H5VL_conn_free(const H5VL_connector_prop_t *info)
Definition: H5VLint.c:674
H5VL_free_wrap_ctx
H5_DLL herr_t H5VL_free_wrap_ctx(const H5VL_class_t *connector, void *wrap_ctx)
Definition: H5VLcallback.c:911
H5VL_group_optional_t
int H5VL_group_optional_t
Definition: H5VLconnector.h:165
size
iblock size
Definition: H5EAcache.c:787
H5VL_register_using_vol_id
H5_DLL hid_t H5VL_register_using_vol_id(H5I_type_t type, void *obj, hid_t connector_id, hbool_t app_ref)
Definition: H5VLint.c:794
H5VL_retrieve_lib_state
H5_DLL herr_t H5VL_retrieve_lib_state(void **state)
Definition: H5VLint.c:1983
H5VL_link_move
H5_DLL herr_t H5VL_link_move(const H5VL_object_t *src_vol_obj, const H5VL_loc_params_t *loc_params1, const H5VL_object_t *dst_vol_obj, const H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:4959
H5VL_wrap_object
H5_DLL void * H5VL_wrap_object(const H5VL_class_t *connector, void *wrap_ctx, void *obj, H5I_type_t obj_type)
Definition: H5VLcallback.c:772
H5VL_t::cls
const H5VL_class_t * cls
Definition: H5VLprivate.h:33
H5VL_attr_create
H5_DLL void * H5VL_attr_create(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *attr_name, hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t aapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1007
H5VL_link_specific_t
H5VL_link_specific_t
Definition: H5VLconnector.h:182
H5VL_datatype_commit
H5_DLL void * H5VL_datatype_commit(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t type_id, hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:2722
H5VL_object_copy
H5_DLL herr_t H5VL_object_copy(const H5VL_object_t *src_obj, const H5VL_loc_params_t *src_loc_params, const char *src_name, const H5VL_object_t *dst_obj, const H5VL_loc_params_t *dst_loc_params, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:5509
H5VL_cmp_connector_cls
H5_DLL herr_t H5VL_cmp_connector_cls(int *cmp_value, const H5VL_class_t *cls1, const H5VL_class_t *cls2)
Definition: H5VLint.c:1900
H5VL_create_object_using_vol_id
H5_DLL H5VL_object_t * H5VL_create_object_using_vol_id(H5I_type_t type, void *obj, hid_t connector_id)
Definition: H5VLint.c:849
H5VL_object_t
Definition: H5VLprivate.h:39
H5VL_connector_prop_t::connector_id
hid_t connector_id
Definition: H5VLprivate.h:46
H5VL_blob_optional
H5_DLL herr_t H5VL_blob_optional(const H5VL_object_t *vol_obj, void *blob_id, H5VL_blob_optional_t opt_type,...)
Definition: H5VLcallback.c:7216
H5VL_group_get
H5_DLL herr_t H5VL_group_get(const H5VL_object_t *vol_obj, H5VL_group_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:4275
H5I_type_t
H5I_type_t
Definition: H5Ipublic.h:33
H5VL_blob_specific
H5_DLL herr_t H5VL_blob_specific(const H5VL_object_t *vol_obj, void *blob_id, H5VL_blob_specific_t specific_type,...)
Definition: H5VLcallback.c:7095
H5VL_t
Definition: H5VLprivate.h:32
H5VL_free_connector_info
H5_DLL herr_t H5VL_free_connector_info(hid_t connector_id, void *info)
Definition: H5VLcallback.c:528
H5VL_attr_open
H5_DLL void * H5VL_attr_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t aapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1113
H5VL_introspect_opt_query
H5_DLL herr_t H5VL_introspect_opt_query(const H5VL_object_t *vol_obj, H5VL_subclass_t subcls, int opt_type, hbool_t *supported)
Definition: H5VLcallback.c:6081
H5VL_object_open
H5_DLL void * H5VL_object_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *params, H5I_type_t *opened_type, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:5403
H5VL_attr_optional
H5_DLL herr_t H5VL_attr_optional(const H5VL_object_t *vol_obj, H5VL_attr_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:1647
H5VL_file_optional_t
int H5VL_file_optional_t
Definition: H5VLconnector.h:150
H5VL_connector_prop_t::connector_info
void * connector_info
Definition: H5VLprivate.h:47
H5VL_request_free
H5_DLL herr_t H5VL_request_free(const H5VL_object_t *vol_obj)
Definition: H5VLcallback.c:6763
H5VL_object_t::connector
H5VL_t * connector
Definition: H5VLprivate.h:41
H5VL_conn_copy
H5_DLL herr_t H5VL_conn_copy(H5VL_connector_prop_t *value)
Definition: H5VLint.c:626
H5VL_token_to_str
H5_DLL herr_t H5VL_token_to_str(const H5VL_object_t *vol_obj, H5I_type_t obj_type, const H5O_token_t *token, char **token_str)
Definition: H5VLcallback.c:7475
H5VL_free_lib_state
H5_DLL herr_t H5VL_free_lib_state(void *state)
Definition: H5VLint.c:2091
H5VL_subclass_t
H5VL_subclass_t
Definition: H5VLconnector.h:53
H5VL_dataset_optional
H5_DLL herr_t H5VL_dataset_optional(const H5VL_object_t *vol_obj, H5VL_dataset_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:2499
H5VL_token_from_str
H5_DLL herr_t H5VL_token_from_str(const H5VL_object_t *vol_obj, H5I_type_t obj_type, const char *token_str, H5O_token_t *token)
Definition: H5VLcallback.c:7595
H5VL_copy_connector_info
H5_DLL int H5VL_copy_connector_info(const H5VL_class_t *connector, void **dst_info, const void *src_info)
Definition: H5VLcallback.c:356
H5VL_group_close
H5_DLL herr_t H5VL_group_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:4614
H5ES_status_t
H5ES_status_t
Definition: H5ESpublic.h:28
H5VL_object_specific_t
H5VL_object_specific_t
Definition: H5VLconnector.h:201
H5VL_request_specific_t
H5VL_request_specific_t
Definition: H5VLconnector.h:214
int64_t
int64_t
Definition: H5overflow.txt:35
H5VL_file_open
H5_DLL void * H5VL_file_open(const H5VL_connector_prop_t *connector_prop, const char *name, unsigned flags, hid_t fapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:3486
H5VL_cmp_connector_info
H5_DLL herr_t H5VL_cmp_connector_info(const H5VL_class_t *connector, int *cmp_value, const void *info1, const void *info2)
Definition: H5VLcallback.c:437
H5VL_link_get
H5_DLL herr_t H5VL_link_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_link_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:5067
H5VL_datatype_open
H5_DLL void * H5VL_datatype_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t tapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:2828
H5VL_blob_put
H5_DLL herr_t H5VL_blob_put(const H5VL_object_t *vol_obj, const void *buf, size_t size, void *blob_id, void *ctx)
Definition: H5VLcallback.c:6872
H5VLpublic.h
H5VL_object_optional_t
int H5VL_object_optional_t
Definition: H5VLconnector.h:211
H5VL_get_wrap_ctx
H5_DLL herr_t H5VL_get_wrap_ctx(const H5VL_class_t *connector, void *obj, void **wrap_ctx)
Definition: H5VLcallback.c:701
H5VL_file_get
H5_DLL herr_t H5VL_file_get(const H5VL_object_t *vol_obj, H5VL_file_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:3590
H5VL_datatype_optional_t
int H5VL_datatype_optional_t
Definition: H5VLconnector.h:123
H5VL_introspect_get_conn_cls
H5_DLL herr_t H5VL_introspect_get_conn_cls(const H5VL_object_t *vol_obj, H5VL_get_conn_lvl_t lvl, const H5VL_class_t **conn_cls)
Definition: H5VLcallback.c:5971
H5VL_file_optional
H5_DLL herr_t H5VL_file_optional(const H5VL_object_t *vol_obj, H5VL_file_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:3848
H5VL_dataset_specific
H5_DLL herr_t H5VL_dataset_specific(const H5VL_object_t *cls, H5VL_dataset_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:2387
H5VL_register_connector
H5_DLL hid_t H5VL_register_connector(const void *cls, hbool_t app_ref, hid_t vipl_id)
Definition: H5VLint.c:1118
H5VL_datatype_get
H5_DLL herr_t H5VL_datatype_get(const H5VL_object_t *vol_obj, H5VL_datatype_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:2932
H5VL_file_create
H5_DLL void * H5VL_file_create(const H5VL_connector_prop_t *connector_prop, const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:3379
H5VL_unwrap_object
H5_DLL void * H5VL_unwrap_object(const H5VL_class_t *connector, void *obj)
Definition: H5VLcallback.c:842
H5VL_object_data
H5_DLL void * H5VL_object_data(const H5VL_object_t *vol_obj)
Definition: H5VLint.c:1717
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5VL_object_t
struct H5VL_object_t H5VL_object_t
H5VL_request_notify
H5_DLL herr_t H5VL_request_notify(const H5VL_object_t *vol_obj, H5VL_request_notify_t cb, void *ctx)
Definition: H5VLcallback.c:6310
H5VL_object_t::data
void * data
Definition: H5VLprivate.h:40
H5VL_request_specific
H5_DLL herr_t H5VL_request_specific(const H5VL_object_t *vol_obj, H5VL_request_specific_t specific_type,...)
Definition: H5VLcallback.c:6532
H5VL_reset_lib_state
H5_DLL herr_t H5VL_reset_lib_state(void)
Definition: H5VLint.c:2060
H5VL_attr_specific
H5_DLL herr_t H5VL_attr_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_attr_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:1535
H5VL_init_phase2
H5_DLL herr_t H5VL_init_phase2(void)
Definition: H5VLint.c:191
H5VL_attr_get
H5_DLL herr_t H5VL_attr_get(const H5VL_object_t *vol_obj, H5VL_attr_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:1422
H5VL_link_get_t
H5VL_link_get_t
Definition: H5VLconnector.h:175
H5VL_dec_vol_wrapper
H5_DLL herr_t H5VL_dec_vol_wrapper(void *vol_wrap_ctx)
Definition: H5VLint.c:2271
H5VL_dataset_write
H5_DLL herr_t H5VL_dataset_write(const H5VL_object_t *vol_obj, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, const void *buf, void **req)
Definition: H5VLcallback.c:2170
H5VL_request_notify_t
herr_t(* H5VL_request_notify_t)(void *ctx, H5ES_status_t status)
Definition: H5VLconnector.h:418
H5VL_file_is_same
H5_DLL herr_t H5VL_file_is_same(const H5VL_object_t *vol_obj1, const H5VL_object_t *vol_obj2, hbool_t *same_file)
Definition: H5VLint.c:1054
H5VL_link_optional_t
int H5VL_link_optional_t
Definition: H5VLconnector.h:189
H5VL_file_specific
H5_DLL herr_t H5VL_file_specific(const H5VL_object_t *vol_obj, H5VL_file_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:3702
H5VL_attr_close
H5_DLL herr_t H5VL_attr_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1758
H5VL_GET_CONNECTOR_BY_VALUE
@ H5VL_GET_CONNECTOR_BY_VALUE
Definition: H5VLprivate.h:53
H5VL_link_specific
H5_DLL herr_t H5VL_link_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_link_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:5179
H5VL_connector_prop_t
struct H5VL_connector_prop_t H5VL_connector_prop_t
uint64_t
uint64_t
Definition: H5overflow.txt:39
H5VL_datatype_specific_t
H5VL_datatype_specific_t
Definition: H5VLconnector.h:117
H5VL_attr_read
H5_DLL herr_t H5VL_attr_read(const H5VL_object_t *vol_obj, hid_t dtype_id, void *buf, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1217
H5VL_link_optional
H5_DLL herr_t H5VL_link_optional(const H5VL_object_t *vol_obj, H5VL_link_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:5291
H5VL_dataset_specific_t
H5VL_dataset_specific_t
Definition: H5VLconnector.h:101
H5VL_dataset_create
H5_DLL void * H5VL_dataset_create(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t lcpl_id, hid_t type_id, hid_t space_id, hid_t dcpl_id, hid_t dapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1853
H5VL_group_specific
H5_DLL herr_t H5VL_group_specific(const H5VL_object_t *vol_obj, H5VL_group_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:4387
H5VL_request_optional
H5_DLL herr_t H5VL_request_optional(const H5VL_object_t *vol_obj, H5VL_request_optional_t opt_type,...)
Definition: H5VLcallback.c:6648
H5VL_dataset_get
H5_DLL herr_t H5VL_dataset_get(const H5VL_object_t *vol_obj, H5VL_dataset_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:2275
H5VL_object_is_native
H5_DLL herr_t H5VL_object_is_native(const H5VL_object_t *obj, hbool_t *is_native)
Definition: H5VLint.c:1007
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5VL_object_specific
H5_DLL herr_t H5VL_object_specific(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_object_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:5735
H5VL_token_cmp
H5_DLL herr_t H5VL_token_cmp(const H5VL_object_t *vol_obj, const H5O_token_t *token1, const H5O_token_t *token2, int *cmp_value)
Definition: H5VLcallback.c:7353
H5VL_datatype_get_t
H5VL_datatype_get_t
Definition: H5VLconnector.h:111
H5VL_t
struct H5VL_t H5VL_t
H5VL_register
H5_DLL hid_t H5VL_register(H5I_type_t type, void *object, H5VL_t *vol_connector, hbool_t app_ref)
Definition: H5VLint.c:712
H5VL_wrap_register
H5_DLL hid_t H5VL_wrap_register(H5I_type_t type, void *obj, hbool_t app_ref)
Definition: H5VLint.c:2355
H5VL_group_open
H5_DLL void * H5VL_group_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t gapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:4171
H5VL_class_t
Definition: H5VLconnector.h:463
H5VL_attr_write
H5_DLL herr_t H5VL_attr_write(const H5VL_object_t *vol_obj, hid_t dtype_id, const void *buf, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1319
H5VL_vol_object
H5_DLL H5VL_object_t * H5VL_vol_object(hid_t id)
Definition: H5VLint.c:1675
H5VL_object_get
H5_DLL herr_t H5VL_object_get(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, H5VL_object_get_t get_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:5622
H5VL_blob_optional_t
int H5VL_blob_optional_t
Definition: H5VLconnector.h:233
H5VL_set_vol_wrapper
H5_DLL herr_t H5VL_set_vol_wrapper(const H5VL_object_t *vol_obj)
Definition: H5VLint.c:2162
H5VL_get_connector_kind_t
H5VL_get_connector_kind_t
Definition: H5VLprivate.h:51
H5VL_group_get_t
H5VL_group_get_t
Definition: H5VLconnector.h:153
H5VL_link_create_type_t
H5VL_link_create_type_t
Definition: H5VLconnector.h:168
H5VL_link_create
H5_DLL herr_t H5VL_link_create(H5VL_link_create_type_t create_type, const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:4718
H5VL_inc_vol_wrapper
H5_DLL herr_t H5VL_inc_vol_wrapper(void *vol_wrap_ctx)
Definition: H5VLint.c:2236
H5VL_dataset_get_t
H5VL_dataset_get_t
Definition: H5VLconnector.h:91
H5VL_GET_CONNECTOR_BY_NAME
@ H5VL_GET_CONNECTOR_BY_NAME
Definition: H5VLprivate.h:52
H5VL_datatype_close
H5_DLL herr_t H5VL_datatype_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:3272
H5VL_datatype_optional
H5_DLL herr_t H5VL_datatype_optional(const H5VL_object_t *vol_obj, H5VL_datatype_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:3160
herr_t
int herr_t
Definition: H5public.h:128
H5VL_blob_specific_t
H5VL_blob_specific_t
Definition: H5VLconnector.h:225
H5VL_group_create
H5_DLL void * H5VL_group_create(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t lcpl_id, hid_t gcpl_id, hid_t gapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:4065
H5VL_blob_get
H5_DLL herr_t H5VL_blob_get(const H5VL_object_t *vol_obj, const void *blob_id, void *buf, size_t size, void *ctx)
Definition: H5VLcallback.c:6982
H5VL_file_close
H5_DLL herr_t H5VL_file_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:3963
H5VL_reset_vol_wrapper
H5_DLL herr_t H5VL_reset_vol_wrapper(void)
Definition: H5VLint.c:2307
H5VL_restore_lib_state
H5_DLL herr_t H5VL_restore_lib_state(const void *state)
Definition: H5VLint.c:2017
hbool_t
bool hbool_t
Definition: H5public.h:159
H5VL_request_cancel
H5_DLL herr_t H5VL_request_cancel(const H5VL_object_t *vol_obj)
Definition: H5VLcallback.c:6424
H5VL_dataset_optional_t
int H5VL_dataset_optional_t
Definition: H5VLconnector.h:108
H5O_token_t
Definition: H5public.h:339
H5VL_attr_get_t
H5VL_attr_get_t
Definition: H5VLconnector.h:70
H5VL_datatype_specific
H5_DLL herr_t H5VL_datatype_specific(const H5VL_object_t *vol_obj, H5VL_datatype_specific_t specific_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:3048
H5VL_object_optional
H5_DLL herr_t H5VL_object_optional(const H5VL_object_t *vol_obj, H5VL_object_optional_t opt_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:5851
H5VL_object_get_t
H5VL_object_get_t
Definition: H5VLconnector.h:193
H5VL_file_get_t
H5VL_file_get_t
Definition: H5VLconnector.h:127
H5VL_dataset_read
H5_DLL herr_t H5VL_dataset_read(const H5VL_object_t *vol_obj, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, void *buf, void **req)
Definition: H5VLcallback.c:2064
H5VL_dataset_close
H5_DLL herr_t H5VL_dataset_close(const H5VL_object_t *vol_obj, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:2614
H5VL_file_specific_t
H5VL_file_specific_t
Definition: H5VLconnector.h:139
H5VL_attr_specific_t
H5VL_attr_specific_t
Definition: H5VLconnector.h:80
H5VL_free_object
H5_DLL herr_t H5VL_free_object(H5VL_object_t *obj)
Definition: H5VLint.c:973
H5VL_init_phase1
H5_DLL herr_t H5VL_init_phase1(void)
Definition: H5VLint.c:164
H5VL_request_wait
H5_DLL herr_t H5VL_request_wait(const H5VL_object_t *vol_obj, uint64_t timeout, H5ES_status_t *status)
Definition: H5VLcallback.c:6194
H5VL_request_optional_t
int H5VL_request_optional_t
Definition: H5VLconnector.h:221
H5VL_optional
H5_DLL herr_t H5VL_optional(const H5VL_object_t *vol_obj, int op_type, hid_t dxpl_id, void **req,...)
Definition: H5VLcallback.c:7707
H5VL_link_copy
H5_DLL herr_t H5VL_link_copy(const H5VL_object_t *src_vol_obj, const H5VL_loc_params_t *loc_params1, const H5VL_object_t *dst_vol_obj, const H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:4850
H5VL_object_unwrap
H5_DLL void * H5VL_object_unwrap(const H5VL_object_t *vol_obj)
Definition: H5VLint.c:1745
H5VL_attr_optional_t
int H5VL_attr_optional_t
Definition: H5VLconnector.h:88
H5VL_dataset_open
H5_DLL void * H5VL_dataset_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t dapl_id, hid_t dxpl_id, void **req)
Definition: H5VLcallback.c:1959
H5VL_t::id
hid_t id
Definition: H5VLprivate.h:35