/**************************************************************************** * Copyright by The HDF Group. * * Copyright by the Board of Trustees of the University of Illinois. * * All rights reserved. * * * * This file is part of HDF Java Products. The full HDF Java copyright * * notice, including terms governing use, modification, and redistribution, * * is contained in the file, COPYING. COPYING can be found at the root of * * the source code distribution tree. You can also access it online at * * http://www.hdfgroup.org/products/licenses.html. If you do not have * * access to the file, you may request a copy from help@hdfgroup.org. * ****************************************************************************/ package ncsa.hdf.hdf5lib; import java.nio.ByteBuffer; import java.util.Vector; import ncsa.hdf.hdf5lib.callbacks.H5D_iterate_cb; import ncsa.hdf.hdf5lib.callbacks.H5D_iterate_t; import ncsa.hdf.hdf5lib.callbacks.H5L_iterate_cb; import ncsa.hdf.hdf5lib.callbacks.H5L_iterate_t; import ncsa.hdf.hdf5lib.callbacks.H5O_iterate_cb; import ncsa.hdf.hdf5lib.callbacks.H5O_iterate_t; import ncsa.hdf.hdf5lib.exceptions.HDF5Exception; import ncsa.hdf.hdf5lib.exceptions.HDF5JavaException; import ncsa.hdf.hdf5lib.exceptions.HDF5LibraryException; import ncsa.hdf.hdf5lib.structs.H5AC_cache_config_t; import ncsa.hdf.hdf5lib.structs.H5A_info_t; import ncsa.hdf.hdf5lib.structs.H5G_info_t; import ncsa.hdf.hdf5lib.structs.H5L_info_t; import ncsa.hdf.hdf5lib.structs.H5O_info_t; /** * This class is the Java interface for the HDF5 library. *

* This code is the called by Java programs to access the entry points of the * HDF5 library. Each routine wraps a single HDF5 entry point, generally * with the arguments and return codes analogous to the C interface. *

* For details of the HDF5 library, see the HDF5 Documentation at: http://hdfgroup.org/HDF5/ *


*

* Mapping of arguments for Java * *

* In general, arguments to the HDF Java API are straightforward translations * from the 'C' API described in the HDF Reference Manual. *

* *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
HDF-5 C types to Java types
HDF-5Java
H5T_NATIVE_INTint, Integer
H5T_NATIVE_SHORTshort, Short
H5T_NATIVE_FLOATfloat, Float
H5T_NATIVE_DOUBLEdouble, Double
H5T_NATIVE_CHARbyte, Byte
H5T_C_S1java.lang.String
void *
* (i.e., pointer to `Any')
Special -- see HDFArray
*
*

*

General Rules for Passing Arguments and Results
*

* In general, arguments passed IN to Java are the analogous basic types, * as above. The exception is for arrays, which are discussed below. *

* The return value of Java methods is also the analogous type, as above. * A major exception to that rule is that all HDF functions that return * SUCCEED/FAIL are declared boolean in the Java version, rather than * int as in the C. Functions that return a value or else FAIL are * declared the equivalent to the C function. However, in most cases the Java * method will raise an exception instead of returning an error code. See Errors and Exceptions below. *

* Java does not support pass by reference of arguments, so arguments that are * returned through OUT parameters must be wrapped in an object or array. * The Java API for HDF consistently wraps arguments in arrays. *

* For instance, a function that returns two integers is declared: *

* *

 *       h_err_t HDF5dummy( int *a1, int *a2)
 * 
* * For the Java interface, this would be declared: *

* *

 * public synchronized static native int HDF5dummy(int args[]);
 * 
* * where a1 is args[0] and a2 is args[1], and would * be invoked: *

* *

 * H5.HDF5dummy(a);
 * 
* *

* All the routines where this convention is used will have specific * documentation of the details, given below. *

* Arrays *

* HDF5 needs to read and write multi-dimensional arrays of any number type (and * records). The HDF5 API describes the layout of the source and destination, * and the data for the array passed as a block of bytes, for instance, *

* *

 *      herr_t H5Dread(int fid, int filetype, int memtype, int memspace,
 *      void * data);
 * 
* *

* where ``void *'' means that the data may be any valid numeric type, and is a * contiguous block of bytes that is the data for a multi-dimensional array. The * other parameters describe the dimensions, rank, and datatype of the array on * disk (source) and in memory (destination). *

* For Java, this ``ANY'' is a problem, as the type of data must always be * declared. Furthermore, multidimensional arrays are definitely not * layed out contiguously in memory. It would be infeasible to declare a * separate routine for every combination of number type and dimensionality. For * that reason, the HDFArray class is used to * discover the type, shape, and size of the data array at run time, and to * convert to and from a contiguous array of bytes in synchronized static native * C order. *

* The upshot is that any Java array of numbers (either primitive or sub-classes * of type Number) can be passed as an ``Object'', and the Java API will * translate to and from the appropriate packed array of bytes needed by the C * library. So the function above would be declared: *

* *

 * public synchronized static native int H5Dread(int fid, int filetype,
 *         int memtype, int memspace, Object data);
 * 
* * and the parameter data can be any multi-dimensional array of numbers, * such as float[][], or int[][][], or Double[][]. *

* HDF-5 Constants *

* The HDF-5 API defines a set of constants and enumerated values. Most of these * values are available to Java programs via the class HDF5Constants. For * example, the parameters for the h5open() call include two numeric values, * HDFConstants.H5F_ACC_RDWR and * HDF5Constants.H5P_DEFAULT. As would be expected, these numbers * correspond to the C constants H5F_ACC_RDWR and * H5P_DEFAULT. *

* The HDF-5 API defines a set of values that describe number types and sizes, * such as "H5T_NATIVE_INT" and "hsize_t". These values are determined at run * time by the HDF-5 C library. To support these parameters, the Java class HDF5CDataTypes * looks up the values when initiated. The values can be accessed as public * variables of the Java class, such as: * *

 * int data_type = HDF5CDataTypes.JH5T_NATIVE_INT;
 * 
* * The Java application uses both types of constants the same way, the only * difference is that the HDF5CDataTypes may have different values * on different platforms. *

* Error handling and Exceptions *

* The HDF5 error API (H5E) manages the behavior of the error stack in the HDF-5 * library. This API is omitted from the JHI5. Errors are converted into Java * exceptions. This is totally different from the C interface, but is very * natural for Java programming. *

* The exceptions of the JHI5 are organized as sub-classes of the class * HDF5Exception. There are two subclasses of HDF5Exception, * * HDF5LibraryException and * HDF5JavaException. The sub-classes of the former represent errors * from the HDF-5 C library, while sub-classes of the latter represent errors in * the JHI5 wrapper and support code. *

* The super-class HDF5LibraryException implements the method * 'printStackTrace()', which prints out the HDF-5 error stack, as * described in the HDF-5 C API H5Eprint(). This may be used by * Java exception handlers to print out the HDF-5 error stack. *


* * @version HDF5 1.2
* See also: * ncsa.hdf.hdf5lib.HDFArray
* * ncsa.hdf.hdf5lib.HDF5Constants
* * ncsa.hdf.hdf5lib.HDF5CDataTypes
* * ncsa.hdf.hdf5lib.HDF5Exception
*
* http://hdfgroup.org/HDF5" **/ @SuppressWarnings("all") public class H5 implements java.io.Serializable { /** * */ private static final long serialVersionUID = 6129888282117053288L; /** * The version number of the HDF5 library:
* LIB_VERSION[0]: The major version of the library.
* LIB_VERSION[1]: The minor version of the library.
* LIB_VERSION[2]: The release number of the library.
* * Make sure to update the versions number when a different library is used. */ public final static int LIB_VERSION[] = { 1, 8, 13 }; public final static String H5PATH_PROPERTY_KEY = "ncsa.hdf.hdf5lib.H5.hdf5lib"; // add system property to load library by name from library path, via // System.loadLibrary() public final static String H5_LIBRARY_NAME_PROPERTY_KEY = "ncsa.hdf.hdf5lib.H5.loadLibraryName"; private static String s_libraryName; private static boolean isLibraryLoaded = false; private final static boolean IS_CRITICAL_PINNING = true; private final static Vector OPEN_IDS = new Vector(); static { loadH5Lib(); } public static void loadH5Lib() { ch.systemsx.cisd.hdf5.hdf5lib.H5General.ensureNativeLibIsLoaded(); } // //////////////////////////////////////////////////////////// // // // H5: General Library Functions // // // // //////////////////////////////////////////////////////////// /** * Get number of open IDs. */ public final static int getOpenIDCount() { return OPEN_IDS.size(); } /** * Get the open ID at the specified index. * * @param index -- an index of the open ID. * @return Returns the open ID at the specified index. */ public final static int getOpenID(int index) { int id = -1; if (index >= 0 && index < OPEN_IDS.size()) id = OPEN_IDS.elementAt(index); return id; } /** * H5check_version verifies that the arguments match the version numbers * compiled into the library. * * @param majnum * The major version of the library. * @param minnum * The minor version of the library. * @param relnum * The release number of the library. * @return a non-negative value if successful. Upon failure (when the * versions do not match), this function causes the application to * abort (i.e., crash) * * See C API function: herr_t H5check_version() **/ public synchronized static native int H5check_version(int majnum, int minnum, int relnum); /** * H5close flushes all data to disk, closes all file identifiers, and cleans * up all memory used by the library. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5close() throws HDF5LibraryException; /** * H5open initialize the library. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5open() throws HDF5LibraryException; /** * H5dont_atexit indicates to the library that an atexit() cleanup routine * should not be installed. In order to be effective, this routine must be * called before any other HDF function calls, and must be called each time * the library is loaded/linked into the application (the first time and * after it's been unloaded). *

* This is called by the static initializer, so this should never need to be * explicitly called by a Java program. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ private synchronized static native int H5dont_atexit() throws HDF5LibraryException; /** * Turn off error handling By default, the C library prints the error stack * of the HDF-5 C library on stdout. This behavior may be disabled by * calling H5error_off(). */ public synchronized static native int H5error_off(); /** * H5garbage_collect collects on all free-lists of all types. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5garbage_collect() throws HDF5LibraryException; /** * H5get_libversion retrieves the major, minor, and release numbers of the * version of the HDF library which is linked to the application. * * @param libversion * The version information of the HDF library. * *

 *      libversion[0] = The major version of the library.
 *      libversion[1] = The minor version of the library.
 *      libversion[2] = The release number of the library.
 * 
* @return a non-negative value if successful, along with the version * information. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5get_libversion(int[] libversion) throws HDF5LibraryException; public synchronized static native int H5set_free_list_limits( int reg_global_lim, int reg_list_lim, int arr_global_lim, int arr_list_lim, int blk_global_lim, int blk_list_lim) throws HDF5LibraryException; /** * H5export_dataset is a utility function to save data in a file. * * @param file_export_name * The file name to export data into. * @param file_name * The name of the HDF5 file containing the dataset. * @param object_path * The full path of the dataset to be exported. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5export_dataset(String file_export_name, String file_name, String object_path, int binary_order) throws HDF5LibraryException; ////////////////////////////////////////////////////////////// //// //H5A: HDF5 1.8 Attribute Interface API Functions // //// ////////////////////////////////////////////////////////////// /** * H5Aclose terminates access to the attribute specified by its identifier, * attr_id. * * @param attr_id * IN: Attribute to release access to. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Aclose(int attr_id) throws HDF5LibraryException { if (attr_id < 0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(attr_id); return _H5Aclose(attr_id); } private synchronized static native int _H5Aclose(int attr_id) throws HDF5LibraryException; /** * H5Acopy copies the content of one attribute to another. * * @param src_aid * the identifier of the source attribute * @param dst_aid * the identifier of the destination attribute */ public synchronized static native int H5Acopy(int src_aid, int dst_aid) throws HDF5LibraryException; /** * H5Acreate creates an attribute which is attached to the object specified * with loc_id. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Acreate( int, String, int, int, int, int) } * * @param loc_id * IN: Object (dataset, group, or named datatype) to be attached * to. * @param name * IN: Name of attribute to create. * @param type_id * IN: Identifier of datatype for attribute. * @param space_id * IN: Identifier of dataspace for attribute. * @param create_plist * IN: Identifier of creation property list (currently not used). * * @return an attribute identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ @Deprecated public static int H5Acreate(int loc_id, String name, int type_id, int space_id, int create_plist) throws HDF5LibraryException, NullPointerException { int id = _H5Acreate(loc_id, name, type_id, space_id, create_plist); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Acreate(int loc_id, String name, int type_id, int space_id, int create_plist) throws HDF5LibraryException, NullPointerException; /** * H5Acreate creates an attribute, attr_name, which is attached to the object specified by the identifier loc_id. * * @param loc_id IN: Location or object identifier; may be dataset or group * @param attr_name IN: Attribute name * @param type_id IN: Attribute datatype identifier * @param space_id IN: Attribute dataspace identifier * @param acpl_id IN: Attribute creation property list identifier * @param aapl_id IN: Attribute access property list identifier * * @return An attribute identifier if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - Name is null. **/ public static int H5Acreate( int loc_id, String attr_name, int type_id, int space_id, int acpl_id, int aapl_id ) throws HDF5LibraryException, NullPointerException { int id = _H5Acreate2(loc_id, attr_name, type_id, space_id, acpl_id, aapl_id ); if (id > 0) OPEN_IDS.addElement(id); return id; } /** * H5Acreate2 an attribute, attr_name, which is attached to the object * specified by the identifier loc_id. * * @see public static int H5Acreate( int loc_id, String attr_name, int * type_id, int space_id, int acpl_id, int aapl_id ) **/ private synchronized static native int _H5Acreate2( int loc_id, String attr_name, int type_id, int space_id, int acpl_id, int aapl_id ) throws HDF5LibraryException, NullPointerException; /** * H5Acreate_by_name creates an attribute, attr_name, which is attached to the object specified by loc_id and obj_name. * * @param loc_id IN: Location or object identifier; may be dataset or group * @param obj_name IN: Name, relative to loc_id, of object that attribute is to be attached to * @param attr_name IN: Attribute name * @param type_id IN: Attribute datatype identifier * @param space_id IN: Attribute dataspace identifier * @param acpl_id IN: Attribute creation property list identifier (currently not used). * @param aapl_id IN: Attribute access property list identifier (currently not used). * @param lapl_id IN: Link access property list * * @return An attribute identifier if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Acreate_by_name(int loc_id, String obj_name, String attr_name, int type_id, int space_id, int acpl_id, int aapl_id, int lapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Acreate_by_name(loc_id, obj_name, attr_name, type_id, space_id, acpl_id, aapl_id, lapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Acreate_by_name(int loc_id, String obj_name, String attr_name, int type_id, int space_id, int acpl_id, int aapl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Adelete removes the attribute specified by its name, name, from a * dataset, group, or named datatype. * * @param loc_id * IN: Identifier of the dataset, group, or named datatype. * @param name * IN: Name of the attribute to delete. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5Adelete(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Adelete_by_idx removes an attribute, specified by its location in an index, from an object. * * @param loc_id IN: Location or object identifier; may be dataset or group * @param obj_name IN: Name of object, relative to location, from which attribute is to be removed * @param idx_type IN: Type of index * @param order IN: Order in which to iterate over index * @param n IN: Offset within index * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - obj_name is null. **/ public synchronized static native void H5Adelete_by_idx(int loc_id, String obj_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Adelete_by_name removes the attribute attr_name from an object specified by location and name, loc_id and obj_name, respectively. * * @param loc_id IN: Location or object identifier; may be dataset or group * @param obj_name IN: Name of object, relative to location, from which attribute is to be removed * @param attr_name IN: Name of attribute to delete * @param lapl_id IN: Link access property list identifier. * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native int H5Adelete_by_name(int loc_id, String obj_name, String attr_name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aexists determines whether the attribute attr_name exists on the object specified by obj_id. * * @param obj_id IN: Object identifier. * @param attr_name IN: Name of the attribute. * * @return boolean true if an attribute with a given name exists. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - attr_name is null. **/ public synchronized static native boolean H5Aexists(int obj_id, String attr_name) throws HDF5LibraryException, NullPointerException; /** * H5Aexists_by_name determines whether the attribute attr_name exists on an object. That object is specified by its location and name, * loc_id and obj_name, respectively. * * @param loc_id IN: Location of object to which attribute is attached . * @param obj_name IN: Name, relative to loc_id, of object that attribute is attached to. * @param attr_name IN: Name of attribute. * @param lapl_id IN: Link access property list identifier. * * @return boolean true if an attribute with a given name exists, otherwise returns false. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native boolean H5Aexists_by_name(int loc_id, String obj_name, String attr_name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aget_info retrieves attribute information, by attribute identifier. * * @param attr_id IN: Attribute identifier * * @return A buffer(H5A_info_t) for Attribute information * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native H5A_info_t H5Aget_info(int attr_id) throws HDF5LibraryException; /** * H5Aget_info_by_idx Retrieves attribute information, by attribute index position. * * @param loc_id IN: Location of object to which attribute is attached * @param obj_name IN: Name of object to which attribute is attached, relative to location * @param idx_type IN: Type of index * @param order IN: Index traversal order * @param n IN: Attribute's position in index * @param lapl_id IN: Link access property list * * @return A buffer(H5A_info_t) for Attribute information * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - obj_name is null. **/ public synchronized static native H5A_info_t H5Aget_info_by_idx(int loc_id, String obj_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aget_info_by_name Retrieves attribute information, by attribute name. * * @param loc_id IN: Location of object to which attribute is attached * @param obj_name IN: Name of object to which attribute is attached, relative to location * @param attr_name IN: Attribute name * @param lapl_id IN: Link access property list * * @return A buffer(H5A_info_t) for Attribute information * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - obj_name is null. **/ public synchronized static native H5A_info_t H5Aget_info_by_name(int loc_id, String obj_name, String attr_name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aget_name retrieves the name of an attribute specified by the * identifier, attr_id. * * @param attr_id * IN: Identifier of the attribute. * @param buf_size * IN: The size of the buffer to store the name in. * @param name * OUT: Buffer to store name in. * * @exception ArrayIndexOutOfBoundsException * JNI error writing back array * @exception ArrayStoreException * JNI error writing back array * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. * @exception IllegalArgumentException * - bub_size <= 0. * * @return the length of the attribute's name if successful. **/ public synchronized static native long H5Aget_name(int attr_id, long buf_size, String[] name) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException, IllegalArgumentException; public static long H5Aget_name(int attr_id, String[] name) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException, IllegalArgumentException { long len = H5Aget_name(attr_id, 0, null); return H5Aget_name(attr_id, len+1, name); } /** * H5Aget_name_by_idx retrieves the name of an attribute that is attached to an object, which is specified by its location and name, * loc_id and obj_name, respectively. * * @param attr_id IN: Attribute identifier * @param obj_name IN: Name of object to which attribute is attached, relative to location * @param idx_type IN: Type of index * @param order IN: Index traversal order * @param n IN: Attribute's position in index * @param lapl_id IN: Link access property list * * @return String for Attribute name. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - obj_name is null. **/ public synchronized static native String H5Aget_name_by_idx(int attr_id, String obj_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aget_num_attrs returns the number of attributes attached to the object * specified by its identifier, loc_id. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Oget_info( int )} * * @param loc_id * IN: Identifier of a group, dataset, or named datatype. * * @return the number of attributes if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ @Deprecated public synchronized static native int H5Aget_num_attrs(int loc_id) throws HDF5LibraryException; /** * H5Aget_space retrieves a copy of the dataspace for an attribute. * * @param attr_id * IN: Identifier of an attribute. * * @return attribute dataspace identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Aget_space(int attr_id) throws HDF5LibraryException { int id = _H5Aget_space(attr_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Aget_space(int attr_id) throws HDF5LibraryException; /** * H5Aget_storage_size returns the amount of storage that is required for the specified attribute, attr_id. * * @param attr_id IN: Identifier of the attribute to query. * * @return the amount of storage size allocated for the attribute; otherwise returns 0 (zero) * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Aget_storage_size(int attr_id) throws HDF5LibraryException; /** * H5Aget_type retrieves a copy of the datatype for an attribute. * * @param attr_id * IN: Identifier of an attribute. * * @return a datatype identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Aget_type(int attr_id) throws HDF5LibraryException { int id = _H5Aget_type(attr_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Aget_type(int attr_id) throws HDF5LibraryException; /** * H5Aopen opens an existing attribute, attr_name, that is attached to an object specified an object identifier, object_id. * * @param obj_id IN: Identifier for object to which attribute is attached * @param attr_name IN: Name of attribute to open * @param aapl_id IN: Attribute access property list identifier * * @return An attribute identifier if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - Name is null. **/ public static int H5Aopen(int obj_id, String attr_name, int aapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Aopen(obj_id, attr_name, aapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Aopen(int obj_id, String attr_name, int aapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aopen_by_idx opens an existing attribute that is attached to an object specified by location and name, loc_id and obj_name, respectively * * @param loc_id IN: Location of object to which attribute is attached * @param obj_name IN: Name of object to which attribute is attached, relative to location * @param idx_type IN: Type of index * @param order IN: Index traversal order * @param n IN: Attribute's position in index * @param aapl_id IN: Attribute access property list * @param lapl_id IN: Link access property list * * @return An attribute identifier if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - Name is null. **/ public static int H5Aopen_by_idx(int loc_id, String obj_name, int idx_type, int order ,long n, int aapl_id, int lapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Aopen_by_idx(loc_id, obj_name, idx_type, order , n, aapl_id, lapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Aopen_by_idx(int loc_id, String obj_name, int idx_type, int order ,long n, int aapl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Aopen_by_name Opens an attribute for an object by object name and attribute name * * @param loc_id IN: Location from which to find object to which attribute is attached * @param obj_name IN: Name of object to which attribute is attached, relative to loc_id * @param attr_name IN: Name of attribute to open * @param aapl_id IN: Attribute access property list * @param lapl_id IN: Link access property list identifier * * @return Returns an attribute identifier if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - obj_name is null. **/ public static int H5Aopen_by_name(int loc_id, String obj_name, String attr_name, int aapl_id, int lapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Aopen_by_name(loc_id, obj_name, attr_name, aapl_id, lapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } /** * H5Aopen_idx opens an attribute which is attached to the object specified * with loc_id. The location object may be either a group, dataset, or named * datatype, all of which may have any sort of attribute. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Aopen_by_idx(int, String, int, int, long, int, int) } * * @param loc_id * IN: Identifier of the group, dataset, or named datatype attribute * @param idx * IN: Index of the attribute to open. * * @return attribute identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ @Deprecated public static int H5Aopen_idx(int loc_id, int idx) throws HDF5LibraryException { int id = _H5Aopen_idx(loc_id, idx); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Aopen_idx(int loc_id, int idx) throws HDF5LibraryException; /** * H5Aopen_name opens an attribute specified by its name, name, which is * attached to the object specified with loc_id. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Aopen_by_name(int, String, String, int, int)} * * @param loc_id * IN: Identifier of a group, dataset, or named datatype atttribute * @param name * IN: Attribute name. * * @return attribute identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ @Deprecated public static int H5Aopen_name(int loc_id, String name) throws HDF5LibraryException, NullPointerException { int id = _H5Aopen_name(loc_id, name); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Aopen_name(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Aread reads an attribute, specified with attr_id. The attribute's * memory datatype is specified with mem_type_id. The entire attribute is * read into buf from the file. * * @param attr_id * IN: Identifier of an attribute to read. * @param mem_type_id * IN: Identifier of the attribute datatype (in memory). * @param buf * IN: Buffer for data to be read. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data buffer is null. **/ public synchronized static native int H5Aread(int attr_id, int mem_type_id, byte[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Aread reads an attribute, specified with attr_id. The attribute's * memory datatype is specified with mem_type_id. The entire attribute is * read into data object from the file. * * @param attr_id * IN: Identifier of an attribute to read. * @param mem_type_id * IN: Identifier of the attribute datatype (in memory). * @param obj * IN: Object for data to be read. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data buffer is null. See public synchronized static * native int H5Aread( ) **/ public synchronized static int H5Aread(int attr_id, int mem_type_id, Object obj) throws HDF5Exception, NullPointerException { HDFArray theArray = new HDFArray(obj); byte[] buf = theArray.emptyBytes(); // This will raise an exception if there is an error int status = H5Aread(attr_id, mem_type_id, buf); // No exception: status really ought to be OK if (status >= 0) { obj = theArray.arrayify(buf); } return status; } public synchronized static native int H5AreadVL(int attr_id, int mem_type_id, String[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Arename changes the name of attribute that is attached to the object specified by loc_id. * The attribute named old_attr_name is renamed new_attr_name. * * @param loc_id IN: Location or object identifier; may be dataset or group * @param old_attr_name IN: Prior attribute name * @param new_attr_name IN: New attribute name * * @return A non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - Name is null. **/ public synchronized static native int H5Arename(int loc_id, String old_attr_name, String new_attr_name) throws HDF5LibraryException, NullPointerException; /** * H5Arename_by_name changes the name of attribute that is attached to the object specified by loc_id and obj_name. * The attribute named old_attr_name is renamed new_attr_name. * * @param loc_id IN: Location or object identifier; may be dataset or group * @param obj_name IN: Name of object, relative to location, whose attribute is to be renamed * @param old_attr_name IN: Prior attribute name * @param new_attr_name IN: New attribute name * @param lapl_id IN: Link access property list * * @return A non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - Name is null. **/ public synchronized static native int H5Arename_by_name(int loc_id, String obj_name, String old_attr_name, String new_attr_name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Awrite writes an attribute, specified with attr_id. The attribute's * memory datatype is specified with mem_type_id. The entire attribute is * written from buf to the file. * * @param attr_id * IN: Identifier of an attribute to write. * @param mem_type_id * IN: Identifier of the attribute datatype (in memory). * @param buf * IN: Data to be written. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data is null. **/ public synchronized static native int H5Awrite(int attr_id, int mem_type_id, byte[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Awrite writes an attribute, specified with attr_id. The attribute's * memory datatype is specified with mem_type_id. The entire attribute is * written from data object to the file. * * @param attr_id * IN: Identifier of an attribute to write. * @param mem_type_id * IN: Identifier of the attribute datatype (in memory). * @param obj * IN: Data object to be written. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data object is null. See public synchronized static * native int H5Awrite(int attr_id, int mem_type_id, byte[] * buf); **/ public synchronized static int H5Awrite(int attr_id, int mem_type_id, Object obj) throws HDF5Exception, NullPointerException { HDFArray theArray = new HDFArray(obj); byte[] buf = theArray.byteify(); int retVal = H5Awrite(attr_id, mem_type_id, buf); buf = null; theArray = null; return retVal; } public synchronized static native int H5AwriteVL(int attr_id, int mem_type_id, String[] buf) throws HDF5LibraryException, NullPointerException; ///////// unimplemented //////// //herr_t H5Aiterate2(hid_t loc_id, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx, H5A_operator2_t op, void *op_data); //herr_t H5Aiterate_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type, // H5_iter_order_t order, hsize_t *idx, H5A_operator2_t op, void *op_data, hid_t lapd_id); ////////////////////////////////////////////////////////////// //// //H5D: Datasets Interface Functions // //// ////////////////////////////////////////////////////////////// public synchronized static native int H5Dchdir_ext(String dir_name) throws HDF5LibraryException, NullPointerException; /** * H5Dcopy copies the content of one dataset to another dataset. * * @param src_did * the identifier of the source dataset * @param dst_did * the identifier of the destinaiton dataset */ public synchronized static native int H5Dcopy(int src_did, int dst_did) throws HDF5LibraryException; /** * H5Dclose ends access to a dataset specified by dataset_id and releases * resources used by it. * * @param dataset_id * Identifier of the dataset to finish access to. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Dclose(int dataset_id) throws HDF5LibraryException { if (dataset_id < 0) return 0; // throw new HDF5LibraryException("Negative ID"); OPEN_IDS.removeElement(dataset_id); return _H5Dclose(dataset_id); } private synchronized static native int _H5Dclose(int dataset_id) throws HDF5LibraryException; /** * H5Dcreate creates a data set with a name, name, in the file or in the * group specified by the identifier loc_id. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Dcreate(int, String, int, int, int, int, int) } * * @param loc_id * Identifier of the file or group to create the dataset within. * @param name * The name of the dataset to create. * @param type_id * Identifier of the datatype to use when creating the dataset. * @param space_id * Identifier of the dataspace to use when creating the dataset. * @param create_plist_id * Identifier of the set creation property list. * * @return a dataset identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ @Deprecated public static int H5Dcreate(int loc_id, String name, int type_id, int space_id, int create_plist_id) throws HDF5LibraryException, NullPointerException { int id = _H5Dcreate(loc_id, name, type_id, space_id, create_plist_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Dcreate(int loc_id, String name, int type_id, int space_id, int create_plist_id) throws HDF5LibraryException, NullPointerException; /** * H5Dcreate creates a new dataset named name at the * location specified by loc_id. * * @param loc_id IN: Location identifier * @param name IN: Dataset name * @param type_id IN: Datatype identifier * @param space_id IN: Dataspace identifier * @param lcpl_id IN: Identifier of link creation property list. * @param dcpl_id IN: Identifier of dataset creation property list. * @param dapl_id IN: Identifier of dataset access property list. * * @return a dataset identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Dcreate(int loc_id, String name, int type_id, int space_id, int lcpl_id, int dcpl_id, int dapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Dcreate2(loc_id, name, type_id, space_id, lcpl_id, dcpl_id, dapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } /** * H5Dcreate2 creates a new dataset named name at the * location specified by loc_id. * * @see public static int H5Dcreate(int loc_id, String name, int type_id, * int space_id, int lcpl_id, int dcpl_id, int dapl_id) **/ private synchronized static native int _H5Dcreate2(int loc_id, String name, int type_id, int space_id, int lcpl_id, int dcpl_id, int dapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Dcreate_anon creates a dataset in the file specified by loc_id. * * @param loc_id IN: Location identifier * @param type_id IN: Datatype identifier * @param space_id IN: Dataspace identifier * @param dcpl_id IN: Identifier of dataset creation property list. * @param dapl_id IN: Identifier of dataset access property list. * * @return a dataset identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Dcreate_anon(int loc_id, int type_id, int space_id, int dcpl_id, int dapl_id) throws HDF5LibraryException { int id = _H5Dcreate_anon(loc_id, type_id, space_id, dcpl_id, dapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Dcreate_anon(int loc_id, int type_id, int space_id, int dcpl_id, int dapl_id) throws HDF5LibraryException; /** * H5Dextend verifies that the dataset is at least of size size. * * @param dataset_id IN: Identifier of the dataset. * @param size IN: Array containing the new magnitude of each dimension. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size array is null. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Dset_extent(int, long[]) } **/ @Deprecated public synchronized static native int H5Dextend(int dataset_id, byte[] size) throws HDF5LibraryException, NullPointerException; /** * H5Dextend verifies that the dataset is at least of size size. * * @param dataset_id IN: Identifier of the dataset. * @param size IN: Array containing the new magnitude of each dimension. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size array is null. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Dset_extent(int, long[]) } **/ @Deprecated public synchronized static int H5Dextend(int dataset_id, long[] size) throws HDF5Exception, NullPointerException { int rval = -1; HDFArray theArray = new HDFArray(size); byte[] buf = theArray.byteify(); rval = H5Dextend(dataset_id, buf); buf = null; theArray = null; return rval; } /** * H5Dfill explicitly fills the dataspace selection in memory, space_id, * with the fill value specified in fill. * * @param fill IN: Pointer to the fill value to be used. * @param fill_type IN: Fill value datatype identifier. * @param buf IN/OUT: Pointer to the memory buffer containing the selection to be filled. * @param buf_type IN: Datatype of dataspace elements to be filled. * @param space IN: Dataspace describing memory buffer and containing the selection to be filled. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native void H5Dfill(byte[] fill, int fill_type, byte[] buf, int buf_type, int space) throws HDF5LibraryException, NullPointerException; /** * H5Dget_access_plist returns an identifier for a copy of the * dataset access property list for a dataset. * * @param dset_id IN: Identifier of the dataset to query. * * @return a dataset access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Dget_access_plist(int dset_id) throws HDF5LibraryException; /** * H5Dget_create_plist returns an identifier for a copy of the dataset * creation property list for a dataset. * * @param dataset_id * Identifier of the dataset to query. * @return a dataset creation property list identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Dget_create_plist(int dataset_id) throws HDF5LibraryException { int id = _H5Dget_create_plist(dataset_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Dget_create_plist(int dataset_id) throws HDF5LibraryException; /** H5Dget_offset returns the address in the file of the dataset dset_id. * * @param dset_id IN: Identifier of the dataset in question * * @return the offset in bytes. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Dget_offset(int dset_id) throws HDF5LibraryException; /** * H5Dget_space returns an identifier for a copy of the dataspace for a * dataset. * * @param dataset_id * Identifier of the dataset to query. * * @return a dataspace identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Dget_space(int dataset_id) throws HDF5LibraryException { int id = _H5Dget_space(dataset_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Dget_space(int dataset_id) throws HDF5LibraryException; /** * H5Dget_space_status determines whether space has been * allocated for the dataset dset_id. * * @param dset_id IN: Identifier of the dataset to query. * * @return the space allocation status * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Dget_space_status(int dset_id) throws HDF5LibraryException; /** * H5Dget_space_status determines whether space has been * allocated for the dataset dset_id. * * @param dset_id IN: Identifier of the dataset to query. * * @return the space allocation status * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Dget_space_status(int dset_id, int[] status) throws HDF5LibraryException, NullPointerException { return _H5Dget_space_status(dset_id, status); } private synchronized static native int _H5Dget_space_status(int dset_id, int[] status) throws HDF5LibraryException, NullPointerException; /** * H5Dget_storage_size returns the amount of storage that is required for * the dataset. * * @param dataset_id * Identifier of the dataset in question * * @return he amount of storage space allocated for the dataset. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native long H5Dget_storage_size(int dataset_id) throws HDF5LibraryException, IllegalArgumentException; /** * H5Dget_type returns an identifier for a copy of the datatype for a * dataset. * * @param dataset_id * Identifier of the dataset to query. * * @return a datatype identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Dget_type(int dataset_id) throws HDF5LibraryException { int id = _H5Dget_type(dataset_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Dget_type(int dataset_id) throws HDF5LibraryException; public synchronized static native int H5Dgetdir_ext(String[] dir_name, int size) throws HDF5LibraryException, NullPointerException; /** * H5Diterate iterates over all the data elements in the memory buffer buf, * executing the callback function operator once for each such data element. * * @param buf IN/OUT: Pointer to the memory containing the elements to iterate over. * @param buf_type IN: Buffer datatype identifier. * @param space IN: Dataspace describing memory buffer. * @param op IN: Callback function to operate on each value. * @param op_data IN/OUT: Pointer to any user-efined data for use by operator function. * * @return returns the return value of the first operator that returns a positive value, or zero if all members were * processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native int H5Diterate(byte[] buf, int buf_type, int space, H5D_iterate_cb op, H5D_iterate_t op_data) throws HDF5LibraryException, NullPointerException; /** * H5Dopen opens the existing dataset specified by a location identifier * and name, loc_id and name, respectively. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Dopen(int, String, int) } * * @param loc_id IN: Location identifier * @param name IN: Dataset name * * @return a dataset identifier if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ @Deprecated public static int H5Dopen(int loc_id, String name) throws HDF5LibraryException, NullPointerException { int id = _H5Dopen(loc_id, name); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Dopen(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Dopen opens the existing dataset specified by a location identifier * and name, loc_id and name, respectively. * * @param loc_id IN: Location identifier * @param name IN: Dataset name * @param dapl_id IN: Identifier of dataset access property list. * * @return a dataset identifier if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Dopen(int loc_id, String name, int dapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Dopen2(loc_id, name, dapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } /** * H5Dopen2 opens the existing dataset specified by a location identifier * and name, loc_id and name, respectively. * * @see public static int H5Dopen(int loc_id, String name, int dapl_id) **/ private synchronized static native int _H5Dopen2(int loc_id, String name, int dapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Dread reads a (partial) dataset, specified by its identifier * dataset_id, from the file into the application memory buffer buf. * * @param dataset_id * Identifier of the dataset read from. * @param mem_type_id * Identifier of the memory datatype. * @param mem_space_id * Identifier of the memory dataspace. * @param file_space_id * Identifier of the dataset's dataspace in the file. * @param xfer_plist_id * Identifier of a transfer property list for this I/O operation. * @param buf * Buffer to store data read from the file. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data buffer is null. **/ public synchronized static native int H5Dread(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, byte[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dread(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException { return H5Dread(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static int H5Dread(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException { return H5Dread(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, obj, true); } /** * H5Dread reads a (partial) dataset, specified by its identifier * dataset_id, from the file into the application data object. * * @param dataset_id * Identifier of the dataset read from. * @param mem_type_id * Identifier of the memory datatype. * @param mem_space_id * Identifier of the memory dataspace. * @param file_space_id * Identifier of the dataset's dataspace in the file. * @param xfer_plist_id * Identifier of a transfer property list for this I/O operation. * @param obj * Object to store data read from the file. * * @return a non-negative value if successful * * @exception HDF5Exception * - Failure in the data conversion. * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data object is null. **/ public synchronized static int H5Dread(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, Object obj, boolean isCriticalPinning) throws HDF5Exception, HDF5LibraryException, NullPointerException { int status = -1; boolean is1D = false; Class dataClass = obj.getClass(); if (!dataClass.isArray()) { throw (new HDF5JavaException("H5Dread: data is not an array")); } String cname = dataClass.getName(); is1D = (cname.lastIndexOf('[') == cname.indexOf('[')); char dname = cname.charAt(cname.lastIndexOf("[") + 1); if (is1D && (dname == 'B')) { status = H5Dread(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (byte[]) obj, isCriticalPinning); } else if (is1D && (dname == 'S')) { status = H5Dread_short(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (short[]) obj, isCriticalPinning); } else if (is1D && (dname == 'I')) { status = H5Dread_int(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (int[]) obj, isCriticalPinning); } else if (is1D && (dname == 'J')) { status = H5Dread_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (long[]) obj); } else if (is1D && (dname == 'F')) { status = H5Dread_float(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (float[]) obj, isCriticalPinning); } else if (is1D && (dname == 'D')) { status = H5Dread_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (double[]) obj, isCriticalPinning); } else if (H5.H5Tequal(mem_type_id, HDF5Constants.H5T_STD_REF_DSETREG)) { status = H5Dread_reg_ref(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (String[]) obj); } else if (is1D && (dataClass.getComponentType() == String.class)) { // Rosetta Biosoftware - add support for // Strings (variable length) if (H5.H5Tis_variable_str(mem_type_id)) { status = H5DreadVL(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (Object[]) obj); } else { status = H5Dread_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (String[]) obj); } } else { // Create a data buffer to hold the data // into a Java Array HDFArray theArray = new HDFArray(obj); byte[] buf = theArray.emptyBytes(); // will raise exception if read fails status = H5Dread(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, isCriticalPinning); if (status >= 0) { // convert the data into a Java // Array */ obj = theArray.arrayify(buf); } // clean up these: assign 'null' as hint // to gc() */ buf = null; theArray = null; } return status; } public synchronized static native int H5Dread_double(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, double[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dread_double(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, double[] buf) throws HDF5LibraryException, NullPointerException { return H5Dread_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dread_float(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, float[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dread_float(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, float[] buf) throws HDF5LibraryException, NullPointerException { return H5Dread_float(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dread_int(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, int[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dread_int(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, int[] buf) throws HDF5LibraryException, NullPointerException { return H5Dread_int(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dread_long(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, long[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dread_long(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, long[] buf) throws HDF5LibraryException, NullPointerException { return H5Dread_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dread_reg_ref(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Dread_reg_ref_data(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Dread_short(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, short[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dread_short(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, short[] buf) throws HDF5LibraryException, NullPointerException { return H5Dread_short(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dread_string(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5DreadVL(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, Object[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Dset_extent sets the current dimensions of the chunked dataset dset_id * to the sizes specified in size. * * @param dset_id IN: Chunked dataset identifier. * @param size IN: Array containing the new magnitude of each dimension of the dataset. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size is null. **/ public synchronized static native void H5Dset_extent(int dset_id, long size[]) throws HDF5LibraryException, NullPointerException; private synchronized static native int _H5Aopen_by_name(int loc_id, String obj_name, String attr_name,int aapl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Dvlen_get_buf_size(int dataset_id, int type_id, int space_id, int[] size) throws HDF5LibraryException; /** * H5Dvlen_get_buf_size determines the number of bytes required to store the VL data from * the dataset, using the space_id for the selection in the dataset on disk and the * type_id for the memory representation of the VL data in memory. * * @param dset_id IN: Identifier of the dataset read from. * @param type_id IN: Identifier of the datatype. * @param space_id IN: Identifier of the dataspace. * * @return the size in bytes of the memory buffer required to store the VL data. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native long H5Dvlen_get_buf_size_long(int dset_id, int type_id, int space_id) throws HDF5LibraryException; //int H5Dvlen_get_buf_size(int dset_id, int type_id, int space_id, LongByReference size); /** * * * @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 H5Dvlen_reclaim(int type_id, int space_id, int xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Dwrite writes a (partial) dataset, specified by its identifier * dataset_id, from the application memory buffer buf into the file. * * @param dataset_id * Identifier of the dataset read from. * @param mem_type_id * Identifier of the memory datatype. * @param mem_space_id * Identifier of the memory dataspace. * @param file_space_id * Identifier of the dataset's dataspace in the file. * @param xfer_plist_id * Identifier of a transfer property list for this I/O operation. * @param buf * Buffer with data to be written to the file. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5Dwrite(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, byte[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dwrite(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, byte[] buf) throws HDF5LibraryException, NullPointerException { return H5Dwrite(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static int H5Dwrite(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, Object obj) throws HDF5Exception, HDF5LibraryException, NullPointerException { return H5Dwrite(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, obj, true); } /** * H5Dwrite writes a (partial) dataset, specified by its identifier * dataset_id, from the application memory data object into the file. * * @param dataset_id * Identifier of the dataset read from. * @param mem_type_id * Identifier of the memory datatype. * @param mem_space_id * Identifier of the memory dataspace. * @param file_space_id * Identifier of the dataset's dataspace in the file. * @param xfer_plist_id * Identifier of a transfer property list for this I/O operation. * @param obj * Object with data to be written to the file. * * @return a non-negative value if successful * * @exception HDF5Exception * - Failure in the data conversion. * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - data object is null. **/ public synchronized static int H5Dwrite(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, Object obj, boolean isCriticalPinning) throws HDF5Exception, HDF5LibraryException, NullPointerException { int status = -1; boolean is1D = false; Class dataClass = obj.getClass(); if (!dataClass.isArray()) { throw (new HDF5JavaException("H5Dread: data is not an array")); } String cname = dataClass.getName(); is1D = (cname.lastIndexOf('[') == cname.indexOf('[')); char dname = cname.charAt(cname.lastIndexOf("[") + 1); if (is1D && (dname == 'B')) { status = H5Dwrite(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (byte[]) obj, isCriticalPinning); } else if (is1D && (dname == 'S')) { status = H5Dwrite_short(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (short[]) obj, isCriticalPinning); } else if (is1D && (dname == 'I')) { status = H5Dwrite_int(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (int[]) obj, isCriticalPinning); } else if (is1D && (dname == 'J')) { status = H5Dwrite_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (long[]) obj, isCriticalPinning); } else if (is1D && (dname == 'F')) { status = H5Dwrite_float(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (float[]) obj, isCriticalPinning); } else if (is1D && (dname == 'D')) { status = H5Dwrite_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (double[]) obj, isCriticalPinning); } // Rosetta Biosoftware - call into H5DwriteString // for variable length Strings else if ((H5.H5Tget_class(mem_type_id) == HDF5Constants.H5T_STRING) && H5.H5Tis_variable_str(mem_type_id) && dataClass.isArray() && (dataClass.getComponentType() == String.class) && is1D) { status = H5DwriteString(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (String[]) obj); } else { HDFArray theArray = new HDFArray(obj); byte[] buf = theArray.byteify(); /* will raise exception on error */ status = H5Dwrite(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, isCriticalPinning); // clean up these: assign 'null' as hint to // gc() */ buf = null; theArray = null; } return status; } public synchronized static native int H5Dwrite_double(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, double[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dwrite_double(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, double[] buf) throws HDF5LibraryException, NullPointerException { return H5Dwrite_double(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dwrite_float(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, float[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dwrite_float(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, float[] buf) throws HDF5LibraryException, NullPointerException { return H5Dwrite_float(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dwrite_int(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, int[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dwrite_int(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, int[] buf) throws HDF5LibraryException, NullPointerException { return H5Dwrite_int(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dwrite_long(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, long[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dwrite_long(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, long[] buf) throws HDF5LibraryException, NullPointerException { return H5Dwrite_long(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } public synchronized static native int H5Dwrite_short(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, short[] buf, boolean isCriticalPinning) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Dwrite_short(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, short[] buf) throws HDF5LibraryException, NullPointerException { return H5Dwrite_short(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, buf, true); } /** * H5DwriteString writes a (partial) variable length String dataset, * specified by its identifier dataset_id, from the application memory * buffer buf into the file. * * ---- contributed by Rosetta Biosoftware * * @param dataset_id * Identifier of the dataset read from. * @param mem_type_id * Identifier of the memory datatype. * @param mem_space_id * Identifier of the memory dataspace. * @param file_space_id * Identifier of the dataset's dataspace in the file. * @param xfer_plist_id * Identifier of a transfer property list for this I/O operation. * @param buf * Buffer with data to be written to the file. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5DwriteString(int dataset_id, int mem_type_id, int mem_space_id, int file_space_id, int xfer_plist_id, String[] buf) throws HDF5LibraryException, NullPointerException; ///////// unimplemented //////// //herr_t H5Dgather(hid_t src_space_id, const void *src_buf, hid_t type_id, // size_t dst_buf_size, void *dst_buf, H5D_gather_func_t op, void *op_data); //herr_t H5Dscatter(H5D_scatter_func_t op, void *op_data, hid_t type_id, hid_t dst_space_id, void *dst_buf); ////////////////////////////////////////////////////////////// //// //H5E: Error Stack // //// ////////////////////////////////////////////////////////////// /** * H5Eauto_is_v2 determines whether the error auto reporting function for an * error stack conforms to the H5E_auto2_t typedef or the H5E_auto1_t * typedef. * * @param stack_id * IN: Error stack identifier. * * @return boolean true if the error stack conforms to H5E_auto2_t and false * if it conforms to H5E_auto1_t. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Eauto_is_v2(int stack_id) throws HDF5LibraryException; /** * H5Eclear clears the error stack for the current thread. H5Eclear can fail * if there are problems initializing the library. *

* This may be used by exception handlers to assure that the error condition * in the HDF-5 library has been reset. * * @return Returns a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Eclear() throws HDF5LibraryException { H5Eclear2(HDF5Constants.H5E_DEFAULT); return 0; } /** * H5Eclear clears the error stack specified by estack_id, or, if estack_id * is set to H5E_DEFAULT, the error stack for the current thread. * * @param stack_id * IN: Error stack identifier. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static void H5Eclear(int stack_id) throws HDF5LibraryException { H5Eclear2(stack_id); } /** * H5Eclear2 clears the error stack specified by estack_id, or, if estack_id * is set to H5E_DEFAULT, the error stack for the current thread. * * @see #H5Eclear **/ public synchronized static native void H5Eclear2(int stack_id) throws HDF5LibraryException; /** * H5Eclose_msg closes an error message identifier, which can be either a * major or minor message. * * @param err_id * IN: Error message identifier. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Eclose_msg(int err_id) throws HDF5LibraryException; /** * H5Eclose_stack closes the object handle for an error stack and releases * its resources. * * @param stack_id * IN: Error stack identifier. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Eclose_stack(int stack_id) throws HDF5LibraryException; /** * H5Ecreate_msg adds an error message to an error class defined by client * library or application program. * * @param cls_id * IN: Error class identifier. * @param msg_type * IN: The type of the error message. * @param msg * IN: The error message. * * @return a message identifier * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - msg is null. **/ public synchronized static native int H5Ecreate_msg(int cls_id, int msg_type, String msg) throws HDF5LibraryException, NullPointerException; /** * H5Ecreate_stack creates a new empty error stack and returns the new * stack's identifier. * * @return an error stack identifier * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Ecreate_stack() throws HDF5LibraryException; /** * H5Eget_class_name retrieves the name of the error class specified by the * class identifier. * * @param class_id * IN: Error class identifier. * * @return the name of the error class * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native String H5Eget_class_name(int class_id) throws HDF5LibraryException, NullPointerException; // long H5Eget_class_name(int class_id, String name, IntegerType size); /** * H5Eget_current_stack copies the current error stack and returns an error * stack identifier for the new copy. * * @return an error stack identifier * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Eget_current_stack() throws HDF5LibraryException; /** * H5Eset_current_stack replaces the content of the current error stack with * a copy of the content of the error stack specified by estack_id. * * @param stack_id * IN: Error stack identifier. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Eset_current_stack(int stack_id) throws HDF5LibraryException; /** * H5Eget_msg retrieves the error message including its length and type. * * @param msg_id * IN: Name of the error class. * @param type_list * OUT: The type of the error message. Valid values are H5E_MAJOR * and H5E_MINOR. * * @return the error message * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native String H5Eget_msg(int msg_id, int[] type_list) throws HDF5LibraryException; // long H5Eget_msg(int msg_id, H5E_TYPE type, String msg, IntegerType size); /** * H5Eget_num retrieves the number of error records in the error stack * specified by estack_id (including major, minor messages and description). * * @param stack_id * IN: Error stack identifier. * * @return the number of error messages * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native long H5Eget_num(int stack_id) throws HDF5LibraryException, NullPointerException; /** * H5Eprint1 prints the error stack specified by estack_id on the specified * stream, stream. * * @param stream * IN: File pointer, or stderr if null. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Eprint2(int, Object)} **/ @Deprecated public synchronized static native void H5Eprint1(Object stream) throws HDF5LibraryException; /** * H5Eprint2 prints the error stack specified by estack_id on the specified * stream, stream. * * @param stack_id * IN: Error stack identifier.If the identifier is H5E_DEFAULT, * the current error stack will be printed. * @param stream * IN: File pointer, or stderr if null. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Eprint2(int stack_id, Object stream) throws HDF5LibraryException; /** * H5Epop deletes the number of error records specified in count from the * top of the error stack specified by estack_id (including major, minor * messages and description). * * @param stack_id * IN: Error stack identifier. * @param count * IN: Version of the client library or application to which the * error class belongs. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Epop(int stack_id, long count) throws HDF5LibraryException; /** * H5Eregister_class registers a client library or application program to * the HDF5 error API so that the client library or application program can * report errors together with HDF5 library. * * @param cls_name * IN: Name of the error class. * @param lib_name * IN: Name of the client library or application to which the * error class belongs. * @param version * IN: Version of the client library or application to which the * error class belongs. * * @return a class identifier * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5Eregister_class(String cls_name, String lib_name, String version) throws HDF5LibraryException, NullPointerException; /** * H5Eunregister_class removes the error class specified by class_id. * * @param class_id * IN: Error class identifier. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Eunregister_class(int class_id) throws HDF5LibraryException; ///////// unimplemented //////// //public interface H5E_auto2_t extends Callback //{ // int callback(int estack, Pointer client_data); //} //int H5Eget_auto(int estack_id, H5E_auto2_t func, PointerByReference client_data); //{ // return H5Eget_auto2(estack_id, func, client_data); //} //int H5Eget_auto2(int estack_id, H5E_auto2_t func, PointerByReference client_data); //int H5Eset_auto(int estack_id, H5E_auto2_t func, Pointer client_data); //{ // return H5Eset_auto2(estack_id, func, client_data); //} //int H5Eset_auto2(int estack_id, H5E_auto2_t func, Pointer client_data); //public static int H5Epush(int err_stack, String file, String func, int line, // int cls_id, int maj_id, int min_id, String msg, ...) //{ // H5Epush2(err_stack, file, func, line, cls_id, maj_id, min_id, msg, ...); //} //public synchronized static native int H5Epush2(int err_stack, String file, String func, int line, // int cls_id, int maj_id, int min_id, String msg, ...); ////Error stack traversal callback function pointers //public interface H5E_walk2_t extends Callback //{ // int callback(int n, H5E_error2_t err_desc, Pointer client_data); //} //int H5Ewalk(int err_stack, H5E_direction_t direction, H5E_walk2_t func, Pointer client_data) //{ // return H5Ewalk2(err_stack, direction, func, client_data); //} //int H5Ewalk2(int err_stack, H5E_direction_t direction, H5E_walk2_t func, Pointer client_data); ////////////////////////////////////////////////////////////// //// //H5F: File Interface Functions // //// ////////////////////////////////////////////////////////////// /** * H5Fclose terminates access to an HDF5 file. * * @param file_id * Identifier of a file to terminate access to. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Fclose(int file_id) throws HDF5LibraryException { if (file_id <0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(file_id); return _H5Fclose(file_id); } private synchronized static native int _H5Fclose(int file_id) throws HDF5LibraryException; /** * H5Fopen opens an existing file and is the primary function for accessing * existing HDF5 files. * * @param name * Name of the file to access. * @param flags * File access flags. * @param access_id * Identifier for the file access properties list. * * @return a file identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public static int H5Fopen(String name, int flags, int access_id) throws HDF5LibraryException, NullPointerException { int id = _H5Fopen(name, flags, access_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Fopen(String name, int flags, int access_id) throws HDF5LibraryException, NullPointerException; /** * H5Freopen reopens an HDF5 file. * * @param file_id * Identifier of a file to terminate and reopen access to. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @return a new file identifier if successful **/ public static int H5Freopen(int file_id) throws HDF5LibraryException { int id = _H5Freopen(file_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Freopen(int file_id) throws HDF5LibraryException; /** * H5Fcreate is the primary function for creating HDF5 files. * * @param name * Name of the file to access. * @param flags * File access flags. Possible values include: *

* * @param create_id * File creation property list identifier, used when modifying * default file meta-data. Use H5P_DEFAULT for default access * properties. * @param access_id * File access property list identifier. If parallel file access * is desired, this is a collective call according to the * communicator stored in the access_id (not supported in Java). * Use H5P_DEFAULT for default access properties. * * @return a file identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public static int H5Fcreate(String name, int flags, int create_id, int access_id) throws HDF5LibraryException, NullPointerException { int id = _H5Fcreate(name, flags, create_id, access_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Fcreate(String name, int flags, int create_id, int access_id) throws HDF5LibraryException, NullPointerException; /** * H5Fflush causes all buffers associated with a file or object to be * immediately flushed (written) to disk without removing the data from the * (memory) cache. *

* After this call completes, the file (or object) is in a consistent state * and all data written to date is assured to be permanent. * * @param object_id * Identifier of object used to identify the file. * object_id can be any object associated with the file, * including the file itself, a dataset, a group, an attribute, * or a named data type. * @param scope * specifies the scope of the flushing action, in the case that * the HDF-5 file is not a single physical file. *

* Valid values are: *

* * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Fflush(int object_id, int scope) throws HDF5LibraryException; /** * H5Fget_access_plist returns the file access property list identifier of * the specified file. * * @param file_id * Identifier of file to get access property list of * * @return a file access property list identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Fget_access_plist(int file_id) throws HDF5LibraryException { int id = _H5Fget_access_plist(file_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Fget_access_plist(int file_id) throws HDF5LibraryException; /** * H5Fget_create_plist returns a file creation property list identifier * identifying the creation properties used to create this file. * * @param file_id * Identifier of the file to get creation property list * * @return a file creation property list identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Fget_create_plist(int file_id) throws HDF5LibraryException { int id = _H5Fget_create_plist(file_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Fget_create_plist(int file_id) throws HDF5LibraryException; public synchronized static native long H5Fget_filesize(int file_id) throws HDF5LibraryException; /** * H5Fget_freespace returns the amount of space that is unused by any * objects in the file. * * @param file_id * IN: File identifier for a currently-open HDF5 file * * @return the amount of free space in the file * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native long H5Fget_freespace(int file_id) throws HDF5LibraryException; /** * H5Fget_intent retrieves the intended access mode flag passed with H5Fopen * when the file was opened. * * @param file_id * IN: File identifier for a currently-open HDF5 file * * @return the intended access mode flag, as originally passed with H5Fopen. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Fget_intent(int file_id) throws HDF5LibraryException; // int H5Fget_intent(int file_id, IntByReference intent); /** * H5Fget_mdc_hit_rate queries the metadata cache of the target file to * obtain its hit rate (cache hits / (cache hits + cache misses)) since the * last time hit rate statistics were reset. * * @param file_id * IN: Identifier of the target file. * * @return the double in which the hit rate is returned. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native double H5Fget_mdc_hit_rate(int file_id) throws HDF5LibraryException; /** * H5Fget_mdc_size queries the metadata cache of the target file for the * desired size information. * * @param file_id * IN: Identifier of the target file. * @param metadata_cache * OUT: Current metadata cache information * * * @return current number of entries in the cache * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - metadata_cache is null. **/ public synchronized static native int H5Fget_mdc_size(int file_id, long[] metadata_cache) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Fget_name retrieves the name of the file to which the object obj_id * belongs. * * @param obj_id * IN: Identifier of the object for which the associated filename * is sought. * * @return the filename. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native String H5Fget_name(int obj_id) throws HDF5LibraryException; // long H5Fget_name(int obj_id, Buffer name/*out*/, long size); public synchronized static native String H5Fget_name(int obj_id, int size) throws HDF5LibraryException; /** * H5Fget_obj_count returns the number of open object identifiers for the * file. * * @param file_id * IN: File identifier for a currently-open HDF5 file * @param types * IN: Type of object for which identifiers are to be returned. * * * @return the number of open objects. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Fget_obj_count(int file_id, int types) throws HDF5LibraryException; /** * H5Fget_obj_count returns the number of open object identifiers for the * file. * * @param file_id * IN: File identifier for a currently-open HDF5 file * @param types * IN: Type of object for which identifiers are to be returned. * * * @return the number of open objects. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native long H5Fget_obj_count_long(int file_id, int types) throws HDF5LibraryException; /** * H5Fget_obj_ids returns the list of identifiers for all open HDF5 objects * fitting the specified criteria. * * @param file_id * IN: File identifier for a currently-open HDF5 file * @param types * IN: Type of object for which identifiers are to be returned. * @param max_objs * IN: Maximum number of object identifiers to place into * obj_id_list. * @param obj_id_list * OUT: Pointer to the returned list of open object identifiers. * * @return the number of objects placed into obj_id_list. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - obj_id_list is null. **/ public synchronized static native int H5Fget_obj_ids(int file_id, int types, int max_objs, int[] obj_id_list) throws HDF5LibraryException, NullPointerException; /** * H5Fget_obj_ids returns the list of identifiers for all open HDF5 objects * fitting the specified criteria. * * @param file_id * IN: File identifier for a currently-open HDF5 file * @param types * IN: Type of object for which identifiers are to be returned. * @param max_objs * IN: Maximum number of object identifiers to place into * obj_id_list. * @param obj_id_list * OUT: Pointer to the returned list of open object identifiers. * * @return the number of objects placed into obj_id_list. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - obj_id_list is null. **/ public synchronized static native long H5Fget_obj_ids_long(int file_id, int types, long max_objs, int[] obj_id_list) throws HDF5LibraryException, NullPointerException; /** * H5Fis_hdf5 determines whether a file is in the HDF5 format. * * @param name * File name to check format. * * @return true if is HDF-5, false if not. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native boolean H5Fis_hdf5(String name) throws HDF5LibraryException, NullPointerException; /** * H5Fmount mounts the file specified by child_id onto the group specified * by loc_id and name using the mount properties plist_id. * * @param loc_id * The identifier for the group onto which the file specified by * child_id is to be mounted. * @param name * The name of the group onto which the file specified by * child_id is to be mounted. * @param child_id * The identifier of the file to be mounted. * @param plist_id * The identifier of the property list to be used. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5Fmount(int loc_id, String name, int child_id, int plist_id) throws HDF5LibraryException, NullPointerException; /** * Given a mount point, H5Funmount dissassociates the mount point's file * from the file mounted there. * * @param loc_id * The identifier for the location at which the specified file is * to be unmounted. * @param name * The name of the file to be unmounted. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5Funmount(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Freset_mdc_hit_rate_stats resets the hit rate statistics counters in * the metadata cache associated with the specified file. * * @param file_id * IN: Identifier of the target file. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Freset_mdc_hit_rate_stats( int file_id) throws HDF5LibraryException; ///////// unimplemented //////// //herr_t H5Fclear_elink_file_cache(hid_t file_id); //ssize_t H5Fget_file_image(hid_t file_id, void * buf_ptr, size_t buf_len); ///** //* H5Fget_info returns global information for the file associated with the //* object identifier obj_id. //* //* @param obj_id IN: Object identifier for any object in the file. //* //* @return the structure containing global file information. //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //**/ //public synchronized static native H5F_info_t H5Fget_info(int obj_id) //throws HDF5LibraryException, NullPointerException; //int H5Fget_info(int obj_id, H5F_info_t file_info); ///** //* H5Fget_mdc_config loads the current metadata cache configuration into //* the instance of H5AC_cache_config_t pointed to by the config_ptr //parameter. //* //* @param file_id IN: Identifier of the target file //* @param config_ptr IN/OUT: Pointer to the instance of //H5AC_cache_config_t in which the current metadata cache configuration is to be reported. //* //* @return none //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //* @exception NullPointerException - config_ptr is null. //**/ //public synchronized static native void H5Fget_mdc_config(int file_id, H5AC_cache_config_t config_ptr) //throws HDF5LibraryException, NullPointerException; ///** //* H5Fget_vfd_handle returns a pointer to the file handle from the //low-level file driver //* currently being used by the HDF5 library for file I/O. //* //* @param file_id IN: Identifier of the file to be queried. //* @param fapl IN: File access property list identifier. //* //* @return a pointer to the file handle being used by the low-level //virtual file driver. //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //**/ //public synchronized static native Pointer file_handle //H5Fget_vfd_handle(int file_id, int fapl) //throws HDF5LibraryException; ///** //* H5Fset_mdc_config attempts to configure the file's metadata cache //according to the configuration supplied. //* //* @param file_id IN: Identifier of the target file //* @param config_ptr IN: Pointer to the instance of H5AC_cache_config_t //containing the desired configuration. //* //* @return none //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //* @exception NullPointerException - config_ptr is null. //**/ //public synchronized static native int H5Fset_mdc_config(int file_id, //H5AC_cache_config_t config_ptr) //throws HDF5LibraryException, NullPointerException; // //////////////////////////////////////////////////////////// // // // H5G: Group Interface Functions // // // // //////////////////////////////////////////////////////////// /** * H5Gclose releases resources used by a group which was opened by a call to * H5Gcreate() or H5Gopen(). * * @param group_id * Group identifier to release. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Gclose(int group_id) throws HDF5LibraryException { if (group_id < 0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(group_id); return _H5Gclose(group_id); } private synchronized static native int _H5Gclose(int group_id) throws HDF5LibraryException; /** * H5Gcreate creates a new group with the specified name at the specified * location, loc_id. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Gcreate(int, String, int, int, int) } * * @param loc_id * The file or group identifier. * @param name * The absolute or relative name of the new group. * @param size_hint * An optional parameter indicating the number of bytes to * reserve for the names that will appear in the group. * * @return a valid group identifier for the open group if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ @Deprecated public static int H5Gcreate(int loc_id, String name, long size_hint) throws HDF5LibraryException, NullPointerException { int id = _H5Gcreate(loc_id, name, size_hint); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Gcreate(int loc_id, String name, long size_hint) throws HDF5LibraryException, NullPointerException; /** * H5Gcreate creates a new group with the specified name at the specified * location, loc_id. * * @param loc_id * IN: The file or group identifier. * @param name * IN: The absolute or relative name of the new group. * @param lcpl_id * IN: Identifier of link creation property list. * @param gcpl_id * IN: Identifier of group creation property list. * @param gapl_id * IN: Identifier of group access property list. (No group access * properties have been implemented at this time; use * H5P_DEFAULT.) * * @return a valid group identifier * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public static int H5Gcreate(int loc_id, String name, int lcpl_id, int gcpl_id, int gapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Gcreate2(loc_id, name, lcpl_id, gcpl_id, gapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Gcreate2(int loc_id, String name, int lcpl_id, int gcpl_id, int gapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Gcreate_anon creates a new empty group in the file specified by loc_id. * * @param loc_id * IN: File or group identifier specifying the file in which the * new group is to be created. * @param gcpl_id * IN: Identifier of group creation property list. * @param gapl_id * IN: Identifier of group access property list. (No group access * properties have been implemented at this time; use * H5P_DEFAULT.) * * @return a valid group identifier * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Gcreate_anon(int loc_id, int gcpl_id, int gapl_id) throws HDF5LibraryException { int id = _H5Gcreate_anon(loc_id, gcpl_id, gapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Gcreate_anon(int loc_id, int gcpl_id, int gapl_id) throws HDF5LibraryException; /** * H5Gget_comment retrieves the comment for the the object name. The comment * is returned in the buffer comment. * * @param loc_id * IN: Identifier of the file, group, dataset, or datatype. * @param name * IN: Name of the object whose comment is to be set or reset. * @param bufsize * IN: Anticipated size of the buffer required to hold comment. * @param comment * OUT: The comment. * @return the number of characters in the comment, counting the null * terminator, if successful * * @exception ArrayIndexOutOfBoundsException * - JNI error writing back data * @exception ArrayStoreException * - JNI error writing back data * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. * @exception IllegalArgumentException * - size < 1, comment is invalid. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Oget_comment(int)} **/ @Deprecated public synchronized static native int H5Gget_comment(int loc_id, String name, int bufsize, String[] comment) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Gset_comment sets the comment for the the object name to comment. Any * previously existing comment is overwritten. * * @param loc_id * IN: Identifier of the file, group, dataset, or datatype. * @param name * IN: Name of the object whose comment is to be set or reset. * @param comment * IN: The new comment. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name or comment is null. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Oset_comment(int, String)} **/ @Deprecated public synchronized static native int H5Gset_comment(int loc_id, String name, String comment) throws HDF5LibraryException, NullPointerException; /** * H5Gget_create_plist returns an identifier for the group creation property * list associated with the group specified by group_id. * * @param group_id * IN: Identifier of the group. * * @return an identifier for the group's creation property list * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Gget_create_plist(int group_id) throws HDF5LibraryException; /** * H5Gget_info retrieves information about the group specified by group_id. * The information is returned in the group_info struct. * * @param group_id * IN: Identifier of the group. * * @return a structure in which group information is returned * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native H5G_info_t H5Gget_info(int group_id) throws HDF5LibraryException; // int H5Gget_info(int loc_id, H5G_info_t ginfo); /** * H5Gget_info_by_idx retrieves information about a group, according to the * group's position within an index. * * @param group_id * IN: File or group identifier. * @param group_name * IN: Name of group for which information is to be retrieved. * @param idx_type * IN: Type of index by which objects are ordered * @param order * IN: Order of iteration within index * @param n * IN: Attribute's position in index * @param lapl_id * IN: Link access property list. * * @return a structure in which group information is returned * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native H5G_info_t H5Gget_info_by_idx( int group_id, String group_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; // int H5Gget_info_by_idx(int group_id, String group_name, // H5_index_t idx_type, H5_iter_order_t order, long n, H5G_info_t ginfo, int // lapl_id); /** * H5Gget_info_by_name retrieves information about the group group_name * located in the file or group specified by loc_id. * * @param group_id * IN: File or group identifier. * @param name * IN: Name of group for which information is to be retrieved. * @param lapl_id * IN: Link access property list. * * @return a structure in which group information is returned * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native H5G_info_t H5Gget_info_by_name( int group_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; // int H5Gget_info_by_name(int group_id, String name, H5G_info_t ginfo, int // lapl_id); /** * H5Gget_linkval returns size characters of the link value through the * value argument if loc_id (a file or group identifier) and name specify a * symbolic link. * * @param loc_id * IN: Identifier of the file, group, dataset, or datatype. * @param name * IN: Name of the object whose link value is to be checked. * @param size * IN: Maximum number of characters of value to be returned. * @param value * OUT: Link value. * * @return a non-negative value, with the link value in value, if * successful. * * @exception ArrayIndexOutOfBoundsException * Copy back failed * @exception ArrayStoreException * Copy back failed * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. * @exception IllegalArgumentException * - size is invalid * * @deprecated As of HDF5 1.8, replaced by {@link #H5Lget_val(int, String, String[] , int)} **/ @Deprecated public synchronized static native int H5Gget_linkval(int loc_id, String name, int size, String[] value) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * Returns number of objects in the group specified by its identifier * * @param loc_id * Identifier of the group or the file * @param num_obj * Number of objects in the group * @return positive value if successful; otherwise returns a negative value. * @throws HDF5LibraryException * @throws NullPointerException * * @deprecated As of HDF5 1.8, replaced by {@link #H5Gget_info(int)} */ @Deprecated public synchronized static native int H5Gget_num_objs(int loc_id, long[] num_obj) throws HDF5LibraryException, NullPointerException; /** * retrieves information of all objects under the group (name) located in * the file or group specified by loc_id. * * @param loc_id * IN: File or group identifier * @param name * IN: Name of group for which information is to be retrieved * @param objNames * OUT: Names of all objects under the group, name. * @param objTypes * OUT: Types of all objects under the group, name. * @param objRef * OUT: Reference number of all objects under the group, name. * * @return the number of items found * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. */ public synchronized static int H5Gget_obj_info_all(int loc_id, String name, String[] objNames, int[] objTypes, long[] objRef) throws HDF5LibraryException, NullPointerException { if (objNames == null) { throw new NullPointerException( "H5Gget_obj_info_all(): name array is null"); } return H5Gget_obj_info_all(loc_id, name, objNames, objTypes, null, null, objRef, HDF5Constants.H5_INDEX_NAME); } public synchronized static int H5Gget_obj_info_all(int loc_id, String name, String[] oname, int[] otype, int[] ltype, long[] ref, int indx_type) throws HDF5LibraryException, NullPointerException { return H5Gget_obj_info_full(loc_id, name, oname, otype, ltype, null, ref, indx_type, -1); } public synchronized static int H5Gget_obj_info_all(int loc_id, String name, String[] oname, int[] otype, int[] ltype, long[] fno, long[] ref, int indx_type) throws HDF5LibraryException, NullPointerException { return H5Gget_obj_info_full(loc_id, name, oname, otype, ltype, fno, ref, oname.length, indx_type, -1); } public synchronized static int H5Gget_obj_info_full(int loc_id, String name, String[] oname, int[] otype, int[] ltype, long[] fno, long[] ref, int indx_type, int indx_order) throws HDF5LibraryException, NullPointerException { if (oname == null) { throw new NullPointerException( "H5Gget_obj_info_full(): name array is null"); } if (otype == null) { throw new NullPointerException( "H5Gget_obj_info_full(): object type array is null"); } if (oname.length == 0) { throw new HDF5LibraryException( "H5Gget_obj_info_full(): array size is zero"); } if (oname.length != otype.length) { throw new HDF5LibraryException( "H5Gget_obj_info_full(): name and type array sizes are different"); } if (ltype == null) ltype = new int[otype.length]; if (fno == null) fno = new long[ref.length]; if (indx_type < 0) indx_type = HDF5Constants.H5_INDEX_NAME; if (indx_order < 0) indx_order = HDF5Constants.H5_ITER_INC; return H5Gget_obj_info_full(loc_id, name, oname, otype, ltype, fno, ref, oname.length, indx_type, indx_order); } private synchronized static native int H5Gget_obj_info_full(int loc_id, String name, String[] oname, int[] otype, int[] ltype, long[] fno, long[] ref, int n, int indx_type, int indx_order) throws HDF5LibraryException, NullPointerException; /** * H5Gget_obj_info_idx report the name and type of object with index 'idx' * in a Group. The 'idx' corresponds to the index maintained by H5Giterate. * Each link is returned, so objects with multiple links will be counted * once for each link. * * @param loc_id * IN: file or group ID. * @param name * IN: name of the group to iterate, relative to the loc_id * @param idx * IN: the index of the object to iterate. * @param oname * the name of the object [OUT] * @param type * the type of the object [OUT] * * @return non-negative if successful, -1 if not. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. */ public synchronized static int H5Gget_obj_info_idx(int loc_id, String name, int idx, String[] oname, int[] type) throws HDF5LibraryException, NullPointerException { long default_buf_size = 4096; String n[] = new String[1]; n[0] = new String(""); int grp_id = H5Gopen(loc_id, name); long val = H5Gget_objname_by_idx(grp_id, idx, n, default_buf_size); int type_code = H5Gget_objtype_by_idx(grp_id, idx); oname[0] = new String(n[0]); type[0] = type_code; int ret = (new Long(val)).intValue(); return ret; } /* * ////////////////////////////////////////////////////////////////////////// * /////// // // //Add these methods so that we don't need to call * //in a loop to get information for all the object * in a group, which takes //a lot of time to finish if the number of * objects is more than 10,000 // * /////////////////////////////////////////// * ////////////////////////////////////// */ /** * retrieves information of all objects (recurvisely) under the group (name) * located in the file or group specified by loc_id upto maximum specified * by objMax. * * @param loc_id * IN: File or group identifier * @param objNames * OUT: Names of all objects under the group, name. * @param objTypes * OUT: Types of all objects under the group, name. * @param lnkTypes * OUT: Types of all links under the group, name. * @param objRef * OUT: Reference number of all objects under the group, name. * @param objMax * IN: Maximum number of all objects under the group, name. * * @return the number of items found * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. */ public synchronized static int H5Gget_obj_info_max(int loc_id, String[] objNames, int[] objTypes, int[] lnkTypes, long[] objRef, int objMax) throws HDF5LibraryException, NullPointerException { if (objNames == null) { throw new NullPointerException( "H5Gget_obj_info_max(): name array is null"); } if (objTypes == null) { throw new NullPointerException( "H5Gget_obj_info_max(): object type array is null"); } if (lnkTypes == null) { throw new NullPointerException( "H5Gget_obj_info_max(): link type array is null"); } if (objNames.length <= 0) { throw new HDF5LibraryException( "H5Gget_obj_info_max(): array size is zero"); } if (objMax <= 0) { throw new HDF5LibraryException( "H5Gget_obj_info_max(): maximum array size is zero"); } if (objNames.length != objTypes.length) { throw new HDF5LibraryException( "H5Gget_obj_info_max(): name and type array sizes are different"); } return H5Gget_obj_info_max(loc_id, objNames, objTypes, lnkTypes, objRef, objMax, objNames.length); } private synchronized static native int H5Gget_obj_info_max(int loc_id, String[] oname, int[] otype, int[] ltype, long[] ref, int amax, int n) throws HDF5LibraryException, NullPointerException; /** * H5Gget_objinfo returns information about the specified object. * * @param loc_id * IN: File, group, dataset, or datatype identifier. * @param name * IN: Name of the object for which status is being sought. * @param follow_link * IN: Link flag. * @param fileno * OUT: file id numbers. * @param objno * OUT: object id numbers. * @param link_info * OUT: link information. * *
 *          link_info[0] = nlink
 *          link_info[1] = type
 *          link_info[2] = linklen
 * 
* @param mtime * OUT: modification time * * @return a non-negative value if successful, with the fields of link_info * and mtime (if non-null) initialized. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name or array is null. * @exception IllegalArgumentException * - bad argument. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Lget_info(int, String, int) and #H5Oget_info(int)} **/ @Deprecated public synchronized static native int H5Gget_objinfo(int loc_id, String name, boolean follow_link, long[] fileno, long[] objno, int[] link_info, long[] mtime) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Gget_objinfo returns information about the specified object in an * HDF5GroupInfo object. * * @param loc_id * IN: File, group, dataset, or datatype identifier. * @param name * IN: Name of the object for which status is being sought. * @param follow_link * IN: Link flag. * @param info * OUT: the HDF5GroupInfo object to store the object infomation * * @return a non-negative value if successful, with the fields of * HDF5GroupInfo object (if non-null) initialized. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. * * @see ncsa.hdf.hdf5lib.HDF5GroupInfo See public synchronized static native * int H5Gget_objinfo(); * * @deprecated As of HDF5 1.8 **/ @Deprecated public synchronized static int H5Gget_objinfo(int loc_id, String name, boolean follow_link, HDF5GroupInfo info) throws HDF5LibraryException, NullPointerException { int status = -1; long[] fileno = new long[2]; long[] objno = new long[2]; int[] link_info = new int[3]; long[] mtime = new long[1]; status = H5Gget_objinfo(loc_id, name, follow_link, fileno, objno, link_info, mtime); if (status >= 0) { info.setGroupInfo(fileno, objno, link_info[0], link_info[1], mtime[0], link_info[2]); } return status; } /** * Returns a name of an object specified by an index. * * @param group_id * Group or file identifier * @param idx * Transient index identifying object * @param name * the object name * @param size * Name length * @return the size of the object name if successful, or 0 if no name is * associated with the group identifier. Otherwise returns a * negative value * @throws HDF5LibraryException * @throws NullPointerException * * @deprecated As of HDF5 1.8, replaced by {@link #H5Lget_name_by_idx(int, String, int, int, long, int)} */ @Deprecated public synchronized static native long H5Gget_objname_by_idx(int group_id, long idx, String[] name, long size) throws HDF5LibraryException, NullPointerException; /** * Returns the type of an object specified by an index. * * @param group_id * Group or file identifier. * @param idx * Transient index identifying object. * @return Returns the type of the object if successful. Otherwise returns a * negative value * @throws HDF5LibraryException * @throws NullPointerException * * @deprecated As of HDF5 1.8, replaced by {@link #H5Oget_info(int)} */ @Deprecated public synchronized static native int H5Gget_objtype_by_idx(int group_id, long idx) throws HDF5LibraryException, NullPointerException; /** * H5Glink creates a new name for an already existing object. * * @param loc_id * File, group, dataset, or datatype identifier. * @param link_type * Link type. Possible values are: * * @param current_name * A name of the existing object if link is a hard link. Can be * anything for the soft link. * @param new_name * New name for the object. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - current_name or name is null. * * @deprecated As of HDF5 1.8, replaced by * {@link #H5Lcreate_hard(int, String, int, String, int, int) * and #H5Lcreate_soft(String, int, String, int, int) } **/ @Deprecated public synchronized static native int H5Glink(int loc_id, int link_type, String current_name, String new_name) throws HDF5LibraryException, NullPointerException; /** * H5Glink creates a new name for an already existing object. * * @deprecated As of HDF5 1.8 **/ @Deprecated public synchronized static native int H5Glink2(int curr_loc_id, String current_name, int link_type, int new_loc_id, String new_name) throws HDF5LibraryException, NullPointerException; /** * H5Gunlink removes an association between a name and an object. * * @param loc_id * Identifier of the file containing the object. * @param name * Name of the object to unlink. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Ldelete(int, String, int)} **/ @Deprecated public synchronized static native int H5Gunlink(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Gmove renames an object within an HDF5 file. The original name, src, is * unlinked from the group graph and the new name, dst, is inserted as an * atomic operation. Both names are interpreted relative to loc_id, which is * either a file or a group identifier. * * @param loc_id * File or group identifier. * @param src * Object's original name. * @param dst * Object's new name. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - src or dst is null. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Lmove(int, String, int,String, int, int)} **/ @Deprecated public synchronized static native int H5Gmove(int loc_id, String src, String dst) throws HDF5LibraryException, NullPointerException; // Backward compatibility: // These functions have been replaced by new HDF5 library calls. // The interface is preserved as a convenience to existing code. /** * H5Gn_members report the number of objects in a Group. The 'objects' * include everything that will be visited by H5Giterate. Each link is * returned, so objects with multiple links will be counted once for each * link. * * @param loc_id * file or group ID. * @param name * name of the group to iterate, relative to the loc_id * * @return the number of members in the group or -1 if error. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. */ public synchronized static long H5Gn_members_long(int loc_id, String name) throws HDF5LibraryException, NullPointerException { int grp_id = H5Gopen(loc_id, name); long n = -1; try { H5G_info_t info = H5.H5Gget_info(grp_id); n = info.nlinks; } finally { H5Gclose(grp_id); } return n; } /** * H5Gn_members report the number of objects in a Group. The 'objects' * include everything that will be visited by H5Giterate. Each link is * returned, so objects with multiple links will be counted once for each * link. * * @param loc_id * file or group ID. * @param name * name of the group to iterate, relative to the loc_id * * @return the number of members in the group or -1 if error. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. */ public synchronized static int H5Gn_members(int loc_id, String name) throws HDF5LibraryException, NullPointerException { return (int) H5Gn_members_long(loc_id, name); } /** * H5Gopen opens an existing group with the specified name at the specified * location, loc_id. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Gopen(int, String, int) } * * @param loc_id * File or group identifier within which group is to be open. * @param name * Name of group to open. * * @return a valid group identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ @Deprecated public static int H5Gopen(int loc_id, String name) throws HDF5LibraryException, NullPointerException { int id = _H5Gopen(loc_id, name); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Gopen(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Gopen opens an existing group, name, at the location specified by * loc_id. * * @param loc_id * IN: File or group identifier specifying the location of the * group to be opened. * @param name * IN: Name of group to open. * @param gapl_id * IN: Identifier of group access property list. (No group access * properties have been implemented at this time; use * H5P_DEFAULT.) * * @return a valid group identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public static int H5Gopen(int loc_id, String name, int gapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Gopen2(loc_id, name, gapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Gopen2(int loc_id, String name, int gapl_id) throws HDF5LibraryException, NullPointerException; ////////////////////////////////////////////////////////////// //// //H5I: HDF5 1.8 Identifier Interface API Functions // //// ////////////////////////////////////////////////////////////// public synchronized static native int H5Iget_file_id(int obj_id) throws HDF5LibraryException; public synchronized static native long H5Iget_name(int obj_id, String[] name, long size) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Iget_ref(int obj_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Idec_ref(int obj_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Iinc_ref(int obj_id) throws HDF5LibraryException, NullPointerException; /** * H5Iget_type retrieves the type of the object identified by obj_id. * * @param obj_id * IN: Object identifier whose type is to be determined. * * @return the object type if successful; otherwise H5I_BADID. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Iget_type(int obj_id) throws HDF5LibraryException; /** * H5Iget_type_ref retrieves the reference count on an ID type. The reference count is used by the library to indicate when an ID type can be destroyed. * * @param type * IN: The identifier of the type whose reference count is to be retrieved * * @return The current reference count on success, negative on failure. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Iget_type_ref(int type) throws HDF5LibraryException; /** * H5Inmembers returns the number of identifiers of the identifier type specified in type. * * @param type * IN: Identifier for the identifier type whose member count will be retrieved * * @return Number of identifiers of the specified identifier type * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Inmembers(int type) throws HDF5LibraryException; ///////// unimplemented //////// //herr_t H5Iclear_type(H5I_type_t type, hbool_t force); //int H5Idec_type_ref(H5I_type_t type); //herr_t H5Idestroy_type(H5I_type_t type); //int H5Iinc_type_ref(H5I_type_t type); //htri_t H5Iis_valid(hid_t id); //void *H5Iobject_verify(hid_t id, H5I_type_t id_type); //hid_t H5Iregister(H5I_type_t type, const void *object); //H5I_type_t H5Iregister_type(size_t hash_size, unsigned reserved, H5I_free_t free_func); //void *H5Iremove_verify(hid_t id, H5I_type_t id_type); //void *H5Isearch(H5I_type_t type, H5I_search_func_t func, void *key); //htri_t H5Itype_exists(H5I_type_t type); // ////////////////////////////////////////////////////////////////// // // // New APIs for HDF5Index // // October 10, 2005 // // ////////////////////////////////////////////////////////////////// public synchronized static native int H5INcreate(String grp_name, int grp_loc_id, int property_list, int data_loc_id, String data_loc_name, String field_name, long max_mem_size); public synchronized static native int H5INquery(int dset_id, String keys[], Object ubounds, Object lbounds, int nkeys); // ////////////////////////////////////////////////////////////////// // H5L: Link Interface Functions // // ////////////////////////////////////////////////////////////////// /** * H5Lcopy copies a link from one location to another. * * @param src_loc IN: Location identifier of the source link * @param src_name IN: Name of the link to be copied * @param dst_loc IN: Location identifier specifying the destination of the copy * @param dst_name IN: Name to be assigned to the new copy * @param lcpl_id IN: Link creation property list identifier * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Lcopy(int src_loc, String src_name, int dst_loc, String dst_name, int lcpl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lcreate_external creates a new soft link to an external object, which is * an object in a different HDF5 file from the location of the link. * * @param file_name IN: Name of the target file containing the target object. * @param obj_name IN: Path within the target file to the target object. * @param link_loc_id IN: The file or group identifier for the new link. * @param link_name IN: The name of the new link. * @param lcpl_id IN: Link creation property list identifier * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Lcreate_external(String file_name, String obj_name, int link_loc_id, String link_name, int lcpl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lcreate_hard creates a new hard link to a pre-existing object in an HDF5 file. * * @param cur_loc IN: The file or group identifier for the target object. * @param cur_name IN: Name of the target object, which must already exist. * @param dst_loc IN: The file or group identifier for the new link. * @param dst_name IN: The name of the new link. * @param lcpl_id IN: Link creation property list identifier * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - cur_name or dst_name is null. **/ public synchronized static native void H5Lcreate_hard(int cur_loc, String cur_name, int dst_loc, String dst_name, int lcpl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lcreate_soft creates a new soft link to an object in an HDF5 file. * * @param link_target IN: Path to the target object, which is not required to exist. * @param link_loc_id IN: The file or group identifier for the new link. * @param link_name IN: The name of the new link. * @param lcpl_id IN: Link creation property list identifier * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - link_name is null. **/ public synchronized static native void H5Lcreate_soft(String link_target, int link_loc_id, String link_name, int lcpl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Ldelete removes the link specified from a group. * * @param loc_id IN: Identifier of the file or group containing the object. * @param name IN: Name of the link to delete. * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Ldelete(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Ldelete_by_idx removes the nth link in a group according to the specified order * and in the specified index. * * @param loc_id IN: File or group identifier specifying location of subject group * @param group_name IN: Name of subject group * @param idx_type IN: Index or field which determines the order * @param order IN: Order within field or index * @param n IN: Link for which to retrieve information * @param lapl_id IN: Link access property list identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - group_name is null. **/ public synchronized static native void H5Ldelete_by_idx(int loc_id, String group_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lexists checks if a link with a particular name exists in a group. * * @param loc_id IN: Identifier of the file or group to query. * @param name IN: The name of the link to check. * @param lapl_id IN: Link access property list identifier * * @return a boolean, true if the name exists, otherwise false. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native boolean H5Lexists(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lget_info returns information about the specified link. * * @param loc_id IN: Identifier of the file or group. * @param name IN: Name of the link for which information is being sought. * @param lapl_id IN: Link access property list identifier * * @return a buffer(H5L_info_t) for the link information. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native H5L_info_t H5Lget_info(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lget_info_by_idx opens a named datatype at the location specified * by loc_id and return an identifier for the datatype. * * @param loc_id IN: File or group identifier specifying location of subject group * @param group_name IN: Name of subject group * @param idx_type IN: Type of index * @param order IN: Order within field or index * @param n IN: Link for which to retrieve information * @param lapl_id IN: Link access property list identifier * * @return a buffer(H5L_info_t) for the link information. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - group_name is null. **/ public synchronized static native H5L_info_t H5Lget_info_by_idx(int loc_id, String group_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lget_name_by_idx retrieves name of the nth link in a group, according to * the order within a specified field or index. * * @param loc_id IN: File or group identifier specifying location of subject group * @param group_name IN: Name of subject group * @param idx_type IN: Type of index * @param order IN: Order within field or index * @param n IN: Link for which to retrieve information * @param lapl_id IN: Link access property list identifier * * @return a String for the link name. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - group_name is null. **/ public synchronized static native String H5Lget_name_by_idx(int loc_id, String group_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lget_val returns the link value of a symbolic link. * * @param loc_id IN: Identifier of the file or group containing the object. * @param name IN: Name of the symbolic link. * @param link_value OUT: Path of the symbolic link, or the file_name and path of an external file. * @param lapl_id IN: Link access property list identifier * * @return the link type * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native int H5Lget_val(int loc_id, String name, String[] link_value, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lget_val_by_idx retrieves value of the nth link in a group, according to the order within an index. * * @param loc_id IN: File or group identifier specifying location of subject group * @param group_name IN: Name of subject group * @param idx_type IN: Type of index * @param order IN: Order within field or index * @param n IN: Link for which to retrieve information * @param link_value OUT: Path of the symbolic link, or the file_name and path of an external file. * @param lapl_id IN: Link access property list identifier * * @return the link type * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - group_name is null. **/ public synchronized static native int H5Lget_val_by_idx(int loc_id, String group_name, int idx_type, int order, long n, String[] link_value, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Literate iterates through links in a group. * * @param grp_id IN: Identifier specifying subject group * @param idx_type IN: Type of index * @param order IN: Order of iteration within index * @param idx IN: Iteration position at which to start * @param op IN: Callback function passing data regarding the link to the calling application * @param op_data IN: User-defined pointer to data required by the application for its processing of the link * * @return returns the return value of the first operator that returns a positive value, or zero if all members were * processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Literate(int grp_id, int idx_type, int order, long idx, H5L_iterate_cb op, H5L_iterate_t op_data) throws HDF5LibraryException; /** * H5Literate_by_name iterates through links in a group. * * @param grp_id IN: Identifier specifying subject group * @param group_name IN: Name of subject group * @param idx_type IN: Type of index * @param order IN: Order of iteration within index * @param idx IN: Iteration position at which to start * @param op IN: Callback function passing data regarding the link to the calling application * @param op_data IN: User-defined pointer to data required by the application for its processing of the link * @param lapl_id IN: Link access property list identifier * * @return returns the return value of the first operator that returns a positive value, or zero if all members were * processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - group_name is null. **/ public synchronized static native int H5Literate_by_name(int grp_id, String group_name, int idx_type, int order, long idx, H5L_iterate_cb op, H5L_iterate_t op_data, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lmove renames a link within an HDF5 file. * * @param src_loc IN: Original file or group identifier. * @param src_name IN: Original link name. * @param dst_loc IN: Destination file or group identifier. * @param dst_name IN: New link name. * @param lcpl_id IN: Link creation property list identifier to be associated with the new link. * @param lapl_id IN: Link access property list identifier to be associated with the new link. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Lmove(int src_loc, String src_name, int dst_loc, String dst_name, int lcpl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Lvisit recursively visits all links starting from a specified group. * * @param grp_id IN: Identifier specifying subject group * @param idx_type IN: Type of index * @param order IN: Order of iteration within index * @param op IN: Callback function passing data regarding the link to the calling application * @param op_data IN: User-defined pointer to data required by the application for its processing of the link * * @return returns the return value of the first operator that returns a positive value, or zero if all members were * processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Lvisit(int grp_id, int idx_type, int order, H5L_iterate_cb op, H5L_iterate_t op_data) throws HDF5LibraryException; /** * H5Lvisit_by_name recursively visits all links starting from a specified group. * * @param loc_id IN: Identifier specifying subject group * @param group_name IN: Name of subject group * @param idx_type IN: Type of index * @param order IN: Order of iteration within index * @param op IN: Callback function passing data regarding the link to the calling application * @param op_data IN: User-defined pointer to data required by the application for its processing of the link * * @return returns the return value of the first operator that returns a positive value, or zero if all members were * processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - group_name is null. **/ public synchronized static native int H5Lvisit_by_name(int loc_id, String group_name, int idx_type, int order, H5L_iterate_cb op, H5L_iterate_t op_data, int lapl_id) throws HDF5LibraryException, NullPointerException; ///////// unimplemented //////// //herr_t H5Lcreate_ud(hid_t link_loc_id, const char *link_name, // H5L_type_t link_type, const void *udata, size_t udata_size, hid_t lcpl_id, // hid_t lapl_id); //htri_t H5Lis_registered(H5L_type_t id); //herr_t H5Lregister(const H5L_class_t *cls); //herr_t H5Lunpack_elink_val(const void *ext_linkval/*in*/, size_t link_size, // unsigned *flags, const char **filename/*out*/, const char **obj_path /*out*/); //herr_t H5Lunregister(H5L_type_t id); ////////////////////////////////////////////////////////////// //// //H5O: HDF5 1.8 Object Interface API Functions // //// ////////////////////////////////////////////////////////////// /** * H5Oclose closes the group, dataset, or named datatype specified. * * @param object_id IN: Object identifier * * @return non-negative on success * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Oclose(int object_id) throws HDF5LibraryException { if (object_id < 0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(object_id); return _H5Oclose(object_id); } private synchronized static native int _H5Oclose(int object_id) throws HDF5LibraryException; /** * H5Ocopy copies the group, dataset or named datatype specified from the file or * group specified by source location to the destination location. * * @param src_loc_id IN: Object identifier indicating the location of the source object to be copied * @param src_name IN: Name of the source object to be copied * @param dst_loc_id IN: Location identifier specifying the destination * @param dst_name IN: Name to be assigned to the new copy * @param ocpypl_id IN: Object copy property list * @param lcpl_id IN: Link creation property list for the new hard link * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Ocopy(int src_loc_id, String src_name, int dst_loc_id, String dst_name, int ocpypl_id, int lcpl_id) throws HDF5LibraryException, NullPointerException; /** * H5Oget_comment retrieves the comment for the specified object. * * @param obj_id IN: File or group identifier * * @return the comment * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native String H5Oget_comment(int obj_id) throws HDF5LibraryException; /** * H5Oset_comment sets the comment for the specified object. * * @param obj_id IN: Identifier of the target object * @param comment IN: The new comment. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * * @deprecated As of HDF5 1.8 in favor of object attributes. **/ @Deprecated public synchronized static native void H5Oset_comment(int obj_id, String comment) throws HDF5LibraryException; /** * H5Oget_comment_by_name retrieves the comment for an object. * * @param loc_id IN: Identifier of a file, group, dataset, or named datatype. * @param name IN: Relative name of the object whose comment is to be set or reset. * @param lapl_id IN: Link access property list identifier. * * @return the comment * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native String H5Oget_comment_by_name(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; //long H5Oget_comment_by_name(int loc_id, String name, String comment, long bufsize, int lapl_id); /** * H5Oset_comment_by_name sets the comment for the specified object. * * @param loc_id IN: Identifier of a file, group, dataset, or named datatype. * @param name IN: Relative name of the object whose comment is to be set or reset. * @param comment IN: The new comment. * @param lapl_id IN: Link access property list identifier. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. * * @deprecated As of HDF5 1.8 in favor of object attributes. **/ @Deprecated public synchronized static native void H5Oset_comment_by_name(int loc_id, String name, String comment, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Oget_info retrieves the metadata for an object specified by an identifier. * * @param loc_id IN: Identifier for target object * * @return object information * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native H5O_info_t H5Oget_info(int loc_id) throws HDF5LibraryException, NullPointerException; /** * H5Oget_info_by_idx retrieves the metadata for an object, identifying the object by an index position. * * @param loc_id IN: File or group identifier * @param group_name IN: Name of group, relative to loc_id, in which object is located * @param idx_type IN: Type of index by which objects are ordered * @param order IN: Order of iteration within index * @param n IN: Object to open * @param lapl_id IN: Access property list identifier for the link pointing to the object (Not currently used; pass as H5P_DEFAULT.) * * @return object information * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native H5O_info_t H5Oget_info_by_idx(int loc_id, String group_name, int idx_type, int order, long n, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Oget_info_by_name retrieves the metadata for an object, identifying the object by location and relative name. * * @param loc_id IN: File or group identifier specifying location of group in which object is located * @param name IN: Relative name of group * @param lapl_id IN: Access property list identifier for the link pointing to the object (Not currently used; pass as H5P_DEFAULT.) * * @return object information * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native H5O_info_t H5Oget_info_by_name(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Olink creates a new hard link to an object in an HDF5 file. * * @param obj_id IN: Object to be linked. * @param new_loc_id IN: File or group identifier specifying location at which object is to be linked. * @param new_name IN: Relative name of link to be created. * @param lcpl_id IN: Link creation property list identifier. * @param lapl_id IN: Access property list identifier. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Olink(int obj_id, int new_loc_id, String new_name, int lcpl_id, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Oopen opens a group, dataset, or named datatype specified by a location and a path name. * * @param loc_id IN: File or group identifier * @param name IN: Relative path to the object * @param lapl_id IN: Access property list identifier for the link pointing to the object * * @return an object identifier for the opened object * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Oopen(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Oopen(loc_id, name, lapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Oopen(int loc_id, String name, int lapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Ovisit recursively visits all objects accessible from a specified object. * * @param obj_id IN: Identifier of the object at which the recursive iteration begins. * @param idx_type IN: Type of index * @param order IN: Order of iteration within index * @param op IN: Callback function passing data regarding the object to the calling application * @param op_data IN: User-defined pointer to data required by the application for its processing of the object * * @return returns the return value of the first operator that returns a positive value, or zero if all members were processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native int H5Ovisit(int obj_id, int idx_type, int order, H5O_iterate_cb op, H5O_iterate_t op_data) throws HDF5LibraryException, NullPointerException; /** * H5Ovisit_by_name recursively visits all objects starting from a specified object. * * @param loc_id IN: File or group identifier * @param obj_name IN: Relative path to the object * @param idx_type IN: Type of index * @param order IN: Order of iteration within index * @param op IN: Callback function passing data regarding the object to the calling application * @param op_data IN: User-defined pointer to data required by the application for its processing of the object * @param lapl_id IN: Link access property list identifier * * @return returns the return value of the first operator that returns a positive value, or zero if all members were processed with no operator returning non-zero. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native int H5Ovisit_by_name(int loc_id, String obj_name, int idx_type, int order, H5O_iterate_cb op, H5O_iterate_t op_data, int lapl_id) throws HDF5LibraryException, NullPointerException; ///////// unimplemented //////// ///** //* H5Odecr_refcount decrements the hard link reference count for an object. //* //* @param object_id IN: Object identifier //* //* @return none //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //**/ //public synchronized static native void H5Odecr_refcount(int object_id) // throws HDF5LibraryException; ///** //* H5Oincr_refcount increments the hard link reference count for an object. //* //* @param object_id IN: Object identifier //* //* @return none //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //**/ //public synchronized static native void H5Oincr_refcount(int object_id) // throws HDF5LibraryException; ///** //* H5Oopen_by_addr opens a group, dataset, or named datatype using its address within an HDF5 file. //* //* @param loc_id IN: File or group identifier //* @param addr IN: Object's address in the file //* //* @return an object identifier for the opened object //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //**/ //public synchronized static native int H5Oopen_by_addr(int loc_id, long addr) // throws HDF5LibraryException; ///** //* H5Oopen_by_idx opens the nth object in the group specified. //* //* @param loc_id IN: File or group identifier //* @param group_name IN: Name of group, relative to loc_id, in which object is located //* @param idx_type IN: Type of index by which objects are ordered //* @param order IN: Order of iteration within index //* @param n IN: Object to open //* @param lapl_id IN: Access property list identifier for the link pointing to the object //* //* @return an object identifier for the opened object //* //* @exception HDF5LibraryException - Error from the HDF-5 Library. //* @exception NullPointerException - group_name is null. //**/ //public synchronized static native int H5Oopen_by_idx(int loc_id, String group_name, // H5_INDEX idx_type, H5_ITER order, long n, int lapl_id) // throws HDF5LibraryException, NullPointerException; ////////////////////////////////////////////////////////////// // // // H5P: Property List Interface Functions // // // ////////////////////////////////////////////////////////////// public synchronized static native boolean H5Pall_filters_avail(int dcpl_id) throws HDF5LibraryException, NullPointerException; /** * H5Pclose terminates access to a property list. * * @param plist * IN: Identifier of the property list to terminate access to. * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Pclose(int plist) throws HDF5LibraryException { if (plist < 0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(plist); return _H5Pclose(plist); } private synchronized static native int _H5Pclose(int plist) throws HDF5LibraryException; /** * Closes an existing property list class * * @param plid * IN: Property list class to close * @return a non-negative value if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pclose_class(int plid) throws HDF5LibraryException; /** * H5Pcopy copies an existing property list to create a new property list. * * @param plist * IN: Identifier of property list to duplicate. * * @return a property list identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Pcopy(int plist) throws HDF5LibraryException { int id = _H5Pcopy(plist); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Pcopy(int plist) throws HDF5LibraryException; /** * H5Pcopy_prop copies a property from one property list or class to another * * @param dst_id * IN: Identifier of the destination property list or class * @param src_id * IN: Identifier of the source property list or class * @param name * IN: Name of the property to copy * @return a non-negative value if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pcopy_prop(int dst_id, int src_id, String name) throws HDF5LibraryException; /** * H5Pcreate creates a new property as an instance of some property list * class. * * @param type * IN: The type of property list to create. * * @return a property list identifier (plist) if successful; otherwise Fail * (-1). * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Pcreate(int type) throws HDF5LibraryException { int id = _H5Pcreate(type); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Pcreate(int type) throws HDF5LibraryException; /** * H5Pequal determines if two property lists or classes are equal * * @param plid1 * IN: First property object to be compared * @param plid2 * IN: Second property object to be compared * @return positive value if equal; zero if unequal, a negative value if * failed * @throws HDF5LibraryException */ public synchronized static native int H5Pequal(int plid1, int plid2) throws HDF5LibraryException; public static boolean H5P_equal(int plid1, int plid2) throws HDF5LibraryException { if(H5Pequal(plid1, plid2)==1) return true; return false; } /** * H5Pexist determines whether a property exists within a property list or * class * * @param plid * IN: Identifier for the property to query * @param name * IN: Name of property to check for * @return a positive value if the property exists in the property object; * zero if the property does not exist; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pexist(int plid, String name) throws HDF5LibraryException; public synchronized static native int H5Pfill_value_defined(int plist_id, int[] status) throws HDF5LibraryException, NullPointerException; /** * H5Pget retrieves a copy of the value for a property in a property list * (support integer only) * * @param plid * IN: Identifier of property object to query * @param name * IN: Name of property to query * @return value for a property if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pget(int plid, String name) throws HDF5LibraryException; /** * Sets a property list value (support integer only) * * @param plid * IN: Property list identifier to modify * @param name * IN: Name of property to modify * @param value * IN: value to set the property to * @return a non-negative value if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pset(int plid, String name, int value) throws HDF5LibraryException; /** * H5Pget_alignment retrieves the current settings for alignment properties * from a file access property list. * * @param plist * IN: Identifier of a file access property list. * @param alignment * OUT: threshold value and alignment value. * *
 *      alignment[0] = threshold // threshold value
 *      alignment[1] = alignment // alignment value
 * 
* @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - aligment array is null. * @exception IllegalArgumentException * - aligment array is invalid. **/ public synchronized static native int H5Pget_alignment(int plist, long[] alignment) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pset_alignment sets the alignment properties of a file access property * list so that any file object >= THRESHOLD bytes will be aligned on an * address which is a multiple of ALIGNMENT. * * @param plist * IN: Identifier for a file access property list. * @param threshold * IN: Threshold value. * @param alignment * IN: Alignment value. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_alignment(int plist, long threshold, long alignment) throws HDF5LibraryException; public synchronized static native int H5Pget_alloc_time(int plist_id, int[] alloc_time) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_alloc_time(int plist_id, int alloc_time) throws HDF5LibraryException, NullPointerException; /** * H5Pget_attr_creation_order retrieves the settings for tracking and indexing attribute creation order on an object * @param ocpl_id IN: Object (group or dataset) creation property list identifier * * @return Flags specifying whether to track and index attribute creation order * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_attr_creation_order(int ocpl_id) throws HDF5LibraryException; /** * H5Pset_attr_creation_order sets flags specifying whether to track and index attribute creation order on an object. * @param ocpl_id IN: Object creation property list identifier * @param crt_order_flags IN: Flags specifying whether to track and index attribute creation order * * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_attr_creation_order(int ocpl_id, int crt_order_flags) throws HDF5LibraryException; /** * H5Pget_attr_phase_change retrieves attribute storage phase change thresholds. * @param ocpl_id IN: : Object (dataset or group) creation property list identifier * @param attributes * The maximun and minimum no. of attributes * to be stored. * *
*      attributes[0] =  The maximum number of attributes to be stored in compact storage
*      attributes[1] =  The minimum number of attributes to be stored in dense storage 
*      
* * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size is null. * **/ public synchronized static native int H5Pget_attr_phase_change(int ocpl_id, int []attributes) throws HDF5LibraryException, NullPointerException; /** * H5Pget_btree_ratio Get the B-tree split ratios for a dataset transfer * property list. * * @param plist_id * IN Dataset transfer property list * @param left * OUT split ratio for leftmost nodes * @param right * OUT split ratio for righttmost nodes * @param middle * OUT split ratio for all other nodes * * @return non-negative if succeed * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - an input array is null. **/ public synchronized static native int H5Pget_btree_ratios(int plist_id, double[] left, double[] middle, double[] right) throws HDF5LibraryException, NullPointerException; /** * H5Pset_btree_ratio Sets B-tree split ratios for a dataset transfer * property list. The split ratios determine what percent of children go in * the first node when a node splits. * * @param plist_id * IN Dataset transfer property list * @param left * IN split ratio for leftmost nodes * @param right * IN split ratio for righttmost nodes * @param middle * IN split ratio for all other nodes * * @return non-negative if succeed * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_btree_ratios(int plist_id, double left, double middle, double right) throws HDF5LibraryException; /** * HH5Pget_buffer gets type conversion and background buffers. Returns * buffer size, in bytes, if successful; otherwise 0 on failure. * * @param plist * Identifier for the dataset transfer property list. * @param tconv * byte array of application-allocated type conversion buffer. * @param bkg * byte array of application-allocated background buffer. * * @return buffer size, in bytes, if successful; otherwise 0 on failure * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception IllegalArgumentException * - plist is invalid. **/ public synchronized static native int H5Pget_buffer(int plist, byte[] tconv, byte[] bkg) throws HDF5LibraryException, IllegalArgumentException; public synchronized static native long H5Pget_buffer_size(int plist) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pset_buffer sets type conversion and background buffers. status to TRUE * or FALSE. * * Given a dataset transfer property list, H5Pset_buffer sets the maximum * size for the type conversion buffer and background buffer and optionally * supplies pointers to application-allocated buffers. If the buffer size is * smaller than the entire amount of data being transferred between the * application and the file, and a type conversion buffer or background * buffer is required, then strip mining will be used. * * Note that there are minimum size requirements for the buffer. Strip * mining can only break the data up along the first dimension, so the * buffer must be large enough to accommodate a complete slice that * encompasses all of the remaining dimensions. For example, when strip * mining a 100x200x300 hyperslab of a simple data space, the buffer must be * large enough to hold 1x200x300 data elements. When strip mining a * 100x200x300x150 hyperslab of a simple data space, the buffer must be * large enough to hold 1x200x300x150 data elements. * * @param plist * Identifier for the dataset transfer property list. * @param size * Size, in bytes, of the type conversion and background buffers. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception IllegalArgumentException * - plist is invalid. **/ public synchronized static native void H5Pset_buffer_size(int plist, long size) throws HDF5LibraryException, IllegalArgumentException; /** * Retrieves the maximum possible number of elements in the meta data cache * and the maximum possible number of bytes and the RDCC_W0 value in the raw * data chunk cache. * * @param plist IN: Identifier of the file access property list. * @param mdc_nelmts IN/OUT: No longer used, will be ignored. * @param rdcc_nelmts IN/OUT: Number of elements (objects) in the raw data chunk cache. * @param rdcc_nbytes IN/OUT: Total size of the raw data chunk cache, in bytes. * @param rdcc_w0 IN/OUT: Preemption policy. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - an array is null. **/ public synchronized static native int H5Pget_cache(int plist, int[] mdc_nelmts, long[] rdcc_nelmts, long[] rdcc_nbytes, double[] rdcc_w0) throws HDF5LibraryException, NullPointerException; /** * @deprecated As of HDF5 1.8, replaced by {@link #H5Pget_cache(int, int[], long[], long[], double[]) } * because of possible loss of precision **/ @Deprecated public static int H5Pget_cache(int plist, int[] mdc_nelmts, int[] rdcc_nelmts, int[] rdcc_nbytes, double[] rdcc_w0) throws HDF5LibraryException, NullPointerException { long[] rdcc_nelmts_l = {rdcc_nelmts[0]}; long[] rdcc_nbytes_l = {rdcc_nbytes[0]}; int retval = H5Pget_cache(plist, mdc_nelmts, rdcc_nelmts_l, rdcc_nbytes_l, rdcc_w0); rdcc_nelmts[0] = (int)rdcc_nelmts_l[0]; rdcc_nbytes[0] = (int)rdcc_nbytes_l[0]; return retval; } /** * H5Pset_cache sets the number of elements (objects) in the meta data cache * and the total number of bytes in the raw data chunk cache. * * @param plist IN: Identifier of the file access property list. * @param mdc_nelmts IN: No longer used, will be ignored. * @param rdcc_nelmts IN: Number of elements (objects) in the raw data chunk cache. * @param rdcc_nbytes IN: Total size of the raw data chunk cache, in bytes. * @param rdcc_w0 IN: Preemption policy. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_cache(int plist, int mdc_nelmts, long rdcc_nelmts, long rdcc_nbytes, double rdcc_w0) throws HDF5LibraryException; public synchronized static native int H5Pget_char_encoding(int plist_id) throws HDF5LibraryException; public synchronized static native void H5Pset_char_encoding(int plist_id, int encoding) throws HDF5LibraryException; /** * H5Pget_chunk retrieves the size of chunks for the raw data of a chunked * layout dataset. * * @param plist * IN: Identifier of property list to query. * @param max_ndims * IN: Size of the dims array. * @param dims * OUT: Array to store the chunk dimensions. * * @return chunk dimensionality successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - dims array is null. * @exception IllegalArgumentException * - max_ndims <=0 **/ public synchronized static native int H5Pget_chunk(int plist, int max_ndims, long[] dims) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pset_chunk sets the size of the chunks used to store a chunked layout * dataset. * * @param plist * IN: Identifier for property list to query. * @param ndims * IN: The number of dimensions of each chunk. * @param dim * IN: An array containing the size of each chunk. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - dims array is null. * @exception IllegalArgumentException * - dims <=0 **/ public synchronized static native int H5Pset_chunk(int plist, int ndims, byte[] dim) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; public synchronized static int H5Pset_chunk(int plist, int ndims, long[] dim) throws HDF5Exception, NullPointerException, IllegalArgumentException { if (dim == null) { return -1; } HDFArray theArray = new HDFArray(dim); byte[] thedims = theArray.byteify(); int retVal = H5Pset_chunk(plist, ndims, thedims); thedims = null; theArray = null; return retVal; } /** * Retrieves the maximum possible number of elements in the meta data cache * and the maximum possible number of bytes and the RDCC_W0 value in the raw * data chunk cache on a per-datset basis. * * @param dapl_id IN: Identifier of the dataset access property list. * @param rdcc_nslots IN/OUT: Number of elements (objects) in the raw data chunk cache. * @param rdcc_nbytes IN/OUT: Total size of the raw data chunk cache, in bytes. * @param rdcc_w0 IN/OUT: Preemption policy. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - an array is null. **/ public synchronized static native void H5Pget_chunk_cache(int dapl_id, long[] rdcc_nslots, long[] rdcc_nbytes, double[] rdcc_w0) throws HDF5LibraryException, NullPointerException; /** * H5Pset_chunk_cache sets the number of elements (objects) in the meta data cache * and the total number of bytes in the raw data chunk cache on a per-datset basis. * * @param dapl_id IN: Identifier of the datset access property list. * @param rdcc_nslots IN: Number of elements (objects) in the raw data chunk cache. * @param rdcc_nbytes IN: Total size of the raw data chunk cache, in bytes. * @param rdcc_w0 IN: Preemption policy. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native void H5Pset_chunk_cache(int dapl_id, long rdcc_nslots, long rdcc_nbytes, double rdcc_w0) throws HDF5LibraryException; /** * H5Pget_class returns the property list class for the property list * identified by the plist parameter. * * @param plist * IN: Identifier of property list to query. * @return a property list class if successful. Otherwise returns * H5P_NO_CLASS (-1). * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pget_class(int plist) throws HDF5LibraryException; /** * H5Pget_class_name retrieves the name of a generic property list class * * @param plid * IN: Identifier of property object to query * @return name of a property list if successful; null if failed * @throws HDF5LibraryException */ public synchronized static native String H5Pget_class_name(int plid) throws HDF5LibraryException; /** * H5Pget_class_parent retrieves an identifier for the parent class of a * property class * * @param plid * IN: Identifier of the property class to query * @return a valid parent class object identifier if successful; a negative * value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pget_class_parent(int plid) throws HDF5LibraryException; /** * H5Pget_copy_object retrieves the properties to be used when an object is copied. * @param ocp_plist_id IN: Object copy property list identifier * * @return Copy option(s) set in the object copy property list * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_copy_object(int ocp_plist_id) throws HDF5LibraryException; /** * H5Pset_copy_object Sets properties to be used when an object is copied. * @param ocp_plist_id IN: Object copy property list identifier * @param copy_options IN: Copy option(s) to be set * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native void H5Pset_copy_object(int ocp_plist_id, int copy_options) throws HDF5LibraryException; /** * H5Pget_create_intermediate_group determines whether property is set to enable creating missing intermediate groups. * @param lcpl_id IN: Link creation property list identifier * * @return Boolean true or false * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native boolean H5Pget_create_intermediate_group(int lcpl_id) throws HDF5LibraryException; /** * H5Pset_create_intermediate_group specifies in property list whether to create missing intermediate groups * @param lcpl_id IN: Link creation property list identifier * @param crt_intermed_group IN: Flag specifying whether to create intermediate groups upon the creation of an object * * @return a non-negative valule if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_create_intermediate_group(int lcpl_id, boolean crt_intermed_group) throws HDF5LibraryException; /** * H5Pget_data_transform retrieves the data transform expression previously set in the dataset transfer property list plist_id by H5Pset_data_transform. * @param plist_id IN: Identifier of the property list or class * @param size IN: Number of bytes of the transform expression to copy to * @param expression OUT: A data transform expression * * @return The size of the transform expression if successful; 0(zero) if no transform expression exists. Otherwise returns a negative value. * * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Size is <= 0. * **/ public synchronized static native long H5Pget_data_transform( int plist_id, String[] expression, long size) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pset_data_transform sets a data transform expression * @param plist_id IN: Identifier of the property list or class * @param expression IN: Pointer to the null-terminated data transform expression * * @return a non-negative valule if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - expression is null. * **/ public synchronized static native int H5Pset_data_transform(int plist_id, String expression) throws HDF5LibraryException, NullPointerException; /** * H5Pget_driver returns the identifier of the low-level file driver * associated with the file access property list or data transfer * property list plid. * * @param plid * IN: File access or data transfer property list identifier. * @return a valid low-level driver identifier if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Pget_driver(int plid) throws HDF5LibraryException; public synchronized static native int H5Pget_edc_check(int plist) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_edc_check(int plist, int check) throws HDF5LibraryException, NullPointerException; /** * H5Pget_elink_acc_flags retrieves the external link traversal file access flag from the specified link access property list. * @param lapl_id IN: Link access property list identifier * * @return File access flag for link traversal. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_elink_acc_flags(int lapl_id) throws HDF5LibraryException; /** * H5Pset_elink_acc_flags Sets the external link traversal file access flag in a link access property list. * @param lapl_id IN: Link access property list identifier * @param flags IN: The access flag for external link traversal. * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid Flag values. * **/ public synchronized static native int H5Pset_elink_acc_flags(int lapl_id, int flags) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_elink_fapl Retrieves the file access property list identifier associated with * the link access property list. * * @param lapl_id IN: Link access property list identifier * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public static int H5Pget_elink_fapl(int lapl_id) throws HDF5LibraryException { int id = _H5Pget_elink_fapl(lapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Pget_elink_fapl(int lapl_id) throws HDF5LibraryException; /** * H5Pset_elink_fapl sets a file access property list for use in accessing a * file pointed to by an external link. * * @param lapl_id IN: Link access property list identifier * @param fapl_id IN: File access property list identifier * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_elink_fapl(int lapl_id, int fapl_id) throws HDF5LibraryException; /** * H5Pget_elink_file_cache_size retrieves the size of the external link open file cache. * @param fapl_id IN: File access property list identifier * * @return External link open file cache size in number of files. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_elink_file_cache_size(int fapl_id) throws HDF5LibraryException; /** * H5Pset_elink_file_cache_size sets the number of files that can be held open in an external link open file cache. * @param fapl_id IN: File access property list identifier * @param efc_size IN: External link open file cache size in number of files. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native void H5Pset_elink_file_cache_size(int fapl_id, int efc_size) throws HDF5LibraryException; /** * H5Pget_elink_prefix Retrieves prefix applied to external link paths. * @param lapl_id IN: Link access property list identifier * @param prefix OUT: Prefix applied to external link paths * * @return If successful, returns a non-negative value specifying the size in bytes of the prefix without the NULL terminator; * otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - prefix is null. * **/ public synchronized static native long H5Pget_elink_prefix(int lapl_id, String[] prefix) throws HDF5LibraryException, NullPointerException; /** * H5Pset_elink_prefix Sets prefix to be applied to external link paths. * @param lapl_id IN: Link access property list identifier * @param prefix IN: Prefix to be applied to external link paths * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - prefix is null. * **/ public synchronized static native int H5Pset_elink_prefix(int lapl_id, String prefix) throws HDF5LibraryException, NullPointerException; /** * H5Pget_est_link_info Queries data required to estimate required local heap or object header size. * @param gcpl_id IN: Group creation property list identifier * @param link_info * Estimated number of links to be inserted into group * And the estimated average length of link names * *
*      link_info[0] =  Estimated number of links to be inserted into group
*      link_info[1] =  Estimated average length of link names   
*      
* * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - link_info is null. * **/ public synchronized static native int H5Pget_est_link_info(int gcpl_id, int []link_info) throws HDF5LibraryException, NullPointerException; /** * H5Pset_est_link_info Sets estimated number of links and length of link names in a group. * @param gcpl_id IN: Group creation property list identifier * @param est_num_entries IN: Estimated number of links to be inserted into group * @param est_name_len IN: Estimated average length of link names * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid values to est_num_entries and est_name_len. * **/ public synchronized static native int H5Pset_est_link_info(int gcpl_id, int est_num_entries, int est_name_len) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_external returns information about an external file. * * @param plist * IN: Identifier of a dataset creation property list. * @param idx * IN: External file index. * @param name_size * IN: Maximum length of name array. * @param name * OUT: Name of the external file. * @param size * OUT: the offset value and the size of the external file data. * *
 *      size[0] = offset // a location to return an offset value
 *      size[1] = size // a location to return the size of
 *                // the external file data.
 * 
* * @return a non-negative value if successful * * @exception ArrayIndexOutOfBoundsException * Fatal error on Copyback * @exception ArrayStoreException * Fatal error on Copyback * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name or size is null. * @exception IllegalArgumentException * - name_size <= 0 . * **/ public synchronized static native int H5Pget_external(int plist, int idx, long name_size, String[] name, long[] size) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pset_external adds an external file to the list of external files. * * @param plist * IN: Identifier of a dataset creation property list. * @param name * IN: Name of an external file. * @param offset * IN: Offset, in bytes, from the beginning of the file to the * location in the file where the data starts. * @param size * IN: Number of bytes reserved in the file for the data. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - name is null. **/ public synchronized static native int H5Pset_external(int plist, String name, long offset, long size) throws HDF5LibraryException, NullPointerException; /** * H5Pget_external_count returns the number of external files for the * specified dataset. * * @param plist * IN: Identifier of a dataset creation property list. * * @return the number of external files if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pget_external_count(int plist) throws HDF5LibraryException; public synchronized static native long H5Pget_family_offset(int fapl_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_family_offset(int fapl_id, long offset) throws HDF5LibraryException, NullPointerException; public synchronized static native void H5Pget_fapl_core(int fapl_id, long[] increment, boolean[] backing_store) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fapl_core(int fapl_id, long increment, boolean backing_store) throws HDF5LibraryException, NullPointerException; /** * H5Pget_fapl_direct Retrieve direct I/O settings. * @param fapl_id IN: File access property list identifier * @param info OUT: Returned property list information * info[0] = alignment Required memory alignment boundary * info[1] = block_size File system block size * info[2] = cbuf_size Copy buffer size * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_fapl_direct(int fapl_id, long[]info) throws HDF5LibraryException; /** * H5Pset_fapl_direct Sets up use of the direct I/O driver. * @param fapl_id IN: File access property list identifier * @param alignment IN: Required memory alignment boundary * @param block_size IN: File system block size * @param cbuf_size IN: Copy buffer size * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_fapl_direct(int fapl_id, long alignment, long block_size, long cbuf_size) throws HDF5LibraryException; public synchronized static native int H5Pget_fapl_family(int fapl_id, long[] memb_size, int[] memb_fapl_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fapl_family(int fapl_id, long memb_size, int memb_fapl_id) throws HDF5LibraryException, NullPointerException; //herr_t H5Pget_fapl_mpio( int fapl_id, MPI_Comm *comm, MPI_Info *info ) //herr_t H5Pset_fapl_mpio( int fapl_id, MPI_Comm comm, MPI_Info info ) //herr_t H5Pget_fapl_mpiposix( int fapl_id, MPI_Comm *comm, hbool_t *use_gpfs_hints ) //herr_t H5Pset_fapl_mpiposix( int fapl_id, MPI_Comm comm, hbool_t use_gpfs_hints ) /** * H5Pget_fapl_multi Sets up use of the multi I/O driver. * @param fapl_id IN: File access property list identifier * @param memb_map IN: Maps memory usage types to other memory usage types. * @param memb_fapl IN: Property list for each memory usage type. * @param memb_name IN: Name generator for names of member files. * @param memb_addr IN: The offsets within the virtual address space, from 0 (zero) to HADDR_MAX, at which each type of data storage begins. * * @return a boolean value; Allows read-only access to incomplete file sets when TRUE. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - an array is null. * **/ public synchronized static native boolean H5Pget_fapl_multi(int fapl_id, int[] memb_map, int[] memb_fapl, String[] memb_name, long[] memb_addr) throws HDF5LibraryException, NullPointerException; /** * H5Pset_fapl_multi Sets up use of the multi I/O driver. * @param fapl_id IN: File access property list identifier * @param memb_map IN: Maps memory usage types to other memory usage types. * @param memb_fapl IN: Property list for each memory usage type. * @param memb_name IN: Name generator for names of member files. * @param memb_addr IN: The offsets within the virtual address space, from 0 (zero) to HADDR_MAX, at which each type of data storage begins. * @param relax IN: Allows read-only access to incomplete file sets when TRUE. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - an array is null. * **/ public synchronized static native void H5Pset_fapl_multi(int fapl_id, int[] memb_map, int[] memb_fapl, String[] memb_name, long[] memb_addr, boolean relax) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pget_fclose_degree(int plist_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fclose_degree(int plist, int degree) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pget_fill_time(int plist_id, int[] fill_time) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fill_time(int plist_id, int fill_time) throws HDF5LibraryException, NullPointerException; /** * H5Pget_fill_value queries the fill value property of a dataset creation * property list. * * @param plist_id * IN: Property list identifier. * @param type_id * IN: The datatype identifier of value. * @param value * IN: The fill value. * * @return a non-negative value if successful * **/ public synchronized static native int H5Pget_fill_value(int plist_id, int type_id, byte[] value) throws HDF5Exception; /** * H5Pget_fill_value queries the fill value property of a dataset creation * property list. * * @param plist_id * IN: Property list identifier. * @param type_id * IN: The datatype identifier of value. * @param obj * IN: The fill value. * * @return a non-negative value if successful * **/ public synchronized static int H5Pget_fill_value(int plist_id, int type_id, Object obj) throws HDF5Exception { HDFArray theArray = new HDFArray(obj); byte[] buf = theArray.emptyBytes(); int status = H5Pget_fill_value(plist_id, type_id, buf); if (status >= 0) { obj = theArray.arrayify(buf); } return status; } /** * H5Pset_fill_value sets the fill value for a dataset creation property * list. * * @param plist_id * IN: Property list identifier. * @param type_id * IN: The datatype identifier of value. * @param value * IN: The fill value. * * @return a non-negative value if successful * * @exception HDF5Exception * - Error converting data array **/ public synchronized static native int H5Pset_fill_value(int plist_id, int type_id, byte[] value) throws HDF5Exception; /** * H5Pset_fill_value sets the fill value for a dataset creation property * list. * * @param plist_id * IN: Property list identifier. * @param type_id * IN: The datatype identifier of value. * @param obj * IN: The fill value. * * @return a non-negative value if successful * * @exception HDF5Exception * - Error converting data array **/ public synchronized static int H5Pset_fill_value(int plist_id, int type_id, Object obj) throws HDF5Exception { HDFArray theArray = new HDFArray(obj); byte[] buf = theArray.byteify(); int retVal = H5Pset_fill_value(plist_id, type_id, buf); buf = null; theArray = null; return retVal; } /** * H5Pget_filter returns information about a filter, specified by its filter * number, in a filter pipeline, specified by the property list with which * it is associated. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Pget_filter(int, int, int[], long[], int[], long, String[], int[]) } * * @param plist * IN: Property list identifier. * @param filter_number * IN: Sequence number within the filter pipeline of the filter * for which information is sought. * @param flags * OUT: Bit vector specifying certain general properties of the * filter. * @param cd_nelmts * IN/OUT: Number of elements in cd_values * @param cd_values * OUT: Auxiliary data for the filter. * @param namelen * IN: Anticipated number of characters in name. * @param name * OUT: Name of the filter. * * @return the filter identification number if successful. Otherwise returns * H5Z_FILTER_ERROR (-1). * * @exception ArrayIndexOutOfBoundsException * Fatal error on Copyback * @exception ArrayStoreException * Fatal error on Copyback * @exception NullPointerException * - name or an array is null. * **/ @Deprecated public synchronized static native int H5Pget_filter(int plist, int filter_number, int[] flags, int[] cd_nelmts, int[] cd_values, int namelen, String[] name) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException; /** * H5Pget_filter returns information about a filter, specified by its filter * number, in a filter pipeline, specified by the property list with which * it is associated. * * @param plist IN: Property list identifier. * @param filter_number IN: Sequence number within the filter pipeline of the filter * for which information is sought. * @param flags OUT: Bit vector specifying certain general properties of the * filter. * @param cd_nelmts IN/OUT: Number of elements in cd_values * @param cd_values OUT: Auxiliary data for the filter. * @param namelen IN: Anticipated number of characters in name. * @param name OUT: Name of the filter. * @param filter_config OUT:A bit field encoding the returned filter information * * @return the filter identification number if successful. Otherwise returns * H5Z_FILTER_ERROR (-1). * * @exception ArrayIndexOutOfBoundsException * Fatal error on Copyback * @exception ArrayStoreException * Fatal error on Copyback * @exception NullPointerException * - name or an array is null. * **/ public static int H5Pget_filter(int plist, int filter_number, int[] flags, long[] cd_nelmts, int[] cd_values, long namelen, String[] name, int[] filter_config) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException { return H5Pget_filter2(plist, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_config); } /** * H5Pget_filter2 returns information about a filter, specified by its filter * number, in a filter pipeline, specified by the property list with which * it is associated. * * @see public static int H5Pget_filter(int plist, int filter_number, int[] flags, * int[] cd_nelmts, int[] cd_values, int namelen, String[] name, int[] filter_config) * **/ private synchronized static native int H5Pget_filter2(int plist, int filter_number, int[] flags, long[] cd_nelmts, int[] cd_values, long namelen, String[] name, int[] filter_config) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException; /** * H5Pset_filter adds the specified filter and corresponding properties to * the end of an output filter pipeline. * * @param plist * IN: Property list identifier. * @param filter * IN: Filter to be added to the pipeline. * @param flags * IN: Bit vector specifying certain general properties of the * filter. * @param cd_nelmts * IN: Number of elements in cd_values * @param cd_values * IN: Auxiliary data for the filter. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_filter(int plist, int filter, int flags, long cd_nelmts, int[] cd_values) throws HDF5LibraryException; /** * H5Pget_filter_by_id returns information about the filter specified in filter_id, a * filter identifier. plist_id must be a dataset or group creation property list and * filter_id must be in the associated filter pipeline. The filter_id and flags parameters * are used in the same manner as described in the discussion of H5Pset_filter. Aside from * the fact that they are used for output, the parameters cd_nelmts and cd_values[] are * used in the same manner as described in the discussion of H5Pset_filter. On input, the * cd_nelmts parameter indicates the number of entries in the cd_values[] array allocated * by the calling program; on exit it contains the number of values defined by the filter. * On input, the namelen parameter indicates the number of characters allocated for the * filter name by the calling program in the array name[]. On exit name[] contains the name * of the filter with one character of the name in each element of the array. If the filter * specified in filter_id is not set for the property list, an error will be returned and * H5Pget_filter_by_id1 will fail. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Pget_filter_by_id(int, int, int[], long[], int[], long, String[], int[]) } * * @param plist_id IN: Property list identifier. * @param filter_id IN: Filter identifier. * @param flags OUT: Bit vector specifying certain general properties of the * filter. * @param cd_nelmts IN/OUT: Number of elements in cd_values * @param cd_values OUT: Auxiliary data for the filter. * @param namelen IN: Anticipated number of characters in name. * @param name OUT: Name of the filter. * * @return the filter identification number if successful. Otherwise returns * H5Z_FILTER_ERROR (-1). * * @exception ArrayIndexOutOfBoundsException * Fatal error on Copyback * @exception ArrayStoreException * Fatal error on Copyback * @exception NullPointerException * - name or an array is null. * **/ @Deprecated public synchronized static native int H5Pget_filter_by_id(int plist_id, int filter_id, int[] flags, long[] cd_nelmts, int[] cd_values, long namelen, String[] name) throws HDF5LibraryException, NullPointerException; /** * H5Pget_filter_by_id returns information about the filter specified in filter_id, a * filter identifier. plist_id must be a dataset or group creation property list and * filter_id must be in the associated filter pipeline. The filter_id and flags parameters * are used in the same manner as described in the discussion of H5Pset_filter. Aside from * the fact that they are used for output, the parameters cd_nelmts and cd_values[] are * used in the same manner as described in the discussion of H5Pset_filter. On input, the * cd_nelmts parameter indicates the number of entries in the cd_values[] array allocated * by the calling program; on exit it contains the number of values defined by the filter. * On input, the namelen parameter indicates the number of characters allocated for the * filter name by the calling program in the array name[]. On exit name[] contains the name * of the filter with one character of the name in each element of the array. If the filter * specified in filter_id is not set for the property list, an error will be returned and * H5Pget_filter_by_id1 will fail. * * @param plist_id IN: Property list identifier. * @param filter_id IN: Filter identifier. * @param flags OUT: Bit vector specifying certain general properties of the * filter. * @param cd_nelmts N/OUT: Number of elements in cd_values * @param cd_values OUT: Auxiliary data for the filter. * @param namelen IN: Anticipated number of characters in name. * @param name OUT: Name of the filter. * @param filter_config OUT: A bit field encoding the returned filter information * * @return the filter identification number if successful. Otherwise returns * H5Z_FILTER_ERROR (-1). * * @exception ArrayIndexOutOfBoundsException * Fatal error on Copyback * @exception ArrayStoreException * Fatal error on Copyback * @exception NullPointerException * - name or an array is null. * **/ public static int H5Pget_filter_by_id(int plist_id, int filter_id, int[] flags, long[] cd_nelmts, int[] cd_values, long namelen, String[] name, int[] filter_config) throws ArrayIndexOutOfBoundsException, ArrayStoreException, HDF5LibraryException, NullPointerException { return H5Pget_filter_by_id2(plist_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, filter_config); } /** * H5Pget_filter_by_id2 returns information about a filter, specified by its filter * id, in a filter pipeline, specified by the property list with which * it is associated. * * @see #H5Pget_filter_by_id **/ public synchronized static native int H5Pget_filter_by_id2(int plist_id, int filter_id, int[] flags, long[] cd_nelmts, int[] cd_values, long namelen, String[] name, int[] filter_config) throws HDF5LibraryException, NullPointerException; /** * H5Pget_gc_references Returns the current setting for the garbage * collection refernces property from a file access property list. *

* Note: this routine changed name with HDF5.1.2.2. If using an earlier * version, use 'configure --enable-hdf5_1_2_1' so this routine will link to * the old name. * * @param fapl_id * IN File access property list * @param gc_ref * OUT GC is on (true) or off (false) * * @return non-negative if succeed * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - array is null. **/ public synchronized static native int H5Pget_gc_references(int fapl_id, boolean[] gc_ref) throws HDF5LibraryException, NullPointerException; public synchronized static native boolean H5Pget_gcreferences(int fapl_id) throws HDF5LibraryException; /* * Earlier versions of the HDF5 library had a different name. This is * included as an alias. */ public synchronized static int H5Pget_gc_reference(int fapl_id, boolean[] gc_ref) throws HDF5LibraryException, NullPointerException { return H5Pget_gc_references(fapl_id, gc_ref); } /** * H5Pset_gc_references Sets the flag for garbage collecting references for * the file. Default value for garbage collecting references is off. * * @param fapl_id * IN File access property list * @param gc_ref * IN set GC on (true) or off (false) * * @return non-negative if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_gc_references(int fapl_id, boolean gc_ref) throws HDF5LibraryException; public synchronized static native int H5Pget_hyper_vector_size(int dxpl_id, long[] vector_size) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_hyper_vector_size(int dxpl_id, long vector_size) throws HDF5LibraryException, NullPointerException; /** * H5Pget_istore_k queries the 1/2 rank of an indexed storage B-tree. * * @param plist * IN: Identifier of property list to query. * @param ik * OUT: Pointer to location to return the chunked storage B-tree * 1/2 rank. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - ik array is null. **/ public synchronized static native int H5Pget_istore_k(int plist, int[] ik) throws HDF5LibraryException, NullPointerException; /** * H5Pset_istore_k sets the size of the parameter used to control the * B-trees for indexing chunked datasets. * * @param plist * IN: Identifier of property list to query. * @param ik * IN: 1/2 rank of chunked storage B-tree. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_istore_k(int plist, int ik) throws HDF5LibraryException; /** * H5Pget_layout returns the layout of the raw data for a dataset. * * @param plist * IN: Identifier for property list to query. * * @return the layout type of a dataset creation property list if * successful. Otherwise returns H5D_LAYOUT_ERROR (-1). * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pget_layout(int plist) throws HDF5LibraryException; /** * H5Pset_layout sets the type of storage used store the raw data for a * dataset. * * @param plist * IN: Identifier of property list to query. * @param layout * IN: Type of storage layout for raw data. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_layout(int plist, int layout) throws HDF5LibraryException; /** * H5Pget_libver_bounds retrieves the lower and upper bounds on the HDF5 Library versions that indirectly determine the object formats versions used when creating objects in the file. * @param fapl_id IN: File access property list identifier * @param libver * The earliest/latest version of the library that will be used for writing objects. * *

*      libver[0] =  The earliest version of the library that will be used for writing objects
*      libver[1] =  The latest version of the library that will be used for writing objects.
*      
* * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size is null. * **/ public synchronized static native int H5Pget_libver_bounds(int fapl_id, int []libver) throws HDF5LibraryException, NullPointerException; /** * H5Pset_libver_bounds Sets bounds on library versions, and indirectly format versions, to be used when creating objects * @param fapl_id IN: File access property list identifier * @param low IN: The earliest version of the library that will be used for writing objects * @param high IN: The latest version of the library that will be used for writing objects. * * * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Argument is Illegal * **/ public synchronized static native int H5Pset_libver_bounds(int fapl_id, int low, int high) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_link_creation_order queries the group creation property list, gcpl_id, and returns a flag indicating whether link creation order is tracked and/or indexed in a group. * @param gcpl_id IN: Group creation property list identifier * * @return crt_order_flags -Creation order flag(s) * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_link_creation_order(int gcpl_id) throws HDF5LibraryException; /** * H5Pset_link_creation_order Sets flags in a group creation property list, gcpl_id, for tracking and/or indexing links on creation order. * @param gcpl_id IN: Group creation property list identifier * @param crt_order_flags IN: Creation order flag(s) * * * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_link_creation_order(int gcpl_id, int crt_order_flags) throws HDF5LibraryException; /** * H5Pget_link_phase_change Queries the settings for conversion between compact and dense groups. * @param gcpl_id IN: Group creation property list identifier * @param links * The max. no. of compact links & the min. no. of dense * links, which are used for storing groups * *
*      links[0] =  The maximum number of links for compact storage
*      links[1] =  The minimum number of links for dense storage
*      
* * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size is null. * **/ public synchronized static native int H5Pget_link_phase_change(int gcpl_id, int []links) throws HDF5LibraryException, NullPointerException; /** * H5Pset_link_phase_change Sets the parameters for conversion between compact and dense groups. * @param gcpl_id IN: Group creation property list identifier * @param max_compact IN: Maximum number of links for compact storage(Default: 8) * @param min_dense IN: Minimum number of links for dense storage(Default: 6) * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid values of max_compact and min_dense. * **/ public synchronized static native int H5Pset_link_phase_change(int gcpl_id, int max_compact, int min_dense) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_local_heap_size_hint Retrieves the anticipated size of the local heap for original-style groups. * @param gcpl_id IN: Group creation property list identifier * * @return size_hint, the anticipated size of local heap * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native long H5Pget_local_heap_size_hint(int gcpl_id) throws HDF5LibraryException; /** * H5Pset_local_heap_size_hint Specifies the anticipated maximum size of a local heap. * @param gcpl_id IN: Group creation property list identifier * @param size_hint IN: Anticipated maximum size in bytes of local heap * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_local_heap_size_hint(int gcpl_id, long size_hint) throws HDF5LibraryException; /** * H5Pget_mdc_config gets the initial metadata cache configuration contained in a * file access property list and loads it into the instance of H5AC_cache_config_t * pointed to by the config_ptr parameter. This configuration is used when the file is opened. * * @param plist_id IN: Identifier of the file access property list. * * @return A buffer(H5AC_cache_config_t) for the current metadata cache configuration information * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native H5AC_cache_config_t H5Pget_mdc_config(int plist_id) throws HDF5LibraryException; public synchronized static native void H5Pset_mdc_config(int plist_id, H5AC_cache_config_t config_ptr) throws HDF5LibraryException; /** * H5Pget_meta_block_size the current metadata block size setting. * @param fapl_id IN: File access property list identifier * * @return the minimum size, in bytes, of metadata block allocations. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native long H5Pget_meta_block_size(int fapl_id) throws HDF5LibraryException; /** * H5Pset_meta_block_size sets the minimum metadata block size. * @param fapl_id IN: File access property list identifier * @param size IN: Minimum size, in bytes, of metadata block allocations. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native void H5Pset_meta_block_size(int fapl_id, long size) throws HDF5LibraryException; /** * H5Pget_nfilters returns the number of filters defined in the filter * pipeline associated with the property list plist. * * @param plist * IN: Property list identifier. * * @return the number of filters in the pipeline if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pget_nfilters(int plist) throws HDF5LibraryException; /** * H5Pget_nlinks retrieves the maximum number of soft or user-defined link traversals allowed, nlinks, before the library assumes it has found a cycle and aborts the traversal. This value is retrieved from the link access property list lapl_id. * @param lapl_id IN: File access property list identifier * * @return Returns a Maximum number of links to traverse. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native long H5Pget_nlinks(int lapl_id) throws HDF5LibraryException; /** * H5Pset_nlinks sets the maximum number of soft or user-defined link traversals allowed, nlinks, before the library assumes it has found a cycle and aborts the traversal. This value is set in the link access property list lapl_id. * @param lapl_id IN: File access property list identifier * @param nlinks IN: Maximum number of links to traverse * * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Argument is Illegal * **/ public synchronized static native int H5Pset_nlinks(int lapl_id, long nlinks) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_nprops retrieves the number of properties in a property list or * class * * @param plid * IN: Identifier of property object to query * @return number of properties if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native long H5Pget_nprops(int plid) throws HDF5LibraryException; /** * H5Pget_preserve checks the status of the dataset transfer property list. * * @deprecated As of HDF5 1.8, compound datatype field preservation is now core functionality in the HDF5 Library. * * @param plist * IN: Identifier for the dataset transfer property list. * * @return TRUE or FALSE if successful; otherwise returns a negative value * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ @Deprecated public synchronized static native int H5Pget_preserve(int plist) throws HDF5LibraryException; /** * H5Pset_preserve sets the dataset transfer property list status to TRUE or * FALSE. * * @deprecated As of HDF5 1.8, compound datatype field preservation is now core functionality in the HDF5 Library. * * @param plist * IN: Identifier for the dataset transfer property list. * @param status * IN: Status of for the dataset transfer property list. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception IllegalArgumentException * - plist is invalid. **/ @Deprecated public synchronized static native int H5Pset_preserve(int plist, boolean status) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_obj_track_times queries the object creation property list, ocpl_id, * to determine whether object times are being recorded. * * @param ocpl_id IN: Object creation property list identifier * * @return TRUE or FALSE, specifying whether object times are being recorded * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native boolean H5Pget_obj_track_times(int ocpl_id) throws HDF5LibraryException; /** * H5Pset_obj_track_times sets a property in the object creation property list, ocpl_id, * that governs the recording of times associated with an object. * * @param ocpl_id IN: Object creation property list identifier * * @param track_times IN: TRUE or FALSE, specifying whether object times are to be tracked * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native void H5Pset_obj_track_times(int ocpl_id, boolean track_times) throws HDF5LibraryException; /** * H5Pget_shared_mesg_index Retrieves the configuration settings for a shared message index. * @param fcpl_id IN: File creation property list identifier * @param index_num IN: Index being configured. * @param mesg_info * The message type and minimum message size * *
*      mesg_info[0] =  Types of messages that may be stored in this index.
*      mesg_info[1] =  Minimum message size.  
*      
* * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - mesg_info is null. * @exception IllegalArgumentException - Invalid value of nindexes * **/ public synchronized static native int H5Pget_shared_mesg_index(int fcpl_id, int index_num, int[] mesg_info) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pset_shared_mesg_index Configures the specified shared object header message index * @param fcpl_id IN: File creation property list identifier. * @param index_num IN: Index being configured. * @param mesg_type_flags IN: Types of messages that should be stored in this index. * @param min_mesg_size IN: Minimum message size. * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid value of nindexes * **/ public synchronized static native int H5Pset_shared_mesg_index(int fcpl_id, int index_num, int mesg_type_flags, int min_mesg_size) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_shared_mesg_nindexes retrieves number of shared object header message indexes in file creation property list. * @param fcpl_id IN: : File creation property list identifier * * @return nindexes, the number of shared object header message indexes available in files created with this property list * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pget_shared_mesg_nindexes(int fcpl_id) throws HDF5LibraryException; /** * H5Pset_shared_mesg_nindexes sets the number of shared object header message indexes in the specified file creation property list. * @param plist_id IN: File creation property list * @param nindexes IN: Number of shared object header message indexes to be available in files created with this property list * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid value of nindexes * **/ public synchronized static native int H5Pset_shared_mesg_nindexes(int plist_id, int nindexes) throws HDF5LibraryException, IllegalArgumentException; /** * H5Pget_shared_mesg_phase_change retrieves shared object header message phase change information. * @param fcpl_id IN: : File creation property list identifier * @param size * The threshold values for storage of shared object header * message indexes in a file. * *
*      size[0] =  Threshold above which storage of a shared object header message index shifts from list to B-tree 
*      size[1] =  Threshold below which storage of a shared object header message index reverts to list format  
*      
* * @return Returns a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size is null. * **/ public synchronized static native int H5Pget_shared_mesg_phase_change(int fcpl_id, int[] size) throws HDF5LibraryException, NullPointerException; /** * H5Pset_shared_mesg_phase_change sets shared object header message storage phase change thresholds. * @param fcpl_id IN: File creation property list identifier * @param max_list IN: Threshold above which storage of a shared object header message index shifts from list to B-tree * @param min_btree IN: Threshold below which storage of a shared object header message index reverts to list format * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid values of max_list and min_btree. * **/ public synchronized static native int H5Pset_shared_mesg_phase_change(int fcpl_id, int max_list, int min_btree) throws HDF5LibraryException, IllegalArgumentException; public synchronized static native long H5Pget_sieve_buf_size(int fapl_id) throws HDF5LibraryException; public synchronized static native void H5Pset_sieve_buf_size(int fapl_id, long size) throws HDF5LibraryException; /** * H5Pget_size retrieves the size of a property's value in bytes * * @param plid * IN: Identifier of property object to query * @param name * IN: Name of property to query * @return size of a property's value if successful; a negative value if * failed * @throws HDF5LibraryException */ public synchronized static native long H5Pget_size(int plid, String name) throws HDF5LibraryException; /** * H5Pget_sizes retrieves the size of the offsets and lengths used in an * HDF5 file. This function is only valid for file creation property lists. * * @param plist * IN: Identifier of property list to query. * @param size * OUT: the size of the offsets and length. * *
 *      size[0] = sizeof_addr // offset size in bytes
 *      size[1] = sizeof_size // length size in bytes
 * 
* @return a non-negative value with the sizes initialized; if successful; * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - size is null. * @exception IllegalArgumentException * - size is invalid. **/ public synchronized static native int H5Pget_sizes(int plist, long[] size) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pset_sizes sets the byte size of the offsets and lengths used to * address objects in an HDF5 file. * * @param plist * IN: Identifier of property list to modify. * @param sizeof_addr * IN: Size of an object offset in bytes. * @param sizeof_size * IN: Size of an object length in bytes. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_sizes(int plist, int sizeof_addr, int sizeof_size) throws HDF5LibraryException; /** * H5Pget_small_data_block_size retrieves the size of a block of small data * in a file creation property list. * * @param plist * IN: Identifier for property list to query. * @param size * OUT: Pointer to location to return block size. * * @return a non-negative value and the size of the user block; if * successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - size is null. **/ public synchronized static native int H5Pget_small_data_block_size( int plist, long[] size) throws HDF5LibraryException, NullPointerException; public synchronized static native long H5Pget_small_data_block_size_long( int plist) throws HDF5LibraryException; /** * H5Pset_small_data_block_size reserves blocks of size bytes for the * contiguous storage of the raw data portion of small datasets. * * @param plist * IN: Identifier of property list to modify. * @param size * IN: Size of the blocks in bytes. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_small_data_block_size( int plist, long size) throws HDF5LibraryException; /** * H5Pget_sym_k retrieves the size of the symbol table B-tree 1/2 rank and * the symbol table leaf node 1/2 size. * * @param plist * IN: Property list to query. * @param size * OUT: the symbol table's B-tree 1/2 rank and leaf node 1/2size. * *
 *      size[0] = ik // the symbol table's B-tree 1/2 rank
 *      size[1] = lk // leaf node 1/2 size
 * 
* * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - size is null. * @exception IllegalArgumentException * - size is invalid. **/ public synchronized static native int H5Pget_sym_k(int plist, int[] size) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pset_sym_k sets the size of parameters used to control the symbol table * nodes. * * @param plist * IN: Identifier for property list to query. * @param ik * IN: Symbol table tree rank. * @param lk * IN: Symbol table node size. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_sym_k(int plist, int ik, int lk) throws HDF5LibraryException; /** * H5Pget_userblock retrieves the size of a user block in a file creation * property list. * * @param plist * IN: Identifier for property list to query. * @param size * OUT: Pointer to location to return user-block size. * * @return a non-negative value and the size of the user block; if * successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - size is null. **/ public synchronized static native int H5Pget_userblock(int plist, long[] size) throws HDF5LibraryException, NullPointerException; /** * H5Pset_userblock sets the user block size of a file creation property * list. * * @param plist * IN: Identifier of property list to modify. * @param size * IN: Size of the user-block in bytes. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_userblock(int plist, long size) throws HDF5LibraryException; /** * H5Pget_version retrieves the version information of various objects for a * file creation property list. * * @param plist * IN: Identifier of the file creation property list. * @param version_info * OUT: version information. * *
 *      version_info[0] = boot  // boot block version number
 *      version_info[1] = freelist  // global freelist version
 *      version_info[2] = stab  // symbol tabl version number
 *      version_info[3] = shhdr  // hared object header version
 * 
* @return a non-negative value, with the values of version_info * initialized, if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - version_info is null. * @exception IllegalArgumentException * - version_info is illegal. **/ public synchronized static native int H5Pget_version(int plist, int[] version_info) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Pisa_class checks to determine whether a property list is a member of * the specified class * * @param plist * IN: Identifier of the property list * @param pclass * IN: Identifier of the property class * @return a positive value if equal; zero if unequal; a negative value if * failed * @throws HDF5LibraryException */ public synchronized static native int H5Pisa_class(int plist, int pclass) throws HDF5LibraryException; public synchronized static native int H5Pmodify_filter(int plist, int filter, int flags, long cd_nelmts, int[] cd_values) throws HDF5LibraryException, NullPointerException; /** * H5Punregister removes a property from a property list class * * @param plid * IN: Property list class from which to remove permanent * property * @param name * IN: Name of property to remove * @return a non-negative value if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Punregister(int plid, String name) throws HDF5LibraryException; /** * H5Premove removes a property from a property list * * @param plid * IN: Identifier of the property list to modify * @param name * IN: Name of property to remove * @return a non-negative value if successful; a negative value if failed * @throws HDF5LibraryException */ public synchronized static native int H5Premove(int plid, String name) throws HDF5LibraryException; public synchronized static native int H5Premove_filter(int obj_id, int filter) throws HDF5LibraryException; /** * H5Pset_deflate sets the compression method for a dataset. * * @param plist * IN: Identifier for the dataset creation property list. * @param level * IN: Compression level. * * @return non-negative if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Pset_deflate(int plist, int level) throws HDF5LibraryException; /** * H5Pset_fapl_log Sets up the logging virtual file driver (H5FD_LOG) for use. * H5Pset_fapl_log modifies the file access property list to use the logging driver, H5FD_LOG. * The logging virtual file driver (VFD) is a clone of the standard SEC2 (H5FD_SEC2) driver * with additional facilities for logging VFD metrics and activity to a file. * * @deprecated As of HDF5 1.8.7, replaced by {@link #H5Pset_fapl_log(int, String, long, long)} * * @param fapl_id IN: File access property list identifier. * @param logfile IN: logfile is the name of the file in which the logging entries are to be recorded. * @param flags IN: Flags specifying the types of logging activity. * @param buf_size IN: The size of the logging buffers, in bytes. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - logfile is null. **/ @Deprecated public static int H5Pset_fapl_log(int fapl_id, String logfile, int flags, int buf_size) throws HDF5LibraryException, NullPointerException { H5Pset_fapl_log(fapl_id, logfile, (long)flags, (long)buf_size); return 1; } /** * H5Pset_fapl_log Sets up the logging virtual file driver (H5FD_LOG) for use. * H5Pset_fapl_log modifies the file access property list to use the logging driver, H5FD_LOG. * The logging virtual file driver (VFD) is a clone of the standard SEC2 (H5FD_SEC2) driver * with additional facilities for logging VFD metrics and activity to a file. * * @param fapl_id IN: File access property list identifier. * @param logfile IN: logfile is the name of the file in which the logging entries are to be recorded. * @param flags IN: Flags specifying the types of logging activity. * @param buf_size IN: The size of the logging buffers, in bytes. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - logfile is null. **/ public synchronized static native void H5Pset_fapl_log(int fapl_id, String logfile, long flags, long buf_size) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fapl_sec2(int fapl_id) throws HDF5LibraryException, NullPointerException; public synchronized static native void H5Pset_fapl_split(int fapl_id, String meta_ext, int meta_plist_id, String raw_ext, int raw_plist_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fapl_stdio(int fapl_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fapl_windows(int fapl_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_fletcher32(int plist) throws HDF5LibraryException, NullPointerException; /** * H5Pset_nbit Sets up the use of the N-Bit filter. * @param plist_id IN: Dataset creation property list identifier. * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * **/ public synchronized static native int H5Pset_nbit(int plist_id) throws HDF5LibraryException; /** * H5Pset_scaleoffset sets the Scale-Offset filter for a dataset. * @param plist_id IN: Dataset creation property list identifier. * @param scale_type IN: Flag indicating compression method. * @param scale_factor IN: Parameter related to scale. * * @return a non-negative value if successful; otherwise returns a negative value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception IllegalArgumentException - Invalid arguments * **/ public synchronized static native int H5Pset_scaleoffset(int plist_id, int scale_type, int scale_factor) throws HDF5LibraryException, IllegalArgumentException; public synchronized static native int H5Pset_shuffle(int plist_id) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Pset_szip(int plist, int options_mask, int pixels_per_block) throws HDF5LibraryException, NullPointerException; ///////// unimplemented //////// //herr_t H5Padd_merge_committed_dtype_path(hid_t plist_id, const char *path); //hid_t H5Pcreate_class( hid_t parent_class, const char *name, H5P_cls_create_func_t create, void *create_data, H5P_cls_copy_func_t copy, void *copy_data, H5P_cls_close_func_t close, void *close_data ) //herr_t H5Pfree_merge_committed_dtype_paths(hid_t plist_id); //void *H5Pget_driver_info( hid_t plist_id ) //herr_t H5Pget_elink_cb( hid_t lapl_id, H5L_elink_traverse_t *func, void **op_data ) //herr_t H5Pset_elink_cb( hid_t lapl_id, H5L_elink_traverse_t func, void *op_data ) //herr_t H5Pget_file_image(hid_t fapl_id, void **buf_ptr_ptr, size_t *buf_len_ptr); //herr_t H5Pset_file_image(hid_t fapl_id, void *buf_ptr, size_t buf_len); //herr_t H5Pget_file_image_callbacks(hid_t fapl_id, // H5FD_file_image_callbacks_t *callbacks_ptr); //herr_t H5Pset_file_image_callbacks(hid_t fapl_id, // H5FD_file_image_callbacks_t *callbacks_ptr); //herr_t H5Pget_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t *func, void **op_data); //herr_t H5Pset_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t func, void *op_data); //herr_t H5Pget_multi_type ( hid_t fapl_id, H5FD_mem_t *type ) //herr_t H5Pset_multi_type ( hid_t fapl_id, H5FD_mem_t type ) //herr_t H5Pget_type_conv_cb(hid_t plist, H5T_conv_except_func_t *func, void **op_data) //herr_t H5Pset_type_conv_cb( hid_t plist, H5T_conv_except_func_t func, void *op_data) //herr_t H5Pget_vlen_mem_manager(hid_t plist, H5MM_allocate_t *alloc, void **alloc_info, H5MM_free_t *free, void **free_info ) //herr_t H5Pset_vlen_mem_manager(hid_t plist, H5MM_allocate_t alloc, void *alloc_info, H5MM_free_t free, void *free_info ) //herr_t H5Pinsert( hid_t plid, const char *name, size_t size, void *value, H5P_prp_set_func_t set, H5P_prp_get_func_t get, H5P_prp_delete_func_t delete, H5P_prp_copy_func_t copy, H5P_prp_compare_func_t compare, H5P_prp_close_func_t close )] //herr_t H5Pinsert2( hid_t plid, const char *name, size_t size, void *value, H5P_prp_set_func_t set, H5P_prp_get_func_t get, H5P_prp_delete_func_t delete, H5P_prp_copy_func_t copy, H5P_prp_compare_func_t compare, H5P_prp_close_func_t close ) //int H5Piterate( hid_t id, int * idx, H5P_iterate_t iter_func, void * iter_data ) //herr_t H5Pregister( hid_t class, const char * name, size_t size, void * default, H5P_prp_create_func_t create, H5P_prp_set_func_t set, H5P_prp_get_func_t get, H5P_prp_delete_func_t delete, H5P_prp_copy_func_t copy, H5P_prp_compare_func_t compare, H5P_prp_close_func_t close ) //herr_t H5Pregister2( hid_t class, const char * name, size_t size, void * default, H5P_prp_create_func_t create, H5P_prp_set_func_t set, H5P_prp_get_func_t get, H5P_prp_delete_func_t delete, H5P_prp_copy_func_t copy, H5P_prp_compare_func_t compare, H5P_prp_close_func_t close ) //herr_t H5Pset_attr_phase_change( hid_t ocpl_id, unsigned max_compact, unsigned min_dense ) //herr_t H5Pset_buffer(hid_t plist_id, size_t size, void *tconv, void *bkg); //herr_t H5Pset_driver( hid_t plist_id, hid_t new_driver_id, const void *new_driver_info ) //herr_t H5Pset_filter_callback(hid_t plist, H5Z_filter_func_t func, void *op_data) //herr_t H5Pget_dxpl_mpio( hid_t dxpl_id, H5FD_mpio_xfer_t *xfer_mode ) //herr_t H5Pset_dxpl_mpio( hid_t dxpl_id, H5FD_mpio_xfer_t xfer_mode ) //herr_t H5Pset_dxpl_mpio_chunk_opt (hid_t dxpl_id, H5FD_mpio_chunk_opt_t opt_mode) //herr_t H5Pset_dxpl_mpio_chunk_opt_num (hid_t dxpl_id, unsigned num_chunk_per_proc) //herr_t H5Pset_dxpl_mpio_chunk_opt_ratio (hid_t dxpl_id, unsigned percent_proc_per_chunk) //herr_t H5Pset_dxpl_mpio_collective_opt (hid_t dxpl_id, H5FD_mpio_collective_opt_t opt_mode) ////////////////////////////////////////////////////////////// //// //H5R: HDF5 1.8 Reference API Functions // //// ////////////////////////////////////////////////////////////// private synchronized static native int H5Rcreate(byte[] ref, int loc_id, String name, int ref_type, int space_id) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Rcreate creates the reference, ref, of the type specified in ref_type, * pointing to the object name located at loc_id. * * @param loc_id * IN: Location identifier used to locate the object being * pointed to. * @param name * IN: Name of object at location loc_id. * @param ref_type * IN: Type of reference. * @param space_id * IN: Dataspace identifier with selection. * * @return the reference (byte[]) if successful * * @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 byte[] H5Rcreate(int loc_id, String name, int ref_type, int space_id) throws HDF5LibraryException, NullPointerException, IllegalArgumentException { /* These sizes are correct for HDF5.1.2 */ int ref_size = 8; if (ref_type == HDF5Constants.H5R_DATASET_REGION) { ref_size = 12; } byte rbuf[] = new byte[ref_size]; /* will raise an exception if fails */ H5Rcreate(rbuf, loc_id, name, ref_type, space_id); return rbuf; } /** * Given a reference to some object, H5Rdereference opens that object and * return an identifier. * * @param dataset * IN: Dataset containing reference object. * @param ref_type * IN: The reference type of ref. * @param ref * IN: reference to an object * * @return valid identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - output array is null. * @exception IllegalArgumentException * - output array is invalid. **/ public static int H5Rdereference(int dataset, int ref_type, byte[] ref) throws HDF5LibraryException, NullPointerException, IllegalArgumentException { int id = _H5Rdereference(dataset, ref_type, ref); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Rdereference(int dataset, int ref_type, byte[] ref) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Rget_name retrieves a name for the object identified by ref. * @param loc_id IN: Identifier for the dataset containing the reference or for the group that dataset is in. * @param ref_type IN: Type of reference. * @param ref IN: An object or dataset region reference. * @param name OUT: A name associated with the referenced object or dataset region. * @param size IN: The size of the name buffer. * * @return Returns the length of the name if successful, returning 0 (zero) if no name is associated with the identifier. Otherwise returns a negative value. * * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - size is null. * @exception IllegalArgumentException - Argument is illegal. * **/ public synchronized static native long H5Rget_name( int loc_id, int ref_type, byte[] ref, String[] name, long size) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /* * [NOTE: This function is only supported in HDF5 Releases 1.4.x. It has * been replaced in Release 1.6 by the function H5Rget_obj_type public * synchronized static native int H5Rget_object_type(int loc_id, byte ref[]) * throws HDF5LibraryException, NullPointerException, * IllegalArgumentException; */ /** * Given a reference to an object ref, H5Rget_obj_type returns the type of * the object pointed to. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Rget_obj_type(int, int, byte[], int[]) } * * @param loc_id * IN: loc_id of the reference object. * @param ref_type * IN: Type of reference to query. * * @param ref * IN: the reference * * @return a valid object type if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - array is null. * @exception IllegalArgumentException * - array is invalid. **/ @Deprecated public synchronized static native int H5Rget_obj_type(int loc_id, int ref_type, byte ref[]) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Rget_obj_type Given a reference to an object ref, H5Rget_obj_type returns the type of * the object pointed to. * * @param loc_id IN: loc_id of the reference object. * @param ref_type IN: Type of reference to query. * @param ref IN: the reference * @param obj_type OUT:Type of referenced object * * @return Returns the object type, which is the same as obj_type[0]. The return value is * the same as the HDF5 1.6 version. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - array is null. * @exception IllegalArgumentException * - array is invalid. **/ public static int H5Rget_obj_type(int loc_id, int ref_type, byte ref[], int [] obj_type) throws HDF5LibraryException, NullPointerException, IllegalArgumentException { return H5Rget_obj_type2(loc_id, ref_type, ref, obj_type); } /** * H5Rget_obj_type2 Retrieves the type of object that an object reference points to. * * @see public static int H5Rget_obj_type(int loc_id, int ref_type, byte ref[], int [] obj_type) **/ private synchronized static native int H5Rget_obj_type2(int loc_id, int ref_type, byte ref[], int [] obj_type) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * Given a reference to an object ref, H5Rget_region creates a copy of the * dataspace of the dataset pointed to and defines a selection in the copy * which is the region pointed to. * * @param loc_id * IN: loc_id of the reference object. * @param ref_type * IN: The reference type of ref. * @param ref * OUT: the reference to the object and region * * @return a valid identifier if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - output array is null. * @exception IllegalArgumentException * - output array is invalid. **/ public static int H5Rget_region(int loc_id, int ref_type, byte[] ref) throws HDF5LibraryException, NullPointerException, IllegalArgumentException { int id = _H5Rget_region(loc_id, ref_type, ref); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Rget_region(int loc_id, int ref_type, byte[] ref) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; ////////////////////////////////////////////////////////////// // // //H5S: Dataspace Interface Functions // // // ////////////////////////////////////////////////////////////// /** * 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(int space_id) throws HDF5LibraryException { if (space_id < 0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(space_id); return _H5Sclose(space_id); } private synchronized static native int _H5Sclose(int 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 int H5Scopy(int space_id) throws HDF5LibraryException { int id = _H5Scopy(space_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Scopy(int space_id) throws HDF5LibraryException; /** * H5Screate creates a new dataspace of a particular type. * * @param type IN: The type of dataspace to be created. * @return a dataspace identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Screate(int type) throws HDF5LibraryException { int id = _H5Screate(type); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Screate(int type) throws HDF5LibraryException; /** * H5Screate_simple creates a new simple data space and opens * it for access. * * @param rank IN: Number of dimensions of dataspace. * @param dims IN: An array of the size of each dimension. * @param maxdims IN: An array of the maximum size of each dimension. * * @return a dataspace identifier * * @exception HDF5Exception - Error from the HDF-5 Library. * @exception NullPointerException - dims or maxdims is null. **/ public static int H5Screate_simple(int rank, long[] dims, long[] maxdims) throws HDF5Exception, NullPointerException { int id = _H5Screate_simple(rank, dims, maxdims); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Screate_simple(int rank, long[] dims, long[] maxdims) throws HDF5Exception, NullPointerException; /** * @deprecated use H5Screate_simple(int rank, long[] dims, long[] maxdims) **/ @Deprecated public static int H5Screate_simple(int rank, byte[] dims, byte[] maxdims) throws HDF5Exception, NullPointerException { ByteBuffer dimsbb = ByteBuffer.wrap(dims); long[] ladims = (dimsbb.asLongBuffer()).array(); ByteBuffer maxdimsbb = ByteBuffer.wrap(maxdims); long[] lamaxdims = (maxdimsbb.asLongBuffer()).array(); int id = _H5Screate_simple(rank, ladims, lamaxdims); if (id > 0) OPEN_IDS.addElement(id); return id; } /** * H5Sdecode reconstructs the HDF5 data space object and returns a * new object handle for it. * * @param buf IN: Buffer for the data space object to be decoded. * * @return a new object handle * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native int H5Sdecode(byte[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Sencode converts a data space description into binary form in a buffer. * * @param obj_id IN: Identifier of the object to be encoded. * * @return the buffer for the object to be encoded into. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native byte[] H5Sencode(int 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. * * @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 int H5Sextent_copy(int dest_space_id, int source_space_id) throws HDF5LibraryException; /** * H5Sextent_equal determines whether the dataspace extents of two dataspaces, * space1_id and space2_id, are equal. * * @param first_space_id * IN: The identifier for the first dataspace. * @param second_space_id * IN: The identifier for the seconddataspace. * * @return true if successful, else false * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Sextent_equal(int first_space_id, int second_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. * * @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. * * @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_select_bounds(int spaceid, long[] start, long[] end) throws HDF5LibraryException, NullPointerException; /** * 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( int 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( int spaceid, long startpoint, long numpoints, long[] buf) throws HDF5LibraryException, NullPointerException; /** * 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.
 * 
* * @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 int H5Sget_select_hyper_blocklist( int spaceid, long startblock, long numblocks, long[] buf) throws HDF5LibraryException, NullPointerException; /** * 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( int spaceid) throws HDF5LibraryException; /** * 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 * * @return the number of elements in the selection if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Sget_select_npoints(int space_id) throws HDF5LibraryException; /** * H5Sget_select_type retrieves the type of selection currently defined for the dataspace space_id. * * @param space_id IN: Identifier of the dataspace object to query * * @return the dataspace selection type if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Sget_select_type(int 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. * * @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 * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - dims or maxdims is null. **/ public synchronized static native int H5Sget_simple_extent_dims( int space_id, long[] dims, long[] maxdims) throws HDF5LibraryException, NullPointerException; /** * 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 int H5Sget_simple_extent_ndims( int space_id) throws HDF5LibraryException; /** * H5Sget_simple_extent_npoints determines the number of elements in a * dataspace. * * @param space_id * ID of the dataspace object to query * @return the number of elements in the dataspace if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native long H5Sget_simple_extent_npoints( int space_id) throws HDF5LibraryException; /** * H5Sget_simple_extent_type queries a dataspace to determine the current * class of a dataspace. * * @param space_id * Dataspace identifier. * * @return a dataspace class name if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Sget_simple_extent_type(int space_id) throws HDF5LibraryException; /** * H5Sis_simple determines whether a dataspace is a simple dataspace. * * @param space_id * Identifier of the dataspace to query * * @return true if is a simple dataspace * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Sis_simple(int space_id) throws HDF5LibraryException; /** * H5Soffset_simple sets the offset of a simple dataspace space_id. * * @param space_id * IN: The identifier for the dataspace object to reset. * @param offset * IN: The offset at which to position the selection. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - offset array is null. **/ public synchronized static native int H5Soffset_simple(int space_id, byte[] offset) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Soffset_simple(int space_id, long[] offset) throws HDF5Exception, NullPointerException { if (offset == null) { return -1; } HDFArray theArray = new HDFArray(offset); byte[] theArr = theArray.byteify(); int retVal = H5Soffset_simple(space_id, theArr); theArr = null; theArray = null; return retVal; } /** * H5Sselect_all selects the entire extent of the dataspace space_id. * * @param space_id * IN: The identifier of the dataspace to be selected. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Sselect_all(int space_id) throws HDF5LibraryException; /** * H5Sselect_elements selects array elements to be included in the selection * for the space_id dataspace. * * @param space_id * Identifier of the dataspace. * @param op * operator specifying how the new selection is combined. * @param num_elements * Number of elements to be selected. * @param coord * A 2-dimensional array specifying the coordinates of the * elements. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ private synchronized static native int H5Sselect_elements(int space_id, int op, int num_elements, byte[] coord) throws HDF5LibraryException, NullPointerException; /** * H5Sselect_elements selects array elements to be included in the selection * for the space_id dataspace. * * @param space_id * Identifier of the dataspace. * @param op * operator specifying how the new selection is combined. * @param num_elements * Number of elements to be selected. * @param coord2D * A 2-dimensional array specifying the coordinates of the * elements. * * @return a non-negative value if successful * * @exception HDF5Exception * - Error in the data conversion * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - cord array is **/ public synchronized static int H5Sselect_elements(int space_id, int op, int num_elements, long[][] coord2D) throws HDF5Exception, HDF5LibraryException, NullPointerException { if (coord2D == null) { return -1; } HDFArray theArray = new HDFArray(coord2D); byte[] coord = theArray.byteify(); int retVal = H5Sselect_elements(space_id, op, num_elements, coord); coord = null; theArray = null; return retVal; } ///** //* 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. //* //* @param space_id IN: Identifier of dataspace selection to modify //* @param op IN: Operation to perform on current selection. //* @param start IN: Offset of start of hyperslab //* @param count IN: Number of blocks included in hyperslab. //* @param stride IN: Hyperslab stride. //* @param block IN: Size of block in hyperslab. //* //* @return none //* //* @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 void H5Sselect_hyperslab(int space_id, H5S_SELECT_OPER op, // long start[], long _stride[], long count[], long _block[]) // throws HDF5LibraryException, NullPointerException, IllegalArgumentException; //public synchronized static native int H5Scombine_hyperslab(int space_id, H5S_SELECT_OPER op, // const long start[], const long _stride[], // const long count[], const long _block[]) // throws HDF5LibraryException, NullPointerException; //public synchronized static native int H5Sselect_select(int space1_id, H5S_SELECT_OPER op, // int space2_id) // throws HDF5LibraryException, NullPointerException; //public synchronized static native int H5Scombine_select(int space1_id, H5S_SELECT_OPER op, // int space2_id) // 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. * * @param space_id * IN: Identifier of dataspace selection to modify * @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 a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. * @exception NullPointerException * - an input array is null. * @exception NullPointerException * - an input array is invalid. **/ public synchronized static int H5Sselect_hyperslab(int space_id, int op, byte[] start, byte[] stride, byte[] count, byte[] block) throws HDF5LibraryException, NullPointerException, IllegalArgumentException { ByteBuffer startbb = ByteBuffer.wrap(start); long[] lastart = (startbb.asLongBuffer()).array(); ByteBuffer stridebb = ByteBuffer.wrap(stride); long[] lastride = (stridebb.asLongBuffer()).array(); ByteBuffer countbb = ByteBuffer.wrap(count); long[] lacount = (countbb.asLongBuffer()).array(); ByteBuffer blockbb = ByteBuffer.wrap(block); long[] lablock = (blockbb.asLongBuffer()).array(); return H5Sselect_hyperslab(space_id, op, lastart, lastride, lacount, lablock); } public synchronized static native int H5Sselect_hyperslab(int 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(int space_id) throws HDF5LibraryException; /** * H5Sselect_valid verifies that the selection for the dataspace. * * @param space_id * The identifier for the dataspace in which the selection is * being reset. * * @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 boolean H5Sselect_valid(int space_id) throws HDF5LibraryException; /** * 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. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Sset_extent_none(int space_id) throws HDF5LibraryException; /** * 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 native int H5Sset_extent_simple(int space_id, int rank, long[] current_size, long[] maximum_size) throws HDF5LibraryException, NullPointerException; public synchronized static int H5Sset_extent_simple(int 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); } ////////////////////////////////////////////////////////////// //// //H5T: Datatype Interface Functions // //// ////////////////////////////////////////////////////////////// /** * H5Tarray_create creates a new array datatype object. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Tarray_create(int, int, long[])} * * @param base IN: Datatype identifier for the array base datatype. * @param rank IN: Rank of the array. * @param dims IN: Size of each array dimension. * @param perms IN: Dimension permutation. (Currently not implemented.) * * @return a valid datatype identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - dims is null. **/ @Deprecated public static int H5Tarray_create(int base, int rank, int[] dims, int[] perms) throws HDF5LibraryException, NullPointerException { int id = _H5Tarray_create(base, rank, dims, perms); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tarray_create(int base, int rank, int[] dims, int[] perms) throws HDF5LibraryException, NullPointerException; /** * H5Tarray_create creates a new array datatype object. * * @param base_id IN: Datatype identifier for the array base datatype. * @param ndims IN: Rank of the array. * @param dim IN: Size of each array dimension. * * @return a valid datatype identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - dim is null. **/ public static int H5Tarray_create(int base_id, int ndims, long[] dim) throws HDF5LibraryException, NullPointerException { int id = _H5Tarray_create2(base_id, ndims, dim); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tarray_create2(int base_id, int ndims, long[] dim) throws HDF5LibraryException, NullPointerException; /** * H5Tclose releases a datatype. * * @param type_id IN: Identifier of datatype to release. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tclose(int type_id) throws HDF5LibraryException { if (type_id < 0) return 0; // throw new HDF5LibraryException("Negative ID");; OPEN_IDS.removeElement(type_id); return _H5Tclose(type_id); } private synchronized static native int _H5Tclose(int type_id) throws HDF5LibraryException; /** * H5Tcommit commits a transient datatype (not immutable) to a file, turned * it into a named datatype. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Tcommit(int, String, int, int, int, int)} * * @param loc_id IN: Location identifier. * @param name IN: Name given to committed datatype. * @param type_id IN: Identifier of datatype to be committed. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ @Deprecated public static int H5Tcommit(int loc_id, String name, int type_id) throws HDF5LibraryException, NullPointerException { return H5Tcommit1(loc_id, name, type_id); } @Deprecated public synchronized static native int H5Tcommit1(int loc_id, String name, int type) throws HDF5LibraryException, NullPointerException; /** * H5Tcommit saves a transient datatype as an immutable named datatype in a file. * * @param loc_id IN: Location identifier. * @param name IN: Name given to committed datatype. * @param type_id IN: Identifier of datatype to be committed. * @param lcpl_id IN: Link creation property list. * @param tcpl_id IN: Datatype creation property list. * @param tapl_id IN: Datatype access property list. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Tcommit(int loc_id, String name, int type_id, int lcpl_id, int tcpl_id, int tapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Tcommit_anon commits a transient datatype (not immutable) to a file, * turning it into a named datatype with the specified creation and property lists. * * @param loc_id IN: Location identifier. * @param type_id IN: Identifier of datatype to be committed. * @param tcpl_id IN: Datatype creation property list. * @param tapl_id IN: Datatype access property list. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tcommit_anon(int loc_id, int type_id, int tcpl_id, int tapl_id) throws HDF5LibraryException; /** * H5Tcommitted queries a type to determine whether the type specified by * the type identifier is a named type or a transient type. * * @param type_id IN: Identifier of datatype. * * @return true the datatype has been committed * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Tcommitted(int type_id) throws HDF5LibraryException; /** * H5Tcompiler_conv finds out whether the library's conversion function from * type src_id to type dst_id is a compiler (hard) conversion. * * @param src_id IN: Identifier of source datatype. * @param dst_id IN: Identifier of destination datatype. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tcompiler_conv(int src_id, int dst_id) throws HDF5LibraryException; /** ** H5Tconvert converts nelmts elements from the type specified by the src_id identifier to type dst_id. * * @param src_id IN: Identifier of source datatype. * @param dst_id IN: Identifier of destination datatype. * @param nelmts IN: Size of array buf. * @param buf IN: Array containing pre- and post-conversion values. * @param background IN: Optional background buffer. * @param plist_id IN: Dataset transfer property list identifier. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native void H5Tconvert(int src_id, int dst_id, long nelmts, byte[] buf, byte[] background, int plist_id) throws HDF5LibraryException, NullPointerException; // int H5Tconvert(int src_id, int dst_id, long nelmts, Pointer buf, Pointer background, int plist_id); /** * H5Tcopy copies an existing datatype. The returned type is * always transient and unlocked. * * @param type_id IN: Identifier of datatype to copy. Can be a datatype * identifier, a predefined datatype (defined in * H5Tpublic.h), or a dataset Identifier. * * @return a datatype identifier if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tcopy(int type_id) throws HDF5LibraryException { int id = _H5Tcopy(type_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tcopy(int type_id) throws HDF5LibraryException; /** * H5Tcreate creates a new dataype of the specified class with the specified * number of bytes. * * @param dclass IN: Class of datatype to create. * @param size IN: The number of bytes in the datatype to create. * * @return datatype identifier if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tcreate(int dclass, int size) throws HDF5LibraryException { return H5Tcreate(dclass, (long)size); } /** * H5Tcreate creates a new dataype of the specified class with * the specified number of bytes. * * @param tclass IN: Class of datatype to create. * @param size IN: The number of bytes in the datatype to create. * * @return datatype identifier * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tcreate(int tclass, long size) throws HDF5LibraryException { int id = _H5Tcreate(tclass, size); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tcreate(int type, long size) throws HDF5LibraryException; /** * H5Tdecode reconstructs the HDF5 data type object and * returns a new object handle for it. * * @param buf IN: Buffer for the data type object to be decoded. * * @return a new object handle * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native int H5Tdecode(byte[] buf) throws HDF5LibraryException, NullPointerException; /** * H5Tdetect_class determines whether the datatype specified in dtype_id contains * any datatypes of the datatype class specified in dtype_class. * * @param type_id IN: Identifier of datatype to query. * @param cls IN: Identifier of datatype cls. * * @return true if the datatype specified in dtype_id contains any datatypes of the datatype class * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Tdetect_class(int type_id, int cls) throws HDF5LibraryException; /** * H5Tencode converts a data type description into binary form in a buffer. * * @param obj_id IN: Identifier of the object to be encoded. * @param buf OUT: Buffer for the object to be encoded into. * If the provided buffer is NULL, only the * size of buffer needed is returned. * @param nalloc IN: The size of the allocated buffer. * * @return the size needed for the allocated buffer. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - buf is null. **/ public synchronized static native int H5Tencode(int obj_id, byte[] buf, long nalloc) throws HDF5LibraryException, NullPointerException; ///** // * H5Tencode converts a data type description into binary form in a buffer. // * // * @param obj_id IN: Identifier of the object to be encoded. // * // * @return the buffer for the object to be encoded into. // * // * @exception HDF5LibraryException - Error from the HDF-5 Library. // **/ //public synchronized static native byte[] H5Tencode(int obj_id) //throws HDF5LibraryException; /** * H5Tenum_create creates a new enumeration datatype based on the specified * base datatype, parent_id, which must be an integer type. * * @param base_id IN: Identifier of the parent datatype to release. * * @return the datatype identifier for the new enumeration datatype * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tenum_create(int base_id) throws HDF5LibraryException { int id = _H5Tenum_create(base_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tenum_create(int base_id) throws HDF5LibraryException; /** * H5Tenum_insert inserts a new enumeration datatype member * into an enumeration datatype. * * @param type IN: Identifier of datatype. * @param name IN: The name of the member * @param value IN: The value of the member, data of the correct type * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native void H5Tenum_insert(int type, String name, byte[] value) throws HDF5LibraryException, NullPointerException; /** * H5Tenum_insert inserts a new enumeration datatype member into an * enumeration datatype. * * @param type IN: Identifier of datatype. * @param name IN: The name of the member * @param value IN: The value of the member, data of the correct type * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Tenum_insert(int type, String name, int[] value) throws HDF5LibraryException, NullPointerException { return H5Tenum_insert_int(type, name, value); } public static int H5Tenum_insert(int type, String name, int value) throws HDF5LibraryException, NullPointerException { int[] val = { value }; return H5Tenum_insert_int(type, name, val); } private synchronized static native int H5Tenum_insert_int(int type, String name, int[] value) throws HDF5LibraryException, NullPointerException; /** * H5Tenum_nameof finds the symbol name that corresponds * to the specified value of the enumeration datatype type. * * @param type IN: Identifier of datatype. * @param value IN: The value of the member, data of the correct * @param size IN: The probable length of the name * * @return the symbol name. * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - value is null. **/ public synchronized static native String H5Tenum_nameof(int type, byte[] value, long size) throws HDF5LibraryException, NullPointerException; //int H5Tenum_nameof(int type, Pointer value, Buffer name/* out */, long size); /** * H5Tenum_nameof finds the symbol name that corresponds to the specified * value of the enumeration datatype type. * * @param type IN: Identifier of datatype. * @param value IN: The value of the member, data of the correct * @param name OUT: The name of the member * @param size IN: The max length of the name * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Tenum_nameof(int type, int[] value, String[] name, int size) throws HDF5LibraryException, NullPointerException { return H5Tenum_nameof_int(type, value, name, size); } private synchronized static native int H5Tenum_nameof_int(int type, int[] value, String[] name, int size) throws HDF5LibraryException, NullPointerException; /** * H5Tenum_valueof finds the value that corresponds to * the specified name of the enumeration datatype type. * * @param type IN: Identifier of datatype. * @param name IN: The name of the member * @param value OUT: The value of the member * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tenum_valueof(int type, String name, byte[] value) throws HDF5LibraryException, NullPointerException; /** * H5Tenum_valueof finds the value that corresponds to the specified name of * the enumeration datatype type. * * @param type IN: Identifier of datatype. * @param name IN: The name of the member * @param value OUT: The value of the member * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Tenum_valueof(int type, String name, int[] value) throws HDF5LibraryException, NullPointerException { return H5Tenum_valueof_int(type, name, value); } private synchronized static native int H5Tenum_valueof_int(int type, String name, int[] value) throws HDF5LibraryException, NullPointerException; /** * H5Tequal determines whether two datatype identifiers refer * to the same datatype. * * @param type_id1 IN: Identifier of datatype to compare. * @param type_id2 IN: Identifier of datatype to compare. * * @return true if the datatype identifiers refer to the * same datatype, else false. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Tequal(int type_id1, int type_id2) throws HDF5LibraryException; /** * H5Tget_array_dims returns the sizes of the dimensions of the specified array datatype object. * * @deprecated As of HDF5 1.8 * * @param type_id IN: Datatype identifier of array object. * @param dims OUT: Sizes of array dimensions. * @param perm OUT: Dimension permutations. (This parameter is not used.) * * @return the non-negative number of dimensions of the array type * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - dims is null. **/ @Deprecated public synchronized static native int H5Tget_array_dims(int type_id, int[] dims, int[] perm) throws HDF5LibraryException, NullPointerException; /** * H5Tget_array_dims returns the sizes of the dimensions of the specified array datatype object. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Tget_array_dims(int, long[])} * * @param type_id IN: Datatype identifier of array object. * @param dims OUT: Sizes of array dimensions. * @param perm OUT: Dimension permutation. (Currently not implemented.) * * @return the non-negative number of dimensions of the array type * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ @Deprecated public static int H5Tget_array_dims(int type_id, long[] dims, int[] perm) throws HDF5LibraryException, NullPointerException { return H5Tget_array_dims1(type_id, dims, perm); } /** * H5Tget_array_dims1 returns the sizes of the dimensions of the specified array datatype object. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Tget_array_dims2(int, long[])} * * @see public static int H5Tget_array_dims(int type_id, long[] dims, int[] perm) **/ @Deprecated private synchronized static native int H5Tget_array_dims1(int type_id, long[] dims, int[] perm) throws HDF5LibraryException, NullPointerException; /** * H5Tget_array_dims returns the sizes of the dimensions of the specified array datatype object. * * @param type_id IN: Datatype identifier of array object. * @param dims OUT: Sizes of array dimensions. * * @return the non-negative number of dimensions of the array type * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - dims is null. **/ public static int H5Tget_array_dims(int type_id, long[] dims) throws HDF5LibraryException, NullPointerException { return H5Tget_array_dims2(type_id, dims); } /** * H5Tget_array_dims2 returns the sizes of the dimensions of the specified array datatype object. * * @see #H5Tget_array_dims **/ public synchronized static native int H5Tget_array_dims2(int type_id, long[] dims) throws HDF5LibraryException, NullPointerException; /** * H5Tget_array_ndims returns the rank, the number of dimensions, of an array datatype object. * * @param type_id IN: Datatype identifier of array object. * * @return the rank of the array * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_array_ndims(int type_id) throws HDF5LibraryException; /** * H5Tget_class returns the datatype class identifier. * * @param type_id IN: Identifier of datatype to query. * * @return datatype class identifier if successful; otherwise H5T_NO_CLASS(-1). * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_class(int type_id) throws HDF5LibraryException; /** * H5Tget_class_name returns the datatype class identifier. * * @param class_id IN: Identifier of class from H5Tget_class. * * @return class name if successful; otherwise H5T_NO_CLASS. * **/ public static String H5Tget_class_name(int class_id) { String retValue = null; if(HDF5Constants.H5T_INTEGER==class_id) /*integer types */ retValue = "H5T_INTEGER"; else if(HDF5Constants.H5T_FLOAT==class_id) /*floating-point types */ retValue = "H5T_FLOAT"; else if(HDF5Constants.H5T_TIME==class_id) /*date and time types */ retValue = "H5T_TIME"; else if(HDF5Constants.H5T_STRING==class_id) /*character string types */ retValue = "H5T_STRING"; else if(HDF5Constants.H5T_BITFIELD==class_id) /*bit field types */ retValue = "H5T_BITFIELD"; else if(HDF5Constants.H5T_OPAQUE==class_id) /*opaque types */ retValue = "H5T_OPAQUE"; else if(HDF5Constants.H5T_COMPOUND==class_id) /*compound types */ retValue = "H5T_COMPOUND"; else if(HDF5Constants.H5T_REFERENCE==class_id)/*reference types */ retValue = "H5T_REFERENCE"; else if(HDF5Constants.H5T_ENUM==class_id) /*enumeration types */ retValue = "H5T_ENUM"; else if(HDF5Constants.H5T_VLEN==class_id) /*Variable-Length types */ retValue = "H5T_VLEN"; else if(HDF5Constants.H5T_ARRAY==class_id) /*Array types */ retValue = "H5T_ARRAY"; else retValue = "H5T_NO_CLASS"; return retValue; } /** * H5Tget_create_plist returns a property list identifier for the datatype * creation property list associated with the datatype specified by type_id. * * @param type_id IN: Identifier of datatype. * * @return a datatype property list identifier. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_create_plist(int type_id) throws HDF5LibraryException; /** * H5Tget_cset retrieves the character set type of a string datatype. * * @param type_id IN: Identifier of datatype to query. * * @return a valid character set type if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_cset(int type_id) throws HDF5LibraryException; /** * H5Tset_cset the character set to be used. * * @param type_id IN: Identifier of datatype to modify. * @param cset IN: Character set type. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_cset(int type_id, int cset) throws HDF5LibraryException; /** * H5Tget_ebias retrieves the exponent bias of a floating-point type. * * @param type_id * Identifier of datatype to query. * * @return the bias if successful; otherwise 0. * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_ebias(int type_id) throws HDF5LibraryException; /** * H5Tset_ebias sets the exponent bias of a floating-point type. * * @param type_id * Identifier of datatype to set. * @param ebias * Exponent bias value. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Tset_ebias(int type_id, int ebias) throws HDF5LibraryException { H5Tset_ebias(type_id, (long)ebias); return 0; } /** * H5Tget_ebias retrieves the exponent bias of a * floating-point type. * * @param type_id IN: Identifier of datatype to query. * * @return the bias * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Tget_ebias_long(int type_id) throws HDF5LibraryException; /** * H5Tset_ebias sets the exponent bias of a floating-point type. * * @param type_id IN: Identifier of datatype to set. * @param ebias IN: Exponent bias value. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tset_ebias(int type_id, long ebias) throws HDF5LibraryException; /** * H5Tget_fields retrieves information about the locations of * the various bit fields of a floating point datatype. * * @param type_id IN: Identifier of datatype to query. * @param fields OUT: location of size and bit-position. * * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - fields is null. * @exception IllegalArgumentException - fields array is invalid. **/ public synchronized static native void H5Tget_fields(int type_id, long[] fields) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Tget_fields retrieves information about the locations of the various * bit fields of a floating point datatype. * * @param type_id IN: Identifier of datatype to query. * @param fields OUT: location of size and bit-position. * *
 *      fields[0] = spos  OUT: location to return size of in bits.
 *      fields[1] = epos  OUT: location to return exponent bit-position.
 *      fields[2] = esize OUT: location to return size of exponent in bits.
 *      fields[3] = mpos  OUT: location to return mantissa bit-position.
 *      fields[4] = msize OUT: location to return size of mantissa in bits.
 * 
* * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - fields is null. * @exception IllegalArgumentException - fields array is invalid. **/ public static int H5Tget_fields(int type_id, int[] fields) throws HDF5LibraryException, NullPointerException, IllegalArgumentException { return H5Tget_fields_int(type_id, fields); } private synchronized static native int H5Tget_fields_int(int type_id, int[] fields) throws HDF5LibraryException, NullPointerException, IllegalArgumentException; /** * H5Tset_fields sets the locations and sizes of the various * floating point bit fields. * * @param type_id IN: Identifier of datatype to set. * @param spos IN: Size position. * @param epos IN: Exponent bit position. * @param esize IN: Size of exponent in bits. * @param mpos IN: Mantissa bit position. * @param msize IN: Size of mantissa in bits. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tset_fields(int type_id, long spos, long epos, long esize, long mpos, long msize) throws HDF5LibraryException; /** * H5Tset_fields sets the locations and sizes of the various floating point * bit fields. * * @param type_id * Identifier of datatype to set. * @param spos * Size position. * @param epos * Exponent bit position. * @param esize * Size of exponent in bits. * @param mpos * Mantissa bit position. * @param msize * Size of mantissa in bits. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Tset_fields(int type_id, int spos, int epos, int esize, int mpos, int msize) throws HDF5LibraryException { H5Tset_fields(type_id, (long)spos, (long)epos, (long)esize, (long)mpos, (long)msize); return 0; } /** * H5Tget_inpad retrieves the internal padding type for unused bits in * floating-point datatypes. * * @param type_id IN: Identifier of datatype to query. * * @return a valid padding type if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_inpad(int type_id) throws HDF5LibraryException; /** * If any internal bits of a floating point type are unused (that is, those * significant bits which are not part of the sign, exponent, or mantissa), * then H5Tset_inpad will be filled according to the value of the padding * value property inpad. * * @param type_id IN: Identifier of datatype to modify. * @param inpad IN: Padding type. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_inpad(int type_id, int inpad) throws HDF5LibraryException; /** * H5Tget_member_class returns the datatype of the specified member. * * @param type_id IN: Datatype identifier of compound object. * @param membno IN: Compound object member number. * * @return the identifier of a copy of the datatype of the field if successful; * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_member_class(int type_id, int membno) throws HDF5LibraryException; /** * H5Tget_member_index retrieves the index of a field of a compound * datatype. * * @param type_id IN: Identifier of datatype to query. * @param field_name IN: Field name of the field index to retrieve. * * @return if field is defined, the index; else negative. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_member_index(int type_id, String field_name); /** * H5Tget_member_name retrieves the name of a field of a compound datatype or * an element of an enumeration datatype. * * @param type_id IN: Identifier of datatype to query. * @param field_idx IN: Field index (0-based) of the field name to retrieve. * * @return a valid pointer to the name if successful; otherwise null. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native String H5Tget_member_name(int type_id, int field_idx); /** * H5Tget_member_offset returns the byte offset of the specified member of * the compound datatype. This is the byte offset in the HDF-5 file/library, * NOT the offset of any Java object which might be mapped to this data * item. * * @param type_id IN: Identifier of datatype to query. * @param membno IN: Field index (0-based) of the field type to retrieve. * * @return the offset of the member. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Tget_member_offset(int type_id, int membno) throws HDF5LibraryException; /** * H5Tget_member_type returns the datatype of the specified member. * * @param type_id IN: Identifier of datatype to query. * @param field_idx IN: Field index (0-based) of the field type to retrieve. * * @return the identifier of a copy of the datatype of the field if * successful; * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tget_member_type(int type_id, int field_idx) throws HDF5LibraryException { int id = _H5Tget_member_type(type_id, field_idx); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tget_member_type(int type_id, int field_idx) throws HDF5LibraryException; /** * H5Tget_member_value returns the value of the enumeration datatype member memb_no. * * @param type_id IN: Datatype identifier for the enumeration datatype. * @param membno IN: Number of the enumeration datatype member. * @param value OUT: The value of the member * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - value is null. **/ public synchronized static native void H5Tget_member_value(int type_id, int membno, byte[] value) throws HDF5LibraryException, NullPointerException; /** * H5Tget_member_value returns the value of the enumeration datatype member * memb_no. * * @param type_id IN: Identifier of datatype. * @param membno IN: The name of the member * @param value OUT: The value of the member * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - value is null. **/ public static int H5Tget_member_value(int type_id, int membno, int[] value) throws HDF5LibraryException, NullPointerException { return H5Tget_member_value_int(type_id, membno, value); } private synchronized static native int H5Tget_member_value_int(int type_id, int membno, int[] value) throws HDF5LibraryException, NullPointerException; /** * H5Tget_native_type returns the equivalent native datatype for the datatype specified in type_id. * * @param type_id IN: Identifier of datatype to query. * Direction of search is assumed to be in ascending order. * * @return the native datatype identifier for the specified dataset datatype. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static int H5Tget_native_type(int type_id) throws HDF5LibraryException { return H5Tget_native_type(type_id, HDF5Constants.H5T_DIR_ASCEND); } /** * H5Tget_native_type returns the equivalent native datatype for the datatype specified in type_id. * * @param type_id IN: Identifier of datatype to query. * @param direction IN: Direction of search. * * @return the native datatype identifier for the specified dataset datatype. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tget_native_type(int type_id, int direction) throws HDF5LibraryException { int id = _H5Tget_native_type(type_id, direction); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tget_native_type(int tid, int direction) throws HDF5LibraryException; /** * H5Tget_nmembers retrieves the number of fields a compound datatype has. * * @param type_id IN: Identifier of datatype to query. * * @return number of members datatype has if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_nmembers(int type_id) throws HDF5LibraryException; /** * H5Tget_norm retrieves the mantissa normalization of a floating-point * datatype. * * @param type_id IN: Identifier of datatype to query. * * @return a valid normalization type if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_norm(int type_id) throws HDF5LibraryException; /** * H5Tset_norm sets the mantissa normalization of a floating-point datatype. * * @param type_id IN: Identifier of datatype to set. * @param norm IN: Mantissa normalization type. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_norm(int type_id, int norm) throws HDF5LibraryException; /** * H5Tget_offset retrieves the bit offset of the first significant bit. * * @param type_id IN: Identifier of datatype to query. * * @return a positive offset value if successful; otherwise 0. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_offset(int type_id) throws HDF5LibraryException; /** * H5Tset_offset sets the bit offset of the first significant bit. * * @param type_id * Identifier of datatype to set. * @param offset * Offset of first significant bit. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Tset_offset(int type_id, int offset) throws HDF5LibraryException { H5Tset_offset(type_id, (long)offset); return 0; } /** * H5Tset_offset sets the bit offset of the first significant bit. * * @param type_id IN: Identifier of datatype to set. * @param offset IN: Offset of first significant bit. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tset_offset(int type_id, long offset) throws HDF5LibraryException; /** * H5Tget_order returns the byte order of an atomic datatype. * * @param type_id IN: Identifier of datatype to query. * * @return a byte order constant if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_order(int type_id) throws HDF5LibraryException; /** * H5Tset_order sets the byte ordering of an atomic datatype. * * @param type_id IN: Identifier of datatype to set. * @param order IN: Byte ordering constant. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_order(int type_id, int order) throws HDF5LibraryException; /** * H5Tget_pad retrieves the padding type of the least and most-significant * bit padding. * * @param type_id IN: Identifier of datatype to query. * @param pad OUT: locations to return least-significant and * most-significant bit padding type. * *
 *      pad[0] = lsb // least-significant bit padding type
 *      pad[1] = msb // most-significant bit padding type
 * 
* * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - pad is null. **/ public synchronized static native int H5Tget_pad(int type_id, int[] pad) throws HDF5LibraryException, NullPointerException; /** * H5Tset_pad sets the least and most-significant bits padding types. * * @param type_id IN: Identifier of datatype to set. * @param lsb IN: Padding type for least-significant bits. * @param msb IN: Padding type for most-significant bits. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_pad(int type_id, int lsb, int msb) throws HDF5LibraryException; /** * H5Tget_precision returns the precision of an atomic datatype. * * @param type_id * Identifier of datatype to query. * * @return the number of significant bits if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_precision(int type_id) throws HDF5LibraryException; /** * H5Tset_precision sets the precision of an atomic datatype. * * @param type_id * Identifier of datatype to set. * @param precision * Number of bits of precision for datatype. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Tset_precision(int type_id, int precision) throws HDF5LibraryException { H5Tset_precision(type_id, (long)precision); return 0; } /** * H5Tget_precision returns the precision of an atomic datatype. * * @param type_id IN: Identifier of datatype to query. * * @return the number of significant bits if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Tget_precision_long(int type_id) throws HDF5LibraryException; /** * H5Tset_precision sets the precision of an atomic datatype. * * @param type_id IN: Identifier of datatype to set. * @param precision IN: Number of bits of precision for datatype. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tset_precision(int type_id, long precision) throws HDF5LibraryException; /** * H5Tget_sign retrieves the sign type for an integer type. * * @param type_id IN: Identifier of datatype to query. * * @return a valid sign type if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_sign(int type_id) throws HDF5LibraryException; /** * H5Tset_sign sets the sign proprety for an integer type. * * @param type_id IN: Identifier of datatype to set. * @param sign IN: Sign type. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_sign(int type_id, int sign) throws HDF5LibraryException; /** * H5Tget_size returns the size of a datatype in bytes. * * @param type_id * Identifier of datatype to query. * * @return the size of the datatype in bytes if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_size(int type_id) throws HDF5LibraryException; /** * H5Tset_size sets the total size in bytes, size, for an atomic datatype * (this operation is not permitted on compound datatypes). * * @param type_id * Identifier of datatype to change size. * @param size * Size in bytes to modify datatype. * * @return a non-negative value if successful * * @exception HDF5LibraryException * - Error from the HDF-5 Library. **/ public static int H5Tset_size(int type_id, int size) throws HDF5LibraryException { H5Tset_size(type_id, (long)size); return 0; } /** * H5Tget_size returns the size of a datatype in bytes. * * @param type_id IN: Identifier of datatype to query. * * @return the size of the datatype in bytes * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native long H5Tget_size_long(int type_id) throws HDF5LibraryException; /** * H5Tset_size sets the total size in bytes, size, for an * atomic datatype (this operation is not permitted on * compound datatypes). * * @param type_id IN: Identifier of datatype to change size. * @param size IN: Size in bytes to modify datatype. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native void H5Tset_size(int type_id, long size) throws HDF5LibraryException; /** * H5Tget_strpad retrieves the string padding method for a string datatype. * * @param type_id IN: Identifier of datatype to query. * * @return a valid string padding type if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tget_strpad(int type_id) throws HDF5LibraryException; /** * H5Tset_strpad defines the storage mechanism for the string. * * @param type_id IN: Identifier of datatype to modify. * @param strpad IN: String padding type. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_strpad(int type_id, int strpad) throws HDF5LibraryException; /** * H5Tget_super returns the type from which TYPE is derived. * * @param type IN: Identifier of datatype. * * @return the parent type * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tget_super(int type) throws HDF5LibraryException { int id = _H5Tget_super(type); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tget_super(int type) throws HDF5LibraryException; /** * H5Tget_tag returns the tag associated with datatype type_id. * * @param type IN: Identifier of datatype. * * @return the tag * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native String H5Tget_tag(int type) throws HDF5LibraryException; /** * H5Tset_tag tags an opaque datatype type_id with a unique ASCII identifier * tag. * * @param type IN: Datatype identifier for the opaque datatype to be tagged. * @param tag IN: Descriptive ASCII string with which the opaque datatype is to be tagged. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tset_tag(int type, String tag) throws HDF5LibraryException; /** * H5Tinsert adds another member to the compound datatype type_id. * * @param type_id IN: Identifier of compound datatype to modify. * @param name IN: Name of the field to insert. * @param offset IN: Offset in memory structure of the field to insert. * @param field_id IN: Datatype identifier of the field to insert. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public synchronized static native int H5Tinsert(int type_id, String name, long offset, int field_id) throws HDF5LibraryException, NullPointerException; /** * H5Tis_variable_str determines whether the datatype identified in type_id is a variable-length string. * * @param type_id IN: Identifier of datatype to query. * * @return true if type_id is a variable-length string. * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native boolean H5Tis_variable_str(int type_id) throws HDF5LibraryException; /** * H5Tlock locks the datatype specified by the type_id identifier, making it * read-only and non-destrucible. * * @param type_id IN: Identifier of datatype to lock. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tlock(int type_id) throws HDF5LibraryException; /** * H5Topen opens a named datatype at the location specified * by loc_id and return an identifier for the datatype. * * @deprecated As of HDF5 1.8, replaced by {@link #H5Topen(int, String, int)} * * @param loc_id IN: A file, group, or datatype identifier. * @param name IN: A datatype name, defined within the file or group identified by loc_id. * * @return a named datatype identifier if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ @Deprecated public static int H5Topen(int loc_id, String name) throws HDF5LibraryException, NullPointerException { int id = _H5Topen(loc_id, name); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Topen(int loc_id, String name) throws HDF5LibraryException, NullPointerException; /** * H5Topen opens a named datatype at the location specified * by loc_id and return an identifier for the datatype. * * @param loc_id IN: A file, group, or datatype identifier. * @param name IN: A datatype name, defined within the file or group identified by loc_id. * @param tapl_id IN: Datatype access property list. * * @return a named datatype identifier if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. * @exception NullPointerException - name is null. **/ public static int H5Topen(int loc_id, String name, int tapl_id) throws HDF5LibraryException, NullPointerException { int id = _H5Topen2(loc_id, name, tapl_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Topen2(int loc_id, String name, int tapl_id) throws HDF5LibraryException, NullPointerException; /** * H5Tpack recursively removes padding from within a compound datatype to * make it more efficient (space-wise) to store that data. *

* WARNING: This call only affects the C-data, even if it succeeds, * there may be no visible effect on Java objects. * * @param type_id IN: Identifier of datatype to modify. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public synchronized static native int H5Tpack(int type_id) throws HDF5LibraryException; /** * H5Tvlen_create creates a new variable-length (VL) dataype. * * @param base_id IN: Identifier of parent datatype. * * @return a non-negative value if successful * * @exception HDF5LibraryException - Error from the HDF-5 Library. **/ public static int H5Tvlen_create(int base_id) throws HDF5LibraryException { int id = _H5Tvlen_create(base_id); if (id > 0) OPEN_IDS.addElement(id); return id; } private synchronized static native int _H5Tvlen_create(int base_id) throws HDF5LibraryException; ///////// unimplemented //////// //H5T_conv_t H5Tfind(int src_id, int dst_id, H5T_cdata_t *pcdata); //public synchronized static native int H5Tregister(H5T_pers_t pers, String name, int src_id, int dst_id, // H5T_conv_t func) // throws HDF5LibraryException, NullPointerException; //public synchronized static native int H5Tunregister(H5T_pers_t pers, String name, int src_id, int dst_id, // H5T_conv_t func) // throws HDF5LibraryException, NullPointerException; ////////////////////////////////////////////////////////////// //// //H5Z: Filter Interface Functions // //// ////////////////////////////////////////////////////////////// public synchronized static native int H5Zfilter_avail(int filter) throws HDF5LibraryException, NullPointerException; public synchronized static native int H5Zget_filter_info(int filter) throws HDF5LibraryException; public synchronized static native int H5Zunregister(int filter) throws HDF5LibraryException, NullPointerException; } ///////// unimplemented //////// //herr_t H5Zregister(const void *cls);