HDF5  1.12.0
H5VLconnector.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 /*
14  * This file contains public declarations for authoring VOL connectors.
15  */
16 
17 #ifndef _H5VLconnector_H
18 #define _H5VLconnector_H
19 
20 /* Public headers needed by this file */
21 #include "H5public.h" /* Generic Functions */
22 #include "H5Apublic.h" /* Attributes */
23 #include "H5ESpublic.h" /* Event Stack */
24 #include "H5Fpublic.h" /* Files */
25 #include "H5Ipublic.h" /* IDs */
26 #include "H5Lpublic.h" /* Links */
27 #include "H5Opublic.h" /* Objects */
28 #include "H5Rpublic.h" /* References */
29 #include "H5VLpublic.h" /* Virtual Object Layer */
30 
31 
32 /*****************/
33 /* Public Macros */
34 /*****************/
35 
36 /* Capability flags for connector */
37 #define H5VL_CAP_FLAG_NONE 0 /* No special connector capabilities */
38 #define H5VL_CAP_FLAG_THREADSAFE 0x01 /* Connector is threadsafe */
39 
40 /* Container info version */
41 #define H5VL_CONTAINER_INFO_VERSION 0x01 /* Container info struct version */
42 
43 /* The maximum size allowed for blobs */
44 #define H5VL_MAX_BLOB_ID_SIZE (16) /* Allow for 128-bits blob IDs */
45 
46 
47 /*******************/
48 /* Public Typedefs */
49 /*******************/
50 
51 /* Enum type for each VOL subclass */
52 /* (Used for various queries, etc) */
53 typedef enum H5VL_subclass_t {
54  H5VL_SUBCLS_NONE, /* Operations outside of a subclass */
55  H5VL_SUBCLS_INFO, /* 'Info' subclass */
56  H5VL_SUBCLS_WRAP, /* 'Wrap' subclass */
57  H5VL_SUBCLS_ATTR, /* 'Attribute' subclass */
58  H5VL_SUBCLS_DATASET, /* 'Dataset' subclass */
59  H5VL_SUBCLS_DATATYPE, /* 'Named datatype' subclass */
60  H5VL_SUBCLS_FILE, /* 'File' subclass */
61  H5VL_SUBCLS_GROUP, /* 'Group' subclass */
62  H5VL_SUBCLS_LINK, /* 'Link' subclass */
63  H5VL_SUBCLS_OBJECT, /* 'Object' subclass */
64  H5VL_SUBCLS_REQUEST, /* 'Request' subclass */
65  H5VL_SUBCLS_BLOB, /* 'Blob' subclass */
66  H5VL_SUBCLS_TOKEN /* 'Token' subclass */
68 
69 /* types for attribute GET callback */
70 typedef enum H5VL_attr_get_t {
71  H5VL_ATTR_GET_ACPL, /* creation property list */
72  H5VL_ATTR_GET_INFO, /* info */
73  H5VL_ATTR_GET_NAME, /* access property list */
74  H5VL_ATTR_GET_SPACE, /* dataspace */
75  H5VL_ATTR_GET_STORAGE_SIZE, /* storage size */
76  H5VL_ATTR_GET_TYPE /* datatype */
78 
79 /* types for attribute SPECFIC callback */
80 typedef enum H5VL_attr_specific_t {
81  H5VL_ATTR_DELETE, /* H5Adelete(_by_name/idx) */
82  H5VL_ATTR_EXISTS, /* H5Aexists(_by_name) */
83  H5VL_ATTR_ITER, /* H5Aiterate(_by_name) */
84  H5VL_ATTR_RENAME /* H5Arename(_by_name) */
86 
87 /* Typedef for VOL connector attribute optional VOL operations */
89 
90 /* types for dataset GET callback */
91 typedef enum H5VL_dataset_get_t {
92  H5VL_DATASET_GET_DAPL, /* access property list */
93  H5VL_DATASET_GET_DCPL, /* creation property list */
94  H5VL_DATASET_GET_SPACE, /* dataspace */
95  H5VL_DATASET_GET_SPACE_STATUS, /* space status */
96  H5VL_DATASET_GET_STORAGE_SIZE, /* storage size */
97  H5VL_DATASET_GET_TYPE /* datatype */
99 
100 /* types for dataset SPECFIC callback */
102  H5VL_DATASET_SET_EXTENT, /* H5Dset_extent */
103  H5VL_DATASET_FLUSH, /* H5Dflush */
104  H5VL_DATASET_REFRESH /* H5Drefresh */
106 
107 /* Typedef for VOL connector dataset optional VOL operations */
109 
110 /* types for datatype GET callback */
111 typedef enum H5VL_datatype_get_t {
112  H5VL_DATATYPE_GET_BINARY, /* get serialized form of transient type */
113  H5VL_DATATYPE_GET_TCPL /* datatype creation property list */
115 
116 /* types for datatype SPECFIC callback */
121 
122 /* Typedef and values for native VOL connector named datatype optional VOL operations */
124 /* (No optional named datatype VOL operations currently) */
125 
126 /* types for file GET callback */
127 typedef enum H5VL_file_get_t {
128  H5VL_FILE_GET_CONT_INFO, /* file get container info */
129  H5VL_FILE_GET_FAPL, /* file access property list */
130  H5VL_FILE_GET_FCPL, /* file creation property list */
131  H5VL_FILE_GET_FILENO, /* file number */
132  H5VL_FILE_GET_INTENT, /* file intent */
133  H5VL_FILE_GET_NAME, /* file name */
134  H5VL_FILE_GET_OBJ_COUNT, /* object count in file */
135  H5VL_FILE_GET_OBJ_IDS /* object ids in file */
137 
138 /* types for file SPECIFIC callback */
139 typedef enum H5VL_file_specific_t {
140  H5VL_FILE_FLUSH, /* Flush file */
141  H5VL_FILE_REOPEN, /* Reopen the file */
142  H5VL_FILE_MOUNT, /* Mount a file */
143  H5VL_FILE_UNMOUNT, /* Unmount a file */
144  H5VL_FILE_IS_ACCESSIBLE, /* Check if a file is accessible */
145  H5VL_FILE_DELETE, /* Delete a file */
146  H5VL_FILE_IS_EQUAL /* Check if two files are the same */
148 
149 /* Typedef for VOL connector file optional VOL operations */
151 
152 /* types for group GET callback */
153 typedef enum H5VL_group_get_t {
154  H5VL_GROUP_GET_GCPL, /* group creation property list */
155  H5VL_GROUP_GET_INFO /* group info */
157 
158 /* types for group SPECFIC callback */
159 typedef enum H5VL_group_specific_t {
163 
164 /* Typedef for VOL connector group optional VOL operations */
166 
167 /* link create types for VOL */
173 
174 /* types for link GET callback */
175 typedef enum H5VL_link_get_t {
176  H5VL_LINK_GET_INFO, /* link info */
177  H5VL_LINK_GET_NAME, /* link name */
178  H5VL_LINK_GET_VAL /* link value */
180 
181 /* types for link SPECIFIC callback */
182 typedef enum H5VL_link_specific_t {
183  H5VL_LINK_DELETE, /* H5Ldelete(_by_idx) */
184  H5VL_LINK_EXISTS, /* link existence */
185  H5VL_LINK_ITER /* H5Literate/visit(_by_name) */
187 
188 /* Typedef and values for native VOL connector link optional VOL operations */
190 /* (No optional link VOL operations currently) */
191 
192 /* types for object GET callback */
193 typedef enum H5VL_object_get_t {
194  H5VL_OBJECT_GET_FILE, /* object file */
195  H5VL_OBJECT_GET_NAME, /* object name */
196  H5VL_OBJECT_GET_TYPE, /* object type */
197  H5VL_OBJECT_GET_INFO /* H5Oget_info(_by_idx|name)3 */
199 
200 /* types for object SPECIFIC callback */
202  H5VL_OBJECT_CHANGE_REF_COUNT, /* H5Oincr/decr_refcount */
203  H5VL_OBJECT_EXISTS, /* H5Oexists_by_name */
204  H5VL_OBJECT_LOOKUP, /* Lookup object */
205  H5VL_OBJECT_VISIT, /* H5Ovisit(_by_name) */
206  H5VL_OBJECT_FLUSH, /* H5{D|G|O|T}flush */
207  H5VL_OBJECT_REFRESH /* H5{D|G|O|T}refresh */
209 
210 /* Typedef for VOL connector object optional VOL operations */
212 
213 /* types for async request SPECIFIC callback */
215  H5VL_REQUEST_WAITANY, /* Wait until any request completes */
216  H5VL_REQUEST_WAITSOME, /* Wait until at least one requesst completes */
217  H5VL_REQUEST_WAITALL /* Wait until all requests complete */
219 
220 /* Typedef and values for native VOL connector request optional VOL operations */
222 /* (No optional request VOL operations currently) */
223 
224 /* types for 'blob' SPECIFIC callback */
225 typedef enum H5VL_blob_specific_t {
226  H5VL_BLOB_DELETE, /* Delete a blob (by ID) */
227  H5VL_BLOB_GETSIZE, /* Get size of blob */
228  H5VL_BLOB_ISNULL, /* Check if a blob ID is "null" */
229  H5VL_BLOB_SETNULL /* Set a blob ID to the connector's "null" blob ID value */
231 
232 /* Typedef and values for native VOL connector blob optional VOL operations */
234 /* (No optional blob VOL operations currently) */
235 
236 /* Types for different ways that objects are located in an HDF5 container */
237 typedef enum H5VL_loc_type_t {
243 
244 typedef struct H5VL_loc_by_name {
245  const char *name;
248 
249 typedef struct H5VL_loc_by_idx {
250  const char *name;
256 
257 typedef struct H5VL_loc_by_token {
260 
261 /* Structure to hold parameters for object locations.
262  * Either: BY_SELF, BY_NAME, BY_IDX, BY_TOKEN
263  *
264  * Note: Leave loc_by_token as the first union member so we
265  * can perform the simplest initialization of the struct
266  * without raising warnings.
267  *
268  * Note: BY_SELF requires no union members.
269  */
270 typedef struct H5VL_loc_params_t {
273  union {
279 
280 /* Info for H5VL_FILE_GET_CONT_INFO */
281 typedef struct H5VL_file_cont_info_t {
282  unsigned version; /* version information (keep first) */
283  uint64_t feature_flags; /* Container feature flags */
284  /* (none currently defined) */
285  size_t token_size; /* Size of tokens */
286  size_t blob_id_size; /* Size of blob IDs */
288 
289 /* VOL connector info fields & callbacks */
290 typedef struct H5VL_info_class_t {
291  size_t size; /* Size of the VOL info */
292  void * (*copy)(const void *info); /* Callback to create a copy of the VOL info */
293  herr_t (*cmp)(int *cmp_value, const void *info1, const void *info2); /* Callback to compare VOL info */
294  herr_t (*free)(void *info); /* Callback to release a VOL info */
295  herr_t (*to_str)(const void *info, char **str); /* Callback to serialize connector's info into a string */
296  herr_t (*from_str)(const char *str, void **info); /* Callback to deserialize a string into connector's info */
298 
299 /* VOL object wrap / retrieval callbacks */
300 /* (These only need to be implemented by "pass through" VOL connectors) */
301 typedef struct H5VL_wrap_class_t {
302  void * (*get_object)(const void *obj); /* Callback to retrieve underlying object */
303  herr_t (*get_wrap_ctx)(const void *obj, void **wrap_ctx); /* Callback to retrieve the object wrapping context for the connector */
304  void * (*wrap_object)(void *obj, H5I_type_t obj_type, void *wrap_ctx); /* Callback to wrap a library object */
305  void * (*unwrap_object)(void *obj); /* Callback to unwrap a library object */
306  herr_t (*free_wrap_ctx)(void *wrap_ctx); /* Callback to release the object wrapping context for the connector */
308 
309 /* H5A routines */
310 typedef struct H5VL_attr_class_t {
311  void *(*create)(void *obj, const H5VL_loc_params_t *loc_params, const char *attr_name,
312  hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t aapl_id,
313  hid_t dxpl_id, void **req);
314  void *(*open)(void *obj, const H5VL_loc_params_t *loc_params, const char *attr_name,
315  hid_t aapl_id, hid_t dxpl_id, void **req);
316  herr_t (*read)(void *attr, hid_t mem_type_id, void *buf, hid_t dxpl_id, void **req);
317  herr_t (*write)(void *attr, hid_t mem_type_id, const void *buf, hid_t dxpl_id, void **req);
318  herr_t (*get)(void *obj, H5VL_attr_get_t get_type, hid_t dxpl_id, void **req, va_list arguments);
319  herr_t (*specific)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_attr_specific_t specific_type,
320  hid_t dxpl_id, void **req, va_list arguments);
321  herr_t (*optional)(void *obj, H5VL_attr_optional_t opt_type, hid_t dxpl_id,
322  void **req, va_list arguments);
323  herr_t (*close) (void *attr, hid_t dxpl_id, void **req);
325 
326 /* H5D routines */
327 typedef struct H5VL_dataset_class_t {
328  void *(*create)(void *obj, const H5VL_loc_params_t *loc_params, const char *name,
329  hid_t lcpl_id, hid_t type_id, hid_t space_id, hid_t dcpl_id,
330  hid_t dapl_id, hid_t dxpl_id, void **req);
331  void *(*open)(void *obj, const H5VL_loc_params_t *loc_params, const char *name,
332  hid_t dapl_id, hid_t dxpl_id, void **req);
333  herr_t (*read)(void *dset, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id,
334  hid_t dxpl_id, void * buf, void **req);
335  herr_t (*write)(void *dset, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id,
336  hid_t dxpl_id, const void * buf, void **req);
337  herr_t (*get)(void *obj, H5VL_dataset_get_t get_type, hid_t dxpl_id, void **req, va_list arguments);
338  herr_t (*specific)(void *obj, H5VL_dataset_specific_t specific_type,
339  hid_t dxpl_id, void **req, va_list arguments);
340  herr_t (*optional)(void *obj, H5VL_dataset_optional_t opt_type, hid_t dxpl_id,
341  void **req, va_list arguments);
342  herr_t (*close) (void *dset, hid_t dxpl_id, void **req);
344 
345 /* H5T routines*/
346 typedef struct H5VL_datatype_class_t {
347  void *(*commit)(void *obj, const H5VL_loc_params_t *loc_params, const char *name, hid_t type_id,
348  hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id, hid_t dxpl_id, void **req);
349  void *(*open)(void *obj, const H5VL_loc_params_t *loc_params, const char * name,
350  hid_t tapl_id, hid_t dxpl_id, void **req);
351  herr_t (*get) (void *obj, H5VL_datatype_get_t get_type, hid_t dxpl_id, void **req, va_list arguments);
352  herr_t (*specific)(void *obj, H5VL_datatype_specific_t specific_type,
353  hid_t dxpl_id, void **req, va_list arguments);
354  herr_t (*optional)(void *obj, H5VL_datatype_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments);
355  herr_t (*close) (void *dt, hid_t dxpl_id, void **req);
357 
358 /* H5F routines */
359 typedef struct H5VL_file_class_t {
360  void *(*create)(const char *name, unsigned flags, hid_t fcpl_id,
361  hid_t fapl_id, hid_t dxpl_id, void **req);
362  void *(*open)(const char *name, unsigned flags, hid_t fapl_id, hid_t dxpl_id, void **req);
363  herr_t (*get)(void *obj, H5VL_file_get_t get_type, hid_t dxpl_id, void **req, va_list arguments);
364  herr_t (*specific)(void *obj, H5VL_file_specific_t specific_type,
365  hid_t dxpl_id, void **req, va_list arguments);
366  herr_t (*optional)(void *obj, H5VL_file_optional_t opt_type, hid_t dxpl_id,
367  void **req, va_list arguments);
368  herr_t (*close) (void *file, hid_t dxpl_id, void **req);
370 
371 /* H5G routines */
372 typedef struct H5VL_group_class_t {
373  void *(*create)(void *obj, const H5VL_loc_params_t *loc_params, const char *name,
374  hid_t lcpl_id, hid_t gcpl_id, hid_t gapl_id, hid_t dxpl_id, void **req);
375  void *(*open)(void *obj, const H5VL_loc_params_t *loc_params, const char *name,
376  hid_t gapl_id, hid_t dxpl_id, void **req);
377  herr_t (*get)(void *obj, H5VL_group_get_t get_type, hid_t dxpl_id, void **req, va_list arguments);
378  herr_t (*specific)(void *obj, H5VL_group_specific_t specific_type,
379  hid_t dxpl_id, void **req, va_list arguments);
380  herr_t (*optional)(void *obj, H5VL_group_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments);
381  herr_t (*close) (void *grp, hid_t dxpl_id, void **req);
383 
384 /* H5L routines */
385 typedef struct H5VL_link_class_t {
386  herr_t (*create)(H5VL_link_create_type_t create_type, void *obj, const H5VL_loc_params_t *loc_params,
387  hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req, va_list arguments);
388  herr_t (*copy)(void *src_obj, const H5VL_loc_params_t *loc_params1,
389  void *dst_obj, const H5VL_loc_params_t *loc_params2,
390  hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req);
391  herr_t (*move)(void *src_obj, const H5VL_loc_params_t *loc_params1,
392  void *dst_obj, const H5VL_loc_params_t *loc_params2,
393  hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req);
394  herr_t (*get)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_link_get_t get_type,
395  hid_t dxpl_id, void **req, va_list arguments);
396  herr_t (*specific)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_link_specific_t specific_type,
397  hid_t dxpl_id, void **req, va_list arguments);
398  herr_t (*optional)(void *obj, H5VL_link_optional_t opt_type, hid_t dxpl_id,
399  void **req, va_list arguments);
401 
402 /* H5O routines */
403 typedef struct H5VL_object_class_t {
404  void *(*open)(void *obj, const H5VL_loc_params_t *loc_params, H5I_type_t *opened_type,
405  hid_t dxpl_id, void **req);
406  herr_t (*copy)(void *src_obj, const H5VL_loc_params_t *loc_params1, const char *src_name,
407  void *dst_obj, const H5VL_loc_params_t *loc_params2, const char *dst_name,
408  hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id, void **req);
409  herr_t (*get)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_object_get_t get_type,
410  hid_t dxpl_id, void **req, va_list arguments);
411  herr_t (*specific)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_object_specific_t specific_type,
412  hid_t dxpl_id, void **req, va_list arguments);
413  herr_t (*optional)(void *obj, H5VL_object_optional_t opt_type,
414  hid_t dxpl_id, void **req, va_list arguments);
416 
417 /* Asynchronous request 'notify' callback */
418 typedef herr_t (*H5VL_request_notify_t)(void *ctx, H5ES_status_t status);
419 
420 /* "Levels" for 'get connector class' introspection callback */
421 typedef enum H5VL_get_conn_lvl_t {
422  H5VL_GET_CONN_LVL_CURR, /* Get "current" connector (for this object) */
423  H5VL_GET_CONN_LVL_TERM /* Get "terminal" connector (for this object) */
424  /* (Recursively called, for pass-through connectors) */
425  /* (Connectors that "split" must choose which connector to return) */
427 
428 /* Forward declaration of H5VL_class_t, defined later in this file */
429 struct H5VL_class_t;
430 
431 /* Container/connector introspection routines */
432 typedef struct H5VL_introspect_class_t {
433  herr_t (*get_conn_cls)(void *obj, H5VL_get_conn_lvl_t lvl, const struct H5VL_class_t **conn_cls);
434  herr_t (*opt_query)(void *obj, H5VL_subclass_t cls, int opt_type, hbool_t *supported);
436 
437 /* Async request operation routines */
438 typedef struct H5VL_request_class_t {
439  herr_t (*wait)(void *req, uint64_t timeout, H5ES_status_t *status);
440  herr_t (*notify)(void *req, H5VL_request_notify_t cb, void *ctx);
441  herr_t (*cancel)(void *req);
442  herr_t (*specific)(void *req, H5VL_request_specific_t specific_type, va_list arguments);
443  herr_t (*optional)(void *req, H5VL_request_optional_t opt_type, va_list arguments);
444  herr_t (*free)(void *req);
446 
447 /* 'blob' routines */
448 typedef struct H5VL_blob_class_t {
449  herr_t (*put)(void *obj, const void *buf, size_t size, void *blob_id, void *ctx);
450  herr_t (*get)(void *obj, const void *blob_id, void *buf, size_t size, void *ctx);
451  herr_t (*specific)(void *obj, void *blob_id, H5VL_blob_specific_t specific_type, va_list arguments);
452  herr_t (*optional)(void *obj, void *blob_id, H5VL_blob_optional_t opt_type, va_list arguments);
454 
455 /* Object token routines */
456 typedef struct H5VL_token_class_t {
457  herr_t (*cmp)(void *obj, const H5O_token_t *token1, const H5O_token_t *token2, int *cmp_value);
458  herr_t (*to_str)(void *obj, H5I_type_t obj_type, const H5O_token_t *token, char **token_str);
459  herr_t (*from_str)(void *obj, H5I_type_t obj_type, const char *token_str, H5O_token_t *token);
461 
462 /* Class information for each VOL connector */
463 typedef struct H5VL_class_t {
464  /* Overall connector fields & callbacks */
465  unsigned int version; /* VOL connector class struct version # */
466  H5VL_class_value_t value; /* Value to identify connector */
467  const char *name; /* Connector name (MUST be unique!) */
468  unsigned cap_flags; /* Capability flags for connector */
469  herr_t (*initialize)(hid_t vipl_id); /* Connector initialization callback */
470  herr_t (*terminate)(void); /* Connector termination callback */
471 
472  /* VOL framework */
473  H5VL_info_class_t info_cls; /* VOL info fields & callbacks */
474  H5VL_wrap_class_t wrap_cls; /* VOL object wrap / retrieval callbacks */
475 
476  /* Data Model */
477  H5VL_attr_class_t attr_cls; /* Attribute (H5A*) class callbacks */
478  H5VL_dataset_class_t dataset_cls; /* Dataset (H5D*) class callbacks */
479  H5VL_datatype_class_t datatype_cls; /* Datatype (H5T*) class callbacks */
480  H5VL_file_class_t file_cls; /* File (H5F*) class callbacks */
481  H5VL_group_class_t group_cls; /* Group (H5G*) class callbacks */
482  H5VL_link_class_t link_cls; /* Link (H5L*) class callbacks */
483  H5VL_object_class_t object_cls; /* Object (H5O*) class callbacks */
484 
485  /* Infrastructure / Services */
486  H5VL_introspect_class_t introspect_cls; /* Container/connector introspection class callbacks */
487  H5VL_request_class_t request_cls; /* Asynchronous request class callbacks */
488  H5VL_blob_class_t blob_cls; /* 'Blob' class callbacks */
489  H5VL_token_class_t token_cls; /* VOL connector object token class callbacks */
490 
491  /* Catch-all */
492  herr_t (*optional)(void *obj, int op_type, hid_t dxpl_id, void **req, va_list arguments); /* Optional callback */
494 
495 
496 /********************/
497 /* Public Variables */
498 /********************/
499 
500 
501 /*********************/
502 /* Public Prototypes */
503 /*********************/
504 
505 #ifdef __cplusplus
506 extern "C" {
507 #endif
508 
509 /* Helper routines for VOL connector authors */
511 H5_DLL void *H5VLobject(hid_t obj_id);
512 H5_DLL hid_t H5VLget_file_type(void *file_obj, hid_t connector_id,
513  hid_t dtype_id);
514 H5_DLL hid_t H5VLpeek_connector_id_by_name(const char *name);
516 
517 #ifdef __cplusplus
518 }
519 #endif
520 
521 #endif /* _H5VLconnector_H */
522 
H5public.h
H5VLpeek_connector_id_by_name
H5_DLL hid_t H5VLpeek_connector_id_by_name(const char *name)
Definition: H5VL.c:392
H5VL_get_conn_lvl_t
H5VL_get_conn_lvl_t
Definition: H5VLconnector.h:421
H5VL_SUBCLS_OBJECT
@ H5VL_SUBCLS_OBJECT
Definition: H5VLconnector.h:63
H5VL_loc_params_t
Definition: H5VLconnector.h:270
H5Lpublic.h
H5VL_group_specific_t
H5VL_group_specific_t
Definition: H5VLconnector.h:159
H5VL_FILE_MOUNT
@ H5VL_FILE_MOUNT
Definition: H5VLconnector.h:142
H5VL_request_class_t::optional
herr_t(* optional)(void *req, H5VL_request_optional_t opt_type, va_list arguments)
Definition: H5VLconnector.h:443
H5VL_blob_class_t
Definition: H5VLconnector.h:448
H5VL_BLOB_GETSIZE
@ H5VL_BLOB_GETSIZE
Definition: H5VLconnector.h:227
H5VL_ATTR_GET_STORAGE_SIZE
@ H5VL_ATTR_GET_STORAGE_SIZE
Definition: H5VLconnector.h:75
H5Ipublic.h
H5VL_ATTR_ITER
@ H5VL_ATTR_ITER
Definition: H5VLconnector.h:83
H5VL_DATASET_GET_SPACE
@ H5VL_DATASET_GET_SPACE
Definition: H5VLconnector.h:94
H5VL_loc_by_name
Definition: H5VLconnector.h:244
H5VL_blob_class_t::specific
herr_t(* specific)(void *obj, void *blob_id, H5VL_blob_specific_t specific_type, va_list arguments)
Definition: H5VLconnector.h:451
H5VL_LINK_GET_INFO
@ H5VL_LINK_GET_INFO
Definition: H5VLconnector.h:176
H5VL_file_class_t::specific
herr_t(* specific)(void *obj, H5VL_file_specific_t specific_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:364
H5VL_info_class_t::free
herr_t(* free)(void *info)
Definition: H5VLconnector.h:294
H5VL_group_optional_t
int H5VL_group_optional_t
Definition: H5VLconnector.h:165
size
iblock size
Definition: H5EAcache.c:787
H5VL_DATATYPE_REFRESH
@ H5VL_DATATYPE_REFRESH
Definition: H5VLconnector.h:119
H5VL_loc_params_t::loc_data
union H5VL_loc_params_t::@56 loc_data
H5VL_REQUEST_WAITSOME
@ H5VL_REQUEST_WAITSOME
Definition: H5VLconnector.h:216
H5VL_OBJECT_CHANGE_REF_COUNT
@ H5VL_OBJECT_CHANGE_REF_COUNT
Definition: H5VLconnector.h:202
H5VL_introspect_class_t::get_conn_cls
herr_t(* get_conn_cls)(void *obj, H5VL_get_conn_lvl_t lvl, const struct H5VL_class_t **conn_cls)
Definition: H5VLconnector.h:433
H5VL_FILE_DELETE
@ H5VL_FILE_DELETE
Definition: H5VLconnector.h:145
H5VL_class_t::attr_cls
H5VL_attr_class_t attr_cls
Definition: H5VLconnector.h:477
H5VL_class_t::terminate
herr_t(* terminate)(void)
Definition: H5VLconnector.h:470
H5VL_OBJECT_BY_IDX
@ H5VL_OBJECT_BY_IDX
Definition: H5VLconnector.h:240
H5VL_object_class_t::optional
herr_t(* optional)(void *obj, H5VL_object_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:413
H5VL_datatype_class_t::specific
herr_t(* specific)(void *obj, H5VL_datatype_specific_t specific_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:352
H5VLpeek_connector_id_by_value
H5_DLL hid_t H5VLpeek_connector_id_by_value(H5VL_class_value_t value)
Definition: H5VL.c:424
H5VLregister_connector
H5_DLL hid_t H5VLregister_connector(const H5VL_class_t *cls, hid_t vipl_id)
Definition: H5VL.c:91
H5VL_OBJECT_GET_FILE
@ H5VL_OBJECT_GET_FILE
Definition: H5VLconnector.h:194
H5VL_SUBCLS_DATATYPE
@ H5VL_SUBCLS_DATATYPE
Definition: H5VLconnector.h:59
H5VL_class_t::cap_flags
unsigned cap_flags
Definition: H5VLconnector.h:468
H5VL_link_specific_t
H5VL_link_specific_t
Definition: H5VLconnector.h:182
H5VL_token_class_t
Definition: H5VLconnector.h:456
H5VL_ATTR_GET_SPACE
@ H5VL_ATTR_GET_SPACE
Definition: H5VLconnector.h:74
H5VLobject
H5_DLL void * H5VLobject(hid_t obj_id)
Definition: H5VL.c:678
H5VL_loc_by_idx::n
hsize_t n
Definition: H5VLconnector.h:253
H5VL_ATTR_RENAME
@ H5VL_ATTR_RENAME
Definition: H5VLconnector.h:84
H5VL_DATATYPE_FLUSH
@ H5VL_DATATYPE_FLUSH
Definition: H5VLconnector.h:118
H5VL_DATASET_GET_DAPL
@ H5VL_DATASET_GET_DAPL
Definition: H5VLconnector.h:92
H5VL_token_class_t::cmp
herr_t(* cmp)(void *obj, const H5O_token_t *token1, const H5O_token_t *token2, int *cmp_value)
Definition: H5VLconnector.h:457
H5I_type_t
H5I_type_t
Definition: H5Ipublic.h:33
H5VL_file_cont_info_t::token_size
size_t token_size
Definition: H5VLconnector.h:285
H5VL_file_cont_info_t::feature_flags
uint64_t feature_flags
Definition: H5VLconnector.h:283
H5VL_group_class_t::optional
herr_t(* optional)(void *obj, H5VL_group_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:380
H5VL_loc_by_name::lapl_id
hid_t lapl_id
Definition: H5VLconnector.h:246
H5VL_blob_class_t
struct H5VL_blob_class_t H5VL_blob_class_t
H5VL_token_class_t
struct H5VL_token_class_t H5VL_token_class_t
H5VL_loc_by_idx::lapl_id
hid_t lapl_id
Definition: H5VLconnector.h:254
H5VL_class_t::request_cls
H5VL_request_class_t request_cls
Definition: H5VLconnector.h:487
H5VL_LINK_CREATE_HARD
@ H5VL_LINK_CREATE_HARD
Definition: H5VLconnector.h:169
H5VL_FILE_UNMOUNT
@ H5VL_FILE_UNMOUNT
Definition: H5VLconnector.h:143
H5VL_loc_by_idx
Definition: H5VLconnector.h:249
H5VL_file_optional_t
int H5VL_file_optional_t
Definition: H5VLconnector.h:150
H5VL_class_t::version
unsigned int version
Definition: H5VLconnector.h:465
H5VL_DATATYPE_GET_TCPL
@ H5VL_DATATYPE_GET_TCPL
Definition: H5VLconnector.h:113
H5VL_OBJECT_GET_INFO
@ H5VL_OBJECT_GET_INFO
Definition: H5VLconnector.h:197
H5VL_ATTR_GET_TYPE
@ H5VL_ATTR_GET_TYPE
Definition: H5VLconnector.h:76
H5VL_attr_class_t::get
herr_t(* get)(void *obj, H5VL_attr_get_t get_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:318
H5VL_loc_params_t::loc_by_name
H5VL_loc_by_name_t loc_by_name
Definition: H5VLconnector.h:275
H5VL_class_t::datatype_cls
H5VL_datatype_class_t datatype_cls
Definition: H5VLconnector.h:479
H5VL_GROUP_GET_GCPL
@ H5VL_GROUP_GET_GCPL
Definition: H5VLconnector.h:154
H5VL_group_class_t::close
herr_t(* close)(void *grp, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:381
H5VL_subclass_t
H5VL_subclass_t
Definition: H5VLconnector.h:53
H5VL_group_class_t
struct H5VL_group_class_t H5VL_group_class_t
H5VL_info_class_t::to_str
herr_t(* to_str)(const void *info, char **str)
Definition: H5VLconnector.h:295
H5VL_file_cont_info_t
struct H5VL_file_cont_info_t H5VL_file_cont_info_t
H5VL_dataset_class_t::close
herr_t(* close)(void *dset, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:342
H5VL_datatype_class_t::get
herr_t(* get)(void *obj, H5VL_datatype_get_t get_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:351
H5VL_BLOB_ISNULL
@ H5VL_BLOB_ISNULL
Definition: H5VLconnector.h:228
H5VL_FILE_GET_NAME
@ H5VL_FILE_GET_NAME
Definition: H5VLconnector.h:133
H5VL_loc_by_token
Definition: H5VLconnector.h:257
H5VL_LINK_GET_NAME
@ H5VL_LINK_GET_NAME
Definition: H5VLconnector.h:177
H5VL_GET_CONN_LVL_CURR
@ H5VL_GET_CONN_LVL_CURR
Definition: H5VLconnector.h:422
H5ES_status_t
H5ES_status_t
Definition: H5ESpublic.h:28
H5VL_REQUEST_WAITANY
@ H5VL_REQUEST_WAITANY
Definition: H5VLconnector.h:215
H5VL_blob_class_t::put
herr_t(* put)(void *obj, const void *buf, size_t size, void *blob_id, void *ctx)
Definition: H5VLconnector.h:449
H5VL_datatype_class_t
struct H5VL_datatype_class_t H5VL_datatype_class_t
H5VL_SUBCLS_DATASET
@ H5VL_SUBCLS_DATASET
Definition: H5VLconnector.h:58
H5VL_object_specific_t
H5VL_object_specific_t
Definition: H5VLconnector.h:201
H5VL_attr_class_t
struct H5VL_attr_class_t H5VL_attr_class_t
H5VL_file_class_t::optional
herr_t(* optional)(void *obj, H5VL_file_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:366
H5VL_request_specific_t
H5VL_request_specific_t
Definition: H5VLconnector.h:214
H5VL_request_class_t
struct H5VL_request_class_t H5VL_request_class_t
H5VL_blob_class_t::get
herr_t(* get)(void *obj, const void *blob_id, void *buf, size_t size, void *ctx)
Definition: H5VLconnector.h:450
H5VL_token_class_t::to_str
herr_t(* to_str)(void *obj, H5I_type_t obj_type, const H5O_token_t *token, char **token_str)
Definition: H5VLconnector.h:458
H5VL_DATASET_SET_EXTENT
@ H5VL_DATASET_SET_EXTENT
Definition: H5VLconnector.h:102
H5VL_loc_params_t::type
H5VL_loc_type_t type
Definition: H5VLconnector.h:272
H5VLpublic.h
H5VL_datatype_class_t
Definition: H5VLconnector.h:346
H5VL_class_t::token_cls
H5VL_token_class_t token_cls
Definition: H5VLconnector.h:489
H5VL_object_optional_t
int H5VL_object_optional_t
Definition: H5VLconnector.h:211
H5VL_info_class_t
struct H5VL_info_class_t H5VL_info_class_t
H5VL_attr_class_t::write
herr_t(* write)(void *attr, hid_t mem_type_id, const void *buf, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:317
H5VL_LINK_CREATE_SOFT
@ H5VL_LINK_CREATE_SOFT
Definition: H5VLconnector.h:170
H5_iter_order_t
H5_iter_order_t
Definition: H5public.h:295
H5VL_introspect_class_t
Definition: H5VLconnector.h:432
H5VL_group_class_t
Definition: H5VLconnector.h:372
H5VL_loc_by_idx::idx_type
H5_index_t idx_type
Definition: H5VLconnector.h:251
H5VL_datatype_optional_t
int H5VL_datatype_optional_t
Definition: H5VLconnector.h:123
H5VL_class_t::optional
herr_t(* optional)(void *obj, int op_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:492
H5VL_info_class_t::cmp
herr_t(* cmp)(int *cmp_value, const void *info1, const void *info2)
Definition: H5VLconnector.h:293
H5VL_DATASET_GET_TYPE
@ H5VL_DATASET_GET_TYPE
Definition: H5VLconnector.h:97
H5VL_SUBCLS_LINK
@ H5VL_SUBCLS_LINK
Definition: H5VLconnector.h:62
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5VL_dataset_class_t
Definition: H5VLconnector.h:327
H5VL_OBJECT_REFRESH
@ H5VL_OBJECT_REFRESH
Definition: H5VLconnector.h:207
H5VL_FILE_GET_OBJ_COUNT
@ H5VL_FILE_GET_OBJ_COUNT
Definition: H5VLconnector.h:134
H5VL_loc_by_idx::order
H5_iter_order_t order
Definition: H5VLconnector.h:252
H5VL_OBJECT_VISIT
@ H5VL_OBJECT_VISIT
Definition: H5VLconnector.h:205
H5VL_OBJECT_GET_NAME
@ H5VL_OBJECT_GET_NAME
Definition: H5VLconnector.h:195
H5VL_wrap_class_t::free_wrap_ctx
herr_t(* free_wrap_ctx)(void *wrap_ctx)
Definition: H5VLconnector.h:306
H5VL_wrap_class_t
Definition: H5VLconnector.h:301
H5VL_SUBCLS_INFO
@ H5VL_SUBCLS_INFO
Definition: H5VLconnector.h:55
H5VL_class_t::blob_cls
H5VL_blob_class_t blob_cls
Definition: H5VLconnector.h:488
H5VL_SUBCLS_ATTR
@ H5VL_SUBCLS_ATTR
Definition: H5VLconnector.h:57
H5VL_GROUP_GET_INFO
@ H5VL_GROUP_GET_INFO
Definition: H5VLconnector.h:155
H5VL_loc_params_t::obj_type
H5I_type_t obj_type
Definition: H5VLconnector.h:271
H5VL_DATATYPE_GET_BINARY
@ H5VL_DATATYPE_GET_BINARY
Definition: H5VLconnector.h:112
H5VL_class_t::wrap_cls
H5VL_wrap_class_t wrap_cls
Definition: H5VLconnector.h:474
H5VL_attr_class_t::close
herr_t(* close)(void *attr, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:323
H5VL_datatype_class_t::close
herr_t(* close)(void *dt, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:355
H5VL_file_class_t
Definition: H5VLconnector.h:359
H5VL_info_class_t::size
size_t size
Definition: H5VLconnector.h:291
H5VL_LINK_ITER
@ H5VL_LINK_ITER
Definition: H5VLconnector.h:185
H5VL_link_get_t
H5VL_link_get_t
Definition: H5VLconnector.h:175
H5VL_SUBCLS_TOKEN
@ H5VL_SUBCLS_TOKEN
Definition: H5VLconnector.h:66
H5VL_class_value_t
int H5VL_class_value_t
Definition: H5VLpublic.h:49
H5VL_file_class_t::close
herr_t(* close)(void *file, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:368
H5VL_request_class_t::notify
herr_t(* notify)(void *req, H5VL_request_notify_t cb, void *ctx)
Definition: H5VLconnector.h:440
H5VL_object_class_t
struct H5VL_object_class_t H5VL_object_class_t
H5VL_SUBCLS_FILE
@ H5VL_SUBCLS_FILE
Definition: H5VLconnector.h:60
H5VL_LINK_DELETE
@ H5VL_LINK_DELETE
Definition: H5VLconnector.h:183
H5VL_file_cont_info_t
Definition: H5VLconnector.h:281
H5VL_dataset_class_t::optional
herr_t(* optional)(void *obj, H5VL_dataset_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:340
H5VL_info_class_t
Definition: H5VLconnector.h:290
H5VL_FILE_GET_FILENO
@ H5VL_FILE_GET_FILENO
Definition: H5VLconnector.h:131
H5VL_request_class_t::wait
herr_t(* wait)(void *req, uint64_t timeout, H5ES_status_t *status)
Definition: H5VLconnector.h:439
H5VL_dataset_class_t::get
herr_t(* get)(void *obj, H5VL_dataset_get_t get_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:337
H5VL_request_notify_t
herr_t(* H5VL_request_notify_t)(void *ctx, H5ES_status_t status)
Definition: H5VLconnector.h:418
H5VL_link_optional_t
int H5VL_link_optional_t
Definition: H5VLconnector.h:189
H5VL_OBJECT_BY_TOKEN
@ H5VL_OBJECT_BY_TOKEN
Definition: H5VLconnector.h:241
H5VL_object_class_t::get
herr_t(* get)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_object_get_t get_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:409
H5VL_object_class_t::copy
herr_t(* copy)(void *src_obj, const H5VL_loc_params_t *loc_params1, const char *src_name, void *dst_obj, const H5VL_loc_params_t *loc_params2, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:406
H5VL_class_t::file_cls
H5VL_file_class_t file_cls
Definition: H5VLconnector.h:480
H5VL_DATASET_GET_SPACE_STATUS
@ H5VL_DATASET_GET_SPACE_STATUS
Definition: H5VLconnector.h:95
H5VL_FILE_IS_EQUAL
@ H5VL_FILE_IS_EQUAL
Definition: H5VLconnector.h:146
H5VL_loc_by_token::token
H5O_token_t * token
Definition: H5VLconnector.h:258
H5VL_loc_params_t::loc_by_token
H5VL_loc_by_token_t loc_by_token
Definition: H5VLconnector.h:274
H5VL_file_class_t
struct H5VL_file_class_t H5VL_file_class_t
H5VL_FILE_GET_OBJ_IDS
@ H5VL_FILE_GET_OBJ_IDS
Definition: H5VLconnector.h:135
H5VL_introspect_class_t::opt_query
herr_t(* opt_query)(void *obj, H5VL_subclass_t cls, int opt_type, hbool_t *supported)
Definition: H5VLconnector.h:434
uint64_t
uint64_t
Definition: H5overflow.txt:39
H5VL_loc_by_token_t
struct H5VL_loc_by_token H5VL_loc_by_token_t
H5VL_datatype_specific_t
H5VL_datatype_specific_t
Definition: H5VLconnector.h:117
H5VL_class_t::info_cls
H5VL_info_class_t info_cls
Definition: H5VLconnector.h:473
H5VL_LINK_EXISTS
@ H5VL_LINK_EXISTS
Definition: H5VLconnector.h:184
H5VL_DATASET_FLUSH
@ H5VL_DATASET_FLUSH
Definition: H5VLconnector.h:103
H5VL_SUBCLS_BLOB
@ H5VL_SUBCLS_BLOB
Definition: H5VLconnector.h:65
H5VL_REQUEST_WAITALL
@ H5VL_REQUEST_WAITALL
Definition: H5VLconnector.h:217
H5VL_dataset_class_t::read
herr_t(* read)(void *dset, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, void *buf, void **req)
Definition: H5VLconnector.h:333
H5VL_loc_by_idx::name
const char * name
Definition: H5VLconnector.h:250
H5VL_wrap_class_t::get_wrap_ctx
herr_t(* get_wrap_ctx)(const void *obj, void **wrap_ctx)
Definition: H5VLconnector.h:303
H5VL_FILE_FLUSH
@ H5VL_FILE_FLUSH
Definition: H5VLconnector.h:140
H5VL_dataset_specific_t
H5VL_dataset_specific_t
Definition: H5VLconnector.h:101
H5VL_group_class_t::specific
herr_t(* specific)(void *obj, H5VL_group_specific_t specific_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:378
H5VL_dataset_class_t::specific
herr_t(* specific)(void *obj, H5VL_dataset_specific_t specific_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:338
H5VL_class_t::object_cls
H5VL_object_class_t object_cls
Definition: H5VLconnector.h:483
H5VL_OBJECT_BY_SELF
@ H5VL_OBJECT_BY_SELF
Definition: H5VLconnector.h:238
H5VL_class_t::introspect_cls
H5VL_introspect_class_t introspect_cls
Definition: H5VLconnector.h:486
H5VL_SUBCLS_GROUP
@ H5VL_SUBCLS_GROUP
Definition: H5VLconnector.h:61
H5VL_object_class_t::specific
herr_t(* specific)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_object_specific_t specific_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:411
H5VL_token_class_t::from_str
herr_t(* from_str)(void *obj, H5I_type_t obj_type, const char *token_str, H5O_token_t *token)
Definition: H5VLconnector.h:459
H5VL_GROUP_FLUSH
@ H5VL_GROUP_FLUSH
Definition: H5VLconnector.h:160
H5VL_class_t::link_cls
H5VL_link_class_t link_cls
Definition: H5VLconnector.h:482
H5VL_class_t
struct H5VL_class_t H5VL_class_t
H5VL_attr_class_t::read
herr_t(* read)(void *attr, hid_t mem_type_id, void *buf, hid_t dxpl_id, void **req)
Definition: H5VLconnector.h:316
H5VL_file_cont_info_t::blob_id_size
size_t blob_id_size
Definition: H5VLconnector.h:286
H5VL_class_t::dataset_cls
H5VL_dataset_class_t dataset_cls
Definition: H5VLconnector.h:478
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5VL_GET_CONN_LVL_TERM
@ H5VL_GET_CONN_LVL_TERM
Definition: H5VLconnector.h:423
H5VL_FILE_REOPEN
@ H5VL_FILE_REOPEN
Definition: H5VLconnector.h:141
H5VL_datatype_get_t
H5VL_datatype_get_t
Definition: H5VLconnector.h:111
H5VL_SUBCLS_REQUEST
@ H5VL_SUBCLS_REQUEST
Definition: H5VLconnector.h:64
H5VL_blob_class_t::optional
herr_t(* optional)(void *obj, void *blob_id, H5VL_blob_optional_t opt_type, va_list arguments)
Definition: H5VLconnector.h:452
H5VL_request_class_t::cancel
herr_t(* cancel)(void *req)
Definition: H5VLconnector.h:441
H5VL_attr_class_t
Definition: H5VLconnector.h:310
H5VL_FILE_GET_FAPL
@ H5VL_FILE_GET_FAPL
Definition: H5VLconnector.h:129
H5VL_ATTR_EXISTS
@ H5VL_ATTR_EXISTS
Definition: H5VLconnector.h:82
H5VL_class_t
Definition: H5VLconnector.h:463
H5VL_FILE_GET_CONT_INFO
@ H5VL_FILE_GET_CONT_INFO
Definition: H5VLconnector.h:128
H5VL_BLOB_SETNULL
@ H5VL_BLOB_SETNULL
Definition: H5VLconnector.h:229
H5VL_OBJECT_EXISTS
@ H5VL_OBJECT_EXISTS
Definition: H5VLconnector.h:203
H5VL_request_class_t::free
herr_t(* free)(void *req)
Definition: H5VLconnector.h:444
H5VL_loc_params_t::loc_by_idx
H5VL_loc_by_idx_t loc_by_idx
Definition: H5VLconnector.h:276
H5VL_blob_optional_t
int H5VL_blob_optional_t
Definition: H5VLconnector.h:233
H5VL_OBJECT_GET_TYPE
@ H5VL_OBJECT_GET_TYPE
Definition: H5VLconnector.h:196
H5VL_class_t::group_cls
H5VL_group_class_t group_cls
Definition: H5VLconnector.h:481
H5VL_request_class_t
Definition: H5VLconnector.h:438
H5VL_OBJECT_LOOKUP
@ H5VL_OBJECT_LOOKUP
Definition: H5VLconnector.h:204
H5VL_group_get_t
H5VL_group_get_t
Definition: H5VLconnector.h:153
H5ESpublic.h
H5VL_introspect_class_t
struct H5VL_introspect_class_t H5VL_introspect_class_t
H5VL_group_class_t::get
herr_t(* get)(void *obj, H5VL_group_get_t get_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:377
H5VL_link_create_type_t
H5VL_link_create_type_t
Definition: H5VLconnector.h:168
H5VL_class_t::initialize
herr_t(* initialize)(hid_t vipl_id)
Definition: H5VLconnector.h:469
H5VL_class_t::name
const char * name
Definition: H5VLconnector.h:467
H5VL_dataset_get_t
H5VL_dataset_get_t
Definition: H5VLconnector.h:91
H5VL_LINK_CREATE_UD
@ H5VL_LINK_CREATE_UD
Definition: H5VLconnector.h:171
H5VL_request_class_t::specific
herr_t(* specific)(void *req, H5VL_request_specific_t specific_type, va_list arguments)
Definition: H5VLconnector.h:442
H5VL_DATASET_REFRESH
@ H5VL_DATASET_REFRESH
Definition: H5VLconnector.h:104
H5Apublic.h
H5VL_wrap_class_t
struct H5VL_wrap_class_t H5VL_wrap_class_t
H5VL_BLOB_DELETE
@ H5VL_BLOB_DELETE
Definition: H5VLconnector.h:226
H5VL_loc_params_t
struct H5VL_loc_params_t H5VL_loc_params_t
H5VL_ATTR_GET_INFO
@ H5VL_ATTR_GET_INFO
Definition: H5VLconnector.h:72
H5VL_FILE_IS_ACCESSIBLE
@ H5VL_FILE_IS_ACCESSIBLE
Definition: H5VLconnector.h:144
H5VL_object_class_t
Definition: H5VLconnector.h:403
H5Fpublic.h
herr_t
int herr_t
Definition: H5public.h:128
H5VL_blob_specific_t
H5VL_blob_specific_t
Definition: H5VLconnector.h:225
H5VL_loc_type_t
H5VL_loc_type_t
Definition: H5VLconnector.h:237
hbool_t
bool hbool_t
Definition: H5public.h:159
H5VL_datatype_class_t::optional
herr_t(* optional)(void *obj, H5VL_datatype_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:354
H5VL_GROUP_REFRESH
@ H5VL_GROUP_REFRESH
Definition: H5VLconnector.h:161
H5VL_dataset_optional_t
int H5VL_dataset_optional_t
Definition: H5VLconnector.h:108
H5VL_DATASET_GET_STORAGE_SIZE
@ H5VL_DATASET_GET_STORAGE_SIZE
Definition: H5VLconnector.h:96
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5O_token_t
Definition: H5public.h:339
H5VL_attr_class_t::optional
herr_t(* optional)(void *obj, H5VL_attr_optional_t opt_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:321
H5VL_attr_get_t
H5VL_attr_get_t
Definition: H5VLconnector.h:70
H5VL_class_t::value
H5VL_class_value_t value
Definition: H5VLconnector.h:466
H5VL_OBJECT_BY_NAME
@ H5VL_OBJECT_BY_NAME
Definition: H5VLconnector.h:239
H5VL_loc_by_idx_t
struct H5VL_loc_by_idx H5VL_loc_by_idx_t
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_info_class_t::from_str
herr_t(* from_str)(const char *str, void **info)
Definition: H5VLconnector.h:296
H5VL_ATTR_GET_ACPL
@ H5VL_ATTR_GET_ACPL
Definition: H5VLconnector.h:71
H5VLget_file_type
H5_DLL hid_t H5VLget_file_type(void *file_obj, hid_t connector_id, hid_t dtype_id)
Definition: H5VL.c:705
H5_index_t
H5_index_t
Definition: H5public.h:316
H5VL_loc_by_name::name
const char * name
Definition: H5VLconnector.h:245
H5VL_file_specific_t
H5VL_file_specific_t
Definition: H5VLconnector.h:139
H5VL_file_cont_info_t::version
unsigned version
Definition: H5VLconnector.h:282
H5VL_attr_specific_t
H5VL_attr_specific_t
Definition: H5VLconnector.h:80
H5VL_link_class_t
struct H5VL_link_class_t H5VL_link_class_t
H5VL_DATASET_GET_DCPL
@ H5VL_DATASET_GET_DCPL
Definition: H5VLconnector.h:93
H5VL_loc_by_name_t
struct H5VL_loc_by_name H5VL_loc_by_name_t
H5VL_ATTR_GET_NAME
@ H5VL_ATTR_GET_NAME
Definition: H5VLconnector.h:73
H5VL_FILE_GET_FCPL
@ H5VL_FILE_GET_FCPL
Definition: H5VLconnector.h:130
H5VL_request_optional_t
int H5VL_request_optional_t
Definition: H5VLconnector.h:221
H5Rpublic.h
H5VL_SUBCLS_WRAP
@ H5VL_SUBCLS_WRAP
Definition: H5VLconnector.h:56
H5VL_attr_optional_t
int H5VL_attr_optional_t
Definition: H5VLconnector.h:88
H5VL_ATTR_DELETE
@ H5VL_ATTR_DELETE
Definition: H5VLconnector.h:81
H5VL_LINK_GET_VAL
@ H5VL_LINK_GET_VAL
Definition: H5VLconnector.h:178
H5VL_SUBCLS_NONE
@ H5VL_SUBCLS_NONE
Definition: H5VLconnector.h:54
H5VL_FILE_GET_INTENT
@ H5VL_FILE_GET_INTENT
Definition: H5VLconnector.h:132
H5VL_dataset_class_t
struct H5VL_dataset_class_t H5VL_dataset_class_t
H5VL_OBJECT_FLUSH
@ H5VL_OBJECT_FLUSH
Definition: H5VLconnector.h:206
H5VL_file_class_t::get
herr_t(* get)(void *obj, H5VL_file_get_t get_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:363
H5VL_dataset_class_t::write
herr_t(* write)(void *dset, 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: H5VLconnector.h:335
H5Opublic.h
H5VL_attr_class_t::specific
herr_t(* specific)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_attr_specific_t specific_type, hid_t dxpl_id, void **req, va_list arguments)
Definition: H5VLconnector.h:319