1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * Copyright by The HDF Group. *
3 * Copyright by the Board of Trustees of the University of Illinois. *
4 * All rights reserved. *
5 * *
6 * This file is part of HDF5. The full HDF5 copyright notice, including *
7 * terms governing use, modification, and redistribution, is contained in *
8 * the COPYING file, which can be found at the root of the source code *
9 * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10 * If you do not have access to either file, you may request a copy from *
11 * help@hdfgroup.org. *
12 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13
14 /*
15 * For details of the HDF libraries, see the HDF Documentation at:
16 * http://hdfgroup.org/HDF5/doc/
17 *
18 */
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif /* __cplusplus */
23
24 #include <jni.h>
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include <string.h>
28 #include "hdf5.h"
29 #include "h5jni.h"
30 #include "h5tImp.h"
31
32 /*
33 * Pointer to the JNI's Virtual Machine; used for callback functions.
34 */
35 /* extern JavaVM *jvm; */
36
37 /*
38 * Class: hdf_hdf5lib_H5
39 * Method: _H5Topen2
40 * Signature: (JLjava/lang/String;J)J
41 */
42 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Topen2(JNIEnv * env,jclass clss,jlong loc_id,jstring name,jlong access_plist)43 Java_hdf_hdf5lib_H5__1H5Topen2
44 (JNIEnv *env, jclass clss, jlong loc_id, jstring name, jlong access_plist)
45 {
46 const char *datatypeName = NULL;
47 hid_t status = H5I_INVALID_HID;
48
49 UNUSED(clss);
50
51 if (NULL == name)
52 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Topen2: datatype name is NULL");
53
54 PIN_JAVA_STRING(ENVONLY, name, datatypeName, NULL, "H5Topen2: datatype name not pinned");
55
56 if ((status = H5Topen2((hid_t)loc_id, datatypeName, (hid_t)access_plist)) < 0)
57 H5_LIBRARY_ERROR(ENVONLY);
58
59 done:
60 if (datatypeName)
61 UNPIN_JAVA_STRING(ENVONLY, name, datatypeName);
62
63 return (jlong)status;
64 } /* end Java_hdf_hdf5lib_H5__1H5Topen2 */
65
66 /*
67 * Class: hdf_hdf5lib_H5
68 * Method: H5Tcommitted
69 * Signature: (J)Z
70 */
71 JNIEXPORT jboolean JNICALL
Java_hdf_hdf5lib_H5_H5Tcommitted(JNIEnv * env,jclass clss,jlong type_id)72 Java_hdf_hdf5lib_H5_H5Tcommitted
73 (JNIEnv *env, jclass clss, jlong type_id)
74 {
75 htri_t bval = JNI_FALSE;
76
77 UNUSED(clss);
78
79 if ((bval = H5Tcommitted(type_id)) < 0)
80 H5_LIBRARY_ERROR(ENVONLY);
81
82 bval = (bval > 0) ? JNI_TRUE : JNI_FALSE;
83
84 done:
85 return (jboolean)bval;
86 } /* end Java_hdf_hdf5lib_H5_H5Tcommitted */
87
88 /*
89 * Class: hdf_hdf5lib_H5
90 * Method: _H5Tcreate
91 * Signature: (IJ)J
92 */
93 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tcreate(JNIEnv * env,jclass clss,jint dclass,jlong size)94 Java_hdf_hdf5lib_H5__1H5Tcreate
95 (JNIEnv *env, jclass clss, jint dclass, jlong size)
96 {
97 hid_t retVal = H5I_INVALID_HID;
98
99 UNUSED(clss);
100
101 if ((retVal = H5Tcreate((H5T_class_t )dclass, (size_t)size)) < 0)
102 H5_LIBRARY_ERROR(ENVONLY);
103
104 done:
105 return (jlong)retVal;
106 } /* end Java_hdf_hdf5lib_H5__1H5Tcreate */
107
108 /*
109 * Class: hdf_hdf5lib_H5
110 * Method: _H5Tcopy
111 * Signature: (J)J
112 */
113 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tcopy(JNIEnv * env,jclass clss,jlong type_id)114 Java_hdf_hdf5lib_H5__1H5Tcopy
115 (JNIEnv *env, jclass clss, jlong type_id)
116 {
117 hid_t retVal = H5I_INVALID_HID;
118
119 UNUSED(clss);
120
121 if ((retVal = H5Tcopy((hid_t)type_id)) < 0)
122 H5_LIBRARY_ERROR(ENVONLY);
123
124 done:
125 return (jlong)retVal;
126 } /* end Java_hdf_hdf5lib_H5__1H5Tcopy */
127
128 /*
129 * Class: hdf_hdf5lib_H5
130 * Method: H5Tequal
131 * Signature: (JJ)Z
132 */
133 JNIEXPORT jboolean JNICALL
Java_hdf_hdf5lib_H5_H5Tequal(JNIEnv * env,jclass clss,jlong type_id1,jlong type_id2)134 Java_hdf_hdf5lib_H5_H5Tequal
135 (JNIEnv *env, jclass clss, jlong type_id1, jlong type_id2)
136 {
137 htri_t bval = JNI_FALSE;
138
139 UNUSED(clss);
140
141 if ((bval = H5Tequal((hid_t)type_id1, (hid_t)type_id2)) < 0)
142 H5_LIBRARY_ERROR(ENVONLY);
143
144 bval = (bval > 0) ? JNI_TRUE : JNI_FALSE;
145
146 done:
147 return (jboolean)bval;
148 } /* end Java_hdf_hdf5lib_H5_H5Tequal */
149
150 /*
151 * Class: hdf_hdf5lib_H5
152 * Method: H5Tlock
153 * Signature: (J)I
154 */
155 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tlock(JNIEnv * env,jclass clss,jlong type_id)156 Java_hdf_hdf5lib_H5_H5Tlock
157 (JNIEnv *env, jclass clss, jlong type_id)
158 {
159 herr_t retVal = FAIL;
160
161 UNUSED(clss);
162
163 if ((retVal = H5Tlock((hid_t)type_id)) < 0)
164 H5_LIBRARY_ERROR(ENVONLY);
165
166 done:
167 return (jint)retVal;
168 } /* end Java_hdf_hdf5lib_H5_H5Tlock */
169
170 /*
171 * Class: hdf_hdf5lib_H5
172 * Method: H5Tget_class
173 * Signature: (J)I
174 */
175 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1class(JNIEnv * env,jclass clss,jlong type_id)176 Java_hdf_hdf5lib_H5_H5Tget_1class
177 (JNIEnv *env, jclass clss, jlong type_id)
178 {
179 H5T_class_t retVal = H5T_NO_CLASS;
180
181 UNUSED(clss);
182
183 if (H5T_NO_CLASS == (retVal = H5Tget_class((hid_t)type_id)))
184 H5_LIBRARY_ERROR(ENVONLY);
185
186 done:
187 return (jint)retVal;
188 } /* end Java_hdf_hdf5lib_H5_H5Tget_1class */
189
190 /*
191 * Class: hdf_hdf5lib_H5
192 * Method: H5Tget_size
193 * Signature: (J)J
194 */
195 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1size(JNIEnv * env,jclass clss,jlong type_id)196 Java_hdf_hdf5lib_H5_H5Tget_1size
197 (JNIEnv *env, jclass clss, jlong type_id)
198 {
199 size_t retVal = 0;
200
201 UNUSED(clss);
202
203 if (!(retVal = H5Tget_size((hid_t)type_id)))
204 H5_LIBRARY_ERROR(ENVONLY);
205
206 done:
207 return (jlong)retVal;
208 } /* end Java_hdf_hdf5lib_H5_H5Tget_1size*/
209
210 /*
211 * Class: hdf_hdf5lib_H5
212 * Method: H5Tset_size
213 * Signature: (JJ)I
214 */
215 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1size(JNIEnv * env,jclass clss,jlong type_id,jlong size)216 Java_hdf_hdf5lib_H5_H5Tset_1size
217 (JNIEnv *env, jclass clss, jlong type_id, jlong size)
218 {
219 size_t tsize = (size_t)size;
220 herr_t retVal = FAIL;
221
222 UNUSED(clss);
223
224 if ((retVal = H5Tset_size((hid_t)type_id, tsize)) < 0)
225 H5_LIBRARY_ERROR(ENVONLY);
226
227 done:
228 return (jint)retVal;
229 } /* end ifJava_hdf_hdf5lib_H5_H5Tset_1size */
230
231 /*
232 * Class: hdf_hdf5lib_H5
233 * Method: H5Tget_order
234 * Signature: (J)I
235 */
236 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1order(JNIEnv * env,jclass clss,jlong type_id)237 Java_hdf_hdf5lib_H5_H5Tget_1order
238 (JNIEnv *env, jclass clss, jlong type_id)
239 {
240 H5T_order_t retVal = H5T_ORDER_ERROR;
241
242 UNUSED(clss);
243
244 if (H5T_ORDER_ERROR == (retVal = H5Tget_order((hid_t)type_id)))
245 H5_LIBRARY_ERROR(ENVONLY);
246
247 done:
248 return (jint)retVal;
249 } /* end Java_hdf_hdf5lib_H5_H5Tget_1order */
250
251 /*
252 * Class: hdf_hdf5lib_H5
253 * Method: H5Tset_order
254 * Signature: (JI)I
255 */
256 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1order(JNIEnv * env,jclass clss,jlong type_id,jint order)257 Java_hdf_hdf5lib_H5_H5Tset_1order
258 (JNIEnv *env, jclass clss, jlong type_id, jint order)
259 {
260 herr_t retVal = FAIL;
261
262 UNUSED(clss);
263
264 if ((retVal = H5Tset_order((hid_t)type_id, (H5T_order_t)order)) < 0)
265 H5_LIBRARY_ERROR(ENVONLY);
266
267 done:
268 return (jint)retVal;
269 } /* end Java_hdf_hdf5lib_H5_H5Tset_1order */
270
271 /*
272 * Class: hdf_hdf5lib_H5
273 * Method: H5Tget_precision
274 * Signature: (J)I
275 */
276 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1precision(JNIEnv * env,jclass clss,jlong type_id)277 Java_hdf_hdf5lib_H5_H5Tget_1precision
278 (JNIEnv *env, jclass clss, jlong type_id)
279 {
280 size_t retVal = 0;
281
282 UNUSED(clss);
283
284 if (!(retVal = H5Tget_precision((hid_t)type_id)))
285 H5_LIBRARY_ERROR(ENVONLY);
286
287 done:
288 return (jint)retVal;
289 } /* end Java_hdf_hdf5lib_H5_H5Tget_1precision */
290
291 /*
292 * Class: hdf_hdf5lib_H5
293 * Method: H5Tget_precision_long
294 * Signature: (J)J
295 */
296 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1precision_1long(JNIEnv * env,jclass clss,jlong type_id)297 Java_hdf_hdf5lib_H5_H5Tget_1precision_1long
298 (JNIEnv *env, jclass clss, jlong type_id)
299 {
300 size_t retVal = 0;
301
302 UNUSED(clss);
303
304 if (!(retVal = H5Tget_precision((hid_t)type_id)))
305 H5_LIBRARY_ERROR(ENVONLY);
306
307 done:
308 return (jlong)retVal;
309 } /* end Java_hdf_hdf5lib_H5_H5Tget_1precision_1long */
310
311 /*
312 * Class: hdf_hdf5lib_H5
313 * Method: H5Tset_precision
314 * Signature: (JJ)I
315 */
316 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1precision(JNIEnv * env,jclass clss,jlong type_id,jlong precision)317 Java_hdf_hdf5lib_H5_H5Tset_1precision
318 (JNIEnv *env, jclass clss, jlong type_id, jlong precision)
319 {
320 herr_t retVal = FAIL;
321
322 UNUSED(clss);
323
324 if ((retVal = H5Tset_precision((hid_t)type_id, (size_t)precision)) < 0)
325 H5_LIBRARY_ERROR(ENVONLY);
326
327 done:
328 return (jint)retVal;
329 } /* end Java_hdf_hdf5lib_H5_H5Tset_1precision */
330
331 /*
332 * Class: hdf_hdf5lib_H5
333 * Method: H5Tget_offset
334 * Signature: (J)I
335 */
336 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1offset(JNIEnv * env,jclass clss,jlong type_id)337 Java_hdf_hdf5lib_H5_H5Tget_1offset
338 (JNIEnv *env, jclass clss, jlong type_id)
339 {
340 int retVal = -1;
341
342 UNUSED(clss);
343
344 if ((retVal = H5Tget_offset((hid_t)type_id)) < 0)
345 H5_LIBRARY_ERROR(ENVONLY);
346
347 done:
348 return (jint)retVal;
349 } /* end Java_hdf_hdf5lib_H5_H5Tget_1offset */
350
351 /*
352 * Class: hdf_hdf5lib_H5
353 * Method: H5Tset_offset
354 * Signature: (JJ)I
355 */
356 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1offset(JNIEnv * env,jclass clss,jlong type_id,jlong offset)357 Java_hdf_hdf5lib_H5_H5Tset_1offset
358 (JNIEnv *env, jclass clss, jlong type_id, jlong offset)
359 {
360 herr_t retVal = FAIL;
361
362 UNUSED(clss);
363
364 if ((retVal = H5Tset_offset((hid_t)type_id, (size_t)offset)) < 0)
365 H5_LIBRARY_ERROR(ENVONLY);
366
367 done:
368 return (jint)retVal;
369 } /* end Java_hdf_hdf5lib_H5_H5Tset_1offset */
370
371 /*
372 * Class: hdf_hdf5lib_H5
373 * Method: H5Tget_pad
374 * Signature: (J[I)I
375 */
376 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1pad(JNIEnv * env,jclass clss,jlong type_id,jintArray pad)377 Java_hdf_hdf5lib_H5_H5Tget_1pad
378 (JNIEnv *env, jclass clss, jlong type_id, jintArray pad)
379 {
380 jboolean isCopy;
381 jint *P = NULL;
382 herr_t status = FAIL;
383
384 UNUSED(clss);
385
386 if (NULL == pad)
387 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_pad: pad is NULL");
388
389 PIN_INT_ARRAY(ENVONLY, pad, P, &isCopy, "H5Tget_pad: pad not pinned");
390
391 if ((status = H5Tget_pad((hid_t)type_id, (H5T_pad_t *)&(P[0]), (H5T_pad_t *)&(P[1]))) < 0)
392 H5_LIBRARY_ERROR(ENVONLY);
393
394 done:
395 if (P)
396 UNPIN_INT_ARRAY(ENVONLY, pad, P, (status < 0) ? JNI_ABORT : 0);
397
398 return (jint)status;
399 } /* end Java_hdf_hdf5lib_H5_H5Tget_1pad */
400
401 /*
402 * Class: hdf_hdf5lib_H5
403 * Method: H5Tset_pad
404 * Signature: (JII)I
405 */
406 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1pad(JNIEnv * env,jclass clss,jlong type_id,jint lsb,jint msb)407 Java_hdf_hdf5lib_H5_H5Tset_1pad
408 (JNIEnv *env, jclass clss, jlong type_id, jint lsb, jint msb)
409 {
410 herr_t retVal = FAIL;
411
412 UNUSED(clss);
413
414 if ((retVal = H5Tset_pad((hid_t)type_id, (H5T_pad_t)lsb, (H5T_pad_t)msb)) < 0)
415 H5_LIBRARY_ERROR(ENVONLY);
416
417 done:
418 return (jint)retVal;
419 } /* end Java_hdf_hdf5lib_H5_H5Tset_1pad */
420
421 /*
422 * Class: hdf_hdf5lib_H5
423 * Method: H5Tget_sign
424 * Signature: (J)I
425 */
426 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1sign(JNIEnv * env,jclass clss,jlong type_id)427 Java_hdf_hdf5lib_H5_H5Tget_1sign
428 (JNIEnv *env, jclass clss, jlong type_id)
429 {
430 H5T_sign_t retVal = H5T_SGN_ERROR;
431
432 UNUSED(clss);
433
434 if (H5T_SGN_ERROR == (retVal = H5Tget_sign((hid_t)type_id)))
435 H5_LIBRARY_ERROR(ENVONLY);
436
437 done:
438 return (jint)retVal;
439 } /* end Java_hdf_hdf5lib_H5_H5Tget_1sign */
440
441 /*
442 * Class: hdf_hdf5lib_H5
443 * Method: H5Tset_sign
444 * Signature: (JI)I
445 */
446 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1sign(JNIEnv * env,jclass clss,jlong type_id,jint sign)447 Java_hdf_hdf5lib_H5_H5Tset_1sign
448 (JNIEnv *env, jclass clss, jlong type_id, jint sign)
449 {
450 herr_t retVal = FAIL;
451
452 UNUSED(clss);
453
454 if ((retVal = H5Tset_sign((hid_t)type_id, (H5T_sign_t)sign)) < 0)
455 H5_LIBRARY_ERROR(ENVONLY);
456
457 done:
458 return (jint)retVal;
459 } /* end Java_hdf_hdf5lib_H5_H5Tset_1sign */
460
461 /*
462 * Class: hdf_hdf5lib_H5
463 * Method: H5Tget_fields_int
464 * Signature: (J[I)I
465 */
466 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1fields_1int(JNIEnv * env,jclass clss,jlong type_id,jintArray fields)467 Java_hdf_hdf5lib_H5_H5Tget_1fields_1int
468 (JNIEnv *env, jclass clss, jlong type_id, jintArray fields)
469 {
470 jboolean isCopy;
471 jsize arrLen;
472 jint *P = NULL;
473 herr_t status = FAIL;
474
475 UNUSED(clss);
476
477 if (NULL == fields)
478 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_fields_int: fields is NULL");
479
480 if ((arrLen = ENVPTR->GetArrayLength(ENVONLY, fields)) < 0) {
481 CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
482 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tget_fields_int: fields array length < 0");
483 }
484 if (arrLen < 5)
485 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tget_fields_int: fields input array < order 5");
486
487 PIN_INT_ARRAY(ENVONLY, fields, P, &isCopy, "H5Tget_fields_int: fields not pinned");
488
489 if ((status = H5Tget_fields((hid_t)type_id, (size_t *)&(P[0]), (size_t *)&(P[1]), (size_t *)&(P[2]), (size_t *)&(P[3]), (size_t *)&(P[4]))) < 0)
490 H5_LIBRARY_ERROR(ENVONLY);
491
492 done:
493 if (P)
494 UNPIN_INT_ARRAY(ENVONLY, fields, P, (status < 0) ? JNI_ABORT : 0);
495
496 return (jint)status;
497 } /* end Java_hdf_hdf5lib_H5_H5Tget_1fields_1int */
498
499 /*
500 * Class: hdf_hdf5lib_H5
501 * Method: H5Tget_fields
502 * Signature: (J[J)V
503 */
504 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1fields(JNIEnv * env,jclass clss,jlong type_id,jlongArray fields)505 Java_hdf_hdf5lib_H5_H5Tget_1fields
506 (JNIEnv *env, jclass clss, jlong type_id, jlongArray fields)
507 {
508 jboolean isCopy;
509 jlong *fieldsArray = NULL;
510 jsize arrLen;
511 herr_t status = FAIL;
512
513 UNUSED(clss);
514
515 if (NULL == fields)
516 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_fields: fields is NULL");
517
518 if ((arrLen = ENVPTR->GetArrayLength(ENVONLY, fields)) < 0) {
519 CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
520 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tget_fields: fields array length < 0");
521 }
522 if (arrLen < 5)
523 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tget_fields: fields input array < order 5");
524
525 PIN_LONG_ARRAY(ENVONLY, fields, fieldsArray, &isCopy, "H5Tget_fields: fields not pinned");
526
527 { /* Direct cast (size_t *)variable fails on 32-bit environment */
528 size_t spos_t = 0;
529 size_t epos_t = 0;
530 size_t esize_t = 0;
531 size_t mpos_t = 0;
532 size_t msize_t = 0;
533 long long fields_temp = *(&fieldsArray[0]);
534 spos_t = (size_t)fields_temp;
535 fields_temp = *(&fieldsArray[1]);
536 epos_t = (size_t)fields_temp;
537 fields_temp = *(&fieldsArray[2]);
538 esize_t = (size_t)fields_temp;
539 fields_temp = *(&fieldsArray[3]);
540 mpos_t = (size_t)fields_temp;
541 fields_temp = *(&fieldsArray[4]);
542 msize_t = (size_t)fields_temp;
543
544 if ((status = H5Tget_fields((hid_t)type_id, &spos_t, &epos_t, &esize_t, &mpos_t, &msize_t)) < 0)
545 H5_LIBRARY_ERROR(ENVONLY);
546
547 *(&fieldsArray[0]) = (jlong)spos_t;
548 *(&fieldsArray[1]) = (jlong)epos_t;
549 *(&fieldsArray[2]) = (jlong)esize_t;
550 *(&fieldsArray[3]) = (jlong)mpos_t;
551 *(&fieldsArray[4]) = (jlong)msize_t;
552 } /* end direct cast special handling */
553
554 done:
555 if (fieldsArray)
556 UNPIN_LONG_ARRAY(ENVONLY, fields, fieldsArray, (status < 0) ? JNI_ABORT : 0);
557
558 return;
559 } /* end Java_hdf_hdf5lib_H5_H5Tget_1fields */
560
561 /*
562 * Class: hdf_hdf5lib_H5
563 * Method: H5Tset_fields
564 * Signature: (JJJJJJ)V
565 */
566 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1fields(JNIEnv * env,jclass clss,jlong type_id,jlong spos,jlong epos,jlong esize,jlong mpos,jlong msize)567 Java_hdf_hdf5lib_H5_H5Tset_1fields
568 (JNIEnv *env, jclass clss, jlong type_id, jlong spos, jlong epos,
569 jlong esize, jlong mpos, jlong msize)
570 {
571 UNUSED(clss);
572
573 if (H5Tset_fields((hid_t)type_id, (size_t)spos, (size_t)epos, (size_t)esize, (size_t)mpos, (size_t)msize) < 0)
574 H5_LIBRARY_ERROR(ENVONLY);
575
576 done:
577 return;
578 } /* end Java_hdf_hdf5lib_H5_H5Tset_1fields */
579
580 /*
581 * Class: hdf_hdf5lib_H5
582 * Method: H5Tget_ebias
583 * Signature: (J)I
584 */
585 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1ebias(JNIEnv * env,jclass clss,jlong type_id)586 Java_hdf_hdf5lib_H5_H5Tget_1ebias
587 (JNIEnv *env, jclass clss, jlong type_id)
588 {
589 size_t retVal = 0;
590
591 UNUSED(clss);
592
593 if (!(retVal = H5Tget_ebias((hid_t)type_id)))
594 H5_LIBRARY_ERROR(ENVONLY);
595
596 done:
597 return (jint)retVal;
598 } /* end Java_hdf_hdf5lib_H5_H5Tget_1ebias */
599
600 /*
601 * Class: hdf_hdf5lib_H5
602 * Method: H5Tget_ebias_long
603 * Signature: (J)J
604 */
605 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1ebias_1long(JNIEnv * env,jclass clss,jlong type_id)606 Java_hdf_hdf5lib_H5_H5Tget_1ebias_1long
607 (JNIEnv *env, jclass clss, jlong type_id)
608 {
609 size_t retVal = 0;
610
611 UNUSED(clss);
612
613 if (!(retVal = H5Tget_ebias((hid_t)type_id)))
614 H5_LIBRARY_ERROR(ENVONLY);
615
616 done:
617 return (jlong)retVal;
618 } /* end Java_hdf_hdf5lib_H5_H5Tget_1ebias_1long */
619
620 /*
621 * Class: hdf_hdf5lib_H5
622 * Method: H5Tset_ebias
623 * Signature: (JJ)I
624 */
625 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1ebias(JNIEnv * env,jclass clss,jlong type_id,jlong ebias)626 Java_hdf_hdf5lib_H5_H5Tset_1ebias
627 (JNIEnv *env, jclass clss, jlong type_id, jlong ebias)
628 {
629 herr_t retVal = FAIL;
630
631 UNUSED(clss);
632
633 if ((retVal = H5Tset_ebias((hid_t)type_id, (size_t)ebias)) < 0)
634 H5_LIBRARY_ERROR(ENVONLY);
635
636 done:
637 return (jint)retVal;
638 } /* end Java_hdf_hdf5lib_H5_H5Tset_1ebias */
639
640 /*
641 * Class: hdf_hdf5lib_H5
642 * Method: H5Tget_norm
643 * Signature: (J)I
644 */
645 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1norm(JNIEnv * env,jclass clss,jlong type_id)646 Java_hdf_hdf5lib_H5_H5Tget_1norm
647 (JNIEnv *env, jclass clss, jlong type_id)
648 {
649 H5T_norm_t retVal = H5T_NORM_ERROR;
650
651 UNUSED(clss);
652
653 if (H5T_NORM_ERROR == (retVal = H5Tget_norm((hid_t)type_id)))
654 H5_LIBRARY_ERROR(ENVONLY);
655
656 done:
657 return (jint)retVal;
658 } /* end Java_hdf_hdf5lib_H5_H5Tget_1norm */
659
660 /*
661 * Class: hdf_hdf5lib_H5
662 * Method: H5Tset_norm
663 * Signature: (JI)I
664 */
665 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1norm(JNIEnv * env,jclass clss,jlong type_id,jint norm)666 Java_hdf_hdf5lib_H5_H5Tset_1norm
667 (JNIEnv *env, jclass clss, jlong type_id, jint norm)
668 {
669 herr_t retVal = FAIL;
670
671 UNUSED(clss);
672
673 if ((retVal = H5Tset_norm((hid_t)type_id, (H5T_norm_t )norm)) < 0)
674 H5_LIBRARY_ERROR(ENVONLY);
675
676 done:
677 return (jint)retVal;
678 } /* end Java_hdf_hdf5lib_H5_H5Tset_1norm */
679
680 /*
681 * Class: hdf_hdf5lib_H5
682 * Method: H5Tget_inpad
683 * Signature: (J)I
684 */
685 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1inpad(JNIEnv * env,jclass clss,jlong type_id)686 Java_hdf_hdf5lib_H5_H5Tget_1inpad
687 (JNIEnv *env, jclass clss, jlong type_id)
688 {
689 H5T_pad_t retVal = H5T_PAD_ERROR;
690
691 UNUSED(clss);
692
693 if (H5T_PAD_ERROR == (retVal = H5Tget_inpad((hid_t)type_id)))
694 H5_LIBRARY_ERROR(ENVONLY);
695
696 done:
697 return (jint)retVal;
698 } /* end Java_hdf_hdf5lib_H5_H5Tget_1inpad */
699
700 /*
701 * Class: hdf_hdf5lib_H5
702 * Method: H5Tset_inpad
703 * Signature: (JI)I
704 */
705 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1inpad(JNIEnv * env,jclass clss,jlong type_id,jint inpad)706 Java_hdf_hdf5lib_H5_H5Tset_1inpad
707 (JNIEnv *env, jclass clss, jlong type_id, jint inpad)
708 {
709 herr_t retVal = FAIL;
710
711 UNUSED(clss);
712
713 if ((retVal = H5Tset_inpad((hid_t)type_id, (H5T_pad_t) inpad)) < 0)
714 H5_LIBRARY_ERROR(ENVONLY);
715
716 done:
717 return (jint)retVal;
718 } /* end Java_hdf_hdf5lib_H5_H5Tset_1inpad */
719
720 /*
721 * Class: hdf_hdf5lib_H5
722 * Method: H5Tget_cset
723 * Signature: (J)I
724 */
725 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1cset(JNIEnv * env,jclass clss,jlong type_id)726 Java_hdf_hdf5lib_H5_H5Tget_1cset
727 (JNIEnv *env, jclass clss, jlong type_id)
728 {
729 H5T_cset_t retVal = H5T_CSET_ERROR;
730
731 UNUSED(clss);
732
733 if (H5T_CSET_ERROR == (retVal = H5Tget_cset((hid_t)type_id)))
734 H5_LIBRARY_ERROR(ENVONLY);
735
736 done:
737 return (jint)retVal;
738 } /* end Java_hdf_hdf5lib_H5_H5Tget_1cset */
739
740 /*
741 * Class: hdf_hdf5lib_H5
742 * Method: H5Tset_cset
743 * Signature: (JI)I
744 */
745 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1cset(JNIEnv * env,jclass clss,jlong type_id,jint cset)746 Java_hdf_hdf5lib_H5_H5Tset_1cset
747 (JNIEnv *env, jclass clss, jlong type_id, jint cset)
748 {
749 herr_t retVal = FAIL;
750
751 UNUSED(clss);
752
753 if ((retVal = H5Tset_cset((hid_t)type_id, (H5T_cset_t)cset)) < 0)
754 H5_LIBRARY_ERROR(ENVONLY);
755
756 done:
757 return (jint)retVal;
758 } /* end Java_hdf_hdf5lib_H5_H5Tset_1cset */
759
760 /*
761 * Class: hdf_hdf5lib_H5
762 * Method: H5Tget_strpad
763 * Signature: (J)I
764 */
765 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1strpad(JNIEnv * env,jclass clss,jlong type_id)766 Java_hdf_hdf5lib_H5_H5Tget_1strpad
767 (JNIEnv *env, jclass clss, jlong type_id)
768 {
769 H5T_str_t retVal = H5T_STR_ERROR;
770
771 UNUSED(clss);
772
773 if (H5T_STR_ERROR == (retVal = H5Tget_strpad((hid_t)type_id)))
774 H5_LIBRARY_ERROR(ENVONLY);
775
776 done:
777 return (jint)retVal;
778 } /* end Java_hdf_hdf5lib_H5_H5Tget_1strpad */
779
780 /*
781 * Class: hdf_hdf5lib_H5
782 * Method: H5Tset_strpad
783 * Signature: (JI)I
784 */
785 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1strpad(JNIEnv * env,jclass clss,jlong type_id,jint strpad)786 Java_hdf_hdf5lib_H5_H5Tset_1strpad
787 (JNIEnv *env, jclass clss, jlong type_id, jint strpad)
788 {
789 herr_t retVal = FAIL;
790
791 UNUSED(clss);
792
793 if ((retVal = H5Tset_strpad((hid_t)type_id, (H5T_str_t)strpad)) < 0)
794 H5_LIBRARY_ERROR(ENVONLY);
795
796 done:
797 return (jint)retVal;
798 } /* end Java_hdf_hdf5lib_H5_H5Tset_1strpad */
799
800 /*
801 * Class: hdf_hdf5lib_H5
802 * Method: H5Tget_nmembers
803 * Signature: (J)I
804 */
805 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1nmembers(JNIEnv * env,jclass clss,jlong type_id)806 Java_hdf_hdf5lib_H5_H5Tget_1nmembers
807 (JNIEnv *env, jclass clss, jlong type_id)
808 {
809 int retVal = -1;
810
811 UNUSED(clss);
812
813 if ((retVal = H5Tget_nmembers((hid_t)type_id)) < 0)
814 H5_LIBRARY_ERROR(ENVONLY);
815
816 done:
817 return (jint)retVal;
818 } /* end Java_hdf_hdf5lib_H5_H5Tget_1nmembers */
819
820 /*
821 * Class: hdf_hdf5lib_H5
822 * Method: H5Tget_member_name
823 * Signature: (JI)Ljava/lang/String;
824 */
825 JNIEXPORT jstring JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1member_1name(JNIEnv * env,jclass clss,jlong type_id,jint field_idx)826 Java_hdf_hdf5lib_H5_H5Tget_1member_1name
827 (JNIEnv *env, jclass clss, jlong type_id, jint field_idx)
828 {
829 char *member_name = NULL;
830 jstring str = NULL;
831
832 UNUSED(clss);
833
834 if (NULL == (member_name = H5Tget_member_name((hid_t)type_id, (unsigned)field_idx)))
835 H5_LIBRARY_ERROR(ENVONLY);
836
837 if (NULL == (str = ENVPTR->NewStringUTF(ENVONLY, member_name)))
838 CHECK_JNI_EXCEPTION(ENVONLY, JNI_FALSE);
839
840 done:
841 if (member_name)
842 H5free_memory(member_name);
843
844 return str;
845 } /* end Java_hdf_hdf5lib_H5_H5Tget_1member_1name */
846
847 /*
848 * Class: hdf_hdf5lib_H5
849 * Method: H5Tget_member_index
850 * Signature: (JLjava/lang/String)I
851 */
852 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1member_1index(JNIEnv * env,jclass clss,jlong type_id,jstring field_name)853 Java_hdf_hdf5lib_H5_H5Tget_1member_1index
854 (JNIEnv *env, jclass clss, jlong type_id, jstring field_name)
855 {
856 const char *datatypeName = NULL;
857 int index = -1;
858
859 UNUSED(clss);
860
861 if (NULL == field_name)
862 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_member_index: field name is NULL");
863
864 PIN_JAVA_STRING(ENVONLY, field_name, datatypeName, NULL, "H5Tget_member_index: field name not pinned");
865
866 if ((index = H5Tget_member_index((hid_t)type_id, datatypeName)) < 0)
867 H5_LIBRARY_ERROR(ENVONLY);
868
869 done:
870 if (datatypeName)
871 UNPIN_JAVA_STRING(ENVONLY, field_name, datatypeName);
872
873 return (jint)index;
874 } /* end Java_hdf_hdf5lib_H5_H5Tget_1member_1index */
875
876 /*
877 * Class: hdf_hdf5lib_H5
878 * Method: H5Tget_member_type
879 * Signature: (JI)J
880 */
881 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tget_1member_1type(JNIEnv * env,jclass clss,jlong type_id,jint field_idx)882 Java_hdf_hdf5lib_H5__1H5Tget_1member_1type
883 (JNIEnv *env, jclass clss, jlong type_id, jint field_idx)
884 {
885 hid_t retVal = H5I_INVALID_HID;
886
887 UNUSED(clss);
888
889 if ((retVal = H5Tget_member_type((hid_t)type_id, (unsigned)field_idx)) < 0)
890 H5_LIBRARY_ERROR(ENVONLY);
891
892 done:
893 return (jlong)retVal;
894 } /* end Java_hdf_hdf5lib_H5__1H5Tget_1member_1type */
895
896 /*
897 * Class: hdf_hdf5lib_H5
898 * Method: H5Tget_member_offset
899 * Signature: (JI)J
900 */
901 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1member_1offset(JNIEnv * env,jclass clss,jlong type_id,jint memno)902 Java_hdf_hdf5lib_H5_H5Tget_1member_1offset
903 (JNIEnv *env, jclass clss, jlong type_id, jint memno)
904 {
905 UNUSED(env);
906 UNUSED(clss);
907
908 return (jlong)H5Tget_member_offset((hid_t)type_id, (unsigned)memno);
909 } /* end Java_hdf_hdf5lib_H5_H5Tget_1member_1offset */
910
911 /*
912 * Class: hdf_hdf5lib_H5
913 * Method: H5Tget_member_class
914 * Signature: (JI)I
915 */
916 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1member_1class(JNIEnv * env,jclass clss,jlong type_id,jint memno)917 Java_hdf_hdf5lib_H5_H5Tget_1member_1class
918 (JNIEnv *env, jclass clss, jlong type_id, jint memno)
919 {
920 H5T_class_t retVal = H5T_NO_CLASS;
921
922 UNUSED(clss);
923
924 if (H5T_NO_CLASS == (retVal = H5Tget_member_class((hid_t)type_id, (unsigned)memno)))
925 H5_LIBRARY_ERROR(ENVONLY);
926
927 done:
928 return (jint)retVal;
929 } /* end Java_hdf_hdf5lib_H5_H5Tget_1member_1class */
930
931 /*
932 * Class: hdf_hdf5lib_H5
933 * Method: H5Tinsert
934 * Signature: (JLjava/lang/String;JJ)I
935 */
936 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tinsert(JNIEnv * env,jclass clss,jlong type_id,jstring name,jlong offset,jlong field_id)937 Java_hdf_hdf5lib_H5_H5Tinsert
938 (JNIEnv *env, jclass clss, jlong type_id, jstring name, jlong offset, jlong field_id)
939 {
940 const char *datatypeName = NULL;
941 long off = (long)offset;
942 herr_t status = FAIL;
943
944 UNUSED(clss);
945
946 if (NULL == name)
947 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tinsert: datatype name is NULL");
948
949 PIN_JAVA_STRING(ENVONLY, name, datatypeName, NULL, "H5Tinsert: datatype name not pinned");
950
951 if ((status = H5Tinsert((hid_t)type_id, datatypeName, (size_t)off, field_id)) < 0)
952 H5_LIBRARY_ERROR(ENVONLY);
953
954 done:
955 if (datatypeName)
956 UNPIN_JAVA_STRING(ENVONLY, name, datatypeName);
957
958 return (jint)status;
959 } /* end Java_hdf_hdf5lib_H5_H5Tinsert */
960
961 /*
962 * Class: hdf_hdf5lib_H5
963 * Method: H5Tpack
964 * Signature: (J)I
965 */
966 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tpack(JNIEnv * env,jclass clss,jlong type_id)967 Java_hdf_hdf5lib_H5_H5Tpack
968 (JNIEnv *env, jclass clss, jlong type_id)
969 {
970 herr_t retVal = FAIL;
971
972 UNUSED(clss);
973
974 if ((retVal = H5Tpack((hid_t)type_id)) < 0)
975 H5_LIBRARY_ERROR(ENVONLY);
976
977 done:
978 return (jint)retVal;
979 } /* end Java_hdf_hdf5lib_H5_H5Tpack */
980
981 /*
982 * Class: hdf_hdf5lib_H5
983 * Method: _H5Tclose
984 * Signature: (J)I
985 */
986 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5__1H5Tclose(JNIEnv * env,jclass clss,jlong type_id)987 Java_hdf_hdf5lib_H5__1H5Tclose
988 (JNIEnv *env, jclass clss, jlong type_id)
989 {
990 herr_t retVal = FAIL;
991
992 UNUSED(clss);
993
994 if ((retVal = H5Tclose((hid_t)type_id)) < 0)
995 H5_LIBRARY_ERROR(ENVONLY);
996
997 done:
998 return (jint)retVal;
999 } /* end Java_hdf_hdf5lib_H5__1H5Tclose */
1000
1001 /*
1002 * Class: hdf_hdf5lib_H5
1003 * Method: _H5Tvlen_create
1004 * Signature: (J)J
1005 */
1006 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tvlen_1create(JNIEnv * env,jclass clss,jlong base_id)1007 Java_hdf_hdf5lib_H5__1H5Tvlen_1create
1008 (JNIEnv *env, jclass clss, jlong base_id)
1009 {
1010 hid_t retVal = H5I_INVALID_HID;
1011
1012 UNUSED(clss);
1013
1014 if ((retVal = H5Tvlen_create((hid_t)base_id)) < 0)
1015 H5_LIBRARY_ERROR(ENVONLY);
1016
1017 done:
1018 return (jlong)retVal;
1019 } /* end Java_hdf_hdf5lib_H5__1H5Tvlen_1create */
1020
1021 /*
1022 * Class: hdf_hdf5lib_H5
1023 * Method: H5Tset_tag
1024 * Signature: (JLjava/lang/String;)I
1025 */
1026 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tset_1tag(JNIEnv * env,jclass clss,jlong type,jstring tag)1027 Java_hdf_hdf5lib_H5_H5Tset_1tag
1028 (JNIEnv *env, jclass clss, jlong type, jstring tag)
1029 {
1030 const char *tagBuf = NULL;
1031 herr_t status = FAIL;
1032
1033 UNUSED(clss);
1034
1035 if (NULL == tag)
1036 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tset_tag: tag is NULL");
1037
1038 PIN_JAVA_STRING(ENVONLY, tag, tagBuf, NULL, "H5Tset_tag: tag buffer not pinned");
1039
1040 if ((status = H5Tset_tag((hid_t)type, tagBuf)) < 0)
1041 H5_LIBRARY_ERROR(ENVONLY);
1042
1043 done:
1044 if (tagBuf)
1045 UNPIN_JAVA_STRING(ENVONLY, tag, tagBuf);
1046
1047 return (jint)status;
1048 } /* end Java_hdf_hdf5lib_H5_H5Tset_1tag */
1049
1050 /*
1051 * Class: hdf_hdf5lib_H5
1052 * Method: H5Tget_tag
1053 * Signature: (J)Ljava/lang/String;
1054 */
1055 JNIEXPORT jstring JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1tag(JNIEnv * env,jclass clss,jlong type)1056 Java_hdf_hdf5lib_H5_H5Tget_1tag
1057 (JNIEnv *env, jclass clss, jlong type)
1058 {
1059 jstring str = NULL;
1060 char *tag = NULL;
1061
1062 UNUSED(clss);
1063
1064 if (NULL == (tag = H5Tget_tag((hid_t)type)))
1065 H5_LIBRARY_ERROR(ENVONLY);
1066
1067 if (NULL == (str = ENVPTR->NewStringUTF(ENVONLY, tag)))
1068 CHECK_JNI_EXCEPTION(ENVONLY, JNI_FALSE);
1069
1070 done:
1071 if (tag)
1072 H5free_memory(tag);
1073
1074 return str;
1075 } /* end Java_hdf_hdf5lib_H5_H5Tget_1tag */
1076
1077 /*
1078 * Class: hdf_hdf5lib_H5
1079 * Method: H5Tget_super
1080 * Signature: (J)J
1081 */
1082 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tget_1super(JNIEnv * env,jclass clss,jlong type_id)1083 Java_hdf_hdf5lib_H5__1H5Tget_1super
1084 (JNIEnv *env, jclass clss, jlong type_id)
1085 {
1086 hid_t retVal = H5I_INVALID_HID;
1087
1088 UNUSED(clss);
1089
1090 if ((retVal = H5Tget_super((hid_t)type_id)) < 0)
1091 H5_LIBRARY_ERROR(ENVONLY);
1092
1093 done:
1094 return (jlong)retVal;
1095 } /* end Java_hdf_hdf5lib_H5__1H5Tget_1super */
1096
1097 /*
1098 * Class: hdf_hdf5lib_H5
1099 * Method: _H5Tenum_create
1100 * Signature: (J)J
1101 */
1102 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tenum_1create(JNIEnv * env,jclass clss,jlong base_id)1103 Java_hdf_hdf5lib_H5__1H5Tenum_1create
1104 (JNIEnv *env, jclass clss, jlong base_id)
1105 {
1106 hid_t retVal = H5I_INVALID_HID;
1107
1108 UNUSED(clss);
1109
1110 if ((retVal = H5Tenum_create((hid_t)base_id)) < 0)
1111 H5_LIBRARY_ERROR(ENVONLY);
1112
1113 done:
1114 return (jlong)retVal;
1115 } /* end Java_hdf_hdf5lib_H5__1H5Tenum_1create */
1116
1117 /*
1118 * Class: hdf_hdf5lib_H5
1119 * Method: H5Tenum_insert_int
1120 * Signature: (JLjava/lang/String;[I)I
1121 */
1122 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tenum_1insert_1int(JNIEnv * env,jclass clss,jlong type_id,jstring name,jintArray value)1123 Java_hdf_hdf5lib_H5_H5Tenum_1insert_1int
1124 (JNIEnv *env, jclass clss, jlong type_id, jstring name, jintArray value)
1125 {
1126 const char *memberName = NULL;
1127 jboolean isCopy;
1128 jint *intBuf = NULL;
1129 herr_t status = FAIL;
1130
1131 UNUSED(clss);
1132
1133 if (NULL == value)
1134 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_insert_int: value is NULL");
1135 if (NULL == name)
1136 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_insert_int: member name is NULL");
1137
1138 PIN_JAVA_STRING(ENVONLY, name, memberName, NULL, "H5Tenum_insert_int: member name not pinned");
1139
1140 PIN_INT_ARRAY(ENVONLY, value, intBuf, &isCopy, "H5Tenum_insert_int: int buffer not pinned");
1141
1142 if ((status = H5Tenum_insert((hid_t)type_id, memberName, intBuf)) < 0)
1143 H5_LIBRARY_ERROR(ENVONLY);
1144
1145 done:
1146 if (intBuf)
1147 UNPIN_INT_ARRAY(ENVONLY, value, intBuf, (status < 0) ? JNI_ABORT : 0);
1148 if (memberName)
1149 UNPIN_JAVA_STRING(ENVONLY, name, memberName);
1150
1151 return (jint)status;
1152 } /* end Java_hdf_hdf5lib_H5_H5Tenum_1insert_1int */
1153
1154 /*
1155 * Class: hdf_hdf5lib_H5
1156 * Method: H5Tenum_insert
1157 * Signature: (JLjava/lang/String;[B)V
1158 */
1159 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tenum_1insert(JNIEnv * env,jclass clss,jlong type_id,jstring name,jbyteArray value)1160 Java_hdf_hdf5lib_H5_H5Tenum_1insert
1161 (JNIEnv *env, jclass clss, jlong type_id, jstring name, jbyteArray value)
1162 {
1163 const char *memberName = NULL;
1164 jboolean isCopy;
1165 jbyte *memberBuf = NULL;
1166 herr_t status = FAIL;
1167
1168 UNUSED(clss);
1169
1170 if (NULL == value)
1171 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_insert: value is NULL");
1172 if (NULL == name)
1173 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_insert: member name is NULL");
1174
1175 PIN_JAVA_STRING(ENVONLY, name, memberName, NULL, "H5Tenum_insert: member name not pinned");
1176
1177 PIN_BYTE_ARRAY(ENVONLY, value, memberBuf, &isCopy, "H5Tenum_insert: member buffer not pinned");
1178
1179 if ((status = H5Tenum_insert((hid_t)type_id, memberName, memberBuf)) < 0)
1180 H5_LIBRARY_ERROR(ENVONLY);
1181
1182 done:
1183 if (memberBuf)
1184 UNPIN_BYTE_ARRAY(ENVONLY, value, memberBuf, (status < 0) ? JNI_ABORT : 0);
1185 if (memberName)
1186 UNPIN_JAVA_STRING(ENVONLY, name, memberName);
1187 } /* end Java_hdf_hdf5lib_H5_H5Tenum_1insert */
1188
1189 /*
1190 * Class: hdf_hdf5lib_H5
1191 * Method: H5Tenum_nameof_int
1192 * Signature: (J[I[Ljava/lang/String;I)I
1193 */
1194 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tenum_1nameof_1int(JNIEnv * env,jclass clss,jlong type_id,jintArray value,jobjectArray name,jint size)1195 Java_hdf_hdf5lib_H5_H5Tenum_1nameof_1int
1196 (JNIEnv *env, jclass clss, jlong type_id, jintArray value, jobjectArray name,
1197 jint size)
1198 {
1199 jboolean isCopy;
1200 jstring str;
1201 jint *intP = NULL;
1202 char *nameP = NULL;
1203 herr_t status = FAIL;
1204
1205 UNUSED(clss);
1206
1207 if (NULL == value)
1208 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_nameof_int: value is NULL");
1209 if (size <= 0)
1210 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tenum_nameof_int: name size < 0");
1211
1212 if (NULL == (nameP = (char *) HDmalloc(sizeof(char) * (size_t)size)))
1213 H5_JNI_FATAL_ERROR(ENVONLY, "H5Tenum_nameof_int: failed to allocate name buffer");
1214
1215 PIN_INT_ARRAY(ENVONLY, value, intP, &isCopy, "H5Tenum_nameof_int: value not pinned");
1216
1217 if ((status = H5Tenum_nameof((hid_t)type_id, intP, nameP, (size_t)size)) < 0)
1218 H5_LIBRARY_ERROR(ENVONLY);
1219 nameP[(size_t)size - 1] = '\0';
1220
1221 if (NULL == (str = ENVPTR->NewStringUTF(ENVONLY, nameP)))
1222 CHECK_JNI_EXCEPTION(ENVONLY, JNI_FALSE);
1223
1224 ENVPTR->SetObjectArrayElement(ENVONLY, name, 0, (jobject)str);
1225 CHECK_JNI_EXCEPTION(ENVONLY, JNI_FALSE);
1226
1227 done:
1228 if (intP)
1229 UNPIN_INT_ARRAY(ENVONLY, value, intP, JNI_ABORT);
1230 if (nameP)
1231 HDfree(nameP);
1232
1233 return (jint)status;
1234 } /* end Java_hdf_hdf5lib_H5_H5Tenum_1nameof_1int */
1235
1236 /*
1237 * Class: hdf_hdf5lib_H5
1238 * Method: H5Tenum_nameof
1239 * Signature: (J[BJ)Ljava/lang/String;
1240 */
1241 JNIEXPORT jstring JNICALL
Java_hdf_hdf5lib_H5_H5Tenum_1nameof(JNIEnv * env,jclass clss,jlong type_id,jbyteArray value,jlong size)1242 Java_hdf_hdf5lib_H5_H5Tenum_1nameof
1243 (JNIEnv *env, jclass clss, jlong type_id, jbyteArray value, jlong size)
1244 {
1245 jboolean isCopy;
1246 jstring str = NULL;
1247 jbyte *byteP = NULL;
1248 char *nameP = NULL;
1249 herr_t status = FAIL;
1250
1251 UNUSED(clss);
1252
1253 if (size <= 0)
1254 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tenum_nameof: name size < 0");
1255 if (NULL == value)
1256 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_nameof: value is NULL");
1257
1258 if (NULL == (nameP = (char *) HDmalloc(sizeof(char) * (size_t)size)))
1259 H5_JNI_FATAL_ERROR(ENVONLY, "H5Tenum_nameof: failed to allocate name buffer");
1260
1261 PIN_BYTE_ARRAY(ENVONLY, value, byteP, &isCopy, "H5Tenum_nameof: value not pinned");
1262
1263 if ((status = H5Tenum_nameof((hid_t)type_id, byteP, nameP, (size_t)size)) < 0)
1264 H5_LIBRARY_ERROR(ENVONLY);
1265 nameP[(size_t)size - 1] = '\0';
1266
1267 if (NULL == (str = ENVPTR->NewStringUTF(ENVONLY, nameP)))
1268 CHECK_JNI_EXCEPTION(ENVONLY, JNI_FALSE);
1269
1270 done:
1271 if (byteP)
1272 UNPIN_BYTE_ARRAY(ENVONLY, value, byteP, JNI_ABORT);
1273 if (nameP)
1274 HDfree(nameP);
1275
1276 return str;
1277 } /* end Java_hdf_hdf5lib_H5_H5Tenum_1nameof */
1278
1279 /*
1280 * Class: hdf_hdf5lib_H5
1281 * Method: H5Tenum_valueof_int
1282 * Signature: (JLjava/lang/String;[I)I
1283 */
1284 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tenum_1valueof_1int(JNIEnv * env,jclass clss,jlong type_id,jstring name,jintArray value)1285 Java_hdf_hdf5lib_H5_H5Tenum_1valueof_1int
1286 (JNIEnv *env, jclass clss, jlong type_id, jstring name, jintArray value)
1287 {
1288 const char *enumValue = NULL;
1289 jboolean isCopy;
1290 jint *enumValueBuf = NULL;
1291 herr_t status = FAIL;
1292
1293 UNUSED(clss);
1294
1295 if (NULL == value)
1296 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_valueof_int: value is NULL");
1297 if (NULL == name)
1298 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_valueof_int: enum value name is NULL");
1299
1300 PIN_JAVA_STRING(ENVONLY, name, enumValue, NULL, "H5Tenum_valueof_int: enum value not pinned");
1301
1302 PIN_INT_ARRAY(ENVONLY, value, enumValueBuf, &isCopy, "H5Tenum_valueof_int: enum value buffer not pinned");
1303
1304 if ((status = H5Tenum_valueof((hid_t)type_id, enumValue, enumValueBuf)) < 0)
1305 H5_LIBRARY_ERROR(ENVONLY);
1306
1307 done:
1308 if (enumValueBuf)
1309 UNPIN_INT_ARRAY(ENVONLY, value, enumValueBuf, (status < 0) ? JNI_ABORT : 0);
1310 if (enumValue)
1311 UNPIN_JAVA_STRING(ENVONLY, name, enumValue);
1312
1313 return (jint)status;
1314 } /* end Java_hdf_hdf5lib_H5_H5Tenum_1valueof_1int */
1315
1316 /*
1317 * Class: hdf_hdf5lib_H5
1318 * Method: H5Tenum_valueof
1319 * Signature: (JLjava/lang/String;[B)V
1320 */
1321 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tenum_1valueof(JNIEnv * env,jclass clss,jlong type_id,jstring name,jbyteArray value)1322 Java_hdf_hdf5lib_H5_H5Tenum_1valueof
1323 (JNIEnv *env, jclass clss, jlong type_id, jstring name, jbyteArray value)
1324 {
1325 const char *enumValue = NULL;
1326 jboolean isCopy;
1327 jbyte *enumValueBuf = NULL;
1328 herr_t status = FAIL;
1329
1330 UNUSED(clss);
1331
1332 if (NULL == value)
1333 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_valueof: value is NULL");
1334 if (NULL == name)
1335 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tenum_valueof: enum value name is NULL");
1336
1337 PIN_JAVA_STRING(ENVONLY, name, enumValue, NULL, "H5Tenum_valueof: enum value not pinned");
1338
1339 PIN_BYTE_ARRAY(ENVONLY, value, enumValueBuf, &isCopy, "H5Tenum_valueof: enum value buffer not pinned");
1340
1341 if ((status = H5Tenum_valueof((hid_t)type_id, enumValue, enumValueBuf)) < 0)
1342 H5_LIBRARY_ERROR(ENVONLY);
1343
1344 done:
1345 if (enumValueBuf)
1346 UNPIN_BYTE_ARRAY(ENVONLY, value, enumValueBuf, (status < 0) ? JNI_ABORT : 0);
1347 if (enumValue)
1348 UNPIN_JAVA_STRING(ENVONLY, name, enumValue);
1349 } /* end Java_hdf_hdf5lib_H5_H5Tenum_1valueof */
1350
1351 /*
1352 * Class: hdf_hdf5lib_H5
1353 * Method: H5Tget_member_value_int
1354 * Signature: (JI[I)I
1355 */
1356 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1member_1value_1int(JNIEnv * env,jclass clss,jlong type_id,jint membno,jintArray value)1357 Java_hdf_hdf5lib_H5_H5Tget_1member_1value_1int
1358 (JNIEnv *env, jclass clss, jlong type_id, jint membno, jintArray value)
1359 {
1360 jboolean isCopy;
1361 jint *intP = NULL;
1362 herr_t status = FAIL;
1363
1364 UNUSED(clss);
1365
1366 if (NULL == value)
1367 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_member_value: value is NULL");
1368
1369 PIN_INT_ARRAY(ENVONLY, value, intP, &isCopy, "H5Tget_member_value: value not pinned");
1370
1371 if ((status = H5Tget_member_value((hid_t)type_id, (unsigned)membno, intP)) < 0)
1372 H5_LIBRARY_ERROR(ENVONLY);
1373
1374 done:
1375 if (intP)
1376 UNPIN_INT_ARRAY(ENVONLY, value, intP, (status < 0) ? JNI_ABORT : 0);
1377
1378 return (jint)status;
1379 } /* end Java_hdf_hdf5lib_H5_H5Tget_1member_1value_1int */
1380
1381 /*
1382 * Class: hdf_hdf5lib_H5
1383 * Method: H5Tget_member_value
1384 * Signature: (JI[B)V
1385 */
1386 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1member_1value(JNIEnv * env,jclass clss,jlong type_id,jint membno,jbyteArray value)1387 Java_hdf_hdf5lib_H5_H5Tget_1member_1value
1388 (JNIEnv *env, jclass clss, jlong type_id, jint membno, jbyteArray value)
1389 {
1390 jboolean isCopy;
1391 jbyte *byteP = NULL;
1392 herr_t status = FAIL;
1393
1394 UNUSED(clss);
1395
1396 if (NULL == value)
1397 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_member_value: value is NULL");
1398
1399 PIN_BYTE_ARRAY(ENVONLY, value, byteP, &isCopy, "H5Tget_member_value: value not pinned");
1400
1401 if ((status = H5Tget_member_value((hid_t)type_id, (unsigned)membno, byteP)) < 0)
1402 H5_LIBRARY_ERROR(ENVONLY);
1403
1404 done:
1405 if (byteP)
1406 UNPIN_BYTE_ARRAY(ENVONLY, value, byteP, (status < 0) ? JNI_ABORT : 0);
1407 } /* end Java_hdf_hdf5lib_H5_H5Tget_1member_1value */
1408
1409 /*
1410 * Class: hdf_hdf5lib_H5
1411 * Method: H5Tget_array_dims
1412 * Signature: (J)I
1413 */
1414 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1array_1ndims(JNIEnv * env,jclass clss,jlong type_id)1415 Java_hdf_hdf5lib_H5_H5Tget_1array_1ndims
1416 (JNIEnv *env, jclass clss, jlong type_id)
1417 {
1418 int ndims = -1;
1419
1420 UNUSED(clss);
1421
1422 if ((ndims = H5Tget_array_ndims((hid_t)type_id)) < 0)
1423 H5_LIBRARY_ERROR(ENVONLY);
1424
1425 done:
1426 return (jint)ndims;
1427 } /* end Java_hdf_hdf5lib_H5_H5Tget_1array_1ndims */
1428
1429 /*
1430 * Class: hdf_hdf5lib_H5
1431 * Method: H5Tarray_get_dims
1432 * Signature: (J[I[I)I
1433 */
1434 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1array_1dims(JNIEnv * env,jclass clss,jlong type_id,jintArray dims,jintArray perms)1435 Java_hdf_hdf5lib_H5_H5Tget_1array_1dims
1436 (JNIEnv *env, jclass clss, jlong type_id, jintArray dims, jintArray perms)
1437 {
1438 jboolean isCopy;
1439 hsize_t *cdims = NULL;
1440 size_t i;
1441 jsize dlen;
1442 jint *dimsP = NULL;
1443 int ndims = -1;
1444
1445 UNUSED(clss);
1446 UNUSED(perms);
1447
1448 if (NULL == dims)
1449 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tget_array_dims: dims array is NULL");
1450
1451 PIN_INT_ARRAY(ENVONLY, dims, dimsP, &isCopy, "H5Tget_array_dims: dimsP not pinned");
1452
1453 if ((dlen = ENVPTR->GetArrayLength(ENVONLY, dims)) < 0) {
1454 CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
1455 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tget_array_dims: dims array length < 0");
1456 }
1457
1458 if (NULL == (cdims = (hsize_t *) HDmalloc((size_t)dlen * sizeof(hsize_t))))
1459 H5_JNI_FATAL_ERROR(ENVONLY, "H5Tget_array_dims: failed to allocate dimension buffer");
1460
1461 if ((ndims = H5Tget_array_dims2((hid_t)type_id, cdims)) < 0)
1462 H5_LIBRARY_ERROR(ENVONLY);
1463
1464 for (i = 0; i < (size_t) dlen; i++) {
1465 dimsP[i] = (jint) cdims[i];
1466 } /* end for */
1467
1468 done:
1469 if (cdims)
1470 HDfree(cdims);
1471 if (dimsP)
1472 UNPIN_INT_ARRAY(ENVONLY, dims, dimsP, (ndims < 0) ? JNI_ABORT : 0);
1473
1474 return (jint)ndims;
1475 } /* end Java_hdf_hdf5lib_H5_H5Tget_1array_1dims */
1476
1477 /*
1478 * Class: hdf_hdf5lib_H5
1479 * Method: H5Tis_variable_str
1480 * Signature: (J)Z
1481 */
1482 JNIEXPORT jboolean JNICALL
Java_hdf_hdf5lib_H5_H5Tis_1variable_1str(JNIEnv * env,jclass clss,jlong type_id)1483 Java_hdf_hdf5lib_H5_H5Tis_1variable_1str
1484 (JNIEnv *env, jclass clss, jlong type_id)
1485 {
1486 htri_t bval = JNI_FALSE;
1487
1488 UNUSED(clss);
1489
1490 if ((bval = H5Tis_variable_str((hid_t)type_id)) < 0)
1491 H5_LIBRARY_ERROR(ENVONLY);
1492
1493 bval = (bval > 0) ? JNI_TRUE : JNI_FALSE;
1494
1495 done:
1496 return (jboolean)bval;
1497 } /* end Java_hdf_hdf5lib_H5_H5Tis_1variable_1str */
1498
1499 /*
1500 * Class: hdf_hdf5lib_H5
1501 * Method: H5Tget_native_type
1502 * Signature: (JI)J
1503 */
1504 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tget_1native_1type(JNIEnv * env,jclass clss,jlong type_id,jint direction)1505 Java_hdf_hdf5lib_H5__1H5Tget_1native_1type
1506 (JNIEnv *env, jclass clss, jlong type_id, jint direction)
1507 {
1508 hid_t native_tid = H5I_INVALID_HID;
1509
1510 UNUSED(clss);
1511
1512 if ((native_tid = H5Tget_native_type((hid_t)type_id, (H5T_direction_t)direction)) < 0)
1513 H5_LIBRARY_ERROR(ENVONLY);
1514
1515 done:
1516 return (jlong)native_tid;
1517 } /* end Java_hdf_hdf5lib_H5__1H5Tget_1native_1type */
1518
1519 /*
1520 * Class: hdf_hdf5lib_H5
1521 * Method: H5Tdetect_class
1522 * Signature: (JI)Z
1523 */
1524 JNIEXPORT jboolean JNICALL
Java_hdf_hdf5lib_H5_H5Tdetect_1class(JNIEnv * env,jclass clss,jlong type_id,jint dtype_class)1525 Java_hdf_hdf5lib_H5_H5Tdetect_1class
1526 (JNIEnv *env, jclass clss, jlong type_id, jint dtype_class)
1527 {
1528 htri_t bval = JNI_FALSE;
1529
1530 UNUSED(clss);
1531
1532 if ((bval = H5Tdetect_class((hid_t)type_id, (H5T_class_t)dtype_class)) < 0)
1533 H5_LIBRARY_ERROR(ENVONLY);
1534
1535 bval = (bval > 0) ? JNI_TRUE : JNI_FALSE;
1536
1537 done:
1538 return (jboolean)bval;
1539 } /* end Java_hdf_hdf5lib_H5_H5Tdetect_1class */
1540
1541 /*
1542 * Class: hdf_hdf5lib_H5
1543 * Method: H5Tcommit
1544 * Signature: (JLjava/lang/String;JJJJ)V
1545 */
1546 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tcommit(JNIEnv * env,jclass clss,jlong loc_id,jstring name,jlong type,jlong link_plist_id,jlong create_plist_id,jlong access_plist_id)1547 Java_hdf_hdf5lib_H5_H5Tcommit
1548 (JNIEnv *env, jclass clss, jlong loc_id, jstring name, jlong type,
1549 jlong link_plist_id, jlong create_plist_id, jlong access_plist_id)
1550 {
1551 const char *datatypeName = NULL;
1552 herr_t status = FAIL;
1553
1554 UNUSED(clss);
1555
1556 if (NULL == name)
1557 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tcommit: datatype name is NULL");
1558
1559 PIN_JAVA_STRING(ENVONLY, name, datatypeName, NULL, "H5Tcommit: datatype name not pinned");
1560
1561 if ((status = H5Tcommit2((hid_t)loc_id, datatypeName, (hid_t)type, (hid_t)link_plist_id, (hid_t)create_plist_id, (hid_t)access_plist_id)) < 0)
1562 H5_LIBRARY_ERROR(ENVONLY);
1563
1564 done:
1565 if (datatypeName)
1566 UNPIN_JAVA_STRING(ENVONLY, name, datatypeName);
1567 } /* end Java_hdf_hdf5lib_H5_H5Tcommit */
1568
1569 /*
1570 * Class: hdf_hdf5lib_H5
1571 * Method: _H5Tarray_create2
1572 * Signature: (JI[J)J
1573 */
1574 JNIEXPORT jlong JNICALL
Java_hdf_hdf5lib_H5__1H5Tarray_1create2(JNIEnv * env,jclass clss,jlong base_id,jint rank,jlongArray dims)1575 Java_hdf_hdf5lib_H5__1H5Tarray_1create2
1576 (JNIEnv *env, jclass clss, jlong base_id, jint rank, jlongArray dims)
1577 {
1578 jboolean isCopy;
1579 hsize_t *cdims = NULL;
1580 size_t i;
1581 jlong *dimsP = NULL;
1582 jsize dlen;
1583 hid_t retVal = H5I_INVALID_HID;
1584
1585 UNUSED(clss);
1586
1587 if (rank <= 0)
1588 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tarray_create: rank is < 1");
1589 if (NULL == dims)
1590 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tarray_create: dims is NULL");
1591
1592 PIN_LONG_ARRAY(ENVONLY, dims, dimsP, &isCopy, "H5Tarray_create: dimsP not pinned");
1593
1594 if ((dlen = ENVPTR->GetArrayLength(ENVONLY, dims)) < 0) {
1595 CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
1596 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tarray_create: dims array length < 0");
1597 }
1598
1599 if (dlen != rank)
1600 H5_JNI_FATAL_ERROR(ENVONLY, "H5Tarray_create: dimension array length != array rank");
1601
1602 if (NULL == (cdims = (hsize_t *) HDmalloc((size_t)dlen * sizeof(hsize_t))))
1603 H5_JNI_FATAL_ERROR(ENVONLY, "H5Tarray_create: failed to allocate dimension buffer");
1604
1605 for (i = 0; i < (size_t) dlen; i++) {
1606 cdims[i] = (hsize_t)dimsP[i];
1607 } /* end for */
1608
1609 if ((retVal = H5Tarray_create2((hid_t)base_id, (unsigned)rank, (const hsize_t *)cdims)) < 0)
1610 H5_LIBRARY_ERROR(ENVONLY);
1611
1612 done:
1613 if (cdims)
1614 HDfree(cdims);
1615 if (dimsP)
1616 UNPIN_LONG_ARRAY(ENVONLY, dims, dimsP, (retVal < 0) ? JNI_ABORT : 0);
1617
1618 return (jlong)retVal;
1619 } /* end Java_hdf_hdf5lib_H5__1H5Tarray_1create2 */
1620
1621 /*
1622 * Class: hdf_hdf5lib_H5
1623 * Method: H5Tget_array_dims2
1624 * Signature: (J[J)I
1625 */
1626 JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5Tget_1array_1dims2(JNIEnv * env,jclass clss,jlong type_id,jlongArray dims)1627 Java_hdf_hdf5lib_H5_H5Tget_1array_1dims2
1628 (JNIEnv *env, jclass clss, jlong type_id, jlongArray dims)
1629 {
1630 jboolean isCopy;
1631 hsize_t *cdims = NULL;
1632 size_t i;
1633 jlong *dimsP = NULL;
1634 jsize dlen;
1635 int ndims = -1;
1636
1637 UNUSED(clss);
1638
1639 if (NULL == dims)
1640 H5_NULL_ARGUMENT_ERROR(ENVONLY, "H5Tarray_get_dims2: value is NULL");
1641
1642 PIN_LONG_ARRAY(ENVONLY, dims, dimsP, &isCopy, "H5Tarray_get_dims2: dimsP not pinned");
1643
1644 if ((dlen = ENVPTR->GetArrayLength(ENVONLY, dims)) < 0) {
1645 CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
1646 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tarray_get_dims2: dims array length < 0");
1647 }
1648
1649 if (NULL == (cdims = (hsize_t *) HDmalloc((size_t)dlen * sizeof(hsize_t))))
1650 H5_JNI_FATAL_ERROR(ENVONLY, "H5Tarray_get_dims2: failed to allocate dimension buffer");
1651
1652 if ((ndims = H5Tget_array_dims2((hid_t)type_id, (hsize_t*)cdims)) < 0)
1653 H5_LIBRARY_ERROR(ENVONLY);
1654
1655 for (i = 0; i < (size_t) dlen; i++) {
1656 dimsP[i] = (jlong) cdims[i];
1657 } /* end for */
1658
1659 done:
1660 if (cdims)
1661 HDfree(cdims);
1662 if (dimsP)
1663 UNPIN_LONG_ARRAY(ENVONLY, dims, dimsP, (ndims < 0) ? JNI_ABORT : 0);
1664
1665 return (jint)ndims;
1666 } /* end Java_hdf_hdf5lib_H5_H5Tget_1array_1dims2 */
1667
1668 /*
1669 * Class: hdf_hdf5lib_H5
1670 * Method: H5Tconvert
1671 * Signature: (JJJ[B[BJ)V
1672 */
1673 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tconvert(JNIEnv * env,jclass clss,jlong src_id,jlong dst_id,jlong nelmts,jbyteArray buf,jbyteArray background,jlong plist_id)1674 Java_hdf_hdf5lib_H5_H5Tconvert
1675 (JNIEnv *env, jclass clss, jlong src_id, jlong dst_id, jlong nelmts,
1676 jbyteArray buf, jbyteArray background, jlong plist_id)
1677 {
1678 jboolean isCopy;
1679 jbyte *bufP = NULL;
1680 jbyte *bgP = NULL;
1681 herr_t status = FAIL;
1682
1683 UNUSED(clss);
1684
1685 if (nelmts <= 0)
1686 H5_BAD_ARGUMENT_ERROR(ENVONLY, "H5Tconvert: nelmts < 0");
1687
1688 PIN_BYTE_ARRAY(ENVONLY, buf, bufP, &isCopy, "H5Tconvert: buffer not pinned");
1689
1690 if (background)
1691 PIN_BYTE_ARRAY(ENVONLY, background, bgP, &isCopy, "H5Tconvert: background buffer not pinned");
1692
1693 if ((status = H5Tconvert((hid_t)src_id, (hid_t)dst_id, (size_t)nelmts, (void *)bufP, (void *)bgP, (hid_t)plist_id)) < 0)
1694 H5_LIBRARY_ERROR(ENVONLY);
1695
1696 done:
1697 if (bgP)
1698 UNPIN_BYTE_ARRAY(ENVONLY, background, bgP, (status < 0) ? JNI_ABORT : 0);
1699 if (bufP)
1700 UNPIN_BYTE_ARRAY(ENVONLY, buf, bufP, (status < 0) ? JNI_ABORT : 0);
1701 } /* end Java_hdf_hdf5lib_H5_H5Tconvert */
1702
1703 /*
1704 * Class: hdf_hdf5lib_H5
1705 * Method: H5Tflush
1706 * Signature: (J)V
1707 */
1708 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Tflush(JNIEnv * env,jclass clss,jlong loc_id)1709 Java_hdf_hdf5lib_H5_H5Tflush(JNIEnv *env, jclass clss, jlong loc_id)
1710 {
1711 UNUSED(clss);
1712
1713 if (H5Tflush((hid_t)loc_id) < 0)
1714 H5_LIBRARY_ERROR(ENVONLY);
1715
1716 done:
1717 return;
1718 }
1719
1720 /*
1721 * Class: hdf_hdf5lib_H5
1722 * Method: H5Trefresh
1723 * Signature: (J)V
1724 */
1725 JNIEXPORT void JNICALL
Java_hdf_hdf5lib_H5_H5Trefresh(JNIEnv * env,jclass clss,jlong loc_id)1726 Java_hdf_hdf5lib_H5_H5Trefresh(JNIEnv *env, jclass clss, jlong loc_id)
1727 {
1728 UNUSED(clss);
1729
1730 if (H5Trefresh((hid_t)loc_id) < 0)
1731 H5_LIBRARY_ERROR(ENVONLY);
1732
1733 done:
1734 return;
1735 }
1736
1737
1738 #ifdef __cplusplus
1739 } /* end extern "C" */
1740 #endif /* __cplusplus */
1741