summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
Commit message (Collapse)AuthorAgeFilesLines
* Squashed commit of the token_refactoring branch:Dana Robinson2020-01-161-5/+5
|
* Refactor H5Dvlen_get_buf_size to use optional dataset operation, with ↵Quincey Koziol2019-12-211-9/+15
| | | | generic fallback for VOL connectors that don't implement operation
* Refactor all the 'H5VL_*_optional' callbacks to move the type of operation outQuincey Koziol2019-12-201-103/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Implement support for using H5Dvlen_get_buf_size withNeil Fortner2019-12-051-7/+24
| | | | non-native VOL connectors.
* Use API context to store/retrieve LCPL when creating intermediate groupsChris Hogan2019-10-291-0/+3
|
* Add new H5R API that abstracts object, region and attribute reference typesJerome Soumagne2019-10-081-50/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also support references to external files Add new H5T_REF type and type conversion routines Support conversion from H5T_REF_OBJ/DSET_REG to H5T_REF Add H5Treclaim() API to reclaim memory of vlen/reference types Deprecate H5Dvlen_reclaim() Fix H5T_vlen_reclaim() and H5T_reclaim() to use private callback Add H5T_ref_reclaim() Move previous H5R APIs to H5Rdeprec.c Clean up H5Ocopy Separate H5O_copy_expand_ref() to H5Ocopy_ref() Add support for copying new reference types Clean up deprecated routines to go through VOL and same code path Fix return codes in existing trefer.c test Rename trefer.c to trefer_deprec.c trefer.c is for new references Add performance test for trefer Add additional obj_copy_ref test Make use of tokens and blobs to store references Skip blob encoding for object references Start adding new reference examples
* Fixed error code and error messagesBinh-Minh Ribler2019-09-031-1/+1
| | | | Tested on Jelly (very minor)
* Changed H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COOR toBinh-Minh Ribler2019-09-031-1/+1
| | | | H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COORD per a review comment.
* Updated based on reviews and refactored test codeBinh-Minh Ribler2019-09-011-2/+2
|
* HDFFV-10677 and HDFFV-10661Binh-Minh Ribler2019-08-281-16/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: - Added functions to query chunk information: H5Dget_num_chunks(dset_id, fspace_id, *nchunks) Gets the number of written chunks that intersect with the given dataspace. However, in this version, the intersection is not yet completed. Thus, the number of all written chunks will be returned. H5Dget_chunk_info_by_coord(dset_id, *offset, *filter_mask, *addr, *size) Given a chunk's logical coordinates, returns the chunk's filter, address, and size. H5Dget_chunk_info(dset_id, fspace_id, index, *offset, *filter_mask, *addr, *size) Given a chunk's index, returns the chunk's logical coordinates, filter, address, and size. The chunk belongs to a set of chunks that have nonempty intersection with the specified dataspace. However, in this version, the intersection is not yet completed, and the index is of all the written chunks. These functions comply with VOL. - Fixed some oversights found in the library for the tests in chunk_info.c to work correctly. The returned value from a callback function was not checked in H5EA_iterate(), H5FA_iterate(), and H5D__none_idx_iterate(). This oversight caused a callback function to continue iterating even though it's supposed to stop. Platforms tested: Linux/64 (jelly) Linux/64 (platypus) Darwin (osx1011test)
* Updated H5Tcopy() to get the dataset's datatype through the VOL whenDana Robinson2019-06-241-1/+1
| | | | that is passed in as the object ID.
* Refactor dataset creation parameters out of the dataset creation propertyQuincey Koziol2019-04-251-30/+6
| | | | list and pass them as regular function parameters.
* HDFFV-10658: 1. moving HDgetenv to dataset initialization stage to reduce ↵Songyu Lu2019-03-221-5/+10
| | | | the overhead; 2. restoring the retrieval of three vol properties to H5P_get instead of using API context to prepare for Quincey's upcoming refactoring work.
* HDFFV-10658: setting and getting properties in API context:Songyu Lu2019-03-131-10/+11
| | | | | 1. external file prefix and VDS prefix. 2. the datatype, dataspace, and LCPL of the dataset for VOL connector.
* Moved private native VOL connector functions to H5VLnative_private.h.Dana Robinson2018-12-201-1/+2
|
* Moved the optional enums to H5VLnative.h and converted to an intDana Robinson2018-12-181-0/+1
| | | | typedef and a set of #defines.
* Moved the native VOL connector's optional enums to theDana Robinson2018-12-151-3/+3
| | | | | public headers and renamed to include native/NATIVE in the name.
* Switch loc_params to VOL callbacks to pass struct by pointer instead of byQuincey Koziol2018-11-221-3/+3
| | | | value.
* Switch driver | plugin => connector.Quincey Koziol2018-11-041-5/+5
|
* Convert dataset callbacks to standard form, for wrapping object IDs, etc.Quincey Koziol2018-10-291-60/+21
| | | | Also, fix a few attribute issues that I missed.
* Minor coding style cleanupsQuincey Koziol2018-10-281-35/+17
|
* Add VOL object wrapping to API context when refreshing groups, named datatypesQuincey Koziol2018-10-271-2/+2
| | | | and objects.
* Checkpoint progress on stacking VOL plugins - all standalone regression testsQuincey Koziol2018-10-261-0/+10
| | | | in the 'test' directory appear to be working.
* Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into ↵Quincey Koziol2018-10-251-6/+6
|\ | | | | | | stackable_vol
| * Updates to the VOL ID and object API calls.Dana Robinson2018-10-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()
* | Squashed commit of private branch changes to support stackable VOL plugins.Quincey Koziol2018-10-251-23/+53
|/ | | | modified: test/dsets.c
* VOL FEATUREDana Robinson2018-10-101-134/+142
|
* Remainder of vol_normalization changes (dataset, attribute, files, objects).Dana Robinson2018-09-241-277/+267
|
* Removed 'VOL' versions of FUNC_ENTER macros as well as empty functionsDana Robinson2018-09-181-4/+4
| | | | orginally intended to support the full SWMR feature.
* Remove redundant 'is_collective' parameter from H5CX_set_loc.Quincey Koziol2018-03-271-4/+4
|
* Cleanup API context function usage.Quincey Koziol2018-03-191-23/+23
|
* Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into ↵Quincey Koziol2018-03-181-117/+1
|\ | | | | | | | | | | merge_func_enter_vol Plus initial steps toward merging API context push into FUNC_ENTER_API* macros
* | Add API context interface and use it throughout the library.Quincey Koziol2018-03-151-64/+183
|/
* Modifications based on pull request review.Vailin Choi2017-04-261-1/+1
| | | | Made couple changes based on the review comments.
* Incorporate patch from GE Healthcare (HDFFV-9934)Vailin Choi2017-04-251-0/+40
| | | | | This is the same patch that had already been integrated to 1.8 branch (pull request #387). Tested on moohan, ostrich, platypus, emu, osx1010test, quail, kituo, mayll.
* Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to ↵Larry Knox2017-04-251-6/+4
| | | | | | | | | | hdf5_1_10 * commit '54957d37f5aa73912763dbb6e308555e863c43f4': Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes. Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh. Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1 Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
* [svn-r30107] Moved dataset flush and evict code to H5D_close from H5Dclose.Dana Robinson2016-06-251-36/+8
|
* [svn-r30104] Fixes evict-on-close feature by propagating globalDana Robinson2016-06-241-2/+8
|\ | | | | | | | | flush flag up the function call stack and not setting it during H5Dclose().
* | [svn-r30084] First pass at the evict-on-close feature.Dana Robinson2016-06-151-4/+26
|/ | | | | | | | | | The features is controlled via H5Pset/get_evict_on_close() and is currently enabled by default (it will be disabled by default in the final implementation). There is a bug in the code where the eviction of tagged metadata fails due to some of the metadata being dirty, resulting in error return values and test failures.
* [svn-r30075] Description:Quincey Koziol2016-06-141-0/+34
| | | | | | | | | | Bring object/dataset/group/named datatype features from revise_chunks branch to trunk. Also CMake support for h5format_convert and a bunch of misc. cleanups. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r29924] Description:Quincey Koziol2016-05-121-2/+102
| | | | | | | | Bring h5format_convert tool from revise_chunks branch to trunk. Tested on: MacoSX/64 10.11.4 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r29850] Description:Quincey Koziol2016-05-011-0/+38
| | | | | | | | | | Bring H5DOappend(), H5P[s|g]et_object_flush_cb, and H5P[s|g]et_append_flush from revise_chunks branch to trunk. Brings along updated metadata cache entry tagging, and the internal object flush routine. Tested on: MacOSX/64 10.11.4 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r29081] - merge in the phdf5_metadata_opt/ branch with the collective ↵Mohamad Chaarawi2016-02-101-6/+6
| | | | | | | | metadata optimizations. - rename H5AC_dxpl_id to H5AC_ind_read_dxpl_id and update all usage in the library tested on bb-8 with parallel and serial.
* [svn-r28950] - remove META_FLUSH_COLLECTIVELY property for delayed sanity ↵Mohamad Chaarawi2016-01-211-6/+6
| | | | | | | | | | checks from metadata dxpls - remove H5AC_ind_dxpl_id and use only H5AC_dxpl_id everywhere instead. - remove flush_me_collectively flag from cache entries - add a collective sanity check (MPI_Barrier) for every HDF5 API routine that could possibly touch the file. This is trigerred when the environment variable H5_COLL_API_SANITY_CHECK is set to a non 0 digit. tested on BB-8 with serial and parallel.
* [svn-r28916] Description:Quincey Koziol2016-01-151-18/+9
| | | | | | | | Normalize against incoming changes from the phdf5_metadata_opt branch. Tested on: MacOSX/64 10.11.2 (amazon) w/serial & parallel (h5committest forthcoming)
* [svn-r28894] Description:Quincey Koziol2016-01-141-4/+5
| | | | | | | | Normalize against changes on phdf5_metadata_opt branch to trunk Tested on: MacoSX/64 10.11.2 (amazon) w/serial & parallel (h5committest forthcoming)
* [svn-r28452] Description:Quincey Koziol2015-11-231-4/+0
| | | | | | | | Normalization changes against revise_chunks branch. Tested on: MacOSX/64 10.11.1 (amazon) w/serial & parallel (h5committest forthcoming)
* [svn-r27939] Remove H5D__iterate and use H5S_select_iterate directlyJerome Soumagne2015-10-021-3/+19
| | | | | Add internal library callback to H5S_select_iterate to avoid having to pass hid_t objects internally
* [svn-r27768] Description:Quincey Koziol2015-09-141-49/+4
| | | | | | | | | | | | | | | | | | | | | | Complete revamp of package initialization/shutdown mechanism in the library. Each package now has a single init/term routine. This new way should avoid packages being re-initialized during library shutdown and is also be _much_ more proactive about giving feedback for resource leaks internal to the library. Introduces a new "module" header file for packages in the library (e.g src/H5Fmodule.h) which sets up some necessary package configuration macros for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly modified version of this header, src/H5FDdrvr_module.h) Also cleaned up a bunch of resources leaks all across the library and tests, along with addressing many warnings, as I encountered them. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/64 3.10.x (kituo) w/serial & parallel Linux/64 2.6.x (ostrich) w/serial
* [svn-r27612] Description:Quincey Koziol2015-08-291-36/+8
| | | | | | | | | Align w/vds branch: Whitespace cleanup, move common code for opening a dataset into a new routine, misc. style cleanups. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel (h5committest upcoming)