summaryrefslogtreecommitdiffstats
path: root/src/H5VLpublic.h
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2012-06-15 13:39:46 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2012-06-15 13:39:46 (GMT)
commit7484f2e9cae4c7e4471aa691c58a3b8a0e1cddff (patch)
tree514b2bd227109c8df3709dfb1672cd376edd0073 /src/H5VLpublic.h
parent87a81eb5afd4d24b2ba42ef78d8aee433c8e8639 (diff)
downloadhdf5-7484f2e9cae4c7e4471aa691c58a3b8a0e1cddff.zip
hdf5-7484f2e9cae4c7e4471aa691c58a3b8a0e1cddff.tar.gz
hdf5-7484f2e9cae4c7e4471aa691c58a3b8a0e1cddff.tar.bz2
[svn-r22465] add a vol_info parameter to the fapl and update some of the routines accordingly
insert (commented out though for now) public version of the VOL callback
Diffstat (limited to 'src/H5VLpublic.h')
-rw-r--r--src/H5VLpublic.h68
1 files changed, 67 insertions, 1 deletions
diff --git a/src/H5VLpublic.h b/src/H5VLpublic.h
index ba15f67..1a68f97 100644
--- a/src/H5VLpublic.h
+++ b/src/H5VLpublic.h
@@ -36,7 +36,7 @@
/* Attribute creation property names */
#define H5VL_ATTR_TYPE_ID "attr_type_id"
#define H5VL_ATTR_SPACE_ID "attr_space_id"
-#define H5VL_ATTR_LOC_PARAMS "attr_location"
+#define H5VL_ATTR_LOC_PARAMS "attr_location"
/* Link creation property names */
#define H5VL_LINK_TARGET_ID "target location id"
@@ -200,6 +200,9 @@ typedef struct H5VL_loc_params_t {
#define H5VL_VOL_DEFAULT 0 /* Default VOL plugin value */
+/* Forward declaration */
+typedef struct H5VL_t H5VL_t;
+
/* H5A routines */
typedef struct H5VL_attr_class_t {
hid_t (*create)(hid_t loc_id, const char *attr_name, hid_t acpl_id, hid_t aapl_id, hid_t req);
@@ -292,6 +295,69 @@ typedef struct H5VL_class_t {
H5VL_link_class_t link_cls;
H5VL_object_class_t object_cls;
} H5VL_class_t;
+#if 0
+/*
+ * The main datatype for each plugin. Public fields common to all
+ * plugins are declared here and the plugin appends private fields in
+ * memory.
+ */
+struct H5VL_t {
+ const H5VL_class_t *cls; /*constant class info */
+ const char *container_name; /* name of the underlying storage container */
+ unsigned long feature_flags; /* VOL Driver feature Flags */
+ void *object; /* actual object that the underlying plugin creates/uses */
+};
+
+H5_DLL H5VL_t *H5VLattr_create(H5VL_t *obj, const char *attr_name, hid_t acpl, hid_t aapl, hid_t req);
+H5_DLL H5VL_t *H5VLattr_open(H5VL_t *obj, H5VL_loc_params_t loc_params, const char *name, hid_t aapl, hid_t req);
+H5_DLL herr_t H5VLattr_read(H5VL_t *obj, hid_t dtype_id, void *buf, hid_t req);
+H5_DLL herr_t H5VLattr_write(H5VL_t *obj, hid_t dtype_id, const void *buf, hid_t req);
+H5_DLL herr_t H5VLattr_get(H5VL_t *obj, H5VL_attr_get_t get_type, hid_t req, ...);
+H5_DLL herr_t H5VLattr_remove(H5VL_t *obj, H5VL_loc_params_t loc_params, const char *attr_name, hid_t req);
+H5_DLL herr_t H5VLattr_close(H5VL_t *obj, hid_t req);
+
+H5_DLL H5VL_t *H5VLdataset_create(H5VL_t *obj, const char *name, hid_t dcpl_id, hid_t dapl_id, hid_t req);
+H5_DLL H5VL_t *H5VLdataset_open(H5VL_t *obj, const char *name, hid_t dapl_id, hid_t req);
+H5_DLL herr_t H5VLdataset_read(H5VL_t *obj, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, void *buf, hid_t req);
+H5_DLL herr_t H5VLdataset_write(H5VL_t *obj, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, const void *buf, hid_t req);
+H5_DLL herr_t H5VLdataset_set_extent(H5VL_t *obj, const hsize_t size[], hid_t req);
+H5_DLL herr_t H5VLdataset_get(H5VL_t *obj, H5VL_dataset_get_t get_type, hid_t req, ...);
+H5_DLL herr_t H5VLdataset_close(H5VL_t *obj, hid_t req);
+
+H5_DLL herr_t H5VLdatatype_commit(H5VL_t *obj, const char *name, hid_t type_id, hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id, hid_t req);
+H5_DLL H5VL_t *H5VLdatatype_open(H5VL_t *obj, const char *name, hid_t tapl_id, hid_t req);
+H5_DLL herr_t H5VLdatatype_close(H5VL_t *obj, hid_t req);
+
+H5_DLL H5VL_t *H5VLfile_open(const char *name, unsigned flags, hid_t fapl_id, hid_t req);
+H5_DLL H5VL_t *H5VLfile_create(const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id, hid_t req);
+H5_DLL herr_t H5VLfile_flush(H5VL_t *obj, H5F_scope_t scope, hid_t req);
+H5_DLL herr_t H5VLfile_misc(H5VL_t *obj, H5VL_file_misc_t misc_type, hid_t req, ...);
+H5_DLL herr_t H5VLfile_optional(H5VL_t *obj, H5VL_file_optional_t optional_type, hid_t req, ...);
+H5_DLL herr_t H5VLfile_get(H5VL_t *obj, H5VL_file_get_t get_type, hid_t req, ...);
+H5_DLL herr_t H5VLfile_close(H5VL_t *obj, hid_t req);
+
+H5_DLL H5VL_t *H5VLgroup_create(H5VL_t *obj, const char *name, hid_t gcpl_id, hid_t gapl_id, hid_t req);
+H5_DLL H5VL_t *H5VLgroup_open(H5VL_t *obj, const char *name, hid_t gapl_id, hid_t req);
+H5_DLL herr_t H5VLgroup_get(H5VL_t *obj, H5VL_group_get_t get_type, hid_t req, ...);
+H5_DLL herr_t H5VLgroup_close(H5VL_t *obj, hid_t req);
+
+H5_DLL herr_t H5VLlink_create(H5VL_link_create_type_t create_type, H5VL_t *obj, const char *link_name, hid_t lcpl_id, hid_t lapl_id, hid_t req);
+H5_DLL herr_t H5VLlink_move(H5VL_t *src_obj, const char *src_name, H5VL_t *dst_obj, const char *dst_name, hbool_t copy_flag, hid_t lcpl_id, hid_t lapl_id, hid_t req);
+H5_DLL herr_t H5VLlink_iterate(H5VL_t *obj, const char *name, hbool_t recursive, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate_t op, void *op_data, hid_t lapl_id);
+H5_DLL herr_t H5VLlink_get(H5VL_t *obj, H5VL_link_get_t get_type, hid_t req, ...);
+H5_DLL herr_t H5VLlink_remove(H5VL_t *obj, const char *name, void *udata, hid_t lapl_id, hid_t req);
+
+H5_DLL H5VL_t *H5VLobject_open(H5VL_t *obj, H5VL_loc_params_t params, hid_t req);
+H5_DLL herr_t H5VLobject_copy(H5VL_t *src_obj, const char *src_name, H5VL_t *dst_obj, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t req);
+H5_DLL herr_t H5VLobject_visit(H5VL_t *obj, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id);
+H5_DLL herr_t H5VLobject_get(H5VL_t *obj, H5VL_object_get_t get_type, hid_t req, ...);
+H5_DLL herr_t H5VLobject_misc(H5VL_t *obj, H5VL_object_misc_t misc_type, hid_t req, ...);
+H5_DLL herr_t H5VLobject_optional(H5VL_t *obj, H5VL_object_misc_t optional_type, hid_t req, ...);
+H5_DLL herr_t H5VLobject_lookup(H5VL_t *obj, H5VL_loc_type_t lookup_type, void **location, hid_t req, ...);
+H5_DLL herr_t H5VLobject_free_loc(H5VL_t *obj, void *location, hid_t req);
+H5_DLL herr_t H5VLobject_close(H5VL_t *obj, hid_t req);
+
+#endif
#ifdef __cplusplus
extern "C" {