/** \page VOL_Connector HDF5 Virtual Object Layer (VOL) Connector Author Guide Navigate back: \ref index "Main"
H5VLpublic.h | Public VOL header. |
H5VLconnector.h | Main header for connector authors. Contains definitions for the main VOL struct and callbacks, enum values, etc. |
H5VLconnector_passthru.h | Helper routines for passthrough connector authors. |
H5VLnative.h | Native VOL connector header. May be useful if your connector will attempt to implement native HDF5 API calls that are handled via the optional callbacks. |
H5PLextern.h | Needed if your connector will be built as a plugin. |
VOL connector class, H5VLpublic.h \snippet H5VLconnector.h H5VL_class_t_snip |
Signature: |
---|
\code size_t size; \endcode |
Signature: |
---|
\code void * (*copy)(const void *info); \endcode |
Arguments: |
\code info (IN): The connector-specific info to copy. \endcode |
Signature: |
---|
\code herr_t (*cmp)(int *cmp_value, const void *info1, const void *info2); \endcode |
Arguments: |
\code cmp_value (OUT): A strcmp-like compare value. info1 (IN): The 1st connector-specific info to copy. info2 (IN): The 2nd connector-specific info to copy. \endcode |
Signature: |
---|
\code herr_t (*free)(void *info); \endcode |
Arguments: |
\code info (IN): The connector-specific info to free. \endcode |
Signature: |
---|
\code herr_t (*to_str)(const void *info, char **str); \endcode |
Arguments: |
\code info (IN): The connector-specific info to convert to a configuration string. str (OUT): The constructed configuration string. \endcode |
Signature: |
---|
\code herr_t (*from_str)(const char *str, void **info); \endcode |
Arguments: |
\code str (IN): The connector-specific configuration string. info (OUT): The connector-specific info generated from the configuration string. \endcode |
Signature: |
---|
\code void * (*get_object)(const void *obj); \endcode |
Arguments: |
\code obj (IN): Object being unwrapped. \endcode |
Signature: |
---|
\code herr_t (*get_wrap_ctx)(const void *obj, void **wrap_ctx); \endcode |
Arguments: |
\code obj (IN): Object for which we need a context. wrap_ctx (OUT): Context. \endcode |
Signature: |
---|
\code void * (*wrap_object)(void *obj, H5I_type_t obj_type, void *wrap_ctx); \endcode |
Arguments: |
\code obj (IN): Object being wrapped. obj_type (IN): Object type (see H5Ipublic.h). wrap_ctx (IN): Context. \endcode |
Signature: |
---|
\code void * (*unwrap_object)(void *obj); \endcode |
Arguments: |
\code obj (IN): Object being unwrapped. \endcode |
Signature: |
---|
\code herr_t (*free_wrap_ctx)(void *wrap_ctx); \endcode |
Arguments: |
\code wrap_ctx (IN): Context to be freed. \endcode |
Signature: |
---|
\code void *(*create)(void *obj, 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); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the attribute needs to be created or where the look-up of the target object needs to start. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". attr_name (IN): The name of the attribute to be created. type_id (IN): The datatype of the attribute. space_id (IN): The dataspace of the attribute. acpl_id (IN): The attribute creation property list. aapl_id (IN): The attribute access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*open)(void *obj, H5VL_loc_params_t *loc_params, const char *attr_name, hid_t aapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the attribute needs to be opened or where the look-up of the target object needs to start. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". attr_name (IN): The name of the attribute to be opened. aapl_id (IN): The attribute access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*read)(void *attr, hid_t mem_type_id, void *buf, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code attr (IN): Pointer to the attribute object. mem_type_id (IN): The memory datatype of the attribute. buf (OUT): Data buffer to be read into. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*write)(void *attr, hid_t mem_type_id, const void *buf, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code attr (IN): Pointer to the attribute object. mem_type_id (IN): The memory datatype of the attribute. buf (IN): Data buffer to be written. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get)(void *obj, H5VL_attr_get_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): An attribute or location object where information needs to be retrieved from. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_loc_params_t *loc_params, H5VL_attr_specific_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The location object where the operation needs to happen. loc_params (IN): A pointer to the location parameters as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*close)(void *attr, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code attr (IN): Pointer to the attribute object. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*create)(void *obj, 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); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the dataset needs to be created or where the look-up of the target object needs to start. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_SELF in this callback. name (IN): The name of the dataset to be created. lcpl_id (IN): The link creation property list. type_id (IN): The datatype of the dataset. space_id (IN): The dataspace of the dataset. dcpl_id (IN): The dataset creation property list. dapl_id (IN): The dataset access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*open)(void *obj, H5VL_loc_params_t *loc_params, const char *name, hid_t dapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the dataset needs to be opened or where the look-up of the target object needs to start. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_SELF in this callback. name (IN): The name of the dataset to be opened. dapl_id (IN): The dataset access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code 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); \endcode |
Arguments: |
\code dset (IN): Pointer to the dataset object. mem_type_id (IN): The memory datatype of the data. mem_space_id (IN): The memory dataspace selection. file_space_id (IN): The file dataspace selection. dxpl_id (IN): The data transfer property list. buf (OUT): Data buffer to be read into. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code 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); \endcode |
Arguments: |
\code dset (IN): Pointer to the dataset object. mem_type_id (IN): The memory datatype of the data. mem_space_id (IN): The memory dataspace selection. file_space_id (IN): The file dataspace selection. dxpl_id (IN): The data transfer property list. buf (IN): Data buffer to be written from. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get)(void *dset, H5VL_dataset_get_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code dset (IN): The dataset object where information needs to be retrieved from. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_file_specific_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The dset where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*close)(void *dset, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code dset (IN): Pointer to the dataset object. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*commit)(void *obj, 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); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the datatype needs to be committed or where the look-up of the target object needs to start. loc_params (IN): Pointer to location parameters as explained in "Mapping the API to the Callbacks". In this call, the location type is always H5VL_OBJECT_BY_SELF. name (IN): The name of the datatype to be created. typeid (IN): The transient datatype identifier to be committed. lcpl_id (IN): The link creation property list. tcpl_id (IN): The datatype creation property list. tapl_id (IN): The datatype access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*open) (void *obj, H5VL_loc_params_t *loc_params, const char * name, hid_t tapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the datatype needs to be opened or where the look-up of the target object needs to start. loc_params (IN): Pointer to location parameters as explained in "Mapping the API to the Callbacks". In this call, the location type is always H5VL_OBJECT_BY_SELF. name (IN): The name of the datatype to be opened. tapl_id (IN): The datatype access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get) (void *obj, H5VL_datatype_get_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The named datatype to retrieve information from. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_loc_params_t *loc_params, H5VL_object_specific_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. loc_params (IN): Pointer to location parameters as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*close) (void *dt, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code dt (IN): Pointer to the datatype object. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*create)(const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id, hid_tdxpl_id, void **req); \endcode |
Arguments: |
\code name (IN): The name of the container to be created. flags (IN): The creation flags of the container. fcpl_id (IN): The file creation property list. fapl_id (IN): The file access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*open)(const char *name, unsigned flags, hid_t fapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code name (IN): The name of the container to open. flags (IN): The open flags of the container. fapl_id (IN): The file access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get)(void *obj, H5VL_file_get_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where information needs to be retrieved from. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_file_specific_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*close)(void *file, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code file (IN): Pointer to the file. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*create)(void *obj, H5VL_loc_params_t *loc_params, const char *name, hid_t gcpl_id,hid_t gapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the group needs to be created or where the look-up of the target object needs to start. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_SELF in this callback. name (IN): The name of the group to be created. dcpl_id (IN): The group creation property list. It contains all the group creation properties in addition to the link creation property list of the create operation (an hid_t) that can be retrieved with the property H5VL_GRP_LCPL_ID. gapl_id (IN): The group access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*open)(void *obj, H5VL_loc_params_t *loc_params, const char *name, hid_t gapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): Pointer to an object where the group needs to be opened or where the look-up of the target object needs to start. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_SELF in this callback. name (IN): The name of the group to be opened. gapl_id (IN): The group access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get)(void *obj, H5VL_group_get_args_t *args, hid_t dxpl_id, void **req) \endcode |
Arguments: |
\code obj (IN): The group object where information needs to be retrieved from. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_loc_params_t *loc_params, H5VL_object_specific_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where the operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*close)(void *group, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code group (IN): Pointer to the group object. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*create)(H5VL_link_create_args_t *args, void *obj, H5VL_loc_params_t *loc_params, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req) \endcode |
Arguments: |
\code args (IN/OUT): A pointer to the arguments struct. obj (IN): Pointer to an object where the link needs to be created from. loc_params (IN): Pointer to the location parameters as explained in "Mapping the API to the Callbacks" for the source object. lcplid (IN): The link creation property list. It contains all the link creation properties in addition to other API parameters depending on the creation type, which will be detailed next. laplid (IN): The link access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*copy)(void *src_obj, H5VL_loc_params_t *loc_params1, void *dst_obj, H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code src_obj (IN): original/source object or file. loc_params1 (IN): Pointer to the location parameters for the source object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_NAME in this callback. dst_obj (IN): destination object or file. loc_params2 (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_NAME in this callback. lcpl_id (IN): The link creation property list. lapl_id (IN): The link access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*move)(void *src_obj, H5VL_loc_params_t *loc_params1, void *dst_obj, H5VL_loc_params_t *loc_params2, hid_t lcpl_id, hid_t lapl_id, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code src_obj (IN): original/source object or file. loc_params1 (IN): Pointer to the location parameters for the source object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_NAME in this callback. dst_obj (IN): destination object or file. loc_params2 (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_NAME in this callback. lcpl_id (IN): The link creation property list. lapl_id (IN): The link access property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get)(void *obj, H5VL_loc_params_t *loc_params, H5VL_link_get_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The file or group object where information needs to be retrieved from. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_NAME or H5VL_OBJECT_BY_IDX in this callback. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_loc_params_t *loc_params, H5VL_link_specific_args_t *args, hid_t dxpl_id, void **req) \endcode |
Arguments: |
\code obj (IN): The location object where operation needs to happen. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where operation needs to happen. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code void *(*open)(void *obj, H5VL_loc_params_t *loc_params, H5I_type_t *opened_type, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): The container or object where operation needs to happen. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". opened_type (OUT): Buffer to return the type of the object opened (H5I_GROUP or H5I_DATASET or H5I_DATATYPE). dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*copy)(void *src_obj, H5VL_loc_params_t *loc_params1, const char *src_name, void *dst_obj, H5VL_loc_params_t *loc_params2, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id, void **req) \endcode |
Arguments: |
\code src_obj (IN): Pointer to location of the source object to be copied. loc_params1 (IN): Pointer to the location parameters for the source object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_SELF in this callback. src_name (IN): Name of the source object to be copied. dst_obj (IN): Pointer to location of the destination object or file. loc_params2 (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". The type can be only H5VL_OBJECT_BY_SELF in this callback. dst_name (IN): Name o be assigned to the new copy. ocpypl_id (IN): The object copy property list. lcpl_id (IN): The link creation property list. dxpl_id (IN): The data transfer property list. req (IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get)(void *obj, H5VL_loc_params_t *loc_params, H5VL_object_get_args_t *args, hid_t dxpl_id, void **req) \endcode |
Arguments: |
\code obj (IN): A location object where information needs to be retrieved from. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, H5VL_loc_params_t *loc_params, H5VL_object_specific_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): A location object where he operation needs to happen. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, const H5VL_loc_params_t *loc_params, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): A container or object where he operation needs to happen. loc_params (IN): Pointer to the location parameters for the destination object as explained in "Mapping the API to the Callbacks". args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code herr_t (*get_conn_cls)(void *obj, H5VL_get_conn_lvl_t lvl, const struct H5VL_class_t **conn_cls); \endcode |
Arguments: |
\code obj (IN): The VOL object. lvl (IN): Current or terminal connector. cls (OUT): A const pointer to the connector. \endcode |
Signature: |
---|
\code herr_t (*get_cap_flags)(const void *info, unsigned *cap_flags) \endcode |
Arguments: |
\code info (IN): A const pointer to pertinent VOL info. cap_flags (OUT): A pointer to capability flags. \endcode |
Signature: |
---|
\code herr_t (*opt_query)(void *obj, H5VL_subclass_t cls, int opt_type, hbool_t *supported); \endcode |
Arguments: |
\code obj (IN): The VOL object. cls (IN): The VOL 'class' to query. opt_type (IN): The specific option to query. supported (OUT): Whether the operation is supported or not. \endcode |
Signature: |
---|
\code herr_t (*wait)(void *req, uint64_t timeout, H5VL_request_status_t *status); \endcode |
Arguments: |
\code req (IN): The async request on which to wait. timeout (IN): The timeout value. status (IN): The status. \endcode |
Signature: |
---|
\code herr_t (*notify)(void *req, H5VL_request_notify_t cb, void *ctx); \endcode |
Arguments: |
\code req (IN): The async request that will receive the notify callback. cb (IN): The notify callback for the request. ctx (IN): The request's context. \endcode |
Signature: |
---|
\code herr_t (*cancel)(void *req, H5VL_request_status_t *status); \endcode |
Arguments: |
\code req (IN): The async request to be cancelled. status (IN): The status. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *req, H5VL_request_specific_args_t *args); \endcode |
Arguments: |
\code req (IN): The async request on which to perform the operation. args (IN/OUT): A pointer to the arguments struct. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *req, H5VL_optional_args_t *args); \endcode |
Arguments: |
\code req (IN): The async request on which to perform the operation. args (IN/OUT): A pointer to the arguments struct. \endcode |
Signature: |
---|
\code herr_t (*free)(void *req); \endcode |
Arguments: |
\code req (IN): The async request to be freed. \endcode |
Signature: |
---|
\code herr_t (*put)(void *obj, const void *buf, size_t size, void *blob_id, void *ctx); \endcode |
Arguments: |
\code obj (IN): Pointer to the blob container. buf (IN): Pointer to the blob. size (IN): Size of the blob. blob_id (OUT): Pointer to the blob's connector-specific ID. ctx (IN): Connector-specific blob context. \endcode |
Signature: |
---|
\code herr_t (*get)(void *obj, const void *blob_id, void *buf, size_t size, void *ctx); \endcode |
Arguments: |
\code obj (IN): Pointer to the blob container. blob_id (IN): Pointer to the blob's connector-specific ID. buf (IN/OUT): Pointer to the blob. size (IN): Size of the blob. ctx (IN): Connector-specific blob context. \endcode |
Signature: |
---|
\code herr_t (*specific)(void *obj, void *blob_id, H5VL_blob_specific_args_t *args); \endcode |
Arguments: |
\code obj (IN): Pointer to the blob container. blob_id (IN): Pointer to the blob's connector-specific ID. args (IN/OUT): A pointer to the arguments struct. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, void *blob_id, H5VL_optional_args_t *args); \endcode |
Arguments: |
\code obj (IN): Pointer to the blob container. blob_id (IN): Pointer to the blob's connector-specific ID. args (IN/OUT): A pointer to the arguments struct. \endcode |
Signature: |
---|
\code herr_t (*cmp)(void *obj, const H5O_token_t *token1, const H5O_token_t *token2, int *cmp_value); \endcode |
Arguments: |
\code obj (IN): The underlying VOL object. token1 (IN): The first token to compare. token2 (IN): The second token to compare. cmp_value (OUT): A value like strcmp. \endcode |
Signature: |
---|
\code herr_t (*to_str)(void *obj, H5I_type_t obj_type, const H5O_token_t *token, char **token_str) \endcode |
Arguments: |
\code obj (IN): The underlying VOL object. obj_type (IN): The type of the object. token (IN): The token to turn into a string representation. token_str (OUT): The string representation of the token. \endcode |
Signature: |
---|
\code herr_t (*from_str)(void *obj, H5I_type_t obj_type, const char *token_str, H5O_token_t *token); \endcode |
Arguments: |
\code obj (IN): The underlying VOL object. obj_type (IN): The type of the object. token_str (IN): The string representation of the token. token (OUT): The token reated from the string representation. \endcode |
Signature: |
---|
\code herr_t (*optional)(void *obj, H5VL_optional_args_t *args, hid_t dxpl_id, void **req); \endcode |
Arguments: |
\code obj (IN): A container or object where he operation needs to happen. args (IN/OUT): A pointer to the arguments struct. dxpl_id (IN): The data transfer property list. req IN/OUT): A pointer to the asynchronous request of the operation created by the connector. \endcode |
Signature: |
---|
\code hid_t H5VLregister_connector_by_name(const char *connector_name, hid_t vipl_id); \endcode |
Arguments: |
\code connector_name (IN): The connector name to search for and register. vipl_id (IN): An ID for a VOL initialization property list (vipl). \endcode |
Signature: |
---|
\code hid_t H5VLregister_connector_by_value(H5VL_class_value_t connector_value, hid_t vipl_id); \endcode |
Arguments: |
\code connector_value (IN): The connector value to search for and register. vipl_id (IN): An ID for a VOL initialization property list (vipl). \endcode |
Signature: |
---|
\code htri_t H5VLis_connector_registered_by_name(const char *name); \endcode |
Arguments: |
\code name (IN): The connector name to check for. \endcode |
Signature: |
---|
\code htri_t H5VLis_connector_registered_by_value(H5VL_class_value_t connector_value); \endcode |
Arguments: |
\code connector_value (IN): The connector value to check for. \endcode |
Signature: |
---|
\code hid_t H5VLget_connector_id(hid_t obj_id); \endcode |
Arguments: |
\code obj_id (IN): An ID for an HDF5 VOL object. \endcode |
Signature: |
---|
\code hid_t H5VLget_connector_id_by_name(const char *name); \endcode |
Arguments: |
\code name (IN): The connector name to check for. \endcode |
Signature: |
---|
\code hid_t H5VLget_connector_id_by_value(H5VL_class_value_t connector_value); \endcode |
Arguments: |
\code connector_value (IN): The connector value to check for. \endcode |
Signature: |
---|
\code ssize_t H5VLget_connector_name(hid_t id, char *name /*out*/, size_t size); \endcode |
Arguments: |
\code id (IN): The object identifier to check. name (OUT): Buffer pointer to put the connector name. If NULL, the library just returns thesize required to store the connector name. size (IN): the size of the passed in buffer. \endcode |
Signature: |
---|
\code herr_t H5VLclose(hid_t connector_id); \endcode |
Arguments: |
\code connector_id (IN): A valid identifier of the connector to close. \endcode |
Signature: |
---|
\code herr_t H5VLunregister_connector(hid_t connector_id); \endcode |
Arguments: |
\code connector_id (IN): A valid identifier of the connector to unregister. \endcode |
Signature: |
---|
\code herr_t H5VLquery_optional(hid_t obj_id, H5VL_subclass_t subcls, int opt_type, uint64_t *flags); \endcode |
Arguments: |
\code obj_id (IN): A valid identifier of a VOL-managed object. subcls (IN): The subclass of the optional operation. opt_type (IN): The optional operation. The native VOL connector uses hard-coded values. Other VOL connectors get this value when the optional operations are registered. flags (OUT): Bitwise flags indicating support and behavior. \endcode |
Signature: |
---|
\code hid_t H5VLregister_connector(const H5VL_class_t *cls, hid_t vipl_id); \endcode |
Arguments: |
\code cls (IN): A pointer to the connector structure to register. vipl_id (IN): An ID for a VOL initialization property list (vipl). \endcode |
Signature: |
---|
\code void *H5VLobject(hid_t obj_id); \endcode |
Arguments: |
\code obj_id (IN): identifier of the object to dereference. \endcode |
Signature: |
---|
\code hid_t H5VLget_file_type(void *file_obj, hid_t connector_id, hid_t dtype_id); \endcode |
Arguments: |
\code file_obj (IN): pointer to a file or file object's connector-specific data. connector_id (IN): A valid identifier of the connector to use. dtype_id (IN): A valid identifier for the type. \endcode |
Signature: |
---|
\code hid_t H5VLpeek_connector_id_by_name(const char *name); \endcode |
Arguments: |
\code name (IN): name of the connector to query. \endcode |
Signature: |
---|
\code hid_t H5VLpeek_connector_id_by_value(H5VL_class_value_t value); \endcode |
Arguments: |
\code value (IN): value of the connector to query. \endcode |
Signature: |
---|
\code herr_t H5VLcmp_connector_cls(int *cmp, hid_t connector_id1, hid_t connector_id2); \endcode |
Arguments: |
\code cmp (OUT): a value like strcmp. connector_id1 (IN): the ID of the first connector to compare. connector_id2 (IN): the ID of the second connector to compare \endcode |
Signature: |
---|
\code hid_t H5VLwrap_register(void *obj, H5I_type_t type); \endcode |
Arguments: |
\code obj (IN): an object to wrap. type (IN): the type of the object (see below). \endcode |
Signature: |
---|
\code herr_t H5VLretrieve_lib_state(void **state); \endcode |
Arguments: |
\code state (OUT): the library state. \endcode |
Signature: |
---|
\code herr_t H5VLstart_lib_state(void); \endcode |
Signature: |
---|
\code herr_t H5VLrestore_lib_state(const void *state); \endcode |
Arguments: |
\code state (IN): the library state. \endcode |
Signature: |
---|
\code herr_t H5VLfinish_lib_state(void); \endcode |
Signature: |
---|
\code herr_t H5VLfree_lib_state(void *state); \endcode |
Arguments: |
\code state (IN): the library state. \endcode |
VOL Callback | HDF5 API Call |
FILE | |
---|---|
create | \li #H5Fcreate |
open | \li #H5Fopen |
get | \li #H5Fget_access_plist \li #H5Fget_create_plist \li #H5Fget_fileno \li #H5Fget_intent \li #H5Fget_name \li #H5Fget_obj_count \li #H5Fget_obj_ids |
specific | \li #H5Fdelete \li #H5Fflush \li #H5Fis_accessible \li #H5Fis_hdf5 (deprecated, hard-coded to use native connector) \li #H5Freopen |
close | \li #H5Fclose |
GROUP | |
create | \li #H5Gcreate1 (deprecated) \li #H5Gcreate2 \li #H5Gcreate_anon |
open | \li #H5Gopen1 (deprecated) \li #H5Gopen2 |
get | \li #H5Gget_create_plist \li #H5Gget_info \li #H5Gget_info_by_idx \li #H5Gget_info_by_name \li #H5Gget_num_objs (deprecated) |
specific | \li #H5Fmount \li #H5Funmount \li #H5Gflush \li #H5Grefresh |
close | \li #H5Gclose |
DATASET | |
create | \li #H5Dcreate1 (deprecated) \li #H5Dcreate2 |
open | \li #H5Dopen1 (deprecated) \li #H5Dopen2 |
read | \li #H5Dread |
write | \li #H5Dwrite |
get | \li #H5Dget_access_plist \li #H5Dget_create_plist \li #H5Dget_space \li #H5Dget_space_status \li #H5Dget_storage_size \li #H5Dget_type |
specific | \li #H5Dextend (deprecated) \li #H5Dflush \li #H5Drefresh \li #H5Dset_extent |
close | \li #H5Dclose |
OBJECT | |
open | \li #H5Oopen \li #H5Oopen_by_addr (deprecated) \li #H5Oopen_by_idx \li #H5Oopen_by_token |
copy | \li #H5Ocopy |
get | \li #H5Oget_info1 (deprecated) \li #H5Oget_info2 (deprecated) \li #H5Oget_info3 |
specific | \li #H5Odecr_refcount \li #H5Oexists_by_name \li #H5Oflush \li #H5Oincr_refcount \li #H5Orefresh \li #H5Ovisit_by_name1 (deprecated) \li #H5Ovisit_by_name2 (deprecated) \li #H5Ovisit_by_name3 \li #H5Ovisit1 (deprecated) \li #H5Ovisit2 (deprecated) \li #H5Ovisit3 |
close | \li #H5Oclose |
LINK | |
create | \li #H5Glink (deprecated) \li #H5Glink2 (deprecated) \li #H5Lcreate_hard \li #H5Lcreate_soft \li #H5Lcreate_ud \li #H5Olink |
copy | \li #H5Lcopy |
move | \li #H5Gmove (deprecated) \li #H5Gmove2 (deprecated) \li #H5Lmove |
get | \li #H5Gget_linkval (deprecated) \li #H5Lget_info1 (deprecated) \li #H5Lget_info2 \li #H5Lget_info_by_idx \li #H5Lget_name_by_idx \li #H5Lget_val \li #H5Lget_val_by_idx |
specific | \li #H5Gunlink (deprecated) \li #H5Ldelete \li #H5Ldelete_by_idx \li #H5Lexists \li #H5Literate1 (deprecated) \li #H5Literate2 \li #H5Literate_by_name1 (deprecated) \li #H5Literate_by_name2 \li #H5Lvisit1 (deprecated) \li #H5Lvisit2 \li #H5Lvisit_by_name1 (deprecated) \li #H5Lvisit_by_name2 |
DATATYPE | |
commit | \li #H5Tcommit1 (deprecated) \li #H5Tcommit2 \li #H5Tcommit+anon |
open | \li #H5Topen1 (deprecated) \li #H5Topen2 |
get | \li #H5Tget_create_plist |
specific | \li #H5Tflush \li #H5Trefresh |
close | \li #H5Tclose |
ATTRIBUTE | |
create | \li #H5Acreate1 (deprecated) \li #H5Acreate2 \li #H5Acreate_by_name |
open | \li #H5Aopen \li #H5Aopen_by_idx \li #H5Aopen_by_name \li #H5Aopen_idx (deprecated) \li #H5Aopen_name (deprecated) |
read | \li #H5Aread |
write | \li #H5Awrite |
get | \li #H5Aget_create_plist \li #H5Aget_info \li #H5Aget_info_by_idx \li #H5Aget_info_by_name \li #H5Aget_name \li #H5Aget_name_by_idx \li #H5Aget_space \li #H5Aget_storage_size \li #H5Aget_type |
specific | \li #H5Adelete \li #H5Adelete_by_idx \li #H5Adelete_by_name \li #H5Aexists \li #H5Aexists_by_name \li #H5Aiterate1 (deprecated) \li #H5Aiterate2 \li #H5Aiterate_by_name \li #H5Arename \li #H5Arename_by_name |
close | \li #H5Aclose |