Commit Graph

23 Commits

Author SHA1 Message Date
Quincey Koziol
9e5dbf6906 Trim trailing whitespace 2020-04-20 18:12:00 -05:00
Jordan Henderson
e41f671d2f Introduce new H5VL _by_value routines 2020-01-28 18:18:38 -06:00
Dana Robinson
a92c735c9b Squashed commit of the token_refactoring branch: 2020-01-16 13:29:34 -08:00
Quincey Koziol
58cf795321 Refactor all the 'H5VL_*_optional' callbacks to move the type of operation out
of the va_list, so it's at least possible for another connector to know what
the operation is and decide whether to implement it or not.

Added a new VOL sub-class called "introspect" where callbacks that report
information about the connector or container can be placed.  Added an
'opt_query' callback to this sub-class, for a connector to report back
to the library whether a particular optional callback operation is supported.
Also added a 'get_conn_cls' introspection callback, to retrieve the H5VL_class_t
of a connector (either the "current" connector, H5VL_GET_CONN_LVL_CURR, or
the terminal connector, H5VL_GET_CONN_LVL_TERM).

Moved the "post open" operation from a file 'specific' operation to a file
'optional' operation, now that it's possible to detect (with the 'opt_query'
introspection callback) whether a VOL connector implements an optional
operation, without just returning an error.

Added new internal VOL helper routines: H5VL_object_is_native, to determine
if an object is in (or is a) native file, and H5VL_file_is_same, to determine
if two objects are in (or are) the same terminal VOL connector's container.
(And moved the special handling for FILE_IS_EQUAL operation out of internal VOL
callback routine into H5VL_file_is_same)

Made new dataset 'get' operation for H5Dvlen_get_buf_size, aligning it better
with other 'get' operations in API.

Fixed several issues with pass-through connectors, which are now passing the
'make check-passthrough-vol' tests again.

A bunch of warning and style cleanups as well.
2019-12-19 22:41:37 -06:00
Dana Robinson
43c48fbadc Fixed missing blob callbacks in test VOL connectors. 2019-12-03 15:14:57 -08:00
Dana Robinson
a18727bc77 Added a VOL initialization property list type. 2019-06-05 04:34:36 -07:00
Dana Robinson
0afb76228e Added code that disallows unregistering the native VOL connector. 2019-05-24 13:39:45 -07:00
Quincey Koziol
62198c2436 Add an 'unwrap' VOL callback, so that connectors can unwrap an underlying
object without closing it.  (Especially needed for pass-through connectors)
2019-04-21 14:45:54 -05:00
Quincey Koziol
d6663b95ac Revise "management" VOL callbacks into 'info' and object 'wrap / retrieval'
classes.
2019-02-23 17:02:29 -06:00
Quincey Koziol
f0656a57dc Remove incorrect comment. 2019-01-06 01:49:02 -06:00
Quincey Koziol
92300f954f Corrected comment in src/H5VLint.c, fixed pass-through info size in
src/H5VLpassthru.c, switched to stashing VOL connector ID & info in
API context (in src/H5CX.c, src/H5CXprivate.h, src/H5F.c, src/H5Fint.c, and
src/H5Fefc.c), patched up all sorts of issues in the tests, to make them work
with 'check-vfd' (and 'check-vol' again).
2019-01-05 23:06:45 -06:00
Quincey Koziol
50c4095c8c Remove duplicated comment. 2018-11-30 14:18:14 -06:00
Quincey Koziol
f3ad03a538 Switch H5VL_class_value_t from enum to unsigned integer 2018-11-28 22:21:45 -06:00
Quincey Koziol
6eabeabdaa Refactor infrastructure for setting FAPL information from environment
variables during testing, including connecting native, pass-through, and
dynamically loaded VOL connectors.   Also bring native and pass-through
VOL connectors into alignment, removing the "H5VLnative_private.h" header.
2018-11-28 17:38:03 -06:00
Quincey Koziol
6c99961bb2 Revert some of the changes to support the original property list value of
metadata read attempts.
2018-11-18 00:57:09 -06:00
Quincey Koziol
59c28780d3 Add VOL connector info to the flie access property list returned from
H5Fget_access_plist().  Also, other misc. cleanups, etc.
2018-11-18 00:38:29 -06:00
Quincey Koziol
1daa7b830a Switch driver | plugin => connector. 2018-11-04 01:27:23 -05:00
Quincey Koziol
305997501d Updates after merging changes from develop. 2018-10-26 00:54:29 -05:00
Quincey Koziol
4a32895724 Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into stackable_vol 2018-10-25 18:32:13 -05:00
Quincey Koziol
0df6e44a6e Squashed commit of private branch changes to support stackable VOL plugins.
modified:   test/dsets.c
2018-10-24 23:52:47 -05:00
Dana Robinson
46c5b059f1 Split H5VLnative.h into public and private files and updated 2018-10-20 13:06:37 -07:00
Dana Robinson
2d6d5cad0c Updates to the VOL ID and object API calls.
This brings the H5VL code in line with the H5I code regarding
naming, parameter order, etc.

Several public API calls were affected by this change.

These changed names to reflect their use with VOL drivers:
    H5VLregister()          -->     H5VLregister_driver()
    H5VLregister_by_name()  -->     H5VLregister_driver_by_name()
    H5VLunregister()        -->     H5VLunregister_driver()
    H5VLis_registered()     -->     H5VLis_driver_registered()

This call was renamed to match H5Iregister(). The order of the first
two parameters also reversed and the object pointer is now const.
    H5VLobject_register()   -->     H5VLregister()
2018-10-17 02:06:28 -07:00
Dana Robinson
e962df1591 VOL FEATURE 2018-10-10 08:10:15 -07:00