summaryrefslogtreecommitdiffstats
path: root/src/H5VL.c
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2013-06-21 13:54:45 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2013-06-21 13:54:45 (GMT)
commitb94be74cbf9206b20d357154eb95da17185c474c (patch)
treeda27789d93b1b97b808679bbbc35273826c2c657 /src/H5VL.c
parent018ed55299f5e5c2c580c5a40704a61dc30c72c9 (diff)
downloadhdf5-b94be74cbf9206b20d357154eb95da17185c474c.zip
hdf5-b94be74cbf9206b20d357154eb95da17185c474c.tar.gz
hdf5-b94be74cbf9206b20d357154eb95da17185c474c.tar.bz2
[svn-r23803] Add VOL callback for H5Aiterate
Add VOL callback for H5T get routines Update Native implementation
Diffstat (limited to 'src/H5VL.c')
-rw-r--r--src/H5VL.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/H5VL.c b/src/H5VL.c
index 74760d4..20d6dd7 100644
--- a/src/H5VL.c
+++ b/src/H5VL.c
@@ -504,6 +504,38 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5VLattr_iterate
+ *
+ * Purpose: Iterate over attrs in a group
+ *
+ * Return: Success: non negative
+ * Failure: negative
+ *
+ * Programmer: Mohamad Chaarawi
+ * June, 2013
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t H5VLattr_iterate(void *obj, H5VL_loc_params_t loc_params, H5VL_t *vol_plugin,
+ H5_index_t idx_type, H5_iter_order_t order, hsize_t *n,
+ H5A_operator2_t op, void *op_data, hid_t dxpl_id, void UNUSED **req)
+{
+ herr_t ret_value = SUCCEED;
+
+ FUNC_ENTER_API(FAIL)
+
+ if(NULL == obj || NULL == vol_plugin || NULL == vol_plugin->cls)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid object/VOL class pointer")
+ if((ret_value = H5VL_attr_iterate(obj, loc_params, vol_plugin, idx_type, order, n,
+ op, op_data, dxpl_id, H5_EVENT_QUEUE_NULL)) < 0)
+ HGOTO_ERROR(H5E_VOL, H5E_CANTINIT, FAIL, "Attr iteration failed")
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* end H5VLattr_iterate() */
+
+
+/*-------------------------------------------------------------------------
* Function: H5VLattr_get
*
* Purpose: Get specific information about the attribute through the VOL
@@ -781,6 +813,51 @@ done:
/*-------------------------------------------------------------------------
+ * Function: H5VLdatatype_get
+ *
+ * Purpose: Get specific information about the datatype through the VOL
+ *
+ * Return: Success: non negative
+ *
+ * Failure: negative
+ *
+ * Programmer: Mohamad Chaarawi
+ * June, 2013
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5VLdatatype_get(void *obj, H5VL_t *vol_plugin, H5VL_datatype_get_t get_type,
+ hid_t dxpl_id, void UNUSED **req, va_list arguments)
+{
+ herr_t ret_value = SUCCEED;
+
+ FUNC_ENTER_API(FAIL)
+
+ if(NULL == obj || NULL == vol_plugin || NULL == vol_plugin->cls)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid object/VOL class pointer")
+
+ switch (get_type) {
+ /* H5Tget_create_plist */
+ case H5VL_DATATYPE_GET_TCPL:
+ {
+ hid_t *new_tcpl_id = va_arg (arguments, hid_t *);
+
+ if((ret_value = H5VL_datatype_get(obj, vol_plugin, get_type, dxpl_id,
+ H5_EVENT_QUEUE_NULL, new_tcpl_id)) < 0)
+ HGOTO_ERROR(H5E_VOL, H5E_CANTINIT, FAIL, "unable to get datatype information")
+ break;
+ }
+ default:
+ HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "can't get this type of information from datatype")
+ }
+
+done:
+ FUNC_LEAVE_API(ret_value)
+} /* end H5VLdatatype_get() */
+
+
+/*-------------------------------------------------------------------------
* Function: H5VLdatatype_close
*
* Purpose: Closes a datatype through the VOL