summaryrefslogtreecommitdiffstats
path: root/src/H5VLpublic.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@lbl.gov>2020-11-30 21:59:22 (GMT)
committerGitHub <noreply@github.com>2020-11-30 21:59:22 (GMT)
commit123c5a653dbe3867e06eb8c31da952b7ef042f95 (patch)
tree077e9e2951b85e5c38ed0c9ea11c6baa396879e9 /src/H5VLpublic.h
parentcadd6db431e2664e6dd3f2460639a27d21c6c8a9 (diff)
downloadhdf5-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.h23
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
}