Commit Graph

24 Commits

Author SHA1 Message Date
Dana Robinson
35c0d5cdfc Fix for passthrough VOL not passing tools tests due to incorrect
optional callback queries.
2020-04-08 16:44:19 -07:00
Dana Robinson
3d29cbb27f Very minor comment change in H5VLconnector.h. 2020-03-12 13:21:11 -07:00
Quincey Koziol
38af6ee3d5 Switch the 'get offset' operation from a dataset 'get' callback to a [native]
dataset 'optional' operation.
2020-02-28 14:06:28 -06: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
0225e6d596 Small changes from the token_refactoring branch, to reduce the delta to develop 2020-01-03 22:16:38 -06:00
Quincey Koziol
cf5cd3b639 Refactor H5Dvlen_get_buf_size to use optional dataset operation, with generic fallback for VOL connectors that don't implement operation 2019-12-20 22:41:00 -06: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
Jerome Soumagne
7b03a1c036 Fix H5VL_token_t type and fix H5VL_loc_by_token to use H5VL_token_t * 2019-12-05 14:42:06 -06:00
Neil Fortner
e23e67798a Implement file comparison VOL callback. Other changes to allow
references to work with non-native connectors.  There is a bug
somewhere.
2019-11-27 16:50:01 -06:00
Jerome Soumagne
68852d726c Merge pull request #2057 in HDFFV/hdf5 from ~JSOUMAGNE/hdf5:topic_get_file_id_native to develop
* commit 'f46494ffd8449fc610798c8af312362608029d3d':
  Remove H5VL_NATIVE_FILE_GET_FILE_ID and add H5VL_OBJECT_GET_FILE
2019-11-27 14:19:41 -06:00
Jerome Soumagne
f46494ffd8 Remove H5VL_NATIVE_FILE_GET_FILE_ID and add H5VL_OBJECT_GET_FILE
Remove H5F__get_file_id() and use only private routine instead
2019-11-27 14:17:08 -06:00
Dana Robinson
9a93ecac52 Trivial parameter renaming in VOL API calls. 2019-11-25 15:30:04 -08:00
Neil Fortner
1dbec40d46 Implement H5VLget_file_type() to return a copy of a datatype with the
location set to be in a file.  Only meant to be used by VOL connectors.
Implement H5VLpeek_connector_id() to support connectors querying their
own IDs.  Fix app_ref with connector IDs in a couple places (external
VOLs registered as default through ENV should be visible to the
application).  Modify vlen and reference interfaces to work with
arbitrary VOL connectors.  Implement file "post open" specific
callback, to enable connectors to update their file structs after a
wrap context has been set.
2019-11-08 15:14:33 -06:00
Jerome Soumagne
0f4e080309 Remove ability to loc by ref from H5VL layer 2019-10-08 14:30:24 -05:00
Jerome Soumagne
2c9699a61d Add H5VL_OBJECT_GET_TYPE to get object type
Add H5VL_OBJECT_LOOKUP to lookup objects
2019-10-08 14:30:24 -05:00
Jerome Soumagne
0922e60de2 Add H5VL_MAX_TOKEN_SIZE and H5VL_token_t 2019-10-08 14:30:24 -05:00
Quincey Koziol
bf65652e9b Adapt Jerome's "file info" H5VL 'get' query to retrieve container token info.
Remove "by address" location for VOL operations. (Switching to "by token")
2019-10-08 14:30:24 -05:00
Jerome Soumagne
fa6fdde1bf Fix H5VL_blob_get to return size of blob
Fix const in blob API

Add H5HG_HEAP_ID_SIZE macro to return native blob size

Add maximum size for blobs

Fix blob API callbacks to pass VOL file object

Add public wrappers for blob VOL API

Implement passthrough blob callbacks

Update H5Tvlen after callback changes

Update trace information for H5VL blob routines

Fix public header inclusion in native and passthru headers
2019-10-08 14:30:24 -05:00
Quincey Koziol
eaa65c862b Add 'blob' callbacks to VOL, along with a native implementation to store them
in the global heap, and changed the VL datatype conversion code to use blobs.

Move encode/decode of sequence lengths into VL datatype callbacks, from native
VOL blob routines.
2019-10-08 14:30:23 -05:00
Dana Robinson
5b6bd7c922 Added the map (H5M) API 2019-08-13 01:36:42 -07:00
Dana Robinson
a2890b5d09 Added missing DELETE enum value. 2019-06-14 13:00:17 -07:00
Dana Robinson
bb9370d777 Merge branch 'develop' into vol_dev_headers
Also moved the wrapper functions from the H5VLconnector.h to
H5VLconnector_passthru.h
2019-06-14 12:23:06 -07:00
Dana Robinson
d5a8b2a80c Split VOL connector routines into separate headers:
* H5VLconnector.h for terminal connector things
* H5VLconnector_passthru.h for passthrough connector things

Note that these headers are arranged such that they are included in
hdf5.h so VOL connectors only need to include that. The separation into
multiple headers is mainly for readability.
2019-05-24 02:22:08 -07:00