diff options
author | Quincey Koziol <koziol@lbl.gov> | 2020-11-30 21:59:22 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-30 21:59:22 (GMT) |
commit | 123c5a653dbe3867e06eb8c31da952b7ef042f95 (patch) | |
tree | 077e9e2951b85e5c38ed0c9ea11c6baa396879e9 /src/H5VLpublic.h | |
parent | cadd6db431e2664e6dd3f2460639a27d21c6c8a9 (diff) | |
download | hdf5-123c5a653dbe3867e06eb8c31da952b7ef042f95.zip hdf5-123c5a653dbe3867e06eb8c31da952b7ef042f95.tar.gz hdf5-123c5a653dbe3867e06eb8c31da952b7ef042f95.tar.bz2 |
Expand 'opt_query' VOL callback to return a bitfield instead of a flag (#136)
* Expand 'opt_query' VOL callback to return a bitfield instead of a flag
* Correct pastos
Diffstat (limited to 'src/H5VLpublic.h')
-rw-r--r-- | src/H5VLpublic.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/H5VLpublic.h b/src/H5VLpublic.h index 9c9d60a..7494586 100644 --- a/src/H5VLpublic.h +++ b/src/H5VLpublic.h @@ -49,6 +49,25 @@ */ #define H5_VOL_MAX 65535 +/* Flags to return from H5VLquery_optional API and 'opt_query' callbacks */ +/* Note: Operations which access multiple objects' data or metadata in a + * container should be registered as file-level optional operations. + * (e.g. "H5Dwrite_multi" takes a list of datasets to write data to, so + * a VOL connector that implemented it should register it as an optional + * file operation, and pass-through VOL connectors that are stacked above + * the connector that registered it should assume that dataset elements + * for _any_ dataset in the file could be written to) + */ +#define H5VL_OPT_QUERY_SUPPORTED 0x0001 /* VOL connector supports this operation */ +#define H5VL_OPT_QUERY_READ_DATA 0x0002 /* Operation reads data for object */ +#define H5VL_OPT_QUERY_WRITE_DATA 0x0004 /* Operation writes data for object */ +#define H5VL_OPT_QUERY_QUERY_METADATA 0x0008 /* Operation reads metadata for object */ +#define H5VL_OPT_QUERY_MODIFY_METADATA 0x0010 /* Operation modifies metadata for object */ +#define H5VL_OPT_QUERY_COLLECTIVE \ + 0x0020 /* Operation is collective (operations without this flag are assumed to be independent) */ +#define H5VL_OPT_QUERY_NO_ASYNC 0x0040 /* Operation may NOT be executed asynchronously */ +#define H5VL_OPT_QUERY_MULTI_OBJ 0x0080 /* Operation involves multiple objects */ + /*******************/ /* Public Typedefs */ /*******************/ @@ -319,12 +338,12 @@ H5_DLL herr_t H5VLunregister_connector(hid_t connector_id); * \obj_id * \param[in] subcls VOL subclass * \param[in] opt_type Option type - * \param[out] supported Flag + * \param[out] flags Operation flags * \return \herr_t * * \since 1.12.0 */ -H5_DLL herr_t H5VLquery_optional(hid_t obj_id, H5VL_subclass_t subcls, int opt_type, hbool_t *supported); +H5_DLL herr_t H5VLquery_optional(hid_t obj_id, H5VL_subclass_t subcls, int opt_type, uint64_t *flags); #ifdef __cplusplus } |