summaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2017-04-03 19:06:47 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2017-04-03 19:06:47 (GMT)
commit4bd667bfde558d7ac3fd348d9954ab572e6eb026 (patch)
tree1b1a08dc7822809b39af574554c877b5237a3a64 /java/src
parent1f88a34fa75861d862a8186015e9238a426ea743 (diff)
downloadhdf5-4bd667bfde558d7ac3fd348d9954ab572e6eb026.zip
hdf5-4bd667bfde558d7ac3fd348d9954ab572e6eb026.tar.gz
hdf5-4bd667bfde558d7ac3fd348d9954ab572e6eb026.tar.bz2
HDFFV-10143 Add plugin APIs to Java interface
Diffstat (limited to 'java/src')
-rw-r--r--java/src/hdf/hdf5lib/H5.java72
-rw-r--r--java/src/jni/h5plImp.c161
-rw-r--r--java/src/jni/h5plImp.h63
3 files changed, 296 insertions, 0 deletions
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index a1099d8..88bd0e5 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -7202,6 +7202,78 @@ public class H5 implements java.io.Serializable {
**/
public synchronized static native int H5PLget_loading_state() throws HDF5LibraryException;
+ /**
+ * H5PLappend inserts the plugin path at the end of the table.
+ *
+ * @param plugin_path
+ * IN: Path for location of filter plugin libraries.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native void H5PLappend(String plugin_path) throws HDF5LibraryException;
+
+ /**
+ * H5PLprepend inserts the plugin path at the beginning of the table.
+ *
+ * @param plugin_path
+ * IN: Path for location of filter plugin libraries.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native void H5PLprepend(String plugin_path) throws HDF5LibraryException;
+
+ /**
+ * H5PLreplace replaces the plugin path at the specified index.
+ *
+ * @param plugin_path
+ * IN: Path for location of filter plugin libraries.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native void H5PLreplace(String plugin_path, int index) throws HDF5LibraryException;
+
+ /**
+ * H5PLinsert inserts the plugin path at the specified index.
+ *
+ * @param plugin_path
+ * IN: Path for location of filter plugin libraries.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native void H5PLinsert(String plugin_path, int index) throws HDF5LibraryException;
+
+ /**
+ * H5PLremove removes the plugin path at the specified index.
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native void H5PLremove(int index) throws HDF5LibraryException;
+
+ /**
+ * H5PLget retrieves the plugin path at the specified index.
+ *
+ * @return the current path at the index in plugin path table
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native String H5PLget(int index) throws HDF5LibraryException;
+
+ /**
+ * H5PLsize retrieves the size of the current list of plugin paths.
+ *
+ * @return the current number of paths in the plugin path table
+ *
+ * @exception HDF5LibraryException
+ * - Error from the HDF-5 Library.
+ **/
+ public synchronized static native int H5PLsize() throws HDF5LibraryException;
+
// ////////////////////////////////////////////////////////////
// //
// H5R: HDF5 1.8 Reference API Functions //
diff --git a/java/src/jni/h5plImp.c b/java/src/jni/h5plImp.c
index 59de3cf..34d6f8b 100644
--- a/java/src/jni/h5plImp.c
+++ b/java/src/jni/h5plImp.c
@@ -61,6 +61,167 @@ Java_hdf_hdf5lib_H5_H5PLget_1loading_1state
return (jint)plugin_type;
} /* end Java_hdf_hdf5lib_H5_H5PLget_1loading_1state */
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLappend
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLappend
+ (JNIEnv *env, jclass clss, jobjectArray plugin_path)
+{
+ char *aName;
+ herr_t retVal = -1;
+
+ PIN_JAVA_STRING(plugin_path, aName);
+ if (aName != NULL) {
+ retVal = H5PLappend(aName);
+
+ UNPIN_JAVA_STRING(plugin_path, aName);
+
+ if (retVal < 0)
+ h5libraryError(env);
+ }
+} /* end Java_hdf_hdf5lib_H5_H5PLappend */
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLprepend
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLprepend
+ (JNIEnv *env, jclass clss, jobjectArray plugin_path)
+{
+ char *aName;
+ herr_t retVal = -1;
+
+ PIN_JAVA_STRING(plugin_path, aName);
+ if (aName != NULL) {
+ retVal = H5PLprepend(aName);
+
+ UNPIN_JAVA_STRING(plugin_path, aName);
+
+ if (retVal < 0)
+ h5libraryError(env);
+ }
+} /* end Java_hdf_hdf5lib_H5_H5PLprepend */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLreplace
+ * Signature: (Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLreplace
+ (JNIEnv *env, jclass clss, jobjectArray plugin_path, jint index)
+{
+ char *aName;
+ herr_t retVal = -1;
+
+ PIN_JAVA_STRING(plugin_path, aName);
+ if (aName != NULL) {
+ retVal = H5PLreplace(aName, index);
+
+ UNPIN_JAVA_STRING(plugin_path, aName);
+
+ if (retVal < 0)
+ h5libraryError(env);
+ }
+} /* end Java_hdf_hdf5lib_H5_H5PLreplace */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLinsert
+ * Signature: (Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLinsert
+ (JNIEnv *env, jclass clss, jobjectArray plugin_path, jint index)
+{
+ char *aName;
+ herr_t retVal = -1;
+
+ PIN_JAVA_STRING(plugin_path, aName);
+ if (aName != NULL) {
+ retVal = H5PLinsert(aName, index);
+
+ UNPIN_JAVA_STRING(plugin_path, aName);
+
+ if (retVal < 0)
+ h5libraryError(env);
+ }
+} /* end Java_hdf_hdf5lib_H5_H5PLinsert */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLremove
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLremove
+ (JNIEnv *env, jclass clss, jint index)
+{
+ if (H5PLremove(index) < 0)
+ h5libraryError(env);
+} /* end Java_hdf_hdf5lib_H5_H5PLremove */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLget
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL
+Java_hdf_hdf5lib_H5_H5PLget
+ (JNIEnv *env, jclass clss, jint index)
+{
+ char *aName;
+ jstring str = NULL;
+ ssize_t buf_size;
+
+ /* get the length of the name */
+ buf_size = H5PLget(index, NULL, 0);
+
+ if (buf_size <= 0) {
+ h5badArgument(env, "H5PLget: buf_size <= 0");
+ } /* end if */
+ else {
+ buf_size++; /* add extra space for the null terminator */
+ aName = (char*)HDmalloc(sizeof(char) * (size_t)buf_size);
+ if (aName == NULL) {
+ h5outOfMemory(env, "H5PLget: malloc failed");
+ } /* end if */
+ else {
+ buf_size = H5PLget(index, aName, (size_t)buf_size);
+ if (buf_size < 0) {
+ h5libraryError(env);
+ } /* end if */
+ else {
+ str = ENVPTR->NewStringUTF(ENVPAR aName);
+ }
+ HDfree(aName);
+ }
+ }
+ return str;
+} /* end Java_hdf_hdf5lib_H5_H5PLget */
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLsize
+ * Signature: (V)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5PLsize
+ (JNIEnv *env, jclass clss)
+{
+ int retVal = -1;
+
+ retVal = H5PLsize();
+ if (retVal < 0)
+ h5libraryError(env);
+
+ return (jint)retVal;
+} /* end Java_hdf_hdf5lib_H5_H5PLsize */
+
#ifdef __cplusplus
} /* end extern "C" */
#endif /* __cplusplus */
diff --git a/java/src/jni/h5plImp.h b/java/src/jni/h5plImp.h
index d0507a8..5326a94 100644
--- a/java/src/jni/h5plImp.h
+++ b/java/src/jni/h5plImp.h
@@ -41,6 +41,69 @@ JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5PLget_1loading_1state
(JNIEnv *, jclass);
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLappend
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLappend
+ (JNIEnv *, jclass, jobjectArray);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLprepend
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLprepend
+ (JNIEnv *, jclass, jobjectArray);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLreplace
+ * Signature: (Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLreplace
+ (JNIEnv *, jclass, jobjectArray, jint);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLinsert
+ * Signature: (Ljava/lang/String;I)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLinsert
+ (JNIEnv *, jclass, jobjectArray, jint);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLremove
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5PLremove
+ (JNIEnv *, jclass, jint);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLget
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL
+Java_hdf_hdf5lib_H5_H5PLget
+ (JNIEnv *, jclass, jint);
+
+/*
+ * Class: hdf_hdf5lib_H5
+ * Method: H5PLsize
+ * Signature: (V)I
+ */
+JNIEXPORT jint JNICALL
+Java_hdf_hdf5lib_H5_H5PLsize
+ (JNIEnv *, jclass);
+
#ifdef __cplusplus
} /* end extern "C" */
#endif /* __cplusplus */