summaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorVailin Choi <vchoi@jam.ad.hdfgroup.org>2018-01-12 23:51:42 (GMT)
committerVailin Choi <vchoi@jam.ad.hdfgroup.org>2018-01-12 23:51:42 (GMT)
commit120d02657b4c7dff45dd8e83b8f1aaa0c7e51373 (patch)
tree19935f8689df3319e6661f8b393d6eda16cefd45 /java/src
parent37318f109a294bb47e5040be5888963967c1badc (diff)
parentaef900c6741aea851b218169648185b1c8e5e435 (diff)
downloadhdf5-120d02657b4c7dff45dd8e83b8f1aaa0c7e51373.zip
hdf5-120d02657b4c7dff45dd8e83b8f1aaa0c7e51373.tar.gz
hdf5-120d02657b4c7dff45dd8e83b8f1aaa0c7e51373.tar.bz2
Merge branch develop into bugfix/version_bounds
Diffstat (limited to 'java/src')
-rw-r--r--java/src/hdf/hdf5lib/H5.java201
-rw-r--r--java/src/hdf/hdf5lib/HDF5Constants.java3
-rw-r--r--java/src/hdf/overview.html6
-rw-r--r--java/src/jni/CMakeLists.txt4
-rw-r--r--java/src/jni/h5Constants.c2
-rw-r--r--java/src/jni/h5pImp.c211
-rw-r--r--java/src/jni/h5pImp.h73
7 files changed, 475 insertions, 25 deletions
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index 7b5b5c9..20aa634 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -214,7 +214,7 @@ import hdf.hdf5lib.structs.H5O_info_t;
* exception handlers to print out the HDF-5 error stack.
* <hr>
*
- * @version HDF5 1.11.0 <BR>
+ * @version HDF5 1.11.2 <BR>
* <b>See also: <a href ="./hdf.hdf5lib.HDFArray.html"> hdf.hdf5lib.HDFArray</a> </b><BR>
* <a href ="./hdf.hdf5lib.HDF5Constants.html"> hdf.hdf5lib.HDF5Constants</a><BR>
* <a href ="./hdf.hdf5lib.HDF5CDataTypes.html"> hdf.hdf5lib.HDF5CDataTypes</a><BR>
@@ -237,7 +237,7 @@ public class H5 implements java.io.Serializable {
*
* Make sure to update the versions number when a different library is used.
*/
- public final static int LIB_VERSION[] = { 1, 11, 0 };
+ public final static int LIB_VERSION[] = { 1, 11, 2 };
public final static String H5PATH_PROPERTY_KEY = "hdf.hdf5lib.H5.hdf5lib";
@@ -4451,7 +4451,7 @@ public class H5 implements java.io.Serializable {
// //
// ////////////////////////////////////////////////////////////
- // Generic property list routines
+ // /////// Generic property list routines ///////
/**
* H5Pget_class_name retrieves the name of a generic property list class
@@ -4767,7 +4767,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Piterate(long plist, int[] idx, H5P_iterate_cb op, H5P_iterate_t op_data) throws HDF5LibraryException;
- // Object creation property list (OCPL) routines
+ // /////// Object creation property list (OCPL) routines ///////
/**
* H5Pget_attr_phase_change retrieves attribute storage phase change thresholds.
@@ -5071,7 +5071,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pset_fletcher32(long plist) throws HDF5LibraryException,
NullPointerException;
- // File creation property list (FCPL) routines
+ // /////// File creation property list (FCPL) routines ///////
/**
* H5Pget_userblock retrieves the size of a user block in a file creation property list.
@@ -5480,7 +5480,7 @@ public class H5 implements java.io.Serializable {
throws HDF5LibraryException, IllegalArgumentException;
- // File access property list (FAPL) routines
+ // /////// File access property list (FAPL) routines ///////
/**
* H5Pget_alignment retrieves the current settings for alignment properties from a file access property list.
@@ -5860,6 +5860,37 @@ public class H5 implements java.io.Serializable {
public synchronized static native void H5Pset_metadata_read_attempts(long plist_id, long attempts)
throws HDF5LibraryException;
+ /**
+ * H5Pget_evict_on_close retrieves the file access property list setting that determines whether an HDF5 object
+ * will be evicted from the library's metadata cache when it is closed.
+ *
+ * @param fapl_id
+ * IN: File access property list identifier
+ *
+ * @return indication if the object will be evicted on close.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ *
+ **/
+ public synchronized static native boolean H5Pget_evict_on_close(long fapl_id)
+ throws HDF5LibraryException;
+
+ /**
+ * H5Pset_evict_on_close controls the library's behavior of evicting metadata associated with a closed object.
+ *
+ * @param fapl_id
+ * IN: File access property list identifier
+ * @param evict_on_close
+ * IN: Whether the HDF5 object should be evicted on close.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ *
+ **/
+ public synchronized static native void H5Pset_evict_on_close(long fapl_id, boolean evict_on_close)
+ throws HDF5LibraryException;
+
// Dataset creation property list (DCPL) routines //
/**
@@ -6066,6 +6097,36 @@ public class H5 implements java.io.Serializable {
**/
public synchronized static native String H5Pget_virtual_dsetname(long dcpl_id, long index) throws HDF5LibraryException, IllegalArgumentException;
+// ///// unimplemented /////
+// /**
+// * H5Pget_vds_file_cache_size retrieves the size of the vds link open file cache.
+// *
+// * @param fapl_id
+// * IN: File access property list identifier
+// *
+// * @return VDS link open file cache size in number of files.
+// *
+// * @exception HDF5LibraryException
+// * - Error from the HDF-5 Library.
+// *
+// **/
+// public synchronized static native int H5Pget_vds_file_cache_size(long fapl_id) throws HDF5LibraryException;
+//
+// /**
+// * H5Pset_vds_file_cache_size sets the number of files that can be held open in an vds link open file cache.
+// *
+// * @param fapl_id
+// * IN: File access property list identifier
+// * @param efc_size
+// * IN: VDS link open file cache size in number of files.
+// *
+// * @exception HDF5LibraryException
+// * - Error from the HDF-5 Library.
+// *
+// **/
+// public synchronized static native void H5Pset_vds_file_cache_size(long fapl_id, int efc_size)
+// throws HDF5LibraryException;
+
/**
* H5Pget_external returns information about an external file.
*
@@ -6285,7 +6346,37 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pset_fill_time(long plist_id, int fill_time) throws HDF5LibraryException,
NullPointerException;
- // Dataset access property list (DAPL) routines //
+ // /////// Dataset creation property list (DCPL) routines ///////
+
+ /**
+ * H5Pset_chunk_opts Sets the edge chunk option in a dataset creation property list.
+ *
+ * @param dcpl_id
+ * IN: Dataset creation property list identifier
+ * @param opts
+ * IN: Edge chunk option flag. Valid values are:
+ * H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS - filters are not applied to partial edge chunks.
+ * 0 - Disables option; partial edge chunks will be compressed.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library
+ **/
+ public synchronized static native void H5Pset_chunk_opts(long dcpl_id, int opts) throws HDF5LibraryException;
+
+ /**
+ * H5Pget_chunk_opts retrieves the edge chunk option setting stored in the dataset creation property list .
+ *
+ * @param dcpl_id
+ * IN: Dataset creation property list
+
+ * @return The edge chunk option setting.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library
+ **/
+ public synchronized static native int H5Pget_chunk_opts(long dcpl_id) throws HDF5LibraryException;
+
+ // /////// Dataset access property list (DAPL) routines ///////
/**
* Retrieves the maximum possible number of elements in the meta data cache and the maximum possible number of bytes
@@ -6388,12 +6479,76 @@ public class H5 implements java.io.Serializable {
**/
public synchronized static native long H5Pget_virtual_printf_gap(long dapl_id) throws HDF5LibraryException;
+ /**
+ * H5Pget_virtual_prefix Retrieves prefix applied to virtual file paths.
+ *
+ * @param dapl_id
+ * IN: Link access property list identifier
+ *
+ * @return the prefix to be applied to virtual file paths.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ *
+ **/
+ public synchronized static native String H5Pget_virtual_prefix(long dapl_id)
+ throws HDF5LibraryException;
+
+ /**
+ * H5Pset_virtual_prefix Sets prefix to be applied to virtual file paths.
+ *
+ * @param dapl_id
+ * IN: Dataset access property list identifier
+ * @param prefix
+ * IN: Prefix to be applied to virtual file paths
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ * @exception NullPointerException
+ * - prefix is null.
+ *
+ **/
+ public synchronized static native void H5Pset_virtual_prefix(long dapl_id, String prefix)
+ throws HDF5LibraryException, NullPointerException;
+
+ /**
+ * H5Pget_efile_prefix Retrieves prefix applied to external file paths.
+ *
+ * @param dapl_id
+ * IN: Link access property list identifier
+ *
+ * @return the prefix to be applied to external file paths.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ *
+ **/
+ public synchronized static native String H5Pget_efile_prefix(long dapl_id)
+ throws HDF5LibraryException;
+
+ /**
+ * H5Pset_efile_prefix Sets prefix to be applied to external file paths.
+ *
+ * @param dapl_id
+ * IN: Dataset access property list identifier
+ * @param prefix
+ * IN: Prefix to be applied to external file paths
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ * @exception NullPointerException
+ * - prefix is null.
+ *
+ **/
+ public synchronized static native void H5Pset_efile_prefix(long dapl_id, String prefix)
+ throws HDF5LibraryException, NullPointerException;
+
// public synchronized static native void H5Pset_append_flush(long plist_id, int ndims, long[] boundary, H5D_append_cb func, H5D_append_t udata) throws HDF5LibraryException;
// public synchronized static native void H5Pget_append_flush(long plist_id, int dims, long[] boundary, H5D_append_cb func, H5D_append_t udata) throws HDF5LibraryException;
- // Dataset xfer property list (DXPL) routines //
+ // /////// Dataset xfer property list (DXPL) routines ///////
/**
* H5Pget_data_transform retrieves the data transform expression previously set in the dataset transfer property
@@ -6544,7 +6699,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pset_hyper_vector_size(long dxpl_id, long vector_size)
throws HDF5LibraryException, NullPointerException;
- // Link creation property list (LCPL) routines //
+ // /////// Link creation property list (LCPL) routines ///////
/**
* H5Pget_create_intermediate_group determines whether property is set to enable creating missing intermediate
@@ -6579,7 +6734,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pset_create_intermediate_group(long lcpl_id, boolean crt_intermed_group)
throws HDF5LibraryException;
- // Group creation property list (GCPL) routines //
+ // /////// Group creation property list (GCPL) routines ///////
/**
* H5Pget_local_heap_size_hint Retrieves the anticipated size of the local heap for original-style groups.
@@ -6736,14 +6891,14 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pset_link_creation_order(long gcpl_id, int crt_order_flags)
throws HDF5LibraryException;
- // String creation property list (STRCPL) routines //
+ // /////// String creation property list (STRCPL) routines ///////
public synchronized static native int H5Pget_char_encoding(long plist_id) throws HDF5LibraryException;
public synchronized static native void H5Pset_char_encoding(long plist_id, int encoding)
throws HDF5LibraryException;
- // Link access property list (LAPL) routines //
+ // /////// Link access property list (LAPL) routines ///////
/**
* H5Pget_nlinks retrieves the maximum number of soft or user-defined link traversals allowed, nlinks, before the
@@ -6896,7 +7051,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pset_elink_acc_flags(long lapl_id, int flags) throws HDF5LibraryException,
IllegalArgumentException;
- // Object copy property list (OCPYPL) routines //
+ // /////// Object copy property list (OCPYPL) routines ///////
/**
* H5Pget_copy_object retrieves the properties to be used when an object is copied.
@@ -6927,7 +7082,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native void H5Pset_copy_object(long ocp_plist_id, int copy_options)
throws HDF5LibraryException;
- // Other/Older property list routines //
+ // /////// Other/Older property list routines ///////
/**
* H5Pget_version retrieves the version information of various objects for a file creation property list.
@@ -6955,7 +7110,7 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Pget_version(long plist, int[] version_info) throws HDF5LibraryException,
NullPointerException, IllegalArgumentException;
- // file drivers property list routines //
+ // /////// file drivers property list routines ///////
public synchronized static native void H5Pget_fapl_core(long fapl_id, long[] increment, boolean[] backing_store)
throws HDF5LibraryException, NullPointerException;
@@ -7102,20 +7257,28 @@ public class H5 implements java.io.Serializable {
// File creation property list (FCPL) routines //
// File access property list (FAPL) routines //
- // herr_t H5Pset_driver( hid_t plist_id, hid_t new_driver_id, const void *new_driver_info )
- // const void *H5Pget_driver_info( hid_t plist_id )
- // 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 H5Pset_driver(hid_t plist_id, hid_t new_driver_id, const void *new_driver_info)
+ // const void *H5Pget_driver_info(hid_t plist_id)
+ // 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_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 H5Pset_core_write_tracking(hid_t fapl_id, hbool_t is_enabled, size_t page_size);
// herr_t H5Pget_core_write_tracking(hid_t fapl_id, hbool_t *is_enabled, size_t *page_size);
+ // herr_t H5Pset_all_coll_metadata_ops(hid_t accpl_id, hbool_t is_collective);
+ // herr_t H5Pset_coll_metadata_write(hid_t fapl_id, hbool_t is_collective);
+ // herr_t H5Pget_coll_metadata_write(hid_t fapl_id, hbool_t *is_collective);
+ // herr_t H5Pget_page_buffer_size(hid_t fapl_id, size_t *buf_size, unsigned *min_meta_perc, unsigned *min_raw_perc);
+ // herr_t H5Pset_object_flush_cb (hid_t fapl_id, H5F_flush_cb_t func, void *user_data);
+ // herr_t H5Pget_object_flush_cb (hid_t fapl_id, H5F_flush_cb_t *func, void **user_data);
// Dataset creation property list (DCPL) routines //
// Dataset access property list (DAPL) routines //
+ // herr_t H5Pset_append_flush (hid_t dapl_id, int ndims, const hsize_t boundary[], H5D_append_cb_t func, void *user_data);
+ // herr_t H5Pget_append_flush(hid_t dapl_id, int ndims, hsize_t boundary[], H5D_append_cb_t *func, void **user_data)
// Dataset xfer property list (DXPL) routines //
// herr_t H5Pset_buffer(hid_t plist_id, size_t size, void *tconv, void *bkg);
diff --git a/java/src/hdf/hdf5lib/HDF5Constants.java b/java/src/hdf/hdf5lib/HDF5Constants.java
index 8a3d6c8..3e43ba2 100644
--- a/java/src/hdf/hdf5lib/HDF5Constants.java
+++ b/java/src/hdf/hdf5lib/HDF5Constants.java
@@ -88,6 +88,7 @@ public class HDF5Constants {
public static final int H5D_VDS_ERROR = H5D_VDS_ERROR();
public static final int H5D_VDS_FIRST_MISSING = H5D_VDS_FIRST_MISSING();
public static final int H5D_VDS_LAST_AVAILABLE = H5D_VDS_LAST_AVAILABLE();
+ public static final int H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS = H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS();
public static final int H5E_MAJOR = H5E_MAJOR();
public static final int H5E_MINOR = H5E_MINOR();
@@ -768,6 +769,8 @@ public class HDF5Constants {
private static native final int H5D_VDS_LAST_AVAILABLE();
+ private static native final int H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS();
+
private static native final long H5E_ALIGNMENT();
private static native final long H5E_ALREADYEXISTS();
diff --git a/java/src/hdf/overview.html b/java/src/hdf/overview.html
index 39d75b7..9c19442 100644
--- a/java/src/hdf/overview.html
+++ b/java/src/hdf/overview.html
@@ -47,20 +47,20 @@ which has a method:
The native method is implemented in C using the
<a href="http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html">Java
Native Method Interface </a>(JNI). This is written something like the following:
-<pre><b>JNIEXPORT jint
+<pre><b>JNIEXPORT jlong
JNICALL Java_hdf_hdf5lib_H5_H5Fopen
(
&nbsp;JNIEnv *env,
&nbsp;jclass class,
&nbsp;jstring hdfFile,
&nbsp;jint flags,
-&nbsp;jint access)
+&nbsp;jlong access)
&nbsp;{
&nbsp;/* ...convert Java String to (char *) */
&nbsp;/* call the HDF library */
-&nbsp;retVal = H5Fopen((char *)file, (unsigned)flags, (hid_t)access );
+&nbsp;retVal = H5Fopen((char *)file, (unsigned)flags, (hid_t)access);
&nbsp;/* ... */
}</b></pre>
diff --git a/java/src/jni/CMakeLists.txt b/java/src/jni/CMakeLists.txt
index 9e6c099..90343b2 100644
--- a/java/src/jni/CMakeLists.txt
+++ b/java/src/jni/CMakeLists.txt
@@ -51,13 +51,13 @@ set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
########### JNI libraries always must be built shared ###############
add_library (${HDF5_JAVA_JNI_LIB_TARGET} SHARED ${HDF5_JAVA_JNI_CSRCS} ${HDF5_JAVA_JNI_CHDRS})
TARGET_C_PROPERTIES (${HDF5_JAVA_JNI_LIB_TARGET} SHARED " " " ")
-target_link_libraries (${HDF5_JAVA_JNI_LIB_TARGET} ${HDF5_LIB_TARGET})
+target_link_libraries (${HDF5_JAVA_JNI_LIB_TARGET} PUBLIC ${HDF5_LIB_TARGET})
set_target_properties (${HDF5_JAVA_JNI_LIB_TARGET} PROPERTIES FOLDER libraries/jni)
SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_JAVA_JNI_LIB_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_JAVA_JNI_LIB_TARGET} ${HDF5_JAVA_JNI_LIB_NAME} SHARED ${HDF5_JAVA_PACKAGE_SOVERSION})
if (WIN32)
get_filename_component (HDF5_JAVA_JNI_DLL_NAME ${HDF5_JAVA_JNI_LIB_TARGET} NAME_WE)
- if (CMAKE_BUILD_TYPE MATCHES Debug)
+ if (HDF5_BUILD_TYPE MATCHES Debug)
set (HDF5_JAVA_JNI_DLL_NAME "${HDF5_JAVA_JNI_DLL_NAME}_D")
endif ()
# message (STATUS "HDF5_JAVA_JNI_DLL_NAME: ${HDF5_JAVA_JNI_DLL_NAME}")
diff --git a/java/src/jni/h5Constants.c b/java/src/jni/h5Constants.c
index f6f8bfa..5a4b53e 100644
--- a/java/src/jni/h5Constants.c
+++ b/java/src/jni/h5Constants.c
@@ -140,6 +140,8 @@ JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_HDF5Constants_H5D_1VDS_1FIRST_1MISSING(JNIEnv *env, jclass cls) { return H5D_VDS_FIRST_MISSING; }
JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_HDF5Constants_H5D_1VDS_1LAST_1AVAILABLE(JNIEnv *env, jclass cls) { return H5D_VDS_LAST_AVAILABLE; }
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_HDF5Constants_H5D_1CHUNK_1DONT_1FILTER_1PARTIAL_1CHUNKS(JNIEnv *env, jclass cls) { return H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS; }
JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_HDF5Constants_H5E_1ALIGNMENT(JNIEnv *env, jclass cls) { return H5E_ALIGNMENT; }
diff --git a/java/src/jni/h5pImp.c b/java/src/jni/h5pImp.c
index dcfcd82..cf27341 100644
--- a/java/src/jni/h5pImp.c
+++ b/java/src/jni/h5pImp.c
@@ -5733,6 +5733,217 @@ Java_hdf_hdf5lib_H5_H5Pset_1metadata_1read_1attempts
} /* end else */
} /* end Java_hdf_hdf5lib_H5_H5Pset_1metadata_1read_1attempts */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_virtual_prefix
+ * Signature: (JLjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1virtual_1prefix
+ (JNIEnv *env, jclass clss, jlong dapl_id, jstring prefix)
+{
+ herr_t retVal = -1;
+ const char *aName;
+
+ PIN_JAVA_STRING(prefix, aName);
+ if (aName != NULL) {
+ retVal = H5Pset_virtual_prefix((hid_t)dapl_id, aName);
+
+ UNPIN_JAVA_STRING(prefix, aName);
+
+ if(retVal < 0)
+ h5libraryError(env);
+ }
+} /* end Java_hdf_hdf5lib_H5_H5Pset_1virtual_1prefix */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_virtual_prefix
+ * Signature: (J)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1virtual_1prefix
+ (JNIEnv *env, jclass clss, jlong dapl_id)
+{
+ size_t size = 0;
+ char *pre;
+ jlong prefix_size = -1;
+ jstring str = NULL;
+
+ prefix_size = (jlong)H5Pget_virtual_prefix((hid_t)dapl_id, (char*)NULL, size);
+ if(prefix_size < 0) {
+ h5libraryError(env);
+ } /* end if */
+ else {
+ size = (size_t)prefix_size + 1;/* add extra space for the null terminator */
+ pre = (char*)HDmalloc(sizeof(char)*size);
+ if (pre == NULL) {
+ h5outOfMemory(env, "H5Pget_virtual_prefix: malloc failed ");
+ } /* end if */
+ else {
+ prefix_size = (jlong)H5Pget_virtual_prefix((hid_t)dapl_id, (char*)pre, size);
+
+ if (prefix_size >= 0) {
+ str = ENVPTR->NewStringUTF(ENVPAR pre);
+ HDfree(pre);
+ if (str == NULL)
+ h5JNIFatalError( env, "H5Pget_virtual_prefix: return string not allocated");
+ } /* end if */
+ else {
+ HDfree(pre);
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jstring)str;
+} /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1prefix */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_efile_prefix
+ * Signature: (JLjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1efile_1prefix
+ (JNIEnv *env, jclass clss, jlong dapl_id, jstring prefix)
+{
+ herr_t retVal = -1;
+ const char *aName;
+
+ PIN_JAVA_STRING(prefix, aName);
+ if (aName != NULL) {
+ retVal = H5Pset_efile_prefix((hid_t)dapl_id, aName);
+
+ UNPIN_JAVA_STRING(prefix, aName);
+
+ if(retVal < 0)
+ h5libraryError(env);
+ }
+} /* end Java_hdf_hdf5lib_H5_H5Pset_1efile_1prefix */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_efile_prefix
+ * Signature: (J)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1efile_1prefix
+ (JNIEnv *env, jclass clss, jlong dapl_id)
+{
+ size_t size = 0;
+ char *pre;
+ jlong prefix_size = -1;
+ jstring str = NULL;
+
+ prefix_size = (jlong)H5Pget_efile_prefix((hid_t)dapl_id, (char*)NULL, size);
+ if(prefix_size < 0) {
+ h5libraryError(env);
+ } /* end if */
+ else {
+ size = (size_t)prefix_size + 1;/* add extra space for the null terminator */
+ pre = (char*)HDmalloc(sizeof(char)*size);
+ if (pre == NULL) {
+ h5outOfMemory(env, "H5Pget_efile_prefix: malloc failed ");
+ } /* end if */
+ else {
+ prefix_size = (jlong)H5Pget_efile_prefix((hid_t)dapl_id, (char*)pre, size);
+
+ if (prefix_size >= 0) {
+ str = ENVPTR->NewStringUTF(ENVPAR pre);
+ HDfree(pre);
+ if (str == NULL)
+ h5JNIFatalError( env, "H5Pget_efile_prefix: return string not allocated");
+ } /* end if */
+ else {
+ HDfree(pre);
+ h5libraryError(env);
+ } /* end else */
+ } /* end else */
+ } /* end else */
+
+ return (jstring)str;
+} /* end Java_hdf_hdf5lib_H5_H5Pget_1efile_1prefix */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_evict_on_close
+ * Signature: (JZ)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1evict_1on_1close
+ (JNIEnv *env, jclass clss, jlong fapl_id, jboolean evict_on_close)
+{
+ herr_t retVal = -1;
+ hbool_t evict_on_close_val;
+
+ if (evict_on_close == JNI_TRUE)
+ evict_on_close_val = TRUE;
+ else
+ evict_on_close_val = FALSE;
+
+ retVal = H5Pset_evict_on_close((hid_t)fapl_id, (hbool_t)evict_on_close_val);
+ if (retVal < 0)
+ h5libraryError(env);
+} /* end Java_hdf_hdf5lib_H5_H5Pset_1evict_1on_1close */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_evict_on_close
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1evict_1on_1close
+ (JNIEnv *env, jclass clss, jlong fapl_id)
+{
+ hbool_t evict_on_close_val = FALSE;
+ jboolean bval = JNI_FALSE;
+
+ if (H5Pget_evict_on_close((hid_t)fapl_id, (hbool_t *)&evict_on_close_val) < 0) {
+ h5libraryError(env);
+ } /* end if */
+ else {
+ if (evict_on_close_val == TRUE)
+ bval = JNI_TRUE;
+ } /* end else */
+
+ return bval;
+} /* end Java_hdf_hdf5lib_H5_H5Pget_1evict_1on_1close */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_chunk_opts
+ * Signature: (JI)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1chunk_1opts
+ (JNIEnv *env, jclass clss, jlong dcpl_id, jint opts)
+{
+ herr_t retVal = -1;
+
+ retVal = H5Pset_chunk_opts((hid_t)dcpl_id, (unsigned)opts);
+ if (retVal < 0)
+ h5libraryError(env);
+} /* end Java_hdf_hdf5lib_H5_H5Pset_1chunk_1opts */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_chunk_opts
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1chunk_1opts
+ (JNIEnv *env, jclass clss, jlong dcpl_id)
+{
+ unsigned opts = 0;
+
+ if (H5Pget_chunk_opts((hid_t)dcpl_id, opts) < 0)
+ h5libraryError(env);
+
+ return (jint)opts;
+} /* end Java_hdf_hdf5lib_H5_H5Pget_1chunk_1opts */
+
#ifdef __cplusplus
} /* end extern "C" */
#endif /* __cplusplus */
diff --git a/java/src/jni/h5pImp.h b/java/src/jni/h5pImp.h
index d413f69..1d12e3d 100644
--- a/java/src/jni/h5pImp.h
+++ b/java/src/jni/h5pImp.h
@@ -1533,7 +1533,6 @@ JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5_H5Pget_1metadata_1read_1attempts
(JNIEnv *, jclass, jlong);
-
/*
* Class: hdf_hdf5lib_H5
* Method: H5Pset_metadata_read_attempts
@@ -1543,6 +1542,78 @@ JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Pset_1metadata_1read_1attempts
(JNIEnv *, jclass, jlong, jlong);
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_virtual_prefix
+ * Signature: (JLjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1virtual_1prefix
+(JNIEnv *, jclass, jlong, jstring);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_virtual_prefix
+ * Signature: (J)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1virtual_1prefix
+(JNIEnv *, jclass, jlong);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_efile_prefix
+ * Signature: (JLjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1efile_1prefix
+(JNIEnv *, jclass, jlong, jstring);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_efile_prefix
+ * Signature: (J)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1efile_1prefix
+(JNIEnv *, jclass, jlong);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_evict_on_close
+ * Signature: (JZ)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1evict_1on_1close
+(JNIEnv *, jclass, jlong, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_evict_on_close
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1evict_1on_1close
+(JNIEnv *, jclass, jlong);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_chunk_opts
+ * Signature: (JI)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1chunk_1opts
+(JNIEnv *, jclass, jlong, jint);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_chunk_opts
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1chunk_1opts
+(JNIEnv *, jclass, jlong);
+
#ifdef __cplusplus
} /* end extern "C" */