/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright by The HDF Group. * * Copyright by the Board of Trustees of the University of Illinois. * * All rights reserved. * * * * This file is part of HDF5. The full HDF5 copyright notice, including * * terms governing use, modification, and redistribution, is contained in * * the COPYING file, which can be found at the root of the source code * * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * * If you do not have access to either file, you may request a copy from * * help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * For details of the HDF libraries, see the HDF Documentation at: * http://hdfgroup.org/HDF5/doc/ * */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include "hdf5.h" #include "h5util.h" #include "h5pImp.h" extern JavaVM *jvm; extern jobject visit_callback; extern jobject copy_callback; extern jobject close_callback; extern jobject create_callback; extern jobject compare_callback; extern jobject get_callback; extern jobject set_callback; extern jobject delete_callback; /********************/ /* Local Prototypes */ /********************/ static herr_t H5P_cls_create_func_cb(hid_t prop_id, void *create_data); static herr_t H5P_cls_copy_func_cb(hid_t new_prop_id, hid_t old_prop_id, void *copy_data); static herr_t H5P_cls_close_func_cb(hid_t prop_id, void *close_data); static herr_t H5P_prp_create_func_cb(const char *name, size_t size, void *value); static herr_t H5P_prp_copy_func_cb(const char *name, size_t size, void *value); static herr_t H5P_prp_close_func_cb(const char *name, size_t size, void *value); static int H5P_prp_compare_func_cb(void *value1, void *value2, size_t size); static herr_t H5P_prp_get_func_cb(hid_t prop_id, const char *name, size_t size, void *value); static herr_t H5P_prp_set_func_cb(hid_t prop_id, const char *name, size_t size, void *value); static herr_t H5P_prp_delete_func_cb(hid_t prop_id, const char *name, size_t size, void *value); static herr_t H5P_iterate_cb(hid_t prop_id, const char *name, void *op_data); /* * Class: hdf_hdf5lib_H5 * Method: H5Pcreate * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5__1H5Pcreate (JNIEnv *env, jclass clss, jlong type) { hid_t retVal = -1; retVal = H5Pcreate((hid_t)type); if (retVal < 0) h5libraryError(env); return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5__1H5Pcreate */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pclose * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5__1H5Pclose (JNIEnv *env, jclass clss, jlong plist) { herr_t retVal = 0; if (plist > 0) retVal = H5Pclose((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5__1H5Pclose */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_class * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1class (JNIEnv *env, jclass clss, jlong plist) { hid_t retVal = -1; retVal = H5Pget_class((hid_t) plist); if (retVal == H5P_ROOT) h5libraryError(env); return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1class */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pcopy * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5__1H5Pcopy (JNIEnv *env, jclass clss, jlong plist) { hid_t retVal = -1; retVal = H5Pcopy((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5__1H5Pcopy */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_version * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1version (JNIEnv *env, jclass clss, jlong plist, jintArray version_info) { herr_t status = -1; jint *theArray; jboolean isCopy; if (version_info == NULL) { h5nullArgument(env, "H5Pget_version: version_info input array is NULL"); } /* end if */ else if (ENVPTR->GetArrayLength(ENVPAR version_info) < 4) { h5badArgument(env, "H5Pget_version: version_info input array < 4"); } /* end else if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR version_info, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_version: version_info not pinned"); } /* end if */ else { status = H5Pget_version((hid_t)plist, (unsigned *)&(theArray[0]), (unsigned *)&(theArray[1]), (unsigned *)&(theArray[2]), (unsigned *)&(theArray[3])); if (status < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR version_info, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR version_info, theArray, 0); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1version */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_userblock * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1userblock (JNIEnv *env, jclass clss, jlong plist, jlong size) { herr_t retVal = -1; long sz = (long)size; retVal = H5Pset_userblock((hid_t)plist, (hsize_t)sz); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1userblock */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_userblock * Signature: (J[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1userblock (JNIEnv *env, jclass clss, jlong plist, jlongArray size) { herr_t status = -1; jlong *theArray; jboolean isCopy; hsize_t s; if (size == NULL) { h5nullArgument(env, "H5Pget_userblock: size is NULL"); } /* end if */ else { theArray = (jlong*)ENVPTR->GetLongArrayElements(ENVPAR size, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_userblock: size not pinned"); } /* end if */ else { status = H5Pget_userblock((hid_t)plist, &s); if (status < 0) { ENVPTR->ReleaseLongArrayElements(ENVPAR size, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = (jlong)s; ENVPTR->ReleaseLongArrayElements(ENVPAR size, theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1userblock */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_sizes * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1sizes (JNIEnv *env, jclass clss, jlong plist, jint sizeof_addr, jint sizeof_size) { herr_t retVal = -1; retVal = H5Pset_sizes((hid_t)plist, (size_t)sizeof_addr, (size_t)sizeof_size); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1sizes */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_sizes * Signature: (J[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1sizes (JNIEnv *env, jclass clss, jlong plist, jlongArray size) { herr_t status = -1; jlong *theArray; jboolean isCopy; size_t ss; size_t sa; if (size == NULL) { h5nullArgument(env, "H5Pget_sizes: size is NULL"); } /* end if */ else if (ENVPTR->GetArrayLength(ENVPAR size) < 2) { h5badArgument(env, "H5Pget_sizes: size input array < 2 elements"); } else { theArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR size, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_sizes: size not pinned"); } /* end if */ else { status = H5Pget_sizes((hid_t)plist, &sa, &ss); if (status < 0) { ENVPTR->ReleaseLongArrayElements(ENVPAR size, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = (jlong)sa; theArray[1] = (jlong)ss; ENVPTR->ReleaseLongArrayElements(ENVPAR size, theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1sizes */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_sym_k * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1sym_1k (JNIEnv *env, jclass clss, jlong plist, jint ik, jint lk) { herr_t retVal = -1; retVal = H5Pset_sym_k((hid_t)plist, (unsigned)ik, (unsigned)lk); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1sym_1k */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_sym_k * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1sym_1k (JNIEnv *env, jclass clss, jlong plist, jintArray size) { herr_t status = -1; jint *theArray; jboolean isCopy; if (size == NULL) { h5nullArgument(env, "H5Pget_sym_k: size is NULL"); } /* end if */ else if (ENVPTR->GetArrayLength(ENVPAR size) < 2) { h5badArgument(env, "H5Pget_sym_k: size < 2 elements"); } /* end else if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR size, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_sym_k: size not pinned"); } /* end if */ else { status = H5Pget_sym_k((hid_t)plist, (unsigned *)&(theArray[0]), (unsigned *)&(theArray[1])); if (status < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR size, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR size, theArray, 0); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1sym_1k */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_istore_k * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1istore_1k (JNIEnv *env, jclass clss, jlong plist, jint ik) { herr_t retVal = -1; retVal = H5Pset_istore_k((hid_t)plist, (unsigned)ik); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1istore_1k */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_istore_k * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1istore_1k (JNIEnv *env, jclass clss, jlong plist, jintArray ik) { herr_t status = -1; jint *theArray; jboolean isCopy; if (ik == NULL) { h5nullArgument(env, "H5Pget_store_k: ik is NULL"); } /* end if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR ik, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_store_k: size not pinned"); } /* end if */ else { status = H5Pget_istore_k((hid_t)plist, (unsigned *)&(theArray[0])); if (status < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR ik, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR ik, theArray, 0); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1istore_1k */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_layout * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1layout (JNIEnv *env, jclass clss, jlong plist, jint layout) { herr_t retVal = -1; retVal = H5Pset_layout((hid_t)plist, (H5D_layout_t)layout); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1layout */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_layout * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1layout (JNIEnv *env, jclass clss, jlong plist) { H5D_layout_t retVal = H5D_LAYOUT_ERROR; retVal = H5Pget_layout((hid_t)plist); if (retVal == H5D_LAYOUT_ERROR) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1layout */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_chunk * Signature: (JI[B)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1chunk (JNIEnv *env, jclass clss, jlong plist, jint ndims, jbyteArray dim) { herr_t status = -1; jbyte *theArray; jboolean isCopy; hsize_t *da; hsize_t *lp; jlong *jlp; size_t i; size_t rank; if (dim == NULL) { h5nullArgument(env, "H5Pset_chunk: dim array is NULL"); } /* end if */ else { i = (size_t)ENVPTR->GetArrayLength(ENVPAR dim); rank = i / sizeof(jlong); if (rank < ndims) { h5badArgument(env, "H5Pset_chunk: dims array < ndims"); } /* end if */ else { theArray = (jbyte *)ENVPTR->GetByteArrayElements(ENVPAR dim, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pset_chunk: dim array not pinned"); } /* end if */ else { da = lp = (hsize_t *)HDmalloc(rank * sizeof(hsize_t)); if (da == NULL) { ENVPTR->ReleaseByteArrayElements(ENVPAR dim, theArray, JNI_ABORT); h5JNIFatalError(env, "H5Pset_chunk: dims not converted to hsize_t"); } /* end if */ else { jlp = (jlong *)theArray; for (i = 0; i < rank; i++) { *lp = (hsize_t)*jlp; lp++; jlp++; } /* end if */ status = H5Pset_chunk((hid_t)plist, (int)ndims, da); ENVPTR->ReleaseByteArrayElements(ENVPAR dim, theArray, JNI_ABORT); HDfree(da); if (status < 0) h5libraryError(env); } /* end else */ } /* end else */ } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pset_1chunk */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_chunk * Signature: (JI[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1chunk (JNIEnv *env, jclass clss, jlong plist, jint max_ndims, jlongArray dims) { herr_t status = -1; jlong *theArray; jboolean isCopy; hsize_t *da; int i; if (dims == NULL) { h5nullArgument(env, "H5Pget_chunk: dims is NULL"); } /* end if */ else if (ENVPTR->GetArrayLength(ENVPAR dims) < max_ndims) { h5badArgument(env, "H5Pget_chunk: dims array < max_ndims"); } /* end else if */ else { theArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR dims, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_chunk: input dims not pinned"); } /* end if */ else { da = (hsize_t *)HDmalloc((size_t)max_ndims * sizeof(hsize_t)); if (da == NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR dims, theArray, JNI_ABORT); h5JNIFatalError(env, "H5Pget_chunk: dims not converted to hsize_t"); } /* end if */ else { status = H5Pget_chunk((hid_t)plist, (int)max_ndims, da); if (status < 0) { ENVPTR->ReleaseLongArrayElements(ENVPAR dims, theArray, JNI_ABORT); HDfree (da); h5libraryError(env); } /* end if */ else { for (i = 0; i < max_ndims; i++) { theArray[i] = (jlong)da[i]; } HDfree (da); ENVPTR->ReleaseLongArrayElements(ENVPAR dims, theArray, 0); } /* end else */ } /* end else */ } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1chunk */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_alignment * Signature: (JJJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1alignment (JNIEnv *env, jclass clss, jlong plist, jlong threshold, jlong alignment) { herr_t retVal = -1; long thr = (long)threshold; long align = (long)alignment; retVal = H5Pset_alignment((hid_t)plist, (hsize_t)thr, (hsize_t)align); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1alignment */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_alignment * Signature: (J[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1alignment (JNIEnv *env, jclass clss, jlong plist, jlongArray alignment) { herr_t status = -1; jlong *theArray; jboolean isCopy; hsize_t t; hsize_t a; if (alignment == NULL) { h5nullArgument(env, "H5Pget_alignment: input alignment is NULL"); } /* end if */ else { if (ENVPTR->GetArrayLength(ENVPAR alignment) < 2) { h5badArgument(env, "H5Pget_alignment: alignment input array < 2"); } /* end if */ else { theArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR alignment, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_alignment: input array not pinned"); } /* end if */ else { status = H5Pget_alignment((hid_t)plist, &t, &a); if (status < 0) { ENVPTR->ReleaseLongArrayElements(ENVPAR alignment, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = (jlong)t; theArray[1] = (jlong)a; ENVPTR->ReleaseLongArrayElements(ENVPAR alignment, theArray, 0); } /* end else */ } /* end else */ } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1alignment */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_external * Signature: (JLjava/lang/String;JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1external (JNIEnv *env, jclass clss, jlong plist, jstring name, jlong offset, jlong size) { herr_t status = -1; const char *fileName; off_t off; hsize_t sz; hid_t plid; plid = (hid_t)plist; off = (off_t)offset; sz = (hsize_t)size; PIN_JAVA_STRING(name, fileName); if (fileName != NULL) { status = H5Pset_external(plid, fileName, off, sz); UNPIN_JAVA_STRING(name, fileName); if (status < 0) h5libraryError(env); } return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pset_1external */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_external_count * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1external_1count (JNIEnv *env, jclass clss, jlong plist) { int retVal = -1; retVal = H5Pget_external_count((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1external_1count */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_external * Signature: (JIJ[Ljava/lang/String;[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1external (JNIEnv *env, jclass clss, jlong plist, jint idx, jlong name_size, jobjectArray name, jlongArray size) { herr_t status = -1; jlong *theArray; jboolean isCopy; char *file = NULL; jstring str; off_t o; hsize_t s; if (name_size < 0) { h5badArgument(env, "H5Pget_external: name_size < 0"); } /* end if */ else if ((size != NULL) && (ENVPTR->GetArrayLength(ENVPAR size) < 2)) { h5badArgument(env, "H5Pget_external: size input array < 2"); } /* end else if */ else { if (name_size > 0) { file = (char *)HDmalloc(sizeof(char)*(size_t)name_size); } /* end else */ status = H5Pget_external((hid_t) plist, (unsigned)idx, (size_t)name_size, file, (off_t *)&o, (hsize_t *)&s); if (status < 0) { HDfree(file); h5libraryError(env); } /* end if */ else { if (size != NULL) { theArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR size, &isCopy); if (theArray == NULL) { h5JNIFatalError( env, "H5Pget_external: size array not pinned"); } /* end if */ else { theArray[0] = o; theArray[1] = (jlong)s; ENVPTR->ReleaseLongArrayElements(ENVPAR size, theArray, 0); } } /* end if */ if (file != NULL) { /* NewStringUTF may throw OutOfMemoryError */ str = ENVPTR->NewStringUTF(ENVPAR file); if (str == NULL) { HDfree(file); h5JNIFatalError(env, "H5Pget_external: return array not created"); } /* end if */ else { /* SetObjectArrayElement may raise exceptions */ ENVPTR->SetObjectArrayElement(ENVPAR name, 0, (jobject)str); HDfree(file); } /* end else */ } /* end if */ } /* end else */ } return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1external */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fill_value * Signature: (JJ[B)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fill_1value (JNIEnv *env, jclass clss, jlong plist_id, jlong type_id, jbyteArray value) { jint status = -1; jbyte *byteP = NULL; jboolean isCopy; if (value != NULL) { byteP = ENVPTR->GetByteArrayElements(ENVPAR value, &isCopy); if (byteP == NULL) { h5JNIFatalError(env, "H5Pget_fill_value: value array not pinned"); } /* end if */ else { status = H5Pset_fill_value((hid_t)plist_id, (hid_t)type_id, byteP); ENVPTR->ReleaseByteArrayElements(ENVPAR value, byteP, JNI_ABORT); } } /* end if */ else { status = H5Pset_fill_value((hid_t)plist_id, (hid_t)type_id, byteP); } if (status < 0) h5libraryError(env); return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fill_1value */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fill_value * Signature: (JJ[B)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fill_1value (JNIEnv *env, jclass clss, jlong plist_id, jlong type_id, jbyteArray value) { jint status = -1; jbyte *byteP; jboolean isCopy; if (value == NULL) { h5badArgument(env, "H5Pget_fill_value: value is NULL"); } /* end if */ else { byteP = ENVPTR->GetByteArrayElements(ENVPAR value, &isCopy); if (byteP == NULL) { h5JNIFatalError(env, "H5Pget_fill_value: value array not pinned"); } /* end if */ else { status = H5Pget_fill_value((hid_t)plist_id, (hid_t)type_id, byteP); if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR value, byteP, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseByteArrayElements(ENVPAR value, byteP, 0); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1fill_1value */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_filter * Signature: (JIIJ[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1filter (JNIEnv *env, jclass clss, jlong plist, jint filter, jint flags, jlong cd_nelmts, jintArray cd_values) { herr_t status = -1; jint *theArray; jboolean isCopy; if (cd_values == NULL) { status = H5Pset_filter((hid_t)plist, (H5Z_filter_t)filter, (unsigned int)flags, (size_t)cd_nelmts, NULL); if (status < 0) h5libraryError(env); } /* end if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR cd_values, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pset_filter: input array not pinned"); }/* end if */ else { status = H5Pset_filter((hid_t)plist, (H5Z_filter_t)filter, (unsigned int)flags, (size_t)cd_nelmts, (const unsigned int *)theArray); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, theArray, JNI_ABORT); if (status < 0) h5libraryError(env); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pset_1filter */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_nfilters * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1nfilters (JNIEnv *env, jclass clss, jlong plist) { int retVal = -1; retVal = H5Pget_nfilters((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1nfilters */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_filter * Signature: (JI[I[J[IJ[Ljava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1filter (JNIEnv *env, jclass clss, jlong plist, jint filter_number, jintArray flags, jlongArray cd_nelmts, jintArray cd_values, jlong namelen, jobjectArray name) { herr_t status = -1; jint *flagsArray; jlong *cd_nelmtsArray; jint *cd_valuesArray; jint mode = JNI_ABORT; jboolean isCopy; jstring str; char *filter; if (namelen <= 0) { h5badArgument(env, "H5Pget_filter: namelen <= 0"); } /* end if */ else if (flags == NULL) { h5badArgument(env, "H5Pget_filter: flags is NULL"); } /* end else if */ else if (cd_nelmts == NULL) { h5badArgument(env, "H5Pget_filter: cd_nelmts is NULL"); } /* end else if */ else if (cd_values == NULL) { h5badArgument(env, "H5Pget_filter: cd_values is NULL"); } /* end else if */ else { filter = (char *)HDmalloc(sizeof(char)*(size_t)namelen); if (filter == NULL) { h5outOfMemory(env, "H5Pget_filter: namelen malloc failed"); } /* end if */ else { flagsArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR flags, &isCopy); if (flagsArray == NULL) { h5JNIFatalError(env, "H5Pget_filter: flags array not pinned"); } /* end if */ else { cd_nelmtsArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR cd_nelmts, &isCopy); if (cd_nelmtsArray == NULL) { h5JNIFatalError(env, "H5Pget_filter: nelmts array not pinned"); } /* end if */ else { cd_valuesArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR cd_values, &isCopy); if (cd_valuesArray == NULL) { h5JNIFatalError(env, "H5Pget_filter: elmts array not pinned"); } /* end if */ else { /* direct cast (size_t *)variable fails on 32-bit environment */ long long cd_nelmts_temp = *(cd_nelmtsArray); size_t cd_nelmts_t = (size_t)cd_nelmts_temp; unsigned int filter_config; status = H5Pget_filter2((hid_t)plist, (unsigned)filter_number, (unsigned int *)flagsArray, &cd_nelmts_t, (unsigned int *)cd_valuesArray, (size_t)namelen, filter, &filter_config); *cd_nelmtsArray = (jlong)cd_nelmts_t; /* end direct cast special */ if (status < 0) { h5libraryError(env); } /* end if */ else { mode = 0; /* NewStringUTF may throw OutOfMemoryError */ str = ENVPTR->NewStringUTF(ENVPAR filter); if (str == NULL) { h5JNIFatalError(env, "H5Pget_filter: return string not pinned"); } /* end if */ else { /* SetObjectArrayElement may throw exceptiosn */ ENVPTR->SetObjectArrayElement(ENVPAR name, 0, (jobject)str); } /* end else */ } /* end else */ ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, mode); } ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, mode); } ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, mode); } HDfree(filter); } } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1filter */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_driver * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1driver (JNIEnv *env, jclass clss, jlong plist) { hid_t retVal = -1; retVal = H5Pget_driver((hid_t) plist); if (retVal < 0) h5libraryError(env); return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1driver */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_cache * Signature: (JIJJD)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1cache (JNIEnv *env, jclass clss, jlong plist, jint mdc_nelmts, jlong rdcc_nelmts, jlong rdcc_nbytes, jdouble rdcc_w0) { herr_t retVal = -1; retVal = H5Pset_cache((hid_t)plist, (int)mdc_nelmts, (size_t)rdcc_nelmts, (size_t)rdcc_nbytes, (double) rdcc_w0); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1cache */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_cache * Signature: (J[I[J[J[D)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1cache (JNIEnv *env, jclass clss, jlong plist, jintArray mdc_nelmts, jlongArray rdcc_nelmts, jlongArray rdcc_nbytes, jdoubleArray rdcc_w0) { herr_t status = -1; jint mode; jdouble *w0Array = (jdouble *)NULL; jlong *rdcc_nelmtsArray = (jlong *)NULL; jlong *nbytesArray = (jlong *)NULL; jboolean isCopy; if (rdcc_w0 != NULL) { w0Array = (jdouble *)ENVPTR->GetDoubleArrayElements(ENVPAR rdcc_w0, &isCopy); if (w0Array == NULL) { h5JNIFatalError(env, "H5Pget_cache: w0_array array not pinned"); return -1; } /* end if */ } /* end else */ if (rdcc_nelmts != NULL) { rdcc_nelmtsArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR rdcc_nelmts, &isCopy); if (rdcc_nelmtsArray == NULL) { /* exception -- out of memory */ if (w0Array != NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR rdcc_w0, w0Array, JNI_ABORT); } h5JNIFatalError(env, "H5Pget_cache: rdcc_nelmts array not pinned"); return -1; } /* end if */ } /* end else */ if (rdcc_nbytes != NULL) { nbytesArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR rdcc_nbytes, &isCopy); if (nbytesArray == NULL) { if (w0Array != NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR rdcc_w0, w0Array, JNI_ABORT); } /* end if */ if (rdcc_nelmtsArray != NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR rdcc_nelmts, rdcc_nelmtsArray, JNI_ABORT); } /* end if */ h5JNIFatalError(env, "H5Pget_cache: nbytesArray array not pinned"); return -1; } /* end if */ } /* end else */ { /* direct cast (size_t *)variable fails on 32-bit environment */ long long rdcc_nelmts_temp = *(rdcc_nelmtsArray); size_t rdcc_nelmts_t = (size_t)rdcc_nelmts_temp; long long nbytes_temp = *(nbytesArray); size_t nbytes_t = (size_t)nbytes_temp; status = H5Pget_cache((hid_t)plist, (int *)NULL, &rdcc_nelmts_t, &nbytes_t, (double *)w0Array); *rdcc_nelmtsArray = (jlong)rdcc_nelmts_t; *nbytesArray = (jlong)nbytes_t; } /* end direct cast special */ if (status < 0) { mode = JNI_ABORT; } /* end if */ else { mode = 0; /* commit and free */ } /* end else */ if (rdcc_nelmtsArray != NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR rdcc_nelmts, rdcc_nelmtsArray, mode); } /* end if */ if (nbytesArray != NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR rdcc_nbytes, nbytesArray, mode); } /* end if */ if (w0Array != NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR rdcc_w0, w0Array, mode); } /* end if */ if (status < 0) { h5libraryError(env); } /* end if */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1cache */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_buffer * Signature: (JJ[B[B)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1buffer (JNIEnv *env, jclass clss, jlong plist, jlong size, jbyteArray tconv, jbyteArray bkg) { h5unimplemented(env, "H5Pset_buffer: not implemented"); return -1; #ifdef notdef /* DON'T IMPLEMENT THIS!!! */ jint status = -1; jbyte *tconvP; jbyte *bkgP; jboolean isCopy; if (tconv == NULL) tconvP = (jbyte *)NULL; else { tconvP = ENVPTR->GetByteArrayElements(ENVPAR tconv, &isCopy); if (tconvP == NULL) { h5JNIFatalError(env, "H5Pset_buffer: tconv not pinned"); return -1; } } if (bkg == NULL) bkgP = (jbyte *)NULL; else { bkgP = ENVPTR->GetByteArrayElements(ENVPAR bkg, &isCopy); if (bkgP == NULL) { h5JNIFatalError(env, "H5Pset_buffer: bkg not pinned"); return -1; } } status = H5Pset_buffer((hid_t)plist, (size_t)size, tconvP, bkgP); if (status < 0) { if (tconv != NULL) ENVPTR->ReleaseByteArrayElements(ENVPAR tconv, tconvP, JNI_ABORT); if (bkg != NULL) ENVPTR->ReleaseByteArrayElements(ENVPAR bkg, bkgP, JNI_ABORT); h5libraryError(env); return -1; } if (tconv != NULL) ENVPTR->ReleaseByteArrayElements(ENVPAR tconv, tconvP, 0); if (bkg != NULL) ENVPTR->ReleaseByteArrayElements(ENVPAR bkg, bkgP, 0); return (jint)status; #endif } /* end Java_hdf_hdf5lib_H5_H5Pset_1buffer */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_buffer * Signature: (J[B[B)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1buffer (JNIEnv *env, jclass clss, jlong plist, jbyteArray tconv, jbyteArray bkg) { h5unimplemented(env, "H5Pget_buffer: not implemented"); return -1; #ifdef notdef /* DON'T IMPLEMENT THIS!!! */ jlong status = -1; jbyte *tconvP; jbyte *bkgP; jboolean isCopy; if (tconv == NULL) { h5nullArgument(env, "H5Pget_buffer: tconv input array is NULL"); return -1; } tconvP = ENVPTR->GetByteArrayElements(ENVPAR tconv, &isCopy); if (tconvP == NULL) { h5JNIFatalError(env, "H5Pget_buffer: tconv not pinned"); return -1; } if (bkg == NULL) { h5nullArgument(env, "H5Pget_buffer: bkg array is NULL"); return -1; } bkgP = ENVPTR->GetByteArrayElements(ENVPAR bkg, &isCopy); if (bkgP == NULL) { h5JNIFatalError(env, "H5Pget_buffer: bkg not pinned"); return -1; } status = H5Pget_buffer((hid_t)plist, tconvP, bkgP); if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR tconv, tconvP, JNI_ABORT); ENVPTR->ReleaseByteArrayElements(ENVPAR bkg, bkgP, JNI_ABORT); h5libraryError(env); return -1; } ENVPTR->ReleaseByteArrayElements(ENVPAR tconv, tconvP, 0); ENVPTR->ReleaseByteArrayElements(ENVPAR bkg, bkgP, 0); return (jint)status; #endif } /* end Java_hdf_hdf5lib_H5_H5Pget_1buffer */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_buffer_size * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1buffer_1size (JNIEnv *env, jclass clss, jlong plist, jlong size) { if (H5Pset_buffer((hid_t)plist, (size_t)size, NULL, NULL) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1buffer_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_buffer_size * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1buffer_1size (JNIEnv *env, jclass clss, jlong plist) { size_t size = 0; size = H5Pget_buffer((hid_t)plist, NULL, NULL); if (size == 0) h5libraryError(env); return (jlong)size; } /* end Java_hdf_hdf5lib_H5_H5Pget_1buffer_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_preserve * Signature: (JZ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1preserve (JNIEnv *env, jclass clss, jlong plist, jboolean status) { hbool_t st; herr_t retVal = -1; if (status == JNI_TRUE) { st = TRUE; } /* end if */ else if (status == JNI_FALSE) { st = false; } /* end else if */ else { h5badArgument(env, "H5Pset_preserve: status not TRUE or FALSE"); return -1; } /* end else */ retVal = H5Pset_preserve((hid_t)plist, st); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1preserve */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_preserve * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1preserve (JNIEnv *env, jclass clss, jlong plist) { herr_t retVal = -1; retVal = H5Pget_preserve((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1preserve */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_deflate * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1deflate (JNIEnv *env, jclass clss, jlong plist, jint level) { herr_t retVal = -1; retVal = H5Pset_deflate((hid_t)plist, (unsigned)level); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1deflate */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_gc_references * Signature: (JZ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1gc_1references (JNIEnv *env, jclass clss, jlong fapl_id, jboolean gc_ref) { herr_t retVal = -1; unsigned gc_ref_val; if (gc_ref == JNI_TRUE) gc_ref_val = 1; else gc_ref_val = 0; retVal = H5Pset_gc_references((hid_t)fapl_id, gc_ref_val); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1gc_1references */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_gc_references * Signature: (J)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pget_1gc_1references (JNIEnv *env, jclass clss, jlong fapl_id) { unsigned gc_ref_val = 0; jboolean bval = JNI_FALSE; if (H5Pget_gc_references((hid_t)fapl_id, (unsigned *)&gc_ref_val) < 0) { h5libraryError(env); } /* end if */ else { if (gc_ref_val == 1) bval = JNI_TRUE; } /* end else */ return bval; } /* end Java_hdf_hdf5lib_H5_H5Pget_1gc_1references */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_btree_ratios * Signature: (JDDD)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1btree_1ratios (JNIEnv *env, jclass clss, jlong plist_id, jdouble left, jdouble middle, jdouble right) { herr_t status = -1; status = H5Pset_btree_ratios((hid_t)plist_id, (double)left,(double)middle, (double)right); if (status < 0) h5libraryError(env); return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pset_1btree_1ratios */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_btree_ratios * Signature: (J[D[D[D)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1btree_1ratios (JNIEnv *env, jclass clss, jlong plist_id, jdoubleArray left, jdoubleArray middle, jdoubleArray right) { herr_t status = -1; jdouble *leftP; jdouble *middleP; jdouble *rightP; jboolean isCopy; if (left == NULL) { h5nullArgument(env, "H5Pget_btree_ratios: left input array is NULL"); } /* end if */ else if (middle == NULL) { h5nullArgument(env, "H5Pget_btree_ratios: middle input array is NULL"); } /* end else if */ else if (right == NULL) { h5nullArgument(env, "H5Pget_btree_ratios: right input array is NULL"); } /* end else if */ else { leftP = (jdouble *)ENVPTR->GetDoubleArrayElements(ENVPAR left, &isCopy); if (leftP == NULL) { h5JNIFatalError(env, "H5Pget_btree_ratios: left not pinned"); } /* end if */ else { middleP = (jdouble *)ENVPTR->GetDoubleArrayElements(ENVPAR middle, &isCopy); if (middleP == NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR left, leftP, JNI_ABORT); h5JNIFatalError(env, "H5Pget_btree_ratios: middle not pinned"); } /* end if */ else { rightP = (jdouble *)ENVPTR->GetDoubleArrayElements(ENVPAR right, &isCopy); if (rightP == NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR left, leftP, JNI_ABORT); ENVPTR->ReleaseDoubleArrayElements(ENVPAR middle, middleP, JNI_ABORT); h5JNIFatalError(env, "H5Pget_btree_ratios: middle not pinned"); } /* end if */ else { status = H5Pget_btree_ratios((hid_t)plist_id, (double *)leftP, (double *)middleP, (double *)rightP); if (status < 0) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR left, leftP, JNI_ABORT); ENVPTR->ReleaseDoubleArrayElements(ENVPAR middle, middleP, JNI_ABORT); ENVPTR->ReleaseDoubleArrayElements(ENVPAR right, rightP, JNI_ABORT); h5libraryError(env); } /* end if */ else { ENVPTR->ReleaseDoubleArrayElements(ENVPAR left, leftP, 0); ENVPTR->ReleaseDoubleArrayElements(ENVPAR middle, middleP, 0); ENVPTR->ReleaseDoubleArrayElements(ENVPAR right, rightP, 0); } /* end else */ } /* end else */ } /* end else */ } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1btree_1ratios */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_small_data_block_size * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1small_1data_1block_1size (JNIEnv *env, jclass clss, jlong plist, jlong size) { long sz = (long)size; herr_t retVal = -1; retVal = H5Pset_small_data_block_size((hid_t)plist, (hsize_t)sz); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1small_1data_1block_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_small_data_block_size * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1small_1data_1block_1size (JNIEnv *env, jclass clss, jlong plist) { hsize_t s; if (H5Pget_small_data_block_size((hid_t)plist, &s) < 0) h5libraryError(env); return (jlong)s; } /* end Java_hdf_hdf5lib_H5_H5Pget_1small_1data_1block_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_alloc_time * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1alloc_1time (JNIEnv *env, jclass clss, jlong plist, jint alloc_time) { herr_t retVal = -1; retVal = H5Pset_alloc_time((hid_t)plist, (H5D_alloc_time_t)alloc_time); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1alloc_1time */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_alloc_time * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1alloc_1time (JNIEnv *env, jclass clss, jlong plist, jintArray alloc_time) { herr_t retVal = -1; jint *theArray; jboolean isCopy; H5D_alloc_time_t time; if (alloc_time == NULL) { /* exception ? */ h5nullArgument(env, "H5Pget_alloc_time: alloc_time is NULL"); } /* end if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR alloc_time, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_alloc_time: alloc_time not pinned"); } /* end if */ else { retVal = H5Pget_alloc_time((hid_t)plist, &time); if (retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR alloc_time, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = time; ENVPTR->ReleaseIntArrayElements(ENVPAR alloc_time, theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1alloc_1time */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fill_time * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fill_1time (JNIEnv *env, jclass clss, jlong plist, jint fill_time) { herr_t retVal = -1; retVal = H5Pset_fill_time((hid_t)plist, (H5D_fill_time_t)fill_time); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fill_1time */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fill_time * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fill_1time (JNIEnv *env, jclass clss, jlong plist, jintArray fill_time) { herr_t retVal = -1; jint *theArray; jboolean isCopy; H5D_fill_time_t time; if (fill_time == NULL) { /* exception ? */ h5nullArgument(env, "H5Pget_fill_time: fill_time is NULL"); } /* end if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR fill_time, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_fill_time: fill_time not pinned"); } /* end if */ else { retVal = H5Pget_fill_time((hid_t)plist, &time); if (retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR fill_time, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = (jint)time; ENVPTR->ReleaseIntArrayElements(ENVPAR fill_time, theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1fill_1time */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pfill_value_defined * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pfill_1value_1defined (JNIEnv *env, jclass clss, jlong plist, jintArray status) { herr_t retVal = -1; jint *theArray; jboolean isCopy; H5D_fill_value_t value; if (status == NULL) { /* exception ? */ h5nullArgument(env, "H5Pfill_value_defined: status is NULL"); } /* end if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR status, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pfill_value_defined: status not pinned"); } /* end if */ else { retVal = H5Pfill_value_defined((hid_t)plist, &value); if (retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR status, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = value; ENVPTR->ReleaseIntArrayElements(ENVPAR status, theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pfill_1value_1defined */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fletcher32 * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fletcher32 (JNIEnv *env, jclass clss, jlong plist) { herr_t retVal = -1; retVal = H5Pset_fletcher32((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fletcher32 */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_edc_check * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1edc_1check (JNIEnv *env, jclass clss, jlong plist, jint check) { herr_t retVal = -1; retVal = H5Pset_edc_check((hid_t)plist, (H5Z_EDC_t)check); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1edc_1check */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_edc_check * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1edc_1check (JNIEnv *env, jclass clss, jlong plist) { H5Z_EDC_t retVal = -1; retVal = H5Pget_edc_check((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1edc_1check */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_shuffle * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1shuffle (JNIEnv *env, jclass clss, jlong plist) { herr_t retVal = -1; retVal = H5Pset_shuffle((hid_t)plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1shuffle */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_szip * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1szip (JNIEnv *env, jclass clss, jlong plist, jint options_mask, jint pixels_per_block) { herr_t retVal = -1; retVal = H5Pset_szip((hid_t)plist, (unsigned int)options_mask, (unsigned int)pixels_per_block); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1szip */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_hyper_vector_size * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1hyper_1vector_1size (JNIEnv *env, jclass clss, jlong plist, jlong vector_size) { herr_t retVal = -1; retVal = H5Pset_hyper_vector_size((hid_t)plist, (size_t)vector_size); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1hyper_1vector_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_hyper_vector_size * Signature: (J[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1hyper_1vector_1size (JNIEnv *env, jclass clss, jlong plist, jlongArray vector_size) { herr_t retVal = -1; jlong *theArray; size_t size; jboolean isCopy; if (vector_size == NULL) { /* exception ? */ h5nullArgument(env, "H5Pget_hyper_vector_size: vector_size is NULL"); } /* end if */ else { theArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR vector_size, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_hyper_vector_size: vector_size not pinned"); } /* end if */ else { retVal = H5Pget_hyper_vector_size((hid_t)plist, &size); if (retVal < 0) { ENVPTR->ReleaseLongArrayElements(ENVPAR vector_size, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = (jlong)size; ENVPTR->ReleaseLongArrayElements(ENVPAR vector_size, theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1hyper_1vector_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pall_filters_avail * Signature: (J)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pall_1filters_1avail (JNIEnv *env, jclass clss, jlong dcpl_id) { htri_t bval = JNI_FALSE; bval = H5Pall_filters_avail((hid_t)dcpl_id); if (bval > 0) bval = JNI_TRUE; else if (bval < 0) h5libraryError(env); return (jboolean)bval; } /* end Java_hdf_hdf5lib_H5_H5Pall_1filters_1avail */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pmodify_filter * Signature: (JIIJ[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pmodify_1filter (JNIEnv *env, jclass clss, jlong plist, jint filter, jint flags, jlong cd_nelmts, jintArray cd_values) { herr_t status = -1; jint *cd_valuesP; jboolean isCopy; if (cd_values == NULL) { h5nullArgument(env, "H5Pmodify_filter: cd_values is NULL"); } /* end if */ else { cd_valuesP = ENVPTR->GetIntArrayElements(ENVPAR cd_values,&isCopy); if (cd_valuesP == NULL) { h5JNIFatalError(env, "H5Pmodify_filter: cd_values not pinned"); } /* end if */ else { status = H5Pmodify_filter((hid_t)plist, (H5Z_filter_t)filter,(const unsigned int)flags, (size_t)cd_nelmts, (unsigned int *)cd_valuesP); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesP, JNI_ABORT); if (status < 0) h5libraryError(env); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pmodify_1filter */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_filter_by_id * Signature: (JI[I[J[IJ[Ljava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1filter_1by_1id (JNIEnv *env, jclass clss, jlong plist, jint filter, jintArray flags, jlongArray cd_nelmts, jintArray cd_values, jlong namelen, jobjectArray name) { jboolean isCopy; herr_t status = -1; jint *cd_valuesArray; jint *flagsArray; jlong *cd_nelmtsArray; jstring str; char *aName; int i = 0; int rank; long bs; bs = (long)namelen; if (bs <= 0) { h5badArgument(env, "H5Pget_filter_by_id: namelen <= 0"); } /* end if */ else if (flags == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: flags is NULL"); } /* end else if */ else if (cd_nelmts == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: cd_nelms is NULL"); } /* end else if */ else if (cd_values == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: cd_values is NULL"); } /* end else if */ else if (name == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: name is NULL"); } /* end else if */ else { aName = (char*)HDmalloc(sizeof(char) * (size_t)bs); if (aName == NULL) { h5outOfMemory(env, "H5Pget_filter_by_id: malloc failed"); return -1; } /* end if */ flagsArray = ENVPTR->GetIntArrayElements(ENVPAR flags, &isCopy); if (flagsArray == NULL) { HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: flags not pinned"); return -1; } /* end if */ cd_nelmtsArray = ENVPTR->GetLongArrayElements(ENVPAR cd_nelmts, &isCopy); if (cd_nelmtsArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: cd_nelms not pinned"); return -1; } /* end if */ cd_valuesArray = ENVPTR->GetIntArrayElements(ENVPAR cd_values, &isCopy); rank = ENVPTR->GetArrayLength(ENVPAR cd_values); if (cd_valuesArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, JNI_ABORT); HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: cd_values array not converted to unsigned int."); return -1; } /* end if */ { /* direct cast (size_t *)variable fails on 32-bit environment */ long long cd_nelmts_temp = *(cd_nelmtsArray); size_t cd_nelmts_t = (size_t)cd_nelmts_temp; unsigned int filter_config; status = H5Pget_filter_by_id2( (hid_t)plist, (H5Z_filter_t)filter, (unsigned int *)flagsArray, &cd_nelmts_t, (unsigned int *)cd_valuesArray, (size_t)namelen, (char *)aName, &filter_config); *cd_nelmtsArray = (jlong)cd_nelmts_t; } /* end direct cast special */ if (status < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, JNI_ABORT); HDfree(aName); h5libraryError(env); } /* end if */ else { str = ENVPTR->NewStringUTF(ENVPAR aName); ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, 0); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, 0); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, 0); HDfree(aName); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1filter_1by_1id */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fclose_degree * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fclose_1degree (JNIEnv *env, jclass clss, jlong plist, jint fc_degree) { herr_t retVal = -1; retVal = H5Pset_fclose_degree((hid_t)plist, (H5F_close_degree_t)fc_degree); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fclose_1degree */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fclose_degree * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fclose_1degree (JNIEnv *env, jclass clss, jlong plist) { H5F_close_degree_t degree; if (H5Pget_fclose_degree((hid_t)plist, °ree) < 0) h5libraryError(env); return (jint)degree; } /* end Java_hdf_hdf5lib_H5_H5Pget_1fclose_1degree */ /********************************************************************** * * * File access properties * * * **********************************************************************/ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_family * Signature: (JJJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1family (JNIEnv *env, jclass clss, jlong plist, jlong memb_size, jlong memb_plist) { long ms = (long)memb_size; herr_t retVal = -1; retVal = H5Pset_fapl_family((hid_t)plist, (hsize_t)ms, (hid_t)memb_plist); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1family */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fapl_family * Signature: (J[J[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fapl_1family (JNIEnv *env, jclass clss, jlong tid, jlongArray memb_size, jlongArray memb_plist) { herr_t status = -1; jlong *sizeArray; jlong *plistArray; jint mode = JNI_ABORT; jboolean isCopy; hsize_t *sa; size_t i; size_t rank; if (memb_size == NULL) { h5nullArgument(env, "H5Pget_family: memb_size is NULL"); } /* end if */ else if (memb_plist == NULL) { h5nullArgument(env, "H5Pget_family: memb_plist is NULL"); } /* end else if */ else { sizeArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR memb_size, &isCopy); if (sizeArray == NULL) { h5JNIFatalError(env, "H5Pget_family: sizeArray not pinned"); } /* end if */ else { rank = (size_t)ENVPTR->GetArrayLength(ENVPAR memb_size); sa = (hsize_t *)HDmalloc(rank * sizeof(hsize_t)); if (sa == NULL) { h5JNIFatalError(env, "H5Screate-simple: dims not converted to hsize_t"); } /* end if */ else { plistArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR memb_plist, &isCopy); if (plistArray == NULL) { h5JNIFatalError(env, "H5Pget_family: plistArray not pinned"); } /* end if */ else { status = H5Pget_fapl_family ((hid_t)tid, sa, (hid_t *)plistArray); if (status < 0) { h5libraryError(env); } /* end if */ else { for (i = 0; i < rank; i++) { sizeArray[i] = (jlong)sa[i]; } /* end for */ mode = 0; } /* end else */ ENVPTR->ReleaseLongArrayElements(ENVPAR memb_plist, plistArray, mode); } HDfree(sa); } ENVPTR->ReleaseLongArrayElements(ENVPAR memb_size, sizeArray, mode); } } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1fapl_1family */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_core * Signature: (JJZ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1core (JNIEnv *env, jclass clss, jlong fapl_id, jlong increment, jboolean backing_store) { herr_t retVal = -1; retVal = H5Pset_fapl_core((hid_t)fapl_id, (size_t)increment, (hbool_t)backing_store); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1core */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fapl_core * Signature: (J[J[Z)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fapl_1core (JNIEnv *env, jclass clss, jlong fapl_id, jlongArray increment, jbooleanArray backing_store) { herr_t status = -1; jint mode = JNI_ABORT; jlong *incArray; jboolean *backArray; jboolean isCopy; if (increment == NULL) { h5nullArgument(env, "H5Pget_fapl_core: increment is NULL"); } /* end if */ else if (backing_store == NULL) { h5nullArgument(env, "H5Pget_fapl_core: backing_store is NULL"); } /* end else if */ else { incArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR increment, &isCopy); if (incArray == NULL) { h5JNIFatalError(env, "H5Pget_fapl_core: incArray not pinned"); } /* end if */ else { backArray = (jboolean *)ENVPTR->GetBooleanArrayElements(ENVPAR backing_store, &isCopy); if (backArray == NULL) { h5JNIFatalError(env, "H5Pget_fapl_core: backArray not pinned"); } /* end if */ else { /* direct cast (size_t *)variable fails on 32-bit environment */ long long inc_temp = *(incArray); size_t inc_t = (size_t)inc_temp; status = H5Pget_fapl_core((hid_t)fapl_id, &inc_t, (hbool_t *)backArray); *incArray = (jlong)inc_t; /* end direct cast special */ if (status < 0) { h5libraryError(env); } /* end if */ else { mode = 0; } /* end else */ ENVPTR->ReleaseBooleanArrayElements(ENVPAR backing_store, backArray, mode); } ENVPTR->ReleaseLongArrayElements(ENVPAR increment, incArray, mode); } } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1fapl_1core */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_family_offset * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1family_1offset (JNIEnv *env, jclass clss, jlong fapl_id, jlong offset) { herr_t retVal = -1; retVal = H5Pset_family_offset ((hid_t)fapl_id, (hsize_t)offset); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1family_1offset */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_family_offset * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1family_1offset (JNIEnv *env, jclass clss, jlong fapl_id) { hsize_t offset = 0; herr_t retVal = -1; retVal = H5Pget_family_offset ((hid_t)fapl_id, &offset); if (retVal < 0) h5libraryError(env); return (jlong)offset; } /* end Java_hdf_hdf5lib_H5_H5Pget_1family_1offset */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_log * Signature: (JLjava/lang/String;JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1log (JNIEnv *env, jclass clss, jlong fapl_id, jstring logfile, jlong flags, jlong buf_size) { herr_t retVal = -1; const char *pLogfile; PIN_JAVA_STRING(logfile, pLogfile); if (pLogfile != NULL) { retVal = H5Pset_fapl_log( (hid_t)fapl_id, pLogfile, (unsigned long long)flags, (size_t)buf_size ); UNPIN_JAVA_STRING(logfile, pLogfile); if (retVal < 0) h5libraryError(env); } } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1log */ /* * Class: hdf_hdf5lib_H5 * Method: H5Premove_filter * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5P1remove_1filter (JNIEnv *env, jclass clss, jlong obj_id, jint filter) { herr_t status = -1; status = H5Premove_filter ((hid_t)obj_id, (H5Z_filter_t)filter); if (status < 0) h5libraryError(env); return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5P1remove_1filter */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset * Signature: (JLjava/lang/String;I)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pset (JNIEnv *env, jclass clss, jlong plid, jstring name, jint val) { hid_t retVal = -1; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { retVal = H5Pset((hid_t)plid, cstr, &val); UNPIN_JAVA_STRING(name, cstr); if (retVal < 0) h5libraryError(env); } return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pexist * Signature: (JLjava/lang/String;)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pexist (JNIEnv *env, jclass clss, jlong plid, jstring name) { htri_t bval = JNI_FALSE; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { bval = H5Pexist((hid_t)plid, cstr); UNPIN_JAVA_STRING(name, cstr); if (bval > 0) bval = JNI_TRUE; else if (bval < 0) h5libraryError(env); } return (jboolean)bval; } /* end Java_hdf_hdf5lib_H5_H5Pexist */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_size * Signature: (JLjava/lang/String;)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1size (JNIEnv *env, jclass clss, jlong plid, jstring name) { hid_t retVal = -1; const char *cstr; size_t size = 0; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { retVal = H5Pget_size((hid_t)plid, cstr, &size); UNPIN_JAVA_STRING(name, cstr); if (retVal < 0) h5libraryError(env); } return (jlong) size; } /* end Java_hdf_hdf5lib_H5_H5Pget_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_nprops * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1nprops (JNIEnv *env, jclass clss, jlong plid) { size_t nprops; if (H5Pget_nprops((hid_t)plid, &nprops) < 0) h5libraryError(env); return (jlong)nprops; } /* end Java_hdf_hdf5lib_H5_H5Pget_1nprops */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_class_name * Signature: (J)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_hdf_hdf5lib_H5_H5Pget_1class_1name (JNIEnv *env, jclass clss, jlong plid) { char *c_str; jstring j_str = NULL; c_str = H5Pget_class_name((hid_t)plid); if (c_str == NULL) { h5libraryError(env); } /* end if */ else { j_str = ENVPTR->NewStringUTF(ENVPAR c_str); H5free_memory(c_str); if (j_str == NULL) h5JNIFatalError(env,"H5Pget_class_name: return string failed"); } /* end else */ return j_str; } /* end Java_hdf_hdf5lib_H5_H5Pget_1class_1name */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_class_parent * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1class_1parent (JNIEnv *env, jclass clss, jlong plid) { hid_t retVal = -1; retVal = H5Pget_class_parent((hid_t)plid); if (retVal < 0) h5libraryError(env); return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1class_1parent */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pisa_class * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pisa_1class (JNIEnv *env, jclass clss, jlong plid, jlong pcls) { htri_t retVal = -1; retVal = H5Pisa_class((hid_t)plid, (hid_t)pcls); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pisa_1class */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget * Signature: (JLjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget (JNIEnv *env, jclass clss, jlong plid, jstring name) { herr_t retVal = -1; const char *cstr; jint val; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { retVal = H5Pget((hid_t)plid, cstr, &val); UNPIN_JAVA_STRING(name, cstr); if (retVal < 0) h5libraryError(env); } return (jint)val; } /* end Java_hdf_hdf5lib_H5_H5Pget */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pequal * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pequal (JNIEnv *env, jclass clss, jlong plid1, jlong plid2) { htri_t retVal = -1; retVal = H5Pequal((hid_t)plid1, (hid_t)plid2); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pequal */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pcopy_prop * Signature: (JJLjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pcopy_1prop (JNIEnv *env, jclass clss, jlong dst_plid, jlong src_plid, jstring name) { herr_t retVal = -1; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { retVal = H5Pcopy_prop((hid_t)dst_plid, (hid_t)src_plid, cstr); UNPIN_JAVA_STRING(name, cstr); if (retVal < 0) h5libraryError(env); } return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pcopy_1prop */ /* * Class: hdf_hdf5lib_H5 * Method: H5Premove * Signature: (JLjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Premove (JNIEnv *env, jclass clss, jlong plid, jstring name) { herr_t retVal = -1; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { retVal = H5Premove((hid_t)plid, cstr); UNPIN_JAVA_STRING(name, cstr); if (retVal < 0) h5libraryError(env); } return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Premove */ /* * Class: hdf_hdf5lib_H5 * Method: H5Punregister * Signature: (JLjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Punregister (JNIEnv *env, jclass clss, jlong plid, jstring name) { herr_t retVal = -1; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { retVal = H5Punregister((hid_t)plid, cstr); UNPIN_JAVA_STRING(name, cstr); if (retVal < 0) h5libraryError(env); } return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Punregister */ /* * Class: hdf_hdf5lib_H5 * Method: _H5Pclose_class * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5__1H5Pclose_1class (JNIEnv *env, jclass clss, jlong plid) { herr_t retVal = -1; retVal = H5Pclose_class((hid_t)plid); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5__1H5Pclose_1class */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_filter2 * Signature: (JI[I[J[IJ[Ljava/lang/String;[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1filter2 (JNIEnv *env, jclass clss, jlong plist, jint filter_number, jintArray flags, jlongArray cd_nelmts, jintArray cd_values, jlong namelen, jobjectArray name, jintArray filter_config) { herr_t status = -1; jint *flagsArray; jlong *cd_nelmtsArray; jint *cd_valuesArray; jint *filter_configArray; jboolean isCopy; char *filter; jstring str; if (namelen <= 0) { h5badArgument(env, "H5Pget_filter: namelen <= 0"); } /* end if */ else if (flags == NULL) { h5badArgument(env, "H5Pget_filter: flags is NULL"); } /* end else if */ else if (cd_nelmts == NULL) { h5badArgument(env, "H5Pget_filter: cd_nelmts is NULL"); } /* end else if */ else if (filter_config == NULL) { h5badArgument(env, "H5Pget_filter: filter_config is NULL"); } /* end else if */ else { filter = (char*)HDmalloc(sizeof(char)*(size_t)namelen); if (filter == NULL) { h5outOfMemory(env, "H5Pget_filter: namelent malloc failed"); return -1; } /* end if */ flagsArray = (jint*)ENVPTR->GetIntArrayElements(ENVPAR flags, &isCopy); if (flagsArray == NULL) { HDfree(filter); h5JNIFatalError(env, "H5Pget_filter: flags array not pinned"); return -1; } /* end if */ cd_nelmtsArray = (jlong*)ENVPTR->GetLongArrayElements(ENVPAR cd_nelmts, &isCopy); if (cd_nelmtsArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); HDfree(filter); h5JNIFatalError(env, "H5Pget_filter: nelmts array not pinned"); return -1; } /* end if */ filter_configArray = (jint*)ENVPTR->GetIntArrayElements(ENVPAR filter_config, &isCopy); if (filter_configArray == NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); HDfree(filter); h5JNIFatalError(env, "H5Pget_filter: filter_config array not pinned"); return -1; } /* end if */ if (*cd_nelmtsArray == 0 && cd_values == NULL) { /* direct cast (size_t *)variable fails on 32-bit environment */ long long cd_nelmts_temp = 0; size_t cd_nelmts_t = (size_t)cd_nelmts_temp; status = H5Pget_filter2((hid_t)plist, (unsigned)filter_number, (unsigned int *)flagsArray, &cd_nelmts_t, NULL, (size_t)namelen, filter, (unsigned int *)filter_configArray); *cd_nelmtsArray = (jlong)cd_nelmts_t; } /* end if */ else { if (cd_values == NULL) { h5badArgument(env, "H5Pget_filter: cd_values is NULL"); return -1; } /* end if */ cd_valuesArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR cd_values, &isCopy); if (cd_valuesArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR filter_config, filter_configArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); HDfree(filter); h5JNIFatalError(env, "H5Pget_filter: elmts array not pinned"); return -1; } /* end if */ { /* direct cast (size_t *)variable fails on 32-bit environment */ long long cd_nelmts_temp = *(cd_nelmtsArray); size_t cd_nelmts_t = (size_t)cd_nelmts_temp; status = H5Pget_filter2((hid_t)plist, (unsigned)filter_number, (unsigned int *)flagsArray, &cd_nelmts_t, (unsigned int *)cd_valuesArray, (size_t)namelen, filter, (unsigned int *)filter_configArray); *cd_nelmtsArray = (jlong)cd_nelmts_t; } /* end direct cast special */ } /* end else */ if (status < 0) { if (cd_values) ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR filter_config, filter_configArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); HDfree(filter); h5libraryError(env); } /* end if */ else { if (cd_values) ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, 0); ENVPTR->ReleaseIntArrayElements(ENVPAR filter_config, filter_configArray, 0); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, 0); ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, 0); /* NewStringUTF may throw OutOfMemoryError */ str = ENVPTR->NewStringUTF(ENVPAR filter); HDfree(filter); if (str == NULL) h5JNIFatalError(env, "H5Pget_filter: return string not pinned"); else ENVPTR->SetObjectArrayElement(ENVPAR name, 0, (jobject)str); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1filter2 */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_filter_by_id2 * Signature: (JI[I[J[IJ[Ljava/lang/String;[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1filter_1by_1id2 (JNIEnv *env, jclass clss, jlong plist, jint filter, jintArray flags, jlongArray cd_nelmts, jintArray cd_values, jlong namelen, jobjectArray name, jintArray filter_config) { herr_t status = -1; int i = 0; jint *cd_valuesArray; jint *flagsArray; jint *filter_configArray; jlong *cd_nelmtsArray; jboolean isCopy; long bs; char *aName; jstring str; bs = (long)namelen; if (bs <= 0) { h5badArgument(env, "H5Pget_filter_by_id: namelen <= 0"); } /* end if */ else if (flags == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: flags is NULL"); } /* end else if */ else if (cd_nelmts == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: cd_nelms is NULL"); } /* end else if */ else if (cd_values == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: cd_values is NULL"); } /* end else if */ else if (name == NULL) { h5nullArgument(env, "H5Pget_filter_by_id: name is NULL"); } /* end else if */ else if (filter_config == NULL) { h5badArgument(env, "H5Pget_filter_by_id: filter_config is NULL"); } /* end else if */ else { aName = (char*)HDmalloc(sizeof(char) * (size_t)bs); if (aName == NULL) { h5outOfMemory(env, "H5Pget_filter_by_id: malloc failed"); return -1; } /* end if */ flagsArray = ENVPTR->GetIntArrayElements(ENVPAR flags,&isCopy); if (flagsArray == NULL) { HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: flags not pinned"); return -1; } /* end if */ cd_nelmtsArray = ENVPTR->GetLongArrayElements(ENVPAR cd_nelmts, &isCopy); if (cd_nelmtsArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: cd_nelms not pinned"); return -1; } /* end if */ cd_valuesArray = ENVPTR->GetIntArrayElements(ENVPAR cd_values, &isCopy); if (cd_valuesArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: cd_values array not converted to unsigned int."); return -1; } /* end if */ filter_configArray = ENVPTR->GetIntArrayElements(ENVPAR filter_config, &isCopy); if (filter_configArray == NULL) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, JNI_ABORT); HDfree(aName); h5JNIFatalError(env, "H5Pget_filter_by_id: flags not pinned"); return -1; } /* end if */ { /* direct cast (size_t *)variable fails on 32-bit environment */ long long cd_nelmts_temp = *(cd_nelmtsArray); size_t cd_nelmts_t = (size_t)cd_nelmts_temp; status = H5Pget_filter_by_id2((hid_t)plist, (H5Z_filter_t)filter, (unsigned int *)flagsArray, &cd_nelmts_t, (unsigned int *)cd_valuesArray, (size_t)namelen, (char *)aName, (unsigned int *)filter_configArray); *cd_nelmtsArray = (jlong)cd_nelmts_t; } /* end direct cast special handling */ if (status < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, JNI_ABORT); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, JNI_ABORT); ENVPTR->ReleaseIntArrayElements(ENVPAR filter_config, filter_configArray, JNI_ABORT); HDfree(aName); h5libraryError(env); } /* end if */ else { str = ENVPTR->NewStringUTF(ENVPAR aName); HDfree(aName); ENVPTR->ReleaseIntArrayElements(ENVPAR flags, flagsArray, 0); ENVPTR->ReleaseLongArrayElements(ENVPAR cd_nelmts, cd_nelmtsArray, 0); ENVPTR->ReleaseIntArrayElements(ENVPAR cd_values, cd_valuesArray, 0); ENVPTR->ReleaseIntArrayElements(ENVPAR filter_config, filter_configArray, 0); } /* end else */ } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Pget_1filter_1by_1id2 */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_nlinks * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1nlinks (JNIEnv *env, jclass clss, jlong lapl_id) { size_t nlinks; if (H5Pget_nlinks((hid_t)lapl_id, &nlinks) < 0) h5libraryError(env); return (jlong) nlinks; } /* end Java_hdf_hdf5lib_H5_H5Pget_1nlinks */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_nlinks * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1nlinks (JNIEnv *env, jclass clss, jlong lapl_id, jlong nlinks) { herr_t retVal = -1; if (nlinks <= 0) { h5badArgument(env, "H5Pset_1nlinks: nlinks_l <= 0"); } /* end if */ else { retVal = H5Pset_nlinks((hid_t)lapl_id, (size_t)nlinks); if(retVal < 0) h5libraryError(env); } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1nlinks */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_libver_bounds * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1libver_1bounds (JNIEnv *env, jclass clss, jlong fapl_id, jintArray libver) { herr_t retVal = -1; H5F_libver_t *theArray = NULL; jboolean isCopy; if (libver == NULL) { h5nullArgument(env, "H5Pget_libver_bounds: libversion bounds is NULL"); } /* end if */ else { theArray = (H5F_libver_t*)ENVPTR->GetIntArrayElements(ENVPAR libver, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_libver_bounds: input not pinned"); } /* end if */ else { retVal = H5Pget_libver_bounds((hid_t)fapl_id, &(theArray[0]), &(theArray[1])); if(retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR libver, (jint*)theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR libver, (jint*)theArray, 0); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1libver_1bounds */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_libver_bounds * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1libver_1bounds (JNIEnv *env, jclass clss, jlong fapl_id, jint low, jint high) { herr_t retVal = -1; if ((H5F_libver_t)high != H5F_LIBVER_LATEST) { h5badArgument(env, "H5Pset_libver_bounds: invalid high library version bound"); } /* end if */ else if(((H5F_libver_t)low !=H5F_LIBVER_EARLIEST) && ((H5F_libver_t)low != H5F_LIBVER_LATEST)) { h5badArgument(env, "H5Pset_libver_bounds: invalid low library version bound"); } /* end else if */ else { retVal = H5Pset_libver_bounds((hid_t)fapl_id, (H5F_libver_t)low, (H5F_libver_t)high); if(retVal < 0) h5libraryError(env); } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1libver_1bounds */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_link_creation_order * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1link_1creation_1order (JNIEnv *env, jclass clss, jlong gcpl_id) { unsigned crt_order_flags; if(H5Pget_link_creation_order((hid_t)gcpl_id, &crt_order_flags) < 0) h5libraryError(env); return (jint)crt_order_flags; } /* end Java_hdf_hdf5lib_H5_H5Pget_1link_1creation_1order */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_link_creation_order * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1link_1creation_1order (JNIEnv *env, jclass clss, jlong gcpl_id, jint crt_order_flags) { herr_t retVal = -1; retVal = H5Pset_link_creation_order((hid_t)gcpl_id, (unsigned)crt_order_flags); if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1link_1creation_1order */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_attr_creation_order * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1attr_1creation_1order (JNIEnv *env, jclass clss, jlong ocpl_id) { unsigned crt_order_flags; if(H5Pget_attr_creation_order((hid_t)ocpl_id, &crt_order_flags) < 0) h5libraryError(env); return (jint)crt_order_flags; } /* end Java_hdf_hdf5lib_H5_H5Pget_1attr_1creation_1order */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_attr_creation_order * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1attr_1creation_1order (JNIEnv *env, jclass clss, jlong ocpl_id, jint crt_order_flags) { herr_t retVal = -1; retVal = H5Pset_attr_creation_order((hid_t)ocpl_id, (unsigned)crt_order_flags); if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1attr_1creation_1order */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_copy_object * Signature: (JI)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1copy_1object (JNIEnv *env, jclass clss, jlong ocp_plist_id, jint copy_options) { herr_t retVal = -1; retVal = H5Pset_copy_object((hid_t)ocp_plist_id, (unsigned)copy_options); if(retVal < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1copy_1object */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_copy_object * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1copy_1object (JNIEnv *env, jclass clss, jlong ocp_plist_id) { unsigned copy_options; if(H5Pget_copy_object((hid_t)ocp_plist_id, ©_options) < 0) h5libraryError(env); return (jint)copy_options; } /* end Java_hdf_hdf5lib_H5_H5Pget_1copy_1object */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_create_intermediate_group * Signature: (JZ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1create_1intermediate_1group (JNIEnv *env, jclass clss, jlong lcpl_id, jboolean crt_intermed_group) { herr_t retVal = -1; retVal = H5Pset_create_intermediate_group((hid_t)lcpl_id, (unsigned)crt_intermed_group); if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1create_1intermediate_1group */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_create_intermediate_group * Signature: (J)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pget_1create_1intermediate_1group (JNIEnv *env, jclass clss, jlong lcpl_id) { unsigned crt_intermed_group; if(H5Pget_create_intermediate_group((hid_t)lcpl_id, &crt_intermed_group) < 0) h5libraryError(env); return (jboolean)crt_intermed_group; } /* end Java_hdf_hdf5lib_H5_H5Pget_1create_1intermediate_1group */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_data_transform * Signature: (JLjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1data_1transform (JNIEnv *env, jclass clss, jlong plist_id, jstring expression) { herr_t retVal = -1; const char *express; PIN_JAVA_STRING(expression, express); if (express != NULL) { retVal = H5Pset_data_transform((hid_t)plist_id, express); UNPIN_JAVA_STRING(expression, express); if (retVal < 0) h5libraryError(env); } return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1data_1transform */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_data_transform * Signature: (J[Ljava/lang/String;J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1data_1transform (JNIEnv *env, jclass clss, jlong plist_id, jobjectArray expression, jlong size) { size_t buf_size; char *express; jlong express_size = -1; jstring str = NULL; if (size <= 0) { h5badArgument(env, "H5Pget_data_transform: size <= 0"); } /* end if */ else { express_size = (jlong)H5Pget_data_transform((hid_t)plist_id, (char*)NULL, (size_t)size); if(express_size < 0) { h5libraryError(env); } /* end if */ else { buf_size = (size_t)express_size + 1;/* add extra space for the null terminator */ express = (char*)HDmalloc(sizeof(char) * buf_size); if (express == NULL) { h5outOfMemory(env, "H5Pget_data_transform: malloc failed "); } /* end if */ else { express_size = (jlong)H5Pget_data_transform((hid_t)plist_id, express, (size_t)size); if (express_size < 0) { HDfree(express); h5libraryError(env); } else { str = ENVPTR->NewStringUTF(ENVPAR express); HDfree(express); if (str == NULL) h5JNIFatalError(env, "H5Pget_data_transform: return string not created"); else ENVPTR->SetObjectArrayElement(ENVPAR expression, 0, str); } /* end else */ } /* end else */ } /* end else */ } /* end else */ return express_size; } /* end Java_hdf_hdf5lib_H5_H5Pget_1data_1transform */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_elink_acc_flags * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1elink_1acc_1flags (JNIEnv *env, jclass clss, jlong lapl_id) { unsigned flags; if(H5Pget_elink_acc_flags((hid_t)lapl_id, &flags) < 0) h5libraryError(env); return (jint)flags; } /* end Java_hdf_hdf5lib_H5_H5Pget_1elink_1acc_1flags */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_elink_acc_flags * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1elink_1acc_1flags (JNIEnv *env, jclass clss, jlong lapl_id, jint flags) { herr_t retVal = -1; retVal = H5Pset_elink_acc_flags((hid_t)lapl_id, (unsigned)flags); if (retVal < 0) h5libraryError(env); return (jint) retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1elink_1acc_1flags */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_link_phase_change * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1link_1phase_1change (JNIEnv *env, jclass clss, jlong gcpl_id, jint max_compact, jint min_dense) { herr_t retVal = -1; if(max_compact < min_dense) { h5badArgument(env, "H5Pset_link_phase_change: max compact value must be >= min dense value"); } /* end if */ else if(max_compact > 65535) { h5badArgument(env, "H5Pset_link_phase_change: max compact value must be < 65536"); } /* end else if */ else if(min_dense > 65535) { h5badArgument(env, "H5Pset_link_phase_change: min dense value must be < 65536"); } /* end else if */ else { retVal = H5Pset_link_phase_change((hid_t)gcpl_id, (unsigned)max_compact, (unsigned)min_dense); if(retVal < 0) h5libraryError(env); } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1link_1phase_1change */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_link_phase_change * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1link_1phase_1change (JNIEnv *env, jclass clss, jlong gcpl_id, jintArray links) { herr_t retVal = -1; unsigned *theArray = NULL; jboolean isCopy; if (links == NULL) { h5nullArgument( env, "H5Pget_link_phase_change: links is NULL"); } /* end if */ else { theArray = (unsigned *)ENVPTR->GetIntArrayElements(ENVPAR links, &isCopy); if (theArray == NULL) { h5JNIFatalError( env, "H5Pget_link_phase_change: input not pinned"); } /* end if */ else { retVal = H5Pget_link_phase_change((hid_t)gcpl_id, &(theArray[0]), &(theArray[1])); if(retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR links, (jint *)theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR links, (jint *)theArray, 0); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1link_1phase_1change */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_attr_phase_change * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1attr_1phase_1change (JNIEnv *env, jclass clss, jlong ocpl_id, jintArray attributes) { herr_t retVal = -1; unsigned *theArray = NULL; jboolean isCopy; if (attributes == NULL) { h5nullArgument(env, "H5Pget_attr_phase_change: attributes is NULL"); } /* end if */ else { theArray = (unsigned *)ENVPTR->GetIntArrayElements(ENVPAR attributes, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_attr_phase_change: input not pinned"); } /* end if */ else { retVal = H5Pget_attr_phase_change((hid_t)ocpl_id, &(theArray[0]), &(theArray[1])); if(retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR attributes, (jint *)theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR attributes, (jint *)theArray, 0); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1attr_1phase_1change */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_attr_phase_change * Signature: (JII)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1attr_1phase_1change (JNIEnv *env, jclass clss, jlong ocpl_id, jint max_compact, jint min_dense) { herr_t retVal = -1; retVal = H5Pset_attr_phase_change((hid_t)ocpl_id, (unsigned)max_compact, (unsigned)min_dense); if(retVal < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1attr_1phase_1change */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_shared_mesg_phase_change * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1shared_1mesg_1phase_1change (JNIEnv *env, jclass clss, jlong fcpl_id, jintArray size) { herr_t retVal = -1; unsigned *theArray = NULL; jboolean isCopy; if (size == NULL) { h5nullArgument(env, "H5Pget_shared_mesg_phase_change: size is NULL"); } /* end if */ else { theArray = (unsigned *)ENVPTR->GetIntArrayElements(ENVPAR size, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_shared_mesg_phase_change: input not pinned"); } /* end if */ else { retVal = H5Pget_shared_mesg_phase_change((hid_t)fcpl_id, &(theArray[0]), &(theArray[1])); if(retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR size, (jint *)theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR size, (jint *)theArray, 0); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1shared_1mesg_1phase_1change */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_shared_mesg_phase_change * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1shared_1mesg_1phase_1change (JNIEnv *env, jclass clss, jlong fcpl_id, jint max_list, jint min_btree) { herr_t retVal = -1; /* Check that values are sensible. The min_btree value must be no greater * than the max list plus one. * * Range check to make certain they will fit into encoded form. */ if(max_list + 1 < min_btree) { h5badArgument(env, "H5Pset_shared_mesg_phase_change: minimum B-tree value is greater than maximum list value"); } /* end if */ else if(max_list > H5O_SHMESG_MAX_LIST_SIZE) { h5badArgument(env, "H5Pset_shared_mesg_phase_change: max list value is larger than H5O_SHMESG_MAX_LIST_SIZE"); } /* end else if */ else if(min_btree > H5O_SHMESG_MAX_LIST_SIZE) { h5badArgument(env, "H5Pset_shared_mesg_phase_change: min btree value is larger than H5O_SHMESG_MAX_LIST_SIZE"); } /* end else if */ else { retVal = H5Pset_shared_mesg_phase_change((hid_t)fcpl_id, (unsigned)max_list, (unsigned)min_btree); if(retVal < 0) h5libraryError(env); } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1shared_1mesg_1phase_1change */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_shared_mesg_nindexes * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1shared_1mesg_1nindexes (JNIEnv *env, jclass clss, jlong fcpl_id) { unsigned nindexes; if(H5Pget_shared_mesg_nindexes((hid_t)fcpl_id, &nindexes) < 0) h5libraryError(env); return (jint)nindexes; } /* end Java_hdf_hdf5lib_H5_H5Pget_1shared_1mesg_1nindexes */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_shared_mesg_nindexes * Signature: (JI)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1shared_1mesg_1nindexes (JNIEnv *env, jclass clss, jlong plist_id, jint nindexes) { herr_t retVal = -1; if (nindexes > H5O_SHMESG_MAX_NINDEXES) { h5badArgument(env, "H5Pset_shared_mesg_nindexes: number of indexes is greater than H5O_SHMESG_MAX_NINDEXES"); } /* end if */ else { retVal = H5Pset_shared_mesg_nindexes((hid_t)plist_id, (unsigned)nindexes); if(retVal < 0) h5libraryError(env); } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1shared_1mesg_1nindexes */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_shared_mesg_index * Signature: (JIII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1shared_1mesg_1index (JNIEnv *env, jclass clss, jlong fcpl_id, jint index_num, jint mesg_type_flags, jint min_mesg_size) { herr_t retVal = -1; unsigned nindexes;/* Number of SOHM indexes */ /* Check arguments */ if(mesg_type_flags > H5O_SHMESG_ALL_FLAG) { h5badArgument(env, "H5Pset_shared_mesg_index: unrecognized flags in mesg_type_flags"); } /* end if */ else if(H5Pget_shared_mesg_nindexes((hid_t)fcpl_id, &nindexes) < 0) { /* Read the current number of indexes */ h5libraryError(env); } /* end else if */ else { /* Range check */ if((unsigned)index_num >= nindexes) { h5badArgument(env, "H5Pset_shared_mesg_index: index_num is too large; no such index"); } /* end if */ else { retVal = H5Pset_shared_mesg_index((hid_t)fcpl_id, (unsigned)index_num, (unsigned) mesg_type_flags, (unsigned) min_mesg_size); if(retVal < 0) h5libraryError(env); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1shared_1mesg_1index */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_shared_mesg_index * Signature: (JI[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1shared_1mesg_1index (JNIEnv *env, jclass clss, jlong fcpl_id, jint index_num, jintArray mesg_info) { herr_t retVal = -1; unsigned nindexes;/* Number of SOHM indexes */ unsigned *theArray = NULL; jboolean isCopy; /* Read the current number of indexes */ if(H5Pget_shared_mesg_nindexes((hid_t)fcpl_id, &nindexes)<0) { h5libraryError(env); } /* end if */ else { /* Range check */ if((unsigned)index_num >= nindexes) { h5badArgument(env, "H5Pget_shared_mesg_index: index_num is too large; no such index"); } /* end if */ else if (mesg_info == NULL) { h5nullArgument(env, "H5Pget_shared_mesg_index: mesg_info is NULL"); } /* end else if */ else { theArray = (unsigned *)ENVPTR->GetIntArrayElements(ENVPAR mesg_info, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_shared_mesg_index: input not pinned"); } /* end if */ else { retVal = H5Pget_shared_mesg_index((hid_t)fcpl_id, (unsigned)index_num, &(theArray[0]), &(theArray[1])); if(retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR mesg_info, (jint*)theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR mesg_info, (jint*)theArray, 0); } /* end else */ } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1shared_1mesg_1index */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_local_heap_size_hint * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1local_1heap_1size_1hint (JNIEnv *env, jclass clss, jlong gcpl_id, jlong size_hint) { herr_t retVal = -1; retVal = H5Pset_local_heap_size_hint((hid_t)gcpl_id, (size_t)size_hint); if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1local_1heap_1size_1hint */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_local_heap_size_hint * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1local_1heap_1size_1hint (JNIEnv *env, jclass clss, jlong gcpl_id) { size_t size_hint; if(H5Pget_local_heap_size_hint((hid_t)gcpl_id, &size_hint) < 0) h5libraryError(env); return (jlong)size_hint; } /* end Java_hdf_hdf5lib_H5_H5Pget_1local_1heap_1size_1hint */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_nbit * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1nbit (JNIEnv *env, jclass clss, jlong plist_id) { herr_t retVal = -1; retVal = H5Pset_nbit((hid_t)plist_id); if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1nbit */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_scaleoffset * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1scaleoffset (JNIEnv *env, jclass clss, jlong plist_id, jint scale_type, jint scale_factor) { herr_t retVal = -1; /* Check arguments */ if(scale_factor < 0) { h5badArgument(env, "H5Pset_scaleoffset: scale factor must be > 0"); } /* end if */ else { if(scale_type != H5Z_SO_FLOAT_DSCALE && scale_type != H5Z_SO_FLOAT_ESCALE && scale_type != H5Z_SO_INT){ h5badArgument(env, "H5Pset_scaleoffset: invalid scale type"); } /* end if */ else { retVal = H5Pset_scaleoffset((hid_t)plist_id, (H5Z_SO_scale_type_t)scale_type, scale_factor); if(retVal < 0) h5libraryError(env); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1scaleoffset */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_est_link_info * Signature: (JII)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1est_1link_1info (JNIEnv *env, jclass clss, jlong gcpl_id, jint est_num_entries, jint est_name_len) { herr_t retVal = -1; /* Range check values */ if((est_num_entries > 65535) || (est_name_len > 65535)) { h5badArgument(env, "H5Pset_est_link_info: est. name length or number of entries must be < 65536"); } /* end if */ else { retVal = H5Pset_est_link_info((hid_t)gcpl_id, (unsigned)est_num_entries, (unsigned)est_name_len); if(retVal < 0) h5libraryError(env); } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1est_1link_1info */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_est_link_info * Signature: (J[I)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1est_1link_1info (JNIEnv *env, jclass clss, jlong gcpl_id, jintArray link_info) { herr_t retVal = -1; unsigned *theArray = NULL; jboolean isCopy; if (link_info == NULL) { h5nullArgument(env, "H5Pget_est_link_info: link_info is NULL"); } /* end if */ else { theArray = (unsigned *)ENVPTR->GetIntArrayElements(ENVPAR link_info,&isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_est_link_info: input not pinned"); } /* end if */ else { retVal= H5Pget_est_link_info((hid_t)gcpl_id, &(theArray[0]), &(theArray[1])); if(retVal < 0) { ENVPTR->ReleaseIntArrayElements(ENVPAR link_info, (jint *)theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else ENVPTR->ReleaseIntArrayElements(ENVPAR link_info, (jint *)theArray, 0); } /* end else */ } /* end else */ return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1est_1link_1info */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_elink_fapl * Signature: (JJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1elink_1fapl (JNIEnv *env, jclass clss, jlong lapl_id, jlong fapl_id) { herr_t retVal = -1; retVal = H5Pset_elink_fapl((hid_t)lapl_id, (hid_t)fapl_id); if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1elink_1fapl */ /* * Class: hdf_hdf5lib_H5 * Method: _H5Pget_elink_fapl * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5__1H5Pget_1elink_1fapl (JNIEnv *env, jclass clss, jlong lapl_id) { hid_t retVal = -1; retVal = H5Pget_elink_fapl((hid_t)lapl_id); if (retVal < 0) h5libraryError(env); return (jlong)retVal; } /* end Java_hdf_hdf5lib_H5__1H5Pget_1elink_1fapl */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_elink_prefix * Signature: (JLjava/lang/String;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1elink_1prefix (JNIEnv *env, jclass clss, jlong lapl_id, jstring prefix) { herr_t retVal = -1; const char *aName; PIN_JAVA_STRING(prefix, aName); if (aName != NULL) { retVal = H5Pset_elink_prefix((hid_t)lapl_id, aName); UNPIN_JAVA_STRING(prefix, aName); if(retVal < 0) h5libraryError(env); } return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1elink_1prefix */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_elink_prefix * Signature: (J[Ljava/lang/String;)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1elink_1prefix (JNIEnv *env, jclass clss, jlong lapl_id, jobjectArray prefix) { size_t size = 0; char *pre; jlong prefix_size = -1; jstring str = NULL; if (prefix == NULL) { h5nullArgument(env, "H5Pget_elink_prefix: prefix is NULL"); } /* end if */ else { prefix_size = (jlong)H5Pget_elink_prefix((hid_t)lapl_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_elink_prefix: malloc failed "); } /* end if */ else { prefix_size = (jlong)H5Pget_elink_prefix((hid_t)lapl_id, (char*)pre, size); if (prefix_size < 0) { HDfree(pre); h5libraryError(env); } /* end if */ else { str = ENVPTR->NewStringUTF(ENVPAR pre); HDfree(pre); if (str == NULL) { h5JNIFatalError(env, "H5Pget_elink_prefix: return string not created"); } /* end if */ else ENVPTR->SetObjectArrayElement(ENVPAR prefix, 0, str); } /* end else */ } /* end else */ } /* end else */ } /* end else */ return prefix_size; } /* end Java_hdf_hdf5lib_H5_H5Pget_1elink_1prefix */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_direct * Signature: (JJJJ)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1direct (JNIEnv *env, jclass clss, jlong fapl_id, jlong alignment, jlong block_size, jlong cbuf_size) { herr_t retVal = -1; #ifdef H5_HAVE_DIRECT retVal = H5Pset_fapl_direct((hid_t)fapl_id, (size_t)alignment, (size_t)block_size, (size_t)cbuf_size); #endif if(retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1direct */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fapl_direct * Signature: (J[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fapl_1direct (JNIEnv *env, jclass clss, jlong fapl_id, jlongArray info) { herr_t retVal = -1; #ifdef H5_HAVE_DIRECT size_t alignment = 0; size_t block_size = 0; size_t cbuf_size = 0; jlong *theArray; jboolean isCopy; if (info == NULL) { h5nullArgument(env, "H5Pget_fapl_direct: info input array is NULL"); } /* end if */ else { if (ENVPTR->GetArrayLength(ENVPAR info) < 3) { h5badArgument( env, "H5Pget_fapl_direct: info input array < 4"); } /* end if */ else { theArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR info, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Pget_fapl_direct: info not pinned"); } /* end if */ else { retVal = H5Pget_fapl_direct((hid_t)fapl_id, &alignment, &block_size, &cbuf_size); if(retVal < 0) { ENVPTR->ReleaseLongArrayElements(ENVPAR info, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { theArray[0] = (jlong)alignment; theArray[1] = (jlong)block_size; theArray[2] = (jlong)cbuf_size; ENVPTR->ReleaseLongArrayElements(ENVPAR info, theArray, 0); } /* end else */ } /* end else */ } /* end else */ } /* end else */ #else if (retVal < 0) h5libraryError(env); #endif return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pget_1fapl_1direct */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_sec2 * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1sec2 (JNIEnv *env, jclass clss, jlong fapl_id) { herr_t retVal = -1; retVal = H5Pset_fapl_sec2((hid_t) fapl_id); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1sec2 */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_stdio * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1stdio (JNIEnv *env, jclass clss, jlong fapl_id) { herr_t retVal = -1; retVal = H5Pset_fapl_stdio((hid_t) fapl_id); if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1stdio */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_windows * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1windows (JNIEnv *env, jclass clss, jlong fapl_id) { herr_t retVal = -1; #ifdef H5_HAVE_WINDOWS retVal = H5Pset_fapl_windows((hid_t) fapl_id); #endif if (retVal < 0) h5libraryError(env); return (jint)retVal; } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1windows */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_fapl_muti * Signature: (J[I[J[Ljava/lang/String;[J)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pget_1fapl_1multi (JNIEnv *env, jclass clss, jlong tid, jintArray memb_map, jlongArray memb_fapl, jobjectArray memb_name, jlongArray memb_addr) { herr_t status = -1; int i; jint *themapArray = NULL; jlong *thefaplArray = NULL; jlong *theaddrArray = NULL; char **mName = NULL; jstring str; jboolean isCopy; int relax = 0; if (memb_map) { themapArray = (jint*)ENVPTR->GetIntArrayElements(ENVPAR memb_map, &isCopy); if (themapArray == NULL) { h5JNIFatalError(env, "H5Pget_fapl_muti: memb_map not pinned"); return 0; } /* end if */ } /* end if */ if (memb_fapl) { thefaplArray = (jlong*)ENVPTR->GetLongArrayElements(ENVPAR memb_fapl, &isCopy); if (thefaplArray == NULL) { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, JNI_ABORT); h5JNIFatalError(env, "H5Pget_fapl_muti: memb_fapl not pinned"); return 0; } /* end if */ } /* end if */ if (memb_addr) { theaddrArray = (jlong*)ENVPTR->GetLongArrayElements(ENVPAR memb_addr, &isCopy); if (theaddrArray == NULL) { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, JNI_ABORT); if (memb_fapl) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_fapl, thefaplArray, JNI_ABORT); h5JNIFatalError(env, "H5Pget_fapl_muti: memb_addr not pinned"); return 0; } /* end if */ } /* end if */ if (memb_name) mName = (char**)HDcalloc(H5FD_MEM_NTYPES, sizeof (*mName)); status = H5Pget_fapl_multi((hid_t)tid, (H5FD_mem_t*)themapArray, (hid_t*)thefaplArray, mName, (haddr_t*)theaddrArray, (hbool_t*)&relax); if (status < 0) { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, JNI_ABORT); if (memb_fapl) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_fapl, thefaplArray, JNI_ABORT); if (memb_addr) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_addr, theaddrArray, JNI_ABORT); if (memb_name) h5str_array_free(mName, H5FD_MEM_NTYPES); h5libraryError(env); } /* end if */ else { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, 0); if (memb_fapl) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_fapl, thefaplArray, 0); if (memb_addr) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_addr, theaddrArray, 0); if (memb_name) { if (mName) { for (i = 0; i < H5FD_MEM_NTYPES; i++) { if (*(mName + i)) { str = ENVPTR->NewStringUTF(ENVPAR *(mName+i)); ENVPTR->SetObjectArrayElement(ENVPAR memb_name, i, (jobject)str); } /* end if */ } /* for (i=0; iGetIntArrayElements(ENVPAR memb_map, &isCopy); if (themapArray == NULL) { h5JNIFatalError(env, "H5Pget_fapl_muti: memb_map not pinned"); return; } /* end if */ } /* end if */ if (memb_fapl) { thefaplArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR memb_fapl, &isCopy); if (thefaplArray == NULL) { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, JNI_ABORT); h5JNIFatalError(env, "H5Pget_fapl_muti: memb_fapl not pinned"); return; } /* end if */ } /* end if */ if (memb_addr) { theaddrArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR memb_addr, &isCopy); if (theaddrArray == NULL) { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, JNI_ABORT); if (memb_fapl) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_fapl, thefaplArray, JNI_ABORT); h5JNIFatalError(env, "H5Pget_fapl_muti: memb_addr not pinned"); return; } /* end if */ } /* end if */ HDmemset(member_name, 0, H5FD_MEM_NTYPES * sizeof(char*)); if (memb_name) { int i; for (i = 0; i < H5FD_MEM_NTYPES; i++) { jstring obj = (jstring) ENVPTR->GetObjectArrayElement(ENVPAR (jobjectArray) memb_name, i); if (obj != 0) { jsize length = ENVPTR->GetStringUTFLength(ENVPAR obj); const char *utf8 = ENVPTR->GetStringUTFChars(ENVPAR obj, 0); if (utf8) { member_name[i] = (char*)HDmalloc(strlen(utf8) + 1); if (member_name[i]) { strcpy(member_name[i], utf8); } /* end if */ } /* end if */ ENVPTR->ReleaseStringUTFChars(ENVPAR obj, utf8); ENVPTR->DeleteLocalRef(ENVPAR obj); } /* end if */ } /* end for */ mName = (const char **)member_name; } /* end if */ status = H5Pset_fapl_multi((hid_t)tid, (const H5FD_mem_t *)themapArray, (const hid_t *)thefaplArray, mName, (const haddr_t *)theaddrArray, (hbool_t)relax); if (status < 0) { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, JNI_ABORT); if (memb_fapl) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_fapl, thefaplArray, JNI_ABORT); if (memb_addr) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_addr, theaddrArray, JNI_ABORT); if (memb_name) { int i; for (i = 0; i < H5FD_MEM_NTYPES; i++) HDfree(member_name[i]); } /* end if */ h5libraryError(env); } /* end if */ else { if (memb_map) ENVPTR->ReleaseIntArrayElements(ENVPAR memb_map, themapArray, 0); if (memb_fapl) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_fapl, thefaplArray, 0); if (memb_addr) ENVPTR->ReleaseLongArrayElements(ENVPAR memb_addr, theaddrArray, 0); if (memb_name) { if (mName != NULL) { int i; Sjc = ENVPTR->FindClass(ENVPAR "java/lang/String"); if (Sjc != NULL) { for (i = 0; i < H5FD_MEM_NTYPES; i++) { rstring = ENVPTR->NewStringUTF(ENVPAR member_name[i]); o = ENVPTR->GetObjectArrayElement(ENVPAR memb_name, i); if (o != NULL) { bb = ENVPTR->IsInstanceOf(ENVPAR o, Sjc); if (bb == JNI_TRUE) { ENVPTR->SetObjectArrayElement(ENVPAR memb_name, i, (jobject)rstring); } /* end if */ ENVPTR->DeleteLocalRef(ENVPAR o); } /* end if */ HDfree(member_name[i]); } /* end for */ } /* end if */ } /* end if */ } /* end if */ } /* end else */ } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1multi */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_fapl_split * Signature: (JLjava/lang/String;JLjava/lang/String;J)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1fapl_1split (JNIEnv *env, jclass clss, jlong fapl_id, jstring metaext, jlong meta_pl_id, jstring rawext, jlong raw_pl_id) { herr_t retVal = -1; const char *mstr; const char *rstr; PIN_JAVA_STRING_TWO(metaext, mstr, rawext, rstr); if (mstr != NULL && rstr != NULL) { retVal = H5Pset_fapl_split((hid_t)fapl_id, mstr, (hid_t)meta_pl_id, rstr, (hid_t)raw_pl_id); UNPIN_JAVA_STRING_TWO(metaext, mstr, rawext, rstr); if (retVal < 0) h5libraryError(env); } } /* end Java_hdf_hdf5lib_H5_H5Pset_1fapl_1split */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_meta_block_size * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1meta_1block_1size (JNIEnv *env, jclass clss, jlong plist, jlong size) { long sz = (long)size; if (H5Pset_meta_block_size((hid_t)plist, (hsize_t)sz) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1meta_1block_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_meta_block_size * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1meta_1block_1size (JNIEnv *env, jclass clss, jlong plist) { hsize_t s; if (H5Pget_meta_block_size((hid_t)plist, &s) < 0) h5libraryError(env); return (jlong)s; } /* end Java_hdf_hdf5lib_H5_H5Pget_1meta_1block_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_sieve_buf_size * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1sieve_1buf_1size (JNIEnv *env, jclass clss, jlong plist, jlong size) { size_t sz = (size_t)size; if (H5Pset_sieve_buf_size((hid_t)plist, (size_t)sz) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1sieve_1buf_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_sieve_buf_size * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1sieve_1buf_1size (JNIEnv *env, jclass clss, jlong plist) { size_t s; if (H5Pget_sieve_buf_size((hid_t)plist, &s) < 0) h5libraryError(env); return (jlong)s; } /* end Java_hdf_hdf5lib_H5_H5Pget_1sieve_1buf_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_elink_file_cache_size * Signature: (JI)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1elink_1file_1cache_1size (JNIEnv *env, jclass clss, jlong plist, jint size) { unsigned sz = (unsigned)size; if (H5Pset_elink_file_cache_size((hid_t)plist, (unsigned)sz) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1elink_1file_1cache_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_elink_file_cache_size * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1elink_1file_1cache_1size (JNIEnv *env, jclass clss, jlong plist) { unsigned s; if (H5Pget_elink_file_cache_size((hid_t)plist, &s) < 0) h5libraryError(env); return (jint)s; } /* end Java_hdf_hdf5lib_H5_H5Pget_1elink_1file_1cache_1size */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_mdc_config * Signature: (J)Lhdf/hdf5lib/structs/H5AC_cache_config_t; */ JNIEXPORT jobject JNICALL Java_hdf_hdf5lib_H5_H5Pget_1mdc_1config (JNIEnv *env, jclass clss, jlong plist) { H5AC_cache_config_t cacheinfo; herr_t status = -1; jvalue args[30]; jstring j_str = NULL; jobject ret_obj = NULL; HDmemset(&cacheinfo, 0, sizeof(H5AC_cache_config_t)); cacheinfo.version = H5AC__CURR_CACHE_CONFIG_VERSION; status = H5Pget_mdc_config((hid_t)plist, &cacheinfo); if (status < 0) { h5libraryError(env); } /* end if */ else { args[0].i = cacheinfo.version; args[1].z = cacheinfo.rpt_fcn_enabled; args[2].z = cacheinfo.open_trace_file; args[3].z = cacheinfo.close_trace_file; if (cacheinfo.trace_file_name != NULL) { j_str = ENVPTR->NewStringUTF(ENVPAR cacheinfo.trace_file_name); } /* end if */ args[4].l = j_str; args[5].z = cacheinfo.evictions_enabled; args[6].z = cacheinfo.set_initial_size; args[7].j = (jlong)cacheinfo.initial_size; args[8].d = cacheinfo.min_clean_fraction; args[9].j = (jlong)cacheinfo.max_size; args[10].j = (jlong)cacheinfo.min_size; args[11].j = cacheinfo.epoch_length; args[12].i = cacheinfo.incr_mode; args[13].d = cacheinfo.lower_hr_threshold; args[14].d = cacheinfo.increment; args[15].z = cacheinfo.apply_max_increment; args[16].j = (jlong)cacheinfo.max_increment; args[17].i = cacheinfo.flash_incr_mode; args[18].d = cacheinfo.flash_multiple; args[19].d = cacheinfo.flash_threshold; args[20].i = cacheinfo.decr_mode; args[21].d = cacheinfo.upper_hr_threshold; args[22].d = cacheinfo.decrement; args[23].z = cacheinfo.apply_max_decrement; args[24].j = (jlong)cacheinfo.max_decrement; args[25].i = cacheinfo.epochs_before_eviction; args[26].z = cacheinfo.apply_empty_reserve; args[27].d = cacheinfo.empty_reserve; args[28].j = (jlong)cacheinfo.dirty_bytes_threshold; args[29].i = cacheinfo.metadata_write_strategy; CALL_CONSTRUCTOR("hdf/hdf5lib/structs/H5AC_cache_config_t", "(IZZZLjava/lang/String;ZZJDJJJIDDZJIDDIDDZJIZDJI)V", args); } /* end else */ return ret_obj; } /* end Java_hdf_hdf5lib_H5_H5Pget_1mdc_1config */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_mdc_config * Signature: (JLhdf/hdf5lib/structs/H5AC_cache_config_t;)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1mdc_1config (JNIEnv *env, jclass clss, jlong plist, jobject cache_config) { herr_t status = -1; jclass cls; jfieldID fid; jstring j_str; const char *str; H5AC_cache_config_t cacheinfo; cls = ENVPTR->GetObjectClass(ENVPAR cache_config); fid = ENVPTR->GetFieldID(ENVPAR cls, "version", "I"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: version"); return; } /* end if */ cacheinfo.version = ENVPTR->GetIntField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading version failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "rpt_fcn_enabled", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: rpt_fcn_enabled"); return; } /* end if */ cacheinfo.rpt_fcn_enabled = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading rpt_fcn_enabled failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "open_trace_file", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: open_trace_file"); return; } /* end if */ cacheinfo.open_trace_file = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading open_trace_file failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "close_trace_file", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: close_trace_file"); return; } /* end if */ cacheinfo.close_trace_file = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading close_trace_file failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "trace_file_name", "Ljava/lang/String;"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: trace_file_name"); return; } /* end if */ j_str = (jstring)ENVPTR->GetObjectField(ENVPAR cache_config, fid); str = ENVPTR->GetStringUTFChars(ENVPAR j_str, NULL); if (str == NULL) { h5JNIFatalError(env, "H5Pset_mdc_config: out of memory trace_file_name"); return; } /* end if */ strncpy(cacheinfo.trace_file_name, str, 1025); ENVPTR->ReleaseStringUTFChars(ENVPAR j_str, str); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading trace_file_name failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "evictions_enabled", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: evictions_enabled"); return; } /* end if */ cacheinfo.evictions_enabled = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading evictions_enabled failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "set_initial_size", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: set_initial_size"); return; } /* end if */ cacheinfo.set_initial_size = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading set_initial_size failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "initial_size", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: initial_size"); return; } /* end if */ cacheinfo.initial_size = (size_t)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading initial_size failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "min_clean_fraction", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: min_clean_fraction"); return; } /* end if */ cacheinfo.min_clean_fraction = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading min_clean_fraction failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "max_size", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: max_size"); return; } /* end if */ cacheinfo.max_size = (size_t)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading max_size failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "min_size", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: min_size"); return; } /* end if */ cacheinfo.min_size = (size_t)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading min_size failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "epoch_length", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: epoch_length"); return; } cacheinfo.epoch_length = (long int)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading epoch_length failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "incr_mode", "I"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: incr_mode"); return; } /* end if */ cacheinfo.incr_mode = ENVPTR->GetIntField(ENVPAR cache_config, fid); /*(enum H5C_cache_incr_mode) */ if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading incr_mode failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "lower_hr_threshold", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: lower_hr_threshold"); return; } /* end if */ cacheinfo.lower_hr_threshold = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading lower_hr_threshold failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "increment", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: increment"); return; } /* end if */ cacheinfo.increment = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading increment failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "apply_max_increment", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: apply_max_increment"); return; } /* end if */ cacheinfo.apply_max_increment = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading apply_max_increment failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "max_increment", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: max_increment"); return; } /* end if */ cacheinfo.max_increment = (size_t)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading max_increment failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "flash_incr_mode", "I"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: flash_incr_mode"); return; } /* end if */ cacheinfo.flash_incr_mode = ENVPTR->GetIntField(ENVPAR cache_config, fid); /*(enum H5C_cache_flash_incr_mode) */ if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading flash_incr_mode failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "flash_multiple", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: flash_multiple"); return; } /* end if */ cacheinfo.flash_multiple = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading flash_multiple failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "flash_threshold", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: flash_threshold"); return; } /* end if */ cacheinfo.flash_threshold = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading flash_threshold failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "decr_mode", "I"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: decr_mode"); return; } /* end if */ cacheinfo.decr_mode = ENVPTR->GetIntField(ENVPAR cache_config, fid); /*(enum H5C_cache_decr_mode) */ if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading decr_mode failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "upper_hr_threshold", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: upper_hr_threshold"); return; } /* end if */ cacheinfo.upper_hr_threshold = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading upper_hr_threshold failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "decrement", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: decrement"); return; } /* end if */ cacheinfo.decrement = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading decrement failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "apply_max_decrement", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: apply_max_decrement"); return; } /* end if */ cacheinfo.apply_max_decrement = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading apply_max_decrement failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "max_decrement", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: max_decrement"); return; } /* end if */ cacheinfo.max_decrement = (size_t)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading max_decrement failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "epochs_before_eviction", "I"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: epochs_before_eviction"); return; } /* end if */ cacheinfo.epochs_before_eviction = ENVPTR->GetIntField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading epochs_before_eviction failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "apply_empty_reserve", "Z"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: apply_empty_reserve"); return; } /* end if */ cacheinfo.apply_empty_reserve = ENVPTR->GetBooleanField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading apply_empty_reserve failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "empty_reserve", "D"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: empty_reserve"); return; } /* end if */ cacheinfo.empty_reserve = ENVPTR->GetDoubleField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading empty_reserve failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "dirty_bytes_threshold", "J"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: dirty_bytes_threshold"); return; } /* end if */ cacheinfo.dirty_bytes_threshold = (size_t)ENVPTR->GetLongField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading dirty_bytes_threshold failed"); return; } /* end if */ fid = ENVPTR->GetFieldID(ENVPAR cls, "metadata_write_strategy", "I"); if(fid == 0) { h5badArgument(env, "H5Pset_mdc_config: metadata_write_strategy"); return; } /* end if */ cacheinfo.metadata_write_strategy = ENVPTR->GetIntField(ENVPAR cache_config, fid); if(ENVPTR->ExceptionOccurred(ENVONLY)) { h5JNIFatalError(env, "H5Pset_mdc_config: loading metadata_write_strategy failed"); } /* end if */ else { status = H5Pset_mdc_config((hid_t)plist, &cacheinfo); if (status < 0) h5libraryError(env); } } /* end Java_hdf_hdf5lib_H5_H5Pset_1mdc_1config */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_chunk_cache * Signature: (JJJD)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1chunk_1cache (JNIEnv *env, jclass clss, jlong dapl, jlong rdcc_nslots, jlong rdcc_nbytes, jdouble rdcc_w0) { if (H5Pset_chunk_cache((hid_t)dapl, (size_t)rdcc_nslots, (size_t)rdcc_nbytes, (double) rdcc_w0) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1chunk_1cache */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_chunk_cache * Signature: (J[J[J[D)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pget_1chunk_1cache (JNIEnv *env, jclass clss, jlong dapl, jlongArray rdcc_nslots, jlongArray rdcc_nbytes, jdoubleArray rdcc_w0) { herr_t status = -1; jint mode; jdouble *w0Array = (jdouble *)NULL; jlong *rdcc_nslotsArray = (jlong *)NULL; jlong *nbytesArray = (jlong *)NULL; jboolean isCopy; if (rdcc_w0 != NULL) { w0Array = (jdouble *)ENVPTR->GetDoubleArrayElements(ENVPAR rdcc_w0, &isCopy); if (w0Array == NULL) { h5JNIFatalError(env, "H5Pget_chunk_cache: w0_array array not pinned"); return; } /* end if */ } /* end else */ if (rdcc_nslots != NULL) { rdcc_nslotsArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR rdcc_nslots, &isCopy); if (rdcc_nslotsArray == NULL) { /* exception -- out of memory */ if (w0Array != NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR rdcc_w0, w0Array, JNI_ABORT); } /* end if */ h5JNIFatalError(env, "H5Pget_chunk_cache: rdcc_nslots array not pinned"); return; } /* end if */ } /* end else */ if (rdcc_nbytes != NULL) { nbytesArray = (jlong *)ENVPTR->GetLongArrayElements(ENVPAR rdcc_nbytes, &isCopy); if (nbytesArray == NULL) { if (w0Array != NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR rdcc_w0, w0Array, JNI_ABORT); } /* end if */ if (rdcc_nslotsArray != NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR rdcc_nslots, rdcc_nslotsArray, JNI_ABORT); } /* end if */ h5JNIFatalError(env, "H5Pget_chunk_cache: nbytesArray array not pinned"); return; } /* end if */ } /* end else */ { /* direct cast (size_t *)variable fails on 32-bit environment */ long long rdcc_nslots_temp = *(rdcc_nslotsArray); size_t rdcc_nslots_t = (size_t)rdcc_nslots_temp; long long nbytes_temp = *(nbytesArray); size_t nbytes_t = (size_t)nbytes_temp; status = H5Pget_chunk_cache((hid_t)dapl, &rdcc_nslots_t, &nbytes_t, (double *)w0Array); *rdcc_nslotsArray = (jlong)rdcc_nslots_t; *nbytesArray = (jlong)nbytes_t; } /* end direct cast special handling */ if (status < 0) { mode = JNI_ABORT; } /* end if */ else { mode = 0; /* commit and free */ } /* end else */ if (rdcc_nslotsArray != NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR rdcc_nslots, rdcc_nslotsArray, mode); } /* end if */ if (nbytesArray != NULL) { ENVPTR->ReleaseLongArrayElements(ENVPAR rdcc_nbytes, nbytesArray, mode); } /* end if */ if (w0Array != NULL) { ENVPTR->ReleaseDoubleArrayElements(ENVPAR rdcc_w0, w0Array, mode); } /* end if */ if (status < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pget_1chunk_1cache */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_obj_track_times * Signature: (J)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pget_1obj_1track_1times (JNIEnv *env, jclass clss, jlong objplid) { hbool_t track_times; if (H5Pget_obj_track_times((hid_t)objplid, &track_times) < 0) { h5libraryError(env); return JNI_FALSE; } /* end if */ if (track_times == 1) { return JNI_TRUE; } /* end if */ return JNI_FALSE; } /* end Java_hdf_hdf5lib_H5_H5Pget_1obj_1track_1times */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_obj_track_times * Signature: (JZ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1obj_1track_1times (JNIEnv *env, jclass clss, jlong objplid, jboolean track_times) { hbool_t track; if (track_times == JNI_TRUE) { track = 1; } /* end if */ else { track = 0; } /* end else */ if (H5Pset_obj_track_times((hid_t)objplid, track) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1obj_1track_1times */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_char_encoding * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1char_1encoding (JNIEnv *env, jclass clss, jlong acpl) { H5T_cset_t encoding; if (H5Pget_char_encoding((hid_t)acpl, &encoding) < 0) h5libraryError(env); return encoding; } /* end Java_hdf_hdf5lib_H5_H5Pget_1char_1encoding */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_char_encoding * Signature: (JI)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1char_1encoding (JNIEnv *env, jclass clss, jlong acpl, jint encoding) { if (H5Pset_char_encoding((hid_t)acpl, (H5T_cset_t)encoding) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1char_1encoding */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_virtual * Signature: (JJLjava/lang/String;Ljava/lang/String;J)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1virtual (JNIEnv *env, jclass clss, jlong dcpl_id, jlong vspace_id, jstring src_file_name, jstring src_dset_name, jlong src_space_id) { herr_t retVal = -1; const char *fstr; const char *dstr; PIN_JAVA_STRING_TWO(src_file_name, fstr, src_dset_name, dstr); if (fstr != NULL && dstr != NULL) { retVal = H5Pset_virtual((hid_t)dcpl_id, (hid_t)vspace_id, fstr, dstr, (hid_t)src_space_id); UNPIN_JAVA_STRING_TWO(src_file_name, fstr, src_dset_name, dstr); if (retVal < 0) h5libraryError(env); } } /* end Java_hdf_hdf5lib_H5_H5Pset_1virtual */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_count * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1count (JNIEnv *env, jclass clss, jlong dcpl_id) { size_t s; if (H5Pget_virtual_count((hid_t)dcpl_id, &s) < 0) h5libraryError(env); return (jlong)s; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1count */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_vspace * Signature: (JJ)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1vspace (JNIEnv *env, jclass clss, jlong dcpl_id, jlong index) { hid_t space_id = -1; space_id = H5Pget_virtual_vspace((hid_t)dcpl_id, (size_t)index); if (space_id < 0) h5libraryError(env); return (jlong)space_id; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1vspace */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_srcspace * Signature: (JJ)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1srcspace (JNIEnv *env, jclass clss, jlong dcpl_id, jlong index) { hid_t space_id = -1; space_id = H5Pget_virtual_srcspace((hid_t)dcpl_id, (size_t)index); if (space_id < 0) h5libraryError(env); return (jlong)space_id; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1srcspace */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_filename * Signature: (JJ)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1filename (JNIEnv *env, jclass clss, jlong dcpl_id, jlong index) { char *fname; ssize_t buf_size; ssize_t status; jstring str = NULL; /* get the length of the filename */ buf_size = H5Pget_virtual_filename((hid_t)dcpl_id, (size_t)index, NULL, 0); if (buf_size < 0) { h5badArgument( env, "H5Pget_virtual_filename: buf_size < 0"); } /* end if */ else if (buf_size >= 0) { buf_size++; /* add extra space for the null terminator */ fname = (char *)HDmalloc(sizeof(char) * (size_t)buf_size); if (fname == NULL) { h5outOfMemory( env, "H5Pget_virtual_filename: malloc failed"); } /* end if */ else { status = H5Pget_virtual_filename((hid_t)dcpl_id, (size_t)index, fname, (size_t)buf_size); if (status >= 0) { str = ENVPTR->NewStringUTF(ENVPAR fname); HDfree(fname); if (str == NULL) h5JNIFatalError( env, "H5Pget_virtual_filename: return string not allocated"); } /* end if */ else { HDfree(fname); h5libraryError(env); } /* end else */ } /* end else */ } /* end else if */ return (jstring)str; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1filename */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_dsetname * Signature: (JJ)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1dsetname (JNIEnv *env, jclass clss, jlong dcpl_id, jlong index) { char *dname; ssize_t buf_size; ssize_t status; jstring str = NULL; /* get the length of the filename */ buf_size = H5Pget_virtual_dsetname((hid_t)dcpl_id, (size_t)index, NULL, 0); if (buf_size < 0) { h5badArgument( env, "H5Pget_virtual_dsetname: buf_size < 0"); } /* end if */ else if (buf_size > 0) { buf_size++; /* add extra space for the null terminator */ dname = (char *)HDmalloc(sizeof(char) * (size_t)buf_size); if (dname == NULL) { h5outOfMemory( env, "H5Pget_virtual_dsetname: malloc failed"); } /* end if */ else { status = H5Pget_virtual_dsetname((hid_t)dcpl_id, (size_t)index, dname, (size_t)buf_size); if (status >= 0) { str = ENVPTR->NewStringUTF(ENVPAR dname); HDfree(dname); if (str == NULL) h5JNIFatalError( env, "H5Pget_virtual_dsetname: return string not allocated"); } /* end if */ else { HDfree(dname); h5libraryError(env); } /* end else */ } /* end else */ } /* end else if */ return (jstring)str; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1dsetname */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_view * Signature: (J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1view (JNIEnv *env, jclass clss, jlong dapl_id) { H5D_vds_view_t virtual_view; if (H5Pget_virtual_view((hid_t)dapl_id, &virtual_view) < 0) h5libraryError(env); return (jint)virtual_view; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1view */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_virtual_view * Signature: (JI)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1virtual_1view (JNIEnv *env, jclass clss, jlong dapl_id, jint view) { if (H5Pset_virtual_view((hid_t)dapl_id, (H5D_vds_view_t)view) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1virtual_1view */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_virtual_printf_gap * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1virtual_1printf_1gap (JNIEnv *env, jclass clss, jlong dapl_id) { hsize_t gap_size; if (H5Pget_virtual_printf_gap((hid_t)dapl_id, &gap_size) < 0) h5libraryError(env); return (jlong)gap_size; } /* end Java_hdf_hdf5lib_H5_H5Pget_1virtual_1printf_1gap */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_virtual_printf_gap * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1virtual_1printf_1gap (JNIEnv *env, jclass clss, jlong dapl_id, jlong gap_size) { if (H5Pset_virtual_printf_gap((hid_t)dapl_id, (hsize_t)gap_size) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_1virtual_1printf_1gap */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_file_space_strategy * Signature: (J[Z[J)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1strategy (JNIEnv *env, jclass clss, jlong fcpl_id, jbooleanArray persist, jlongArray threshold) { herr_t status = -1; H5F_fspace_strategy_t thestrategy = H5F_FSPACE_STRATEGY_FSM_AGGR; /* Library default */ jlong *thethresholdArray = NULL; jboolean *thepersistArray = NULL; jboolean isCopy; if (persist) { thepersistArray = (jboolean*)ENVPTR->GetBooleanArrayElements(ENVPAR persist, &isCopy); if (thepersistArray == NULL) { h5JNIFatalError(env, "H5Pget_file_space: persist not pinned"); return -1; } } if (threshold) { thethresholdArray = (jlong*)ENVPTR->GetLongArrayElements(ENVPAR threshold, &isCopy); if (thethresholdArray == NULL) { if (persist) ENVPTR->ReleaseBooleanArrayElements(ENVPAR persist, thepersistArray, JNI_ABORT); h5JNIFatalError(env, "H5Pget_file_space: threshold not pinned"); return -1; } /* end if */ } /* end if */ status = H5Pget_file_space_strategy((hid_t)fcpl_id, &thestrategy, (hbool_t*)thepersistArray, (hsize_t*)thethresholdArray); if (status < 0) { if (persist) ENVPTR->ReleaseBooleanArrayElements(ENVPAR persist, thepersistArray, JNI_ABORT); if (threshold) ENVPTR->ReleaseLongArrayElements(ENVPAR threshold, thethresholdArray, JNI_ABORT); h5libraryError(env); } /* end if */ else { if (persist) ENVPTR->ReleaseBooleanArrayElements(ENVPAR persist, thepersistArray, 0); if (threshold) ENVPTR->ReleaseLongArrayElements(ENVPAR threshold, thethresholdArray, 0); } /* end else */ return (jint)thestrategy; } /* end Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1strategy */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_file_space_strategy_persist * Signature: (J)Z */ JNIEXPORT jboolean JNICALL Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1strategy_1persist (JNIEnv *env, jclass clss, jlong fcpl_id) { herr_t status = -1; hbool_t thepersist = FALSE; status = H5Pget_file_space_strategy((hid_t)fcpl_id, NULL, &thepersist, NULL); if (status < 0) h5libraryError(env); return (jboolean)thepersist; } /* end Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1strategy_1persist */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_file_space_strategy_threshold * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1strategy_1threshold (JNIEnv *env, jclass clss, jlong fcpl_id) { herr_t status = -1; hsize_t thethreshold; status = H5Pget_file_space_strategy((hid_t)fcpl_id, NULL, NULL, &thethreshold); if (status < 0) h5libraryError(env); return (jlong)thethreshold; } /* end Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1threshold */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_file_space_strategy * Signature: (JIZJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1file_1space_1strategy (JNIEnv *env, jclass clss, jlong fcpl_id, jint strategy, jboolean persist, jlong threshold) { if (H5Pset_file_space_strategy((hid_t)fcpl_id, (H5F_fspace_strategy_t)strategy, (hbool_t)persist, (hsize_t)threshold) < 0) h5libraryError(env); } /* end Java_hdf_hdf5lib_H5_H5Pset_file_space_strategy */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_file_space_page_size * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1file_1space_1page_1size (JNIEnv *env, jclass clss, jlong fcpl_id, jlong fsp_size) { if (H5Pset_file_space_page_size((hid_t)fcpl_id, (hsize_t)fsp_size) < 0) h5libraryError(env); } /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_file_space_page_size * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1file_1space_1page_1size (JNIEnv *env, jclass clss, jlong fcpl_id) { hsize_t fsp_size = 0; if (H5Pget_file_space_page_size((hid_t)fcpl_id, &fsp_size) < 0) h5libraryError(env); return (jlong)fsp_size; } static herr_t H5P_cls_create_cb (hid_t prop_id, void *create_data) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR create_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JLhdf/hdf5lib/callbacks/H5P_cls_create_func_t;)I"); if (mid != 0) { /* fprintf(stderr, "JNI H5P_cls_create_func_cb execute\n"); fflush(stderr); */ status = CBENVPTR->CallIntMethod(CBENVPAR create_callback, mid, prop_id, create_data); /* fprintf(stderr, "\nJNI H5P_cls_create_func_cb status: %d\n", status); fflush(stderr); */ } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_cls_create_cb */ static herr_t H5P_cls_copy_cb (hid_t new_prop_id, hid_t old_prop_id, void *copy_data) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR copy_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JJLhdf/hdf5lib/callbacks/H5P_cls_copy_func_t;)I"); if (mid != 0) { status = CBENVPTR->CallIntMethod(CBENVPAR copy_callback, mid, new_prop_id, old_prop_id, copy_data); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_cls_ccopy_cb */ static herr_t H5P_cls_close_cb (hid_t prop_id, void *close_data) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR close_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JLhdf/hdf5lib/callbacks/H5P_cls_close_func_t;)I"); if (mid != 0) { status = CBENVPTR->CallIntMethod(CBENVPAR close_callback, mid, prop_id, close_data); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_cls_close_cb */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_mdc_log_options * Signature: (JZLjava/lang/String;Z)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1mdc_1log_1options (JNIEnv *env, jclass clss, jlong fapl_id, jboolean is_enabled, jstring location, jboolean start_on_access) { herr_t retVal = -1; const char *lstr; PIN_JAVA_STRING(location, lstr); retVal = H5Pset_mdc_log_options((hid_t)fapl_id, (hbool_t)is_enabled, lstr, (hbool_t)start_on_access); UNPIN_JAVA_STRING(location, lstr); if (retVal < 0) { h5libraryError(env); } } /* end Java_hdf_hdf5lib_H5_H5Pset_1mdc_1log_1options */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_mdc_log_options * Signature: (J[Z)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_hdf_hdf5lib_H5_H5Pget_1mdc_1log_1options (JNIEnv *env, jclass clss, jlong fapl_id, jbooleanArray mdc_log_options) { hbool_t is_enabled; hbool_t start_on_access; jboolean *mdc_log_options_ptr; char *lname; size_t location_size; ssize_t status; jstring str = NULL; jint size; jboolean isCopy; if (mdc_log_options == NULL) { h5nullArgument(env, "H5Fget_mdc_log_options: mdc_log_options is NULL"); } /* end if */ else { size = (int)ENVPTR->GetArrayLength(ENVPAR mdc_log_options); if (size < 2) { h5badArgument(env, "H5Fget_mdc_log_options: length of mdc_log_options < 2."); } /* end if */ else { /* get the length of the filename */ H5Pget_mdc_log_options((hid_t)fapl_id, &is_enabled, NULL, &location_size, &start_on_access); if (location_size == 0) { h5badArgument(env, "H5Pget_mdc_log_options: location_size is 0"); }/* end if */ else if (location_size > 0) { location_size++; /* add extra space for the null terminator */ lname = (char *)HDmalloc(sizeof(char) * location_size); if (lname == NULL) { h5outOfMemory(env, "H5Pget_mdc_log_options: malloc failed"); } /* end if */ else { status = H5Pget_mdc_log_options((hid_t)fapl_id, &is_enabled, lname, &location_size, &start_on_access); if (status < 0) { HDfree(lname); h5libraryError(env); } /* end if */ else { str = ENVPTR->NewStringUTF(ENVPAR lname); HDfree(lname); if (str == NULL) { h5JNIFatalError(env, "H5Pget_mdc_log_options: return string not allocated"); } /* end if */ else { mdc_log_options_ptr = ENVPTR->GetBooleanArrayElements(ENVPAR mdc_log_options, &isCopy); mdc_log_options_ptr[0] = (jboolean)is_enabled; mdc_log_options_ptr[1] = (jboolean)start_on_access; ENVPTR->ReleaseBooleanArrayElements(ENVPAR mdc_log_options, mdc_log_options_ptr, 0); } /* end else */ } /* end else */ } /* end else */ } /* end else if*/ } /* end else */ } /* end else */ return (jstring)str; } /* end if */ static herr_t H5D_append_cb (hid_t dataset_id, hsize_t *cur_dims, void *op_data) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jlongArray cur_dimsArray; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) != 0) { JVMPTR->DetachCurrentThread(JVMPAR); return -1; } /* end if */ cls = CBENVPTR->GetObjectClass(CBENVPAR visit_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(J[JLhdf/hdf5lib/callbacks/H5D_append_t;)I"); if (mid != 0) { if (cur_dims != NULL) { cur_dimsArray = CBENVPTR->NewLongArray(CBENVPAR 2); if (cur_dimsArray != NULL) { CBENVPTR->SetLongArrayRegion(CBENVPAR cur_dimsArray, 0, 2, (const jlong *)cur_dims); status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, dataset_id, cur_dims, op_data); } } } } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5D_append_cb */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_append_flush * Signature: (JI[JLjava/lang/Object;Ljava/lang/Object;)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1append_1flush (JNIEnv *env, jclass clss, jlong plist_id, jint ndims, jlongArray boundary, jobject callback_op, jobject op_data) { herr_t status = -1; ENVPTR->GetJavaVM(ENVPAR &jvm); visit_callback = callback_op; if (op_data == NULL) { h5nullArgument(env, "H5Ovisit: op_data is NULL"); } /* end if */ else if (callback_op == NULL) { h5nullArgument(env, "H5Ovisit: callback_op is NULL"); } /* end if */ else { status = H5Pset_append_flush((hid_t)plist_id, (unsigned)ndims, (const hsize_t*)boundary, (H5D_append_cb_t)H5D_append_cb, (void*)op_data); if (status < 0) h5libraryError(env); } /* end else */ } /* end Java_hdf_hdf5lib_H5_H5Pset_1append_1flush */ /* * Class: hdf_hdf5lib_H5 * Method: _H5Pcreate_class_nocb * Signature: (JLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5__1H5Pcreate_1class_1nocb (JNIEnv *env, jclass clss, jlong parent_class, jstring name) { hid_t class_id = -1; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { class_id = H5Pcreate_class((hid_t)parent_class, cstr, NULL, NULL, NULL, NULL, NULL, NULL); UNPIN_JAVA_STRING(name, cstr); if (class_id < 0) h5libraryError(env); } return (jlong)class_id; } /* end Java_hdf_hdf5lib_H5__1H5Pcreate_1class_1nocb */ /* * Class: hdf_hdf5lib_H5 * Method: _H5Pcreate_class * Signature: (JLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5__1H5Pcreate_1class (JNIEnv *env, jclass clss, jlong parent_class, jstring name, jobject create_op, jobject create_data, jobject copy_op, jobject copy_data, jobject close_op, jobject close_data) { hid_t class_id = -1; const char *cstr; copy_callback = copy_op; close_callback = close_op; create_callback = create_op; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { class_id = H5Pcreate_class((hid_t)parent_class, cstr, (H5P_cls_create_func_t)H5P_cls_create_cb, (void*) create_data, (H5P_cls_copy_func_t)H5P_cls_copy_cb, (void*) copy_data, (H5P_cls_close_func_t)H5P_cls_close_cb, (void*) close_data); UNPIN_JAVA_STRING(name, cstr); if (class_id < 0) h5libraryError(env); } return (jlong)class_id; } /* end Java_hdf_hdf5lib_H5__1H5Pcreate_1class */ static herr_t H5P_prp_create_cb (const char *name, size_t size, void *value) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR create_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(Ljava/lang/String;J[B)I"); if (mid != 0) { str = CBENVPTR->NewStringUTF(CBENVPAR name); status = CBENVPTR->CallIntMethod(CBENVPAR create_callback, mid, str, size, value); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_create_cb */ static herr_t H5P_prp_copy_cb (const char *name, size_t size, void *value) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR copy_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(Ljava/lang/String;J[B)I"); if (mid != 0) { str = CBENVPTR->NewStringUTF(CBENVPAR name); status = CBENVPTR->CallIntMethod(CBENVPAR copy_callback, mid, str, size, value); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_copy_cb */ static herr_t H5P_prp_close_cb (const char *name, size_t size, void *value) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR close_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(Ljava/lang/String;J[B)I"); if (mid != 0) { str = CBENVPTR->NewStringUTF(CBENVPAR name); status = CBENVPTR->CallIntMethod(CBENVPAR close_callback, mid, str, size, value); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_close_cb */ static int H5P_prp_compare_cb (void *value1, void *value2, size_t size) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR compare_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "([B[BJ)I"); if (mid != 0) { status = CBENVPTR->CallIntMethod(CBENVPAR compare_callback, mid, value1, value2, size); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_compare_cb */ static herr_t H5P_prp_get_cb (hid_t prop_id, const char *name, size_t size, void *value) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR get_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JLjava/lang/String;J[B)I"); if (mid != 0) { str = CBENVPTR->NewStringUTF(CBENVPAR name); status = CBENVPTR->CallIntMethod(CBENVPAR get_callback, mid, prop_id, str, size, value); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_get_cb */ static herr_t H5P_prp_set_cb (hid_t prop_id, const char *name, size_t size, void *value) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR set_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JLjava/lang/String;J[B)I"); if (mid != 0) { str = CBENVPTR->NewStringUTF(CBENVPAR name); status = CBENVPTR->CallIntMethod(CBENVPAR set_callback, mid, prop_id, str, size, value); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_set_cb */ static herr_t H5P_prp_delete_cb (hid_t prop_id, const char *name, size_t size, void *value) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) == 0) { cls = CBENVPTR->GetObjectClass(CBENVPAR delete_callback); if (cls != 0) { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JLjava/lang/String;J[B)I"); if (mid != 0) { str = CBENVPTR->NewStringUTF(CBENVPAR name); status = CBENVPTR->CallIntMethod(CBENVPAR delete_callback, mid, prop_id, str, size, value); } /* end if */ } /* end if */ } /* end if */ JVMPTR->DetachCurrentThread(JVMPAR); return (herr_t)status; } /* end H5P_prp_delete_cb */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pregister2_nocb * Signature: (JLjava/lang/String;J[B)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pregister2_1nocb (JNIEnv *env, jclass clss, jlong cls_id, jstring name, jlong prp_size, jbyteArray def_value) { herr_t status = -1; jbyte *buffP; jboolean isCopy2; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { buffP = ENVPTR->GetByteArrayElements(ENVPAR def_value, &isCopy2); if (buffP == NULL) { h5JNIFatalError(env, "H5Pregister2: buf not pinned"); } /* end if */ else { status = H5Pregister2((hid_t)cls_id, cstr, (size_t)prp_size, (void*)buffP, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, JNI_ABORT); h5libraryError(env); } /* end if */ else { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, 0); } /* end else */ } /* end else */ UNPIN_JAVA_STRING(name, cstr); } } /* end Java_hdf_hdf5lib_H5_H5Pregister2_1nocb */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pregister2 * Signature: (JLjava/lang/String;J[BLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pregister2 (JNIEnv *env, jclass clss, jlong cls_id, jstring name, jlong prp_size, jbyteArray def_value, jobject prp_create, jobject prp_set, jobject prp_get, jobject prp_delete, jobject prp_copy, jobject prp_cmp, jobject prp_close) { herr_t status = -1; jbyte *buffP; jboolean isCopy2; const char *cstr; copy_callback = prp_copy; close_callback = prp_close; create_callback = prp_create; compare_callback = prp_cmp; set_callback = prp_set; get_callback = prp_get; delete_callback = prp_delete; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { buffP = ENVPTR->GetByteArrayElements(ENVPAR def_value, &isCopy2); if (buffP == NULL) { h5JNIFatalError(env, "H5Pregister2: buf not pinned"); } /* end if */ else { status = H5Pregister2((hid_t)cls_id, cstr, (size_t)prp_size, (void*)buffP, (H5P_prp_create_func_t)H5P_prp_create_cb, (H5P_prp_set_func_t)H5P_prp_set_cb, (H5P_prp_get_func_t)H5P_prp_get_cb, (H5P_prp_delete_func_t)H5P_prp_delete_cb, (H5P_prp_copy_func_t)H5P_prp_copy_cb, (H5P_prp_compare_func_t)H5P_prp_compare_cb, (H5P_prp_close_func_t)H5P_prp_close_cb); if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, JNI_ABORT); h5libraryError(env); } /* end if */ else { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, 0); } /* end else */ } /* end else */ UNPIN_JAVA_STRING(name, cstr); } } /* end Java_hdf_hdf5lib_H5_H5Pregister2 */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pinsert2_nocb * Signature: (JLjava/lang/String;J[B)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pinsert2_1nocb (JNIEnv *env, jclass clss, jlong cls_id, jstring name, jlong prp_size, jbyteArray def_value) { herr_t status = -1; jbyte *buffP; jboolean isCopy2; const char *cstr; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { buffP = ENVPTR->GetByteArrayElements(ENVPAR def_value, &isCopy2); if (buffP == NULL) { h5JNIFatalError(env, "H5Pinsert2: buf not pinned"); } /* end if */ else { status = H5Pinsert2((hid_t)cls_id, cstr, (size_t)prp_size, (void*)buffP, NULL, NULL, NULL, NULL, NULL, NULL); if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, JNI_ABORT); h5libraryError(env); } /* end if */ else { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, 0); } /* end else */ } /* end else */ UNPIN_JAVA_STRING(name, cstr); } } /* end Java_hdf_hdf5lib_H5_H5Pinsert2 */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pinsert2 * Signature: (JLjava/lang/String;J[BLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pinsert2 (JNIEnv *env, jclass clss, jlong cls_id, jstring name, jlong prp_size, jbyteArray def_value, jobject prp_set, jobject prp_get, jobject prp_delete, jobject prp_copy, jobject prp_cmp, jobject prp_close) { herr_t status = -1; jbyte *buffP; jboolean isCopy2; const char *cstr; copy_callback = prp_copy; close_callback = prp_close; compare_callback = prp_cmp; set_callback = prp_set; get_callback = prp_get; delete_callback = prp_delete; PIN_JAVA_STRING(name, cstr); if (cstr != NULL) { buffP = ENVPTR->GetByteArrayElements(ENVPAR def_value, &isCopy2); if (buffP == NULL) { UNPIN_JAVA_STRING(name, cstr); h5JNIFatalError(env, "H5Pinsert2: buf not pinned"); } /* end if */ else { status = H5Pinsert2((hid_t)cls_id, cstr, (size_t)prp_size, (void*)buffP, (H5P_prp_set_func_t)H5P_prp_set_cb, (H5P_prp_get_func_t)H5P_prp_get_cb, (H5P_prp_delete_func_t)H5P_prp_delete_cb, (H5P_prp_copy_func_t)H5P_prp_copy_cb, (H5P_prp_compare_func_t)H5P_prp_compare_cb, (H5P_prp_close_func_t)H5P_prp_close_cb); if (status < 0) { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, JNI_ABORT); h5libraryError(env); } /* end if */ else { ENVPTR->ReleaseByteArrayElements(ENVPAR def_value, buffP, 0); } /* end else */ } /* end else */ UNPIN_JAVA_STRING(name, cstr); } } /* end Java_hdf_hdf5lib_H5_H5Pinsert2 */ static herr_t H5P_iterate_cb (hid_t prop_id, const char *name, void *op_data) { JNIEnv *cbenv; jint status = -1; jclass cls; jmethodID mid; jstring str; /* fprintf(stderr, "\nJNI H5P_iterate_cb entered\n"); fflush(stderr); */ if(JVMPTR->AttachCurrentThread(JVMPAR2 (void**)&cbenv, NULL) != 0) { /* fprintf(stderr, "\nJNI H5P_iterate_cb error: AttachCurrentThread failed\n"); fflush(stderr); */ JVMPTR->DetachCurrentThread(JVMPAR); } /* end if */ else { cls = CBENVPTR->GetObjectClass(CBENVPAR visit_callback); if (cls == 0) { /* fprintf(stderr, "\nJNI H5P_iterate_cb error: GetObjectClass failed\n"); fflush(stderr); */ JVMPTR->DetachCurrentThread(JVMPAR); } /* end if */ else { mid = CBENVPTR->GetMethodID(CBENVPAR cls, "callback", "(JLjava/lang/String;Lhdf/hdf5lib/callbacks/H5P_iterate_t;)I"); if (mid == 0) { /* fprintf(stderr, "\nJNI H5P_iterate_cb error: GetMethodID failed\n"); fflush(stderr); */ JVMPTR->DetachCurrentThread(JVMPAR); } /* end if */ else { str = CBENVPTR->NewStringUTF(CBENVPAR name); /* fprintf(stderr, "JNI H5P_iterate_cb execute\n"); fflush(stderr); */ status = CBENVPTR->CallIntMethod(CBENVPAR visit_callback, mid, prop_id, str, op_data); /* fprintf(stderr, "\nJNI H5P_iterate_cb status: %d\n", status); fflush(stderr); */ } /* end else */ } /* end else */ } /* end else */ JVMPTR->DetachCurrentThread(JVMPAR); /* fprintf(stderr, "\nJNI H5P_iterate_cb leave\n"); fflush(stderr); */ return status; } /* end H5P_iterate_cb */ /* * Class: hdf_hdf5lib_H5 * Method: H5Piterate * Signature: (J[ILjava/lang/Object;Ljava/lang/Object;)I */ JNIEXPORT jint JNICALL Java_hdf_hdf5lib_H5_H5Piterate (JNIEnv *env, jclass clss, jlong prop_id, jintArray idx, jobject callback_op, jobject op_data) { herr_t status = -1; jint *theArray = NULL; jboolean isCopy; ENVPTR->GetJavaVM(ENVPAR &jvm); visit_callback = callback_op; if (op_data == NULL) { h5nullArgument(env, "H5Piterate: op_data is NULL"); } /* end if */ else if (callback_op == NULL) { h5nullArgument(env, "H5Piterate: callback_op is NULL"); } /* end else if */ else { if (idx == NULL) { status = H5Piterate((hid_t)prop_id, NULL, (H5P_iterate_t)H5P_iterate_cb, (void*)op_data); } /* end if */ else { theArray = (jint *)ENVPTR->GetIntArrayElements(ENVPAR idx, &isCopy); if (theArray == NULL) { h5JNIFatalError(env, "H5Piterate: idx not pinned"); } /* end if */ else status = H5Piterate((hid_t)prop_id, (int*)&theArray[0], (H5P_iterate_t)H5P_iterate_cb, (void*)op_data); } /* end else */ if (status < 0) { if(idx) ENVPTR->ReleaseIntArrayElements(ENVPAR idx, theArray, JNI_ABORT); h5libraryError(env); } /* end if */ else if (idx) ENVPTR->ReleaseIntArrayElements(ENVPAR idx, theArray, 0); } /* end else */ return (jint)status; } /* end Java_hdf_hdf5lib_H5_H5Piterate */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pget_metadata_read_attempts * Signature: (J)J */ JNIEXPORT jlong JNICALL Java_hdf_hdf5lib_H5_H5Pget_1metadata_1read_1attempts (JNIEnv *env, jclass clss, jlong plist_id) { unsigned attempts; if (H5Pget_metadata_read_attempts((hid_t)plist_id, &attempts) < 0) h5libraryError(env); return (jlong) attempts; } /* end Java_hdf_hdf5lib_H5_H5Pget_1metadata_1read_1attempts */ /* * Class: hdf_hdf5lib_H5 * Method: H5Pset_metadata_read_attempts * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Pset_1metadata_1read_1attempts (JNIEnv *env, jclass clss, jlong plist_id, jlong attempts) { if (attempts <= 0) { h5badArgument(env, "H5Pset_metadata_read_attempts: attempts <= 0"); } /* end if */ else { if(H5Pset_metadata_read_attempts((hid_t)plist_id, (unsigned)attempts) < 0) h5libraryError(env); } /* 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 */