mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-06 14:56:51 +08:00
1d680fe04c
* Fixed warnings and started H5Epublic.h.
* Include H5FD* headers to correctly resolve references.
* Doxygen2 (#330)
* H5Eauto_is_v2.
* Added a few more calls.
* Added a few more H5E calls.
* First cut of H5E v2.
* Added the deprecated v1 calls.
* Updated spacing.
* Once more.
* Taking some inspiration from Eigen3.
* Add doxygen for the assigned functions: H5Pregister1,H5Pinsert1,H5Pen… (#352)
* Add doxygen for the assigned functions: H5Pregister1,H5Pinsert1,H5Pencode1, H5Pget_filter_by_id1,H5Pget_version, H5Pset_file_space,H5Pget_file_space. Someone already adds H5Pget_filter1. Also fixs an extra parameter 'close' call back function for HPregister2.
* doxygen work. fixs format by using clang-format.
* doxgen work for H5Pregister1 etc. Addressed Barbara and Gerd's comments.
For Quincey's comments, since we are not supposed to change the source code.
I leave this to future improvements.
* added documentation for H5P APIs (#350)
* add documenation for H5Pget_buffer,H5Pget_data_transform,H5Pget_edc_check,H5Pget_hyper_vector_size,H5Pget_preserve,H5Pget_type_conv_cb,H5Pget_vlen_mem_manager,H5Pset_btree_ratios
* format corrections
* fixed grammer
* fixed herr_t
* Better name.
* A fresh look.
* add doxygen to H5Ppublic.h
* use attention instead of warning
* Add doxygen comments in H5Ppublic.h (#375)
* Add doxygen comments in H5Ppublic.h
* H5Pset_meta_block_size
* H5Pset_metadata_read_attempts
* H5Pset_multi_type
* H5Pset_object_flush_cb
* H5Pset_sieve_buf_size
* H5Pset_small_data_block_size
* H5Pset_all_coll_metadata_ops
* H5Pget_all_coll_metadata_ops
* Add DOXYGEN_EXAMPLES_DIR to src/CMakeLists.txt
* Fix clang-format errors
* Fix filenames in doxygen/examples
* add doxygen to H5Ppublic.h (#378)
* add doxygen to H5Ppublic.h
* use attention instead of warning
Co-authored-by: Kimmy Mu <kmu@hdfgroup.org>
* Revert "add doxygen to H5Ppublic.h (#378)"
This reverts commit 2ee1821b13
.
* Updated Doxygen variables.
* I forgot to copy two images.
* Enable desktop search by default.
* Add my assigned Doxygen documentation.
* Remove whitespace at EOL. Appease clang-format.
* Addressed Chris' comments.
* Added an alias for asynchronous functions.
* One space is enough for all of us.
* Slightly restructured RM page.
* address some issues
* reformatting
* Style external links.
* reformatting
* reformatting
* Added "Metadata Caching in HDF5" as a technical note example.
* Revise this soon!
* Added specification examples.
* Fixed references.
* Added H5AC cache image stuff and file format study.
* Added older FMT versions. Where did 1.0 go?
* Updated C/C++ note and replaced ambiguous labels.
* Reformat source with clang v10.0.1.
* Added the VFL technical note.
* Added what I believe might be called version 1.0 of the format.
* Added the remaining specs.
* Added H5Z callback documentation and fixed a few mistakes.
* Added dox for deprecated H5G calls and fixed a few snippet blockIDs.
* clang-format happy?
* Ok?
* Bonus track: Deprecated H5D functions.
* Carry over the more detailed group description.
* Added documentation for the missing and deprecated H5R calls.
* Life is easier and less repetitive w/ snippets. Use them!
* Eliminate the snippet block ID artifacts in the HTML rendering.
* Fixed snippet HTML artifacts and added a few missing calls.
* Under 20 H5Ps to go!
* Almost complete!
* "This is a form of pedantry up with which I will not put." (Churchill)
* Let's not waste as much space on bulleted lists!
* First complete (?) draft of the Doxygen-based RM.
* Completeness check and minor fixes along the way.
* Pedantry.
* Adding missing H5FD calls checkpoint.
* Pedantry.
* More pedantry.
* Added H5Pset_fapl_log.
* First draft of H5ES.
* Fixed warnings.
* Prep. for map module.
* First cut of the map module.
* Pedantry.
* Possible H5F introduction.
* Fix the indentation.
* Pedantry.
* Ditto.
* Thanks to the reviewers for their comments.
* Added missing images.
* Line numbers are a distraction here.
* More examples, references, and clean-up. Don't repeat yourself!
* Clang pedantry.
* Ditto.
* More reviewer comments...
* Templatized references and cleaned up \todos.
* Committing clang-format changes
* Fixed MANIFEST.
* Addressed Quincey's comments. (OCPLs)
* Fixed a few more \todo items.
* Fixed more \todo items.
* Added attribute life cycle.
* Forgot the examples file.
* Committing clang-format changes
* Pedantry.
* Live and learn!
* Added a sample H5D life cycle.
* Committing clang-format changes
* Pedantry.
Co-authored-by: kyang2014 <kyang2014@users.noreply.github.com>
Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
Co-authored-by: Kimmy Mu <kmu@hdfgroup.org>
Co-authored-by: Christopher Hogan <ChristopherHogan@users.noreply.github.com>
Co-authored-by: jya-kmu <53388330+jya-kmu@users.noreply.github.com>
Co-authored-by: David Young <dyoung@hdfgroup.org>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
111 lines
3.9 KiB
C
111 lines
3.9 KiB
C
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* Copyright by The HDF Group. *
|
|
* All rights reserved. *
|
|
* *
|
|
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
|
* terms governing use, modification, and redistribution, is contained in *
|
|
* the COPYING file, which can be found at the root of the source code *
|
|
* distribution tree, or in https://www.hdfgroup.org/licenses. *
|
|
* If you do not have access to either file, you may request a copy from *
|
|
* help@hdfgroup.org. *
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
/*
|
|
* Purpose: The public header file for the "splitter" driver.
|
|
*/
|
|
|
|
#ifndef H5FDsplitter_H
|
|
#define H5FDsplitter_H
|
|
|
|
#define H5FD_SPLITTER (H5FD_splitter_init())
|
|
|
|
/* The version of the H5FD_splitter_vfd_config_t structure used */
|
|
#define H5FD_CURR_SPLITTER_VFD_CONFIG_VERSION 1
|
|
|
|
/* Maximum length of a filename/path string in the Write-Only channel,
|
|
* including the NULL-terminator.
|
|
*/
|
|
#define H5FD_SPLITTER_PATH_MAX 4096
|
|
|
|
/* Semi-unique constant used to help identify structure pointers */
|
|
#define H5FD_SPLITTER_MAGIC 0x2B916880
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Structure: H5FD_spliiter_vfd_config_t
|
|
*
|
|
* One-stop shopping for configuring a Splitter VFD (rather than many
|
|
* paramaters passed into H5Pset/get functions).
|
|
*
|
|
* magic (int32_t)
|
|
* Semi-unique number, used to sanity-check that a given pointer is
|
|
* likely (or not) to be this structure type. MUST be first.
|
|
* If magic is not H5FD_SPLITTER_MAGIC, the structure (and/or pointer to)
|
|
* must be considered invalid.
|
|
*
|
|
* version (unsigned int)
|
|
* Version number of this structure -- informs component membership.
|
|
* If not H5FD_CURR_SPLITTER_VFD_CONFIG_VERSION, the structure (and/or
|
|
* pointer to) must be considered invalid.
|
|
*
|
|
* rw_fapl_id (hid_t)
|
|
* Library-given identification number of the Read/Write channel driver
|
|
* File Access Property List.
|
|
* The driver must support read/write access.
|
|
* Must be set to H5P_DEFAULT or a valid FAPL ID.
|
|
*
|
|
* wo_fapl_id (hid_t)
|
|
* Library-given identification number of the Read/Write channel driver
|
|
* File Access Property List.
|
|
* The driver feature flags must include H5FD_FEAT_DEFAULT_VFD_COMPAITBLE.
|
|
* Must be set to H5P_DEFAULT or a valid FAPL ID.
|
|
*
|
|
* wo_file_path (char[H5FD_SPLITTER_PATH_MAX + 1])
|
|
* String buffer for the Write-Only channel target file.
|
|
* Must be null-terminated, cannot be empty.
|
|
*
|
|
* log_file_path (char[H5FD_SPLITTER_PATH_MAX + 1])
|
|
* String buffer for the Splitter VFD logging output.
|
|
* Must be null-terminated.
|
|
* If null, no logfile is created.
|
|
*
|
|
* ignore_wo_errors (hbool_t)
|
|
* Toggle flag for how judiciously to respond to errors on the Write-Only
|
|
* channel.
|
|
*
|
|
* ----------------------------------------------------------------------------
|
|
*/
|
|
typedef struct H5FD_splitter_vfd_config_t {
|
|
int32_t magic;
|
|
unsigned int version;
|
|
hid_t rw_fapl_id;
|
|
hid_t wo_fapl_id;
|
|
char wo_path[H5FD_SPLITTER_PATH_MAX + 1];
|
|
char log_file_path[H5FD_SPLITTER_PATH_MAX + 1];
|
|
hbool_t ignore_wo_errs;
|
|
} H5FD_splitter_vfd_config_t;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
H5_DLL hid_t H5FD_splitter_init(void);
|
|
|
|
/**
|
|
* \ingroup FAPL
|
|
*
|
|
* \todo Add missing documentation
|
|
*/
|
|
H5_DLL herr_t H5Pset_fapl_splitter(hid_t fapl_id, H5FD_splitter_vfd_config_t *config_ptr);
|
|
|
|
/**
|
|
* \ingroup FAPL
|
|
*
|
|
* \todo Add missing documentation
|
|
*/
|
|
H5_DLL herr_t H5Pget_fapl_splitter(hid_t fapl_id, H5FD_splitter_vfd_config_t *config_ptr);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|