Page tree

The license could not be verified: License Certificate has expired!









 Registers a new VOL connector




hid_t H5VLregister_connector(const H5VL_class_t *cls, hid_t vipl_id)


const H5VL_class_t   *cls

IN: A pointer to the plugin structure to register
hid_t    vipl_idIN: Property list identifier


H5VL_REGISTER_CONNECTOR registers a new VOL connector as a member of the virtual object layer class. This VOL connector identifier is good until the library is closed or the connector is unregistered.

vipl_id is either H5P_DEFAULT or the identifier of a VOL initialization property list created with H5P_CREATE (H5Pcreate(H5P_VOL_INITIALIZE)). When created, this property list contains no library properties. If a VOL connector author decides that initialization-specific data are needed, they can be added to the empty list and retrieved by the connector in the VOL connector's initialize callback. Use of the VOL initialization property list is uncommon, as most VOL-specific properties are added to the file access property list via the connector's API calls which set the VOL connector for the file open/create. For more information, see the VOL documentation.

H5VL_class_t is defined in H5VLconnector.h in the source code. It contains class information for each VOL connector:

src / H5VLconnector.h [463:494]  hdf5_1_12  HDFFV/hdf5
typedef struct H5VL_class_t {
    /* Overall connector fields & callbacks */
    unsigned int version;                   /* VOL connector class struct version #     */
    H5VL_class_value_t value;               /* Value to identify connector              */
    const char *name;                       /* Connector name (MUST be unique!)         */
    unsigned cap_flags;                     /* Capability flags for connector           */
    herr_t (*initialize)(hid_t vipl_id);    /* Connector initialization callback        */
    herr_t (*terminate)(void);              /* Connector termination callback           */

    /* VOL framework */
    H5VL_info_class_t       info_cls;       /* VOL info fields & callbacks  */
    H5VL_wrap_class_t       wrap_cls;       /* VOL object wrap / retrieval callbacks */

    /* Data Model */
    H5VL_attr_class_t       attr_cls;       /* Attribute (H5A*) class callbacks */
    H5VL_dataset_class_t    dataset_cls;    /* Dataset (H5D*) class callbacks   */
    H5VL_datatype_class_t   datatype_cls;   /* Datatype (H5T*) class callbacks  */
    H5VL_file_class_t       file_cls;       /* File (H5F*) class callbacks      */
    H5VL_group_class_t      group_cls;      /* Group (H5G*) class callbacks     */
    H5VL_link_class_t       link_cls;       /* Link (H5L*) class callbacks      */
    H5VL_object_class_t     object_cls;     /* Object (H5O*) class callbacks    */

    /* Infrastructure / Services */
    H5VL_introspect_class_t introspect_cls; /* Container/connector introspection class callbacks */
    H5VL_request_class_t    request_cls;    /* Asynchronous request class callbacks */
    H5VL_blob_class_t       blob_cls;       /* 'Blob' class callbacks */
    H5VL_token_class_t      token_cls;      /* VOL connector object token class callbacks */

    /* Catch-all */
    herr_t (*optional)(void *obj, int op_type, hid_t dxpl_id, void **req, va_list arguments); /* Optional callback */
} H5VL_class_t;


Returns a VOL connector identifier on success and H5I_INVALID_HID on failure.



1.12.0Function introduced

--- Last Modified: February 18, 2020 | 09:09 AM