From 1000e97d3a6867bce31f0c210e4f8f052659c73e Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Thu, 6 Dec 2018 23:44:18 -0600 Subject: initial API impl. --- fortran/src/CMakeLists.txt | 1 + fortran/src/Makefile.am | 3 ++- fortran/src/hdf5_fortrandll.def.in | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 025fab5..6cc15ea 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -221,6 +221,7 @@ set (f90_F_BASE_SOURCES ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff.F90 ${HDF5_F90_SRC_SOURCE_DIR}/H5Sff.F90 ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff.F90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5VLff.F90 ${HDF5_F90_SRC_SOURCE_DIR}/H5Zff.F90 ) diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am index 666f6cb..4009439 100644 --- a/fortran/src/Makefile.am +++ b/fortran/src/Makefile.am @@ -44,7 +44,7 @@ endif libhdf5_fortran_la_SOURCES=H5f90global.F90 \ H5fortran_types.F90 H5_ff.F90 H5Aff.F90 H5Dff.F90 H5Eff.F90 \ H5Fff.F90 H5Gff.F90 H5Iff.F90 H5Lff.F90 H5Off.F90 H5Pff.F90 H5Rff.F90 H5Sff.F90 \ - H5Tff.F90 H5Zff.F90 H5_gen.F90 H5fortkit.F90 \ + H5Tff.F90 H5VLff.F90 H5Zff.F90 H5_gen.F90 H5fortkit.F90 \ H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c HDF5.F90 @@ -155,6 +155,7 @@ H5Pff.lo: $(srcdir)/H5Pff.F90 H5f90global.lo H5fortkit.lo H5Rff.lo: $(srcdir)/H5Rff.F90 H5f90global.lo H5Sff.lo: $(srcdir)/H5Sff.F90 H5f90global.lo H5Tff.lo: $(srcdir)/H5Tff.F90 H5f90global.lo +H5VLff.lo: $(srcdir)/H5VLff.F90 H5f90global.lo H5Zff.lo: $(srcdir)/H5Zff.F90 H5f90global.lo H5_gen.lo: H5_gen.F90 H5f90global.lo H5Aff.lo H5Dff.lo H5Pff.lo HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.lo H5_ff.lo H5Aff.lo \ diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in index 2edba5a..a1a2b56 100644 --- a/fortran/src/hdf5_fortrandll.def.in +++ b/fortran/src/hdf5_fortrandll.def.in @@ -446,6 +446,11 @@ H5T_mp_H5TGET_NATIVE_TYPE_F H5T_mp_H5TCONVERT_F H5T_mp_H5TENUM_INSERT_F90 H5T_mp_H5TENUM_INSERT_F03 +; H5VL +H5VL_mp_H5VLUNREGISTER_CONNECTOR_F +;H5VL_mp_H5VLCLOSE_F +;H5VL_mp_H5VLINITIALIZE_F +;H5VL_mp_H5VLTERMINATE_F ; H5Z H5Z_mp_H5ZUNREGISTER_F H5Z_mp_H5ZFILTER_AVAIL_F -- cgit v0.12 From 5267454ebdb883140e53daea5ff8bdf88c1ec3ef Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Fri, 7 Dec 2018 12:00:47 -0600 Subject: Implemented VOL APIs and C constants, no tests --- MANIFEST | 1 + fortran/src/H5Pff.F90 | 5 +- fortran/src/H5_f.c | 88 ++++++++++++++++++++-- fortran/src/H5_ff.F90 | 108 ++++++++++++++++++++++++--- fortran/src/H5f90global.F90 | 176 ++++++++++++++++++++++++++++++++++++++++++-- fortran/src/H5f90proto.h | 2 +- src/H5VLpublic.h | 2 +- 7 files changed, 355 insertions(+), 27 deletions(-) diff --git a/MANIFEST b/MANIFEST index cb22f4d..6443250 100644 --- a/MANIFEST +++ b/MANIFEST @@ -238,6 +238,7 @@ ./fortran/src/H5Sff.F90 ./fortran/src/H5Tf.c ./fortran/src/H5Tff.F90 +./fortran/src/H5VLff.F90 ./fortran/src/H5Zf.c ./fortran/src/H5Zff.F90 ./fortran/src/H5config_f.inc.cmake diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90 index 455c72e..d6e70b3 100644 --- a/fortran/src/H5Pff.F90 +++ b/fortran/src/H5Pff.F90 @@ -7929,7 +7929,7 @@ SUBROUTINE h5pget_virtual_filename_f(dcpl_id, index, name, hdferr, name_len) INTERFACE INTEGER(SIZE_T) FUNCTION h5pget_virtual_filename(dcpl_id, index, name, size) BIND(C, NAME='H5Pget_virtual_filename') - IMPORT :: HID_T, SIZE_T, C_PTR, C_CHAR + IMPORT :: HID_T, SIZE_T, C_PTR IMPLICIT NONE INTEGER(HID_T) , INTENT(IN), VALUE :: dcpl_id INTEGER(SIZE_T), INTENT(IN), VALUE :: index @@ -7997,7 +7997,7 @@ SUBROUTINE h5pget_virtual_dsetname_f(dcpl_id, index, name, hdferr, name_len) INTERFACE INTEGER(SIZE_T) FUNCTION h5pget_virtual_dsetname(dcpl_id, index, name, size) BIND(C, NAME='H5Pget_virtual_dsetname') - IMPORT :: HID_T, SIZE_T, C_PTR, C_CHAR + IMPORT :: HID_T, SIZE_T, C_PTR IMPLICIT NONE INTEGER(HID_T) , INTENT(IN), VALUE :: dcpl_id INTEGER(SIZE_T), INTENT(IN), VALUE :: index @@ -8018,7 +8018,6 @@ SUBROUTINE h5pget_virtual_dsetname_f(dcpl_id, index, name, hdferr, name_len) ELSE CALL HD5c2fstring(name,c_name,LEN(name)) ENDIF - ENDIF END SUBROUTINE h5pget_virtual_dsetname_f diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index 352ffab..018e121 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -335,6 +335,7 @@ h5close_types_c( hid_t_f * types, int_f *lentypes, * h5s_hid_flags - H5S interface flags of type hid_t * h5s_hsize_flags - H5S interface flags of type hsize_t * h5t_flags - H5T interface flags + * h5vl_flags - H5VL interface flags * h5z_flags - H5Z interface flags * OUTPUTS * None @@ -366,7 +367,7 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, - int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags, + int_f *h5t_flags, int_f *h5vl_flags, int_f *h5z_flags, int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags) /******/ { @@ -498,6 +499,16 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5i_flags[4] = (int_f)H5I_DATASET; h5i_flags[5] = (int_f)H5I_ATTR; h5i_flags[6] = (int_f)H5I_BADID; + h5i_flags[7] = (int_f)H5I_UNINIT; + h5i_flags[8] = (int_f)H5I_VFL; + h5i_flags[9] = (int_f)H5I_VOL; + h5i_flags[10] = (int_f)H5I_GENPROP_CLS; + h5i_flags[11] = (int_f)H5I_GENPROP_LST; + h5i_flags[12] = (int_f)H5I_ERROR_CLASS; + h5i_flags[13] = (int_f)H5I_ERROR_MSG; + h5i_flags[14] = (int_f)H5I_ERROR_STACK; + h5i_flags[15] = (int_f)H5I_NTYPES; + h5i_flags[16] = (int_f)H5I_INVALID_HID; /* * H5L flags */ @@ -660,7 +671,76 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5t_flags[32] = (int_f)H5T_ARRAY; h5t_flags[33] = (int_f)H5T_DIR_ASCEND; h5t_flags[34] = (int_f)H5T_DIR_DESCEND; - +/* + * H5VL flags + */ + h5vl_flags[0] = (int_f)H5VL_ATTR_GET_ACPL; + h5vl_flags[1] = (int_f)H5VL_ATTR_GET_INFO; + h5vl_flags[2] = (int_f)H5VL_ATTR_GET_NAME; + h5vl_flags[3] = (int_f)H5VL_ATTR_GET_SPACE; + h5vl_flags[4] = (int_f)H5VL_ATTR_GET_STORAGE_SIZE; + h5vl_flags[5] = (int_f)H5VL_ATTR_GET_TYPE; + h5vl_flags[6] = (int_f)H5VL_ATTR_DELETE; + h5vl_flags[7] = (int_f)H5VL_ATTR_EXISTS; + h5vl_flags[8] = (int_f)H5VL_ATTR_ITER; + h5vl_flags[8] = (int_f)H5VL_ATTR_RENAME; + h5vl_flags[9] = (int_f)H5VL_DATASET_GET_DAPL; + h5vl_flags[11] = (int_f)H5VL_DATASET_GET_DCPL; + h5vl_flags[12] = (int_f)H5VL_DATASET_GET_OFFSET; + h5vl_flags[13] = (int_f)H5VL_DATASET_GET_SPACE; + h5vl_flags[14] = (int_f)H5VL_DATASET_GET_SPACE_STATUS; + h5vl_flags[15] = (int_f)H5VL_DATASET_GET_STORAGE_SIZE; + h5vl_flags[16] = (int_f)H5VL_DATASET_GET_TYPE; + h5vl_flags[17] = (int_f)H5VL_DATASET_SET_EXTENT; + h5vl_flags[18] = (int_f)H5VL_DATASET_FLUSH; + h5vl_flags[19] = (int_f)H5VL_DATASET_REFRESH; + h5vl_flags[20] = (int_f)H5VL_DATATYPE_GET_BINARY; + h5vl_flags[21] = (int_f)H5VL_DATATYPE_GET_TCPL; + h5vl_flags[22] = (int_f)H5VL_DATATYPE_FLUSH; + h5vl_flags[23] = (int_f)H5VL_DATATYPE_REFRESH; + h5vl_flags[24] = (int_f)H5VL_FILE_GET_FAPL; + h5vl_flags[25] = (int_f)H5VL_FILE_GET_FCPL; + h5vl_flags[26] = (int_f)H5VL_FILE_GET_INTENT; + h5vl_flags[27] = (int_f)H5VL_FILE_GET_NAME; + h5vl_flags[28] = (int_f)H5VL_FILE_GET_OBJ_COUNT; + h5vl_flags[29] = (int_f)H5VL_FILE_GET_OBJ_IDS; + h5vl_flags[30] = (int_f)H5VL_FILE_FLUSH; + h5vl_flags[31] = (int_f)H5VL_FILE_REOPEN; + h5vl_flags[32] = (int_f)H5VL_FILE_MOUNT; + h5vl_flags[33] = (int_f)H5VL_FILE_UNMOUNT; + h5vl_flags[34] = (int_f)H5VL_FILE_IS_ACCESSIBLE; + h5vl_flags[35] = (int_f)H5VL_FILE_CACHE_VOL_CONN; + h5vl_flags[36] = (int_f)H5VL_GROUP_GET_GCPL; + h5vl_flags[37] = (int_f)H5VL_GROUP_GET_INFO; + h5vl_flags[38] = (int_f)H5VL_GROUP_FLUSH; + h5vl_flags[39] = (int_f)H5VL_GROUP_REFRESH; + h5vl_flags[40] = (int_f)H5VL_LINK_CREATE_HARD; + h5vl_flags[41] = (int_f)H5VL_LINK_CREATE_SOFT; + h5vl_flags[42] = (int_f)H5VL_LINK_CREATE_UD; + h5vl_flags[43] = (int_f)H5VL_LINK_GET_INFO; + h5vl_flags[44] = (int_f)H5VL_LINK_GET_NAME; + h5vl_flags[45] = (int_f)H5VL_LINK_GET_VAL; + h5vl_flags[46] = (int_f)H5VL_LINK_DELETE; + h5vl_flags[47] = (int_f)H5VL_LINK_EXISTS; + h5vl_flags[48] = (int_f)H5VL_LINK_ITER; + h5vl_flags[49] = (int_f)H5VL_REF_GET_NAME; + h5vl_flags[50] = (int_f)H5VL_REF_GET_REGION; + h5vl_flags[51] = (int_f)H5VL_REF_GET_TYPE; + h5vl_flags[52] = (int_f)H5VL_ID_GET_NAME; + h5vl_flags[53] = (int_f)H5VL_OBJECT_CHANGE_REF_COUNT; + h5vl_flags[54] = (int_f)H5VL_OBJECT_EXISTS; + h5vl_flags[55] = (int_f)H5VL_OBJECT_VISIT; + h5vl_flags[56] = (int_f)H5VL_REF_CREATE; + h5vl_flags[57] = (int_f)H5VL_OBJECT_FLUSH; + h5vl_flags[58] = (int_f)H5VL_OBJECT_REFRESH; + h5vl_flags[59] = (int_f)H5VL_REQUEST_WAITANY; + h5vl_flags[60] = (int_f)H5VL_REQUEST_WAITSOME; + h5vl_flags[61] = (int_f)H5VL_REQUEST_WAITALL; + h5vl_flags[62] = (int_f)H5VL_OBJECT_BY_SELF; + h5vl_flags[63] = (int_f)H5VL_OBJECT_BY_NAME; + h5vl_flags[64] = (int_f)H5VL_OBJECT_BY_IDX; + h5vl_flags[65] = (int_f)H5VL_OBJECT_BY_ADDR; + h5vl_flags[66] = (int_f)H5VL_OBJECT_BY_REF; /* * H5Z flags */ @@ -684,10 +764,6 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5z_flags[17] = (int_f)H5Z_SO_FLOAT_ESCALE; h5z_flags[18] = (int_f)H5Z_SO_INT; h5z_flags[19] = (int_f)H5Z_SO_INT_MINBITS_DEFAULT; -/* - * H5A flags - */ - /* * H5 Generic flags introduced in version 1.8 diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90 index f63e734..fd5d437 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.F90 @@ -88,7 +88,7 @@ MODULE H5LIB ! ! H5I flags declaration ! - INTEGER, PARAMETER :: H5I_FLAGS_LEN = 7 + INTEGER, PARAMETER :: H5I_FLAGS_LEN = 17 INTEGER, DIMENSION(1:H5I_FLAGS_LEN) :: H5I_flags ! ! H5L flags declaration @@ -130,6 +130,13 @@ MODULE H5LIB INTEGER, PARAMETER :: H5T_FLAGS_LEN = 35 INTEGER, DIMENSION(1:H5T_FLAGS_LEN) :: H5T_flags ! + ! H5VL flags declaration + ! + + INTEGER, PARAMETER :: H5VL_FLAGS_LEN = 67 + INTEGER, DIMENSION(1:H5VL_FLAGS_LEN) :: H5VL_flags + + ! ! H5Z flags declaration ! INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 20 @@ -204,6 +211,7 @@ CONTAINS i_H5S_hid_flags, & i_H5S_hsize_flags, & i_H5T_flags, & + i_H5VL_flags, & i_H5Z_flags, & i_H5generic_flags, & i_H5generic_haddr_flags) & @@ -215,7 +223,7 @@ CONTAINS H5FD_HID_FLAGS_LEN, H5I_FLAGS_LEN, H5L_FLAGS_LEN, & H5O_FLAGS_LEN, H5P_FLAGS_LEN, H5P_FLAGS_INT_LEN, & H5R_FLAGS_LEN, H5S_FLAGS_LEN, H5S_HID_FLAGS_LEN, H5S_HSIZE_FLAGS_LEN, & - H5T_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN, H5generic_haddr_FLAGS_LEN + H5T_FLAGS_LEN, H5VL_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN, H5generic_haddr_FLAGS_LEN IMPLICIT NONE INTEGER , DIMENSION(1:H5D_FLAGS_LEN) :: i_H5D_flags INTEGER(SIZE_T) , DIMENSION(1:H5D_SIZE_FLAGS_LEN) :: i_H5D_size_flags @@ -235,6 +243,7 @@ CONTAINS INTEGER(HID_T) , DIMENSION(1:H5S_HID_FLAGS_LEN) :: i_H5S_hid_flags INTEGER(HSIZE_T), DIMENSION(1:H5S_HSIZE_FLAGS_LEN) :: i_H5S_hsize_flags INTEGER , DIMENSION(1:H5T_FLAGS_LEN) :: i_H5T_flags + INTEGER , DIMENSION(1:H5VL_FLAGS_LEN) :: i_H5VL_flags INTEGER , DIMENSION(1:H5Z_FLAGS_LEN) :: i_H5Z_flags INTEGER , DIMENSION(1:H5generic_FLAGS_LEN) :: i_H5generic_flags INTEGER(HADDR_T), DIMENSION(1:H5generic_haddr_FLAGS_LEN) :: i_H5generic_haddr_flags @@ -318,6 +327,7 @@ CONTAINS H5S_hid_flags, & H5S_hsize_flags, & H5T_flags, & + H5VL_flags, & H5Z_flags, & H5generic_flags,& H5generic_haddr_flags) @@ -443,13 +453,23 @@ CONTAINS ! ! H5I flags declaration ! - H5I_FILE_F = H5I_flags(1) - H5I_GROUP_F = H5I_flags(2) - H5I_DATATYPE_F = H5I_flags(3) - H5I_DATASPACE_F = H5I_flags(4) - H5I_DATASET_F = H5I_flags(5) - H5I_ATTR_F = H5I_flags(6) - H5I_BADID_F = H5I_flags(7) + H5I_FILE_F = H5I_flags(1) + H5I_GROUP_F = H5I_flags(2) + H5I_DATATYPE_F = H5I_flags(3) + H5I_DATASPACE_F = H5I_flags(4) + H5I_DATASET_F = H5I_flags(5) + H5I_ATTR_F = H5I_flags(6) + H5I_BADID_F = H5I_flags(7) + H5I_UNINIT_F = H5I_flags(8) + H5I_VFL_F = H5I_flags(9) + H5I_VOL_F = H5I_flags(10) + H5I_GENPROP_CLS_F = H5I_flags(11) + H5I_GENPROP_LST_F = H5I_flags(12) + H5I_ERROR_CLASS_F = H5I_flags(13) + H5I_ERROR_MSG_F = H5I_flags(14) + H5I_ERROR_STACK_F = H5I_flags(15) + H5I_NTYPES_F = H5I_flags(16) + H5I_INVALID_HID_F = H5I_flags(17) ! ! H5L flags ! @@ -584,6 +604,76 @@ CONTAINS H5T_DIR_ASCEND_F = H5T_flags(34) H5T_DIR_DESCEND_F = H5T_flags(35) ! + ! H5VL flags declaration + ! + H5VL_ATTR_GET_ACPL_F = H5VL_flags(1) + H5VL_ATTR_GET_INFO_F = H5VL_flags(2) + H5VL_ATTR_GET_NAME_F = H5VL_flags(3) + H5VL_ATTR_GET_SPACE_F = H5VL_flags(4) + H5VL_ATTR_GET_STORAGE_SIZE_F = H5VL_flags(5) + H5VL_ATTR_GET_TYPE_F = H5VL_flags(6) + H5VL_ATTR_DELETE_F = H5VL_flags(7) + H5VL_ATTR_EXISTS_F = H5VL_flags(8) + H5VL_ATTR_ITER_F = H5VL_flags(9) + H5VL_ATTR_RENAME_F = H5VL_flags(10) + H5VL_DATASET_GET_DAPL_F = H5VL_flags(11) + H5VL_DATASET_GET_DCPL_F = H5VL_flags(12) + H5VL_DATASET_GET_OFFSET_F = H5VL_flags(13) + H5VL_DATASET_GET_SPACE_F = H5VL_flags(14) + H5VL_DATASET_GET_SPACE_STATUS_F = H5VL_flags(15) + H5VL_DATASET_GET_STORAGE_SIZE_F = H5VL_flags(16) + H5VL_DATASET_GET_TYPE_F = H5VL_flags(17) + H5VL_DATASET_SET_EXTENT_F = H5VL_flags(18) + H5VL_DATASET_FLUSH_F = H5VL_flags(19) + H5VL_DATASET_REFRESH_F = H5VL_flags(20) + H5VL_DATATYPE_GET_BINARY_F = H5VL_flags(21) + H5VL_DATATYPE_GET_TCPL_F = H5VL_flags(22) + H5VL_DATATYPE_FLUSH_F = H5VL_flags(23) + H5VL_DATATYPE_REFRESH_F = H5VL_flags(24) + H5VL_FILE_GET_FAPL_F = H5VL_flags(25) + H5VL_FILE_GET_FCPL_F = H5VL_flags(26) + H5VL_FILE_GET_INTENT_F = H5VL_flags(27) + H5VL_FILE_GET_NAME_F = H5VL_flags(28) + H5VL_FILE_GET_OBJ_COUNT_F = H5VL_flags(29) + H5VL_FILE_GET_OBJ_IDS_F = H5VL_flags(30) + H5VL_FILE_FLUSH_F = H5VL_flags(31) + H5VL_FILE_REOPEN_F = H5VL_flags(32) + H5VL_FILE_MOUNT_F = H5VL_flags(33) + H5VL_FILE_UNMOUNT_F = H5VL_flags(34) + H5VL_FILE_IS_ACCESSIBLE_F = H5VL_flags(35) + H5VL_FILE_CACHE_VOL_CONN_F = H5VL_flags(36) + H5VL_GROUP_GET_GCPL_F = H5VL_flags(37) + H5VL_GROUP_GET_INFO_F = H5VL_flags(38) + H5VL_GROUP_FLUSH_F = H5VL_flags(39) + H5VL_GROUP_REFRESH_F = H5VL_flags(40) + H5VL_LINK_CREATE_HARD_F = H5VL_flags(41) + H5VL_LINK_CREATE_SOFT_F = H5VL_flags(42) + H5VL_LINK_CREATE_UD_F = H5VL_flags(43) + H5VL_LINK_GET_INFO_F = H5VL_flags(44) + H5VL_LINK_GET_NAME_F = H5VL_flags(45) + H5VL_LINK_GET_VAL_F = H5VL_flags(46) + H5VL_LINK_DELETE_F = H5VL_flags(47) + H5VL_LINK_EXISTS_F = H5VL_flags(48) + H5VL_LINK_ITER_F = H5VL_flags(49) + H5VL_REF_GET_NAME_F = H5VL_flags(50) + H5VL_REF_GET_REGION_F = H5VL_flags(51) + H5VL_REF_GET_TYPE_F = H5VL_flags(52) + H5VL_ID_GET_NAME_F = H5VL_flags(53) + H5VL_OBJECT_CHANGE_REF_COUNT_F = H5VL_flags(54) + H5VL_OBJECT_EXISTS_F = H5VL_flags(55) + H5VL_OBJECT_VISIT_F = H5VL_flags(56) + H5VL_REF_CREATE_F = H5VL_flags(57) + H5VL_OBJECT_FLUSH_F = H5VL_flags(58) + H5VL_OBJECT_REFRESH_F = H5VL_flags(59) + H5VL_REQUEST_WAITANY_F = H5VL_flags(60) + H5VL_REQUEST_WAITSOME_F = H5VL_flags(61) + H5VL_REQUEST_WAITALL_F = H5VL_flags(62) + H5VL_OBJECT_BY_SELF_F = H5VL_flags(63) + H5VL_OBJECT_BY_NAME_F = H5VL_flags(64) + H5VL_OBJECT_BY_IDX_F = H5VL_flags(65) + H5VL_OBJECT_BY_ADDR_F = H5VL_flags(66) + H5VL_OBJECT_BY_REF_F = H5VL_flags(67) + ! ! H5Z flags ! H5Z_FILTER_ERROR_F = H5Z_flags(1) diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90 index 078778a..685026c 100644 --- a/fortran/src/H5f90global.F90 +++ b/fortran/src/H5f90global.F90 @@ -435,15 +435,36 @@ MODULE H5GLOBAL !DEC$ATTRIBUTES DLLEXPORT :: H5I_DATASET_F !DEC$ATTRIBUTES DLLEXPORT :: H5I_ATTR_F !DEC$ATTRIBUTES DLLEXPORT :: H5I_BADID_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_UNINIT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_VFL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_VOL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_GENPROP_CLS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_GENPROP_LST_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_ERROR_CLASS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_ERROR_MSG_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_ERROR_STACK_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_NTYPES_F + !DEC$ATTRIBUTES DLLEXPORT :: H5I_INVALID_HID_F !DEC$endif - INTEGER :: H5I_FILE_F - INTEGER :: H5I_GROUP_F - INTEGER :: H5I_DATATYPE_F - INTEGER :: H5I_DATASPACE_F - INTEGER :: H5I_DATASET_F - INTEGER :: H5I_ATTR_F - INTEGER :: H5I_BADID_F + INTEGER :: H5I_FILE_F + INTEGER :: H5I_GROUP_F + INTEGER :: H5I_DATATYPE_F + INTEGER :: H5I_DATASPACE_F + INTEGER :: H5I_DATASET_F + INTEGER :: H5I_ATTR_F + INTEGER :: H5I_BADID_F + INTEGER :: H5I_UNINIT_F + INTEGER :: H5I_VFL_F + INTEGER :: H5I_VOL_F + INTEGER :: H5I_GENPROP_CLS_F + INTEGER :: H5I_GENPROP_LST_F + INTEGER :: H5I_ERROR_CLASS_F + INTEGER :: H5I_ERROR_MSG_F + INTEGER :: H5I_ERROR_STACK_F + INTEGER :: H5I_NTYPES_F + INTEGER :: H5I_INVALID_HID_F + ! ! H5L flags declaration ! @@ -706,6 +727,147 @@ MODULE H5GLOBAL INTEGER :: H5T_DIR_ASCEND_F INTEGER :: H5T_DIR_DESCEND_F ! + ! H5VL flags declaration + ! + !DEC$if defined(BUILD_HDF5_DLL) + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_ACPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_INFO_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_NAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_SPACE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_STORAGE_SIZE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_TYPE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_DELETE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_EXISTS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_ITER_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_RENAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_DAPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_DCPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_OFFSET_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_SPACE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_SPACE_STATUS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_STORAGE_SIZE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_TYPE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_SET_EXTENT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_FLUSH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_REFRESH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_GET_BINARY_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_GET_TCPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_FLUSH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_REFRESH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_FAPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_FCPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_INTENT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_NAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_OBJ_COUNT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_OBJ_IDS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_FLUSH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_REOPEN_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_MOUNT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_UNMOUNT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_IS_ACCESSIBLE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_CACHE_VOL_CONN_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_GET_GCPL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_GET_INFO_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_FLUSH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_REFRESH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_HARD_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_SOFT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_UD_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_INFO_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_NAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_VAL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_DELETE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_EXISTS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_ITER_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_NAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_REGION_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_TYPE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ID_GET_NAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_CHANGE_REF_COUNT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_EXISTS_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_VISIT_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_CREATE_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_FLUSH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_REFRESH_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITANY_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITSOME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITALL_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_SELF_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_NAME_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_IDX_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_ADDR_F + !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_REF_F + !DEC$endif + + INTEGER :: H5VL_ATTR_GET_ACPL_F + INTEGER :: H5VL_ATTR_GET_INFO_F + INTEGER :: H5VL_ATTR_GET_NAME_F + INTEGER :: H5VL_ATTR_GET_SPACE_F + INTEGER :: H5VL_ATTR_GET_STORAGE_SIZE_F + INTEGER :: H5VL_ATTR_GET_TYPE_F + INTEGER :: H5VL_ATTR_DELETE_F + INTEGER :: H5VL_ATTR_EXISTS_F + INTEGER :: H5VL_ATTR_ITER_F + INTEGER :: H5VL_ATTR_RENAME_F + INTEGER :: H5VL_DATASET_GET_DAPL_F + INTEGER :: H5VL_DATASET_GET_DCPL_F + INTEGER :: H5VL_DATASET_GET_OFFSET_F + INTEGER :: H5VL_DATASET_GET_SPACE_F + INTEGER :: H5VL_DATASET_GET_SPACE_STATUS_F + INTEGER :: H5VL_DATASET_GET_STORAGE_SIZE_F + INTEGER :: H5VL_DATASET_GET_TYPE_F + INTEGER :: H5VL_DATASET_SET_EXTENT_F + INTEGER :: H5VL_DATASET_FLUSH_F + INTEGER :: H5VL_DATASET_REFRESH_F + INTEGER :: H5VL_DATATYPE_GET_BINARY_F + INTEGER :: H5VL_DATATYPE_GET_TCPL_F + INTEGER :: H5VL_DATATYPE_FLUSH_F + INTEGER :: H5VL_DATATYPE_REFRESH_F + INTEGER :: H5VL_FILE_GET_FAPL_F + INTEGER :: H5VL_FILE_GET_FCPL_F + INTEGER :: H5VL_FILE_GET_INTENT_F + INTEGER :: H5VL_FILE_GET_NAME_F + INTEGER :: H5VL_FILE_GET_OBJ_COUNT_F + INTEGER :: H5VL_FILE_GET_OBJ_IDS_F + INTEGER :: H5VL_FILE_FLUSH_F + INTEGER :: H5VL_FILE_REOPEN_F + INTEGER :: H5VL_FILE_MOUNT_F + INTEGER :: H5VL_FILE_UNMOUNT_F + INTEGER :: H5VL_FILE_IS_ACCESSIBLE_F + INTEGER :: H5VL_FILE_CACHE_VOL_CONN_F + INTEGER :: H5VL_GROUP_GET_GCPL_F + INTEGER :: H5VL_GROUP_GET_INFO_F + INTEGER :: H5VL_GROUP_FLUSH_F + INTEGER :: H5VL_GROUP_REFRESH_F + INTEGER :: H5VL_LINK_CREATE_HARD_F + INTEGER :: H5VL_LINK_CREATE_SOFT_F + INTEGER :: H5VL_LINK_CREATE_UD_F + INTEGER :: H5VL_LINK_GET_INFO_F + INTEGER :: H5VL_LINK_GET_NAME_F + INTEGER :: H5VL_LINK_GET_VAL_F + INTEGER :: H5VL_LINK_DELETE_F + INTEGER :: H5VL_LINK_EXISTS_F + INTEGER :: H5VL_LINK_ITER_F + INTEGER :: H5VL_REF_GET_NAME_F + INTEGER :: H5VL_REF_GET_REGION_F + INTEGER :: H5VL_REF_GET_TYPE_F + INTEGER :: H5VL_ID_GET_NAME_F + INTEGER :: H5VL_OBJECT_CHANGE_REF_COUNT_F + INTEGER :: H5VL_OBJECT_EXISTS_F + INTEGER :: H5VL_OBJECT_VISIT_F + INTEGER :: H5VL_REF_CREATE_F + INTEGER :: H5VL_OBJECT_FLUSH_F + INTEGER :: H5VL_OBJECT_REFRESH_F + INTEGER :: H5VL_REQUEST_WAITANY_F + INTEGER :: H5VL_REQUEST_WAITSOME_F + INTEGER :: H5VL_REQUEST_WAITALL_F + INTEGER :: H5VL_OBJECT_BY_SELF_F + INTEGER :: H5VL_OBJECT_BY_NAME_F + INTEGER :: H5VL_OBJECT_BY_IDX_F + INTEGER :: H5VL_OBJECT_BY_ADDR_F + INTEGER :: H5VL_OBJECT_BY_REF_F + + ! ! H5Z flags declaration ! !DEC$if defined(BUILD_HDF5_DLL) diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index 0884eb6..49ffca3 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -528,7 +528,7 @@ H5_FCDLL int_f h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, - int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags, + int_f *h5t_flags, int_f *h5vl_flags, int_f *h5z_flags, int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags); H5_FCDLL int_f h5init1_flags_c(int_f *h5lib_flags); H5_FCDLL int_f h5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum); diff --git a/src/H5VLpublic.h b/src/H5VLpublic.h index b276128..2b055e7 100644 --- a/src/H5VLpublic.h +++ b/src/H5VLpublic.h @@ -360,7 +360,7 @@ typedef int H5VL_class_value_t; /* VOL connector identifier values */ #define H5_VOL_INVALID (-1) /* Invalid ID for VOL connector iD */ -#define H5_VOL_NATIVE 0 /* Native HDF5 file formnat VOL connector */ +#define H5_VOL_NATIVE 0 /* Native HDF5 file format VOL connector */ #define H5_VOL_RESERVED 256 /* VOL connector IDs below this value are reserved for library use */ #define H5_VOL_MAX 65535 /* Maximum VOL connector ID */ -- cgit v0.12 From 96b6f58ac83b39cb7559b39d183d123412b5bc04 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Fri, 7 Dec 2018 12:06:29 -0600 Subject: Implemented VOL APIs and C constants, no tests --- fortran/src/hdf5_fortrandll.def.in | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in index a1a2b56..ebe4fef 100644 --- a/fortran/src/hdf5_fortrandll.def.in +++ b/fortran/src/hdf5_fortrandll.def.in @@ -447,10 +447,14 @@ H5T_mp_H5TCONVERT_F H5T_mp_H5TENUM_INSERT_F90 H5T_mp_H5TENUM_INSERT_F03 ; H5VL +H5VL_mp_H5VLREGISTER_CONNECTOR_BY_NAME_F +H5VL_mp_H5VLREGISTER_CONNECTOR_BY_VALUE_F +H5VL_mp_H5VLIS_CONNECTOR_REGISTERED_F +H5VL_mp_H5VLGET_CONNECTOR_ID_F +H5VL_mp_H5VLGET_CONNECTOR_NAME_F +H5VL_mp_H5VLCLOSE_F H5VL_mp_H5VLUNREGISTER_CONNECTOR_F -;H5VL_mp_H5VLCLOSE_F -;H5VL_mp_H5VLINITIALIZE_F -;H5VL_mp_H5VLTERMINATE_F +H5VL_mp_H5VLCMP_CONNECTOR_CLS_F ; H5Z H5Z_mp_H5ZUNREGISTER_F H5Z_mp_H5ZFILTER_AVAIL_F -- cgit v0.12 From a21f1d8aef624d4d266f6914099c7ec0a2b52c24 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Fri, 7 Dec 2018 15:25:34 -0600 Subject: added missing files --- fortran/src/H5VLff.F90 | 340 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 fortran/src/H5VLff.F90 diff --git a/fortran/src/H5VLff.F90 b/fortran/src/H5VLff.F90 new file mode 100644 index 0000000..1e0dafb --- /dev/null +++ b/fortran/src/H5VLff.F90 @@ -0,0 +1,340 @@ +!****h* ROBODoc/H5VL +! +! NAME +! MODULE H5VL +! +! PURPOSE +! This file contains Fortran interfaces for H5VL functions. +! +! COPYRIGHT +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! Copyright by The HDF Group. * +! Copyright by the Board of Trustees of the University of Illinois. * +! All rights reserved. * +! * +! This file is part of HDF5. The full HDF5 copyright notice, including * +! terms governing use, modification, and redistribution, is contained in * +! the COPYING file, which can be found at the root of the source code * +! distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * +! If you do not have access to either file, you may request a copy from * +! help@hdfgroup.org. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! NOTES +! _____ __ __ _____ ____ _____ _______ _ _ _______ +! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| +! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** +! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** +! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** +! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| +! +! If you add a new H5VL function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5VL + + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_FUNPTR, C_CHAR, C_INT64_T, C_INT + USE H5GLOBAL + USE H5fortkit + + IMPLICIT NONE + +CONTAINS + +! H5VLregister_connector + +! +!****s* H5VL/H5VLregister_connector_by_name_f +! +! NAME +! H5VLregister_connector_by_name_f +! +! PURPOSE +! Registers a new VOL connector as a member of the virtual object +! layer class by name. +! +! INPUTS +! cls - +! OUTPUTS +! vol_id - +! hdferr - Returns 0 if successful and -1 if fails +! SOURCE + + SUBROUTINE H5VLregister_connector_by_name_f(name, vol_id, hdferr, vipl_id) + IMPLICIT NONE + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(HID_T), INTENT(OUT) :: vol_id + INTEGER, INTENT(OUT) :: hdferr + INTEGER(HID_T), OPTIONAL, INTENT(IN) :: vipl_id +!***** + CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name + INTEGER(HID_T) :: vipl_id_default + + + INTERFACE + INTEGER(HID_T) FUNCTION H5VLregister_connector_by_name(name, vipl_id) BIND(C,NAME='H5VLregister_connector_by_name') + IMPORT :: C_CHAR + IMPORT :: HID_T + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + INTEGER(HID_T), INTENT(IN), VALUE :: vipl_id + END FUNCTION H5VLregister_connector_by_name + END INTERFACE + + vipl_id_default = H5P_DEFAULT_F + IF(PRESENT(vipl_id)) vipl_id_default = vipl_id + + c_name = TRIM(name)//C_NULL_CHAR + vol_id = H5VLregister_connector_by_name(c_name, vipl_id_default) + + hdferr = 0 + IF(vol_id.LT.0) hdferr = H5I_INVALID_HID_F + + END SUBROUTINE H5VLregister_connector_by_name_f + + SUBROUTINE H5VLregister_connector_by_value_f(connector_value, vol_id, hdferr, vipl_id) + IMPLICIT NONE + INTEGER :: connector_value + INTEGER(HID_T), INTENT(OUT) :: vol_id + INTEGER, INTENT(OUT) :: hdferr + INTEGER(HID_T), OPTIONAL, INTENT(IN) :: vipl_id +!***** + INTEGER(HID_T) :: vipl_id_default + + INTERFACE + INTEGER(HID_T) FUNCTION H5VLregister_connector_by_value(connector_value, vipl_id) & + BIND(C,NAME='H5VLregister_connector_by_value') + IMPORT :: HID_T + IMPORT :: C_INT + INTEGER(C_INT) :: connector_value + INTEGER(HID_T), INTENT(IN), VALUE :: vipl_id + END FUNCTION H5VLregister_connector_by_value + END INTERFACE + + + vipl_id_default = H5P_DEFAULT_F + IF(PRESENT(vipl_id)) vipl_id_default = vipl_id + + vol_id = H5VLregister_connector_by_value(INT(connector_value,C_INT), vipl_id_default) + + hdferr = 0 + IF(vol_id.LT.0) hdferr = H5I_INVALID_HID_F + + END SUBROUTINE H5VLregister_connector_by_value_f + +! +!****s* H5VL/H5VLis_connector_registered_f +! +! NAME +! H5VLis_connector_registered_f +! +! PURPOSE +! Tests whether a VOL class has been registered or not. +! +! INPUTS +! cls - +! OUTPUTS +! vol_id - +! hdferr - Returns 0 if successful and -1 if fails +! SOURCE + + SUBROUTINE H5VLis_connector_registered_f(name, registered, hdferr) + IMPLICIT NONE + CHARACTER(LEN=*), INTENT(IN) :: name + LOGICAL, INTENT(OUT) :: registered + INTEGER, INTENT(OUT) :: hdferr +!***** + CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name + INTEGER(C_INT) :: registered_c + + INTERFACE + INTEGER(C_INT) FUNCTION H5VLis_connector_registered(name) BIND(C,NAME='H5VLis_connector_registered') + IMPORT :: C_CHAR + IMPORT :: C_INT + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + END FUNCTION H5VLis_connector_registered + END INTERFACE + + c_name = TRIM(name)//C_NULL_CHAR + registered_c = H5VLis_connector_registered(c_name) + + hdferr = 0 + registered = .FALSE. + IF(registered_c .GT. 0) registered = .TRUE. + IF(registered_c .LT. 0) hdferr = INT(registered_c) + + END SUBROUTINE H5VLis_connector_registered_f + +! +!****s* H5VL/H5VLis_connector_registered_f +! +! NAME +! H5VLis_connector_registered_f +! +! PURPOSE +! Tests whether a VOL class has been registered or not. +! +! INPUTS +! cls - +! OUTPUTS +! vol_id - +! hdferr - Returns 0 if successful and -1 if fails +! SOURCE + + SUBROUTINE H5VLget_connector_id_f(name, vol_id, hdferr) + IMPLICIT NONE + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(HID_T), INTENT(OUT) :: vol_id + INTEGER, INTENT(OUT) :: hdferr +!***** + CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name + + INTERFACE + INTEGER(HID_T) FUNCTION H5VLget_connector_id(name) BIND(C,NAME='H5VLget_connector_id') + IMPORT :: C_CHAR + IMPORT :: HID_T + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + END FUNCTION H5VLget_connector_id + END INTERFACE + + c_name = TRIM(name)//C_NULL_CHAR + vol_id = H5VLget_connector_id(c_name) + + hdferr = 0 + IF(vol_id.LT.0) hdferr = H5I_INVALID_HID_F + + END SUBROUTINE H5VLget_connector_id_f + + SUBROUTINE H5VLget_connector_name_f(obj_id, name, hdferr, name_len) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(OUT) :: name + INTEGER, INTENT(OUT) :: hdferr + INTEGER(SIZE_T), OPTIONAL :: name_len +!***** + CHARACTER(LEN=1,KIND=C_CHAR), DIMENSION(1:LEN(name)+1), TARGET :: c_name + TYPE(C_PTR) :: f_ptr + + INTERFACE + INTEGER(SIZE_T) FUNCTION H5VLget_connector_name(obj_id, name, size) BIND(C,NAME='H5VLget_connector_name') + IMPORT :: HID_T, SIZE_T, C_PTR + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN), VALUE :: obj_id + TYPE(C_PTR), VALUE :: name + INTEGER(SIZE_T), INTENT(IN), VALUE :: size + END FUNCTION H5VLget_connector_name + END INTERFACE + + hdferr = 0 + IF(PRESENT(name_len))THEN + name_len = INT(H5VLget_connector_name(obj_id, C_NULL_PTR, 0_SIZE_T), SIZE_T) + IF(name_len.LT.0) hdferr = H5I_INVALID_HID_F + ELSE + f_ptr = C_LOC(c_name(1)(1:1)) + + IF(INT(H5VLget_connector_name(obj_id, f_ptr, INT(LEN(name)+1,SIZE_T)), SIZE_T).LT.0)THEN + hdferr = H5I_INVALID_HID_F + ELSE + CALL HD5c2fstring(name,c_name,LEN(name)) + ENDIF + ENDIF + + END SUBROUTINE H5VLget_connector_name_f + +! +! +!****s* H5VL/H5VLclose_f +! +! NAME +! H5VLclose_f +! +! PURPOSE +! Closes a VOL connector ID. +! +! INPUTS +! plugin_id - A valid identifier of the connectory to unregister. +! +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! SOURCE + + SUBROUTINE H5VLclose_f(vol_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: vol_id + INTEGER, INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION H5VLclose(vol_id) BIND(C, NAME='H5VLclose') + IMPORT :: HID_T + INTEGER(HID_T), INTENT(IN), VALUE :: vol_id + END FUNCTION H5VLclose + END INTERFACE + + hdferr = INT(H5VLclose(vol_id)) + + END SUBROUTINE H5VLclose_f + +! +!****s* H5VL/H5VLunregister_connector_f +! +! NAME +! H5VLunregister_connector_f +! +! PURPOSE +! Removes a VOL connector ID from the library. +! +! INPUTS +! plugin_id - A valid identifier of the connector to unregister. +! +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! SOURCE + + SUBROUTINE H5VLunregister_connector_f(plugin_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: plugin_id + INTEGER, INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION H5VLunregister_connector(plugin_id) BIND(C, NAME='H5VLunregister_connector') + IMPORT :: HID_T + INTEGER(HID_T), INTENT(IN), VALUE :: plugin_id + END FUNCTION H5VLunregister_connector + END INTERFACE + + hdferr = INT(H5VLunregister_connector(plugin_id)) + + END SUBROUTINE H5VLunregister_connector_f + +! H5VLcmp_connector_cls + + SUBROUTINE H5VLcmp_connector_cls_f(cmp, connector_id1, connector_id2, hdferr) + IMPLICIT NONE + INTEGER, INTENT(OUT), TARGET :: cmp + INTEGER(HID_T), INTENT(IN) :: connector_id1 + INTEGER(HID_T), INTENT(IN) :: connector_id2 + INTEGER, INTENT(OUT) :: hdferr +!***** + + INTEGER(C_INT) :: cmp_c + + INTERFACE + INTEGER FUNCTION H5VLcmp_connector_cls(cmp, connector_id1, connector_id2) BIND(C, NAME='H5VLcmp_connector_cls') + IMPORT :: HID_T + IMPORT :: C_INT + INTEGER(C_INT) :: cmp + INTEGER(HID_T), INTENT(IN), VALUE :: connector_id1 + INTEGER(HID_T), INTENT(IN), VALUE :: connector_id2 + END FUNCTION H5VLcmp_connector_cls + END INTERFACE + + hdferr = INT(H5VLcmp_connector_cls(cmp_c, connector_id1, connector_id2)) + cmp = INT(cmp_c) + + END SUBROUTINE H5VLcmp_connector_cls_f + +END MODULE H5VL -- cgit v0.12 From 7c927a35902d50a03088c56efb9e0ad773500d02 Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Mon, 11 Mar 2019 11:32:49 -0500 Subject: added more tests --- fortran/src/H5VLff.F90 | 42 +++++++++++++++++++++---------- fortran/src/H5_f.c | 63 +++++++++++++++++++++++----------------------- fortran/src/H5_ff.F90 | 65 ++++++++++++++++++++++++------------------------ fortran/src/HDF5.F90 | 1 + fortran/test/Makefile.am | 24 ++++++++++++++++++ 5 files changed, 117 insertions(+), 78 deletions(-) diff --git a/fortran/src/H5VLff.F90 b/fortran/src/H5VLff.F90 index 1e0dafb..5185c22 100644 --- a/fortran/src/H5VLff.F90 +++ b/fortran/src/H5VLff.F90 @@ -96,7 +96,7 @@ CONTAINS SUBROUTINE H5VLregister_connector_by_value_f(connector_value, vol_id, hdferr, vipl_id) IMPLICIT NONE - INTEGER :: connector_value + INTEGER, INTENT(IN) :: connector_value INTEGER(HID_T), INTENT(OUT) :: vol_id INTEGER, INTENT(OUT) :: hdferr INTEGER(HID_T), OPTIONAL, INTENT(IN) :: vipl_id @@ -108,7 +108,7 @@ CONTAINS BIND(C,NAME='H5VLregister_connector_by_value') IMPORT :: HID_T IMPORT :: C_INT - INTEGER(C_INT) :: connector_value + INTEGER(C_INT), VALUE :: connector_value INTEGER(HID_T), INTENT(IN), VALUE :: vipl_id END FUNCTION H5VLregister_connector_by_value END INTERFACE @@ -174,7 +174,7 @@ CONTAINS ! H5VLis_connector_registered_f ! ! PURPOSE -! Tests whether a VOL class has been registered or not. +! Retrieves the ID for a registered VOL connector. ! ! INPUTS ! cls - @@ -202,8 +202,10 @@ CONTAINS c_name = TRIM(name)//C_NULL_CHAR vol_id = H5VLget_connector_id(c_name) - hdferr = 0 - IF(vol_id.LT.0) hdferr = H5I_INVALID_HID_F + IF(vol_id.LT.0)THEN + hdferr = -1 + vol_id = H5I_INVALID_HID_F + ENDIF END SUBROUTINE H5VLget_connector_id_f @@ -215,29 +217,34 @@ CONTAINS INTEGER(SIZE_T), OPTIONAL :: name_len !***** CHARACTER(LEN=1,KIND=C_CHAR), DIMENSION(1:LEN(name)+1), TARGET :: c_name + INTEGER(SIZE_T) :: l TYPE(C_PTR) :: f_ptr INTERFACE INTEGER(SIZE_T) FUNCTION H5VLget_connector_name(obj_id, name, size) BIND(C,NAME='H5VLget_connector_name') - IMPORT :: HID_T, SIZE_T, C_PTR + IMPORT :: HID_T, SIZE_T, C_PTR, C_CHAR IMPLICIT NONE INTEGER(HID_T) , INTENT(IN), VALUE :: obj_id - TYPE(C_PTR), VALUE :: name + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + ! TYPE(C_PTR), value :: name INTEGER(SIZE_T), INTENT(IN), VALUE :: size END FUNCTION H5VLget_connector_name END INTERFACE hdferr = 0 IF(PRESENT(name_len))THEN - name_len = INT(H5VLget_connector_name(obj_id, C_NULL_PTR, 0_SIZE_T), SIZE_T) + name_len = INT(H5VLget_connector_name(obj_id, c_name, 0_SIZE_T), SIZE_T) IF(name_len.LT.0) hdferr = H5I_INVALID_HID_F ELSE - f_ptr = C_LOC(c_name(1)(1:1)) - - IF(INT(H5VLget_connector_name(obj_id, f_ptr, INT(LEN(name)+1,SIZE_T)), SIZE_T).LT.0)THEN + ! f_ptr = C_LOC(c_name(1)(1:1)) + PRINT*,LEN(name)+1 + l = INT(LEN(name)+1,SIZE_T) + IF(INT(H5VLget_connector_name(obj_id, c_name, l), SIZE_T).LT.0)THEN hdferr = H5I_INVALID_HID_F ELSE + PRINT*,c_name CALL HD5c2fstring(name,c_name,LEN(name)) + PRINT*,"name", name ENDIF ENDIF @@ -310,8 +317,17 @@ CONTAINS END SUBROUTINE H5VLunregister_connector_f -! H5VLcmp_connector_cls - + !--------------------------------------------------------------------------- + ! Function: H5VLcmp_connector_cls_f + ! + ! Purpose: Compares two connector classes (based on their value field) + ! + ! Return: Success: Non-negative, *cmp set to a value like strcmp + ! + ! Failure: Negative, *cmp unset + ! + !--------------------------------------------------------------------------- + SUBROUTINE H5VLcmp_connector_cls_f(cmp, connector_id1, connector_id2, hdferr) IMPLICIT NONE INTEGER, INTENT(OUT), TARGET :: cmp diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index bd8998e..fdf4b9e 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -720,38 +720,37 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5vl_flags[32] = (int_f)H5VL_FILE_MOUNT; h5vl_flags[33] = (int_f)H5VL_FILE_UNMOUNT; h5vl_flags[34] = (int_f)H5VL_FILE_IS_ACCESSIBLE; - h5vl_flags[35] = (int_f)H5VL_FILE_CACHE_VOL_CONN; - h5vl_flags[36] = (int_f)H5VL_GROUP_GET_GCPL; - h5vl_flags[37] = (int_f)H5VL_GROUP_GET_INFO; - h5vl_flags[38] = (int_f)H5VL_GROUP_FLUSH; - h5vl_flags[39] = (int_f)H5VL_GROUP_REFRESH; - h5vl_flags[40] = (int_f)H5VL_LINK_CREATE_HARD; - h5vl_flags[41] = (int_f)H5VL_LINK_CREATE_SOFT; - h5vl_flags[42] = (int_f)H5VL_LINK_CREATE_UD; - h5vl_flags[43] = (int_f)H5VL_LINK_GET_INFO; - h5vl_flags[44] = (int_f)H5VL_LINK_GET_NAME; - h5vl_flags[45] = (int_f)H5VL_LINK_GET_VAL; - h5vl_flags[46] = (int_f)H5VL_LINK_DELETE; - h5vl_flags[47] = (int_f)H5VL_LINK_EXISTS; - h5vl_flags[48] = (int_f)H5VL_LINK_ITER; - h5vl_flags[49] = (int_f)H5VL_REF_GET_NAME; - h5vl_flags[50] = (int_f)H5VL_REF_GET_REGION; - h5vl_flags[51] = (int_f)H5VL_REF_GET_TYPE; - h5vl_flags[52] = (int_f)H5VL_ID_GET_NAME; - h5vl_flags[53] = (int_f)H5VL_OBJECT_CHANGE_REF_COUNT; - h5vl_flags[54] = (int_f)H5VL_OBJECT_EXISTS; - h5vl_flags[55] = (int_f)H5VL_OBJECT_VISIT; - h5vl_flags[56] = (int_f)H5VL_REF_CREATE; - h5vl_flags[57] = (int_f)H5VL_OBJECT_FLUSH; - h5vl_flags[58] = (int_f)H5VL_OBJECT_REFRESH; - h5vl_flags[59] = (int_f)H5VL_REQUEST_WAITANY; - h5vl_flags[60] = (int_f)H5VL_REQUEST_WAITSOME; - h5vl_flags[61] = (int_f)H5VL_REQUEST_WAITALL; - h5vl_flags[62] = (int_f)H5VL_OBJECT_BY_SELF; - h5vl_flags[63] = (int_f)H5VL_OBJECT_BY_NAME; - h5vl_flags[64] = (int_f)H5VL_OBJECT_BY_IDX; - h5vl_flags[65] = (int_f)H5VL_OBJECT_BY_ADDR; - h5vl_flags[66] = (int_f)H5VL_OBJECT_BY_REF; + h5vl_flags[35] = (int_f)H5VL_GROUP_GET_GCPL; + h5vl_flags[36] = (int_f)H5VL_GROUP_GET_INFO; + h5vl_flags[37] = (int_f)H5VL_GROUP_FLUSH; + h5vl_flags[38] = (int_f)H5VL_GROUP_REFRESH; + h5vl_flags[39] = (int_f)H5VL_LINK_CREATE_HARD; + h5vl_flags[40] = (int_f)H5VL_LINK_CREATE_SOFT; + h5vl_flags[41] = (int_f)H5VL_LINK_CREATE_UD; + h5vl_flags[42] = (int_f)H5VL_LINK_GET_INFO; + h5vl_flags[43] = (int_f)H5VL_LINK_GET_NAME; + h5vl_flags[44] = (int_f)H5VL_LINK_GET_VAL; + h5vl_flags[45] = (int_f)H5VL_LINK_DELETE; + h5vl_flags[46] = (int_f)H5VL_LINK_EXISTS; + h5vl_flags[47] = (int_f)H5VL_LINK_ITER; + h5vl_flags[48] = (int_f)H5VL_REF_GET_NAME; + h5vl_flags[49] = (int_f)H5VL_REF_GET_REGION; + h5vl_flags[50] = (int_f)H5VL_REF_GET_TYPE; + h5vl_flags[51] = (int_f)H5VL_ID_GET_NAME; + h5vl_flags[52] = (int_f)H5VL_OBJECT_CHANGE_REF_COUNT; + h5vl_flags[53] = (int_f)H5VL_OBJECT_EXISTS; + h5vl_flags[54] = (int_f)H5VL_OBJECT_VISIT; + h5vl_flags[55] = (int_f)H5VL_REF_CREATE; + h5vl_flags[56] = (int_f)H5VL_OBJECT_FLUSH; + h5vl_flags[57] = (int_f)H5VL_OBJECT_REFRESH; + h5vl_flags[58] = (int_f)H5VL_REQUEST_WAITANY; + h5vl_flags[59] = (int_f)H5VL_REQUEST_WAITSOME; + h5vl_flags[60] = (int_f)H5VL_REQUEST_WAITALL; + h5vl_flags[61] = (int_f)H5VL_OBJECT_BY_SELF; + h5vl_flags[62] = (int_f)H5VL_OBJECT_BY_NAME; + h5vl_flags[63] = (int_f)H5VL_OBJECT_BY_IDX; + h5vl_flags[64] = (int_f)H5VL_OBJECT_BY_ADDR; + h5vl_flags[65] = (int_f)H5VL_OBJECT_BY_REF; /* * H5Z flags */ diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90 index 2adc6aa..0d82f42 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.F90 @@ -133,7 +133,7 @@ MODULE H5LIB ! H5VL flags declaration ! - INTEGER, PARAMETER :: H5VL_FLAGS_LEN = 67 + INTEGER, PARAMETER :: H5VL_FLAGS_LEN = 66 INTEGER, DIMENSION(1:H5VL_FLAGS_LEN) :: H5VL_flags ! @@ -647,38 +647,37 @@ CONTAINS H5VL_FILE_MOUNT_F = H5VL_flags(33) H5VL_FILE_UNMOUNT_F = H5VL_flags(34) H5VL_FILE_IS_ACCESSIBLE_F = H5VL_flags(35) - H5VL_FILE_CACHE_VOL_CONN_F = H5VL_flags(36) - H5VL_GROUP_GET_GCPL_F = H5VL_flags(37) - H5VL_GROUP_GET_INFO_F = H5VL_flags(38) - H5VL_GROUP_FLUSH_F = H5VL_flags(39) - H5VL_GROUP_REFRESH_F = H5VL_flags(40) - H5VL_LINK_CREATE_HARD_F = H5VL_flags(41) - H5VL_LINK_CREATE_SOFT_F = H5VL_flags(42) - H5VL_LINK_CREATE_UD_F = H5VL_flags(43) - H5VL_LINK_GET_INFO_F = H5VL_flags(44) - H5VL_LINK_GET_NAME_F = H5VL_flags(45) - H5VL_LINK_GET_VAL_F = H5VL_flags(46) - H5VL_LINK_DELETE_F = H5VL_flags(47) - H5VL_LINK_EXISTS_F = H5VL_flags(48) - H5VL_LINK_ITER_F = H5VL_flags(49) - H5VL_REF_GET_NAME_F = H5VL_flags(50) - H5VL_REF_GET_REGION_F = H5VL_flags(51) - H5VL_REF_GET_TYPE_F = H5VL_flags(52) - H5VL_ID_GET_NAME_F = H5VL_flags(53) - H5VL_OBJECT_CHANGE_REF_COUNT_F = H5VL_flags(54) - H5VL_OBJECT_EXISTS_F = H5VL_flags(55) - H5VL_OBJECT_VISIT_F = H5VL_flags(56) - H5VL_REF_CREATE_F = H5VL_flags(57) - H5VL_OBJECT_FLUSH_F = H5VL_flags(58) - H5VL_OBJECT_REFRESH_F = H5VL_flags(59) - H5VL_REQUEST_WAITANY_F = H5VL_flags(60) - H5VL_REQUEST_WAITSOME_F = H5VL_flags(61) - H5VL_REQUEST_WAITALL_F = H5VL_flags(62) - H5VL_OBJECT_BY_SELF_F = H5VL_flags(63) - H5VL_OBJECT_BY_NAME_F = H5VL_flags(64) - H5VL_OBJECT_BY_IDX_F = H5VL_flags(65) - H5VL_OBJECT_BY_ADDR_F = H5VL_flags(66) - H5VL_OBJECT_BY_REF_F = H5VL_flags(67) + H5VL_GROUP_GET_GCPL_F = H5VL_flags(36) + H5VL_GROUP_GET_INFO_F = H5VL_flags(37) + H5VL_GROUP_FLUSH_F = H5VL_flags(38) + H5VL_GROUP_REFRESH_F = H5VL_flags(39) + H5VL_LINK_CREATE_HARD_F = H5VL_flags(40) + H5VL_LINK_CREATE_SOFT_F = H5VL_flags(41) + H5VL_LINK_CREATE_UD_F = H5VL_flags(42) + H5VL_LINK_GET_INFO_F = H5VL_flags(43) + H5VL_LINK_GET_NAME_F = H5VL_flags(44) + H5VL_LINK_GET_VAL_F = H5VL_flags(45) + H5VL_LINK_DELETE_F = H5VL_flags(46) + H5VL_LINK_EXISTS_F = H5VL_flags(47) + H5VL_LINK_ITER_F = H5VL_flags(48) + H5VL_REF_GET_NAME_F = H5VL_flags(49) + H5VL_REF_GET_REGION_F = H5VL_flags(50) + H5VL_REF_GET_TYPE_F = H5VL_flags(51) + H5VL_ID_GET_NAME_F = H5VL_flags(52) + H5VL_OBJECT_CHANGE_REF_COUNT_F = H5VL_flags(53) + H5VL_OBJECT_EXISTS_F = H5VL_flags(54) + H5VL_OBJECT_VISIT_F = H5VL_flags(55) + H5VL_REF_CREATE_F = H5VL_flags(56) + H5VL_OBJECT_FLUSH_F = H5VL_flags(57) + H5VL_OBJECT_REFRESH_F = H5VL_flags(58) + H5VL_REQUEST_WAITANY_F = H5VL_flags(59) + H5VL_REQUEST_WAITSOME_F = H5VL_flags(60) + H5VL_REQUEST_WAITALL_F = H5VL_flags(61) + H5VL_OBJECT_BY_SELF_F = H5VL_flags(62) + H5VL_OBJECT_BY_NAME_F = H5VL_flags(63) + H5VL_OBJECT_BY_IDX_F = H5VL_flags(64) + H5VL_OBJECT_BY_ADDR_F = H5VL_flags(65) + H5VL_OBJECT_BY_REF_F = H5VL_flags(66) ! ! H5Z flags ! diff --git a/fortran/src/HDF5.F90 b/fortran/src/HDF5.F90 index 0370224..fe38b7d 100644 --- a/fortran/src/HDF5.F90 +++ b/fortran/src/HDF5.F90 @@ -38,6 +38,7 @@ MODULE HDF5 USE H5O USE H5P USE H5R + USE H5VL USE H5Z USE H5_gen USE H5LIB diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am index 8613cf9..ef6cd7e 100644 --- a/fortran/test/Makefile.am +++ b/fortran/test/Makefile.am @@ -30,14 +30,35 @@ noinst_LTLIBRARIES=libh5test_fortran.la # want to build a shared C library and a static Fortran library. If so, # pass the -static flag to the library linker. if FORTRAN_SHARED_CONDITIONAL + TEST_SCRIPT = test_vol_connector.sh + SCRIPT_DEPEND = vol_connector$(EXEEXT) else AM_LDFLAGS+=-static endif +check_SCRIPTS = $(TEST_SCRIPT) + # Our main targets, the tests themselves TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03 check_PROGRAMS=$(TEST_PROG) +if FORTRAN_SHARED_CONDITIONAL + check_PROGRAMS+= vol_connector +endif + +if FORTRAN_SHARED_CONDITIONAL + # The libh5test library provides common support code for the tests. + # The filter_plugin* libraries are for use in filter_plugin.c. + # Build them as shared libraries if that option was enabled in configure. + noinst_LTLIBRARIES += libnull_vol_connector.la + + # VOL plugin test libraries + # + # null_vol_connector is used for testing basic VOL plugin functionality. + libnull_vol_connector_la_SOURCES=null_vol_connector.c + libnull_vol_connector_la_LDFLAGS=$(AM_LDFLAGS) -avoid-version -module -shared -export-dynamic -rpath /nowhere +endif + libh5test_fortran_la_SOURCES = tf_gen.F90 tf.F90 t.c @@ -50,6 +71,7 @@ fortranlib_test_1_8_SOURCES = tH5O.F90 tH5A_1_8.F90 tH5G_1_8.F90 tH5MISC_1_8.F90 fortranlib_test_F03_SOURCES = tH5E_F03.F90 tH5F_F03.F90 tH5L_F03.F90 \ tH5O_F03.F90 tH5P_F03.F90 tH5T_F03.F90 tHDF5_F03.F90 fortranlib_test_F03.F90 +vol_connector_SOURCES=vol_connector.F90 fflush1_SOURCES=fflush1.F90 fflush2_SOURCES=fflush2.F90 @@ -95,6 +117,8 @@ H5_test_buildiface_SOURCES = H5_test_buildiface.F90 H5_test_buildiface_LDADD = +DISTCLEANFILES=test_vol_connector.sh # TODO:CHECK IF WORKS MSB + # fflush2 depends on files created by fflush1 fflush2.chkexe_: fflush1.chkexe_ -- cgit v0.12 From 6682f51a1157dc9e88bd34528fff999aee50ca2a Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Mon, 11 Mar 2019 11:34:10 -0500 Subject: add tests --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 30fe725..e40e3c6 100644 --- a/configure.ac +++ b/configure.ac @@ -3551,6 +3551,7 @@ AC_CONFIG_FILES([src/libhdf5.settings fortran/src/Makefile fortran/src/H5fort_type_defines.h fortran/test/Makefile + fortran/test/test_vol_connector.sh fortran/testpar/Makefile fortran/examples/Makefile fortran/examples/run-fortran-ex.sh -- cgit v0.12 From fc769f425f3b5574eb12522bf4c7bc94f4a236ff Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Wed, 24 Apr 2019 13:59:26 -0500 Subject: added missing files --- fortran/test/null_vol_connector.c | 148 +++++++++++++++++++++++++++ fortran/test/null_vol_connector.h | 25 +++++ fortran/test/test_vol_connector.sh.in | 84 +++++++++++++++ fortran/test/vol_connector.F90 | 187 ++++++++++++++++++++++++++++++++++ 4 files changed, 444 insertions(+) create mode 100644 fortran/test/null_vol_connector.c create mode 100644 fortran/test/null_vol_connector.h create mode 100644 fortran/test/test_vol_connector.sh.in create mode 100644 fortran/test/vol_connector.F90 diff --git a/fortran/test/null_vol_connector.c b/fortran/test/null_vol_connector.c new file mode 100644 index 0000000..00a22b8 --- /dev/null +++ b/fortran/test/null_vol_connector.c @@ -0,0 +1,148 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Purpose: A simple virtual object layer (VOL) connector with almost no + * functionality that is used for testing basic plugin handling + * (registration, etc.). + */ + +#include +#include "H5PLextern.h" + +#include "null_vol_connector.h" + +static void *H5VL_file_create(const char *name); +static herr_t H5VL_file_close(void *file); + +/* The VOL class struct */ +static const H5VL_class_t null_vol_g = { + 0, /* version */ + NULL_VOL_CONNECTOR_VALUE, /* value */ + NULL_VOL_CONNECTOR_NAME, /* name */ + 0, /* capability flags */ + NULL, /* initialize */ + NULL, /* terminate */ + (size_t)0, /* info size */ + NULL, /* info copy */ + NULL, /* info compare */ + NULL, /* info free */ + NULL, /* info to str */ + NULL, /* str to info */ + NULL, /* get_object */ + NULL, /* get_wrap_ctx */ + NULL, /* wrap_object */ + NULL, /* free_wrap_ctx */ + { /* attribute_cls */ + NULL, /* create */ + NULL, /* open */ + NULL, /* read */ + NULL, /* write */ + NULL, /* get */ + NULL, /* specific */ + NULL, /* optional */ + NULL /* close */ + }, + { /* dataset_cls */ + NULL, /* create */ + NULL, /* open */ + NULL, /* read */ + NULL, /* write */ + NULL, /* get */ + NULL, /* specific */ + NULL, /* optional */ + NULL /* close */ + }, + { /* datatype_cls */ + NULL, /* commit */ + NULL, /* open */ + NULL, /* get_size */ + NULL, /* specific */ + NULL, /* optional */ + NULL /* close */ + }, + { /* file_cls */ + H5VL_file_create, /* create */ + NULL, /* open */ + NULL, /* get */ + NULL, /* specific */ + NULL, /* optional */ + H5VL_file_close /* close */ + }, + { /* group_cls */ + NULL, /* create */ + NULL, /* open */ + NULL, /* get */ + NULL, /* specific */ + NULL, /* optional */ + NULL /* close */ + }, + { /* link_cls */ + NULL, /* create */ + NULL, /* copy */ + NULL, /* move */ + NULL, /* get */ + NULL, /* specific */ + NULL /* optional */ + }, + { /* object_cls */ + NULL, /* open */ + NULL, /* copy */ + NULL, /* get */ + NULL, /* specific */ + NULL /* optional */ + }, + { /* request_cls */ + NULL, /* wait */ + NULL, /* notify */ + NULL, /* cancel */ + NULL, /* specific */ + NULL, /* optional */ + NULL /* free */ + }, + NULL /* optional */ +}; + +typedef struct H5VL_t { + void *under_object; +} H5VL_t; + +/* These two functions are necessary to load this plugin using + * the HDF5 library. + */ + +H5PL_type_t H5PLget_plugin_type(void) {return H5PL_TYPE_VOL;} +const void *H5PLget_plugin_info(void) {return &null_vol_g;} + +static void * +H5VL_file_create(const char *name) +{ + hid_t under_fapl; + H5VL_t *file; + + file = (H5VL_t *)calloc(1, sizeof(H5VL_t)); + + file->under_object = fopen(name, "w"); + + return (void *)file; +} + +static herr_t +H5VL_file_close(void *file) +{ + H5VL_t *f = (H5VL_t *)file; + + fclose(f->under_object); + free(f); + + return 1; +} + diff --git a/fortran/test/null_vol_connector.h b/fortran/test/null_vol_connector.h new file mode 100644 index 0000000..11c8826 --- /dev/null +++ b/fortran/test/null_vol_connector.h @@ -0,0 +1,25 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Purpose: A simple virtual object layer (VOL) connector with almost no + * functionality that is used for testing basic plugin handling + * (registration, etc.). + */ + +#ifndef _null_vol_connector_H +#define _null_vol_connector_H + +#define NULL_VOL_CONNECTOR_VALUE ((H5VL_class_value_t)160) +#define NULL_VOL_CONNECTOR_NAME "null_vol_connector" + +#endif /* _null_vol_connector_H */ + diff --git a/fortran/test/test_vol_connector.sh.in b/fortran/test/test_vol_connector.sh.in new file mode 100644 index 0000000..ee27f3b --- /dev/null +++ b/fortran/test/test_vol_connector.sh.in @@ -0,0 +1,84 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# This shell script is for testing VOL connector plugins. +# +srcdir=@srcdir@ +TOP_BUILDDIR=@top_builddir@ + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +nerrors=0 +verbose=yes +exit_code=$EXIT_SUCCESS + +TEST_NAME=vol_connector +TEST_BIN=`pwd`/$TEST_NAME +FROM_DIR=`pwd`/.libs +case $(uname) in + CYGWIN* ) + NULL_VOL_PLUGIN="$FROM_DIR/cygnull_vol_connector*" + ;; + *) + NULL_VOL_PLUGIN="$FROM_DIR/libnull_vol_connector*" + ;; +esac +TEMP_PLUGIN_DIR=null_vol_plugin_dir +CP="cp -p -r" # Use -p to preserve mode,ownership, timestamps +RM="rm -rf" + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# Main Body +# Create test directory if necessary. +test -d $TEMP_PLUGIN_DIR || mkdir -p $TEMP_PLUGIN_DIR +if [ $? != 0 ]; then + echo "Failed to create VOL connector plugin test directory ($TEMP_PLUGIN_DIR)" + exit $EXIT_FAILURE +fi + +# Copy plugin for the tests. +$CP $NULL_VOL_PLUGIN $TEMP_PLUGIN_DIR +if [ $? != 0 ]; then + echo "Failed to copy NULL VOL plugin ($NULL_VOL_PLUGIN) to test directory." + exit $EXIT_FAILURE +fi + +# setup plugin path +ENVCMD="env HDF5_PLUGIN_PATH=${TEMP_PLUGIN_DIR}" + +# Run the test +$ENVCMD $TEST_BIN +if [ $? != 0 ]; then + nerrors=`expr $nerrors + 1` +fi + +# print results +if test $nerrors -ne 0 ; then + echo "$nerrors errors encountered" + exit_code=$EXIT_FAILURE +else + echo "All VOL plugin tests passed." + exit_code=$EXIT_SUCCESS +fi + +# Clean up temporary files/directories and leave +#$RM $TEMP_PLUGIN_DIR + +exit $exit_code diff --git a/fortran/test/vol_connector.F90 b/fortran/test/vol_connector.F90 new file mode 100644 index 0000000..8d3653c --- /dev/null +++ b/fortran/test/vol_connector.F90 @@ -0,0 +1,187 @@ +!****h* root/fortran/test/vol_connector.F90 +! +! NAME +! vol_connector.F90 +! +! FUNCTION +! +! Tests basic Fortran VOL plugin operations (registration, etc.). +! Uses the null VOL connector (built with the testing code) +! which is loaded as a dynamic plugin. +! +! COPYRIGHT +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! Copyright by The HDF Group. * +! Copyright by the Board of Trustees of the University of Illinois. * +! All rights reserved. * +! * +! This file is part of HDF5. The full HDF5 copyright notice, including * +! terms governing use, modification, and redistribution, is contained in * +! the COPYING file, which can be found at the root of the source code * +! distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * +! If you do not have access to either file, you may request a copy from * +! help@hdfgroup.org. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +!***** + +MODULE VOL_TMOD + + USE HDF5 + USE THDF5_F03 + IMPLICIT NONE + + + INTEGER, PARAMETER :: NULL_VOL_CONNECTOR_VALUE = 160 + CHARACTER(LEN=18), PARAMETER :: NULL_VOL_CONNECTOR_NAME = "null_vol_connector" + +CONTAINS + + !------------------------------------------------------------------------- + ! Function: test_registration_by_name() + ! + ! Purpose: Tests if we can load, register, and close a VOL + ! connector by name. + ! + !------------------------------------------------------------------------- + ! + + SUBROUTINE test_registration_by_name(total_error) + + IMPLICIT NONE + + INTEGER, INTENT(INOUT) :: total_error + INTEGER :: error = 0 + + LOGICAL :: is_registered = .FALSE. + INTEGER(hid_t) :: vol_id = 0, vol_id_out = 1 + CHARACTER(LEN=64) :: name + INTEGER(SIZE_T) :: name_len + INTEGER :: cmp = -1 + CHARACTER(LEN=12) :: filename = "h5null.posix" + INTEGER(HID_T) :: file_id + + ! The null VOL connector should not be registered at the start of the test + CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) + + ! Register the connector by name + CALL H5VLregister_connector_by_name_f(NULL_VOL_CONNECTOR_NAME, vol_id, error) + CALL check("H5VLregister_connector_by_name_f",error,total_error) + + ! The connector should be registered now + CALL H5VLis_connector_registered_f(NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error) + + CALL H5VLget_connector_id_f(NULL_VOL_CONNECTOR_NAME, vol_id_out, error) + CALL check("H5VLget_connector_id_f",error,total_error) + + CALL H5VLcmp_connector_cls_f( cmp, vol_id_out, vol_id, error) + CALL check("H5VLcmp_connector_cls_f",error, total_error) + CALL VERIFY("H5VLcmp_connector_cls_f", cmp, 0, total_error) + + CALL H5VLclose_f(vol_id_out, error) + + ! Unregister the connector + CALL H5VLunregister_connector_f(vol_id, error) + CALL check("H5VLunregister_connector_f", error, total_error) + + ! The connector should not be registered now + CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) + + END SUBROUTINE test_registration_by_name + + !------------------------------------------------------------------------- + ! Function: test_registration_by_value() + ! + ! Purpose: Tests if we can load, register, and close a VOL + ! connector by value. + ! + !------------------------------------------------------------------------- + + SUBROUTINE test_registration_by_value(total_error) + + IMPLICIT NONE + + INTEGER, INTENT(INOUT) :: total_error + INTEGER :: error = 0 + + LOGICAL :: is_registered = .FALSE. + INTEGER(hid_t) :: vol_id = 0 + + + ! The null VOL connector should not be registered at the start of the test + CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) + + ! Register the connector by value + CALL H5VLregister_connector_by_value_f(NULL_VOL_CONNECTOR_VALUE, vol_id, error) + CALL check("H5VLregister_connector_by_value_f", error, total_error) + + ! The connector should be registered now + CALL H5VLis_connector_registered_f(NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error) + + ! Unregister the connector + CALL H5VLunregister_connector_f(vol_id, error) + CALL check("H5VLunregister_connector_f", error, total_error) + + ! The connector should not be registered now + CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) + + END SUBROUTINE test_registration_by_value + +END MODULE VOL_TMOD + + +PROGRAM vol_connector + + USE HDF5 + USE THDF5_F03 + USE VOL_TMOD + + IMPLICIT NONE + INTEGER :: total_error = 0 + INTEGER :: error + INTEGER :: ret_total_error + LOGICAL :: cleanup, status + + CALL h5open_f(error) + + cleanup = .TRUE. + CALL h5_env_nocleanup_f(status) + IF(status) cleanup=.FALSE. + + WRITE(*,'(18X,A)') '==============================' + WRITE(*,'(24X,A)') 'FORTRAN VOL tests' + WRITE(*,'(18X,A)') '==============================' + + WRITE(*,'(A)') "Testing VOL connector plugin functionality." + ret_total_error = 0 + CALL test_registration_by_name(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing VOL registration by name', total_error) + + ret_total_error = 0 + CALL test_registration_by_value(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing VOL registration by value', total_error) + + WRITE(*, fmt = '(/18X,A)') '============================================' + WRITE(*, fmt = '(19X, A)', advance='NO') ' FORTRAN VOL tests completed with ' + WRITE(*, fmt = '(I4)', advance='NO') total_error + WRITE(*, fmt = '(A)' ) ' error(s) ! ' + WRITE(*,'(18X,A)') '============================================' + + CALL h5close_f(error) + + ! if errors detected, exit with non-zero code. + IF (total_error .NE. 0) CALL h5_exit_f(1) + +END PROGRAM vol_connector -- cgit v0.12 From 1d6641ee3af65bdbe5e0f1f8fa56be8ea52dd5d7 Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Wed, 24 Apr 2019 15:17:10 -0500 Subject: added connector_name test --- fortran/src/H5VLff.F90 | 2 +- fortran/test/vol_connector.F90 | 12 ++++++++++-- test/vol_plugin.c | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/fortran/src/H5VLff.F90 b/fortran/src/H5VLff.F90 index 5185c22..e3469fb 100644 --- a/fortran/src/H5VLff.F90 +++ b/fortran/src/H5VLff.F90 @@ -242,7 +242,7 @@ CONTAINS IF(INT(H5VLget_connector_name(obj_id, c_name, l), SIZE_T).LT.0)THEN hdferr = H5I_INVALID_HID_F ELSE - PRINT*,c_name + PRINT*,"C_NAME", c_name CALL HD5c2fstring(name,c_name,LEN(name)) PRINT*,"name", name ENDIF diff --git a/fortran/test/vol_connector.F90 b/fortran/test/vol_connector.F90 index 8d3653c..7810c97 100644 --- a/fortran/test/vol_connector.F90 +++ b/fortran/test/vol_connector.F90 @@ -58,8 +58,8 @@ CONTAINS CHARACTER(LEN=64) :: name INTEGER(SIZE_T) :: name_len INTEGER :: cmp = -1 - CHARACTER(LEN=12) :: filename = "h5null.posix" - INTEGER(HID_T) :: file_id +! CHARACTER(LEN=12) :: filename = "h5null.posix" +! INTEGER(HID_T) :: file_id ! The null VOL connector should not be registered at the start of the test CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) @@ -78,6 +78,14 @@ CONTAINS CALL H5VLget_connector_id_f(NULL_VOL_CONNECTOR_NAME, vol_id_out, error) CALL check("H5VLget_connector_id_f",error,total_error) + PRINT*,vol_id_out + + CALL H5VLget_connector_name_f(vol_id_out, name, error, name_len) + CALL check("H5VLget_connector_name_f",error,total_error) + + ! CALL H5VLget_connector_name_f(vol_id_out, name, error) + ! CALL check("H5VLget_connector_name_f",error,total_error) + CALL H5VLcmp_connector_cls_f( cmp, vol_id_out, vol_id, error) CALL check("H5VLcmp_connector_cls_f",error, total_error) CALL VERIFY("H5VLcmp_connector_cls_f", cmp, 0, total_error) diff --git a/test/vol_plugin.c b/test/vol_plugin.c index 236a67e..73918ff 100644 --- a/test/vol_plugin.c +++ b/test/vol_plugin.c @@ -219,6 +219,8 @@ test_getters(void) htri_t is_registered = FAIL; hid_t vol_id = H5I_INVALID_HID; hid_t vol_id_out = H5I_INVALID_HID; + char name[64]; + size_t size = 0; TESTING("VOL getters"); @@ -238,6 +240,12 @@ test_getters(void) if(vol_id != vol_id_out) FAIL_PUTS_ERROR("VOL connector IDs don't match"); + if((vol_id_out = H5VLget_connector_name(vol_id_out, name, size)) < 0) + TEST_ERROR; + + printf("%s %ld \n", name, size); + + /* Unregister the connector */ if(H5VLunregister_connector(vol_id) < 0) TEST_ERROR; -- cgit v0.12 From 32c4900e89d845f0490bdbabddd2aab9c42165de Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Thu, 16 May 2019 15:05:12 -0500 Subject: removed VOLL NULL connector and replaced it with native VOL --- MANIFEST | 2 +- fortran/src/H5VLff.F90 | 61 +++++++------------------------------- fortran/src/hdf5_fortrandll.def.in | 1 - fortran/test/Makefile.am | 23 +------------- fortran/test/null_vol_connector.c | 2 ++ fortran/test/vol_connector.F90 | 49 +++++++++++++----------------- test/vol_plugin.c | 5 ++++ 7 files changed, 39 insertions(+), 104 deletions(-) diff --git a/MANIFEST b/MANIFEST index 9750c49..a50859a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -265,8 +265,8 @@ ./fortran/src/h5fc.in ./fortran/src/hdf5_fortrandll.def.in - ./fortran/test/Makefile.am +./fortran/test/vol_connector.F90 ./fortran/test/fflush1.F90 ./fortran/test/fflush2.F90 ./fortran/test/fortranlib_test.F90 diff --git a/fortran/src/H5VLff.F90 b/fortran/src/H5VLff.F90 index e3469fb..0c5e8fd 100644 --- a/fortran/src/H5VLff.F90 +++ b/fortran/src/H5VLff.F90 @@ -4,7 +4,7 @@ ! MODULE H5VL ! ! PURPOSE -! This file contains Fortran interfaces for H5VL functions. +! This file contains Fortran interfaces for H5VL (VOL) functions. ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -57,9 +57,9 @@ CONTAINS ! layer class by name. ! ! INPUTS -! cls - +! name - Connector name ! OUTPUTS -! vol_id - +! vol_id - VOL id ! hdferr - Returns 0 if successful and -1 if fails ! SOURCE @@ -72,10 +72,10 @@ CONTAINS !***** CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name INTEGER(HID_T) :: vipl_id_default - INTERFACE - INTEGER(HID_T) FUNCTION H5VLregister_connector_by_name(name, vipl_id) BIND(C,NAME='H5VLregister_connector_by_name') + INTEGER(HID_T) FUNCTION H5VLregister_connector_by_name(name, vipl_id) & + BIND(C,NAME='H5VLregister_connector_by_name') IMPORT :: C_CHAR IMPORT :: HID_T CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name @@ -113,7 +113,6 @@ CONTAINS END FUNCTION H5VLregister_connector_by_value END INTERFACE - vipl_id_default = H5P_DEFAULT_F IF(PRESENT(vipl_id)) vipl_id_default = vipl_id @@ -134,9 +133,9 @@ CONTAINS ! Tests whether a VOL class has been registered or not. ! ! INPUTS -! cls - +! name - Connector name ! OUTPUTS -! vol_id - +! registered - state of VOL class registration ! hdferr - Returns 0 if successful and -1 if fails ! SOURCE @@ -177,9 +176,9 @@ CONTAINS ! Retrieves the ID for a registered VOL connector. ! ! INPUTS -! cls - +! name - Connector name ! OUTPUTS -! vol_id - +! vol_id - Connector id ! hdferr - Returns 0 if successful and -1 if fails ! SOURCE @@ -236,15 +235,11 @@ CONTAINS name_len = INT(H5VLget_connector_name(obj_id, c_name, 0_SIZE_T), SIZE_T) IF(name_len.LT.0) hdferr = H5I_INVALID_HID_F ELSE - ! f_ptr = C_LOC(c_name(1)(1:1)) - PRINT*,LEN(name)+1 l = INT(LEN(name)+1,SIZE_T) IF(INT(H5VLget_connector_name(obj_id, c_name, l), SIZE_T).LT.0)THEN hdferr = H5I_INVALID_HID_F ELSE - PRINT*,"C_NAME", c_name CALL HD5c2fstring(name,c_name,LEN(name)) - PRINT*,"name", name ENDIF ENDIF @@ -261,7 +256,7 @@ CONTAINS ! Closes a VOL connector ID. ! ! INPUTS -! plugin_id - A valid identifier of the connectory to unregister. +! vol_id - A valid identifier of the connectory to unregister. ! ! OUTPUTS ! hdferr - Returns 0 if successful and -1 if fails @@ -317,40 +312,4 @@ CONTAINS END SUBROUTINE H5VLunregister_connector_f - !--------------------------------------------------------------------------- - ! Function: H5VLcmp_connector_cls_f - ! - ! Purpose: Compares two connector classes (based on their value field) - ! - ! Return: Success: Non-negative, *cmp set to a value like strcmp - ! - ! Failure: Negative, *cmp unset - ! - !--------------------------------------------------------------------------- - - SUBROUTINE H5VLcmp_connector_cls_f(cmp, connector_id1, connector_id2, hdferr) - IMPLICIT NONE - INTEGER, INTENT(OUT), TARGET :: cmp - INTEGER(HID_T), INTENT(IN) :: connector_id1 - INTEGER(HID_T), INTENT(IN) :: connector_id2 - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTEGER(C_INT) :: cmp_c - - INTERFACE - INTEGER FUNCTION H5VLcmp_connector_cls(cmp, connector_id1, connector_id2) BIND(C, NAME='H5VLcmp_connector_cls') - IMPORT :: HID_T - IMPORT :: C_INT - INTEGER(C_INT) :: cmp - INTEGER(HID_T), INTENT(IN), VALUE :: connector_id1 - INTEGER(HID_T), INTENT(IN), VALUE :: connector_id2 - END FUNCTION H5VLcmp_connector_cls - END INTERFACE - - hdferr = INT(H5VLcmp_connector_cls(cmp_c, connector_id1, connector_id2)) - cmp = INT(cmp_c) - - END SUBROUTINE H5VLcmp_connector_cls_f - END MODULE H5VL diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in index 390c2b7..e143b45 100644 --- a/fortran/src/hdf5_fortrandll.def.in +++ b/fortran/src/hdf5_fortrandll.def.in @@ -460,7 +460,6 @@ H5VL_mp_H5VLGET_CONNECTOR_ID_F H5VL_mp_H5VLGET_CONNECTOR_NAME_F H5VL_mp_H5VLCLOSE_F H5VL_mp_H5VLUNREGISTER_CONNECTOR_F -H5VL_mp_H5VLCMP_CONNECTOR_CLS_F ; H5Z H5Z_mp_H5ZUNREGISTER_F H5Z_mp_H5ZFILTER_AVAIL_F diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am index ef6cd7e..9e03996 100644 --- a/fortran/test/Makefile.am +++ b/fortran/test/Makefile.am @@ -30,8 +30,6 @@ noinst_LTLIBRARIES=libh5test_fortran.la # want to build a shared C library and a static Fortran library. If so, # pass the -static flag to the library linker. if FORTRAN_SHARED_CONDITIONAL - TEST_SCRIPT = test_vol_connector.sh - SCRIPT_DEPEND = vol_connector$(EXEEXT) else AM_LDFLAGS+=-static endif @@ -39,26 +37,9 @@ endif check_SCRIPTS = $(TEST_SCRIPT) # Our main targets, the tests themselves -TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03 +TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03 vol_connector check_PROGRAMS=$(TEST_PROG) -if FORTRAN_SHARED_CONDITIONAL - check_PROGRAMS+= vol_connector -endif - -if FORTRAN_SHARED_CONDITIONAL - # The libh5test library provides common support code for the tests. - # The filter_plugin* libraries are for use in filter_plugin.c. - # Build them as shared libraries if that option was enabled in configure. - noinst_LTLIBRARIES += libnull_vol_connector.la - - # VOL plugin test libraries - # - # null_vol_connector is used for testing basic VOL plugin functionality. - libnull_vol_connector_la_SOURCES=null_vol_connector.c - libnull_vol_connector_la_LDFLAGS=$(AM_LDFLAGS) -avoid-version -module -shared -export-dynamic -rpath /nowhere -endif - libh5test_fortran_la_SOURCES = tf_gen.F90 tf.F90 t.c @@ -117,8 +98,6 @@ H5_test_buildiface_SOURCES = H5_test_buildiface.F90 H5_test_buildiface_LDADD = -DISTCLEANFILES=test_vol_connector.sh # TODO:CHECK IF WORKS MSB - # fflush2 depends on files created by fflush1 fflush2.chkexe_: fflush1.chkexe_ diff --git a/fortran/test/null_vol_connector.c b/fortran/test/null_vol_connector.c index 00a22b8..e30a659 100644 --- a/fortran/test/null_vol_connector.c +++ b/fortran/test/null_vol_connector.c @@ -127,6 +127,8 @@ H5VL_file_create(const char *name) { hid_t under_fapl; H5VL_t *file; + + printf(" H5VL_file_create \n"); file = (H5VL_t *)calloc(1, sizeof(H5VL_t)); diff --git a/fortran/test/vol_connector.F90 b/fortran/test/vol_connector.F90 index 7810c97..7f19d79 100644 --- a/fortran/test/vol_connector.F90 +++ b/fortran/test/vol_connector.F90 @@ -31,9 +31,8 @@ MODULE VOL_TMOD USE THDF5_F03 IMPLICIT NONE - - INTEGER, PARAMETER :: NULL_VOL_CONNECTOR_VALUE = 160 - CHARACTER(LEN=18), PARAMETER :: NULL_VOL_CONNECTOR_NAME = "null_vol_connector" + INTEGER, PARAMETER :: NATIVE_VOL_CONNECTOR_VALUE = 0 + CHARACTER(LEN=6), PARAMETER :: NATIVE_VOL_CONNECTOR_NAME = "native" CONTAINS @@ -57,50 +56,47 @@ CONTAINS INTEGER(hid_t) :: vol_id = 0, vol_id_out = 1 CHARACTER(LEN=64) :: name INTEGER(SIZE_T) :: name_len + INTEGER(hid_t) :: file_id INTEGER :: cmp = -1 -! CHARACTER(LEN=12) :: filename = "h5null.posix" -! INTEGER(HID_T) :: file_id ! The null VOL connector should not be registered at the start of the test - CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error) CALL check("H5VLis_connector_registered_f",error,total_error) CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) ! Register the connector by name - CALL H5VLregister_connector_by_name_f(NULL_VOL_CONNECTOR_NAME, vol_id, error) + CALL H5VLregister_connector_by_name_f(NATIVE_VOL_CONNECTOR_NAME, vol_id, error) CALL check("H5VLregister_connector_by_name_f",error,total_error) ! The connector should be registered now - CALL H5VLis_connector_registered_f(NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL H5VLis_connector_registered_f(NATIVE_VOL_CONNECTOR_NAME, is_registered, error) CALL check("H5VLis_connector_registered_f",error,total_error) CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error) - CALL H5VLget_connector_id_f(NULL_VOL_CONNECTOR_NAME, vol_id_out, error) + CALL H5VLget_connector_id_f(NATIVE_VOL_CONNECTOR_NAME, vol_id_out, error) CALL check("H5VLget_connector_id_f",error,total_error) - PRINT*,vol_id_out + CALL H5Fcreate_f("voltest.h5",H5F_ACC_TRUNC_F, file_id, error) + CALL check("H5F_create_f",error,total_error) - CALL H5VLget_connector_name_f(vol_id_out, name, error, name_len) + CALL H5VLget_connector_name_f(file_id, name, error, name_len) CALL check("H5VLget_connector_name_f",error,total_error) + CALL VERIFY("H5VLget_connector_name_f", INT(name_len), LEN_TRIM(NATIVE_VOL_CONNECTOR_NAME), total_error) - ! CALL H5VLget_connector_name_f(vol_id_out, name, error) - ! CALL check("H5VLget_connector_name_f",error,total_error) + CALL H5VLget_connector_name_f(file_id, name, error) + CALL check("H5VLget_connector_name_f",error,total_error) + CALL VERIFY("H5VLget_connector_name_f", name, NATIVE_VOL_CONNECTOR_NAME, total_error) - CALL H5VLcmp_connector_cls_f( cmp, vol_id_out, vol_id, error) - CALL check("H5VLcmp_connector_cls_f",error, total_error) - CALL VERIFY("H5VLcmp_connector_cls_f", cmp, 0, total_error) + CALL H5Fclose_f(file_id, error) + CALL check("H5Fclose_f",error,total_error) CALL H5VLclose_f(vol_id_out, error) + CALL check("H5VLclose_f",error, total_error) ! Unregister the connector CALL H5VLunregister_connector_f(vol_id, error) CALL check("H5VLunregister_connector_f", error, total_error) - ! The connector should not be registered now - CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) - CALL check("H5VLis_connector_registered_f",error,total_error) - CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) - END SUBROUTINE test_registration_by_name !------------------------------------------------------------------------- @@ -123,16 +119,16 @@ CONTAINS ! The null VOL connector should not be registered at the start of the test - CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error) CALL check("H5VLis_connector_registered_f",error,total_error) CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) ! Register the connector by value - CALL H5VLregister_connector_by_value_f(NULL_VOL_CONNECTOR_VALUE, vol_id, error) + CALL H5VLregister_connector_by_value_f(NATIVE_VOL_CONNECTOR_VALUE, vol_id, error) CALL check("H5VLregister_connector_by_value_f", error, total_error) ! The connector should be registered now - CALL H5VLis_connector_registered_f(NULL_VOL_CONNECTOR_NAME, is_registered, error) + CALL H5VLis_connector_registered_f(NATIVE_VOL_CONNECTOR_NAME, is_registered, error) CALL check("H5VLis_connector_registered_f",error,total_error) CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error) @@ -140,11 +136,6 @@ CONTAINS CALL H5VLunregister_connector_f(vol_id, error) CALL check("H5VLunregister_connector_f", error, total_error) - ! The connector should not be registered now - CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error) - CALL check("H5VLis_connector_registered_f",error,total_error) - CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) - END SUBROUTINE test_registration_by_value END MODULE VOL_TMOD diff --git a/test/vol_plugin.c b/test/vol_plugin.c index 73918ff..51b8e1e 100644 --- a/test/vol_plugin.c +++ b/test/vol_plugin.c @@ -114,6 +114,11 @@ test_registration_by_name(void) if(FALSE == is_registered) FAIL_PUTS_ERROR("NULL VOL connector was not registered"); + hid_t acc_tpl = H5Pcreate(H5P_FILE_ACCESS); + H5Pset_vol(acc_tpl, vol_id, NULL); + + H5Pclose(acc_tpl); + /* Unregister the connector */ if(H5VLunregister_connector(vol_id) < 0) TEST_ERROR; -- cgit v0.12 From 1f505e5ab27ec3132e974a72438e44b2dc42156e Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Thu, 16 May 2019 15:20:32 -0500 Subject: removed H5VL constants --- configure.ac | 1 - fortran/src/H5_f.c | 73 +---------------- fortran/src/H5_ff.F90 | 80 +----------------- fortran/src/H5f90global.F90 | 141 -------------------------------- fortran/src/H5f90proto.h | 2 +- fortran/test/null_vol_connector.c | 150 ---------------------------------- fortran/test/null_vol_connector.h | 25 ------ fortran/test/test_vol_connector.sh.in | 84 ------------------- test/vol_plugin.c | 13 --- 9 files changed, 3 insertions(+), 566 deletions(-) delete mode 100644 fortran/test/null_vol_connector.c delete mode 100644 fortran/test/null_vol_connector.h delete mode 100644 fortran/test/test_vol_connector.sh.in diff --git a/configure.ac b/configure.ac index 8c080ed..0d0e0df 100644 --- a/configure.ac +++ b/configure.ac @@ -3553,7 +3553,6 @@ AC_CONFIG_FILES([src/libhdf5.settings fortran/src/Makefile fortran/src/H5fort_type_defines.h fortran/test/Makefile - fortran/test/test_vol_connector.sh fortran/testpar/Makefile fortran/examples/Makefile fortran/examples/run-fortran-ex.sh diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index fdf4b9e..2d1c6e7 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -335,7 +335,6 @@ h5close_types_c( hid_t_f * types, int_f *lentypes, * h5s_hid_flags - H5S interface flags of type hid_t * h5s_hsize_flags - H5S interface flags of type hsize_t * h5t_flags - H5T interface flags - * h5vl_flags - H5VL interface flags * h5z_flags - H5Z interface flags * OUTPUTS * None @@ -367,7 +366,7 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, - int_f *h5t_flags, int_f *h5vl_flags, int_f *h5z_flags, int_f *h5_generic_flags, + int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags) /******/ { @@ -643,7 +642,6 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5s_flags[15] = (int_f)H5S_SEL_POINTS; h5s_flags[16] = (int_f)H5S_SEL_HYPERSLABS; h5s_flags[17] = (int_f)H5S_SEL_ALL; - /* * H5T flags */ @@ -683,75 +681,6 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5t_flags[33] = (int_f)H5T_DIR_ASCEND; h5t_flags[34] = (int_f)H5T_DIR_DESCEND; /* - * H5VL flags - */ - h5vl_flags[0] = (int_f)H5VL_ATTR_GET_ACPL; - h5vl_flags[1] = (int_f)H5VL_ATTR_GET_INFO; - h5vl_flags[2] = (int_f)H5VL_ATTR_GET_NAME; - h5vl_flags[3] = (int_f)H5VL_ATTR_GET_SPACE; - h5vl_flags[4] = (int_f)H5VL_ATTR_GET_STORAGE_SIZE; - h5vl_flags[5] = (int_f)H5VL_ATTR_GET_TYPE; - h5vl_flags[6] = (int_f)H5VL_ATTR_DELETE; - h5vl_flags[7] = (int_f)H5VL_ATTR_EXISTS; - h5vl_flags[8] = (int_f)H5VL_ATTR_ITER; - h5vl_flags[8] = (int_f)H5VL_ATTR_RENAME; - h5vl_flags[9] = (int_f)H5VL_DATASET_GET_DAPL; - h5vl_flags[11] = (int_f)H5VL_DATASET_GET_DCPL; - h5vl_flags[12] = (int_f)H5VL_DATASET_GET_OFFSET; - h5vl_flags[13] = (int_f)H5VL_DATASET_GET_SPACE; - h5vl_flags[14] = (int_f)H5VL_DATASET_GET_SPACE_STATUS; - h5vl_flags[15] = (int_f)H5VL_DATASET_GET_STORAGE_SIZE; - h5vl_flags[16] = (int_f)H5VL_DATASET_GET_TYPE; - h5vl_flags[17] = (int_f)H5VL_DATASET_SET_EXTENT; - h5vl_flags[18] = (int_f)H5VL_DATASET_FLUSH; - h5vl_flags[19] = (int_f)H5VL_DATASET_REFRESH; - h5vl_flags[20] = (int_f)H5VL_DATATYPE_GET_BINARY; - h5vl_flags[21] = (int_f)H5VL_DATATYPE_GET_TCPL; - h5vl_flags[22] = (int_f)H5VL_DATATYPE_FLUSH; - h5vl_flags[23] = (int_f)H5VL_DATATYPE_REFRESH; - h5vl_flags[24] = (int_f)H5VL_FILE_GET_FAPL; - h5vl_flags[25] = (int_f)H5VL_FILE_GET_FCPL; - h5vl_flags[26] = (int_f)H5VL_FILE_GET_INTENT; - h5vl_flags[27] = (int_f)H5VL_FILE_GET_NAME; - h5vl_flags[28] = (int_f)H5VL_FILE_GET_OBJ_COUNT; - h5vl_flags[29] = (int_f)H5VL_FILE_GET_OBJ_IDS; - h5vl_flags[30] = (int_f)H5VL_FILE_FLUSH; - h5vl_flags[31] = (int_f)H5VL_FILE_REOPEN; - h5vl_flags[32] = (int_f)H5VL_FILE_MOUNT; - h5vl_flags[33] = (int_f)H5VL_FILE_UNMOUNT; - h5vl_flags[34] = (int_f)H5VL_FILE_IS_ACCESSIBLE; - h5vl_flags[35] = (int_f)H5VL_GROUP_GET_GCPL; - h5vl_flags[36] = (int_f)H5VL_GROUP_GET_INFO; - h5vl_flags[37] = (int_f)H5VL_GROUP_FLUSH; - h5vl_flags[38] = (int_f)H5VL_GROUP_REFRESH; - h5vl_flags[39] = (int_f)H5VL_LINK_CREATE_HARD; - h5vl_flags[40] = (int_f)H5VL_LINK_CREATE_SOFT; - h5vl_flags[41] = (int_f)H5VL_LINK_CREATE_UD; - h5vl_flags[42] = (int_f)H5VL_LINK_GET_INFO; - h5vl_flags[43] = (int_f)H5VL_LINK_GET_NAME; - h5vl_flags[44] = (int_f)H5VL_LINK_GET_VAL; - h5vl_flags[45] = (int_f)H5VL_LINK_DELETE; - h5vl_flags[46] = (int_f)H5VL_LINK_EXISTS; - h5vl_flags[47] = (int_f)H5VL_LINK_ITER; - h5vl_flags[48] = (int_f)H5VL_REF_GET_NAME; - h5vl_flags[49] = (int_f)H5VL_REF_GET_REGION; - h5vl_flags[50] = (int_f)H5VL_REF_GET_TYPE; - h5vl_flags[51] = (int_f)H5VL_ID_GET_NAME; - h5vl_flags[52] = (int_f)H5VL_OBJECT_CHANGE_REF_COUNT; - h5vl_flags[53] = (int_f)H5VL_OBJECT_EXISTS; - h5vl_flags[54] = (int_f)H5VL_OBJECT_VISIT; - h5vl_flags[55] = (int_f)H5VL_REF_CREATE; - h5vl_flags[56] = (int_f)H5VL_OBJECT_FLUSH; - h5vl_flags[57] = (int_f)H5VL_OBJECT_REFRESH; - h5vl_flags[58] = (int_f)H5VL_REQUEST_WAITANY; - h5vl_flags[59] = (int_f)H5VL_REQUEST_WAITSOME; - h5vl_flags[60] = (int_f)H5VL_REQUEST_WAITALL; - h5vl_flags[61] = (int_f)H5VL_OBJECT_BY_SELF; - h5vl_flags[62] = (int_f)H5VL_OBJECT_BY_NAME; - h5vl_flags[63] = (int_f)H5VL_OBJECT_BY_IDX; - h5vl_flags[64] = (int_f)H5VL_OBJECT_BY_ADDR; - h5vl_flags[65] = (int_f)H5VL_OBJECT_BY_REF; -/* * H5Z flags */ h5z_flags[0] = (int_f)H5Z_FILTER_ERROR; diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90 index 0d82f42..443be79 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.F90 @@ -129,12 +129,6 @@ MODULE H5LIB ! INTEGER, PARAMETER :: H5T_FLAGS_LEN = 35 INTEGER, DIMENSION(1:H5T_FLAGS_LEN) :: H5T_flags - ! - ! H5VL flags declaration - ! - - INTEGER, PARAMETER :: H5VL_FLAGS_LEN = 66 - INTEGER, DIMENSION(1:H5VL_FLAGS_LEN) :: H5VL_flags ! ! H5Z flags declaration @@ -211,7 +205,6 @@ CONTAINS i_H5S_hid_flags, & i_H5S_hsize_flags, & i_H5T_flags, & - i_H5VL_flags, & i_H5Z_flags, & i_H5generic_flags, & i_H5generic_haddr_flags) & @@ -223,7 +216,7 @@ CONTAINS H5FD_HID_FLAGS_LEN, H5I_FLAGS_LEN, H5L_FLAGS_LEN, & H5O_FLAGS_LEN, H5P_FLAGS_LEN, H5P_FLAGS_INT_LEN, & H5R_FLAGS_LEN, H5S_FLAGS_LEN, H5S_HID_FLAGS_LEN, H5S_HSIZE_FLAGS_LEN, & - H5T_FLAGS_LEN, H5VL_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN, H5generic_haddr_FLAGS_LEN + H5T_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN, H5generic_haddr_FLAGS_LEN IMPLICIT NONE INTEGER , DIMENSION(1:H5D_FLAGS_LEN) :: i_H5D_flags INTEGER(SIZE_T) , DIMENSION(1:H5D_SIZE_FLAGS_LEN) :: i_H5D_size_flags @@ -243,7 +236,6 @@ CONTAINS INTEGER(HID_T) , DIMENSION(1:H5S_HID_FLAGS_LEN) :: i_H5S_hid_flags INTEGER(HSIZE_T), DIMENSION(1:H5S_HSIZE_FLAGS_LEN) :: i_H5S_hsize_flags INTEGER , DIMENSION(1:H5T_FLAGS_LEN) :: i_H5T_flags - INTEGER , DIMENSION(1:H5VL_FLAGS_LEN) :: i_H5VL_flags INTEGER , DIMENSION(1:H5Z_FLAGS_LEN) :: i_H5Z_flags INTEGER , DIMENSION(1:H5generic_FLAGS_LEN) :: i_H5generic_flags INTEGER(HADDR_T), DIMENSION(1:H5generic_haddr_FLAGS_LEN) :: i_H5generic_haddr_flags @@ -327,7 +319,6 @@ CONTAINS H5S_hid_flags, & H5S_hsize_flags, & H5T_flags, & - H5VL_flags, & H5Z_flags, & H5generic_flags,& H5generic_haddr_flags) @@ -610,75 +601,6 @@ CONTAINS H5T_DIR_ASCEND_F = H5T_flags(34) H5T_DIR_DESCEND_F = H5T_flags(35) ! - ! H5VL flags declaration - ! - H5VL_ATTR_GET_ACPL_F = H5VL_flags(1) - H5VL_ATTR_GET_INFO_F = H5VL_flags(2) - H5VL_ATTR_GET_NAME_F = H5VL_flags(3) - H5VL_ATTR_GET_SPACE_F = H5VL_flags(4) - H5VL_ATTR_GET_STORAGE_SIZE_F = H5VL_flags(5) - H5VL_ATTR_GET_TYPE_F = H5VL_flags(6) - H5VL_ATTR_DELETE_F = H5VL_flags(7) - H5VL_ATTR_EXISTS_F = H5VL_flags(8) - H5VL_ATTR_ITER_F = H5VL_flags(9) - H5VL_ATTR_RENAME_F = H5VL_flags(10) - H5VL_DATASET_GET_DAPL_F = H5VL_flags(11) - H5VL_DATASET_GET_DCPL_F = H5VL_flags(12) - H5VL_DATASET_GET_OFFSET_F = H5VL_flags(13) - H5VL_DATASET_GET_SPACE_F = H5VL_flags(14) - H5VL_DATASET_GET_SPACE_STATUS_F = H5VL_flags(15) - H5VL_DATASET_GET_STORAGE_SIZE_F = H5VL_flags(16) - H5VL_DATASET_GET_TYPE_F = H5VL_flags(17) - H5VL_DATASET_SET_EXTENT_F = H5VL_flags(18) - H5VL_DATASET_FLUSH_F = H5VL_flags(19) - H5VL_DATASET_REFRESH_F = H5VL_flags(20) - H5VL_DATATYPE_GET_BINARY_F = H5VL_flags(21) - H5VL_DATATYPE_GET_TCPL_F = H5VL_flags(22) - H5VL_DATATYPE_FLUSH_F = H5VL_flags(23) - H5VL_DATATYPE_REFRESH_F = H5VL_flags(24) - H5VL_FILE_GET_FAPL_F = H5VL_flags(25) - H5VL_FILE_GET_FCPL_F = H5VL_flags(26) - H5VL_FILE_GET_INTENT_F = H5VL_flags(27) - H5VL_FILE_GET_NAME_F = H5VL_flags(28) - H5VL_FILE_GET_OBJ_COUNT_F = H5VL_flags(29) - H5VL_FILE_GET_OBJ_IDS_F = H5VL_flags(30) - H5VL_FILE_FLUSH_F = H5VL_flags(31) - H5VL_FILE_REOPEN_F = H5VL_flags(32) - H5VL_FILE_MOUNT_F = H5VL_flags(33) - H5VL_FILE_UNMOUNT_F = H5VL_flags(34) - H5VL_FILE_IS_ACCESSIBLE_F = H5VL_flags(35) - H5VL_GROUP_GET_GCPL_F = H5VL_flags(36) - H5VL_GROUP_GET_INFO_F = H5VL_flags(37) - H5VL_GROUP_FLUSH_F = H5VL_flags(38) - H5VL_GROUP_REFRESH_F = H5VL_flags(39) - H5VL_LINK_CREATE_HARD_F = H5VL_flags(40) - H5VL_LINK_CREATE_SOFT_F = H5VL_flags(41) - H5VL_LINK_CREATE_UD_F = H5VL_flags(42) - H5VL_LINK_GET_INFO_F = H5VL_flags(43) - H5VL_LINK_GET_NAME_F = H5VL_flags(44) - H5VL_LINK_GET_VAL_F = H5VL_flags(45) - H5VL_LINK_DELETE_F = H5VL_flags(46) - H5VL_LINK_EXISTS_F = H5VL_flags(47) - H5VL_LINK_ITER_F = H5VL_flags(48) - H5VL_REF_GET_NAME_F = H5VL_flags(49) - H5VL_REF_GET_REGION_F = H5VL_flags(50) - H5VL_REF_GET_TYPE_F = H5VL_flags(51) - H5VL_ID_GET_NAME_F = H5VL_flags(52) - H5VL_OBJECT_CHANGE_REF_COUNT_F = H5VL_flags(53) - H5VL_OBJECT_EXISTS_F = H5VL_flags(54) - H5VL_OBJECT_VISIT_F = H5VL_flags(55) - H5VL_REF_CREATE_F = H5VL_flags(56) - H5VL_OBJECT_FLUSH_F = H5VL_flags(57) - H5VL_OBJECT_REFRESH_F = H5VL_flags(58) - H5VL_REQUEST_WAITANY_F = H5VL_flags(59) - H5VL_REQUEST_WAITSOME_F = H5VL_flags(60) - H5VL_REQUEST_WAITALL_F = H5VL_flags(61) - H5VL_OBJECT_BY_SELF_F = H5VL_flags(62) - H5VL_OBJECT_BY_NAME_F = H5VL_flags(63) - H5VL_OBJECT_BY_IDX_F = H5VL_flags(64) - H5VL_OBJECT_BY_ADDR_F = H5VL_flags(65) - H5VL_OBJECT_BY_REF_F = H5VL_flags(66) - ! ! H5Z flags ! H5Z_FILTER_ERROR_F = H5Z_flags(1) diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90 index 0a8a153..02e3bc3 100644 --- a/fortran/src/H5f90global.F90 +++ b/fortran/src/H5f90global.F90 @@ -740,147 +740,6 @@ MODULE H5GLOBAL INTEGER :: H5T_DIR_ASCEND_F INTEGER :: H5T_DIR_DESCEND_F ! - ! H5VL flags declaration - ! - !DEC$if defined(BUILD_HDF5_DLL) - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_ACPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_INFO_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_NAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_SPACE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_STORAGE_SIZE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_GET_TYPE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_DELETE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_EXISTS_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_ITER_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ATTR_RENAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_DAPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_DCPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_OFFSET_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_SPACE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_SPACE_STATUS_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_STORAGE_SIZE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_GET_TYPE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_SET_EXTENT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_FLUSH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATASET_REFRESH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_GET_BINARY_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_GET_TCPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_FLUSH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_DATATYPE_REFRESH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_FAPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_FCPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_INTENT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_NAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_OBJ_COUNT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_GET_OBJ_IDS_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_FLUSH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_REOPEN_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_MOUNT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_UNMOUNT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_IS_ACCESSIBLE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_FILE_CACHE_VOL_CONN_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_GET_GCPL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_GET_INFO_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_FLUSH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_GROUP_REFRESH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_HARD_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_SOFT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_CREATE_UD_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_INFO_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_NAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_GET_VAL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_DELETE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_EXISTS_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_LINK_ITER_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_NAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_REGION_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_GET_TYPE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_ID_GET_NAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_CHANGE_REF_COUNT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_EXISTS_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_VISIT_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REF_CREATE_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_FLUSH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_REFRESH_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITANY_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITSOME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_REQUEST_WAITALL_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_SELF_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_NAME_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_IDX_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_ADDR_F - !DEC$ATTRIBUTES DLLEXPORT :: H5VL_OBJECT_BY_REF_F - !DEC$endif - - INTEGER :: H5VL_ATTR_GET_ACPL_F - INTEGER :: H5VL_ATTR_GET_INFO_F - INTEGER :: H5VL_ATTR_GET_NAME_F - INTEGER :: H5VL_ATTR_GET_SPACE_F - INTEGER :: H5VL_ATTR_GET_STORAGE_SIZE_F - INTEGER :: H5VL_ATTR_GET_TYPE_F - INTEGER :: H5VL_ATTR_DELETE_F - INTEGER :: H5VL_ATTR_EXISTS_F - INTEGER :: H5VL_ATTR_ITER_F - INTEGER :: H5VL_ATTR_RENAME_F - INTEGER :: H5VL_DATASET_GET_DAPL_F - INTEGER :: H5VL_DATASET_GET_DCPL_F - INTEGER :: H5VL_DATASET_GET_OFFSET_F - INTEGER :: H5VL_DATASET_GET_SPACE_F - INTEGER :: H5VL_DATASET_GET_SPACE_STATUS_F - INTEGER :: H5VL_DATASET_GET_STORAGE_SIZE_F - INTEGER :: H5VL_DATASET_GET_TYPE_F - INTEGER :: H5VL_DATASET_SET_EXTENT_F - INTEGER :: H5VL_DATASET_FLUSH_F - INTEGER :: H5VL_DATASET_REFRESH_F - INTEGER :: H5VL_DATATYPE_GET_BINARY_F - INTEGER :: H5VL_DATATYPE_GET_TCPL_F - INTEGER :: H5VL_DATATYPE_FLUSH_F - INTEGER :: H5VL_DATATYPE_REFRESH_F - INTEGER :: H5VL_FILE_GET_FAPL_F - INTEGER :: H5VL_FILE_GET_FCPL_F - INTEGER :: H5VL_FILE_GET_INTENT_F - INTEGER :: H5VL_FILE_GET_NAME_F - INTEGER :: H5VL_FILE_GET_OBJ_COUNT_F - INTEGER :: H5VL_FILE_GET_OBJ_IDS_F - INTEGER :: H5VL_FILE_FLUSH_F - INTEGER :: H5VL_FILE_REOPEN_F - INTEGER :: H5VL_FILE_MOUNT_F - INTEGER :: H5VL_FILE_UNMOUNT_F - INTEGER :: H5VL_FILE_IS_ACCESSIBLE_F - INTEGER :: H5VL_FILE_CACHE_VOL_CONN_F - INTEGER :: H5VL_GROUP_GET_GCPL_F - INTEGER :: H5VL_GROUP_GET_INFO_F - INTEGER :: H5VL_GROUP_FLUSH_F - INTEGER :: H5VL_GROUP_REFRESH_F - INTEGER :: H5VL_LINK_CREATE_HARD_F - INTEGER :: H5VL_LINK_CREATE_SOFT_F - INTEGER :: H5VL_LINK_CREATE_UD_F - INTEGER :: H5VL_LINK_GET_INFO_F - INTEGER :: H5VL_LINK_GET_NAME_F - INTEGER :: H5VL_LINK_GET_VAL_F - INTEGER :: H5VL_LINK_DELETE_F - INTEGER :: H5VL_LINK_EXISTS_F - INTEGER :: H5VL_LINK_ITER_F - INTEGER :: H5VL_REF_GET_NAME_F - INTEGER :: H5VL_REF_GET_REGION_F - INTEGER :: H5VL_REF_GET_TYPE_F - INTEGER :: H5VL_ID_GET_NAME_F - INTEGER :: H5VL_OBJECT_CHANGE_REF_COUNT_F - INTEGER :: H5VL_OBJECT_EXISTS_F - INTEGER :: H5VL_OBJECT_VISIT_F - INTEGER :: H5VL_REF_CREATE_F - INTEGER :: H5VL_OBJECT_FLUSH_F - INTEGER :: H5VL_OBJECT_REFRESH_F - INTEGER :: H5VL_REQUEST_WAITANY_F - INTEGER :: H5VL_REQUEST_WAITSOME_F - INTEGER :: H5VL_REQUEST_WAITALL_F - INTEGER :: H5VL_OBJECT_BY_SELF_F - INTEGER :: H5VL_OBJECT_BY_NAME_F - INTEGER :: H5VL_OBJECT_BY_IDX_F - INTEGER :: H5VL_OBJECT_BY_ADDR_F - INTEGER :: H5VL_OBJECT_BY_REF_F - - ! ! H5Z flags declaration ! !DEC$if defined(BUILD_HDF5_DLL) diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index 7945857..b357715 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -526,7 +526,7 @@ H5_FCDLL int_f h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, hid_t_f *h5s_hid_flags, hsize_t_f *h5s_hsize_flags, - int_f *h5t_flags, int_f *h5vl_flags, int_f *h5z_flags, int_f *h5_generic_flags, + int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags, haddr_t_f *h5_haddr_generic_flags); H5_FCDLL int_f h5init1_flags_c(int_f *h5lib_flags); H5_FCDLL int_f h5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum); diff --git a/fortran/test/null_vol_connector.c b/fortran/test/null_vol_connector.c deleted file mode 100644 index e30a659..0000000 --- a/fortran/test/null_vol_connector.c +++ /dev/null @@ -1,150 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the COPYING file, which can be found at the root of the source code * - * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * - * If you do not have access to either file, you may request a copy from * - * help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* Purpose: A simple virtual object layer (VOL) connector with almost no - * functionality that is used for testing basic plugin handling - * (registration, etc.). - */ - -#include -#include "H5PLextern.h" - -#include "null_vol_connector.h" - -static void *H5VL_file_create(const char *name); -static herr_t H5VL_file_close(void *file); - -/* The VOL class struct */ -static const H5VL_class_t null_vol_g = { - 0, /* version */ - NULL_VOL_CONNECTOR_VALUE, /* value */ - NULL_VOL_CONNECTOR_NAME, /* name */ - 0, /* capability flags */ - NULL, /* initialize */ - NULL, /* terminate */ - (size_t)0, /* info size */ - NULL, /* info copy */ - NULL, /* info compare */ - NULL, /* info free */ - NULL, /* info to str */ - NULL, /* str to info */ - NULL, /* get_object */ - NULL, /* get_wrap_ctx */ - NULL, /* wrap_object */ - NULL, /* free_wrap_ctx */ - { /* attribute_cls */ - NULL, /* create */ - NULL, /* open */ - NULL, /* read */ - NULL, /* write */ - NULL, /* get */ - NULL, /* specific */ - NULL, /* optional */ - NULL /* close */ - }, - { /* dataset_cls */ - NULL, /* create */ - NULL, /* open */ - NULL, /* read */ - NULL, /* write */ - NULL, /* get */ - NULL, /* specific */ - NULL, /* optional */ - NULL /* close */ - }, - { /* datatype_cls */ - NULL, /* commit */ - NULL, /* open */ - NULL, /* get_size */ - NULL, /* specific */ - NULL, /* optional */ - NULL /* close */ - }, - { /* file_cls */ - H5VL_file_create, /* create */ - NULL, /* open */ - NULL, /* get */ - NULL, /* specific */ - NULL, /* optional */ - H5VL_file_close /* close */ - }, - { /* group_cls */ - NULL, /* create */ - NULL, /* open */ - NULL, /* get */ - NULL, /* specific */ - NULL, /* optional */ - NULL /* close */ - }, - { /* link_cls */ - NULL, /* create */ - NULL, /* copy */ - NULL, /* move */ - NULL, /* get */ - NULL, /* specific */ - NULL /* optional */ - }, - { /* object_cls */ - NULL, /* open */ - NULL, /* copy */ - NULL, /* get */ - NULL, /* specific */ - NULL /* optional */ - }, - { /* request_cls */ - NULL, /* wait */ - NULL, /* notify */ - NULL, /* cancel */ - NULL, /* specific */ - NULL, /* optional */ - NULL /* free */ - }, - NULL /* optional */ -}; - -typedef struct H5VL_t { - void *under_object; -} H5VL_t; - -/* These two functions are necessary to load this plugin using - * the HDF5 library. - */ - -H5PL_type_t H5PLget_plugin_type(void) {return H5PL_TYPE_VOL;} -const void *H5PLget_plugin_info(void) {return &null_vol_g;} - -static void * -H5VL_file_create(const char *name) -{ - hid_t under_fapl; - H5VL_t *file; - - printf(" H5VL_file_create \n"); - - file = (H5VL_t *)calloc(1, sizeof(H5VL_t)); - - file->under_object = fopen(name, "w"); - - return (void *)file; -} - -static herr_t -H5VL_file_close(void *file) -{ - H5VL_t *f = (H5VL_t *)file; - - fclose(f->under_object); - free(f); - - return 1; -} - diff --git a/fortran/test/null_vol_connector.h b/fortran/test/null_vol_connector.h deleted file mode 100644 index 11c8826..0000000 --- a/fortran/test/null_vol_connector.h +++ /dev/null @@ -1,25 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the COPYING file, which can be found at the root of the source code * - * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * - * If you do not have access to either file, you may request a copy from * - * help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* Purpose: A simple virtual object layer (VOL) connector with almost no - * functionality that is used for testing basic plugin handling - * (registration, etc.). - */ - -#ifndef _null_vol_connector_H -#define _null_vol_connector_H - -#define NULL_VOL_CONNECTOR_VALUE ((H5VL_class_value_t)160) -#define NULL_VOL_CONNECTOR_NAME "null_vol_connector" - -#endif /* _null_vol_connector_H */ - diff --git a/fortran/test/test_vol_connector.sh.in b/fortran/test/test_vol_connector.sh.in deleted file mode 100644 index ee27f3b..0000000 --- a/fortran/test/test_vol_connector.sh.in +++ /dev/null @@ -1,84 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# This shell script is for testing VOL connector plugins. -# -srcdir=@srcdir@ -TOP_BUILDDIR=@top_builddir@ - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -nerrors=0 -verbose=yes -exit_code=$EXIT_SUCCESS - -TEST_NAME=vol_connector -TEST_BIN=`pwd`/$TEST_NAME -FROM_DIR=`pwd`/.libs -case $(uname) in - CYGWIN* ) - NULL_VOL_PLUGIN="$FROM_DIR/cygnull_vol_connector*" - ;; - *) - NULL_VOL_PLUGIN="$FROM_DIR/libnull_vol_connector*" - ;; -esac -TEMP_PLUGIN_DIR=null_vol_plugin_dir -CP="cp -p -r" # Use -p to preserve mode,ownership, timestamps -RM="rm -rf" - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Main Body -# Create test directory if necessary. -test -d $TEMP_PLUGIN_DIR || mkdir -p $TEMP_PLUGIN_DIR -if [ $? != 0 ]; then - echo "Failed to create VOL connector plugin test directory ($TEMP_PLUGIN_DIR)" - exit $EXIT_FAILURE -fi - -# Copy plugin for the tests. -$CP $NULL_VOL_PLUGIN $TEMP_PLUGIN_DIR -if [ $? != 0 ]; then - echo "Failed to copy NULL VOL plugin ($NULL_VOL_PLUGIN) to test directory." - exit $EXIT_FAILURE -fi - -# setup plugin path -ENVCMD="env HDF5_PLUGIN_PATH=${TEMP_PLUGIN_DIR}" - -# Run the test -$ENVCMD $TEST_BIN -if [ $? != 0 ]; then - nerrors=`expr $nerrors + 1` -fi - -# print results -if test $nerrors -ne 0 ; then - echo "$nerrors errors encountered" - exit_code=$EXIT_FAILURE -else - echo "All VOL plugin tests passed." - exit_code=$EXIT_SUCCESS -fi - -# Clean up temporary files/directories and leave -#$RM $TEMP_PLUGIN_DIR - -exit $exit_code diff --git a/test/vol_plugin.c b/test/vol_plugin.c index 51b8e1e..236a67e 100644 --- a/test/vol_plugin.c +++ b/test/vol_plugin.c @@ -114,11 +114,6 @@ test_registration_by_name(void) if(FALSE == is_registered) FAIL_PUTS_ERROR("NULL VOL connector was not registered"); - hid_t acc_tpl = H5Pcreate(H5P_FILE_ACCESS); - H5Pset_vol(acc_tpl, vol_id, NULL); - - H5Pclose(acc_tpl); - /* Unregister the connector */ if(H5VLunregister_connector(vol_id) < 0) TEST_ERROR; @@ -224,8 +219,6 @@ test_getters(void) htri_t is_registered = FAIL; hid_t vol_id = H5I_INVALID_HID; hid_t vol_id_out = H5I_INVALID_HID; - char name[64]; - size_t size = 0; TESTING("VOL getters"); @@ -245,12 +238,6 @@ test_getters(void) if(vol_id != vol_id_out) FAIL_PUTS_ERROR("VOL connector IDs don't match"); - if((vol_id_out = H5VLget_connector_name(vol_id_out, name, size)) < 0) - TEST_ERROR; - - printf("%s %ld \n", name, size); - - /* Unregister the connector */ if(H5VLunregister_connector(vol_id) < 0) TEST_ERROR; -- cgit v0.12 From 5e3dfa8bbec30f3c3f15e958323ec59b2432c6d3 Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Thu, 16 May 2019 15:33:16 -0500 Subject: added test for vol_connector --- fortran/test/CMakeLists.txt | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index b862fcd..719a9f3 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -569,4 +569,65 @@ if (BUILD_SHARED_LIBS) add_dependencies (fflush2-shared ${HDF5_F90_TEST_LIBSH_TARGET}) endif () +#-- Adding test for vol_connector +add_executable (vol_connector vol_connector.F90) +target_include_directories (vol_connector + PRIVATE + ${CMAKE_Fortran_MODULE_DIRECTORY}/static +) +target_compile_options(vol_connector + PRIVATE + $<$:${WIN_COMPILE_FLAGS}> +) +target_link_libraries (vol_connector + PRIVATE + ${HDF5_F90_LIB_TARGET} ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} $<$:ws2_32.lib> +) +#set_property(TARGET vol_connector APPEND PROPERTY +# LINK_FLAGS $<$:"-SUBSYSTEM:CONSOLE"> +#) +#set_property(TARGET vol_connector APPEND PROPERTY +# LINK_FLAGS $<$:${WIN_LINK_FLAGS}> +#) +if(MSVC) + set_property(TARGET vol_connector PROPERTY LINK_FLAGS "/SUBSYSTEM:CONSOLE ${WIN_LINK_FLAGS}") +endif() +set_target_properties (vol_connector PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static +) +add_dependencies (vol_connector ${HDF5_F90_TEST_LIB_TARGET}) + +if (BUILD_SHARED_LIBS) + add_executable (vol_connector-shared vol_connector.F90) + target_include_directories (vol_connector-shared + PRIVATE + ${CMAKE_Fortran_MODULE_DIRECTORY}/shared + ) + target_compile_options(vol_connector-shared + PRIVATE + $<$:${WIN_COMPILE_FLAGS}> + ) + target_link_libraries (vol_connector-shared + PRIVATE + ${HDF5_F90_LIBSH_TARGET} ${HDF5_F90_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} $<$:ws2_32.lib> + ) +# set_property(TARGET vol_connector-shared APPEND PROPERTY +# LINK_FLAGS $<$:"-SUBSYSTEM:CONSOLE"> +# ) +# set_property(TARGET vol_connector-shared APPEND PROPERTY +# LINK_FLAGS $<$:${WIN_LINK_FLAGS}> +# ) + if(MSVC) + set_property(TARGET vol_connector-shared PROPERTY LINK_FLAGS "/SUBSYSTEM:CONSOLE ${WIN_LINK_FLAGS}") + endif() + set_target_properties (vol_connector-shared PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared + ) + add_dependencies (vol_connector-shared ${HDF5_F90_TEST_LIBSH_TARGET}) +endif () + include (CMakeTests.cmake) -- cgit v0.12 From 4673a34825fc246a62bbe9c7647792f2cb52921f Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Thu, 16 May 2019 16:22:05 -0500 Subject: added vol connector --- fortran/test/CMakeTests.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fortran/test/CMakeTests.cmake b/fortran/test/CMakeTests.cmake index 5fa10f4..306a3f8 100644 --- a/fortran/test/CMakeTests.cmake +++ b/fortran/test/CMakeTests.cmake @@ -130,6 +130,10 @@ set_tests_properties (FORTRAN_fflush1 PROPERTIES DEPENDS FORTRAN_testhdf5-clear- add_test (NAME FORTRAN_fflush2 COMMAND $) set_tests_properties (FORTRAN_fflush2 PROPERTIES DEPENDS FORTRAN_fflush1) +#-- Adding test for vol_connector +add_test (NAME FORTRAN_vol_connector COMMAND $) +set_tests_properties (FORTRAN_vol_connector PROPERTIES DEPENDS FORTRAN_testhdf5-clear-objects) + if (BUILD_SHARED_LIBS) add_test ( NAME FORTRAN_testhdf5-shared-clear-objects @@ -239,4 +243,8 @@ if (BUILD_SHARED_LIBS) #-- Adding test for fflush2 add_test (NAME FORTRAN_fflush2-shared COMMAND $) set_tests_properties (FORTRAN_fflush2-shared PROPERTIES DEPENDS FORTRAN_fflush1-shared) + + #-- Adding test for vol_connector + add_test (NAME FORTRAN_vol_connector-shared COMMAND $) + set_tests_properties (FORTRAN_vol_connector-shared PROPERTIES DEPENDS FORTRAN_vol_connector-shared) endif () -- cgit v0.12 From 2c7924311198802b688e2270041cfbd472b8e0b2 Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Wed, 22 May 2019 14:09:17 -0500 Subject: added H5Pset_vol --- fortran/src/H5Pff.F90 | 85 +++++++++++++++++++++++++++++++++ fortran/src/hdf5_fortrandll.def.in | 2 + fortran/test/vol_connector.F90 | 97 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 184 insertions(+) diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90 index 31dfbdc..8ad3573 100644 --- a/fortran/src/H5Pff.F90 +++ b/fortran/src/H5Pff.F90 @@ -8114,5 +8114,90 @@ END SUBROUTINE h5pget_virtual_dsetname_f END SUBROUTINE h5pset_dset_no_attrs_hint_f +!****s* H5P/H5Pset_vol_f +! +! NAME +! H5Pset_vol_f +! +! PURPOSE +! Set the file VOL connector (VOL_ID) for a file access +! property list (PLIST_ID) +! INPUTS +! plist_id - access property list identifier. +! new_vol_id - VOL connector id. +! new_vol_info - VOL connector info. +! +! OUTPUTS +! hdferr - error code: +! 0 on success and -1 on failure +! +! AUTHOR +! M.S. Breitenfeld +! May 2019 +! +! Fortran Interface: + SUBROUTINE h5pset_vol_f(plist_id, new_vol_id, new_vol_info, hdferr) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: plist_id + INTEGER(HID_T) , INTENT(IN) :: new_vol_id + TYPE(C_PTR) , INTENT(IN) :: new_vol_info + INTEGER , INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION h5pset_vol(plist_id, new_vol_id, new_vol_info) BIND(C, NAME='H5Pset_vol') + IMPORT :: HID_T, C_PTR + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN), VALUE :: plist_id + INTEGER(HID_T), INTENT(IN), VALUE :: new_vol_id + TYPE(C_PTR) , INTENT(IN), VALUE :: new_vol_info + END FUNCTION h5pset_vol + END INTERFACE + + hdferr = INT(h5pset_vol(plist_id, new_vol_id, new_vol_info)) + + END SUBROUTINE h5pset_vol_f + +!****s* H5P/H5Pget_vol_id_f +! +! NAME +! H5Pget_vol_id_f +! +! PURPOSE +! Get the file VOL connector (VOL_ID) for a file access +! property list (PLIST_ID) +! INPUTS +! plist_id - access property list identifier. +! +! OUTPUTS +! vol_id - VOL connector id. +! hdferr - error code: +! 0 on success and -1 on failure +! +! AUTHOR +! M.S. Breitenfeld +! May 2019 +! +! Fortran Interface: + SUBROUTINE h5pget_vol_id_f(plist_id, vol_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: plist_id + INTEGER(HID_T) , INTENT(OUT) :: vol_id + INTEGER , INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION h5pget_vol_id(plist_id, vol_id) BIND(C, NAME='H5Pget_vol_id') + IMPORT :: HID_T, C_PTR + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN), VALUE :: plist_id + INTEGER(HID_T), INTENT(OUT) :: vol_id + END FUNCTION h5pget_vol_id + END INTERFACE + + hdferr = INT(h5pget_vol_id(plist_id, vol_id)) + + END SUBROUTINE h5pget_vol_id_f + END MODULE H5P diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in index e143b45..e31a582 100644 --- a/fortran/src/hdf5_fortrandll.def.in +++ b/fortran/src/hdf5_fortrandll.def.in @@ -335,6 +335,8 @@ H5P_mp_H5PGET_VIRTUAL_FILENAME_F H5P_mp_H5PGET_VIRTUAL_DSETNAME_F H5P_mp_H5PGET_DSET_NO_ATTRS_HINT_F H5P_mp_H5PSET_DSET_NO_ATTRS_HINT_F +H5P_mp_H5PSET_VOL_F +H5P_mp_H5PGET_VOL_ID_F ; Parallel @H5_NOPAREXP@H5P_mp_H5PSET_FAPL_MPIO_F @H5_NOPAREXP@H5P_mp_H5PGET_FAPL_MPIO_F diff --git a/fortran/test/vol_connector.F90 b/fortran/test/vol_connector.F90 index 7f19d79..c2ee6dd 100644 --- a/fortran/test/vol_connector.F90 +++ b/fortran/test/vol_connector.F90 @@ -138,6 +138,99 @@ CONTAINS END SUBROUTINE test_registration_by_value + + !------------------------------------------------------------------------- + ! Function: test_registration_by_name() + ! + ! Purpose: Tests if we can load, register, and close a VOL + ! connector by name. + ! + !------------------------------------------------------------------------- + ! + + SUBROUTINE test_registration_by_fapl(total_error) + + IMPLICIT NONE + + INTEGER, INTENT(INOUT) :: total_error + INTEGER :: error = 0 + + LOGICAL :: is_registered = .FALSE. + INTEGER(hid_t) :: vol_id = 0, vol_id_out = 1 + CHARACTER(LEN=64) :: name + INTEGER(SIZE_T) :: name_len + INTEGER(hid_t) :: file_id + INTEGER :: cmp = -1 + INTEGER(hid_t) :: fapl_id + TYPE(C_PTR) :: f_ptr + INTEGER(hid_t), TARGET :: under_fapl + + CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) + + + ! The null VOL connector should not be registered at the start of the test + CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error) + + CALL H5VLregister_connector_by_name_f(NATIVE_VOL_CONNECTOR_NAME, vol_id, error) + CALL check("H5VLregister_connector_by_name_f",error,total_error) + + ! The connector should be registered now + CALL H5VLis_connector_registered_f(NATIVE_VOL_CONNECTOR_NAME, is_registered, error) + CALL check("H5VLis_connector_registered_f",error,total_error) + CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error) + + ! Register the connector + CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl_id, error) + CALL check("H5Pcreate_f",error,total_error) + + f_ptr = C_NULL_PTR + CALL H5Pset_vol_f(fapl_id, vol_id, f_ptr, error) + CALL check("H5Pset_vol_f",error,total_error) + + CALL H5Pget_vol_id_f(fapl_id, vol_id_out, error) + CALL check("H5Pget_vol_id_f",error,total_error) + CALL VERIFY("H5Pget_vol_id_f", vol_id_out, vol_id, total_error) +#if 0 + CALL H5Pcreate_f(H5P_FILE_ACCESS_F, under_fapl, error) + CALL check("H5Pcreate_f",error,total_error) + f_ptr = C_LOC(under_fapl) + CALL H5Pset_vol_f(fapl_id, vol_id, f_ptr, error) + CALL check("H5Pset_vol_f",error,total_error) + + CALL H5Pget_vol_id_f(fapl_id, vol_id_out, error) + CALL check("H5Pget_vol_id_f",error,total_error) + CALL VERIFY("H5Pget_vol_id_f", vol_id_out, vol_id, total_error) +#endif + CALL H5VLget_connector_id_f(NATIVE_VOL_CONNECTOR_NAME, vol_id_out, error) + CALL check("H5VLget_connector_id_f",error,total_error) + CALL VERIFY("H5VLget_connector_id_f", vol_id_out, vol_id, total_error) + + CALL H5Fcreate_f("voltest.h5",H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl_id) + CALL check("H5F_create_f",error,total_error) + + CALL H5VLclose_f(vol_id_out, error) + CALL check("H5VLclose_f",error, total_error) + + CALL H5VLclose_f(vol_id, error) + CALL check("H5VLclose_f",error, total_error) + + ! Unregister the connector + CALL H5VLunregister_connector_f(vol_id, error) + CALL check("H5VLunregister_connector_f", error, total_error) + + CALL H5Fclose_f(file_id, error) + CALL check("H5Fclose_f",error,total_error) + + CALL H5Pclose_f(fapl_id, error) + CALL check("H5Pclose_f",error,total_error) + + END SUBROUTINE test_registration_by_fapl + + END MODULE VOL_TMOD @@ -172,6 +265,10 @@ PROGRAM vol_connector CALL test_registration_by_value(ret_total_error) CALL write_test_status(ret_total_error, ' Testing VOL registration by value', total_error) + ret_total_error = 0 + CALL test_registration_by_fapl(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing VOL registration by fapl', total_error) + WRITE(*, fmt = '(/18X,A)') '============================================' WRITE(*, fmt = '(19X, A)', advance='NO') ' FORTRAN VOL tests completed with ' WRITE(*, fmt = '(I4)', advance='NO') total_error -- cgit v0.12 From 893641990a23adae72df309d601416169b9e848c Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Tue, 11 Jun 2019 14:28:10 -0500 Subject: move the vol_info to an optional parameter --- fortran/src/H5Pff.F90 | 21 ++++++++++++++------- fortran/test/vol_connector.F90 | 12 +++++------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90 index 8ad3573..0c0500d 100644 --- a/fortran/src/H5Pff.F90 +++ b/fortran/src/H5Pff.F90 @@ -9,7 +9,7 @@ ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! Copyright by The HDF Group. * -! Copyright by the Board of Trustees of the University of Illinois. *S +! 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 * @@ -8125,25 +8125,29 @@ END SUBROUTINE h5pget_virtual_dsetname_f ! INPUTS ! plist_id - access property list identifier. ! new_vol_id - VOL connector id. -! new_vol_info - VOL connector info. ! ! OUTPUTS -! hdferr - error code: -! 0 on success and -1 on failure +! hdferr - error code: +! 0 on success and -1 on failure +! +! OPTIONAL +! new_vol_info - VOL connector info. ! ! AUTHOR ! M.S. Breitenfeld ! May 2019 ! ! Fortran Interface: - SUBROUTINE h5pset_vol_f(plist_id, new_vol_id, new_vol_info, hdferr) + SUBROUTINE h5pset_vol_f(plist_id, new_vol_id, hdferr, new_vol_info) IMPLICIT NONE INTEGER(HID_T) , INTENT(IN) :: plist_id INTEGER(HID_T) , INTENT(IN) :: new_vol_id - TYPE(C_PTR) , INTENT(IN) :: new_vol_info INTEGER , INTENT(OUT) :: hdferr + TYPE(C_PTR) , OPTIONAL :: new_vol_info !***** + TYPE(C_PTR) :: new_vol_info_default + INTERFACE INTEGER FUNCTION h5pset_vol(plist_id, new_vol_id, new_vol_info) BIND(C, NAME='H5Pset_vol') IMPORT :: HID_T, C_PTR @@ -8154,7 +8158,10 @@ END SUBROUTINE h5pget_virtual_dsetname_f END FUNCTION h5pset_vol END INTERFACE - hdferr = INT(h5pset_vol(plist_id, new_vol_id, new_vol_info)) + new_vol_info_default = C_NULL_PTR + IF(PRESENT(new_vol_info)) new_vol_info_default=new_vol_info + + hdferr = INT(h5pset_vol(plist_id, new_vol_id, new_vol_info_default)) END SUBROUTINE h5pset_vol_f diff --git a/fortran/test/vol_connector.F90 b/fortran/test/vol_connector.F90 index c2ee6dd..62e3f8d 100644 --- a/fortran/test/vol_connector.F90 +++ b/fortran/test/vol_connector.F90 @@ -188,23 +188,21 @@ CONTAINS CALL check("H5Pcreate_f",error,total_error) f_ptr = C_NULL_PTR - CALL H5Pset_vol_f(fapl_id, vol_id, f_ptr, error) + CALL H5Pset_vol_f(fapl_id, vol_id, error) CALL check("H5Pset_vol_f",error,total_error) CALL H5Pget_vol_id_f(fapl_id, vol_id_out, error) CALL check("H5Pget_vol_id_f",error,total_error) CALL VERIFY("H5Pget_vol_id_f", vol_id_out, vol_id, total_error) -#if 0 - CALL H5Pcreate_f(H5P_FILE_ACCESS_F, under_fapl, error) - CALL check("H5Pcreate_f",error,total_error) - f_ptr = C_LOC(under_fapl) - CALL H5Pset_vol_f(fapl_id, vol_id, f_ptr, error) + + f_ptr = C_NULL_PTR + CALL H5Pset_vol_f(fapl_id, vol_id, error, f_ptr) CALL check("H5Pset_vol_f",error,total_error) CALL H5Pget_vol_id_f(fapl_id, vol_id_out, error) CALL check("H5Pget_vol_id_f",error,total_error) CALL VERIFY("H5Pget_vol_id_f", vol_id_out, vol_id, total_error) -#endif + CALL H5VLget_connector_id_f(NATIVE_VOL_CONNECTOR_NAME, vol_id_out, error) CALL check("H5VLget_connector_id_f",error,total_error) CALL VERIFY("H5VLget_connector_id_f", vol_id_out, vol_id, total_error) -- cgit v0.12 From 0742c15fca95965ed4eb87c6d54f41bb07bd4526 Mon Sep 17 00:00:00 2001 From: "M. Scot Breitenfeld" Date: Wed, 12 Jun 2019 09:21:59 -0500 Subject: makefile clean-up --- fortran/test/Makefile.am | 2 -- 1 file changed, 2 deletions(-) diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am index 9e03996..f0d7f03 100644 --- a/fortran/test/Makefile.am +++ b/fortran/test/Makefile.am @@ -34,8 +34,6 @@ else AM_LDFLAGS+=-static endif -check_SCRIPTS = $(TEST_SCRIPT) - # Our main targets, the tests themselves TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03 vol_connector -- cgit v0.12