5741 lines
181 KiB
C
5741 lines
181 KiB
C
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* 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 files COPYING and Copyright.html. COPYING can be found at the root *
|
|
* of the source code distribution tree; Copyright.html can be found at the *
|
|
* root level of an installed copy of the electronic HDF5 document set and *
|
|
* is linked from the top-level documents page. It can also be found at *
|
|
* http://hdfgroup.org/HDF5/doc/Copyright.html. 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://hdfdfgroup.org/HDF5/doc/
|
|
*
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#include <stdlib.h>
|
|
#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; i<n; i++)*/
|
|
} /* end if */
|
|
h5str_array_free(mName, H5FD_MEM_NTYPES);
|
|
} /* end if */
|
|
} /* end else */
|
|
|
|
return (relax!=0);
|
|
} /* end Java_hdf_hdf5lib_H5_H5Pget_1fapl_1multi */
|
|
|
|
/*
|
|
* Class: hdf_hdf5lib_H5
|
|
* Method: H5Pset_fapl_muti
|
|
* Signature: (J[I[J[Ljava/lang/String;[JZ)V
|
|
*/
|
|
JNIEXPORT void JNICALL
|
|
Java_hdf_hdf5lib_H5_H5Pset_1fapl_1multi
|
|
(JNIEnv *env, jclass clss, jlong tid, jintArray memb_map,
|
|
jlongArray memb_fapl, jobjectArray memb_name, jlongArray memb_addr, jboolean relax)
|
|
{
|
|
herr_t status = -1;
|
|
jint *themapArray = NULL;
|
|
jlong *thefaplArray = NULL;
|
|
jlong *theaddrArray = NULL;
|
|
jboolean isCopy;
|
|
jclass Sjc;
|
|
jstring rstring;
|
|
jobject o;
|
|
jboolean bb;
|
|
const char **mName = NULL;
|
|
char *member_name[H5FD_MEM_NTYPES];
|
|
|
|
if (memb_map) {
|
|
themapArray = (jint *)ENVPTR->GetIntArrayElements(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 < 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 */
|
|
|
|
#ifdef __cplusplus
|
|
} /* end extern "C" */
|
|
#endif /* __cplusplus */
|