summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/src/hdf/hdf5lib/H5.java32
-rw-r--r--java/src/jni/CMakeLists.txt6
-rw-r--r--java/src/jni/h5pDXPLImp.c45
-rw-r--r--java/src/jni/h5pDXPLImp.h14
4 files changed, 95 insertions, 2 deletions
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index 63547df..2c89f3a 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -9622,6 +9622,38 @@ 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;
+ /**
+ *
+ * Set flag to indicate that an API wrapper for a plugin's
+ * public wrapper API call (e.g. H5VLfile_create, H5FDopen, etc)
+ * should open a new API context for the API call.
+ *
+ * @param dxpl_id
+ * IN: Dataset transfer property list identifier.
+ * @param new_api_ctx
+ * IN: Indicate that API wrapper should create new API context
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native void H5Pset_plugin_new_api_context(long dxpl_id, boolean new_api_ctx)
+ throws HDF5LibraryException;
+
+ /**
+ * Retrieve "new API context" flag for plugin wrapper API calls.
+ *
+ * @param dxpl_id
+ * IN: Dataset transfer property list identifier.
+ *
+ * @return true if the given dxpl indicates API wrapper should create new API context
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ *
+ **/
+ public synchronized static native boolean H5Pget_plugin_new_api_context(long dxpl_id)
+ throws HDF5LibraryException;
+
// /////// Link creation property list (LCPL) routines ///////
/**
diff --git a/java/src/jni/CMakeLists.txt b/java/src/jni/CMakeLists.txt
index dff0a88..8e8d9d6 100644
--- a/java/src/jni/CMakeLists.txt
+++ b/java/src/jni/CMakeLists.txt
@@ -74,10 +74,13 @@ set (HDF5_JAVA_JNI_CHDRS
)
set (HDF5_JAVA_TEST_CSRCS
+ ${HDF5_JAVA_JNI_SOURCE_DIR}/exceptionImp.c
${HDF5_JAVA_JNI_SOURCE_DIR}/h5jni_test.c
)
set (HDF5_JAVA_TEST_CHDRS
+ ${HDF5_JAVA_JNI_SOURCE_DIR}/exceptionImp.h
+ ${HDF5_JAVA_JNI_SOURCE_DIR}/h5jni.h
${HDF5_JAVA_JNI_SOURCE_DIR}/h5jni_test.h
)
@@ -102,9 +105,8 @@ target_include_directories (${HDF5_JAVA_JNI_TEST_LIB_TARGET}
)
target_compile_options(${HDF5_JAVA_JNI_TEST_LIB_TARGET} PRIVATE "${HDF5_CMAKE_C_FLAGS}")
TARGET_C_PROPERTIES (${HDF5_JAVA_JNI_TEST_LIB_TARGET} SHARED)
-target_link_libraries (${HDF5_JAVA_JNI_TEST_LIB_TARGET} PUBLIC ${HDF5_LIBSH_TARGET} ${HDF5_JAVA_JNI_LIB_TARGET})
+target_link_libraries (${HDF5_JAVA_JNI_TEST_LIB_TARGET} PUBLIC ${HDF5_LIBSH_TARGET})
set_target_properties (${HDF5_JAVA_JNI_TEST_LIB_TARGET} PROPERTIES FOLDER libraries/jni)
-#SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_JAVA_JNI_TEST_LIB_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_JAVA_JNI_TEST_LIB_TARGET} ${HDF5_JAVA_JNI_TEST_LIB_NAME} SHARED "JAVA")
#-----------------------------------------------------------------------------
diff --git a/java/src/jni/h5pDXPLImp.c b/java/src/jni/h5pDXPLImp.c
index c555d53..69b32c1 100644
--- a/java/src/jni/h5pDXPLImp.c
+++ b/java/src/jni/h5pDXPLImp.c
@@ -448,6 +448,51 @@ done:
} /* end Java_hdf_hdf5lib_H5_H5Pget_1btree_1ratios */
/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_plugin_new_api_context
+ * Signature: (JZ)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5Pset_1plugin_1new_1api_1context(JNIEnv *env, jclass clss, jlong dcpl_id, jboolean new_api_ctx)
+{
+ hbool_t new_api_ctx_val;
+ herr_t retVal = FAIL;
+
+ UNUSED(clss);
+
+ new_api_ctx_val = (JNI_TRUE == new_api_ctx) ? TRUE : FALSE;
+
+ if ((retVal = H5Pset_plugin_new_api_context((hid_t)dcpl_id, (hbool_t)new_api_ctx_val)) < 0)
+ H5_LIBRARY_ERROR(ENVONLY);
+
+done:
+ return;
+} /* end Java_hdf_hdf5lib_H5_H5Pset_1plugin_1new_1api_1context */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_plugin_new_api_context
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL
+Java_hdf_hdf5lib_H5_H5Pget_1plugin_1new_1api_1context(JNIEnv *env, jclass clss, jlong dcpl_id)
+{
+ hbool_t new_api_ctx = FALSE;
+ jboolean bval = JNI_FALSE;
+
+ UNUSED(clss);
+
+ if (H5Pget_plugin_new_api_context((hid_t)dcpl_id, (hbool_t *)&new_api_ctx) < 0)
+ H5_LIBRARY_ERROR(ENVONLY);
+
+ if (new_api_ctx == TRUE)
+ bval = JNI_TRUE;
+
+done:
+ return bval;
+} /* end Java_hdf_hdf5lib_H5_H5Pget_1plugin_1new_1api_1context */
+
+/*
* TODO: H5Pset_vlen_mem_manager
*/
diff --git a/java/src/jni/h5pDXPLImp.h b/java/src/jni/h5pDXPLImp.h
index 21c40c4..b1dbafd 100644
--- a/java/src/jni/h5pDXPLImp.h
+++ b/java/src/jni/h5pDXPLImp.h
@@ -134,6 +134,20 @@ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1btree_1ratios(JNIEnv *, jclas
jdoubleArray, jdoubleArray);
/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pset_plugin_new_api_context
+ * Signature: (JZ)V
+ */
+JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1plugin_1new_1api_1context(JNIEnv *, jclass, jlong, jboolean);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5Pget_plugin_new_api_context
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pget_1plugin_1new_1api_1context(JNIEnv *, jclass, jlong);
+
+/*
* TODO: H5Pset_vlen_mem_manager
*/