mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-23 16:20:57 +08:00
HDFFV-10143 Add plugin APIs to Java interface
This commit is contained in:
parent
399060c17a
commit
f9199536d0
@ -7202,6 +7202,78 @@ public class H5 implements java.io.Serializable {
|
|||||||
**/
|
**/
|
||||||
public synchronized static native int H5PLget_loading_state() throws HDF5LibraryException;
|
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 //
|
// H5R: HDF5 1.8 Reference API Functions //
|
||||||
|
@ -61,6 +61,167 @@ Java_hdf_hdf5lib_H5_H5PLget_1loading_1state
|
|||||||
return (jint)plugin_type;
|
return (jint)plugin_type;
|
||||||
} /* end Java_hdf_hdf5lib_H5_H5PLget_1loading_1state */
|
} /* 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
|
#ifdef __cplusplus
|
||||||
} /* end extern "C" */
|
} /* end extern "C" */
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -41,6 +41,69 @@ JNIEXPORT jint JNICALL
|
|||||||
Java_hdf_hdf5lib_H5_H5PLget_1loading_1state
|
Java_hdf_hdf5lib_H5_H5PLget_1loading_1state
|
||||||
(JNIEnv *, jclass);
|
(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
|
#ifdef __cplusplus
|
||||||
} /* end extern "C" */
|
} /* end extern "C" */
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -633,13 +633,14 @@ JUnit version 4.11
|
|||||||
.testH5Ocomment_clear
|
.testH5Ocomment_clear
|
||||||
.testH5Ocopy_cur_not_exists
|
.testH5Ocopy_cur_not_exists
|
||||||
.TestH5PLplugins
|
.TestH5PLplugins
|
||||||
|
.TestH5PLpaths
|
||||||
.testH5Zfilter_avail
|
.testH5Zfilter_avail
|
||||||
.testH5Zunregister_predefined
|
.testH5Zunregister_predefined
|
||||||
.testH5Zget_filter_info
|
.testH5Zget_filter_info
|
||||||
|
|
||||||
Time: XXXX
|
Time: XXXX
|
||||||
|
|
||||||
OK (637 tests)
|
OK (638 tests)
|
||||||
|
|
||||||
HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||||
#000: (file name) line (number) in H5Fopen(): can't set access and transfer property lists
|
#000: (file name) line (number) in H5Fopen(): can't set access and transfer property lists
|
||||||
|
@ -69,6 +69,36 @@ public class TestH5PL {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void TestH5PLpaths() {
|
||||||
|
try {
|
||||||
|
int original_entries = H5.H5PLsize();
|
||||||
|
H5.H5PLappend("path_one");
|
||||||
|
int plugin_entries = H5.H5PLsize();
|
||||||
|
assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+1) == plugin_entries);
|
||||||
|
H5.H5PLprepend("path_two");
|
||||||
|
plugin_entries = H5.H5PLsize();
|
||||||
|
assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+2) == plugin_entries);
|
||||||
|
H5.H5PLinsert("path_three", original_entries);
|
||||||
|
plugin_entries = H5.H5PLsize();
|
||||||
|
assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+3) == plugin_entries);
|
||||||
|
String first_path = H5.H5PLget(original_entries);
|
||||||
|
assertTrue("First path was : "+first_path + " ",first_path.compareToIgnoreCase("path_three")==0);
|
||||||
|
H5.H5PLreplace("path_four", original_entries);
|
||||||
|
first_path = H5.H5PLget(original_entries);
|
||||||
|
assertTrue("First path changed to : "+first_path + " ",first_path.compareToIgnoreCase("path_four")==0);
|
||||||
|
H5.H5PLremove(original_entries);
|
||||||
|
first_path = H5.H5PLget(original_entries);
|
||||||
|
assertTrue("First path now : "+first_path + " ",first_path.compareToIgnoreCase("path_two")==0);
|
||||||
|
plugin_entries = H5.H5PLsize();
|
||||||
|
assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+2) == plugin_entries);
|
||||||
|
}
|
||||||
|
catch (Throwable err) {
|
||||||
|
err.printStackTrace();
|
||||||
|
fail("TestH5PLpaths " + err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
public void TestH5PLdlopen() {
|
public void TestH5PLdlopen() {
|
||||||
long file_id = -1;
|
long file_id = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user