From f8b3f576cebf168fea70c2a39fbe404ac1c7e4e7 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 27 Oct 2020 16:48:02 -0500 Subject: HDFFV-10868 - add H5Sselect API java wrappers. Also added javadoc comments to H5E and H5s constants. --- README.txt | 4 +- java/src/hdf/hdf5lib/H5.java | 620 ++++++++++++++++++----------- java/src/hdf/hdf5lib/HDF5Constants.java | 484 +++++++++++++++++++++- java/src/jni/h5Constants.c | 374 ++++++++++++++++- java/src/jni/h5sImp.c | 383 ++++++++++++++++++ java/src/jni/h5sImp.h | 59 +++ java/test/TestH5Sbasic.java | 138 +++++++ java/test/testfiles/JUnit-TestH5Sbasic.txt | 16 +- 8 files changed, 1834 insertions(+), 244 deletions(-) diff --git a/README.txt b/README.txt index 021f217..fb027aa 100644 --- a/README.txt +++ b/README.txt @@ -75,6 +75,6 @@ Periodically development code snapshots are provided at the following URL: Source packages for current and previous releases are located at: https://portal.hdfgroup.org/display/support/Downloads -Development code is available at our BitBucket Server: - https://bitbucket.hdfgroup.org/projects/HDFFV/repos/hdf5/browse +Development code is available at our Github location: + https://github.com/HDFGroup/hdf5.git diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java index f7d8dc4..6ad7cf2 100644 --- a/java/src/hdf/hdf5lib/H5.java +++ b/java/src/hdf/hdf5lib/H5.java @@ -10047,7 +10047,7 @@ public class H5 implements java.io.Serializable { throws HDF5LibraryException, NullPointerException; /** - * H5Pget_fapl_direct queries properties set by the H5Pset_fapl_core. + * H5Pget_fapl_direct queries properties set by the H5Pset_fapl_direct. * * @param fapl_id * IN: File access property list identifier @@ -11028,50 +11028,7 @@ public class H5 implements java.io.Serializable { // // // //////////////////////////////////////////////////////////// - /** - * H5Sclose releases a dataspace. - * - * @param space_id - * Identifier of dataspace to release. - * - * @return a non-negative value if successful - * - * @exception HDF5LibraryException - * - Error from the HDF-5 Library. - **/ - public static int H5Sclose(long space_id) throws HDF5LibraryException { - if (space_id < 0) - return 0; // throw new HDF5LibraryException("Negative ID");; - - log.trace("OPEN_IDS: H5Sclose remove {}", space_id); - OPEN_IDS.remove(space_id); - log.trace("OPEN_IDS: {}", OPEN_IDS.size()); - return _H5Sclose(space_id); - } - - private synchronized static native int _H5Sclose(long space_id) throws HDF5LibraryException; - - /** - * H5Scopy creates a new dataspace which is an exact copy of the dataspace identified by space_id. - * - * @param space_id - * Identifier of dataspace to copy. - * @return a dataspace identifier if successful - * - * @exception HDF5LibraryException - * - Error from the HDF-5 Library. - **/ - public static long H5Scopy(long space_id) throws HDF5LibraryException { - long id = _H5Scopy(space_id); - if (id > 0) { - log.trace("OPEN_IDS: H5Scopy add {}", id); - OPEN_IDS.add(id); - log.trace("OPEN_IDS: {}", OPEN_IDS.size()); - } - return id; - } - - private synchronized static native long _H5Scopy(long space_id) throws HDF5LibraryException; + /**************** Operations on dataspaces ********************/ /** * H5Screate creates a new dataspace of a particular type. @@ -11128,19 +11085,96 @@ public class H5 implements java.io.Serializable { throws HDF5Exception, NullPointerException; /** - * H5Sdecode reconstructs the HDF5 data space object and returns a new object handle for it. + * H5Sset_extent_simple sets or resets the size of an existing dataspace. * - * @param buf - * IN: Buffer for the data space object to be decoded. + * @param space_id + * Dataspace identifier. + * @param rank + * Rank, or dimensionality, of the dataspace. + * @param current_size + * Array containing current size of dataspace. + * @param maximum_size + * Array containing maximum size of dataspace. * - * @return a new object handle + * @return a dataspace identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. - * @exception NullPointerException - * - buf is null. **/ - public synchronized static native long H5Sdecode(byte[] buf) throws HDF5LibraryException, NullPointerException; + public synchronized static native long H5Sset_extent_simple(long space_id, int rank, long[] current_size, + long[] maximum_size) throws HDF5LibraryException, NullPointerException; + + /** + * H5Sset_extent_simple sets or resets the size of an existing dataspace. + * + * @param space_id + * Dataspace identifier. + * @param rank + * Rank, or dimensionality, of the dataspace. + * @param current_size + * Array containing current size of dataspace. + * @param maximum_size + * Array containing maximum size of dataspace. + * + * @return a dataspace identifier if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static long H5Sset_extent_simple(long space_id, int rank, byte[] current_size, + byte[] maximum_size) throws HDF5LibraryException, NullPointerException { + ByteBuffer csbb = ByteBuffer.wrap(current_size); + long[] lacs = (csbb.asLongBuffer()).array(); + ByteBuffer maxsbb = ByteBuffer.wrap(maximum_size); + long[] lamaxs = (maxsbb.asLongBuffer()).array(); + + return H5Sset_extent_simple(space_id, rank, lacs, lamaxs); + } + + /** + * H5Scopy creates a new dataspace which is an exact copy of the dataspace identified by space_id. + * + * @param space_id + * Identifier of dataspace to copy. + * @return a dataspace identifier if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public static long H5Scopy(long space_id) throws HDF5LibraryException { + long id = _H5Scopy(space_id); + if (id > 0) { + log.trace("OPEN_IDS: H5Scopy add {}", id); + OPEN_IDS.add(id); + log.trace("OPEN_IDS: {}", OPEN_IDS.size()); + } + return id; + } + + private synchronized static native long _H5Scopy(long space_id) throws HDF5LibraryException; + + /** + * H5Sclose releases a dataspace. + * + * @param space_id + * Identifier of dataspace to release. + * + * @return a non-negative value if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public static int H5Sclose(long space_id) throws HDF5LibraryException { + if (space_id < 0) + return 0; // throw new HDF5LibraryException("Negative ID");; + + log.trace("OPEN_IDS: H5Sclose remove {}", space_id); + OPEN_IDS.remove(space_id); + log.trace("OPEN_IDS: {}", OPEN_IDS.size()); + return _H5Sclose(space_id); + } + + private synchronized static native int _H5Sclose(long space_id) throws HDF5LibraryException; /** * H5Sencode converts a data space description into binary form in a buffer. @@ -11156,154 +11190,139 @@ public class H5 implements java.io.Serializable { public synchronized static native byte[] H5Sencode(long obj_id) throws HDF5LibraryException, NullPointerException; /** - * H5Sextent_copy copies the extent from source_space_id to dest_space_id. This action may change the type of the - * dataspace. + * H5Sdecode reconstructs the HDF5 data space object and returns a new object handle for it. * - * @param dest_space_id - * IN: The identifier for the dataspace from which the extent is copied. - * @param source_space_id - * IN: The identifier for the dataspace to which the extent is copied. + * @param buf + * IN: Buffer for the data space object to be decoded. * - * @return a non-negative value if successful + * @return a new object handle * * @exception HDF5LibraryException * - Error from the HDF-5 Library. + * @exception NullPointerException + * - buf is null. **/ - public synchronized static native int H5Sextent_copy(long dest_space_id, long source_space_id) - throws HDF5LibraryException; + public synchronized static native long H5Sdecode(byte[] buf) throws HDF5LibraryException, NullPointerException; /** - * H5Sextent_equal determines whether the dataspace extents of two dataspaces, space1_id and space2_id, are equal. + * H5Sget_simple_extent_npoints determines the number of elements in a dataspace. * - * @param first_space_id - * IN: The identifier for the first dataspace. - * @param second_space_id - * IN: The identifier for the seconddataspace. + * @param space_id + * ID of the dataspace object to query + * @return the number of elements in the dataspace if successful * - * @return true if successful, else false + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native long H5Sget_simple_extent_npoints(long space_id) throws HDF5LibraryException; + + /** + * H5Sget_simple_extent_ndims determines the dimensionality (or rank) of a dataspace. + * + * @param space_id + * IN: Identifier of the dataspace + * + * @return the number of dimensions in the dataspace if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native boolean H5Sextent_equal(long first_space_id, long second_space_id) - throws HDF5LibraryException; + public synchronized static native int H5Sget_simple_extent_ndims(long space_id) throws HDF5LibraryException; /** - * H5Sget_select_bounds retrieves the coordinates of the bounding box containing the current selection and places - * them into user-supplied buffers. - *

- * The start and end buffers must be large enough to hold the dataspace rank number of coordinates. + * H5Sget_simple_extent_dims returns the size and maximum sizes of each dimension of a dataspace through the dims + * and maxdims parameters. * - * @param spaceid - * Identifier of dataspace to release. - * @param start - * coordinates of lowest corner of bounding box. - * @param end - * coordinates of highest corner of bounding box. + * @param space_id + * IN: Identifier of the dataspace object to query + * @param dims + * OUT: Pointer to array to store the size of each dimension. + * @param maxdims + * OUT: Pointer to array to store the maximum size of each dimension. * - * @return a non-negative value if successful,with start and end initialized. + * @return the number of dimensions in the dataspace if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException - * - start or end is null. + * - dims or maxdims is null. **/ - public synchronized static native int H5Sget_select_bounds(long spaceid, long[] start, long[] end) + public synchronized static native int H5Sget_simple_extent_dims(long space_id, long[] dims, long[] maxdims) throws HDF5LibraryException, NullPointerException; /** - * H5Sget_select_elem_npoints returns the number of element points in the current dataspace selection. + * H5Sis_simple determines whether a dataspace is a simple dataspace. * - * @param spaceid - * Identifier of dataspace to release. + * @param space_id + * Identifier of the dataspace to query * - * @return a non-negative value if successful + * @return true if is a simple dataspace * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native long H5Sget_select_elem_npoints(long spaceid) throws HDF5LibraryException; + public synchronized static native boolean H5Sis_simple(long space_id) throws HDF5LibraryException; /** - * H5Sget_select_elem_pointlist returns an array of of element points in the current dataspace selection. The point - * coordinates have the same dimensionality (rank) as the dataspace they are located within, one coordinate per - * point. + * H5Sget_simple_extent_type queries a dataspace to determine the current class of a dataspace. * - * @param spaceid - * Identifier of dataspace to release. - * @param startpoint - * first point to retrieve - * @param numpoints - * number of points to retrieve - * @param buf - * returns points startblock to startblock+num-1, each points is rank longs. + * @param space_id + * Dataspace identifier. * - * @return a non-negative value if successful + * @return a dataspace class name if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. - * @exception NullPointerException - * - buf is null. **/ - public synchronized static native int H5Sget_select_elem_pointlist(long spaceid, long startpoint, long numpoints, - long[] buf) throws HDF5LibraryException, NullPointerException; + public synchronized static native int H5Sget_simple_extent_type(long space_id) throws HDF5LibraryException; /** - * H5Sget_select_hyper_blocklist returns an array of hyperslab blocks. The block coordinates have the same - * dimensionality (rank) as the dataspace they are located within. The list of blocks is formatted as follows: - * - *

-     *    <"start" coordinate>, immediately followed by
-     *    <"opposite" corner coordinate>, followed by
-     *   the next "start" and "opposite" coordinates,
-     *   etc.
-     *   until all of the selected blocks have been listed.
-     * 
+ * H5Sset_extent_none removes the extent from a dataspace and sets the type to H5S_NONE. * - * @param spaceid - * Identifier of dataspace to release. - * @param startblock - * first block to retrieve - * @param numblocks - * number of blocks to retrieve - * @param buf - * returns blocks startblock to startblock+num-1, each block is rank * 2 (corners) longs. + * @param space_id + * The identifier for the dataspace from which the extent is to be removed. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. - * @exception NullPointerException - * - buf is null. **/ - public synchronized static native int H5Sget_select_hyper_blocklist(long spaceid, long startblock, long numblocks, - long[] buf) throws HDF5LibraryException, NullPointerException; + public synchronized static native int H5Sset_extent_none(long space_id) throws HDF5LibraryException; /** - * H5Sget_select_hyper_nblocks returns the number of hyperslab blocks in the current dataspace selection. + * H5Sextent_copy copies the extent from source_space_id to dest_space_id. This action may change the type of the + * dataspace. * - * @param spaceid - * Identifier of dataspace to release. + * @param dest_space_id + * IN: The identifier for the dataspace from which the extent is copied. + * @param source_space_id + * IN: The identifier for the dataspace to which the extent is copied. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native long H5Sget_select_hyper_nblocks(long spaceid) throws HDF5LibraryException; + public synchronized static native int H5Sextent_copy(long dest_space_id, long source_space_id) + throws HDF5LibraryException; /** - * H5Sget_select_npoints determines the number of elements in the current selection of a dataspace. + * H5Sextent_equal determines whether the dataspace extents of two dataspaces, space1_id and space2_id, are equal. * - * @param space_id - * IN: Identifier of the dataspace object to query + * @param first_space_id + * IN: The identifier for the first dataspace. + * @param second_space_id + * IN: The identifier for the seconddataspace. * - * @return the number of elements in the selection if successful + * @return true if successful, else false * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native long H5Sget_select_npoints(long space_id) throws HDF5LibraryException; + public synchronized static native boolean H5Sextent_equal(long first_space_id, long second_space_id) + throws HDF5LibraryException; + + /***************** Operations on dataspace selections *****************/ /** * H5Sget_select_type retrieves the type of selection currently defined for the dataspace space_id. @@ -11319,76 +11338,118 @@ public class H5 implements java.io.Serializable { public synchronized static native int H5Sget_select_type(long space_id) throws HDF5LibraryException; /** - * H5Sget_simple_extent_dims returns the size and maximum sizes of each dimension of a dataspace through the dims - * and maxdims parameters. + * H5Sget_select_npoints determines the number of elements in the current selection of a dataspace. * * @param space_id * IN: Identifier of the dataspace object to query - * @param dims - * OUT: Pointer to array to store the size of each dimension. - * @param maxdims - * OUT: Pointer to array to store the maximum size of each dimension. * - * @return the number of dimensions in the dataspace if successful + * @return the number of elements in the selection if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. - * @exception NullPointerException - * - dims or maxdims is null. **/ - public synchronized static native int H5Sget_simple_extent_dims(long space_id, long[] dims, long[] maxdims) - throws HDF5LibraryException, NullPointerException; + public synchronized static native long H5Sget_select_npoints(long space_id) throws HDF5LibraryException; /** - * H5Sget_simple_extent_ndims determines the dimensionality (or rank) of a dataspace. + * H5Sselect_copy copies all the selection information (including offset) from the source + * dataspace to the destination dataspace. + * @param dst_id ID of the destination dataspace + * @param src_id ID of the source dataspace + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native void H5Sselect_copy(long dst_id, long src_id) throws HDF5LibraryException; + + /** + * H5Sselect_valid verifies that the selection for the dataspace. * * @param space_id - * IN: Identifier of the dataspace + * The identifier for the dataspace in which the selection is being reset. * - * @return the number of dimensions in the dataspace if successful + * @return true if the selection is contained within the extent and FALSE if it is not or is an error. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native int H5Sget_simple_extent_ndims(long space_id) throws HDF5LibraryException; + public synchronized static native boolean H5Sselect_valid(long space_id) throws HDF5LibraryException; /** - * H5Sget_simple_extent_npoints determines the number of elements in a dataspace. + * H5Sselect_adjust moves a selection by subtracting an offset from it. * * @param space_id - * ID of the dataspace object to query - * @return the number of elements in the dataspace if successful + * ID of dataspace to adjust + * @param offset + * Offset to subtract * * @exception HDF5LibraryException * - Error from the HDF-5 Library. + * @exception NullPointerException + * - offset is null. **/ - public synchronized static native long H5Sget_simple_extent_npoints(long space_id) throws HDF5LibraryException; + public synchronized static native void H5Sselect_adjust(long space_id, long[][] offset) + throws HDF5LibraryException, NullPointerException; /** - * H5Sget_simple_extent_type queries a dataspace to determine the current class of a dataspace. + * H5Sget_select_bounds retrieves the coordinates of the bounding box containing the current selection and places + * them into user-supplied buffers. + *

+ * The start and end buffers must be large enough to hold the dataspace rank number of coordinates. * * @param space_id - * Dataspace identifier. + * Identifier of dataspace to release. + * @param start + * coordinates of lowest corner of bounding box. + * @param end + * coordinates of highest corner of bounding box. * - * @return a dataspace class name if successful + * @return a non-negative value if successful,with start and end initialized. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. + * @exception NullPointerException + * - start or end is null. **/ - public synchronized static native int H5Sget_simple_extent_type(long space_id) throws HDF5LibraryException; + public synchronized static native int H5Sget_select_bounds(long space_id, long[] start, long[] end) + throws HDF5LibraryException, NullPointerException; /** - * H5Sis_simple determines whether a dataspace is a simple dataspace. + * H5Sselect_shape_same checks to see if the current selection in the dataspaces are the same + * dimensionality and shape. + * This is primarily used for reading the entire selection in one swoop. + * + * @param space1_id ID of 1st Dataspace pointer to compare + * @param space2_id ID of 2nd Dataspace pointer to compare + * + * @return true if the selection is the same dimensionality and shape; + * false otherwise + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native boolean H5Sselect_shape_same(long space1_id, long space2_id) throws HDF5LibraryException; + + /** + * H5Sselect_intersect_block checks to see if the current selection in the + * dataspace intersects with the block given. * * @param space_id - * Identifier of the dataspace to query + * ID of dataspace pointer to compare + * @param start + * Starting coordinate of block + * @param end + * Opposite ("ending") coordinate of block * - * @return true if is a simple dataspace + * @return a TRUE if the current selection in the dataspace intersects with the block given + * FALSE otherwise * * @exception HDF5LibraryException * - Error from the HDF-5 Library. + * @exception NullPointerException + * - offset is null. **/ - public synchronized static native boolean H5Sis_simple(long space_id) throws HDF5LibraryException; + public synchronized static native boolean H5Sselect_intersect_block(long space_id, long[] start, long[] end) + throws HDF5LibraryException, NullPointerException; /** * H5Soffset_simple sets the offset of a simple dataspace space_id. @@ -11453,6 +11514,18 @@ public class H5 implements java.io.Serializable { public synchronized static native int H5Sselect_all(long space_id) throws HDF5LibraryException; /** + * H5Sselect_none resets the selection region for the dataspace space_id to include no elements. + * + * @param space_id + * IN: The identifier of the dataspace to be reset. + * @return a non-negative value if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native int H5Sselect_none(long space_id) throws HDF5LibraryException; + + /** * H5Sselect_elements selects array elements to be included in the selection for the space_id dataspace. * * @param space_id @@ -11510,6 +11583,43 @@ public class H5 implements java.io.Serializable { } /** + * H5Sget_select_elem_npoints returns the number of element points in the current dataspace selection. + * + * @param spaceid + * Identifier of dataspace to release. + * + * @return a non-negative value if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native long H5Sget_select_elem_npoints(long spaceid) throws HDF5LibraryException; + + /** + * H5Sget_select_elem_pointlist returns an array of of element points in the current dataspace selection. The point + * coordinates have the same dimensionality (rank) as the dataspace they are located within, one coordinate per + * point. + * + * @param spaceid + * Identifier of dataspace to release. + * @param startpoint + * first point to retrieve + * @param numpoints + * number of points to retrieve + * @param buf + * returns points startblock to startblock+num-1, each points is rank longs. + * + * @return a non-negative value if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + * @exception NullPointerException + * - buf is null. + **/ + public synchronized static native int H5Sget_select_elem_pointlist(long spaceid, long startpoint, long numpoints, + long[] buf) throws HDF5LibraryException, NullPointerException; + + /** * H5Sselect_hyperslab selects a hyperslab region to add to the current selected region for the dataspace specified * by space_id. The start, stride, count, and block arrays must be the same size as the rank of the dataspace. * @@ -11578,90 +11688,89 @@ public class H5 implements java.io.Serializable { public synchronized static native int H5Sselect_hyperslab(long space_id, int op, long[] start, long[] stride, long[] count, long[] block) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; - /** - * H5Sselect_none resets the selection region for the dataspace space_id to include no elements. - * - * @param space_id - * IN: The identifier of the dataspace to be reset. - * @return a non-negative value if successful - * - * @exception HDF5LibraryException - * - Error from the HDF-5 Library. - **/ - public synchronized static native int H5Sselect_none(long space_id) throws HDF5LibraryException; /** - * H5Sselect_valid verifies that the selection for the dataspace. + * H5Scombine_hyperslab combines a hyperslab selection with the current selection for a dataspace, + * creating a new dataspace to return the generated selection. + * If the current selection is not a hyperslab, it is freed and the hyperslab + * parameters passed in are combined with the H5S_SEL_ALL hyperslab (ie. a + * selection composing the entire current extent). If STRIDE or BLOCK is + * NULL, they are assumed to be set to all '1'. * * @param space_id - * The identifier for the dataspace in which the selection is being reset. + * IN: Dataspace ID of selection to use + * @param op + * IN: Operation to perform on current selection. + * @param start + * IN: Offset of start of hyperslab + * @param stride + * IN: Hyperslab stride. + * @param count + * IN: Number of blocks included in hyperslab. + * @param block + * IN: Size of block in hyperslab. * - * @return true if the selection is contained within the extent and FALSE if it is not or is an error. + * @return a dataspace ID on success / H5I_INVALID_HID on failure * * @exception HDF5LibraryException * - Error from the HDF-5 Library. + * @exception NullPointerException + * - an input array is null. + * @exception IllegalArgumentException + * - an input array is invalid. **/ - public synchronized static native boolean H5Sselect_valid(long space_id) throws HDF5LibraryException; + public synchronized static native long H5Scombine_hyperslab(long space_id, int op, long[] start, long[] stride, + long[] count, long[] block) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** - * H5Sset_extent_none removes the extent from a dataspace and sets the type to H5S_NONE. - * - * @param space_id - * The identifier for the dataspace from which the extent is to be removed. + * H5Smodify_select refine an existing hyperslab selection with an operation, using a second + * hyperslab. The first selection is modified to contain the result of + * space1 operated on by space2. * - * @return a non-negative value if successful + * @param space1_id + * ID of the destination dataspace + * @param op + * Operation to perform on current selection. + * @param space2_id + * ID of the source dataspace * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native int H5Sset_extent_none(long space_id) throws HDF5LibraryException; + public synchronized static native void H5Smodify_select(long space1_id, int op, long space2_id) throws HDF5LibraryException; /** - * H5Sset_extent_simple sets or resets the size of an existing dataspace. + * H5Scombine_select combines two existing hyperslab selections with an operation, returning + * a new dataspace with the resulting selection. The dataspace extent from + * space1 is copied for the dataspace extent of the newly created dataspace. * - * @param space_id - * Dataspace identifier. - * @param rank - * Rank, or dimensionality, of the dataspace. - * @param current_size - * Array containing current size of dataspace. - * @param maximum_size - * Array containing maximum size of dataspace. + * @param space1_id + * ID of the first dataspace + * @param op + * Operation to perform on current selection. + * @param space2_id + * ID of the second dataspace * - * @return a dataspace identifier if successful + * @return a dataspace ID on success / H5I_INVALID_HID on failure * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static native long H5Sset_extent_simple(long space_id, int rank, long[] current_size, - long[] maximum_size) throws HDF5LibraryException, NullPointerException; + public synchronized static native long H5Scombine_select(long space1_id, int op, long space2_id) throws HDF5LibraryException; /** - * H5Sset_extent_simple sets or resets the size of an existing dataspace. + * H5Sis_regular_hyperslab retrieves a regular hyperslab selection for the dataspace specified + * by space_id. * * @param space_id - * Dataspace identifier. - * @param rank - * Rank, or dimensionality, of the dataspace. - * @param current_size - * Array containing current size of dataspace. - * @param maximum_size - * Array containing maximum size of dataspace. + * IN: Identifier of dataspace selection to query * - * @return a dataspace identifier if successful + * @return a TRUE/FALSE for hyperslab selection if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ - public synchronized static long H5Sset_extent_simple(long space_id, int rank, byte[] current_size, - byte[] maximum_size) throws HDF5LibraryException, NullPointerException { - ByteBuffer csbb = ByteBuffer.wrap(current_size); - long[] lacs = (csbb.asLongBuffer()).array(); - ByteBuffer maxsbb = ByteBuffer.wrap(maximum_size); - long[] lamaxs = (maxsbb.asLongBuffer()).array(); - - return H5Sset_extent_simple(space_id, rank, lacs, lamaxs); - } + public synchronized static native boolean H5Sis_regular_hyperslab(long space_id) throws HDF5LibraryException; /** * H5Sget_regular_hyperslab determines if a hyperslab selection is regular for the dataspace specified @@ -11687,33 +11796,82 @@ public class H5 implements java.io.Serializable { **/ public synchronized static native void H5Sget_regular_hyperslab(long space_id, long[] start, long[] stride, long[] count, long[] block) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; + /** + * H5Sget_select_hyper_nblocks returns the number of hyperslab blocks in the current dataspace selection. + * + * @param spaceid + * Identifier of dataspace to release. + * + * @return a non-negative value if successful + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native long H5Sget_select_hyper_nblocks(long spaceid) throws HDF5LibraryException; + /** - * H5Sis_regular_hyperslab retrieves a regular hyperslab selection for the dataspace specified - * by space_id. + * H5Sget_select_hyper_blocklist returns an array of hyperslab blocks. The block coordinates have the same + * dimensionality (rank) as the dataspace they are located within. The list of blocks is formatted as follows: * - * @param space_id - * IN: Identifier of dataspace selection to query + *

+     *    <"start" coordinate>, immediately followed by
+     *    <"opposite" corner coordinate>, followed by
+     *   the next "start" and "opposite" coordinates,
+     *   etc.
+     *   until all of the selected blocks have been listed.
+     * 
* - * @return a TRUE/FALSE for hyperslab selection if successful + * @param spaceid + * Identifier of dataspace to release. + * @param startblock + * first block to retrieve + * @param numblocks + * number of blocks to retrieve + * @param buf + * returns blocks startblock to startblock+num-1, each block is rank * 2 (corners) longs. + * + * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. + * @exception NullPointerException + * - buf is null. **/ - public synchronized static native boolean H5Sis_regular_hyperslab(long space_id) throws HDF5LibraryException; + public synchronized static native int H5Sget_select_hyper_blocklist(long spaceid, long startblock, long numblocks, + long[] buf) throws HDF5LibraryException, NullPointerException; - // /////// unimplemented //////// - // #ifdef NEW_HYPERSLAB_API - // hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op, - // const hsize_t start[], - // const hsize_t _stride[], - // const hsize_t count[], - // const hsize_t _block[]); - // herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op, - // hid_t space2_id); - // hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op, - // hid_t space2_id); - // #endif /* NEW_HYPERSLAB_API */ - // herr_t H5Sselect_copy(hid_t dst_id, hid_t src_id); + /** + * H5Sselect_project_intersection projects the intersection of the selections of src_space_id and + * src_intersect_space_id within the selection of src_space_id as a + * selection within the selection of dst_space_id. + * + * @param src_space_id + * Selection that is mapped to dst_space_id, and intersected with src_intersect_space_id + * @param dst_space_id + * Selection that is mapped to src_space_id + * @param src_intersect_space_id + * Selection whose intersection with src_space_id is projected to dst_space_id to obtain the result + * + * @return a dataspace with a selection equal to the intersection of + * src_intersect_space_id and src_space_id projected from src_space to dst_space on success + * + * @exception HDF5LibraryException + * - Error from the HDF-5 Library. + **/ + public synchronized static native long H5Sselect_project_intersection(long src_space_id, long dst_space_id, + long src_intersect_space_id) throws HDF5LibraryException; + + + // /////// unimplemented //////// + ///// Operations on dataspace selections ///// + + // + ///// Operations on dataspace selection iterators ///// + //public synchronized static native H5Ssel_iter_create(hid_t spaceid, size_t elmt_size, unsigned flags); + //public synchronized static native H5Ssel_iter_get_seq_list(hid_t sel_iter_id, size_t maxseq, size_t maxbytes, size_t *nseq, + // size_t *nbytes, hsize_t *off, size_t *len); + //public synchronized static native H5Ssel_iter_reset(hid_t sel_iter_id, hid_t space_id); + //public synchronized static native H5Ssel_iter_close(hid_t sel_iter_id); diff --git a/java/src/hdf/hdf5lib/HDF5Constants.java b/java/src/hdf/hdf5lib/HDF5Constants.java index beba1d1..7ecfe95 100644 --- a/java/src/hdf/hdf5lib/HDF5Constants.java +++ b/java/src/hdf/hdf5lib/HDF5Constants.java @@ -35,12 +35,17 @@ public class HDF5Constants { // Get the HDF5 constants from the library // // ///////////////////////////////////////////////////////////////////////// - public static final long H5_QUARTER_HADDR_MAX = H5_QUARTER_HADDR_MAX(); + //public static final long H5_QUARTER_HADDR_MAX = H5_QUARTER_HADDR_MAX(); + /** Special parameters for szip compression */ public static final int H5_SZIP_MAX_PIXELS_PER_BLOCK = H5_SZIP_MAX_PIXELS_PER_BLOCK(); + /** Special parameters for szip compression */ public static final int H5_SZIP_NN_OPTION_MASK = H5_SZIP_NN_OPTION_MASK(); + /** Special parameters for szip compression */ public static final int H5_SZIP_EC_OPTION_MASK = H5_SZIP_EC_OPTION_MASK(); + /** Special parameters for szip compression */ public static final int H5_SZIP_ALLOW_K13_OPTION_MASK = H5_SZIP_ALLOW_K13_OPTION_MASK(); + /** Special parameters for szip compression */ public static final int H5_SZIP_CHIP_OPTION_MASK = H5_SZIP_CHIP_OPTION_MASK(); public static final int H5_INDEX_UNKNOWN = H5_INDEX_UNKNOWN(); public static final int H5_INDEX_NAME = H5_INDEX_NAME(); @@ -92,110 +97,359 @@ public class HDF5Constants { public static final int H5D_VDS_LAST_AVAILABLE = H5D_VDS_LAST_AVAILABLE(); public static final int H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS = H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS(); + /** Different kinds of error information - H5E_type_t */ public static final int H5E_MAJOR = H5E_MAJOR(); + /** Different kinds of error information - H5E_type_t */ public static final int H5E_MINOR = H5E_MINOR(); + /** Minor error codes - Object header related errors - Alignment error */ public static final long H5E_ALIGNMENT = H5E_ALIGNMENT(); + /** Minor error codes - Resource errors - Object already exists */ public static final long H5E_ALREADYEXISTS = H5E_ALREADYEXISTS(); + /** Minor error codes - Function entry/exit interface - Object already initialized */ public static final long H5E_ALREADYINIT = H5E_ALREADYINIT(); + /** Major error codes - Invalid arguments to routine */ public static final long H5E_ARGS = H5E_ARGS(); + /** Major error codes - Object atom */ public static final long H5E_ATOM = H5E_ATOM(); + /** Major error codes - Attribute */ public static final long H5E_ATTR = H5E_ATTR(); + /** Minor error codes - Object atom related errors - Unable to find atom information (already closed?) */ public static final long H5E_BADATOM = H5E_BADATOM(); + /** Minor error codes - File accessibility errors - Bad file ID accessed */ public static final long H5E_BADFILE = H5E_BADFILE(); + /** Minor error codes - Object atom related errors - Unable to find ID group information */ public static final long H5E_BADGROUP = H5E_BADGROUP(); + /** Minor error codes - Object header related errors - Iteration failed */ + public static final long H5E_BADITER = H5E_BADITER(); + /** Minor error codes - Object header related errors - Unrecognized message */ public static final long H5E_BADMESG = H5E_BADMESG(); + /** Minor error codes - Argument errors - Out of range */ public static final long H5E_BADRANGE = H5E_BADRANGE(); + /** Minor error codes - Dataspace errors - Invalid selection */ public static final long H5E_BADSELECT = H5E_BADSELECT(); + /** Datatype conversion errors - Bad size for object */ public static final long H5E_BADSIZE = H5E_BADSIZE(); + /** Minor error codes - Argument errors - Inappropriate type */ public static final long H5E_BADTYPE = H5E_BADTYPE(); + /** Minor error codes - Argument errors - Bad value */ public static final long H5E_BADVALUE = H5E_BADVALUE(); + /** Major error codes - B-Tree node */ public static final long H5E_BTREE = H5E_BTREE(); + /** Major error codes - Object cache */ public static final long H5E_CACHE = H5E_CACHE(); + /** I/O pipeline errors - Callback failed */ public static final long H5E_CALLBACK = H5E_CALLBACK(); + /** I/O pipeline errors - Error from filter 'can apply' callback */ public static final long H5E_CANAPPLY = H5E_CANAPPLY(); - // public static final long H5E_CANTALLOC = H5E_CANTALLOC(); + /** Minor error codes - Resource errors - Can't allocate space */ + public static final long H5E_CANTALLOC = H5E_CANTALLOC(); + /** Minor error codes - Dataspace errors - Can't append object */ + public static final long H5E_CANTAPPEND = H5E_CANTAPPEND(); + /** Minor error codes - Heap errors - Can't attach object */ + public static final long H5E_CANTATTACH = H5E_CANTATTACH(); + /** Minor error codes - Cache related errors - Unable to mark metadata as clean */ + public static final long H5E_CANTCLEAN = H5E_CANTCLEAN(); + /** Minor error codes - Dataspace errors - Can't clip hyperslab region */ public static final long H5E_CANTCLIP = H5E_CANTCLIP(); + /** Minor error codes - File accessibility errors - Unable to close file */ public static final long H5E_CANTCLOSEFILE = H5E_CANTCLOSEFILE(); + /** Minor error codes - Group related errors - Can't close object */ + public static final long H5E_CANTCLOSEOBJ = H5E_CANTCLOSEOBJ(); + /** Minor error codes - Dataspace errors - Can't compare objects */ + public static final long H5E_CANTCOMPARE = H5E_CANTCOMPARE(); + /** Minor error codes - Heap errors - Can't compute value */ + public static final long H5E_CANTCOMPUTE = H5E_CANTCOMPUTE(); + /** Datatype conversion errors - Can't convert datatypes */ public static final long H5E_CANTCONVERT = H5E_CANTCONVERT(); + /** Minor error codes - Resource errors - Unable to copy object */ public static final long H5E_CANTCOPY = H5E_CANTCOPY(); + /** Minor error codes - Cache related errors - Unable to cork an object */ + public static final long H5E_CANTCORK = H5E_CANTCORK(); + /** Minor error codes - Dataspace errors - Can't count elements */ public static final long H5E_CANTCOUNT = H5E_CANTCOUNT(); + /** Minor error codes - File accessibility errors - Unable to create file */ public static final long H5E_CANTCREATE = H5E_CANTCREATE(); + /** Minor error codes - Object atom related errors - Unable to decrement reference count */ public static final long H5E_CANTDEC = H5E_CANTDEC(); + /** Minor error codes - B-tree related errors - Unable to decode value */ public static final long H5E_CANTDECODE = H5E_CANTDECODE(); + /** Minor error codes - Object header related errors - Can't delete message */ public static final long H5E_CANTDELETE = H5E_CANTDELETE(); + /** Minor error codes - File accessibility errors - Unable to delete file */ public static final long H5E_CANTDELETEFILE = H5E_CANTDELETEFILE(); + /** Minor error codes - Cache related errors - Unable to create a flush dependency */ + public static final long H5E_CANTDEPEND = H5E_CANTDEPEND(); + /** Minor error codes - Cache related errors - Unable to mark metadata as dirty */ + public static final long H5E_CANTDIRTY = H5E_CANTDIRTY(); + /** Minor error codes - B-tree related errors - Unable to encode value */ public static final long H5E_CANTENCODE = H5E_CANTENCODE(); + /** Minor error codes - Cache related errors - Unable to expunge a metadata cache entry */ + public static final long H5E_CANTEXPUNGE = H5E_CANTEXPUNGE(); + /** Minor error codes - Heap errors - Can't extend heap's space */ + public static final long H5E_CANTEXTEND = H5E_CANTEXTEND(); + /** I/O pipeline errors - Filter operation failed */ + public static final long H5E_CANTFILTER = H5E_CANTFILTER(); + /** Minor error codes - Cache related errors - Unable to flush data from cache */ public static final long H5E_CANTFLUSH = H5E_CANTFLUSH(); + /** Minor error codes - Resource errors - Unable to free object */ public static final long H5E_CANTFREE = H5E_CANTFREE(); + /** Minor error codes - Parallel MPI - Can't gather data */ + public static final long H5E_CANTGATHER = H5E_CANTGATHER(); + /** Minor error codes - Resource errors - Unable to garbage collect */ + public static final long H5E_CANTGC = H5E_CANTGC(); + /** Minor error codes - Property list errors - Can't get value */ public static final long H5E_CANTGET = H5E_CANTGET(); + /** Minor error codes - Resource errors - Unable to compute size */ + public static final long H5E_CANTGETSIZE = H5E_CANTGETSIZE(); + /** Minor error codes - Object atom related errors - Unable to increment reference count */ public static final long H5E_CANTINC = H5E_CANTINC(); + /** Minor error codes - Function entry/exit interface - Unable to initialize object */ public static final long H5E_CANTINIT = H5E_CANTINIT(); + /** Minor error codes - Cache related errors - Unable to insert metadata into cache */ + public static final long H5E_CANTINS = H5E_CANTINS(); + /** Minor error codes - B-tree related errors - Unable to insert object */ public static final long H5E_CANTINSERT = H5E_CANTINSERT(); + /** Minor error codes - B-tree related errors - Unable to list node */ public static final long H5E_CANTLIST = H5E_CANTLIST(); + /** Minor error codes - Cache related errors - Unable to load metadata into cache */ public static final long H5E_CANTLOAD = H5E_CANTLOAD(); + /** Minor error codes - Resource errors - Unable to lock object */ public static final long H5E_CANTLOCK = H5E_CANTLOCK(); + /** Minor error codes - File accessibility errors Unable to lock file */ + public static final long H5E_CANTLOCKFILE = H5E_CANTLOCKFILE(); + /** Minor error codes - Cache related errors - Unable to mark a pinned entry as clean */ + public static final long H5E_CANTMARKCLEAN = H5E_CANTMARKCLEAN(); + /** Minor error codes - Cache related errors - Unable to mark a pinned entry as dirty */ + public static final long H5E_CANTMARKDIRTY = H5E_CANTMARKDIRTY(); + /** Minor error codes - Cache related errors - Unable to mark an entry as unserialized */ + public static final long H5E_CANTMARKSERIALIZED = H5E_CANTMARKSERIALIZED(); + /** Minor error codes - Cache related errors - Unable to mark an entry as serialized */ + public static final long H5E_CANTMARKUNSERIALIZED = H5E_CANTMARKUNSERIALIZED(); + /** Minor error codes - Free space errors - Can't merge objects */ + public static final long H5E_CANTMERGE = H5E_CANTMERGE(); + /** Minor error codes - B-tree related errors - Unable to modify record */ + public static final long H5E_CANTMODIFY = H5E_CANTMODIFY(); + /** Minor error codes - Link related errors - Can't move object */ + public static final long H5E_CANTMOVE = H5E_CANTMOVE(); + /** Minor error codes - Dataspace errors - Can't move to next iterator location */ public static final long H5E_CANTNEXT = H5E_CANTNEXT(); + /** Minor error codes - Cache related errors - Unable to notify object about action */ + public static final long H5E_CANTNOTIFY = H5E_CANTNOTIFY(); + /** Minor error codes - File accessibility errors - Unable to open file */ public static final long H5E_CANTOPENFILE = H5E_CANTOPENFILE(); + /** Minor error codes - Group related errors - Can't open object */ public static final long H5E_CANTOPENOBJ = H5E_CANTOPENOBJ(); - // public static final long H5E_CANTRECV = H5E_CANTRECV(); + /** Minor error codes - Heap errors - Can't operate on object */ + public static final long H5E_CANTOPERATE = H5E_CANTOPERATE(); + /** Minor error codes - Object header related errors - Can't pack messages */ + public static final long H5E_CANTPACK = H5E_CANTPACK(); + /** Minor error codes - Cache related errors - Unable to pin cache entry */ + public static final long H5E_CANTPIN = H5E_CANTPIN(); + /** Minor error codes - Cache related errors - Unable to protect metadata */ + public static final long H5E_CANTPROTECT = H5E_CANTPROTECT(); + /** Minor error codes - Parallel MPI - Can't receive data */ + public static final long H5E_CANTRECV = H5E_CANTRECV(); + /** Minor error codes - B-tree related errors - Unable to redistribute records */ + public static final long H5E_CANTREDISTRIBUTE = H5E_CANTREDISTRIBUTE(); + /** Minor error codes - Object atom related errors - Unable to register new atom */ public static final long H5E_CANTREGISTER = H5E_CANTREGISTER(); + /** Minor error codes - Function entry/exit interface - Unable to release object */ public static final long H5E_CANTRELEASE = H5E_CANTRELEASE(); + /** Minor error codes - B-tree related errors - Unable to remove object */ + public static final long H5E_CANTREMOVE = H5E_CANTREMOVE(); + /** Minor error codes - Object header related errors - Unable to rename object */ + public static final long H5E_CANTRENAME = H5E_CANTRENAME(); + /** Minor error codes - Object header related errors - Can't reset object */ + public static final long H5E_CANTRESET = H5E_CANTRESET(); + /** Minor error codes - Cache related errors - Unable to resize a metadata cache entry */ + public static final long H5E_CANTRESIZE = H5E_CANTRESIZE(); + /** Minor error codes - Heap errors - Can't restore condition */ + public static final long H5E_CANTRESTORE = H5E_CANTRESTORE(); + /** Minor error codes - Free space errors - Can't revive object */ + public static final long H5E_CANTREVIVE = H5E_CANTREVIVE(); + /** Minor error codes - Free space errors - Can't shrink container */ + public static final long H5E_CANTSHRINK = H5E_CANTSHRINK(); + /** Minor error codes - Dataspace errors - Can't select hyperslab */ public static final long H5E_CANTSELECT = H5E_CANTSELECT(); + /** Minor error codes - Cache related errors - Unable to serialize data from cache */ + public static final long H5E_CANTSERIALIZE = H5E_CANTSERIALIZE(); + /** Minor error codes - Property list errors - Can't set value */ public static final long H5E_CANTSET = H5E_CANTSET(); + /** Minor error codes - Link related errors - Can't sort objects */ + public static final long H5E_CANTSORT = H5E_CANTSORT(); + /** Minor error codes - B-tree related errors - Unable to split node */ public static final long H5E_CANTSPLIT = H5E_CANTSPLIT(); + /** Minor error codes - B-tree related errors - Unable to swap records */ + public static final long H5E_CANTSWAP = H5E_CANTSWAP(); + /** Minor error codes - Cache related errors - Unable to tag metadata in the cache */ + public static final long H5E_CANTTAG = H5E_CANTTAG(); + /** Minor error codes - Cache related errors - Unable to uncork an object */ + public static final long H5E_CANTUNCORK = H5E_CANTUNCORK(); + /** Minor error codes - Cache related errors - Unable to destroy a flush dependency */ + public static final long H5E_CANTUNDEPEND = H5E_CANTUNDEPEND(); + /** Minor error codes - Resource errors - Unable to unlock object */ public static final long H5E_CANTUNLOCK = H5E_CANTUNLOCK(); + /** Minor error codes - File accessibility errors Unable to unlock file */ + public static final long H5E_CANTUNLOCKFILE = H5E_CANTUNLOCKFILE(); + /** Minor error codes - Cache related errors - Unable to un-pin cache entry */ + public static final long H5E_CANTUNPIN = H5E_CANTUNPIN(); + /** Minor error codes - Cache related errors - Unable to unprotect metadata */ + public static final long H5E_CANTUNPROTECT = H5E_CANTUNPROTECT(); + /** Minor error codes - Cache related errors - Unable to mark metadata as unserialized */ + public static final long H5E_CANTUNSERIALIZE = H5E_CANTUNSERIALIZE(); + /** Minor error codes - Heap errors - Can't update object */ + public static final long H5E_CANTUPDATE = H5E_CANTUPDATE(); + /** Generic low-level file I/O errors - Close failed */ public static final long H5E_CLOSEERROR = H5E_CLOSEERROR(); + /** Minor error codes - Group related errors - Name component is too long */ public static final long H5E_COMPLEN = H5E_COMPLEN(); + /** Major error codes - API Context */ + public static final long H5E_CONTEXT = H5E_CONTEXT(); + /** Major error codes - Dataset */ public static final long H5E_DATASET = H5E_DATASET(); + /** Major error codes - Dataspace */ public static final long H5E_DATASPACE = H5E_DATASPACE(); + /** Major error codes - Datatype */ public static final long H5E_DATATYPE = H5E_DATATYPE(); + /** Value for the default error stack */ public static final long H5E_DEFAULT = H5E_DEFAULT(); + /** Minor error codes - Property list errors - Duplicate class name in parent class */ public static final long H5E_DUPCLASS = H5E_DUPCLASS(); + /** Major error codes - Extensible Array */ + public static final long H5E_EARRAY = H5E_EARRAY(); + /** Major error codes - External file list */ public static final long H5E_EFL = H5E_EFL(); + /** Major error codes - Error API */ + public static final long H5E_ERROR = H5E_ERROR(); + /** Minor error codes - B-tree related errors - Object already exists */ public static final long H5E_EXISTS = H5E_EXISTS(); + /** Major error codes - Fixed Array */ + public static final long H5E_FARRAY = H5E_FARRAY(); + /** Generic low-level file I/O errors - File control (fcntl) failed */ public static final long H5E_FCNTL = H5E_FCNTL(); + /** Major error codes - File accessibility */ public static final long H5E_FILE = H5E_FILE(); + /** Minor error codes - File accessibility errors - File already exists */ public static final long H5E_FILEEXISTS = H5E_FILEEXISTS(); + /** Minor error codes - File accessibility errors - File already open */ public static final long H5E_FILEOPEN = H5E_FILEOPEN(); + /** Major error codes - Free Space Manager */ + public static final long H5E_FSPACE = H5E_FSPACE(); + /** Major error codes - Function entry/exit */ public static final long H5E_FUNC = H5E_FUNC(); + /** Major error codes - Heap */ public static final long H5E_HEAP = H5E_HEAP(); + /** Minor error codes - Dataspace errors - Internal states are inconsistent */ + public static final long H5E_INCONSISTENTSTATE = H5E_INCONSISTENTSTATE(); + /** Major error codes - Internal error (too specific to document in detail) */ public static final long H5E_INTERNAL = H5E_INTERNAL(); + /** Major error codes - Low-level I/O */ public static final long H5E_IO = H5E_IO(); + /** Major error codes - Links */ public static final long H5E_LINK = H5E_LINK(); + /** Minor error codes - Object header related errors - Bad object header link count */ public static final long H5E_LINKCOUNT = H5E_LINKCOUNT(); + /** Minor error codes - Cache related errors - Failure in the cache logging framework */ + public static final long H5E_LOGGING = H5E_LOGGING(); + /** Major error codes - Map */ + public static final long H5E_MAP = H5E_MAP(); + /** Minor error codes - File accessibility errors - File mount error */ public static final long H5E_MOUNT = H5E_MOUNT(); + /** Minor error codes - Parallel MPI - Some MPI function failed */ public static final long H5E_MPI = H5E_MPI(); + /** Minor error codes - Parallel MPI - MPI Error String */ public static final long H5E_MPIERRSTR = H5E_MPIERRSTR(); + /** Minor error codes - Link related errors - Too many soft links in path */ + public static final long H5E_NLINKS = H5E_NLINKS(); + /** Minor error codes - Parallel MPI - Can't perform independent IO */ + public static final long H5E_NO_INDEPENDENT = H5E_NO_INDEPENDENT(); + /** I/O pipeline errors - Filter present but encoding disabled */ + public static final long H5E_NOENCODER = H5E_NOENCODER(); + /** I/O pipeline errors - Requested filter is not available */ public static final long H5E_NOFILTER = H5E_NOFILTER(); + /** Minor error codes - Object atom related errors - Out of IDs for group */ public static final long H5E_NOIDS = H5E_NOIDS(); + /** Major error codes - No error */ public static final long H5E_NONE_MAJOR = H5E_NONE_MAJOR(); + /** No error */ public static final long H5E_NONE_MINOR = H5E_NONE_MINOR(); + /** Minor error codes - Resource errors - No space available for allocation */ public static final long H5E_NOSPACE = H5E_NOSPACE(); + /** Minor error codes - Cache related errors - Metadata not currently cached */ public static final long H5E_NOTCACHED = H5E_NOTCACHED(); + /** Minor error codes - B-tree related errors - Object not found */ public static final long H5E_NOTFOUND = H5E_NOTFOUND(); + /** Minor error codes - File accessibility errors - Not an HDF5 file */ public static final long H5E_NOTHDF5 = H5E_NOTHDF5(); + /** Minor error codes - Link related errors - Link class not registered */ + public static final long H5E_NOTREGISTERED = H5E_NOTREGISTERED(); + /** Minor error codes - Resource errors - Object is already open */ + public static final long H5E_OBJOPEN = H5E_OBJOPEN(); + /** Major error codes - Object header */ public static final long H5E_OHDR = H5E_OHDR(); + /** Minor error codes - Plugin errors - Can't open directory or file */ + public static final long H5E_OPENERROR = H5E_OPENERROR(); + /** Generic low-level file I/O errors - Address overflowed */ public static final long H5E_OVERFLOW = H5E_OVERFLOW(); + /** Major error codes - Page Buffering */ + public static final long H5E_PAGEBUF = H5E_PAGEBUF(); + /** Minor error codes - Group related errors - Problem with path to object */ + public static final long H5E_PATH = H5E_PATH(); + /** Major error codes - Data filters */ public static final long H5E_PLINE = H5E_PLINE(); + /** Major error codes - Property lists */ public static final long H5E_PLIST = H5E_PLIST(); + /** Major error codes - Plugin for dynamically loaded library */ + public static final long H5E_PLUGIN = H5E_PLUGIN(); + /** Minor error codes - Cache related errors - Protected metadata error */ public static final long H5E_PROTECT = H5E_PROTECT(); + /** Generic low-level file I/O errors - Read failed */ public static final long H5E_READERROR = H5E_READERROR(); + /** Major error codes - References */ public static final long H5E_REFERENCE = H5E_REFERENCE(); + /** Major error codes - Resource unavailable */ public static final long H5E_RESOURCE = H5E_RESOURCE(); + /** Major error codes - Reference Counted Strings */ public static final long H5E_RS = H5E_RS(); + /** Generic low-level file I/O errors - Seek failed */ public static final long H5E_SEEKERROR = H5E_SEEKERROR(); + /** Minor error codes - Property list errors - Disallowed operation */ + public static final long H5E_SETDISALLOWED = H5E_SETDISALLOWED(); + /** I/O pipeline errors - Error from filter 'set local' callback */ public static final long H5E_SETLOCAL = H5E_SETLOCAL(); + /** Major error codes - Skip Lists */ + public static final long H5E_SLIST = H5E_SLIST(); + /** Major error codes - Shared Object Header Messages */ + public static final long H5E_SOHM = H5E_SOHM(); + /** Major error codes - Data storage */ public static final long H5E_STORAGE = H5E_STORAGE(); + /** Major error codes - Symbol table */ public static final long H5E_SYM = H5E_SYM(); + /** Minor error codes - System level errors - System error message */ + public static final long H5E_SYSERRSTR = H5E_SYSERRSTR(); + /** Minor error codes - Cache related errors - Internal error detected */ + public static final long H5E_SYSTEM = H5E_SYSTEM(); + /** Minor error codes - Link related errors - Link traversal failure */ + public static final long H5E_TRAVERSE = H5E_TRAVERSE(); + /** Minor error codes - File accessibility errors - File has been truncated */ public static final long H5E_TRUNCATED = H5E_TRUNCATED(); + /** Major error codes - Ternary Search Trees */ public static final long H5E_TST = H5E_TST(); + /** Minor error codes - Argument errors - Information is uinitialized */ public static final long H5E_UNINITIALIZED = H5E_UNINITIALIZED(); + /** Minor error codes - Argument errors - Feature is unsupported */ public static final long H5E_UNSUPPORTED = H5E_UNSUPPORTED(); + /** Minor error codes - Object header related errors - Wrong version number */ public static final long H5E_VERSION = H5E_VERSION(); + /** Major error codes - Virtual File Layer */ public static final long H5E_VFL = H5E_VFL(); + /** Major error codes - Virtual Object Layer */ public static final long H5E_VOL = H5E_VOL(); + /** Error stack traversal direction - begin at API function, end deep */ public static final long H5E_WALK_DOWNWARD = H5E_WALK_DOWNWARD(); + /** Error stack traversal direction - begin deep, end at API function */ public static final long H5E_WALK_UPWARD = H5E_WALK_UPWARD(); + /** Generic low-level file I/O errors - Write failed */ public static final long H5E_WRITEERROR = H5E_WRITEERROR(); private static final int H5ES_STATUS_IN_PROGRESS = H5ES_STATUS_IN_PROGRESS(); @@ -424,29 +678,53 @@ public class HDF5Constants { public static final int H5R_OBJECT1 = H5R_OBJECT1(); public static final int H5R_OBJECT2 = H5R_OBJECT2(); + /** Define atomic datatypes */ public static final int H5S_ALL = H5S_ALL(); + /** Define user-level maximum number of dimensions */ public static final int H5S_MAX_RANK = H5S_MAX_RANK(); + /** Different types of dataspaces - error */ public static final int H5S_NO_CLASS = H5S_NO_CLASS(); + /** Different types of dataspaces - null dataspace */ public static final int H5S_NULL = H5S_NULL(); + /** Different types of dataspaces - scalar variable */ public static final int H5S_SCALAR = H5S_SCALAR(); + /** Enumerated type for the type of selection - Entire extent selected */ public static final int H5S_SEL_ALL = H5S_SEL_ALL(); + /** Enumerated type for the type of selection - Error */ public static final int H5S_SEL_ERROR = H5S_SEL_ERROR(); + /** Enumerated type for the type of selection - Hyperslab selected */ public static final int H5S_SEL_HYPERSLABS = H5S_SEL_HYPERSLABS(); + /** Enumerated type for the type of selection - LAST */ public static final int H5S_SEL_N = H5S_SEL_N(); + /** Enumerated type for the type of selection - Nothing selected */ public static final int H5S_SEL_NONE = H5S_SEL_NONE(); + /** Enumerated type for the type of selection - Points / elements selected */ public static final int H5S_SEL_POINTS = H5S_SEL_POINTS(); + /** Different ways of combining selections - Binary "and" operation for hyperslabs */ public static final int H5S_SELECT_AND = H5S_SELECT_AND(); + /** Different ways of combining selections - Append elements to end of point selection */ public static final int H5S_SELECT_APPEND = H5S_SELECT_APPEND(); + /** Different ways of combining selections - Invalid upper bound on selection operations */ public static final int H5S_SELECT_INVALID = H5S_SELECT_INVALID(); + /** Different ways of combining selections - error */ public static final int H5S_SELECT_NOOP = H5S_SELECT_NOOP(); + /** Different ways of combining selections - Binary "not" operation for hyperslabs */ public static final int H5S_SELECT_NOTA = H5S_SELECT_NOTA(); + /** Different ways of combining selections - Binary "not" operation for hyperslabs */ public static final int H5S_SELECT_NOTB = H5S_SELECT_NOTB(); + /** Different ways of combining selections - Binary "or" operation for hyperslabs */ public static final int H5S_SELECT_OR = H5S_SELECT_OR(); + /** Different ways of combining selections - Prepend elements to beginning of point selection */ public static final int H5S_SELECT_PREPEND = H5S_SELECT_PREPEND(); + /** Different ways of combining selections - Select "set" operation */ public static final int H5S_SELECT_SET = H5S_SELECT_SET(); + /** Different ways of combining selections - Binary "xor" operation for hyperslabs */ public static final int H5S_SELECT_XOR = H5S_SELECT_XOR(); + /** Different types of dataspaces - simple dataspace */ public static final int H5S_SIMPLE = H5S_SIMPLE(); + /** Define atomic datatypes */ public static final int H5S_UNLIMITED = H5S_UNLIMITED(); + public static final long H5T_ALPHA_B16 = H5T_ALPHA_B16(); public static final long H5T_ALPHA_B32 = H5T_ALPHA_B32(); public static final long H5T_ALPHA_B64 = H5T_ALPHA_B64(); @@ -665,48 +943,96 @@ public class HDF5Constants { public static final int H5_VOL_RESERVED = H5_VOL_RESERVED(); public static final int H5_VOL_MAX = H5_VOL_MAX(); + /** Return values for filter callback function */ public static final int H5Z_CB_CONT = H5Z_CB_CONT(); + /** Return values for filter callback function */ public static final int H5Z_CB_ERROR = H5Z_CB_ERROR(); + /** Return values for filter callback function */ public static final int H5Z_CB_FAIL = H5Z_CB_FAIL(); + /** Return values for filter callback function */ public static final int H5Z_CB_NO = H5Z_CB_NO(); + /** Values to decide if EDC is enabled for reading data */ public static final int H5Z_DISABLE_EDC = H5Z_DISABLE_EDC(); + /** Values to decide if EDC is enabled for reading data */ public static final int H5Z_ENABLE_EDC = H5Z_ENABLE_EDC(); + /** Values to decide if EDC is enabled for reading data */ public static final int H5Z_ERROR_EDC = H5Z_ERROR_EDC(); + /** Filter IDs - deflation like gzip */ public static final int H5Z_FILTER_DEFLATE = H5Z_FILTER_DEFLATE(); + /** Filter IDs - no filter */ public static final int H5Z_FILTER_ERROR = H5Z_FILTER_ERROR(); + /** Filter IDs - fletcher32 checksum of EDC */ public static final int H5Z_FILTER_FLETCHER32 = H5Z_FILTER_FLETCHER32(); + /** Filter IDs - maximum filter id */ public static final int H5Z_FILTER_MAX = H5Z_FILTER_MAX(); + /** Filter IDs - nbit compression */ public static final int H5Z_FILTER_NBIT = H5Z_FILTER_NBIT(); + /** Filter IDs - reserved indefinitely */ public static final int H5Z_FILTER_NONE = H5Z_FILTER_NONE(); + /** Filter IDs - filter ids below this value are reserved for library use */ public static final int H5Z_FILTER_RESERVED = H5Z_FILTER_RESERVED(); + /** Filter IDs - scale+offset compression */ public static final int H5Z_FILTER_SCALEOFFSET = H5Z_FILTER_SCALEOFFSET(); + /** Filter IDs - shuffle the data */ public static final int H5Z_FILTER_SHUFFLE = H5Z_FILTER_SHUFFLE(); + /** Filter IDs - szip compression */ public static final int H5Z_FILTER_SZIP = H5Z_FILTER_SZIP(); + /** Flags for filter definition (stored) + * definition flag mask */ public static final int H5Z_FLAG_DEFMASK = H5Z_FLAG_DEFMASK(); + /** Additional flags for filter invocation (not stored) + * invocation flag mask */ public static final int H5Z_FLAG_INVMASK = H5Z_FLAG_INVMASK(); + /** Flags for filter definition (stored) + * filter is mandatory */ public static final int H5Z_FLAG_MANDATORY = H5Z_FLAG_MANDATORY(); + /** Flags for filter definition (stored) + * filter is optional */ public static final int H5Z_FLAG_OPTIONAL = H5Z_FLAG_OPTIONAL(); + /** Additional flags for filter invocation (not stored) + * reverse direction; read */ public static final int H5Z_FLAG_REVERSE = H5Z_FLAG_REVERSE(); + /** Additional flags for filter invocation (not stored) + * skip EDC filters for read */ public static final int H5Z_FLAG_SKIP_EDC = H5Z_FLAG_SKIP_EDC(); + /** Symbol to remove all filters in H5Premove_filter */ + public static final int H5Z_FILTER_ALL = H5Z_FILTER_ALL(); + /** Maximum number of filters allowed in a pipeline */ public static final int H5Z_MAX_NFILTERS = H5Z_MAX_NFILTERS(); + /** Values to decide if EDC is enabled for reading data */ public static final int H5Z_NO_EDC = H5Z_NO_EDC(); + /** Bit flags for H5Zget_filter_info */ public static final int H5Z_FILTER_CONFIG_ENCODE_ENABLED = H5Z_FILTER_CONFIG_ENCODE_ENABLED(); + /** Bit flags for H5Zget_filter_info */ public static final int H5Z_FILTER_CONFIG_DECODE_ENABLED = H5Z_FILTER_CONFIG_DECODE_ENABLED(); + /** Special parameters for ScaleOffset filter*/ public static final int H5Z_SO_INT_MINBITS_DEFAULT = H5Z_SO_INT_MINBITS_DEFAULT(); + /** Special parameters for ScaleOffset filter*/ public static final int H5Z_SO_FLOAT_DSCALE = H5Z_SO_FLOAT_DSCALE(); + /** Special parameters for ScaleOffset filter*/ public static final int H5Z_SO_FLOAT_ESCALE = H5Z_SO_FLOAT_ESCALE(); + /** Special parameters for ScaleOffset filter*/ public static final int H5Z_SO_INT = H5Z_SO_INT(); + /** shuffle filter - Number of parameters that users can set */ public static final int H5Z_SHUFFLE_USER_NPARMS = H5Z_SHUFFLE_USER_NPARMS(); + /** shuffle filter - Total number of parameters for filter */ public static final int H5Z_SHUFFLE_TOTAL_NPARMS = H5Z_SHUFFLE_TOTAL_NPARMS(); + /** szip filter - Number of parameters that users can set */ public static final int H5Z_SZIP_USER_NPARMS = H5Z_SZIP_USER_NPARMS(); + /** szip filter - Total number of parameters for filter */ public static final int H5Z_SZIP_TOTAL_NPARMS = H5Z_SZIP_TOTAL_NPARMS(); + /** szip filter - "User" parameter for option mask */ public static final int H5Z_SZIP_PARM_MASK = H5Z_SZIP_PARM_MASK(); + /** szip filter - "User" parameter for pixels-per-block */ public static final int H5Z_SZIP_PARM_PPB = H5Z_SZIP_PARM_PPB(); + /** szip filter - "Local" parameter for bits-per-pixel */ public static final int H5Z_SZIP_PARM_BPP = H5Z_SZIP_PARM_BPP(); + /** szip filter - "Local" parameter for pixels-per-scanline */ public static final int H5Z_SZIP_PARM_PPS = H5Z_SZIP_PARM_PPS(); + /** nbit filter - Number of parameters that users can set */ public static final int H5Z_NBIT_USER_NPARMS = H5Z_NBIT_USER_NPARMS(); + /** scale offset filter - Number of parameters that users can set */ public static final int H5Z_SCALEOFFSET_USER_NPARMS = H5Z_SCALEOFFSET_USER_NPARMS(); - public static final int H5Z_FILTER_ALL = H5Z_FILTER_ALL(); // ///////////////////////////////////////////////////////////////////////// // List of private native variables to get constant values from C // @@ -841,6 +1167,8 @@ public class HDF5Constants { private static native final long H5E_BADGROUP(); + private static native final long H5E_BADITER(); + private static native final long H5E_BADMESG(); private static native final long H5E_BADRANGE(); @@ -861,15 +1189,30 @@ public class HDF5Constants { private static native final long H5E_CANAPPLY(); - // private static native final long H5E_CANTALLOC(); + private static native final long H5E_CANTALLOC(); + + private static native final long H5E_CANTAPPEND(); + + private static native final long H5E_CANTATTACH(); + + private static native final long H5E_CANTCLEAN(); + private static native final long H5E_CANTCLIP(); private static native final long H5E_CANTCLOSEFILE(); + private static native final long H5E_CANTCLOSEOBJ(); + + private static native final long H5E_CANTCOMPARE(); + + private static native final long H5E_CANTCOMPUTE(); + private static native final long H5E_CANTCONVERT(); private static native final long H5E_CANTCOPY(); + private static native final long H5E_CANTCORK(); + private static native final long H5E_CANTCOUNT(); private static native final long H5E_CANTCREATE(); @@ -882,18 +1225,36 @@ public class HDF5Constants { private static native final long H5E_CANTDELETEFILE(); + private static native final long H5E_CANTDEPEND(); + + private static native final long H5E_CANTDIRTY(); + private static native final long H5E_CANTENCODE(); + private static native final long H5E_CANTEXPUNGE(); + + private static native final long H5E_CANTEXTEND(); + + private static native final long H5E_CANTFILTER(); + private static native final long H5E_CANTFLUSH(); private static native final long H5E_CANTFREE(); + private static native final long H5E_CANTGATHER(); + + private static native final long H5E_CANTGC(); + private static native final long H5E_CANTGET(); + private static native final long H5E_CANTGETSIZE(); + private static native final long H5E_CANTINC(); private static native final long H5E_CANTINIT(); + private static native final long H5E_CANTINS(); + private static native final long H5E_CANTINSERT(); private static native final long H5E_CANTLIST(); @@ -902,29 +1263,96 @@ public class HDF5Constants { private static native final long H5E_CANTLOCK(); + private static native final long H5E_CANTLOCKFILE(); + + private static native final long H5E_CANTMARKCLEAN(); + + private static native final long H5E_CANTMARKDIRTY(); + + private static native final long H5E_CANTMARKSERIALIZED(); + + private static native final long H5E_CANTMARKUNSERIALIZED(); + + private static native final long H5E_CANTMERGE(); + + private static native final long H5E_CANTMOVE(); + + private static native final long H5E_CANTMODIFY(); + private static native final long H5E_CANTNEXT(); + private static native final long H5E_CANTNOTIFY(); + private static native final long H5E_CANTOPENFILE(); private static native final long H5E_CANTOPENOBJ(); - // private static native final long H5E_CANTRECV(); + private static native final long H5E_CANTOPERATE(); + + private static native final long H5E_CANTPACK(); + + private static native final long H5E_CANTPIN(); + + private static native final long H5E_CANTPROTECT(); + + private static native final long H5E_CANTRECV(); + + private static native final long H5E_CANTREDISTRIBUTE(); + private static native final long H5E_CANTREGISTER(); private static native final long H5E_CANTRELEASE(); + private static native final long H5E_CANTREMOVE(); + + private static native final long H5E_CANTRENAME(); + + private static native final long H5E_CANTRESET(); + + private static native final long H5E_CANTRESIZE(); + + private static native final long H5E_CANTRESTORE(); + + private static native final long H5E_CANTREVIVE(); + + private static native final long H5E_CANTSHRINK(); + private static native final long H5E_CANTSELECT(); private static native final long H5E_CANTSET(); + private static native final long H5E_CANTSERIALIZE(); + + private static native final long H5E_CANTSORT(); + private static native final long H5E_CANTSPLIT(); + private static native final long H5E_CANTSWAP(); + + private static native final long H5E_CANTTAG(); + + private static native final long H5E_CANTUNCORK(); + + private static native final long H5E_CANTUNDEPEND(); + private static native final long H5E_CANTUNLOCK(); + private static native final long H5E_CANTUNLOCKFILE(); + + private static native final long H5E_CANTUNPIN(); + + private static native final long H5E_CANTUNPROTECT(); + + private static native final long H5E_CANTUNSERIALIZE(); + + private static native final long H5E_CANTUPDATE(); + private static native final long H5E_CLOSEERROR(); private static native final long H5E_COMPLEN(); + private static native final long H5E_CONTEXT(); + private static native final long H5E_DATASET(); private static native final long H5E_DATASPACE(); @@ -935,10 +1363,16 @@ public class HDF5Constants { private static native final long H5E_DUPCLASS(); + private static native final long H5E_EARRAY(); + private static native final long H5E_EFL(); + private static native final long H5E_ERROR(); + private static native final long H5E_EXISTS(); + private static native final long H5E_FARRAY(); + private static native final long H5E_FCNTL(); private static native final long H5E_FILE(); @@ -947,10 +1381,14 @@ public class HDF5Constants { private static native final long H5E_FILEOPEN(); + private static native final long H5E_FSPACE(); + private static native final long H5E_FUNC(); private static native final long H5E_HEAP(); + private static native final long H5E_INCONSISTENTSTATE(); + private static native final long H5E_INTERNAL(); private static native final long H5E_IO(); @@ -959,8 +1397,12 @@ public class HDF5Constants { private static native final long H5E_LINKCOUNT(); + private static native final long H5E_LOGGING(); + private static native final int H5E_MAJOR(); + private static native final long H5E_MAP(); + private static native final int H5E_MINOR(); private static native final long H5E_MOUNT(); @@ -969,6 +1411,12 @@ public class HDF5Constants { private static native final long H5E_MPIERRSTR(); + private static native final long H5E_NLINKS(); + + private static native final long H5E_NO_INDEPENDENT(); + + private static native final long H5E_NOENCODER(); + private static native final long H5E_NOFILTER(); private static native final long H5E_NOIDS(); @@ -985,14 +1433,26 @@ public class HDF5Constants { private static native final long H5E_NOTHDF5(); + private static native final long H5E_NOTREGISTERED(); + + private static native final long H5E_OBJOPEN(); + private static native final long H5E_OHDR(); + private static native final long H5E_OPENERROR(); + private static native final long H5E_OVERFLOW(); + private static native final long H5E_PAGEBUF(); + + private static native final long H5E_PATH(); + private static native final long H5E_PLINE(); private static native final long H5E_PLIST(); + private static native final long H5E_PLUGIN(); + private static native final long H5E_PROTECT(); private static native final long H5E_READERROR(); @@ -1005,12 +1465,24 @@ public class HDF5Constants { private static native final long H5E_SEEKERROR(); + private static native final long H5E_SETDISALLOWED(); + private static native final long H5E_SETLOCAL(); + private static native final long H5E_SLIST(); + + private static native final long H5E_SOHM(); + private static native final long H5E_STORAGE(); private static native final long H5E_SYM(); + private static native final long H5E_SYSERRSTR(); + + private static native final long H5E_SYSTEM(); + + private static native final long H5E_TRAVERSE(); + private static native final long H5E_TRUNCATED(); private static native final long H5E_TST(); diff --git a/java/src/jni/h5Constants.c b/java/src/jni/h5Constants.c index 38f0883..94d5b19 100644 --- a/java/src/jni/h5Constants.c +++ b/java/src/jni/h5Constants.c @@ -355,6 +355,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1BADGROUP(JNIEnv *env, jclass cls) return H5E_BADGROUP; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1BADITER(JNIEnv *env, jclass cls) +{ + return H5E_BADITER; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1BADMESG(JNIEnv *env, jclass cls) { return H5E_BADMESG; @@ -404,8 +409,26 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANAPPLY(JNIEnv *env, jclass cls) { return H5E_CANAPPLY; } -/*JNIEXPORT jlong JNICALL -Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTALLOC(JNIEnv *env, jclass cls) { return H5E_CANTALLOC; }*/ +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTALLOC(JNIEnv *env, jclass cls) +{ + return H5E_CANTALLOC; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTAPPEND(JNIEnv *env, jclass cls) +{ + return H5E_CANTAPPEND; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTATTACH(JNIEnv *env, jclass cls) +{ + return H5E_CANTATTACH; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCLEAN(JNIEnv *env, jclass cls) +{ + return H5E_CANTCLEAN; +} JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCLIP(JNIEnv *env, jclass cls) { @@ -417,6 +440,21 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCLOSEFILE(JNIEnv *env, jclass cls) return H5E_CANTCLOSEFILE; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCLOSEOBJ(JNIEnv *env, jclass cls) +{ + return H5E_CANTCLOSEOBJ; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCOMPARE(JNIEnv *env, jclass cls) +{ + return H5E_CANTCOMPARE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCOMPUTE(JNIEnv *env, jclass cls) +{ + return H5E_CANTCOMPUTE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCONVERT(JNIEnv *env, jclass cls) { return H5E_CANTCONVERT; @@ -427,6 +465,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCOPY(JNIEnv *env, jclass cls) return H5E_CANTCOPY; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCORK(JNIEnv *env, jclass cls) +{ + return H5E_CANTCORK; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTCOUNT(JNIEnv *env, jclass cls) { return H5E_CANTCOUNT; @@ -457,11 +500,36 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTDELETEFILE(JNIEnv *env, jclass cls) return H5E_CANTDELETEFILE; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTDEPEND(JNIEnv *env, jclass cls) +{ + return H5E_CANTDEPEND; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTDIRTY(JNIEnv *env, jclass cls) +{ + return H5E_CANTDIRTY; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTFILTER(JNIEnv *env, jclass cls) +{ + return H5E_CANTFILTER; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTENCODE(JNIEnv *env, jclass cls) { return H5E_CANTENCODE; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTEXPUNGE(JNIEnv *env, jclass cls) +{ + return H5E_CANTEXPUNGE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTEXTEND(JNIEnv *env, jclass cls) +{ + return H5E_CANTEXTEND; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTFLUSH(JNIEnv *env, jclass cls) { return H5E_CANTFLUSH; @@ -472,11 +540,26 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTFREE(JNIEnv *env, jclass cls) return H5E_CANTFREE; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTGATHER(JNIEnv *env, jclass cls) +{ + return H5E_CANTGATHER; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTGC(JNIEnv *env, jclass cls) +{ + return H5E_CANTGC; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTGET(JNIEnv *env, jclass cls) { return H5E_CANTGET; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTGETSIZE(JNIEnv *env, jclass cls) +{ + return H5E_CANTGETSIZE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTINC(JNIEnv *env, jclass cls) { return H5E_CANTINC; @@ -487,6 +570,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTINIT(JNIEnv *env, jclass cls) return H5E_CANTINIT; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTINS(JNIEnv *env, jclass cls) +{ + return H5E_CANTINS; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTINSERT(JNIEnv *env, jclass cls) { return H5E_CANTINSERT; @@ -507,11 +595,56 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTLOCK(JNIEnv *env, jclass cls) return H5E_CANTLOCK; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTLOCKFILE(JNIEnv *env, jclass cls) +{ + return H5E_CANTLOCKFILE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMARKCLEAN(JNIEnv *env, jclass cls) +{ + return H5E_CANTMARKCLEAN; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMARKDIRTY(JNIEnv *env, jclass cls) +{ + return H5E_CANTMARKDIRTY; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMARKSERIALIZED(JNIEnv *env, jclass cls) +{ + return H5E_CANTMARKSERIALIZED; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMARKUNSERIALIZED(JNIEnv *env, jclass cls) +{ + return H5E_CANTMARKUNSERIALIZED; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMERGE(JNIEnv *env, jclass cls) +{ + return H5E_CANTMERGE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMODIFY(JNIEnv *env, jclass cls) +{ + return H5E_CANTMODIFY; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTMOVE(JNIEnv *env, jclass cls) +{ + return H5E_CANTMOVE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTNEXT(JNIEnv *env, jclass cls) { return H5E_CANTNEXT; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTNOTIFY(JNIEnv *env, jclass cls) +{ + return H5E_CANTNOTIFY; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTOPENFILE(JNIEnv *env, jclass cls) { return H5E_CANTOPENFILE; @@ -521,8 +654,36 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTOPENOBJ(JNIEnv *env, jclass cls) { return H5E_CANTOPENOBJ; } -/*JNIEXPORT jlong JNICALL -Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRECV(JNIEnv *env, jclass cls) { return H5E_CANTRECV; }*/ +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTOPERATE(JNIEnv *env, jclass cls) +{ + return H5E_CANTOPERATE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTPACK(JNIEnv *env, jclass cls) +{ + return H5E_CANTPACK; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTPIN(JNIEnv *env, jclass cls) +{ + return H5E_CANTPIN; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTPROTECT(JNIEnv *env, jclass cls) +{ + return H5E_CANTPROTECT; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRECV(JNIEnv *env, jclass cls) +{ + return H5E_CANTRECV; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTREDISTRIBUTE(JNIEnv *env, jclass cls) +{ + return H5E_CANTREDISTRIBUTE; +} JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTREGISTER(JNIEnv *env, jclass cls) { @@ -534,6 +695,41 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRELEASE(JNIEnv *env, jclass cls) return H5E_CANTRELEASE; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTREMOVE(JNIEnv *env, jclass cls) +{ + return H5E_CANTREMOVE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRENAME(JNIEnv *env, jclass cls) +{ + return H5E_CANTRENAME; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRESET(JNIEnv *env, jclass cls) +{ + return H5E_CANTRESET; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRESIZE(JNIEnv *env, jclass cls) +{ + return H5E_CANTRESIZE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTRESTORE(JNIEnv *env, jclass cls) +{ + return H5E_CANTRESTORE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTREVIVE(JNIEnv *env, jclass cls) +{ + return H5E_CANTREVIVE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSHRINK(JNIEnv *env, jclass cls) +{ + return H5E_CANTSHRINK; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSELECT(JNIEnv *env, jclass cls) { return H5E_CANTSELECT; @@ -544,16 +740,71 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSET(JNIEnv *env, jclass cls) return H5E_CANTSET; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSERIALIZE(JNIEnv *env, jclass cls) +{ + return H5E_CANTSERIALIZE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSORT(JNIEnv *env, jclass cls) +{ + return H5E_CANTSORT; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSPLIT(JNIEnv *env, jclass cls) { return H5E_CANTSPLIT; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTSWAP(JNIEnv *env, jclass cls) +{ + return H5E_CANTSWAP; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTTAG(JNIEnv *env, jclass cls) +{ + return H5E_CANTTAG; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNCORK(JNIEnv *env, jclass cls) +{ + return H5E_CANTUNCORK; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNDEPEND(JNIEnv *env, jclass cls) +{ + return H5E_CANTUNDEPEND; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNLOCK(JNIEnv *env, jclass cls) { return H5E_CANTUNLOCK; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNLOCKFILE(JNIEnv *env, jclass cls) +{ + return H5E_CANTUNLOCKFILE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNPIN(JNIEnv *env, jclass cls) +{ + return H5E_CANTUNPIN; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNPROTECT(JNIEnv *env, jclass cls) +{ + return H5E_CANTUNPROTECT; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUNSERIALIZE(JNIEnv *env, jclass cls) +{ + return H5E_CANTUNSERIALIZE; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CANTUPDATE(JNIEnv *env, jclass cls) +{ + return H5E_CANTUPDATE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1CLOSEERROR(JNIEnv *env, jclass cls) { return H5E_CLOSEERROR; @@ -564,6 +815,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1COMPLEN(JNIEnv *env, jclass cls) return H5E_COMPLEN; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1CONTEXT(JNIEnv *env, jclass cls) +{ + return H5E_CONTEXT; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1DATASET(JNIEnv *env, jclass cls) { return H5E_DATASET; @@ -589,16 +845,31 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1DUPCLASS(JNIEnv *env, jclass cls) return H5E_DUPCLASS; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1EARRAY(JNIEnv *env, jclass cls) +{ + return H5E_EARRAY; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1EFL(JNIEnv *env, jclass cls) { return H5E_EFL; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1ERROR(JNIEnv *env, jclass cls) +{ + return H5E_ERROR; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1EXISTS(JNIEnv *env, jclass cls) { return H5E_EXISTS; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1FARRAY(JNIEnv *env, jclass cls) +{ + return H5E_FARRAY; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1FCNTL(JNIEnv *env, jclass cls) { return H5E_FCNTL; @@ -619,6 +890,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1FILEOPEN(JNIEnv *env, jclass cls) return H5E_FILEOPEN; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1FSPACE(JNIEnv *env, jclass cls) +{ + return H5E_FSPACE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1FUNC(JNIEnv *env, jclass cls) { return H5E_FUNC; @@ -629,6 +905,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1HEAP(JNIEnv *env, jclass cls) return H5E_HEAP; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1INCONSISTENTSTATE(JNIEnv *env, jclass cls) +{ + return H5E_INCONSISTENTSTATE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1INTERNAL(JNIEnv *env, jclass cls) { return H5E_INTERNAL; @@ -648,11 +929,21 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1LINKCOUNT(JNIEnv *env, jclass cls) { return H5E_LINKCOUNT; } +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1LOGGING(JNIEnv *env, jclass cls) +{ + return H5E_LOGGING; +} JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1MAJOR(JNIEnv *env, jclass cls) { return H5E_MAJOR; } +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1MAP(JNIEnv *env, jclass cls) +{ + return H5E_MAP; +} JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1MINOR(JNIEnv *env, jclass cls) { @@ -674,6 +965,21 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1MPIERRSTR(JNIEnv *env, jclass cls) return H5E_MPIERRSTR; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1NLINKS(JNIEnv *env, jclass cls) +{ + return H5E_NLINKS; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1NO_1INDEPENDENT(JNIEnv *env, jclass cls) +{ + return H5E_NO_INDEPENDENT; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1NOENCODER(JNIEnv *env, jclass cls) +{ + return H5E_NOENCODER; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1NOFILTER(JNIEnv *env, jclass cls) { return H5E_NOFILTER; @@ -714,16 +1020,41 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1NOTHDF5(JNIEnv *env, jclass cls) return H5E_NOTHDF5; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1NOTREGISTERED(JNIEnv *env, jclass cls) +{ + return H5E_NOTREGISTERED; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1OBJOPEN(JNIEnv *env, jclass cls) +{ + return H5E_OBJOPEN; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1OHDR(JNIEnv *env, jclass cls) { return H5E_OHDR; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1OPENERROR(JNIEnv *env, jclass cls) +{ + return H5E_OPENERROR; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1OVERFLOW(JNIEnv *env, jclass cls) { return H5E_OVERFLOW; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1PAGEBUF(JNIEnv *env, jclass cls) +{ + return H5E_PAGEBUF; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1PATH(JNIEnv *env, jclass cls) +{ + return H5E_PATH; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1PLINE(JNIEnv *env, jclass cls) { return H5E_PLINE; @@ -734,6 +1065,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1PLIST(JNIEnv *env, jclass cls) return H5E_PLIST; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1PLUGIN(JNIEnv *env, jclass cls) +{ + return H5E_PLUGIN; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1PROTECT(JNIEnv *env, jclass cls) { return H5E_PROTECT; @@ -764,11 +1100,26 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1SEEKERROR(JNIEnv *env, jclass cls) return H5E_SEEKERROR; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1SETDISALLOWED(JNIEnv *env, jclass cls) +{ + return H5E_SETDISALLOWED; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1SETLOCAL(JNIEnv *env, jclass cls) { return H5E_SETLOCAL; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1SLIST(JNIEnv *env, jclass cls) +{ + return H5E_SLIST; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1SOHM(JNIEnv *env, jclass cls) +{ + return H5E_SOHM; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1STORAGE(JNIEnv *env, jclass cls) { return H5E_STORAGE; @@ -779,6 +1130,21 @@ Java_hdf_hdf5lib_HDF5Constants_H5E_1SYM(JNIEnv *env, jclass cls) return H5E_SYM; } JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1SYSERRSTR(JNIEnv *env, jclass cls) +{ + return H5E_SYSERRSTR; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1SYSTEM(JNIEnv *env, jclass cls) +{ + return H5E_SYSTEM; +} +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5E_1TRAVERSE(JNIEnv *env, jclass cls) +{ + return H5E_TRAVERSE; +} +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_HDF5Constants_H5E_1TRUNCATED(JNIEnv *env, jclass cls) { return H5E_TRUNCATED; diff --git a/java/src/jni/h5sImp.c b/java/src/jni/h5sImp.c index 2a9cff5..e29c2ec 100644 --- a/java/src/jni/h5sImp.c +++ b/java/src/jni/h5sImp.c @@ -1340,6 +1340,389 @@ done: return; } /* end Java_hdf_hdf5lib_H5_H5Sget_1regular_1hyperslab */ +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_copy + * Signature: (JJ)V + */ +JNIEXPORT void JNICALL +Java_hdf_hdf5lib_H5_H5Sselect_1copy(JNIEnv *env, jclass clss, jlong dst_id, jlong src_id) +{ + hssize_t retVal = -1; + + UNUSED(clss); + + if ((retVal = H5Sselect_copy((hid_t)dst_id, (hid_t)src_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + +done: + return; +} /* end Java_hdf_hdf5lib_H5_H5Sselect_1copy */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_shape_same + * Signature: (JJ)Z + */ +JNIEXPORT jboolean JNICALL +Java_hdf_hdf5lib_H5_H5Sselect_1shape_1same(JNIEnv *env, jclass clss, jlong space1_id, jlong space2_id) +{ + htri_t bval = JNI_FALSE; + + UNUSED(clss); + + if ((bval = H5Sselect_shape_same((hid_t)space1_id, (hid_t)space2_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + + bval = (bval > 0) ? JNI_TRUE : JNI_FALSE; + +done: + return (jboolean)bval; +} /* end Java_hdf_hdf5lib_H5_H5Sselect_1shape_1same */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_adjust + * Signature: (J[J)V + */ +JNIEXPORT void JNICALL +Java_hdf_hdf5lib_H5_H5Sselect_1adjust(JNIEnv *env, jclass clss, jlong space_id, jlongArray offset) +{ + jboolean isCopy; + hssize_t *offst = NULL; + jlong * offsetP = NULL; + jsize offset_rank = -1; + int i, rank = -1; + herr_t status = FAIL; + + UNUSED(clss); + + if (space_id < 0) + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_adjust: invalid dataspace ID"); + + if ((rank = H5Sget_simple_extent_ndims(space_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + + if (NULL == offset) { + offsetP = NULL; + offst = (hssize_t *)offsetP; + } + else { + if ((offset_rank = ENVPTR->GetArrayLength(ENVONLY, offset)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_adjust: offset length < 0"); + } + + if (offset_rank != rank) + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_adjust: offset rank doesn't match dataspace rank!"); + + PIN_LONG_ARRAY(ENVONLY, offset, offsetP, &isCopy, "H5Sselect_adjust: offset not pinned"); + + if (NULL == (offst = (hssize_t *)HDmalloc((size_t)offset_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_adjust: failed to allocate offset buffer"); + } + + if ((status = H5Sselect_adjust(space_id, (hssize_t *)offst)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + + for (i = 0; i < offset_rank; i++) { + offsetP[i] = (jlong)offst[i]; + } /* end for */ + +done: + if (offst) + HDfree(offst); + if (offsetP) + UNPIN_LONG_ARRAY(ENVONLY, offset, offsetP, (status < 0) ? JNI_ABORT : 0); + + return; +} /* end Java_hdf_hdf5lib_H5_H5Sselect_1adjust */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_intersect_block + * Signature: (J[J[J)Z + */ +JNIEXPORT jboolean JNICALL +Java_hdf_hdf5lib_H5_H5Sselect_1intersect_1block(JNIEnv *env, jclass clss, jlong space_id, jlongArray start, + jlongArray end) +{ + htri_t bval = JNI_FALSE; + jboolean isCopy; + hsize_t *strt = NULL, *nd = NULL; + jlong * startP = NULL, *endP = NULL; + jsize start_rank = -1, end_rank = -1; + int i, rank = -1; + + UNUSED(clss); + + if (space_id < 0) + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_intersect_block: invalid dataspace ID"); + + if ((rank = H5Sget_simple_extent_ndims(space_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + + if (NULL == start) { + startP = NULL; + strt = (hsize_t *)startP; + } + else { + if ((start_rank = ENVPTR->GetArrayLength(ENVONLY, start)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_intersect_block: start length < 0"); + } + + if (start_rank != rank) + H5_BAD_ARGUMENT_ERROR(ENVONLY, + "H5Sselect_intersect_block: start rank doesn't match dataspace rank!"); + + PIN_LONG_ARRAY(ENVONLY, start, startP, &isCopy, "H5Sselect_intersect_block: start not pinned"); + + if (NULL == (strt = (hsize_t *)HDmalloc((size_t)start_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_intersect_block: failed to allocate start buffer"); + } + + if (NULL == end) { + endP = NULL; + nd = (hsize_t *)endP; + } + else { + if ((end_rank = ENVPTR->GetArrayLength(ENVONLY, end)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_intersect_block: end array length < 0"); + } + + if (end_rank != rank) + H5_BAD_ARGUMENT_ERROR(ENVONLY, + "H5Sselect_intersect_block: end rank doesn't match dataspace rank!"); + + PIN_LONG_ARRAY(ENVONLY, end, endP, &isCopy, "H5Sselect_intersect_block: end not pinned"); + + if (NULL == (nd = (hsize_t *)HDmalloc((size_t)end_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_intersect_block: failed to allocate end buffer"); + } + + if ((bval = H5Sselect_intersect_block(space_id, (hsize_t *)strt, (hsize_t *)nd)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + + bval = (bval > 0) ? JNI_TRUE : JNI_FALSE; + + for (i = 0; i < start_rank; i++) { + startP[i] = (jlong)strt[i]; + endP[i] = (jlong)nd[i]; + } /* end for */ + +done: + if (strt) + HDfree(strt); + if (startP) + UNPIN_LONG_ARRAY(ENVONLY, start, startP, (bval < 0) ? JNI_ABORT : 0); + if (nd) + HDfree(nd); + if (endP) + UNPIN_LONG_ARRAY(ENVONLY, end, endP, (bval < 0) ? JNI_ABORT : 0); + + return (jboolean)bval; +} /* end Java_hdf_hdf5lib_H5_H5Sselect_1intersect_1block */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_project_intersection + * Signature: (JJJ)J + */ +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_H5_H5Sselect_1project_1intersection(JNIEnv *env, jclass clss, jlong src_space_id, + jlong dst_space_id, jlong src_intersect_space_id) +{ + hid_t sid = H5I_INVALID_HID; + + UNUSED(clss); + + if ((sid = H5Sselect_project_intersection(src_space_id, dst_space_id, src_intersect_space_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + +done: + + return (jlong)sid; +} /* end Java_hdf_hdf5lib_H5_H5Sselect_1project_1intersection */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Scombine_hyperslab + * Signature: (JI[J[J[J[J)J + */ +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_H5_H5Scombine_1hyperslab(JNIEnv *env, jclass clss, jlong space_id, jint op, jlongArray start, + jlongArray stride, jlongArray count, jlongArray block) +{ + jboolean isCopy; + hsize_t *strt = NULL, *strd = NULL, *cnt = NULL, *blk = NULL; + hsize_t *lp = NULL; + jlong * startP = NULL, *strideP = NULL, *countP = NULL, *blockP = NULL; + jlong * jlp = NULL; + jsize start_rank, stride_rank, count_rank, block_rank; + int i; + hid_t sid = H5I_INVALID_HID; + + UNUSED(clss); + + if (NULL == start) + H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: start is NULL"); + if (NULL == count) + H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: count is NULL"); + + if ((start_rank = ENVPTR->GetArrayLength(ENVONLY, start)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: start array length < 0"); + } + if ((count_rank = ENVPTR->GetArrayLength(ENVONLY, count)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: count array length < 0"); + } + + if (start_rank != count_rank) + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: count and start have different rank!"); + + PIN_LONG_ARRAY(ENVONLY, start, startP, &isCopy, "H5Sselect_hyperslab: start not pinned"); + + if (NULL == (strt = lp = (hsize_t *)HDmalloc((size_t)start_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate start buffer"); + + jlp = (jlong *)startP; + for (i = 0; i < start_rank; i++) { + *lp = (hsize_t)*jlp; + lp++; + jlp++; + } /* end if */ + + PIN_LONG_ARRAY(ENVONLY, count, countP, &isCopy, "H5Sselect_hyperslab: count not pinned"); + + if (NULL == (cnt = lp = (hsize_t *)HDmalloc((size_t)count_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate count buffer"); + + jlp = (jlong *)countP; + for (i = 0; i < count_rank; i++) { + *lp = (hsize_t)*jlp; + lp++; + jlp++; + } /* end if */ + + if (NULL == stride) { + strideP = NULL; + strd = (hsize_t *)strideP; + } + else { + if ((stride_rank = ENVPTR->GetArrayLength(ENVONLY, stride)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: stride array length < 0"); + } + + if (stride_rank != start_rank) + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: stride and start have different rank!"); + + PIN_LONG_ARRAY(ENVONLY, stride, strideP, &isCopy, "H5Sselect_hyperslab: stride not pinned"); + + if (NULL == (strd = lp = (hsize_t *)HDmalloc((size_t)stride_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate stride buffer"); + + jlp = (jlong *)strideP; + for (i = 0; i < stride_rank; i++) { + *lp = (hsize_t)*jlp; + lp++; + jlp++; + } /* end if */ + } + + if (NULL == block) { + blockP = NULL; + blk = (hsize_t *)blockP; + } + else { + if ((block_rank = ENVPTR->GetArrayLength(ENVONLY, block)) < 0) { + CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: block array length < 0"); + } + + if (block_rank != start_rank) + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: block and start have different rank!"); + + PIN_LONG_ARRAY(ENVONLY, block, blockP, &isCopy, "H5Sselect_hyperslab: block not pinned"); + + if (NULL == (blk = lp = (hsize_t *)HDmalloc((size_t)block_rank * sizeof(hsize_t)))) + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate block buffer"); + + jlp = (jlong *)blockP; + for (i = 0; i < block_rank; i++) { + *lp = (hsize_t)*jlp; + lp++; + jlp++; + } /* end for */ + } + + if ((sid = H5Scombine_hyperslab(space_id, (H5S_seloper_t)op, (const hsize_t *)strt, (const hsize_t *)strd, + (const hsize_t *)cnt, (const hsize_t *)blk)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + +done: + if (blk) + HDfree(blk); + if (blockP) + UNPIN_LONG_ARRAY(ENVONLY, block, blockP, JNI_ABORT); + if (strd) + HDfree(strd); + if (strideP) + UNPIN_LONG_ARRAY(ENVONLY, stride, strideP, JNI_ABORT); + if (cnt) + HDfree(cnt); + if (countP) + UNPIN_LONG_ARRAY(ENVONLY, count, countP, JNI_ABORT); + if (strt) + HDfree(strt); + if (startP) + UNPIN_LONG_ARRAY(ENVONLY, start, startP, JNI_ABORT); + + return (jlong)sid; +} /* end Java_hdf_hdf5lib_H5_H5Sselect_1hyperslab */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Smodify_select + * Signature: (JIJ)V + */ +JNIEXPORT void JNICALL +Java_hdf_hdf5lib_H5_H5Smodify_1select(JNIEnv *env, jclass clss, jlong space1_id, jint op, jlong space2_id) +{ + hssize_t retVal = -1; + + UNUSED(clss); + + if ((retVal = H5Smodify_select((hid_t)space1_id, (H5S_seloper_t)op, (hid_t)space2_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + +done: + return; +} /* end Java_hdf_hdf5lib_H5_H5Smodify_1select */ + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Scombine_select + * Signature: (JIJ)J + */ +JNIEXPORT jlong JNICALL +Java_hdf_hdf5lib_H5_H5Scombine_1select(JNIEnv *env, jclass clss, jlong space1_id, jint op, jlong space2_id) +{ + hid_t sid = H5I_INVALID_HID; + + UNUSED(clss); + + if ((sid = H5Scombine_select((hid_t)space1_id, (H5S_seloper_t)op, (hid_t)space2_id)) < 0) + H5_LIBRARY_ERROR(ENVONLY); + +done: + + return (jlong)sid; +} /* end Java_hdf_hdf5lib_H5_H5Scombine_1select */ + #ifdef __cplusplus } /* end extern "C" */ #endif /* __cplusplus */ diff --git a/java/src/jni/h5sImp.h b/java/src/jni/h5sImp.h index ee28b39..83255c1 100644 --- a/java/src/jni/h5sImp.h +++ b/java/src/jni/h5sImp.h @@ -259,6 +259,65 @@ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Sis_1regular_1hyperslab(JNIEnv JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Sget_1regular_1hyperslab(JNIEnv *, jclass, jlong, jlongArray, jlongArray, jlongArray, jlongArray); +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_copy + * Signature: (JJ)V + */ +JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Sselect_1copy(JNIEnv *, jclass, jlong, jlong); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_shape_same + * Signature: (JJ)Z + */ +JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Sselect_1shape_1same(JNIEnv *, jclass, jlong, jlong); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_adjust + * Signature: (J[J)V + */ +JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Sselect_1adjust(JNIEnv *, jclass, jlong, jlongArray); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_intersect_block + * Signature: (J[J[J)Z + */ +JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Sselect_1intersect_1block(JNIEnv *, jclass, jlong, + jlongArray, jlongArray); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Sselect_project_intersection + * Signature: (JJJ)J + */ +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Sselect_1project_1intersection(JNIEnv *, jclass, jlong, jlong, + jlong); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Scombine_hyperslab + * Signature: (JI[J[J[J[J)J + */ +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Scombine_1hyperslab(JNIEnv *, jclass, jlong, jint, jlongArray, + jlongArray, jlongArray, jlongArray); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Smodify_select + * Signature: (JIJ)V + */ +JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Smodify_1select(JNIEnv *, jclass, jlong, jint, jlong); + +/* + * Class: hdf_hdf5lib_H5 + * Method: H5Scombine_select + * Signature: (JIJ)J + */ +JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Scombine_1select(JNIEnv *, jclass, jlong, jint, jlong); + #ifdef __cplusplus } /* end extern "C" */ #endif /* __cplusplus */ diff --git a/java/test/TestH5Sbasic.java b/java/test/TestH5Sbasic.java index 2173647..9874584 100644 --- a/java/test/TestH5Sbasic.java +++ b/java/test/TestH5Sbasic.java @@ -242,4 +242,142 @@ public class TestH5Sbasic { H5.H5Sdecode(null); } + @Test(expected = IllegalArgumentException.class) + public void testH5Sget_regular_hyperslab_invalid() throws Throwable { + long q_start[] = new long[2]; + long q_stride[] = new long[2]; + long q_count[] = new long[2]; + long q_block[] = new long[2]; + + H5.H5Sget_regular_hyperslab(-1, q_start, q_stride, q_count, q_block); + } + + @Test(expected = hdf.hdf5lib.exceptions.HDF5FunctionArgumentException.class) + public void testH5Sselect_copy_invalid() throws Throwable { + H5.H5Sselect_copy(-1, -1); + } + + @Test(expected = hdf.hdf5lib.exceptions.HDF5DataspaceInterfaceException.class) + public void testH5Sselect_shape_same_invalid() throws Throwable { + H5.H5Sselect_shape_same(-1, -1); + } + + @Test(expected = IllegalArgumentException.class) + public void testH5Sselect_adjust_invalid() throws Throwable { + long offset[][] = {{0,1},{2,4},{5,6}}; + H5.H5Sselect_adjust(-1, offset); + } + + @Test(expected = IllegalArgumentException.class) + public void testH5Sselect_adjust_rank_offset() throws Throwable { + long sid = -1; + long offset[][] = {{0,1},{2,4},{5,6}}; + + try { + sid = H5.H5Screate(HDF5Constants.H5S_SIMPLE); + assertTrue("H5.H5Screate_simple_extent",sid > 0); + H5.H5Sselect_adjust(sid, offset); + } + finally { + try {H5.H5Sclose(sid);} catch (Exception ex) {} + } + } + + @Test(expected = IllegalArgumentException.class) + public void testH5Sselect_intersect_block_invalid() throws Throwable { + long start[] = new long[2]; + long end[] = new long[2]; + H5.H5Sselect_intersect_block(-1, start, end); + } + + @Test(expected = IllegalArgumentException.class) + public void testH5Sselect_intersect_block_rank_start() throws Throwable { + long sid = -1; + long start[] = new long[2]; + long end[] = null; + + try { + sid = H5.H5Screate(HDF5Constants.H5S_SIMPLE); + assertTrue("H5.H5Screate_simple_extent",sid > 0); + H5.H5Sselect_intersect_block(sid, start, end); + } + finally { + try {H5.H5Sclose(sid);} catch (Exception ex) {} + } + } + + @Test(expected = IllegalArgumentException.class) + public void testH5Sselect_intersect_block_rank_end() throws Throwable { + long sid = -1; + long start[] = null; + long end[] = new long[2]; + + try { + sid = H5.H5Screate(HDF5Constants.H5S_SIMPLE); + assertTrue("H5.H5Screate_simple_extent",sid > 0); + H5.H5Sselect_intersect_block(sid, start, end); + } + finally { + try {H5.H5Sclose(sid);} catch (Exception ex) {} + } + } + + @Test(expected = hdf.hdf5lib.exceptions.HDF5DataspaceInterfaceException.class) + public void testH5Sselect_project_intersection_invalid() throws Throwable { + H5.H5Sselect_project_intersection(-1, -1, -1); + } + + @Test(expected = hdf.hdf5lib.exceptions.HDF5FunctionArgumentException.class) + public void testH5Scombine_hyperslab_invalid() throws Throwable { + long start[] = new long[2]; + long count[] = new long[2]; + H5.H5Scombine_hyperslab(-1, 0, start, null, count, null); + } + + @Test(expected = NullPointerException.class) + public void testH5Scombine_hyperslab_null_start() throws Throwable { + long sid = -1; + long start[] = null; + long stride[] = null; + long count[] = new long[2]; + long block[] = null; + + try { + sid = H5.H5Screate(HDF5Constants.H5S_SIMPLE); + assertTrue("H5.H5Screate_simple_extent",sid > 0); + H5.H5Scombine_hyperslab(sid, 0, start, stride, count, block); + } + finally { + try {H5.H5Sclose(sid);} catch (Exception ex) {} + } + } + + @Test(expected = NullPointerException.class) + public void testH5Scombine_hyperslab_null_count() throws Throwable { + long sid = -1; + long start[] = new long[2]; + long stride[] = null; + long count[] = null; + long block[] = null; + + try { + sid = H5.H5Screate(HDF5Constants.H5S_SIMPLE); + assertTrue("H5.H5Screate_simple_extent",sid > 0); + H5.H5Scombine_hyperslab(sid, 0, start, stride, count, block); + } + finally { + try {H5.H5Sclose(sid);} catch (Exception ex) {} + } + } + + @Test(expected = hdf.hdf5lib.exceptions.HDF5FunctionArgumentException.class) + public void testH5Smodify_select_invalid() throws Throwable { + H5.H5Smodify_select(-1, 0, -1); + } + + @Test(expected = hdf.hdf5lib.exceptions.HDF5FunctionArgumentException.class) + public void testH5Scombine_select_invalid() throws Throwable { + H5.H5Scombine_select(-1, 0, -1); + } + } diff --git a/java/test/testfiles/JUnit-TestH5Sbasic.txt b/java/test/testfiles/JUnit-TestH5Sbasic.txt index 707878e..3422442 100644 --- a/java/test/testfiles/JUnit-TestH5Sbasic.txt +++ b/java/test/testfiles/JUnit-TestH5Sbasic.txt @@ -5,18 +5,32 @@ JUnit version 4.11 .testH5Sdecode_null .testH5Screate_simple_dims_exceed .testH5Screate_simple_unlimted_1d +.testH5Sselect_intersect_block_rank_start +.testH5Sget_regular_hyperslab_invalid +.testH5Sselect_adjust_rank_offset .testH5Screate_simple_dims_invalid .testH5Screate_scalar .testH5Screate_simple +.testH5Sselect_project_intersection_invalid .testH5Screate_simple_rank_invalid .testH5Sget_simple_extent_type_invalid +.testH5Scombine_hyperslab_invalid +.testH5Scombine_hyperslab_null_count +.testH5Scombine_hyperslab_null_start .testH5Sencode_invalid .testH5Screate_null .testH5Screate_simple_extent .testH5Screate_invalid +.testH5Sselect_intersect_block_invalid +.testH5Sselect_adjust_invalid .testH5Screate_simple_unlimted +.testH5Sselect_shape_same_invalid +.testH5Smodify_select_invalid +.testH5Scombine_select_invalid +.testH5Sselect_copy_invalid +.testH5Sselect_intersect_block_rank_end Time: XXXX -OK (16 tests) +OK (30 tests) -- cgit v0.12 From ba00760d7a078c25bfc2108060320e7d96ffdd4e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Wed, 28 Oct 2020 07:06:01 -0500 Subject: HDFFV-10868 - add note --- release_docs/RELEASE.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 1c5d96d..e3a1dd4 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -717,6 +717,15 @@ New Features Java Library: ---------------- + - Added new H5S functions. + + H5Sselect_copy, H5Sselect_shape_same, H5Sselect_adjust, + H5Sselect_intersect_block, H5Sselect_project_intersection, + H5Scombine_hyperslab, H5Smodify_select, H5Scombine_select + wrapper functions added. + + (ADB - 2020/10/27, HDFFV-10868) + - Added ability to test java library with VOLs. Created new CMake script that combines the java and vol test scripts. -- cgit v0.12 From a4cbd51db61868d6190d7c10764b0c9e9666b6ee Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Thu, 29 Oct 2020 13:14:51 -0500 Subject: HDFFV-10868 Corrections from review --- java/src/hdf/hdf5lib/H5.java | 2 +- java/src/jni/h5sImp.c | 42 +++++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java index 6ad7cf2..1f6d0dc 100644 --- a/java/src/hdf/hdf5lib/H5.java +++ b/java/src/hdf/hdf5lib/H5.java @@ -5370,7 +5370,6 @@ public class H5 implements java.io.Serializable { **/ public synchronized static native long H5Iget_file_id(long obj_id) throws HDF5LibraryException; - /** * H5Iget_name_long retrieves the name of an object specified by the identifier, obj_id. * @deprecated @@ -5387,6 +5386,7 @@ public class H5 implements java.io.Serializable { * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ + @Deprecated public synchronized static native long H5Iget_name_long(long obj_id, String[] name, long size) throws HDF5LibraryException, NullPointerException; /** diff --git a/java/src/jni/h5sImp.c b/java/src/jni/h5sImp.c index e29c2ec..f7b65d9 100644 --- a/java/src/jni/h5sImp.c +++ b/java/src/jni/h5sImp.c @@ -1348,11 +1348,11 @@ done: JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Sselect_1copy(JNIEnv *env, jclass clss, jlong dst_id, jlong src_id) { - hssize_t retVal = -1; + herr_t status = FAIL; UNUSED(clss); - if ((retVal = H5Sselect_copy((hid_t)dst_id, (hid_t)src_id)) < 0) + if ((status = H5Sselect_copy((hid_t)dst_id, (hid_t)src_id)) < 0) H5_LIBRARY_ERROR(ENVONLY); done: @@ -1567,26 +1567,26 @@ Java_hdf_hdf5lib_H5_H5Scombine_1hyperslab(JNIEnv *env, jclass clss, jlong space_ UNUSED(clss); if (NULL == start) - H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: start is NULL"); + H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: start is NULL"); if (NULL == count) - H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: count is NULL"); + H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: count is NULL"); if ((start_rank = ENVPTR->GetArrayLength(ENVONLY, start)) < 0) { CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: start array length < 0"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: start array length < 0"); } if ((count_rank = ENVPTR->GetArrayLength(ENVONLY, count)) < 0) { CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: count array length < 0"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: count array length < 0"); } if (start_rank != count_rank) - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: count and start have different rank!"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: count and start have different rank!"); - PIN_LONG_ARRAY(ENVONLY, start, startP, &isCopy, "H5Sselect_hyperslab: start not pinned"); + PIN_LONG_ARRAY(ENVONLY, start, startP, &isCopy, "H5Scombine_hyperslab: start not pinned"); if (NULL == (strt = lp = (hsize_t *)HDmalloc((size_t)start_rank * sizeof(hsize_t)))) - H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate start buffer"); + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Scombine_hyperslab: failed to allocate start buffer"); jlp = (jlong *)startP; for (i = 0; i < start_rank; i++) { @@ -1595,10 +1595,10 @@ Java_hdf_hdf5lib_H5_H5Scombine_1hyperslab(JNIEnv *env, jclass clss, jlong space_ jlp++; } /* end if */ - PIN_LONG_ARRAY(ENVONLY, count, countP, &isCopy, "H5Sselect_hyperslab: count not pinned"); + PIN_LONG_ARRAY(ENVONLY, count, countP, &isCopy, "H5Scombine_hyperslab: count not pinned"); if (NULL == (cnt = lp = (hsize_t *)HDmalloc((size_t)count_rank * sizeof(hsize_t)))) - H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate count buffer"); + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Scombine_hyperslab: failed to allocate count buffer"); jlp = (jlong *)countP; for (i = 0; i < count_rank; i++) { @@ -1614,16 +1614,16 @@ Java_hdf_hdf5lib_H5_H5Scombine_1hyperslab(JNIEnv *env, jclass clss, jlong space_ else { if ((stride_rank = ENVPTR->GetArrayLength(ENVONLY, stride)) < 0) { CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: stride array length < 0"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: stride array length < 0"); } if (stride_rank != start_rank) - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: stride and start have different rank!"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: stride and start have different rank!"); - PIN_LONG_ARRAY(ENVONLY, stride, strideP, &isCopy, "H5Sselect_hyperslab: stride not pinned"); + PIN_LONG_ARRAY(ENVONLY, stride, strideP, &isCopy, "H5Scombine_hyperslab: stride not pinned"); if (NULL == (strd = lp = (hsize_t *)HDmalloc((size_t)stride_rank * sizeof(hsize_t)))) - H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate stride buffer"); + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Scombine_hyperslab: failed to allocate stride buffer"); jlp = (jlong *)strideP; for (i = 0; i < stride_rank; i++) { @@ -1640,16 +1640,16 @@ Java_hdf_hdf5lib_H5_H5Scombine_1hyperslab(JNIEnv *env, jclass clss, jlong space_ else { if ((block_rank = ENVPTR->GetArrayLength(ENVONLY, block)) < 0) { CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE); - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: block array length < 0"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: block array length < 0"); } if (block_rank != start_rank) - H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Sselect_hyperslab: block and start have different rank!"); + H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Scombine_hyperslab: block and start have different rank!"); - PIN_LONG_ARRAY(ENVONLY, block, blockP, &isCopy, "H5Sselect_hyperslab: block not pinned"); + PIN_LONG_ARRAY(ENVONLY, block, blockP, &isCopy, "H5Scombine_hyperslab: block not pinned"); if (NULL == (blk = lp = (hsize_t *)HDmalloc((size_t)block_rank * sizeof(hsize_t)))) - H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Sselect_hyperslab: failed to allocate block buffer"); + H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Scombine_hyperslab: failed to allocate block buffer"); jlp = (jlong *)blockP; for (i = 0; i < block_rank; i++) { @@ -1692,11 +1692,11 @@ done: JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Smodify_1select(JNIEnv *env, jclass clss, jlong space1_id, jint op, jlong space2_id) { - hssize_t retVal = -1; + herr_t status = FAIL; UNUSED(clss); - if ((retVal = H5Smodify_select((hid_t)space1_id, (H5S_seloper_t)op, (hid_t)space2_id)) < 0) + if ((status = H5Smodify_select((hid_t)space1_id, (H5S_seloper_t)op, (hid_t)space2_id)) < 0) H5_LIBRARY_ERROR(ENVONLY); done: -- cgit v0.12