Commit Graph

44 Commits

Author SHA1 Message Date
Dana Robinson
1ae6daaa80 Sync with develop 2020-08-01 09:18:18 -07:00
Allen Byrne
5ba81f88a3 Whitespace cleanup 2020-05-13 08:18:11 -05:00
Jordan Henderson
edec1f017d Introduce new H5VL _by_value routines 2020-01-29 16:59:41 -06:00
Dana Robinson
2b1709f6ff Squashed commit of the token_refactoring branch: 2020-01-18 20:02:16 -08:00
Quincey Koziol
9a155a538b Cherry pick of 0225e6d596 2020-01-04 10:05:22 -06:00
Quincey Koziol
7d87aea63f 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.
2020-01-04 10:02:08 -06: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
650f9e616d Merge pull request #1727 in HDFFV/hdf5 from ~DEROBINS/hdf5_der:H5Fdelete_vol_only to develop
* commit 'bb5e7822f447b8a175e807e2e7bad5e0192394e5':
  Fixed an error string typo
  Added H5Fdelete call and VOL support (but no VFD/native implementation).
2019-06-13 16:58:58 -05:00
Scot Breitenfeld
9a82fa66d4 Merge pull request #1708 in HDFFV/hdf5 from ~BRTNFLD/hdf5_msb:H10621 to develop
* commit '0742c15fca95965ed4eb87c6d54f41bb07bd4526':
  makefile clean-up
  move the vol_info to an optional parameter
  added H5Pset_vol
  added vol connector
  added test for vol_connector
  removed H5VL constants
  removed VOLL NULL connector and replaced it with native VOL
  added connector_name test
  added missing files
  add tests
  added more tests
  added missing files
  Implemented VOL APIs and C constants, no tests
  Implemented VOL APIs and C constants, no tests
  initial API impl.
2019-06-12 16:06:21 -05:00
Dana Robinson
2bd041f878 Added H5Fdelete call and VOL support (but no VFD/native implementation). 2019-06-11 09:04:23 -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
Jerome Soumagne
982ed75720 Rename H5VL_ID_GET_NAME to H5VL_OBJECT_GET_NAME
Implement native H5VL_OBJECT_GET_NAME by addr
2019-05-23 13:48:04 -05:00
Quincey Koziol
6d912bf0b5 Refactor group creation parameters to take them out of the group creation
property list and pass them as normal function parameters.
2019-04-25 01:12:46 -05:00
Quincey Koziol
b8bb6aec7e Refactor link creation parameters from being passing as properties in the
link creation property list to vararg function parameters.
2019-04-25 00:53:58 -05:00
Quincey Koziol
9fadb39656 Refactor attribute creation parameters to move parameters out of creation
property list and into function parameters.
2019-04-24 23:33:56 -05:00
Quincey Koziol
0ca6b1305f Refactor dataset creation parameters out of the dataset creation property
list and pass them as regular function parameters.
2019-04-24 22:31:36 -05:00
M. Scot Breitenfeld
7dd53873f7 Merge branch 'develop' into H10621 2019-04-24 12:57:30 -05: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
2eac0fccbc Add H5Fget_fileno() API routine. 2019-04-11 22:22:21 -05:00
Quincey Koziol
8659857364 Add API routines to retrieve, restore, reset, and free library state.
(Primarily for use in the async VOL connector, which has to schedule API
operations for future execution and then restore the state of the library when
the operation actually executes)
2019-03-11 17:29:14 -05:00
M. Scot Breitenfeld
07fde1e25c Merge branch 'develop' into H10621 2019-03-07 14:47:38 -06: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
163dcebec5 Add ID type (of eventual hid_t) to the VOL "wrap" callback. 2019-02-07 14:31:26 -06:00
Quincey Koziol
6d897f3c10 Add API routines to wrap and retrieve objects 2019-01-10 18:00:13 -06:00
Jacob Smith
99bc714c4b Move H5Fset_dset_no_attrs_hint VOL operations to native.
Move minimzied object header tests from separate file to test/ohdr.c
Some formatting changes.
2018-12-18 13:42:03 -06:00
Jacob Smith
5efc08a06d Merge branch 'develop' into dset_ohdr_minimize 2018-12-18 11:50:58 -06:00
Quincey Koziol
c6831c7a75 Remove H5VL_FILE_CACHE_VOL_CONN from file specific callbacks, as it turns out
not to be necessary.

Also, correct _MSC_VER #ifdef
2018-12-17 17:25:10 -06:00
Jacob Smith
ea73325250 Merge branch 'develop' into dset_ohdr_minimize 2018-12-12 17:26:08 -06:00
Scot Breitenfeld
5267454ebd Implemented VOL APIs and C constants, no tests 2018-12-07 12:00:47 -06:00
Quincey Koziol
beb7428f68 Switch H5VL_class_value_t from unsigned to int, and add "invalid" ID value. 2018-11-29 08:26:25 -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
bf79e1bd76 Added 'notify' callback for async requests; switched VOL class and info
comparison to return comparison value as parameter, so they can return error
values; "cancelled" -> "canceled"; switched order of 'wrap_object' and
'free_wrap_ctx' management callbacks.
2018-11-27 22:15:34 -06:00
Quincey Koziol
3055e499d5 Switch loc_params to VOL callbacks to pass struct by pointer instead of by
value.
2018-11-21 23:12:24 -06:00
Quincey Koziol
8939a2190f Add info_to_str and str_to_info "management" callbacks for serializing and
deserializing a connector's info object.
2018-11-21 00:56:13 -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
ca1b9025fe Switch switch remainder of API routines to use VOL callbacks. 2018-11-10 11:54:20 -06:00
Quincey Koziol
1daa7b830a Switch driver | plugin => connector. 2018-11-04 01:27:23 -05:00
Quincey Koziol
df7cf2a9d3 Refactor, standardize, and revise the async request callbacks. 2018-11-04 00:05:08 -05:00
Quincey Koziol
1b00d04080 Refactor and standardize object VOL callbacks. 2018-11-01 14:54:44 -05:00
Quincey Koziol
8ee361f185 Move all callback-related routines into the callback source file, standardizing
their coding style
2018-10-28 01:31:28 -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
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