summaryrefslogtreecommitdiffstats
path: root/src/H5S.c
diff options
context:
space:
mode:
authorVailin Choi <vchoi@hdfgroup.org>2019-04-12 18:52:32 (GMT)
committerVailin Choi <vchoi@hdfgroup.org>2019-04-12 18:52:32 (GMT)
commit66184e567c429791d3be26f7231c36bb31bf7f88 (patch)
tree2bd8e746308a6f19d0302403e3f0492dd8dc63ed /src/H5S.c
parent74677ba5ce41ab9db100e2059ceb85b44b874466 (diff)
parent52276f3713eec584044bc72d4724507848cfeba0 (diff)
downloadhdf5-66184e567c429791d3be26f7231c36bb31bf7f88.zip
hdf5-66184e567c429791d3be26f7231c36bb31bf7f88.tar.gz
hdf5-66184e567c429791d3be26f7231c36bb31bf7f88.tar.bz2
Merge pull request #3 in ~VCHOI/my_third_fork from develop to bugfix/HDFFV-10579-h5arename-function-fails-when
* commit '52276f3713eec584044bc72d4724507848cfeba0': Modifications based on PR feedback: (1) Add H5Sdeprec.c to src/CMakeLists.txt (2) Add test for H5Sencode1. Modification for num_elem based on PR feedback. HDFFV-10365: Changes as described in the RFC: H5Sencode/H5Sdecode Format Change. This also addresses HDFFV-10255: H5Sencode/decode performance issue.
Diffstat (limited to 'src/H5S.c')
-rw-r--r--src/H5S.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/H5S.c b/src/H5S.c
index 301060f..3926b5f 100644
--- a/src/H5S.c
+++ b/src/H5S.c
@@ -23,6 +23,7 @@
/***********/
#include "H5private.h" /* Generic Functions */
#include "H5Eprivate.h" /* Error handling */
+#include "H5CXprivate.h" /* API Contexts */
#include "H5Fprivate.h" /* Files */
#include "H5FLprivate.h" /* Free lists */
#include "H5Iprivate.h" /* IDs */
@@ -1487,13 +1488,15 @@ done:
/*-------------------------------------------------------------------------
- * Function: H5Sencode
+ * Function: H5Sencode2
*
* Purpose: Given a dataspace ID, converts the object description
* (including selection) into binary in a buffer.
+ * The selection will be encoded according to the file
+ * format setting in fapl.
*
* Return: Success: non-negative
- * Failure: negative
+ * Failure: negative
*
* Programmer: Raymond Lu
* slu@ncsa.uiuc.edu
@@ -1502,24 +1505,29 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Sencode(hid_t obj_id, void *buf, size_t *nalloc)
+H5Sencode2(hid_t obj_id, void *buf, size_t *nalloc, hid_t fapl_id)
{
H5S_t *dspace;
herr_t ret_value=SUCCEED;
FUNC_ENTER_API(FAIL)
- H5TRACE3("e", "i*x*z", obj_id, buf, nalloc);
+ H5TRACE4("e", "i*x*zi", obj_id, buf, nalloc, fapl_id);
/* Check argument and retrieve object */
if(NULL == (dspace = (H5S_t *)H5I_object_verify(obj_id, H5I_DATASPACE)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
+
+ /* Verify access property list and set up collective metadata if appropriate */
+ if(H5CX_set_apl(&fapl_id, H5P_CLS_FACC, H5I_INVALID_HID, TRUE) < 0)
+ HGOTO_ERROR(H5E_FILE, H5E_CANTSET, H5I_INVALID_HID, "can't set access property list info")
+
if(H5S_encode(dspace, (unsigned char **)&buf, nalloc) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTENCODE, FAIL, "can't encode dataspace")
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTENCODE, FAIL, "can't encode dataspace")
done:
FUNC_LEAVE_API(ret_value)
-} /* end H5Sencode() */
+} /* H5Sencode2() */
/*-------------------------------------------------------------------------