From 8a0b4729cdc7b9edb18e84b2b9182228bd6eaa2e Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Mon, 30 Jul 2012 17:14:46 -0500 Subject: [svn-r22616] The code for H5PSIdirect_write and its test dectris_tst.c. Tested on koala and jam. --- configure | 2 +- src/H5Dchunk.c | 100 +++++++++++++++++++++++ src/H5Dio.c | 47 +++++++++++ src/H5Dprivate.h | 3 + src/H5Dpublic.h | 2 + src/H5Fprivate.h | 3 + src/H5Fquery.c | 29 +++++++ test/Makefile.am | 4 +- test/Makefile.in | 56 +++++++------ test/dectris_tst.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 453 insertions(+), 26 deletions(-) create mode 100644 test/dectris_tst.c diff --git a/configure b/configure index 32d384b..4885b8e 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 22487 2012-06-24 14:29:36Z hdftest . +# From configure.in Id: configure.in 22525 2012-07-09 16:54:50Z lrknox . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for HDF5 1.9.124. # diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 93e8869..e9a50ef 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -60,6 +60,8 @@ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ #include "H5Vprivate.h" /* Vector and array functions */ +#include "H5Fprivate.h" +#include "H5FDprivate.h" /****************/ @@ -281,6 +283,104 @@ H5FL_DEFINE(H5D_chunk_info_t); /* Declare a free list to manage the chunk sequence information */ H5FL_BLK_DEFINE_STATIC(chunk); + +/*------------------------------------------------------------------------- + * Function: H5D__direct_write + * + * Purpose: Internal routine for H5PSIdirect_write to write a chunk + * directly into the file. + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Raymond Lu + * 30 July 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, size_t buf_size, + const void *buf) +{ + const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset layout */ + H5D_chunk_ud_t udata; /* User data for querying chunk info */ + hsize_t chunk_idx; + H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ + H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ + const H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache */ + int space_ndims; /* Dataset's space rank */ + hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ + H5FD_t *lf; + herr_t ret_value = SUCCEED; /* Return value */ + + /*FUNC_ENTER_PACKAGE*/ + FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) + + /* Allocate data space and initialize it if it hasn't been. */ + if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) { + /* Allocate storage */ + if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage") + } /* end if */ + + + /* Retrieve the dataset dimensions */ + if((space_ndims = H5S_get_simple_extent_dims(dset->shared->space, space_dim, NULL)) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get simple dataspace info") + + /* Calculate the index of this chunk */ + if(H5V_chunk_index((unsigned)space_ndims, offset, + layout->u.chunk.dim, layout->u.chunk.down_chunks, &chunk_idx) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") + + /* Find out the file address of the chunk */ + if(H5D__chunk_lookup(dset, dxpl_id, offset, chunk_idx, + &udata) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") + + /* If the chunk hasn't been allocated on disk, do so now. */ + if(!H5F_addr_defined(udata.addr)) { + H5D_chk_idx_info_t idx_info; /* Chunked index info */ + + /* Compose chunked index info struct */ + idx_info.f = dset->oloc.file; + idx_info.dxpl_id = dxpl_id; + idx_info.pline = &(dset->shared->dcpl_cache.pline); + idx_info.layout = &(dset->shared->layout.u.chunk); + idx_info.storage = &(dset->shared->layout.storage.u.chunk); + + /* Set up the size of chunk for user data */ + udata.nbytes = buf_size; + + /* Create the chunk */ + if((dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk") + + /* Make sure the address of the chunk is returned. */ + if(!H5F_addr_defined(udata.addr)) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "chunk address isn't defined") + } /* end if */ + + /* Fill the DXPL cache values for later use */ + if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") + + /* Evict the entry from the cache if present, but do not flush + * it to disk */ + if(UINT_MAX != udata.idx_hint) { + if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, + rdcc->slot[udata.idx_hint], FALSE) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk") + } /* end if */ + + /* Write the data to the file driver, instead of H5F_block_write */ + lf = H5F_DRIVER(dset->oloc.file); + if(H5FD_write(lf, dxpl_id, H5FD_MEM_DRAW, udata.addr, buf_size, buf) < 0) + HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed") + +done: + /*FUNC_LEAVE_NOAPI(ret_value)*/ + FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) +} /*------------------------------------------------------------------------- diff --git a/src/H5Dio.c b/src/H5Dio.c index e34452c..accb948 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -271,6 +271,53 @@ done: /*------------------------------------------------------------------------- + * Function: H5PSIdirect_write + * + * Purpose: Temporary name for the DECTRIS project. It writes an entire + * chunk to the file directly. + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Raymond Lu + * 30 July 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, size_t *offset, size_t buf_size, + const void *buf) +{ + H5D_t *dset = NULL; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_API(FAIL) + + /* check arguments */ + if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") + if(NULL == dset->oloc.file) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") + + /* Get the default dataset transfer property list if the user didn't provide one */ + if(H5P_DEFAULT == dxpl_id) + dxpl_id= H5P_DATASET_XFER_DEFAULT; + else + if(TRUE != H5P_isa_class(dxpl_id, H5P_DATASET_XFER)) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not xfer parms") + + if(!buf) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer") + + /* write raw data */ + if(H5D__direct_write(dset, dxpl_id, offset, buf_size, buf) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") + +done: + FUNC_LEAVE_API(ret_value) +} /* end H5PSIdirect_write() */ + + +/*------------------------------------------------------------------------- * Function: H5D__read * * Purpose: Reads (part of) a DATASET into application memory BUF. See diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index 2211f79..b52800b 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -176,5 +176,8 @@ H5_DLL herr_t H5D_chunk_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_ad H5_DLL herr_t H5D_btree_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent, int fwidth, unsigned ndims); +H5_DLL herr_t H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, + size_t buf_size, const void *buf); + #endif /* _H5Dprivate_H */ diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h index c878d4a..b072e64 100644 --- a/src/H5Dpublic.h +++ b/src/H5Dpublic.h @@ -118,6 +118,8 @@ H5_DLL herr_t H5Dread(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, void *buf/*out*/); H5_DLL herr_t H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, const void *buf); +H5_DLL herr_t H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, size_t *offset, size_t buf_size, + const void *buf); H5_DLL herr_t H5Diterate(void *buf, hid_t type_id, hid_t space_id, H5D_operator_t op, void *operator_data); H5_DLL herr_t H5Dvlen_reclaim(hid_t type_id, hid_t space_id, hid_t plist_id, void *buf); diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 7c6fae8..3b3af49 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -234,6 +234,7 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; #define H5F_FILE_ID(F) ((F)->file_id) #define H5F_PARENT(F) ((F)->parent) #define H5F_NMOUNTS(F) ((F)->nmounts) +#define H5F_DRIVER(F) ((F)->shared->lf) #define H5F_DRIVER_ID(F) ((F)->shared->lf->driver_id) #define H5F_GET_FILENO(F,FILENUM) ((FILENUM) = (F)->shared->lf->fileno) #define H5F_HAS_FEATURE(F,FL) ((F)->shared->lf->feature_flags & (FL)) @@ -276,6 +277,7 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; #define H5F_FILE_ID(F) (H5F_get_file_id(F)) #define H5F_PARENT(F) (H5F_get_parent(F)) #define H5F_NMOUNTS(F) (H5F_get_nmounts(F)) +#define H5F_DRIVER(F) (H5F_get_driver(F)) #define H5F_DRIVER_ID(F) (H5F_get_driver_id(F)) #define H5F_GET_FILENO(F,FILENUM) (H5F_get_fileno((F), &(FILENUM))) #define H5F_HAS_FEATURE(F,FL) (H5F_has_feature(F,FL)) @@ -547,6 +549,7 @@ H5_DLL hbool_t H5F_use_tmp_space(const H5F_t *f); H5_DLL hbool_t H5F_is_tmp_addr(const H5F_t *f, haddr_t addr); /* Functions that retrieve values from VFD layer */ +H5_DLL H5FD_t* H5F_get_driver(const H5F_t *f); H5_DLL hid_t H5F_get_driver_id(const H5F_t *f); H5_DLL herr_t H5F_get_fileno(const H5F_t *f, unsigned long *filenum); H5_DLL hbool_t H5F_has_feature(const H5F_t *f, unsigned feature); diff --git a/src/H5Fquery.c b/src/H5Fquery.c index c04ba24..1be5c50 100644 --- a/src/H5Fquery.c +++ b/src/H5Fquery.c @@ -919,6 +919,35 @@ H5F_get_driver_id(const H5F_t *f) /*------------------------------------------------------------------------- + * Function: H5F_get_driver + * + * Purpose: Quick and dirty routine to retrieve the file's 'driver' structure + * (Mainly added to stop non-file routines from poking about in the + * H5F_t data structure) + * + * Return: 'driver' structure on success/abort on failure (shouldn't fail) + * + * Programmer: Raymond Lu + * 30 July 2012 + * + *------------------------------------------------------------------------- + */ +H5FD_t * +H5F_get_driver(const H5F_t *f) +{ + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + HDassert(f); + HDassert(f->shared); + HDassert(f->shared->lf); + + FUNC_LEAVE_NOAPI(f->shared->lf) +} /* end H5F_get_driver() */ + + + +/*------------------------------------------------------------------------- * Function: H5F_get_fileno * * Purpose: Quick and dirty routine to retrieve the file's 'fileno' value diff --git a/test/Makefile.am b/test/Makefile.am index cb56d52..0197e99 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -40,7 +40,7 @@ TEST_PROG= testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe \ + set_extent ttsafe dectris_tst \ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -128,7 +128,7 @@ CHECK_CLEANFILES+=accum.h5 cmpd_dset.h5 compact_dataset.h5 dataset.h5 dset_offse earray.h5 efc[0-5].h5 log_vfd_out.log \ new_multi_file_v16-r.h5 new_multi_file_v16-s.h5 \ split_get_file_image_test-m.h5 split_get_file_image_test-r.h5 \ - file_image_core_test.h5.copy + file_image_core_test.h5.copy dectris.h5 # Sources for testhdf5 executable testhdf5_SOURCES=testhdf5.c tarray.c tattr.c tchecksum.c tconfig.c tfile.c \ diff --git a/test/Makefile.in b/test/Makefile.in index ede709c..ddc481e 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -89,11 +89,11 @@ am__EXEEXT_1 = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \ unlink$(EXEEXT) big$(EXEEXT) mtime$(EXEEXT) fillval$(EXEEXT) \ mount$(EXEEXT) flush1$(EXEEXT) flush2$(EXEEXT) \ app_ref$(EXEEXT) enum$(EXEEXT) set_extent$(EXEEXT) \ - ttsafe$(EXEEXT) getname$(EXEEXT) vfd$(EXEEXT) ntypes$(EXEEXT) \ - dangle$(EXEEXT) dtransform$(EXEEXT) reserved$(EXEEXT) \ - cross_read$(EXEEXT) freespace$(EXEEXT) mf$(EXEEXT) \ - farray$(EXEEXT) earray$(EXEEXT) btree2$(EXEEXT) fheap$(EXEEXT) \ - file_image$(EXEEXT) + ttsafe$(EXEEXT) dectris_tst$(EXEEXT) getname$(EXEEXT) \ + vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ + dtransform$(EXEEXT) reserved$(EXEEXT) cross_read$(EXEEXT) \ + freespace$(EXEEXT) mf$(EXEEXT) farray$(EXEEXT) earray$(EXEEXT) \ + btree2$(EXEEXT) fheap$(EXEEXT) file_image$(EXEEXT) am__EXEEXT_2 = gen_bad_ohdr$(EXEEXT) gen_bogus$(EXEEXT) \ gen_cross$(EXEEXT) gen_deflate$(EXEEXT) gen_filters$(EXEEXT) \ gen_new_array$(EXEEXT) gen_new_fill$(EXEEXT) \ @@ -148,6 +148,10 @@ dangle_SOURCES = dangle.c dangle_OBJECTS = dangle.$(OBJEXT) dangle_LDADD = $(LDADD) dangle_DEPENDENCIES = libh5test.la $(LIBHDF5) +dectris_tst_SOURCES = dectris_tst.c +dectris_tst_OBJECTS = dectris_tst.$(OBJEXT) +dectris_tst_LDADD = $(LDADD) +dectris_tst_DEPENDENCIES = libh5test.la $(LIBHDF5) dsets_SOURCES = dsets.c dsets_OBJECTS = dsets.$(OBJEXT) dsets_LDADD = $(LDADD) @@ -426,22 +430,7 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ btree2.c cache.c cache_api.c cache_tagging.c cmpd_dset.c \ - cross_read.c dangle.c dsets.c dt_arith.c dtransform.c dtypes.c \ - earray.c efc.c enum.c err_compat.c error_test.c extend.c \ - external.c farray.c fheap.c file_image.c fillval.c \ - filter_fail.c flush1.c flush2.c freespace.c gen_bad_ohdr.c \ - gen_bogus.c gen_cross.c gen_deflate.c gen_file_image.c \ - gen_filespace.c gen_filters.c gen_new_array.c gen_new_fill.c \ - gen_new_group.c gen_new_mtime.c gen_new_super.c \ - gen_noencoder.c gen_nullspace.c gen_sizes_lheap.c \ - gen_specmetaread.c gen_udlinks.c getname.c gheap.c hyperslab.c \ - istore.c lheap.c links.c links_env.c mf.c mount.c mtime.c \ - ntypes.c objcopy.c ohdr.c pool.c reserved.c set_extent.c \ - space_overflow.c stab.c tcheck_version.c $(testhdf5_SOURCES) \ - testmeta.c $(ttsafe_SOURCES) unlink.c vfd.c -DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ - bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ - cmpd_dset.c cross_read.c dangle.c dsets.c dt_arith.c \ + cross_read.c dangle.c dectris_tst.c dsets.c dt_arith.c \ dtransform.c dtypes.c earray.c efc.c enum.c err_compat.c \ error_test.c extend.c external.c farray.c fheap.c file_image.c \ fillval.c filter_fail.c flush1.c flush2.c freespace.c \ @@ -454,6 +443,22 @@ DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ ntypes.c objcopy.c ohdr.c pool.c reserved.c set_extent.c \ space_overflow.c stab.c tcheck_version.c $(testhdf5_SOURCES) \ testmeta.c $(ttsafe_SOURCES) unlink.c vfd.c +DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ + bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ + cmpd_dset.c cross_read.c dangle.c dectris_tst.c dsets.c \ + dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ + err_compat.c error_test.c extend.c external.c farray.c fheap.c \ + file_image.c fillval.c filter_fail.c flush1.c flush2.c \ + freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ + gen_deflate.c gen_file_image.c gen_filespace.c gen_filters.c \ + gen_new_array.c gen_new_fill.c gen_new_group.c gen_new_mtime.c \ + gen_new_super.c gen_noencoder.c gen_nullspace.c \ + gen_sizes_lheap.c gen_specmetaread.c gen_udlinks.c getname.c \ + gheap.c hyperslab.c istore.c lheap.c links.c links_env.c mf.c \ + mount.c mtime.c ntypes.c objcopy.c ohdr.c pool.c reserved.c \ + set_extent.c space_overflow.c stab.c tcheck_version.c \ + $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c \ + vfd.c ETAGS = etags CTAGS = ctags am__tty_colors = \ @@ -770,7 +775,8 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog accum.h5 cmpd_dset.h5 \ objcopy_ext.dat trefer1.h5 trefer2.h5 app_ref.h5 farray.h5 \ earray.h5 efc[0-5].h5 log_vfd_out.log new_multi_file_v16-r.h5 \ new_multi_file_v16-s.h5 split_get_file_image_test-m.h5 \ - split_get_file_image_test-r.h5 file_image_core_test.h5.copy + split_get_file_image_test-r.h5 file_image_core_test.h5.copy \ + dectris.h5 INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src # Test script for error_test and err_compat @@ -789,7 +795,7 @@ TEST_PROG = testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe \ + set_extent ttsafe dectris_tst \ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -952,6 +958,9 @@ cross_read$(EXEEXT): $(cross_read_OBJECTS) $(cross_read_DEPENDENCIES) dangle$(EXEEXT): $(dangle_OBJECTS) $(dangle_DEPENDENCIES) @rm -f dangle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dangle_OBJECTS) $(dangle_LDADD) $(LIBS) +dectris_tst$(EXEEXT): $(dectris_tst_OBJECTS) $(dectris_tst_DEPENDENCIES) + @rm -f dectris_tst$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dectris_tst_OBJECTS) $(dectris_tst_LDADD) $(LIBS) dsets$(EXEEXT): $(dsets_OBJECTS) $(dsets_DEPENDENCIES) @rm -f dsets$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dsets_OBJECTS) $(dsets_LDADD) $(LIBS) @@ -1151,6 +1160,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpd_dset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cross_read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dangle.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_tst.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dt_arith.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtransform.Po@am__quote@ diff --git a/test/dectris_tst.c b/test/dectris_tst.c new file mode 100644 index 0000000..f2cc356 --- /dev/null +++ b/test/dectris_tst.c @@ -0,0 +1,233 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This test is for the DECTRIS project to the H5PSIdirect_write function + * + */ + +#include "h5test.h" +#include +#include +#include + +const char *FILENAME[] = { + "dectris", + NULL +}; + +#define DATASETNAME "Array" +#define RANK 2 +#define NX 16 +#define NY 16 +#define CHUNK_NX 4 +#define CHUNK_NY 4 + +#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) + +int +main (void) +{ + char filename[1024]; + hid_t file; /* handles */ + hid_t fapl; + hid_t dataspace, dataset; + hid_t mem_space; + hid_t cparms, dxpl; + hsize_t dims[2] = {NX, NY}; + hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; + herr_t status; + int ret; + int data[NX][NY]; + int check[NX][NY]; + int i, j, n; + + int direct_buf[CHUNK_NX][CHUNK_NY]; + int check_chunk[CHUNK_NX][CHUNK_NY]; + hsize_t offset[3] = {0, 0, 0}; + size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); + + const Bytef *z_src = (const Bytef*)(direct_buf); + Bytef *z_dst; /*destination buffer */ + uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + uLong z_src_nbytes = (uLong)buf_size; + int aggression = 9; /* Compression aggression setting */ + void *outbuf = NULL; /* Pointer to new buffer */ + + hsize_t start[2]; /* Start of hyperslab */ + hsize_t stride[2]; /* Stride of hyperslab */ + hsize_t count[2]; /* Block count */ + hsize_t block[2]; /* Block sizes */ + + TESTING("H5PSIdirect_write for DECTRIS project"); + + /* Testing setup */ + h5_reset(); + fapl = h5_fileaccess(); + + h5_fixname(FILENAME[0], fapl, filename, sizeof filename); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, maxdims)) < 0) + TEST_ERROR; + + if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) + TEST_ERROR; + + /* + * Create a new file. If file exists its contents will be overwritten. + */ + if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + TEST_ERROR; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + TEST_ERROR; + + if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) + TEST_ERROR; + + if((status = H5Pset_deflate( cparms, aggression)) < 0) + TEST_ERROR; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DATASETNAME, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + /* Initialize the dataset */ + for(i = n = 0; i < NX; i++) + for(j = 0; j < NY; j++) + data[i][j] = n++; + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + TEST_ERROR; + + /* + * Write the data for the dataset. It should stay in the chunk cache. + * It will be evicted from the cache by the H5PSIdirect_write calls. + */ + if((status = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, + H5P_DEFAULT, data)) < 0) + TEST_ERROR; + + /* Initialize data for one chunk */ + for(i = n = 0; i < CHUNK_NX; i++) + for(j = 0; j < CHUNK_NY; j++) + direct_buf[i][j] = n++; + + /* Allocate output (compressed) buffer */ + outbuf = malloc(z_dst_nbytes); + z_dst = (Bytef *)outbuf; + + /* Perform compression from the source to the destination buffer */ + ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); + + /* Check for various zlib errors */ + if(Z_BUF_ERROR == ret) { + fprintf(stderr, "overflow"); + TEST_ERROR; + } else if(Z_MEM_ERROR == ret) { + fprintf(stderr, "deflate memory error"); + TEST_ERROR; + } else if(Z_OK != ret) { + fprintf(stderr, "other deflate error"); + TEST_ERROR; + } + + /* Write the compressed chunk data repeatedly to cover all the chunks in the + * dataset, using the direct writing function. */ + for(i=0; i Date: Wed, 8 Aug 2012 11:08:27 -0500 Subject: [svn-r22641] Dectris project: I revised the code per Quincey's and Neil's comments. I added a performance benchmark program dectris_perf.c in the test/ directory. Tested on koala and jam. --- src/H5Dchunk.c | 28 +-- src/H5Dio.c | 31 ++- src/H5Dprivate.h | 4 +- src/H5Dpublic.h | 4 +- src/H5F.c | 6 +- src/H5FDsec2.c | 2 + src/H5Fpkg.h | 3 +- src/H5Fprivate.h | 2 - src/H5Fpublic.h | 1 + src/H5Fquery.c | 29 --- test/Makefile.am | 4 +- test/Makefile.in | 47 +++-- test/dectris_perf.c | 535 ++++++++++++++++++++++++++++++++++++++++++++++++++++ test/dectris_tst.c | 79 +++++++- 14 files changed, 696 insertions(+), 79 deletions(-) create mode 100644 test/dectris_perf.c diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index e9a50ef..7cde7b6 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -60,8 +60,6 @@ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ #include "H5Vprivate.h" /* Vector and array functions */ -#include "H5Fprivate.h" -#include "H5FDprivate.h" /****************/ @@ -298,8 +296,8 @@ H5FL_BLK_DEFINE_STATIC(chunk); *------------------------------------------------------------------------- */ herr_t -H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, size_t buf_size, - const void *buf) +H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, unsigned filters, hsize_t *offset, + size_t data_size, const void *buf) { const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset layout */ H5D_chunk_ud_t udata; /* User data for querying chunk info */ @@ -337,8 +335,12 @@ H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, size_t buf_s &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") - /* If the chunk hasn't been allocated on disk, do so now. */ - if(!H5F_addr_defined(udata.addr)) { + udata.filter_mask = filters; + + /* Check if the chunk needs to be 'inserted' (could exist already and + * the 'insert' operation could resize it) + */ + { H5D_chk_idx_info_t idx_info; /* Chunked index info */ /* Compose chunked index info struct */ @@ -349,9 +351,11 @@ H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, size_t buf_s idx_info.storage = &(dset->shared->layout.storage.u.chunk); /* Set up the size of chunk for user data */ - udata.nbytes = buf_size; + udata.nbytes = data_size; - /* Create the chunk */ + /* Create the chunk it if it doesn't exist, or reallocate the chunk + * if its size changed. + */ if((dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk") @@ -372,10 +376,10 @@ H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, size_t buf_s HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk") } /* end if */ - /* Write the data to the file driver, instead of H5F_block_write */ - lf = H5F_DRIVER(dset->oloc.file); - if(H5FD_write(lf, dxpl_id, H5FD_MEM_DRAW, udata.addr, buf_size, buf) < 0) - HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed") + /* Write the data to the file */ + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, data_size, dxpl_id, buf) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to write raw data to file") + done: /*FUNC_LEAVE_NOAPI(ret_value)*/ diff --git a/src/H5Dio.c b/src/H5Dio.c index accb948..9576177 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -28,6 +28,7 @@ #include "H5Eprivate.h" /* Error handling */ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ +#include "H5Sprivate.h" /* Dataspace */ #ifdef H5_HAVE_PARALLEL /* Remove this if H5R_DATASET_REGION is no longer used in this file */ @@ -284,10 +285,13 @@ done: *------------------------------------------------------------------------- */ herr_t -H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, size_t *offset, size_t buf_size, - const void *buf) +H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offset, + size_t data_size, const void *buf) { H5D_t *dset = NULL; + int ndims; + hsize_t *dims; + int i; herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) @@ -298,6 +302,9 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, size_t *offset, size_t buf_size, if(NULL == dset->oloc.file) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") + if(H5D_CHUNKED != dset->shared->layout.type) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset") + /* Get the default dataset transfer property list if the user didn't provide one */ if(H5P_DEFAULT == dxpl_id) dxpl_id= H5P_DATASET_XFER_DEFAULT; @@ -308,8 +315,26 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, size_t *offset, size_t buf_size, if(!buf) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer") + ndims = (int)H5S_GET_EXTENT_NDIMS(dset->shared->space); + dims = (hsize_t *)HDmalloc(ndims*sizeof(hsize_t)); + + if(H5S_get_simple_extent_dims(dset->shared->space, dims, NULL) < 0) + HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") + + /* Make sure the offset doesn't exceed the dataset's dimensions */ + for(i=0; i dims[i]) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") + + /* Make sure the offset fall right on a chunk's boundary */ + for(i=0; ishared->layout.u.chunk.dim[i]) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary") + + HDfree(dims); + /* write raw data */ - if(H5D__direct_write(dset, dxpl_id, offset, buf_size, buf) < 0) + if(H5D__chunk_direct_write(dset, dxpl_id, filters, offset, data_size, buf) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") done: diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index b52800b..342c284 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -176,8 +176,8 @@ H5_DLL herr_t H5D_chunk_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_ad H5_DLL herr_t H5D_btree_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent, int fwidth, unsigned ndims); -H5_DLL herr_t H5D__direct_write(const H5D_t *dset, hid_t dxpl_id, size_t *offset, - size_t buf_size, const void *buf); +H5_DLL herr_t H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, unsigned filters, + hsize_t *offset, size_t data_size, const void *buf); #endif /* _H5Dprivate_H */ diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h index b072e64..58c2a2b 100644 --- a/src/H5Dpublic.h +++ b/src/H5Dpublic.h @@ -118,8 +118,8 @@ H5_DLL herr_t H5Dread(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, void *buf/*out*/); H5_DLL herr_t H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, const void *buf); -H5_DLL herr_t H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, size_t *offset, size_t buf_size, - const void *buf); +H5_DLL herr_t H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offset, + size_t data_size, const void *buf); H5_DLL herr_t H5Diterate(void *buf, hid_t type_id, hid_t space_id, H5D_operator_t op, void *operator_data); H5_DLL herr_t H5Dvlen_reclaim(hid_t type_id, hid_t space_id, hid_t plist_id, void *buf); diff --git a/src/H5F.c b/src/H5F.c index 5d13ea6..b1f052d 100644 --- a/src/H5F.c +++ b/src/H5F.c @@ -1251,7 +1251,7 @@ H5F_open(const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id, * way for us to detect it here anyway). */ if(drvr->cmp) - tent_flags = flags & ~(H5F_ACC_CREAT|H5F_ACC_TRUNC|H5F_ACC_EXCL); + tent_flags = flags & ~(H5F_ACC_CREAT|H5F_ACC_TRUNC|H5F_ACC_EXCL|H5F_ACC_SYNC); else tent_flags = flags; @@ -1454,9 +1454,9 @@ H5Fcreate(const char *filename, unsigned flags, hid_t fcpl_id, hid_t fapl_id) if(!filename || !*filename) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file name") /* In this routine, we only accept the following flags: - * H5F_ACC_EXCL, H5F_ACC_TRUNC and H5F_ACC_DEBUG + * H5F_ACC_SYNC, H5F_ACC_EXCL, H5F_ACC_TRUNC and H5F_ACC_DEBUG */ - if(flags & ~(H5F_ACC_EXCL | H5F_ACC_TRUNC | H5F_ACC_DEBUG)) + if(flags & ~(H5F_ACC_SYNC | H5F_ACC_EXCL | H5F_ACC_TRUNC | H5F_ACC_DEBUG)) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid flags") /* The H5F_ACC_EXCL and H5F_ACC_TRUNC flags are mutually exclusive */ if((flags & H5F_ACC_EXCL) && (flags & H5F_ACC_TRUNC)) diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index 4201e07..085465c 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -357,6 +357,8 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) o_flags |= O_CREAT; if(H5F_ACC_EXCL & flags) o_flags |= O_EXCL; + if(H5F_ACC_SYNC & flags) + o_flags |= O_SYNC; /* Open the file */ if((fd = HDopen(name, o_flags, 0666)) < 0) { diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h index 334879c..2d4678b 100644 --- a/src/H5Fpkg.h +++ b/src/H5Fpkg.h @@ -63,7 +63,8 @@ #define H5F_SUPER_ALL_FLAGS (H5F_SUPER_WRITE_ACCESS | H5F_SUPER_FILE_OK) /* Mask for removing private file access flags */ -#define H5F_ACC_PUBLIC_FLAGS 0x001fu +/* #define H5F_ACC_PUBLIC_FLAGS 0x001fu */ +#define H5F_ACC_PUBLIC_FLAGS 0x003fu /* Free space section+aggregator merge flags */ #define H5F_FS_MERGE_METADATA 0x01 /* Section can merge with metadata aggregator */ diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 3b3af49..1ef40b0 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -234,7 +234,6 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; #define H5F_FILE_ID(F) ((F)->file_id) #define H5F_PARENT(F) ((F)->parent) #define H5F_NMOUNTS(F) ((F)->nmounts) -#define H5F_DRIVER(F) ((F)->shared->lf) #define H5F_DRIVER_ID(F) ((F)->shared->lf->driver_id) #define H5F_GET_FILENO(F,FILENUM) ((FILENUM) = (F)->shared->lf->fileno) #define H5F_HAS_FEATURE(F,FL) ((F)->shared->lf->feature_flags & (FL)) @@ -277,7 +276,6 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; #define H5F_FILE_ID(F) (H5F_get_file_id(F)) #define H5F_PARENT(F) (H5F_get_parent(F)) #define H5F_NMOUNTS(F) (H5F_get_nmounts(F)) -#define H5F_DRIVER(F) (H5F_get_driver(F)) #define H5F_DRIVER_ID(F) (H5F_get_driver_id(F)) #define H5F_GET_FILENO(F,FILENUM) (H5F_get_fileno((F), &(FILENUM))) #define H5F_HAS_FEATURE(F,FL) (H5F_has_feature(F,FL)) diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index f32b3e0..7b7acb4 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -48,6 +48,7 @@ #define H5F_ACC_EXCL (H5CHECK 0x0004u) /*fail if file already exists*/ #define H5F_ACC_DEBUG (H5CHECK 0x0008u) /*print debug info */ #define H5F_ACC_CREAT (H5CHECK 0x0010u) /*create non-existing files */ +#define H5F_ACC_SYNC (H5CHECK 0x0020u) /*no filesystem caching */ /* Value passed to H5Pset_elink_acc_flags to cause flags to be taken from the * parent file. */ diff --git a/src/H5Fquery.c b/src/H5Fquery.c index 1be5c50..c04ba24 100644 --- a/src/H5Fquery.c +++ b/src/H5Fquery.c @@ -919,35 +919,6 @@ H5F_get_driver_id(const H5F_t *f) /*------------------------------------------------------------------------- - * Function: H5F_get_driver - * - * Purpose: Quick and dirty routine to retrieve the file's 'driver' structure - * (Mainly added to stop non-file routines from poking about in the - * H5F_t data structure) - * - * Return: 'driver' structure on success/abort on failure (shouldn't fail) - * - * Programmer: Raymond Lu - * 30 July 2012 - * - *------------------------------------------------------------------------- - */ -H5FD_t * -H5F_get_driver(const H5F_t *f) -{ - /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ - FUNC_ENTER_NOAPI_NOINIT_NOERR - - HDassert(f); - HDassert(f->shared); - HDassert(f->shared->lf); - - FUNC_LEAVE_NOAPI(f->shared->lf) -} /* end H5F_get_driver() */ - - - -/*------------------------------------------------------------------------- * Function: H5F_get_fileno * * Purpose: Quick and dirty routine to retrieve the file's 'fileno' value diff --git a/test/Makefile.am b/test/Makefile.am index 0197e99..006e24b 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -40,7 +40,7 @@ TEST_PROG= testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe dectris_tst \ + set_extent ttsafe dectris_tst dectris_perf \ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -128,7 +128,7 @@ CHECK_CLEANFILES+=accum.h5 cmpd_dset.h5 compact_dataset.h5 dataset.h5 dset_offse earray.h5 efc[0-5].h5 log_vfd_out.log \ new_multi_file_v16-r.h5 new_multi_file_v16-s.h5 \ split_get_file_image_test-m.h5 split_get_file_image_test-r.h5 \ - file_image_core_test.h5.copy dectris.h5 + file_image_core_test.h5.copy dectris.h5 dectris_perf.h5 # Sources for testhdf5 executable testhdf5_SOURCES=testhdf5.c tarray.c tattr.c tchecksum.c tconfig.c tfile.c \ diff --git a/test/Makefile.in b/test/Makefile.in index ddc481e..21706d7 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -89,8 +89,8 @@ am__EXEEXT_1 = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \ unlink$(EXEEXT) big$(EXEEXT) mtime$(EXEEXT) fillval$(EXEEXT) \ mount$(EXEEXT) flush1$(EXEEXT) flush2$(EXEEXT) \ app_ref$(EXEEXT) enum$(EXEEXT) set_extent$(EXEEXT) \ - ttsafe$(EXEEXT) dectris_tst$(EXEEXT) getname$(EXEEXT) \ - vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ + ttsafe$(EXEEXT) dectris_tst$(EXEEXT) dectris_perf$(EXEEXT) \ + getname$(EXEEXT) vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ dtransform$(EXEEXT) reserved$(EXEEXT) cross_read$(EXEEXT) \ freespace$(EXEEXT) mf$(EXEEXT) farray$(EXEEXT) earray$(EXEEXT) \ btree2$(EXEEXT) fheap$(EXEEXT) file_image$(EXEEXT) @@ -148,6 +148,10 @@ dangle_SOURCES = dangle.c dangle_OBJECTS = dangle.$(OBJEXT) dangle_LDADD = $(LDADD) dangle_DEPENDENCIES = libh5test.la $(LIBHDF5) +dectris_perf_SOURCES = dectris_perf.c +dectris_perf_OBJECTS = dectris_perf.$(OBJEXT) +dectris_perf_LDADD = $(LDADD) +dectris_perf_DEPENDENCIES = libh5test.la $(LIBHDF5) dectris_tst_SOURCES = dectris_tst.c dectris_tst_OBJECTS = dectris_tst.$(OBJEXT) dectris_tst_LDADD = $(LDADD) @@ -430,23 +434,24 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ btree2.c cache.c cache_api.c cache_tagging.c cmpd_dset.c \ - cross_read.c dangle.c dectris_tst.c dsets.c dt_arith.c \ - dtransform.c dtypes.c earray.c efc.c enum.c err_compat.c \ - error_test.c extend.c external.c farray.c fheap.c file_image.c \ - fillval.c filter_fail.c flush1.c flush2.c freespace.c \ - gen_bad_ohdr.c gen_bogus.c gen_cross.c gen_deflate.c \ - gen_file_image.c gen_filespace.c gen_filters.c gen_new_array.c \ - gen_new_fill.c gen_new_group.c gen_new_mtime.c gen_new_super.c \ - gen_noencoder.c gen_nullspace.c gen_sizes_lheap.c \ - gen_specmetaread.c gen_udlinks.c getname.c gheap.c hyperslab.c \ - istore.c lheap.c links.c links_env.c mf.c mount.c mtime.c \ - ntypes.c objcopy.c ohdr.c pool.c reserved.c set_extent.c \ - space_overflow.c stab.c tcheck_version.c $(testhdf5_SOURCES) \ - testmeta.c $(ttsafe_SOURCES) unlink.c vfd.c + cross_read.c dangle.c dectris_perf.c dectris_tst.c dsets.c \ + dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ + err_compat.c error_test.c extend.c external.c farray.c fheap.c \ + file_image.c fillval.c filter_fail.c flush1.c flush2.c \ + freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ + gen_deflate.c gen_file_image.c gen_filespace.c gen_filters.c \ + gen_new_array.c gen_new_fill.c gen_new_group.c gen_new_mtime.c \ + gen_new_super.c gen_noencoder.c gen_nullspace.c \ + gen_sizes_lheap.c gen_specmetaread.c gen_udlinks.c getname.c \ + gheap.c hyperslab.c istore.c lheap.c links.c links_env.c mf.c \ + mount.c mtime.c ntypes.c objcopy.c ohdr.c pool.c reserved.c \ + set_extent.c space_overflow.c stab.c tcheck_version.c \ + $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c \ + vfd.c DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ - cmpd_dset.c cross_read.c dangle.c dectris_tst.c dsets.c \ - dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ + cmpd_dset.c cross_read.c dangle.c dectris_perf.c dectris_tst.c \ + dsets.c dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ err_compat.c error_test.c extend.c external.c farray.c fheap.c \ file_image.c fillval.c filter_fail.c flush1.c flush2.c \ freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ @@ -776,7 +781,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog accum.h5 cmpd_dset.h5 \ earray.h5 efc[0-5].h5 log_vfd_out.log new_multi_file_v16-r.h5 \ new_multi_file_v16-s.h5 split_get_file_image_test-m.h5 \ split_get_file_image_test-r.h5 file_image_core_test.h5.copy \ - dectris.h5 + dectris.h5 dectris_perf.h5 INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src # Test script for error_test and err_compat @@ -795,7 +800,7 @@ TEST_PROG = testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe dectris_tst \ + set_extent ttsafe dectris_tst dectris_perf \ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -958,6 +963,9 @@ cross_read$(EXEEXT): $(cross_read_OBJECTS) $(cross_read_DEPENDENCIES) dangle$(EXEEXT): $(dangle_OBJECTS) $(dangle_DEPENDENCIES) @rm -f dangle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dangle_OBJECTS) $(dangle_LDADD) $(LIBS) +dectris_perf$(EXEEXT): $(dectris_perf_OBJECTS) $(dectris_perf_DEPENDENCIES) + @rm -f dectris_perf$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dectris_perf_OBJECTS) $(dectris_perf_LDADD) $(LIBS) dectris_tst$(EXEEXT): $(dectris_tst_OBJECTS) $(dectris_tst_DEPENDENCIES) @rm -f dectris_tst$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dectris_tst_OBJECTS) $(dectris_tst_LDADD) $(LIBS) @@ -1160,6 +1168,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpd_dset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cross_read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dangle.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_tst.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dt_arith.Po@am__quote@ diff --git a/test/dectris_perf.c b/test/dectris_perf.c new file mode 100644 index 0000000..e743a19 --- /dev/null +++ b/test/dectris_perf.c @@ -0,0 +1,535 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This test is for the DECTRIS project to the H5PSIdirect_write function + * + */ + +#include "h5test.h" +#include +#include +#include +#include +#include +#include +#include + +const char *FILENAME[] = { + "dectris_perf", + "unix.raw", + NULL +}; + +#define DIRECT_DSET "direct_dset" +#define COMPRESSED_DSET "compressed_dset" +#define NO_COMPRESS_DSET "no_compress_dset" +#define RANK 3 +#define NX 100 +#define NY 100 +#define NZ 25 +#define CHUNK_NX 1 +#define CHUNK_NY 100 +#define CHUNK_NZ 25 + +#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) +char filename[1024]; +unsigned int *outbuf[NX]; +size_t data_size[NX]; +double total_size = 0.0; +unsigned int *direct_buf[NX]; +double MB = 1048576.0; + +/*-------------------------------------------------- + * Function to report IO rate + *-------------------------------------------------- + */ +void reportTime(struct timeval start, double mbytes) +{ + struct timeval timeval_stop,timeval_diff; + + /*end timing*/ + gettimeofday(&timeval_stop,NULL); + + /* Calculate the elapsed gettimeofday time */ + timeval_diff.tv_usec=timeval_stop.tv_usec-start.tv_usec; + timeval_diff.tv_sec=timeval_stop.tv_sec-start.tv_sec; + + if(timeval_diff.tv_usec<0) { + timeval_diff.tv_usec+=1000000; + timeval_diff.tv_sec--; + } /* end if */ + +/*printf("mbytes=%lf, sec=%lf, usec=%lf\n", mbytes, (double)timeval_diff.tv_sec, (double)timeval_diff.tv_usec);*/ + printf("MBytes/second: %lf\n", (double)mbytes/((double)timeval_diff.tv_sec+((double)timeval_diff.tv_usec/(double)1000000.0))); +} + +/*-------------------------------------------------- + * Create file, datasets, and initialize data + *-------------------------------------------------- + */ +int create_file(hid_t fapl_id) +{ + hid_t file; /* handles */ + hid_t fapl; + hid_t cparms; + hid_t dataspace, dataset; + hsize_t dims[RANK] = {NX, NY, NZ}; + hsize_t chunk_dims[RANK] ={CHUNK_NX, CHUNK_NY, CHUNK_NZ}; + unsigned int aggression = 9; /* Compression aggression setting */ + int ret; + int i, j, n; + + unsigned int *p; + size_t buf_size = CHUNK_NY*CHUNK_NZ*sizeof(unsigned int); + + const Bytef *z_src; + Bytef *z_dst; /*destination buffer */ + uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + uLong z_src_nbytes = (uLong)buf_size; + + TESTING("Create a file and dataset"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, NULL)) < 0) + TEST_ERROR; + + /* + * Create a new file. If file exists its contents will be overwritten. + */ + if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) + TEST_ERROR; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + TEST_ERROR; + + if(H5Pset_chunk( cparms, RANK, chunk_dims) < 0) + TEST_ERROR; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, NO_COMPRESS_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + /* Set compression */ + if(H5Pset_deflate( cparms, aggression) < 0) + TEST_ERROR; + + if((dataset = H5Dcreate2(file, DIRECT_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + + if((dataset = H5Dcreate2(file, COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + if(H5Fclose(file) < 0) + TEST_ERROR; + + if(H5Sclose(dataspace) < 0) + TEST_ERROR; + + if(H5Pclose(cparms) < 0) + TEST_ERROR; + + /* Initialize data for chunks */ + for(i = 0; i < NX; i++) { + p = direct_buf[i] = (unsigned int*)malloc(CHUNK_NY*CHUNK_NZ*sizeof(unsigned int)); + + for(j=0; j < CHUNK_NY*CHUNK_NZ; j++, p++) + *p = rand() % 65000; + + z_src = (const Bytef*)direct_buf[i]; + + z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + /* Allocate output (compressed) buffer */ + outbuf[i] = (unsigned int*)malloc((size_t)z_dst_nbytes); + z_dst = (Bytef *)outbuf[i]; + + /* Perform compression from the source to the destination buffer */ + ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); + + data_size[i] = (size_t)z_dst_nbytes; + total_size += data_size[i]; + + /* Check for various zlib errors */ + if(Z_BUF_ERROR == ret) { + fprintf(stderr, "overflow"); + TEST_ERROR; + } else if(Z_MEM_ERROR == ret) { + fprintf(stderr, "deflate memory error"); + TEST_ERROR; + } else if(Z_OK != ret) { + fprintf(stderr, "other deflate error"); + TEST_ERROR; + } + } + + + PASSED(); + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Fclose(file); + } H5E_END_TRY; + return 1; +} + +/*-------------------------------------------------- + * Benchmark the performance of the new function + *-------------------------------------------------- + */ +int +test_direct_write(hid_t fapl_id) +{ + hid_t file; /* handles */ + hid_t dataspace, dataset; + hid_t dxpl; + herr_t status; + int i; + + unsigned filter_mask = 0; + hsize_t offset[RANK+1] = {0, 0, 0, 0}; + + struct timeval timeval_start; + + TESTING("H5PSIdirect_write for DECTRIS project"); + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + TEST_ERROR; + + /* Start the timer */ + gettimeofday(&timeval_start,NULL); + + /* Reopen the file and dataset */ + if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + TEST_ERROR; + + if((dataset = H5Dopen(file, DIRECT_DSET, H5P_DEFAULT)) < 0) + TEST_ERROR; + + + /* Write the compressed chunk data repeatedly to cover all the chunks in the + * dataset, using the direct writing function. */ + for(i=0; i Date: Thu, 9 Aug 2012 14:59:43 -0500 Subject: [svn-r22653] Dectris project: I revised the code per Quincey's suggestion. Tested on koala. --- perform/Makefile.am | 5 +- perform/Makefile.in | 20 +- perform/dectris_perf.c | 640 +++++++++++++++++++++++++++++++++++++++++++++++++ src/H5Dio.c | 10 +- test/Makefile.am | 4 +- test/Makefile.in | 47 ++-- test/dectris_perf.c | 535 ----------------------------------------- test/dectris_tst.c | 10 +- 8 files changed, 692 insertions(+), 579 deletions(-) create mode 100644 perform/dectris_perf.c delete mode 100644 test/dectris_perf.c diff --git a/perform/Makefile.am b/perform/Makefile.am index 4b44b43..c4720f8 100644 --- a/perform/Makefile.am +++ b/perform/Makefile.am @@ -51,12 +51,12 @@ if BUILD_PARALLEL_CONDITIONAL TEST_PROG_PARA=h5perf perf endif # Serial test programs. -TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) +TEST_PROG = dectris_perf iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) # check_PROGRAMS will be built but not installed. Do not any executable # that is in bin_PROGRAMS already. Otherwise, it will be removed twice in # "make clean" and some systems, e.g., AIX, do not like it. -check_PROGRAMS= iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf +check_PROGRAMS= dectris_perf iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf h5perf_SOURCES=pio_perf.c pio_engine.c pio_timer.c h5perf_serial_SOURCES=sio_perf.c sio_engine.c sio_timer.c @@ -71,6 +71,7 @@ LDADD=$(LIBHDF5) h5perf_LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) h5perf_serial_LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_LDADD=$(LIBH5TEST) $(LIBHDF5) +dectris_perf_LDADD=$(LIBH5TEST) $(LIBHDF5) iopipe_LDADD=$(LIBH5TEST) $(LIBHDF5) zip_perf_LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_meta_LDADD=$(LIBH5TEST) $(LIBHDF5) diff --git a/perform/Makefile.in b/perform/Makefile.in index 39739a4..a702438 100644 --- a/perform/Makefile.in +++ b/perform/Makefile.in @@ -59,9 +59,9 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ @BUILD_PARALLEL_CONDITIONAL_TRUE@bin_PROGRAMS = \ @BUILD_PARALLEL_CONDITIONAL_TRUE@ h5perf_serial$(EXEEXT) \ @BUILD_PARALLEL_CONDITIONAL_TRUE@ h5perf$(EXEEXT) -check_PROGRAMS = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ - zip_perf$(EXEEXT) perf_meta$(EXEEXT) $(am__EXEEXT_2) \ - perf$(EXEEXT) +check_PROGRAMS = dectris_perf$(EXEEXT) iopipe$(EXEEXT) chunk$(EXEEXT) \ + overhead$(EXEEXT) zip_perf$(EXEEXT) perf_meta$(EXEEXT) \ + $(am__EXEEXT_2) perf$(EXEEXT) TESTS = $(check_PROGRAMS) subdir = perform ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -88,6 +88,9 @@ chunk_SOURCES = chunk.c chunk_OBJECTS = chunk.$(OBJEXT) chunk_LDADD = $(LDADD) chunk_DEPENDENCIES = $(LIBHDF5) +dectris_perf_SOURCES = dectris_perf.c +dectris_perf_OBJECTS = dectris_perf.$(OBJEXT) +dectris_perf_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) am_h5perf_OBJECTS = pio_perf.$(OBJEXT) pio_engine.$(OBJEXT) \ pio_timer.$(OBJEXT) h5perf_OBJECTS = $(am_h5perf_OBJECTS) @@ -148,10 +151,10 @@ am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = benchpar.c chunk.c $(h5perf_SOURCES) \ +SOURCES = benchpar.c chunk.c dectris_perf.c $(h5perf_SOURCES) \ $(h5perf_serial_SOURCES) iopipe.c mpi-perf.c overhead.c perf.c \ perf_meta.c zip_perf.c -DIST_SOURCES = benchpar.c chunk.c $(h5perf_SOURCES) \ +DIST_SOURCES = benchpar.c chunk.c dectris_perf.c $(h5perf_SOURCES) \ $(h5perf_serial_SOURCES) iopipe.c mpi-perf.c overhead.c perf.c \ perf_meta.c zip_perf.c ETAGS = etags @@ -457,7 +460,7 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # Parallel test programs. @BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf perf # Serial test programs. -TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) +TEST_PROG = dectris_perf iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) h5perf_SOURCES = pio_perf.c pio_engine.c pio_timer.c h5perf_serial_SOURCES = sio_perf.c sio_engine.c sio_timer.c @@ -471,6 +474,7 @@ LDADD = $(LIBHDF5) h5perf_LDADD = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) h5perf_serial_LDADD = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_LDADD = $(LIBH5TEST) $(LIBHDF5) +dectris_perf_LDADD = $(LIBH5TEST) $(LIBHDF5) iopipe_LDADD = $(LIBH5TEST) $(LIBHDF5) zip_perf_LDADD = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_meta_LDADD = $(LIBH5TEST) $(LIBHDF5) @@ -582,6 +586,9 @@ benchpar$(EXEEXT): $(benchpar_OBJECTS) $(benchpar_DEPENDENCIES) chunk$(EXEEXT): $(chunk_OBJECTS) $(chunk_DEPENDENCIES) @rm -f chunk$(EXEEXT) $(AM_V_CCLD)$(LINK) $(chunk_OBJECTS) $(chunk_LDADD) $(LIBS) +dectris_perf$(EXEEXT): $(dectris_perf_OBJECTS) $(dectris_perf_DEPENDENCIES) + @rm -f dectris_perf$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dectris_perf_OBJECTS) $(dectris_perf_LDADD) $(LIBS) h5perf$(EXEEXT): $(h5perf_OBJECTS) $(h5perf_DEPENDENCIES) @rm -f h5perf$(EXEEXT) $(AM_V_CCLD)$(h5perf_LINK) $(h5perf_OBJECTS) $(h5perf_LDADD) $(LIBS) @@ -615,6 +622,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchpar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chunk.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi-perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/overhead.Po@am__quote@ diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c new file mode 100644 index 0000000..cf0580c --- /dev/null +++ b/perform/dectris_perf.c @@ -0,0 +1,640 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This test is for the DECTRIS project to the H5PSIdirect_write function + * + */ + +#include "hdf5.h" +#include "H5private.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const char *FILENAME[] = { + "dectris_perf", + "unix.raw", + NULL +}; + +/* + * Print the current location on the standard output stream. + */ +#define FUNC __func__ +#define AT() printf (" at %s:%d in %s()...\n", \ + __FILE__, __LINE__, FUNC); +#define H5_FAILED() {puts("*FAILED*");fflush(stdout);} +#define TEST_ERROR {H5_FAILED(); AT(); goto error;} +#define TESTING(WHAT) {printf("Testing %-62s",WHAT); fflush(stdout);} +#define PASSED() {puts(" PASSED");fflush(stdout);} + +#define DIRECT_UNCOMPRESSED_DSET "direct_uncompressed_dset" +#define DIRECT_COMPRESSED_DSET "direct_compressed_dset" +#define REG_COMPRESSED_DSET "reg_compressed_dset" +#define REG_NO_COMPRESS_DSET "reg_no_compress_dset" +#define RANK 3 +#define NX 100 +#define NY 1000 +#define NZ 250 +#define CHUNK_NX 1 +#define CHUNK_NY 1000 +#define CHUNK_NZ 250 + +#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) +char filename[1024]; +unsigned int *outbuf[NX]; +size_t data_size[NX]; +double total_size = 0.0; +unsigned int *direct_buf[NX]; +double MB = 1048576.0; + +/*-------------------------------------------------- + * Function to report IO rate + *-------------------------------------------------- + */ +void reportTime(struct timeval start, double mbytes) +{ + struct timeval timeval_stop,timeval_diff; + + /*end timing*/ + gettimeofday(&timeval_stop,NULL); + + /* Calculate the elapsed gettimeofday time */ + timeval_diff.tv_usec=timeval_stop.tv_usec-start.tv_usec; + timeval_diff.tv_sec=timeval_stop.tv_sec-start.tv_sec; + + if(timeval_diff.tv_usec<0) { + timeval_diff.tv_usec+=1000000; + timeval_diff.tv_sec--; + } /* end if */ + +/*printf("mbytes=%lf, sec=%lf, usec=%lf\n", mbytes, (double)timeval_diff.tv_sec, (double)timeval_diff.tv_usec);*/ + printf("MBytes/second: %lf\n", (double)mbytes/((double)timeval_diff.tv_sec+((double)timeval_diff.tv_usec/(double)1000000.0))); +} + +/*-------------------------------------------------- + * Create file, datasets, and initialize data + *-------------------------------------------------- + */ +int create_file(hid_t fapl_id) +{ + hid_t file; /* handles */ + hid_t fapl; + hid_t cparms; + hid_t dataspace, dataset; + hsize_t dims[RANK] = {NX, NY, NZ}; + hsize_t chunk_dims[RANK] ={CHUNK_NX, CHUNK_NY, CHUNK_NZ}; + unsigned int aggression = 9; /* Compression aggression setting */ + int ret; + int i, j, n; + + int flag; + int unix_file; + + unsigned int *p; + size_t buf_size = CHUNK_NY*CHUNK_NZ*sizeof(unsigned int); + + const Bytef *z_src; + Bytef *z_dst; /*destination buffer */ + uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + uLong z_src_nbytes = (uLong)buf_size; + + TESTING("Create a file and dataset"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, NULL)) < 0) + TEST_ERROR; + + /* + * Create a new file. If file exists its contents will be overwritten. + */ + if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) + TEST_ERROR; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + TEST_ERROR; + + if(H5Pset_chunk( cparms, RANK, chunk_dims) < 0) + TEST_ERROR; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DIRECT_UNCOMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + if((dataset = H5Dcreate2(file, REG_NO_COMPRESS_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + /* Set compression */ + if(H5Pset_deflate( cparms, aggression) < 0) + TEST_ERROR; + + if((dataset = H5Dcreate2(file, DIRECT_COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + + if((dataset = H5Dcreate2(file, REG_COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + if(H5Fclose(file) < 0) + TEST_ERROR; + + if(H5Sclose(dataspace) < 0) + TEST_ERROR; + + if(H5Pclose(cparms) < 0) + TEST_ERROR; + + /* create a unix file*/ + flag = O_CREAT|O_TRUNC|O_WRONLY; + + if ((unix_file=open(FILENAME[1],flag,S_IRWXU))== -1) + TEST_ERROR; + + if (close(unix_file) < 0) + { + printf(" unable to close the file\n"); + TEST_ERROR; + } + + + /* Initialize data for chunks */ + for(i = 0; i < NX; i++) { + p = direct_buf[i] = (unsigned int*)malloc(CHUNK_NY*CHUNK_NZ*sizeof(unsigned int)); + + for(j=0; j < CHUNK_NY*CHUNK_NZ; j++, p++) + *p = rand() % 65000; + + z_src = (const Bytef*)direct_buf[i]; + + z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + /* Allocate output (compressed) buffer */ + outbuf[i] = (unsigned int*)malloc((size_t)z_dst_nbytes); + z_dst = (Bytef *)outbuf[i]; + + /* Perform compression from the source to the destination buffer */ + ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); + + data_size[i] = (size_t)z_dst_nbytes; + total_size += data_size[i]; + + /* Check for various zlib errors */ + if(Z_BUF_ERROR == ret) { + fprintf(stderr, "overflow"); + TEST_ERROR; + } else if(Z_MEM_ERROR == ret) { + fprintf(stderr, "deflate memory error"); + TEST_ERROR; + } else if(Z_OK != ret) { + fprintf(stderr, "other deflate error"); + TEST_ERROR; + } + } + + + PASSED(); + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Fclose(file); + } H5E_END_TRY; + return 1; +} + +/*-------------------------------------------------- + * Benchmark the performance of the new function + * with precompressed data. + *-------------------------------------------------- + */ +int +test_direct_write_uncompressed_data(hid_t fapl_id) +{ + hid_t file; /* handles */ + hid_t dataspace, dataset; + hid_t dxpl; + herr_t status; + int i; + + unsigned filter_mask = 0; + hsize_t offset[RANK+1] = {0, 0, 0, 0}; + + struct timeval timeval_start; + + TESTING("H5PSIdirect_write for uncompressed data"); + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + TEST_ERROR; + + /* Start the timer */ + gettimeofday(&timeval_start,NULL); + + /* Reopen the file and dataset */ + if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + TEST_ERROR; + + if((dataset = H5Dopen(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) + TEST_ERROR; + + + /* Write the compressed chunk data repeatedly to cover all the chunks in the + * dataset, using the direct writing function. */ + for(i=0; ishared->space); - dims = (hsize_t *)HDmalloc(ndims*sizeof(hsize_t)); + if(NULL == (dims = (hsize_t *)H5MM_malloc(ndims*sizeof(hsize_t)))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for dimensions") if(H5S_get_simple_extent_dims(dset->shared->space, dims, NULL) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") @@ -331,13 +332,14 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offse if(offset[i] % dset->shared->layout.u.chunk.dim[i]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary") - HDfree(dims); - /* write raw data */ if(H5D__chunk_direct_write(dset, dxpl_id, filters, offset, data_size, buf) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") done: + if(dims) + H5MM_free(dims); + FUNC_LEAVE_API(ret_value) } /* end H5PSIdirect_write() */ diff --git a/test/Makefile.am b/test/Makefile.am index 006e24b..0197e99 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -40,7 +40,7 @@ TEST_PROG= testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe dectris_tst dectris_perf \ + set_extent ttsafe dectris_tst \ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -128,7 +128,7 @@ CHECK_CLEANFILES+=accum.h5 cmpd_dset.h5 compact_dataset.h5 dataset.h5 dset_offse earray.h5 efc[0-5].h5 log_vfd_out.log \ new_multi_file_v16-r.h5 new_multi_file_v16-s.h5 \ split_get_file_image_test-m.h5 split_get_file_image_test-r.h5 \ - file_image_core_test.h5.copy dectris.h5 dectris_perf.h5 + file_image_core_test.h5.copy dectris.h5 # Sources for testhdf5 executable testhdf5_SOURCES=testhdf5.c tarray.c tattr.c tchecksum.c tconfig.c tfile.c \ diff --git a/test/Makefile.in b/test/Makefile.in index 21706d7..ddc481e 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -89,8 +89,8 @@ am__EXEEXT_1 = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \ unlink$(EXEEXT) big$(EXEEXT) mtime$(EXEEXT) fillval$(EXEEXT) \ mount$(EXEEXT) flush1$(EXEEXT) flush2$(EXEEXT) \ app_ref$(EXEEXT) enum$(EXEEXT) set_extent$(EXEEXT) \ - ttsafe$(EXEEXT) dectris_tst$(EXEEXT) dectris_perf$(EXEEXT) \ - getname$(EXEEXT) vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ + ttsafe$(EXEEXT) dectris_tst$(EXEEXT) getname$(EXEEXT) \ + vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ dtransform$(EXEEXT) reserved$(EXEEXT) cross_read$(EXEEXT) \ freespace$(EXEEXT) mf$(EXEEXT) farray$(EXEEXT) earray$(EXEEXT) \ btree2$(EXEEXT) fheap$(EXEEXT) file_image$(EXEEXT) @@ -148,10 +148,6 @@ dangle_SOURCES = dangle.c dangle_OBJECTS = dangle.$(OBJEXT) dangle_LDADD = $(LDADD) dangle_DEPENDENCIES = libh5test.la $(LIBHDF5) -dectris_perf_SOURCES = dectris_perf.c -dectris_perf_OBJECTS = dectris_perf.$(OBJEXT) -dectris_perf_LDADD = $(LDADD) -dectris_perf_DEPENDENCIES = libh5test.la $(LIBHDF5) dectris_tst_SOURCES = dectris_tst.c dectris_tst_OBJECTS = dectris_tst.$(OBJEXT) dectris_tst_LDADD = $(LDADD) @@ -434,24 +430,23 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ btree2.c cache.c cache_api.c cache_tagging.c cmpd_dset.c \ - cross_read.c dangle.c dectris_perf.c dectris_tst.c dsets.c \ - dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ - err_compat.c error_test.c extend.c external.c farray.c fheap.c \ - file_image.c fillval.c filter_fail.c flush1.c flush2.c \ - freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ - gen_deflate.c gen_file_image.c gen_filespace.c gen_filters.c \ - gen_new_array.c gen_new_fill.c gen_new_group.c gen_new_mtime.c \ - gen_new_super.c gen_noencoder.c gen_nullspace.c \ - gen_sizes_lheap.c gen_specmetaread.c gen_udlinks.c getname.c \ - gheap.c hyperslab.c istore.c lheap.c links.c links_env.c mf.c \ - mount.c mtime.c ntypes.c objcopy.c ohdr.c pool.c reserved.c \ - set_extent.c space_overflow.c stab.c tcheck_version.c \ - $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c \ - vfd.c + cross_read.c dangle.c dectris_tst.c dsets.c dt_arith.c \ + dtransform.c dtypes.c earray.c efc.c enum.c err_compat.c \ + error_test.c extend.c external.c farray.c fheap.c file_image.c \ + fillval.c filter_fail.c flush1.c flush2.c freespace.c \ + gen_bad_ohdr.c gen_bogus.c gen_cross.c gen_deflate.c \ + gen_file_image.c gen_filespace.c gen_filters.c gen_new_array.c \ + gen_new_fill.c gen_new_group.c gen_new_mtime.c gen_new_super.c \ + gen_noencoder.c gen_nullspace.c gen_sizes_lheap.c \ + gen_specmetaread.c gen_udlinks.c getname.c gheap.c hyperslab.c \ + istore.c lheap.c links.c links_env.c mf.c mount.c mtime.c \ + ntypes.c objcopy.c ohdr.c pool.c reserved.c set_extent.c \ + space_overflow.c stab.c tcheck_version.c $(testhdf5_SOURCES) \ + testmeta.c $(ttsafe_SOURCES) unlink.c vfd.c DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ - cmpd_dset.c cross_read.c dangle.c dectris_perf.c dectris_tst.c \ - dsets.c dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ + cmpd_dset.c cross_read.c dangle.c dectris_tst.c dsets.c \ + dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ err_compat.c error_test.c extend.c external.c farray.c fheap.c \ file_image.c fillval.c filter_fail.c flush1.c flush2.c \ freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ @@ -781,7 +776,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog accum.h5 cmpd_dset.h5 \ earray.h5 efc[0-5].h5 log_vfd_out.log new_multi_file_v16-r.h5 \ new_multi_file_v16-s.h5 split_get_file_image_test-m.h5 \ split_get_file_image_test-r.h5 file_image_core_test.h5.copy \ - dectris.h5 dectris_perf.h5 + dectris.h5 INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src # Test script for error_test and err_compat @@ -800,7 +795,7 @@ TEST_PROG = testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe dectris_tst dectris_perf \ + set_extent ttsafe dectris_tst \ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -963,9 +958,6 @@ cross_read$(EXEEXT): $(cross_read_OBJECTS) $(cross_read_DEPENDENCIES) dangle$(EXEEXT): $(dangle_OBJECTS) $(dangle_DEPENDENCIES) @rm -f dangle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dangle_OBJECTS) $(dangle_LDADD) $(LIBS) -dectris_perf$(EXEEXT): $(dectris_perf_OBJECTS) $(dectris_perf_DEPENDENCIES) - @rm -f dectris_perf$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(dectris_perf_OBJECTS) $(dectris_perf_LDADD) $(LIBS) dectris_tst$(EXEEXT): $(dectris_tst_OBJECTS) $(dectris_tst_DEPENDENCIES) @rm -f dectris_tst$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dectris_tst_OBJECTS) $(dectris_tst_LDADD) $(LIBS) @@ -1168,7 +1160,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpd_dset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cross_read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dangle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_tst.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dt_arith.Po@am__quote@ diff --git a/test/dectris_perf.c b/test/dectris_perf.c deleted file mode 100644 index e743a19..0000000 --- a/test/dectris_perf.c +++ /dev/null @@ -1,535 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * This test is for the DECTRIS project to the H5PSIdirect_write function - * - */ - -#include "h5test.h" -#include -#include -#include -#include -#include -#include -#include - -const char *FILENAME[] = { - "dectris_perf", - "unix.raw", - NULL -}; - -#define DIRECT_DSET "direct_dset" -#define COMPRESSED_DSET "compressed_dset" -#define NO_COMPRESS_DSET "no_compress_dset" -#define RANK 3 -#define NX 100 -#define NY 100 -#define NZ 25 -#define CHUNK_NX 1 -#define CHUNK_NY 100 -#define CHUNK_NZ 25 - -#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) -char filename[1024]; -unsigned int *outbuf[NX]; -size_t data_size[NX]; -double total_size = 0.0; -unsigned int *direct_buf[NX]; -double MB = 1048576.0; - -/*-------------------------------------------------- - * Function to report IO rate - *-------------------------------------------------- - */ -void reportTime(struct timeval start, double mbytes) -{ - struct timeval timeval_stop,timeval_diff; - - /*end timing*/ - gettimeofday(&timeval_stop,NULL); - - /* Calculate the elapsed gettimeofday time */ - timeval_diff.tv_usec=timeval_stop.tv_usec-start.tv_usec; - timeval_diff.tv_sec=timeval_stop.tv_sec-start.tv_sec; - - if(timeval_diff.tv_usec<0) { - timeval_diff.tv_usec+=1000000; - timeval_diff.tv_sec--; - } /* end if */ - -/*printf("mbytes=%lf, sec=%lf, usec=%lf\n", mbytes, (double)timeval_diff.tv_sec, (double)timeval_diff.tv_usec);*/ - printf("MBytes/second: %lf\n", (double)mbytes/((double)timeval_diff.tv_sec+((double)timeval_diff.tv_usec/(double)1000000.0))); -} - -/*-------------------------------------------------- - * Create file, datasets, and initialize data - *-------------------------------------------------- - */ -int create_file(hid_t fapl_id) -{ - hid_t file; /* handles */ - hid_t fapl; - hid_t cparms; - hid_t dataspace, dataset; - hsize_t dims[RANK] = {NX, NY, NZ}; - hsize_t chunk_dims[RANK] ={CHUNK_NX, CHUNK_NY, CHUNK_NZ}; - unsigned int aggression = 9; /* Compression aggression setting */ - int ret; - int i, j, n; - - unsigned int *p; - size_t buf_size = CHUNK_NY*CHUNK_NZ*sizeof(unsigned int); - - const Bytef *z_src; - Bytef *z_dst; /*destination buffer */ - uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); - uLong z_src_nbytes = (uLong)buf_size; - - TESTING("Create a file and dataset"); - - /* - * Create the data space with unlimited dimensions. - */ - if((dataspace = H5Screate_simple(RANK, dims, NULL)) < 0) - TEST_ERROR; - - /* - * Create a new file. If file exists its contents will be overwritten. - */ - if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) - TEST_ERROR; - - /* - * Modify dataset creation properties, i.e. enable chunking and compression - */ - if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) - TEST_ERROR; - - if(H5Pset_chunk( cparms, RANK, chunk_dims) < 0) - TEST_ERROR; - - /* - * Create a new dataset within the file using cparms - * creation properties. - */ - if((dataset = H5Dcreate2(file, NO_COMPRESS_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - /* Set compression */ - if(H5Pset_deflate( cparms, aggression) < 0) - TEST_ERROR; - - if((dataset = H5Dcreate2(file, DIRECT_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - - if((dataset = H5Dcreate2(file, COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - if(H5Fclose(file) < 0) - TEST_ERROR; - - if(H5Sclose(dataspace) < 0) - TEST_ERROR; - - if(H5Pclose(cparms) < 0) - TEST_ERROR; - - /* Initialize data for chunks */ - for(i = 0; i < NX; i++) { - p = direct_buf[i] = (unsigned int*)malloc(CHUNK_NY*CHUNK_NZ*sizeof(unsigned int)); - - for(j=0; j < CHUNK_NY*CHUNK_NZ; j++, p++) - *p = rand() % 65000; - - z_src = (const Bytef*)direct_buf[i]; - - z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); - /* Allocate output (compressed) buffer */ - outbuf[i] = (unsigned int*)malloc((size_t)z_dst_nbytes); - z_dst = (Bytef *)outbuf[i]; - - /* Perform compression from the source to the destination buffer */ - ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); - - data_size[i] = (size_t)z_dst_nbytes; - total_size += data_size[i]; - - /* Check for various zlib errors */ - if(Z_BUF_ERROR == ret) { - fprintf(stderr, "overflow"); - TEST_ERROR; - } else if(Z_MEM_ERROR == ret) { - fprintf(stderr, "deflate memory error"); - TEST_ERROR; - } else if(Z_OK != ret) { - fprintf(stderr, "other deflate error"); - TEST_ERROR; - } - } - - - PASSED(); - -error: - H5E_BEGIN_TRY { - H5Dclose(dataset); - H5Sclose(dataspace); - H5Pclose(cparms); - H5Fclose(file); - } H5E_END_TRY; - return 1; -} - -/*-------------------------------------------------- - * Benchmark the performance of the new function - *-------------------------------------------------- - */ -int -test_direct_write(hid_t fapl_id) -{ - hid_t file; /* handles */ - hid_t dataspace, dataset; - hid_t dxpl; - herr_t status; - int i; - - unsigned filter_mask = 0; - hsize_t offset[RANK+1] = {0, 0, 0, 0}; - - struct timeval timeval_start; - - TESTING("H5PSIdirect_write for DECTRIS project"); - - if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) - TEST_ERROR; - - /* Start the timer */ - gettimeofday(&timeval_start,NULL); - - /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) - TEST_ERROR; - - if((dataset = H5Dopen(file, DIRECT_DSET, H5P_DEFAULT)) < 0) - TEST_ERROR; - - - /* Write the compressed chunk data repeatedly to cover all the chunks in the - * dataset, using the direct writing function. */ - for(i=0; i Date: Thu, 9 Aug 2012 15:24:56 -0500 Subject: [svn-r22655] Dectris project - I changed the rank of the offset for H5PSIdirect_write from RANK+1 to RANK. But internally, it expands to RANK+1 as the library requires it to terminate with a zero. Tested on koala. --- perform/dectris_perf.c | 4 ++-- src/H5Dio.c | 19 ++++++++++++++----- test/dectris_tst.c | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c index cf0580c..abaa92f 100644 --- a/perform/dectris_perf.c +++ b/perform/dectris_perf.c @@ -261,7 +261,7 @@ test_direct_write_uncompressed_data(hid_t fapl_id) int i; unsigned filter_mask = 0; - hsize_t offset[RANK+1] = {0, 0, 0, 0}; + hsize_t offset[RANK] = {0, 0, 0}; struct timeval timeval_start; @@ -326,7 +326,7 @@ test_direct_write_compressed_data(hid_t fapl_id) int i; unsigned filter_mask = 0; - hsize_t offset[RANK+1] = {0, 0, 0, 0}; + hsize_t offset[RANK] = {0, 0, 0}; struct timeval timeval_start; diff --git a/src/H5Dio.c b/src/H5Dio.c index b55a263..845f4e9 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -291,6 +291,7 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offse H5D_t *dset = NULL; int ndims; hsize_t *dims = NULL; + hsize_t *internal_offset = NULL; int i; herr_t ret_value = SUCCEED; /* Return value */ @@ -319,21 +320,29 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offse if(NULL == (dims = (hsize_t *)H5MM_malloc(ndims*sizeof(hsize_t)))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for dimensions") + if(NULL == (internal_offset = (hsize_t *)H5MM_malloc((ndims+1)*sizeof(hsize_t)))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for offset") + if(H5S_get_simple_extent_dims(dset->shared->space, dims, NULL) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") - /* Make sure the offset doesn't exceed the dataset's dimensions */ - for(i=0; i dims[i]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") - /* Make sure the offset fall right on a chunk's boundary */ - for(i=0; ishared->layout.u.chunk.dim[i]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary") + + internal_offset[i] = offset[i]; + } + /* The library's chunking code requires the offset terminates with a zero */ + internal_offset[ndims] = 0; + /* write raw data */ - if(H5D__chunk_direct_write(dset, dxpl_id, filters, offset, data_size, buf) < 0) + if(H5D__chunk_direct_write(dset, dxpl_id, filters, internal_offset, data_size, buf) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") done: diff --git a/test/dectris_tst.c b/test/dectris_tst.c index 56d58ab..ccc4310 100644 --- a/test/dectris_tst.c +++ b/test/dectris_tst.c @@ -58,7 +58,7 @@ main (void) unsigned filter_mask = 0; int direct_buf[CHUNK_NX][CHUNK_NY]; int check_chunk[CHUNK_NX][CHUNK_NY]; - hsize_t offset[3] = {0, 0, 0}; + hsize_t offset[2] = {0, 0}; size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); const Bytef *z_src = (const Bytef*)(direct_buf); -- cgit v0.12 From 60daa9be2b660c4583f581c85ea2177b060c4fcb Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Thu, 30 Aug 2012 11:00:31 -0500 Subject: [svn-r22728] I forgot to include H5MMprivate.h header file for using H5MM_free function. Tested on koala. --- src/H5Dio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/H5Dio.c b/src/H5Dio.c index 845f4e9..306fc59 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -28,6 +28,7 @@ #include "H5Eprivate.h" /* Error handling */ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ #include "H5Sprivate.h" /* Dataspace */ #ifdef H5_HAVE_PARALLEL -- cgit v0.12 From 78b07da7aea98598a74bce25335b9435aa29cdb9 Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Thu, 6 Sep 2012 11:10:52 -0500 Subject: [svn-r22742] ported revisions 22738 to 22741 from the trunk --- testpar/t_dset.c | 12 ++++-------- tools/h5import/h5importtestutil.sh.in | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/testpar/t_dset.c b/testpar/t_dset.c index eac92a1..d9139d3 100644 --- a/testpar/t_dset.c +++ b/testpar/t_dset.c @@ -3373,8 +3373,6 @@ test_no_collective_cause_mode(int selection_mode) ret = H5Pget_mpio_no_collective_cause (dxpl_write, &no_collective_cause_local_write, &no_collective_cause_global_write); VRFY((ret >= 0), "retriving no collective cause succeeded" ); - /* Wait for file to be written */ - MPI_Barrier(MPI_COMM_WORLD); /*--------------------- * Test Read access @@ -3413,10 +3411,6 @@ test_no_collective_cause_mode(int selection_mode) } - /* clean up external file */ - if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL) - HDremove(FILE_EXTERNAL); - /* Release some resources */ if (sid) H5Sclose(sid); @@ -3438,6 +3432,10 @@ test_no_collective_cause_mode(int selection_mode) H5Fclose(fid); HDfree(buffer); + /* clean up external file */ + if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL) + HDremove(FILE_EXTERNAL); + return; } @@ -3626,8 +3624,6 @@ test_no_collective_cause_mode_filter(int selection_mode) if (fid) H5Fclose(fid); - /* Wait for file to be written */ - MPI_Barrier(MPI_COMM_WORLD); /*--------------------- * Test Read access diff --git a/tools/h5import/h5importtestutil.sh.in b/tools/h5import/h5importtestutil.sh.in index ba0743b..fd21dc1 100644 --- a/tools/h5import/h5importtestutil.sh.in +++ b/tools/h5import/h5importtestutil.sh.in @@ -331,7 +331,7 @@ TOOLTEST2 "/int/buin/32-bit" binuin32.h5 TESTING "STR" TOOLTEST $TESTDIR/txtstr.txt -c $TESTDIR/txtstr.conf -o txtstr.h5 TESTING "H5DUMP-STR" -TOOLTEST43 "/mytext/data" txtstr.h5 +TOOLTEST4 "/mytext/data" txtstr.h5 TESTING "BINARY I8 CR LF EOF" -- cgit v0.12 From 0cf58a4755eb6f3e7be64b0f05f2bb8ef6f7ad0d Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Mon, 29 Oct 2012 13:59:05 -0500 Subject: [svn-r22987] ported revisions from 22742 to 22986 from the trunk --- CMakeLists.txt | 4 +- MANIFEST | 455 +-- README.txt | 2 +- aclocal.m4 | 9 - bin/h5vers | 8 - bin/trace | 1 + c++/CMakeLists.txt | 5 + c++/src/CMakeLists.txt | 2 + c++/src/H5AbstractDs.cpp | 5 - c++/src/H5AbstractDs.h | 2 +- c++/src/H5ArrayType.h | 2 +- c++/src/H5AtomType.h | 2 +- c++/src/H5Attribute.cpp | 25 + c++/src/H5Attribute.h | 6 +- c++/src/H5Classes.h | 1 + c++/src/H5CommonFG.cpp | 28 +- c++/src/H5CompType.h | 20 +- c++/src/H5Cpp.h | 1 + c++/src/H5CppDoc.h | 2 +- c++/src/H5DataSet.cpp | 48 - c++/src/H5DataSet.h | 9 +- c++/src/H5DataSpace.h | 2 +- c++/src/H5DataType.cpp | 45 - c++/src/H5DataType.h | 7 +- c++/src/H5DcreatProp.h | 2 +- c++/src/H5DxferProp.h | 2 +- c++/src/H5EnumType.h | 2 +- c++/src/H5FaccProp.h | 2 +- c++/src/H5FcreatProp.h | 2 +- c++/src/H5File.cpp | 237 +- c++/src/H5File.h | 33 +- c++/src/H5FloatType.h | 2 +- c++/src/H5Group.cpp | 47 - c++/src/H5Group.h | 7 +- c++/src/H5IdComponent.h | 2 +- c++/src/H5IntType.h | 2 +- c++/src/H5Location.cpp | 669 +++++ c++/src/H5Location.h | 146 + c++/src/H5Object.cpp | 514 +--- c++/src/H5Object.h | 93 +- c++/src/H5PredType.h | 2 +- c++/src/H5PropList.h | 2 +- c++/src/H5StrType.h | 2 +- c++/src/H5VarLenType.h | 2 +- c++/src/Makefile.am | 17 +- c++/src/Makefile.in | 32 +- c++/test/dsets.cpp | 11 +- c++/test/h5cpputil.cpp | 1 + c++/test/tattr.cpp | 135 +- c++/test/tfile.cpp | 137 +- c++/test/th5s.cpp | 2 +- c++/test/trefer.cpp | 44 +- config/apple | 16 + config/cmake/ConfigureChecks.cmake | 5 +- config/ibm-aix | 8 +- config/lt_vers.am | 2 +- configure | 1262 +++++++-- configure.ac | 2357 ++++++++-------- examples/CMakeLists.txt | 5 + fortran/robodoc.rc | 82 +- fortran/src/H5FDmpiof.c | 37 + fortran/src/H5FDmpioff.f90 | 82 +- fortran/src/H5Gff.f90 | 2 +- fortran/src/H5Of.c | 655 ++++- fortran/src/H5Off.f90 | 468 ++- fortran/src/H5Off_F03.f90 | 232 +- fortran/src/H5Pff.f90 | 2 + fortran/src/H5Rf.c | 41 + fortran/src/H5Rff.f90 | 61 - fortran/src/H5Rff_F03.f90 | 174 +- fortran/src/H5Rff_F90.f90 | 65 + fortran/src/H5_f.c | 6 +- fortran/src/H5f90global.f90 | 14 +- fortran/src/H5f90kit.c | 2 +- fortran/src/H5f90proto.h | 37 +- fortran/src/H5match_types.c | 24 +- fortran/src/Makefile.in | 2 +- fortran/src/hdf5_fortrandll.def | 20 +- fortran/src/phdf5_fortrandll.def | 25 +- fortran/test/CMakeLists.txt | 1 + fortran/test/Makefile.am | 2 +- fortran/test/Makefile.in | 6 +- fortran/test/fortranlib_test_1_8.f90 | 141 - fortran/test/fortranlib_test_F03.f90 | 37 +- fortran/test/tH5A.f90 | 4 +- fortran/test/tH5O.f90 | 255 +- fortran/test/tH5O_F03.f90 | 547 ++++ fortran/test/tH5T.f90 | 4 +- fortran/test/tH5T_F03.f90 | 307 +- fortran/testpar/hyper.f90 | 19 + hl/CMakeLists.txt | 5 + hl/c++/src/Makefile.in | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/src/H5LTanalyze.c | 42 +- hl/src/H5LTanalyze.l | 1 + hl/src/H5TB.c | 446 +-- hl/src/H5TBpublic.h | 4 +- hl/src/Makefile.in | 2 +- hl/test/test_image.c | 2 +- hl/test/test_lite.c | 5 +- perform/CMakeLists.txt | 20 +- perform/Makefile.am | 3 +- perform/Makefile.in | 38 +- perform/mpi-perf.c | 373 --- release_docs/INSTALL_MinGW.txt | 269 ++ release_docs/INSTALL_Windows.txt | 1754 +----------- release_docs/INSTALL_Windows_From_Command_Line.txt | 168 -- release_docs/INSTALL_Windows_Short_NET.TXT | 10 - release_docs/INSTALL_Windows_Short_VS2005.TXT | 10 - release_docs/INSTALL_Windows_Short_VS2008.TXT | 192 -- release_docs/INSTALL_parallel | 2 +- release_docs/RELEASE.txt | 67 +- release_docs/USING_CMake.txt | 202 ++ release_docs/USING_Windows.txt | 4 +- release_docs/Using_CMake.txt | 202 -- src/CMakeLists.txt | 27 + src/H5AC.c | 18 +- src/H5ACprivate.h | 32 +- src/H5Dprivate.h | 2 - src/H5Edefin.h | 4 +- src/H5Einit.h | 4 +- src/H5Eint.c | 4 + src/H5Epubgen.h | 4 +- src/H5Eterm.h | 2 +- src/H5FDmpiposix.c | 6 +- src/H5Fprivate.h | 70 +- src/H5Fsfile.c | 8 +- src/H5P.c | 98 +- src/H5Pdapl.c | 16 +- src/H5Pdcpl.c | 536 +++- src/H5Pdeprec.c | 5 +- src/H5Pdxpl.c | 806 +++++- src/H5Pencdec.c | 813 ++++++ src/H5Pfapl.c | 831 +++++- src/H5Pfcpl.c | 391 ++- src/H5Pfmpl.c | 14 +- src/H5Pgcpl.c | 217 +- src/H5Pint.c | 472 +++- src/H5Plapl.c | 282 +- src/H5Plcpl.c | 11 +- src/H5Pocpl.c | 274 +- src/H5Pocpypl.c | 354 ++- src/H5Ppkg.h | 39 +- src/H5Pprivate.h | 3 +- src/H5Ppublic.h | 6 +- src/H5Pstrcpl.c | 120 +- src/H5T.c | 8 +- src/H5Tconv.c | 80 + src/H5Tpkg.h | 4 + src/H5Tprivate.h | 2 + src/H5Zprivate.h | 2 +- src/H5Ztrans.c | 8 +- src/H5err.txt | 6 +- src/H5public.h | 4 +- src/Makefile.am | 3 +- src/Makefile.in | 35 +- test/CMakeLists.txt | 49 + test/Makefile.am | 6 +- test/Makefile.in | 48 +- test/enc_dec_plist.c | 480 ++++ test/enc_dec_plist_with_endianess.c | 160 ++ test/enum.c | 102 +- test/file_image.c | 17 +- test/gen_plist.c | 435 +++ test/h5test.c | 20 +- test/h5test.h | 3 +- test/links.c | 87 +- test/mount.c | 75 +- test/testfiles/plist_files/acpl_be | Bin 0 -> 23 bytes test/testfiles/plist_files/acpl_le | Bin 0 -> 23 bytes test/testfiles/plist_files/dapl_be | Bin 0 -> 136 bytes test/testfiles/plist_files/dapl_le | Bin 0 -> 136 bytes test/testfiles/plist_files/dcpl_be | Bin 0 -> 221 bytes test/testfiles/plist_files/dcpl_le | Bin 0 -> 221 bytes test/testfiles/plist_files/dxpl_be | Bin 0 -> 229 bytes test/testfiles/plist_files/dxpl_le | Bin 0 -> 229 bytes test/testfiles/plist_files/fapl_be | Bin 0 -> 1402 bytes test/testfiles/plist_files/fapl_le | Bin 0 -> 1402 bytes test/testfiles/plist_files/fcpl_be | Bin 0 -> 413 bytes test/testfiles/plist_files/fcpl_le | Bin 0 -> 413 bytes test/testfiles/plist_files/gcpl_be | Bin 0 -> 113 bytes test/testfiles/plist_files/gcpl_le | Bin 0 -> 113 bytes test/testfiles/plist_files/lapl_be | Bin 0 -> 1502 bytes test/testfiles/plist_files/lapl_le | Bin 0 -> 1502 bytes test/testfiles/plist_files/lcpl_be | Bin 0 -> 47 bytes test/testfiles/plist_files/lcpl_le | Bin 0 -> 47 bytes test/testfiles/plist_files/ocpl_be | Bin 0 -> 86 bytes test/testfiles/plist_files/ocpl_le | Bin 0 -> 86 bytes test/testfiles/plist_files/ocpypl_be | Bin 0 -> 56 bytes test/testfiles/plist_files/ocpypl_le | Bin 0 -> 56 bytes test/testfiles/plist_files/strcpl_be | Bin 0 -> 23 bytes test/testfiles/plist_files/strcpl_le | Bin 0 -> 23 bytes test/testframe.c | 6 - test/testhdf5.h | 12 +- test/tgenprop.c | 122 +- testpar/CMakeLists.txt | 6 + testpar/Makefile.am | 3 +- testpar/Makefile.in | 6 +- testpar/t_dset.c | 94 +- testpar/t_prop.c | 452 +++ testpar/testpar.h | 3 + testpar/testphdf5.c | 3 + testpar/testphdf5.h | 1 + tools/CMakeLists.txt | 5 + tools/h5copy/h5copygentest.c | 10 +- tools/h5diff/testfiles/h5diff_220.txt | 2 - tools/h5diff/testfiles/h5diff_221.txt | 4 +- tools/h5diff/testfiles/h5diff_222.txt | 6 +- tools/h5diff/testfiles/h5diff_59.txt | 2 +- tools/h5diff/testfiles/h5diff_70.txt | 2 +- tools/h5diff/testfiles/h5diff_700.txt | 2 +- tools/h5diff/testfiles/h5diff_701.txt | 2 +- tools/h5diff/testfiles/h5diff_702.txt | 2 +- tools/h5diff/testfiles/h5diff_703.txt | 2 +- tools/h5diff/testfiles/h5diff_705.txt | 2 +- tools/h5diff/testfiles/h5diff_710.txt | 2 +- tools/h5dump/CMakeLists.txt | 14 + tools/h5dump/h5dump.c | 20 +- tools/h5dump/h5dump_xml.c | 3 +- tools/h5dump/h5dump_xml.h | 8 - tools/h5dump/h5dumpgentest.c | 419 +++ tools/h5dump/testh5dump.sh.in | 8 + tools/h5import/h5import.c | 369 ++- tools/h5import/h5import.h | 35 - tools/h5repack/CMakeLists.txt | 22 + tools/h5repack/h5repack.c | 1 + tools/h5repack/h5repack.sh.in | 21 + tools/h5repack/h5repack_copy.c | 20 + tools/h5repack/h5repacktst.c | 101 +- tools/h5repack/testfiles/h5repack_layout3.h5 | Bin 966904 -> 491840 bytes tools/lib/CMakeLists.txt | 5 + tools/lib/h5diff.c | 22 + tools/lib/h5diff_attr.c | 18 + tools/lib/h5diff_dset.c | 8 - tools/lib/h5tools.h | 2 +- tools/misc/talign.c | 23 +- tools/testfiles/tscalarattrintsize.ddl | 130 + tools/testfiles/tscalarattrintsize.h5 | Bin 0 -> 12944 bytes tools/testfiles/tscalarintsize.ddl | 130 + tools/testfiles/tscalarintsize.h5 | Bin 0 -> 15968 bytes vms/src/h5pubconf.h | 6 +- windows/COPYING | 16 - windows/InstallExamples.bat | 99 - windows/InstallcppExamples.BAT | 83 - windows/Installf90Examples.BAT | 140 - .../c++/examples/allcppexamples/allcppexamples.sln | 181 -- .../examples/allcppexamples/allcppexamples.vcproj | 127 - windows/c++/examples/chunkstest/chunkstest.vcproj | 401 --- .../examples/chunkstestdll/chunkstestdll.vcproj | 397 --- .../c++/examples/compoundtest/compoundtest.vcproj | 401 --- .../compoundtestdll/compoundtestdll.vcproj | 397 --- windows/c++/examples/createtest/createtest.vcproj | 401 --- .../examples/createtestdll/createtestdll.vcproj | 397 --- .../examples/extend_dstest/extend_dstest.vcproj | 401 --- .../extend_dstestdll/extend_dstestdll.vcproj | 397 --- .../c++/examples/h5grouptest/h5grouptest.vcproj | 401 --- .../examples/h5grouptestdll/h5grouptestdll.vcproj | 397 --- .../c++/examples/readdatatest/readdatatest.vcproj | 401 --- .../readdatatestdll/readdatatestdll.vcproj | 397 --- windows/c++/examples/testcppExamples.BAT | 59 - .../examples/writedatatest/writedatatest.vcproj | 402 --- .../writedatatestdll/writedatatestdll.vcproj | 397 --- windows/c++/test/H5srcdir_str.h | 22 - windows/c++/test/checkcpptests.bat | 98 - windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj | 465 --- .../test/testhdf5_cppdll/testhdf5_cppdll.vcproj | 465 --- windows/copy_hdf.bat | 29 - windows/examples/allexamples/allexamples.sln | 225 -- windows/examples/allexamples/allexamples.vcproj | 129 - .../examples/attributetest/attributetest.vcproj | 397 --- .../attributetestdll/attributetestdll.vcproj | 397 --- windows/examples/chunkread/chunkread.vcproj | 397 --- windows/examples/chunkreaddll/chunkreaddll.vcproj | 397 --- windows/examples/compoundtest/compoundtest.vcproj | 397 --- .../compoundtestdll/compoundtestdll.vcproj | 397 --- .../extendwritetest/extendwritetest.vcproj | 397 --- .../extendwritetestdll/extendwritetestdll.vcproj | 397 --- windows/examples/grouptest/grouptest.vcproj | 397 --- windows/examples/grouptestdll/grouptestdll.vcproj | 397 --- .../intermgrouptest/intermgrouptest.vcproj | 414 --- .../intermgrouptestdll/intermgrouptestdll.vcproj | 412 --- windows/examples/readtest/readtest.vcproj | 397 --- windows/examples/readtestdll/readtestdll.vcproj | 397 --- windows/examples/selectest/selectest.vcproj | 397 --- windows/examples/selectestdll/selectestdll.vcproj | 397 --- windows/examples/testExamples.bat | 64 - windows/examples/testExamples_exp_output.txt | 92 - windows/examples/writetest/writetest.vcproj | 397 --- windows/examples/writetestdll/writetestdll.vcproj | 397 --- .../examples/allf90examples/allf90examples.sln | 335 --- .../examples/allf90examples/allf90examples.vcproj | 128 - .../attreexampletest/attreexampletest.vfproj | 45 - .../attreexampletestdll/attreexampletestdll.vfproj | 45 - .../examples/compoundtest/compoundtest.vfproj | 45 - .../compoundtestdll/compoundtestdll.vfproj | 45 - .../dsetexampletest/dsetexampletest.vfproj | 45 - .../dsetexampletestdll/dsetexampletestdll.vfproj | 45 - .../fileexampletest/fileexampletest.vfproj | 45 - .../fileexampletestdll/fileexampletestdll.vfproj | 45 - .../groupexampletest/groupexampletest.vfproj | 45 - .../groupexampletestdll/groupexampletestdll.vfproj | 45 - .../grpdsetexampletest/grpdsetexampletest.vfproj | 45 - .../grpdsetexampletestdll.vfproj | 45 - .../fortran/examples/grpittest/grpittest.vfproj | 45 - .../examples/grpittestdll/grpittestdll.vfproj | 45 - .../grpsexampletest/grpsexampletest.vfproj | 45 - .../grpsexampletestdll/grpsexampletestdll.vfproj | 45 - .../examples/hyperslabtest/hyperslabtest.vfproj | 45 - .../hyperslabtestdll/hyperslabtestdll.vfproj | 45 - .../mountexampletest/mountexampletest.vfproj | 45 - .../mountexampletestdll/mountexampletestdll.vfproj | 45 - .../refobjexampletest/refobjexampletest.vfproj | 45 - .../refobjexampletestdll.vfproj | 45 - .../refregexampletest/refregexampletest.vfproj | 45 - .../refregexampletestdll.vfproj | 45 - .../rwdsetexampletest/rwdsetexampletest.vfproj | 45 - .../rwdsetexampletestdll.vfproj | 45 - .../examples/selecteletest/selecteletest.vfproj | 45 - .../selecteletestdll/selecteletestdll.vfproj | 45 - windows/fortran/test/checkfortrantests.bat | 102 - .../test/flush1_fortran/flush1_fortran.vfproj | 45 - .../flush1_fortrandll/flush1_fortrandll.vfproj | 45 - .../test/flush2_fortran/flush2_fortran.vfproj | 45 - .../flush2_fortrandll/flush2_fortrandll.vfproj | 45 - .../test/libtest_cstubdll/libtest_cstubdll.vcproj | 412 --- .../test/libtest_fortran/libtest_cstub.vcproj | 339 --- .../test/libtest_fortran/libtest_fortran.vfproj | 45 - .../libtest_fortrandll/libtest_fortrandll.vfproj | 45 - .../test/testhdf5_fortran/testhdf5_fortran.vfproj | 61 - .../testhdf5_fortran_1_8.vfproj | 52 - .../testhdf5_fortran_1_8dll.vfproj | 52 - .../testhdf5_fortrandll/testhdf5_fortrandll.vfproj | 65 - windows/hdf5bt.BAT | 240 -- windows/hdf5build.BAT | 303 -- windows/hdf5build_examples.BAT | 248 -- windows/hdf5check.BAT | 157 -- windows/hl/c++/test/checkhlcpptests.bat | 99 - .../hl_test_table_cpp/hl_test_table_cpp.vcproj | 399 --- .../hl_test_table_cppdll.vcproj | 399 --- .../hl/examples/allhlcexamples/allhlcexamples.sln | 437 --- .../examples/allhlcexamples/allhlcexamples.vcproj | 124 - windows/hl/examples/ex_ds1/ex_ds1.vcproj | 403 --- windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj | 403 --- windows/hl/examples/ex_image1/ex_image1.vcproj | 403 --- .../hl/examples/ex_image1dll/ex_image1dll.vcproj | 403 --- windows/hl/examples/ex_image2/ex_image2.vcproj | 361 --- .../hl/examples/ex_image2dll/ex_image2dll.vcproj | 361 --- windows/hl/examples/ex_lite1/ex_lite1.vcproj | 403 --- windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj | 403 --- windows/hl/examples/ex_lite2/ex_lite2.vcproj | 361 --- windows/hl/examples/ex_lite2dll/ex_lite2dll.vcproj | 361 --- windows/hl/examples/ex_lite3/ex_lite3.vcproj | 361 --- windows/hl/examples/ex_lite3dll/ex_lite3dll.vcproj | 361 --- windows/hl/examples/ex_table01/ex_table01.vcproj | 403 --- .../hl/examples/ex_table01dll/ex_table01dll.vcproj | 403 --- windows/hl/examples/ex_table02/ex_table02.vcproj | 361 --- .../hl/examples/ex_table02dll/ex_table02dll.vcproj | 361 --- windows/hl/examples/ex_table03/ex_table03.vcproj | 361 --- .../hl/examples/ex_table03dll/ex_table03dll.vcproj | 361 --- windows/hl/examples/ex_table04/ex_table04.vcproj | 361 --- .../hl/examples/ex_table04dll/ex_table04dll.vcproj | 361 --- windows/hl/examples/ex_table05/ex_table05.vcproj | 361 --- .../hl/examples/ex_table05dll/ex_table05dll.vcproj | 361 --- windows/hl/examples/ex_table06/ex_table06.vcproj | 361 --- .../hl/examples/ex_table06dll/ex_table06dll.vcproj | 361 --- windows/hl/examples/ex_table07/ex_table07.vcproj | 361 --- .../hl/examples/ex_table07dll/ex_table07dll.vcproj | 361 --- windows/hl/examples/ex_table08/ex_table08.vcproj | 361 --- .../hl/examples/ex_table08dll/ex_table08dll.vcproj | 361 --- windows/hl/examples/ex_table09/ex_table09.vcproj | 361 --- .../hl/examples/ex_table09dll/ex_table09dll.vcproj | 361 --- windows/hl/examples/ex_table10/ex_table10.vcproj | 361 --- .../hl/examples/ex_table10dll/ex_table10dll.vcproj | 361 --- windows/hl/examples/ex_table11/ex_table11.vcproj | 361 --- .../hl/examples/ex_table11dll/ex_table11dll.vcproj | 361 --- windows/hl/examples/ex_table12/ex_table12.vcproj | 361 --- .../hl/examples/ex_table12dll/ex_table12dll.vcproj | 361 --- windows/hl/examples/ptExampleFL/ptExampleFL.vcproj | 403 --- .../examples/ptExampleFLdll/ptExampleFLdll.vcproj | 403 --- windows/hl/examples/ptExampleVL/ptExampleVL.vcproj | 361 --- .../examples/ptExampleVLdll/ptExampleVLdll.vcproj | 361 --- windows/hl/examples/test_hl_cexamples.BAT | 100 - .../examples/allhlf90examples/allhlf90examples.sln | 49 - .../allhlf90examples/allhlf90examples.vcproj | 125 - windows/hl/fortran/examples/ex_lite/ex_lite.vfproj | 48 - .../fortran/examples/ex_litedll/ex_litedll.vfproj | 48 - .../hl/fortran/examples/test_hl_f90examples.BAT | 64 - windows/hl/fortran/test/checkhlfortrantests.bat | 101 - .../hl_test_image_fortran.vfproj | 46 - .../hl_test_image_fortrandll.vfproj | 48 - .../hl_test_lite_fortran.vfproj | 46 - .../hl_test_lite_fortrandll.vfproj | 48 - .../hl_test_table_fortran.vfproj | 46 - .../hl_test_table_fortrandll.vfproj | 48 - windows/hl/test/H5srcdir_str.h | 22 - windows/hl/test/checkhltests.bat | 151 - windows/hl/test/hl_test_ds/hl_test_ds.vcproj | 415 --- windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj | 413 --- windows/hl/test/hl_test_image/hl_test_image.vcproj | 396 --- .../test/hl_test_imagedll/hl_test_imagedll.vcproj | 394 --- windows/hl/test/hl_test_lite/hl_test_lite.vcproj | 396 --- .../hl/test/hl_test_litedll/hl_test_litedll.vcproj | 399 --- .../hl/test/hl_test_packet/hl_test_packet.vcproj | 401 --- .../hl_test_packetdll/hl_test_packetdll.vcproj | 399 --- windows/hl/test/hl_test_table/hl_test_table.vcproj | 396 --- .../test/hl_test_tabledll/hl_test_tabledll.vcproj | 399 --- windows/hl/tools/gif2h5/h52giftest.bat | 89 - windows/hl/tools/gifconv/gif2h5.vcproj | 419 --- windows/hl/tools/gifconv/h52gif.vcproj | 407 --- windows/hl/tools/gifconvdll/gif2h5dll.vcproj | 411 --- windows/hl/tools/gifconvdll/h52gifdll.vcproj | 399 --- windows/install_dll.BAT | 81 - windows/install_hlcexamples.BAT | 93 - windows/install_hlf90examples.BAT | 34 - windows/installhdf5lib.bat | 334 --- .../h5fort_type_defines/h5fort_type_defines.vfproj | 48 - .../h5fortran_detect/h5fortran_detect.vfproj | 48 - .../typegen/h5libsettings/h5libsettings.vcproj | 399 --- .../typegen/h5match_types/h5match_types.vcproj | 401 --- windows/misc/typegen/h5tinit/h5tinit.vcproj | 399 --- windows/perform/checkperformtests.bat | 102 - windows/perform/perf_serial/perf_serial.vcproj | 405 --- .../perform/perf_serialdll/perf_serialdll.vcproj | 406 --- windows/proj/all/all.sln | 2492 ---------------- windows/proj/all/all.vcproj | 124 - windows/proj/all_fortran/all_fortran.sln | 2965 -------------------- windows/proj/all_fortran/all_fortran.vcproj | 124 - windows/proj/hdf5/hdf5.vcproj | 1589 ----------- windows/proj/hdf5_cpp/hdf5_cpp.vcproj | 561 ---- windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj | 643 ----- windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj | 409 --- .../proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj | 487 ---- windows/proj/hdf5_fortran/hdf5_fortran.vfproj | 64 - .../proj/hdf5_fortrandll/hdf5_fortrandll.vfproj | 65 - windows/proj/hdf5_hl/hdf5_hl.vcproj | 365 --- windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj | 331 --- windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj | 410 --- .../hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj | 425 --- .../proj/hdf5_hl_fortran/hdf5_hl_f90cstub.vcproj | 527 ---- .../proj/hdf5_hl_fortran/hdf5_hl_fortran.vfproj | 49 - .../hdf5_hl_fortrandll/hdf5_hl_fortrandll.vfproj | 50 - windows/proj/hdf5_hldll/hdf5_hldll.vcproj | 441 --- windows/proj/hdf5dll/hdf5dll.vcproj | 1676 ----------- .../property_sheets/remove-posix-warnings.vsprops | 11 - windows/src/H5pubconf.h | 755 ----- windows/test/H5srcdir_str.h | 22 - windows/test/app_ref/app_ref.vcproj | 343 --- windows/test/app_refdll/app_refdll.vcproj | 343 --- windows/test/big/big.vcproj | 398 --- windows/test/bigdll/bigdll.vcproj | 392 --- windows/test/bittests/bittests.vcproj | 396 --- windows/test/bittestsdll/bittestsdll.vcproj | 388 --- windows/test/btree2/btree2.vcproj | 403 --- windows/test/btree2dll/btree2dll.vcproj | 399 --- windows/test/cache/cache.vcproj | 402 --- windows/test/cache_api/cache_api.vcproj | 407 --- windows/test/cache_apidll/cache_apidll.vcproj | 403 --- windows/test/cachedll/cachedll.vcproj | 398 --- windows/test/checktests.bat | 147 - windows/test/chunk/chunk.vcproj | 398 --- windows/test/chunk_info/chunk_info.vcproj | 343 --- windows/test/chunk_infodll/chunk_infodll.vcproj | 343 --- windows/test/chunkdll/chunkdll.vcproj | 388 --- windows/test/cmpd_dset/cmpd_dset.vcproj | 396 --- windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj | 392 --- windows/test/cross_read/cross_read.vcproj | 403 --- windows/test/cross_readdll/cross_readdll.vcproj | 399 --- windows/test/dangle/dangle.vcproj | 398 --- windows/test/dangledll/dangledll.vcproj | 390 --- windows/test/dsets/dsets.vcproj | 396 --- windows/test/dsetsdll/dsetsdll.vcproj | 392 --- windows/test/dt_arith/dt_arith.vcproj | 403 --- windows/test/dt_arithdll/dt_arithdll.vcproj | 399 --- windows/test/dtransform/dtransform.vcproj | 398 --- windows/test/dtransformdll/dtransformdll.vcproj | 390 --- windows/test/dtypes/dtypes.vcproj | 396 --- windows/test/dtypesdll/dtypesdll.vcproj | 392 --- windows/test/earray/earray.vcproj | 339 --- windows/test/earraydll/earraydll.vcproj | 339 --- windows/test/efc/efc.vcproj | 435 --- windows/test/efcdll/efcdll.vcproj | 431 --- windows/test/enum/enum.vcproj | 396 --- windows/test/enumdll/enumdll.vcproj | 392 --- windows/test/err_compat/err_compat.vcproj | 403 --- windows/test/err_compatdll/err_compatdll.vcproj | 399 --- windows/test/error_test/error_test.vcproj | 403 --- windows/test/error_testdll/error_testdll.vcproj | 399 --- windows/test/extend/extend.vcproj | 396 --- windows/test/extenddll/extenddll.vcproj | 392 --- windows/test/external/external.vcproj | 396 --- windows/test/externaldll/externaldll.vcproj | 392 --- windows/test/farray/farray.vcproj | 339 --- windows/test/farraydll/farraydll.vcproj | 339 --- windows/test/fheap/fheap.vcproj | 403 --- windows/test/fheapdll/fheapdll.vcproj | 399 --- windows/test/fillval/fillval.vcproj | 396 --- windows/test/fillvaldll/fillvaldll.vcproj | 392 --- windows/test/flush1/flush1.vcproj | 396 --- windows/test/flush1dll/flush1dll.vcproj | 392 --- windows/test/flush2/flush2.vcproj | 396 --- windows/test/flush2dll/flush2dll.vcproj | 392 --- windows/test/freespace/freespace.vcproj | 339 --- windows/test/freespacedll/freespacedll.vcproj | 339 --- windows/test/getname/getname.vcproj | 398 --- windows/test/getnamedll/getnamedll.vcproj | 398 --- windows/test/getub/getub.vcproj | 396 --- windows/test/gheap/gheap.vcproj | 396 --- windows/test/gheapdll/gheapdll.vcproj | 392 --- windows/test/hyperslab/hyperslab.vcproj | 396 --- windows/test/hyperslabdll/hyperslabdll.vcproj | 388 --- windows/test/iopipe/iopipe.vcproj | 396 --- windows/test/iopipedll/iopipedll.vcproj | 388 --- windows/test/istore/istore.vcproj | 396 --- windows/test/istoredll/istoredll.vcproj | 392 --- windows/test/lheap/lheap.vcproj | 396 --- windows/test/lheapdll/lheapdll.vcproj | 392 --- windows/test/libtest/libtest.vcproj | 340 --- windows/test/libtestdll/libtestdll.vcproj | 421 --- windows/test/links/links.vcproj | 396 --- windows/test/linksdll/linksdll.vcproj | 392 --- windows/test/mf/mf.vcproj | 339 --- windows/test/mfdll/mfdll.vcproj | 339 --- windows/test/mount/mount.vcproj | 396 --- windows/test/mountdll/mountdll.vcproj | 392 --- windows/test/mtime/mtime.vcproj | 396 --- windows/test/mtimedll/mtimedll.vcproj | 392 --- windows/test/ntypes/ntypes.vcproj | 398 --- windows/test/ntypesdll/ntypesdll.vcproj | 398 --- windows/test/objcopy/objcopy.vcproj | 401 --- windows/test/objcopydll/objcopydll.vcproj | 399 --- windows/test/ohdr/ohdr.vcproj | 396 --- windows/test/ohdrdll/ohdrdll.vcproj | 392 --- windows/test/overhead/overhead.vcproj | 396 --- windows/test/overheaddll/overheaddll.vcproj | 388 --- windows/test/pool/pool.vcproj | 403 --- windows/test/pooldll/pooldll.vcproj | 399 --- windows/test/reserved/reserved.vcproj | 398 --- windows/test/reserveddll/reserveddll.vcproj | 394 --- windows/test/set_extent/set_extent.vcproj | 397 --- windows/test/set_extentdll/set_extentdll.vcproj | 394 --- windows/test/stab/stab.vcproj | 396 --- windows/test/stabdll/stabdll.vcproj | 392 --- windows/test/tcheckversion/tcheckversion.vcproj | 396 --- .../test/tcheckversiondll/tcheckversiondll.vcproj | 392 --- windows/test/tellub/tellub.vcproj | 396 --- windows/test/testerror.bat | 204 -- windows/test/testhdf5/testhdf5.vcproj | 492 ---- windows/test/testhdf5dll/testhdf5dll.vcproj | 484 ---- windows/test/ttsafedll/ttsafedll.vcproj | 415 --- windows/test/unlink/unlink.vcproj | 396 --- windows/test/unlinkdll/unlinkdll.vcproj | 392 --- windows/test/vfd/vfd.vcproj | 403 --- windows/test/vfddll/vfddll.vcproj | 403 --- windows/tools/checktools.bat | 164 -- windows/tools/h5copy/h5copy.vcproj | 398 --- windows/tools/h5copy/testh5copy.bat | 448 --- windows/tools/h5debug/h5debug.vcproj | 396 --- windows/tools/h5debugdll/h5debugdll.vcproj | 388 --- windows/tools/h5diff/h5diff.vcproj | 404 --- windows/tools/h5diff/testh5diff.bat | 980 ------- windows/tools/h5diffdll/h5diffdll.vcproj | 394 --- windows/tools/h5dump/h5dump.vcproj | 396 --- windows/tools/h5dump/testh5dump.bat | 703 ----- windows/tools/h5dump/testh5dumpxml.bat | 224 -- windows/tools/h5dumpdll/h5dumpdll.vcproj | 390 --- windows/tools/h5import/h5import.vcproj | 390 --- windows/tools/h5import/h5importtestutil.bat | 181 -- windows/tools/h5importdll/h5importdll.vcproj | 382 --- windows/tools/h5jam/h5jam.vcproj | 396 --- windows/tools/h5jam/testh5jam.bat | 598 ---- windows/tools/h5ls/h5ls.vcproj | 396 --- windows/tools/h5ls/testh5ls.bat | 263 -- windows/tools/h5lsdll/h5lsdll.vcproj | 388 --- windows/tools/h5mkgrp/h5mkgrp.vcproj | 394 --- windows/tools/h5mkgrp/testh5mkgrp.bat | 254 -- windows/tools/h5repack/h5repack.bat | 802 ------ windows/tools/h5repack/h5repack.vcproj | 444 --- windows/tools/h5repackdll/h5repackdll.vcproj | 432 --- windows/tools/h5repart/h5repart.vcproj | 396 --- windows/tools/h5repart/testh5repart.bat | 148 - windows/tools/h5repartdll/h5repartdll.vcproj | 388 --- windows/tools/h5stat/h5stat.vcproj | 394 --- windows/tools/h5stat/testh5stat.bat | 183 -- windows/tools/h5statdll/h5statdll.vcproj | 392 --- windows/tools/h5unjam/h5unjam.vcproj | 396 --- windows/tools/talign/talign.vcproj | 398 --- windows/tools/taligndll/taligndll.vcproj | 394 --- windows/tools/testfiles/binread/binread.vcproj | 382 --- windows/tools/testfiles/h5difftst/h5difftst.vcproj | 416 --- windows/tools/testfiles/h5dumptst/h5dumptst.vcproj | 396 --- .../tools/testfiles/h5importtst/h5importtst.vcproj | 390 --- windows/tools/testfiles/h5jamtst/h5jamtst.vcproj | 396 --- .../tools/testfiles/h5repacktst/h5repacktst.vcproj | 440 --- .../h5repart_gentest/h5repart_gentest.vcproj | 394 --- .../tools/testfiles/h5reparttst/h5reparttst.vcproj | 394 --- .../testh5repack_detect_szip.vcproj | 396 --- .../testh5repack_detect_szipdll.vcproj | 390 --- windows/tools/toolslib/toolslib.vcproj | 399 --- windows/tools/toolslibdll/toolslibdll.vcproj | 398 --- 599 files changed, 15435 insertions(+), 126932 deletions(-) create mode 100644 c++/src/H5Location.cpp create mode 100644 c++/src/H5Location.h create mode 100644 fortran/test/tH5O_F03.f90 delete mode 100644 perform/mpi-perf.c create mode 100644 release_docs/INSTALL_MinGW.txt delete mode 100644 release_docs/INSTALL_Windows_From_Command_Line.txt delete mode 100644 release_docs/INSTALL_Windows_Short_NET.TXT delete mode 100644 release_docs/INSTALL_Windows_Short_VS2005.TXT delete mode 100644 release_docs/INSTALL_Windows_Short_VS2008.TXT create mode 100644 release_docs/USING_CMake.txt delete mode 100644 release_docs/Using_CMake.txt create mode 100644 src/H5Pencdec.c create mode 100644 test/enc_dec_plist.c create mode 100644 test/enc_dec_plist_with_endianess.c create mode 100644 test/gen_plist.c create mode 100644 test/testfiles/plist_files/acpl_be create mode 100644 test/testfiles/plist_files/acpl_le create mode 100644 test/testfiles/plist_files/dapl_be create mode 100644 test/testfiles/plist_files/dapl_le create mode 100644 test/testfiles/plist_files/dcpl_be create mode 100644 test/testfiles/plist_files/dcpl_le create mode 100644 test/testfiles/plist_files/dxpl_be create mode 100644 test/testfiles/plist_files/dxpl_le create mode 100644 test/testfiles/plist_files/fapl_be create mode 100644 test/testfiles/plist_files/fapl_le create mode 100644 test/testfiles/plist_files/fcpl_be create mode 100644 test/testfiles/plist_files/fcpl_le create mode 100644 test/testfiles/plist_files/gcpl_be create mode 100644 test/testfiles/plist_files/gcpl_le create mode 100644 test/testfiles/plist_files/lapl_be create mode 100644 test/testfiles/plist_files/lapl_le create mode 100644 test/testfiles/plist_files/lcpl_be create mode 100644 test/testfiles/plist_files/lcpl_le create mode 100644 test/testfiles/plist_files/ocpl_be create mode 100644 test/testfiles/plist_files/ocpl_le create mode 100644 test/testfiles/plist_files/ocpypl_be create mode 100644 test/testfiles/plist_files/ocpypl_le create mode 100644 test/testfiles/plist_files/strcpl_be create mode 100644 test/testfiles/plist_files/strcpl_le create mode 100644 testpar/t_prop.c create mode 100644 tools/testfiles/tscalarattrintsize.ddl create mode 100644 tools/testfiles/tscalarattrintsize.h5 create mode 100644 tools/testfiles/tscalarintsize.ddl create mode 100644 tools/testfiles/tscalarintsize.h5 delete mode 100644 windows/COPYING delete mode 100755 windows/InstallExamples.bat delete mode 100755 windows/InstallcppExamples.BAT delete mode 100755 windows/Installf90Examples.BAT delete mode 100644 windows/c++/examples/allcppexamples/allcppexamples.sln delete mode 100644 windows/c++/examples/allcppexamples/allcppexamples.vcproj delete mode 100644 windows/c++/examples/chunkstest/chunkstest.vcproj delete mode 100644 windows/c++/examples/chunkstestdll/chunkstestdll.vcproj delete mode 100644 windows/c++/examples/compoundtest/compoundtest.vcproj delete mode 100644 windows/c++/examples/compoundtestdll/compoundtestdll.vcproj delete mode 100644 windows/c++/examples/createtest/createtest.vcproj delete mode 100644 windows/c++/examples/createtestdll/createtestdll.vcproj delete mode 100644 windows/c++/examples/extend_dstest/extend_dstest.vcproj delete mode 100644 windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj delete mode 100644 windows/c++/examples/h5grouptest/h5grouptest.vcproj delete mode 100644 windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj delete mode 100644 windows/c++/examples/readdatatest/readdatatest.vcproj delete mode 100644 windows/c++/examples/readdatatestdll/readdatatestdll.vcproj delete mode 100755 windows/c++/examples/testcppExamples.BAT delete mode 100644 windows/c++/examples/writedatatest/writedatatest.vcproj delete mode 100644 windows/c++/examples/writedatatestdll/writedatatestdll.vcproj delete mode 100644 windows/c++/test/H5srcdir_str.h delete mode 100644 windows/c++/test/checkcpptests.bat delete mode 100644 windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj delete mode 100644 windows/c++/test/testhdf5_cppdll/testhdf5_cppdll.vcproj delete mode 100755 windows/copy_hdf.bat delete mode 100644 windows/examples/allexamples/allexamples.sln delete mode 100644 windows/examples/allexamples/allexamples.vcproj delete mode 100644 windows/examples/attributetest/attributetest.vcproj delete mode 100644 windows/examples/attributetestdll/attributetestdll.vcproj delete mode 100644 windows/examples/chunkread/chunkread.vcproj delete mode 100644 windows/examples/chunkreaddll/chunkreaddll.vcproj delete mode 100644 windows/examples/compoundtest/compoundtest.vcproj delete mode 100644 windows/examples/compoundtestdll/compoundtestdll.vcproj delete mode 100644 windows/examples/extendwritetest/extendwritetest.vcproj delete mode 100644 windows/examples/extendwritetestdll/extendwritetestdll.vcproj delete mode 100644 windows/examples/grouptest/grouptest.vcproj delete mode 100644 windows/examples/grouptestdll/grouptestdll.vcproj delete mode 100644 windows/examples/intermgrouptest/intermgrouptest.vcproj delete mode 100644 windows/examples/intermgrouptestdll/intermgrouptestdll.vcproj delete mode 100644 windows/examples/readtest/readtest.vcproj delete mode 100644 windows/examples/readtestdll/readtestdll.vcproj delete mode 100644 windows/examples/selectest/selectest.vcproj delete mode 100644 windows/examples/selectestdll/selectestdll.vcproj delete mode 100755 windows/examples/testExamples.bat delete mode 100644 windows/examples/testExamples_exp_output.txt delete mode 100644 windows/examples/writetest/writetest.vcproj delete mode 100644 windows/examples/writetestdll/writetestdll.vcproj delete mode 100644 windows/fortran/examples/allf90examples/allf90examples.sln delete mode 100644 windows/fortran/examples/allf90examples/allf90examples.vcproj delete mode 100644 windows/fortran/examples/attreexampletest/attreexampletest.vfproj delete mode 100644 windows/fortran/examples/attreexampletestdll/attreexampletestdll.vfproj delete mode 100644 windows/fortran/examples/compoundtest/compoundtest.vfproj delete mode 100644 windows/fortran/examples/compoundtestdll/compoundtestdll.vfproj delete mode 100644 windows/fortran/examples/dsetexampletest/dsetexampletest.vfproj delete mode 100644 windows/fortran/examples/dsetexampletestdll/dsetexampletestdll.vfproj delete mode 100644 windows/fortran/examples/fileexampletest/fileexampletest.vfproj delete mode 100644 windows/fortran/examples/fileexampletestdll/fileexampletestdll.vfproj delete mode 100644 windows/fortran/examples/groupexampletest/groupexampletest.vfproj delete mode 100644 windows/fortran/examples/groupexampletestdll/groupexampletestdll.vfproj delete mode 100644 windows/fortran/examples/grpdsetexampletest/grpdsetexampletest.vfproj delete mode 100644 windows/fortran/examples/grpdsetexampletestdll/grpdsetexampletestdll.vfproj delete mode 100644 windows/fortran/examples/grpittest/grpittest.vfproj delete mode 100644 windows/fortran/examples/grpittestdll/grpittestdll.vfproj delete mode 100644 windows/fortran/examples/grpsexampletest/grpsexampletest.vfproj delete mode 100644 windows/fortran/examples/grpsexampletestdll/grpsexampletestdll.vfproj delete mode 100644 windows/fortran/examples/hyperslabtest/hyperslabtest.vfproj delete mode 100644 windows/fortran/examples/hyperslabtestdll/hyperslabtestdll.vfproj delete mode 100644 windows/fortran/examples/mountexampletest/mountexampletest.vfproj delete mode 100644 windows/fortran/examples/mountexampletestdll/mountexampletestdll.vfproj delete mode 100644 windows/fortran/examples/refobjexampletest/refobjexampletest.vfproj delete mode 100644 windows/fortran/examples/refobjexampletestdll/refobjexampletestdll.vfproj delete mode 100644 windows/fortran/examples/refregexampletest/refregexampletest.vfproj delete mode 100644 windows/fortran/examples/refregexampletestdll/refregexampletestdll.vfproj delete mode 100644 windows/fortran/examples/rwdsetexampletest/rwdsetexampletest.vfproj delete mode 100644 windows/fortran/examples/rwdsetexampletestdll/rwdsetexampletestdll.vfproj delete mode 100644 windows/fortran/examples/selecteletest/selecteletest.vfproj delete mode 100644 windows/fortran/examples/selecteletestdll/selecteletestdll.vfproj delete mode 100644 windows/fortran/test/checkfortrantests.bat delete mode 100644 windows/fortran/test/flush1_fortran/flush1_fortran.vfproj delete mode 100644 windows/fortran/test/flush1_fortrandll/flush1_fortrandll.vfproj delete mode 100644 windows/fortran/test/flush2_fortran/flush2_fortran.vfproj delete mode 100644 windows/fortran/test/flush2_fortrandll/flush2_fortrandll.vfproj delete mode 100644 windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj delete mode 100644 windows/fortran/test/libtest_fortran/libtest_cstub.vcproj delete mode 100644 windows/fortran/test/libtest_fortran/libtest_fortran.vfproj delete mode 100644 windows/fortran/test/libtest_fortrandll/libtest_fortrandll.vfproj delete mode 100644 windows/fortran/test/testhdf5_fortran/testhdf5_fortran.vfproj delete mode 100644 windows/fortran/test/testhdf5_fortran_1_8/testhdf5_fortran_1_8.vfproj delete mode 100644 windows/fortran/test/testhdf5_fortran_1_8dll/testhdf5_fortran_1_8dll.vfproj delete mode 100644 windows/fortran/test/testhdf5_fortrandll/testhdf5_fortrandll.vfproj delete mode 100755 windows/hdf5bt.BAT delete mode 100755 windows/hdf5build.BAT delete mode 100644 windows/hdf5build_examples.BAT delete mode 100755 windows/hdf5check.BAT delete mode 100644 windows/hl/c++/test/checkhlcpptests.bat delete mode 100644 windows/hl/c++/test/hl_test_table_cpp/hl_test_table_cpp.vcproj delete mode 100644 windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj delete mode 100644 windows/hl/examples/allhlcexamples/allhlcexamples.sln delete mode 100644 windows/hl/examples/allhlcexamples/allhlcexamples.vcproj delete mode 100644 windows/hl/examples/ex_ds1/ex_ds1.vcproj delete mode 100644 windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj delete mode 100644 windows/hl/examples/ex_image1/ex_image1.vcproj delete mode 100644 windows/hl/examples/ex_image1dll/ex_image1dll.vcproj delete mode 100644 windows/hl/examples/ex_image2/ex_image2.vcproj delete mode 100644 windows/hl/examples/ex_image2dll/ex_image2dll.vcproj delete mode 100644 windows/hl/examples/ex_lite1/ex_lite1.vcproj delete mode 100644 windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj delete mode 100644 windows/hl/examples/ex_lite2/ex_lite2.vcproj delete mode 100644 windows/hl/examples/ex_lite2dll/ex_lite2dll.vcproj delete mode 100644 windows/hl/examples/ex_lite3/ex_lite3.vcproj delete mode 100644 windows/hl/examples/ex_lite3dll/ex_lite3dll.vcproj delete mode 100644 windows/hl/examples/ex_table01/ex_table01.vcproj delete mode 100644 windows/hl/examples/ex_table01dll/ex_table01dll.vcproj delete mode 100644 windows/hl/examples/ex_table02/ex_table02.vcproj delete mode 100644 windows/hl/examples/ex_table02dll/ex_table02dll.vcproj delete mode 100644 windows/hl/examples/ex_table03/ex_table03.vcproj delete mode 100644 windows/hl/examples/ex_table03dll/ex_table03dll.vcproj delete mode 100644 windows/hl/examples/ex_table04/ex_table04.vcproj delete mode 100644 windows/hl/examples/ex_table04dll/ex_table04dll.vcproj delete mode 100644 windows/hl/examples/ex_table05/ex_table05.vcproj delete mode 100644 windows/hl/examples/ex_table05dll/ex_table05dll.vcproj delete mode 100644 windows/hl/examples/ex_table06/ex_table06.vcproj delete mode 100644 windows/hl/examples/ex_table06dll/ex_table06dll.vcproj delete mode 100644 windows/hl/examples/ex_table07/ex_table07.vcproj delete mode 100644 windows/hl/examples/ex_table07dll/ex_table07dll.vcproj delete mode 100644 windows/hl/examples/ex_table08/ex_table08.vcproj delete mode 100644 windows/hl/examples/ex_table08dll/ex_table08dll.vcproj delete mode 100644 windows/hl/examples/ex_table09/ex_table09.vcproj delete mode 100644 windows/hl/examples/ex_table09dll/ex_table09dll.vcproj delete mode 100644 windows/hl/examples/ex_table10/ex_table10.vcproj delete mode 100644 windows/hl/examples/ex_table10dll/ex_table10dll.vcproj delete mode 100644 windows/hl/examples/ex_table11/ex_table11.vcproj delete mode 100644 windows/hl/examples/ex_table11dll/ex_table11dll.vcproj delete mode 100644 windows/hl/examples/ex_table12/ex_table12.vcproj delete mode 100644 windows/hl/examples/ex_table12dll/ex_table12dll.vcproj delete mode 100644 windows/hl/examples/ptExampleFL/ptExampleFL.vcproj delete mode 100644 windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj delete mode 100644 windows/hl/examples/ptExampleVL/ptExampleVL.vcproj delete mode 100644 windows/hl/examples/ptExampleVLdll/ptExampleVLdll.vcproj delete mode 100644 windows/hl/examples/test_hl_cexamples.BAT delete mode 100644 windows/hl/fortran/examples/allhlf90examples/allhlf90examples.sln delete mode 100644 windows/hl/fortran/examples/allhlf90examples/allhlf90examples.vcproj delete mode 100644 windows/hl/fortran/examples/ex_lite/ex_lite.vfproj delete mode 100644 windows/hl/fortran/examples/ex_litedll/ex_litedll.vfproj delete mode 100644 windows/hl/fortran/examples/test_hl_f90examples.BAT delete mode 100644 windows/hl/fortran/test/checkhlfortrantests.bat delete mode 100644 windows/hl/fortran/test/hl_test_image_fortran/hl_test_image_fortran.vfproj delete mode 100644 windows/hl/fortran/test/hl_test_image_fortrandll/hl_test_image_fortrandll.vfproj delete mode 100644 windows/hl/fortran/test/hl_test_lite_fortran/hl_test_lite_fortran.vfproj delete mode 100644 windows/hl/fortran/test/hl_test_lite_fortrandll/hl_test_lite_fortrandll.vfproj delete mode 100644 windows/hl/fortran/test/hl_test_table_fortran/hl_test_table_fortran.vfproj delete mode 100644 windows/hl/fortran/test/hl_test_table_fortrandll/hl_test_table_fortrandll.vfproj delete mode 100644 windows/hl/test/H5srcdir_str.h delete mode 100644 windows/hl/test/checkhltests.bat delete mode 100644 windows/hl/test/hl_test_ds/hl_test_ds.vcproj delete mode 100644 windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj delete mode 100644 windows/hl/test/hl_test_image/hl_test_image.vcproj delete mode 100644 windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj delete mode 100644 windows/hl/test/hl_test_lite/hl_test_lite.vcproj delete mode 100644 windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj delete mode 100644 windows/hl/test/hl_test_packet/hl_test_packet.vcproj delete mode 100644 windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj delete mode 100644 windows/hl/test/hl_test_table/hl_test_table.vcproj delete mode 100644 windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj delete mode 100644 windows/hl/tools/gif2h5/h52giftest.bat delete mode 100644 windows/hl/tools/gifconv/gif2h5.vcproj delete mode 100644 windows/hl/tools/gifconv/h52gif.vcproj delete mode 100644 windows/hl/tools/gifconvdll/gif2h5dll.vcproj delete mode 100644 windows/hl/tools/gifconvdll/h52gifdll.vcproj delete mode 100755 windows/install_dll.BAT delete mode 100755 windows/install_hlcexamples.BAT delete mode 100644 windows/install_hlf90examples.BAT delete mode 100755 windows/installhdf5lib.bat delete mode 100644 windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj delete mode 100644 windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj delete mode 100644 windows/misc/typegen/h5libsettings/h5libsettings.vcproj delete mode 100644 windows/misc/typegen/h5match_types/h5match_types.vcproj delete mode 100644 windows/misc/typegen/h5tinit/h5tinit.vcproj delete mode 100644 windows/perform/checkperformtests.bat delete mode 100644 windows/perform/perf_serial/perf_serial.vcproj delete mode 100644 windows/perform/perf_serialdll/perf_serialdll.vcproj delete mode 100755 windows/proj/all/all.sln delete mode 100644 windows/proj/all/all.vcproj delete mode 100644 windows/proj/all_fortran/all_fortran.sln delete mode 100644 windows/proj/all_fortran/all_fortran.vcproj delete mode 100644 windows/proj/hdf5/hdf5.vcproj delete mode 100644 windows/proj/hdf5_cpp/hdf5_cpp.vcproj delete mode 100644 windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj delete mode 100644 windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj delete mode 100644 windows/proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj delete mode 100644 windows/proj/hdf5_fortran/hdf5_fortran.vfproj delete mode 100644 windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj delete mode 100644 windows/proj/hdf5_hl/hdf5_hl.vcproj delete mode 100644 windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj delete mode 100644 windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj delete mode 100644 windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj delete mode 100644 windows/proj/hdf5_hl_fortran/hdf5_hl_f90cstub.vcproj delete mode 100644 windows/proj/hdf5_hl_fortran/hdf5_hl_fortran.vfproj delete mode 100644 windows/proj/hdf5_hl_fortrandll/hdf5_hl_fortrandll.vfproj delete mode 100644 windows/proj/hdf5_hldll/hdf5_hldll.vcproj delete mode 100644 windows/proj/hdf5dll/hdf5dll.vcproj delete mode 100644 windows/proj/property_sheets/remove-posix-warnings.vsprops delete mode 100644 windows/src/H5pubconf.h delete mode 100644 windows/test/H5srcdir_str.h delete mode 100644 windows/test/app_ref/app_ref.vcproj delete mode 100644 windows/test/app_refdll/app_refdll.vcproj delete mode 100644 windows/test/big/big.vcproj delete mode 100644 windows/test/bigdll/bigdll.vcproj delete mode 100644 windows/test/bittests/bittests.vcproj delete mode 100644 windows/test/bittestsdll/bittestsdll.vcproj delete mode 100644 windows/test/btree2/btree2.vcproj delete mode 100644 windows/test/btree2dll/btree2dll.vcproj delete mode 100644 windows/test/cache/cache.vcproj delete mode 100644 windows/test/cache_api/cache_api.vcproj delete mode 100644 windows/test/cache_apidll/cache_apidll.vcproj delete mode 100644 windows/test/cachedll/cachedll.vcproj delete mode 100644 windows/test/checktests.bat delete mode 100644 windows/test/chunk/chunk.vcproj delete mode 100644 windows/test/chunk_info/chunk_info.vcproj delete mode 100644 windows/test/chunk_infodll/chunk_infodll.vcproj delete mode 100644 windows/test/chunkdll/chunkdll.vcproj delete mode 100644 windows/test/cmpd_dset/cmpd_dset.vcproj delete mode 100644 windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj delete mode 100644 windows/test/cross_read/cross_read.vcproj delete mode 100644 windows/test/cross_readdll/cross_readdll.vcproj delete mode 100644 windows/test/dangle/dangle.vcproj delete mode 100644 windows/test/dangledll/dangledll.vcproj delete mode 100644 windows/test/dsets/dsets.vcproj delete mode 100644 windows/test/dsetsdll/dsetsdll.vcproj delete mode 100644 windows/test/dt_arith/dt_arith.vcproj delete mode 100644 windows/test/dt_arithdll/dt_arithdll.vcproj delete mode 100644 windows/test/dtransform/dtransform.vcproj delete mode 100644 windows/test/dtransformdll/dtransformdll.vcproj delete mode 100644 windows/test/dtypes/dtypes.vcproj delete mode 100644 windows/test/dtypesdll/dtypesdll.vcproj delete mode 100644 windows/test/earray/earray.vcproj delete mode 100644 windows/test/earraydll/earraydll.vcproj delete mode 100644 windows/test/efc/efc.vcproj delete mode 100644 windows/test/efcdll/efcdll.vcproj delete mode 100644 windows/test/enum/enum.vcproj delete mode 100644 windows/test/enumdll/enumdll.vcproj delete mode 100644 windows/test/err_compat/err_compat.vcproj delete mode 100644 windows/test/err_compatdll/err_compatdll.vcproj delete mode 100644 windows/test/error_test/error_test.vcproj delete mode 100644 windows/test/error_testdll/error_testdll.vcproj delete mode 100644 windows/test/extend/extend.vcproj delete mode 100644 windows/test/extenddll/extenddll.vcproj delete mode 100644 windows/test/external/external.vcproj delete mode 100644 windows/test/externaldll/externaldll.vcproj delete mode 100644 windows/test/farray/farray.vcproj delete mode 100644 windows/test/farraydll/farraydll.vcproj delete mode 100644 windows/test/fheap/fheap.vcproj delete mode 100644 windows/test/fheapdll/fheapdll.vcproj delete mode 100644 windows/test/fillval/fillval.vcproj delete mode 100644 windows/test/fillvaldll/fillvaldll.vcproj delete mode 100644 windows/test/flush1/flush1.vcproj delete mode 100644 windows/test/flush1dll/flush1dll.vcproj delete mode 100644 windows/test/flush2/flush2.vcproj delete mode 100644 windows/test/flush2dll/flush2dll.vcproj delete mode 100644 windows/test/freespace/freespace.vcproj delete mode 100644 windows/test/freespacedll/freespacedll.vcproj delete mode 100644 windows/test/getname/getname.vcproj delete mode 100644 windows/test/getnamedll/getnamedll.vcproj delete mode 100644 windows/test/getub/getub.vcproj delete mode 100644 windows/test/gheap/gheap.vcproj delete mode 100644 windows/test/gheapdll/gheapdll.vcproj delete mode 100644 windows/test/hyperslab/hyperslab.vcproj delete mode 100644 windows/test/hyperslabdll/hyperslabdll.vcproj delete mode 100644 windows/test/iopipe/iopipe.vcproj delete mode 100644 windows/test/iopipedll/iopipedll.vcproj delete mode 100644 windows/test/istore/istore.vcproj delete mode 100644 windows/test/istoredll/istoredll.vcproj delete mode 100644 windows/test/lheap/lheap.vcproj delete mode 100644 windows/test/lheapdll/lheapdll.vcproj delete mode 100644 windows/test/libtest/libtest.vcproj delete mode 100644 windows/test/libtestdll/libtestdll.vcproj delete mode 100644 windows/test/links/links.vcproj delete mode 100644 windows/test/linksdll/linksdll.vcproj delete mode 100644 windows/test/mf/mf.vcproj delete mode 100644 windows/test/mfdll/mfdll.vcproj delete mode 100644 windows/test/mount/mount.vcproj delete mode 100644 windows/test/mountdll/mountdll.vcproj delete mode 100644 windows/test/mtime/mtime.vcproj delete mode 100644 windows/test/mtimedll/mtimedll.vcproj delete mode 100644 windows/test/ntypes/ntypes.vcproj delete mode 100644 windows/test/ntypesdll/ntypesdll.vcproj delete mode 100644 windows/test/objcopy/objcopy.vcproj delete mode 100644 windows/test/objcopydll/objcopydll.vcproj delete mode 100644 windows/test/ohdr/ohdr.vcproj delete mode 100644 windows/test/ohdrdll/ohdrdll.vcproj delete mode 100644 windows/test/overhead/overhead.vcproj delete mode 100644 windows/test/overheaddll/overheaddll.vcproj delete mode 100644 windows/test/pool/pool.vcproj delete mode 100644 windows/test/pooldll/pooldll.vcproj delete mode 100644 windows/test/reserved/reserved.vcproj delete mode 100644 windows/test/reserveddll/reserveddll.vcproj delete mode 100644 windows/test/set_extent/set_extent.vcproj delete mode 100644 windows/test/set_extentdll/set_extentdll.vcproj delete mode 100644 windows/test/stab/stab.vcproj delete mode 100644 windows/test/stabdll/stabdll.vcproj delete mode 100644 windows/test/tcheckversion/tcheckversion.vcproj delete mode 100644 windows/test/tcheckversiondll/tcheckversiondll.vcproj delete mode 100644 windows/test/tellub/tellub.vcproj delete mode 100644 windows/test/testerror.bat delete mode 100644 windows/test/testhdf5/testhdf5.vcproj delete mode 100644 windows/test/testhdf5dll/testhdf5dll.vcproj delete mode 100644 windows/test/ttsafedll/ttsafedll.vcproj delete mode 100644 windows/test/unlink/unlink.vcproj delete mode 100644 windows/test/unlinkdll/unlinkdll.vcproj delete mode 100644 windows/test/vfd/vfd.vcproj delete mode 100644 windows/test/vfddll/vfddll.vcproj delete mode 100644 windows/tools/checktools.bat delete mode 100644 windows/tools/h5copy/h5copy.vcproj delete mode 100644 windows/tools/h5copy/testh5copy.bat delete mode 100644 windows/tools/h5debug/h5debug.vcproj delete mode 100644 windows/tools/h5debugdll/h5debugdll.vcproj delete mode 100644 windows/tools/h5diff/h5diff.vcproj delete mode 100644 windows/tools/h5diff/testh5diff.bat delete mode 100644 windows/tools/h5diffdll/h5diffdll.vcproj delete mode 100644 windows/tools/h5dump/h5dump.vcproj delete mode 100644 windows/tools/h5dump/testh5dump.bat delete mode 100644 windows/tools/h5dump/testh5dumpxml.bat delete mode 100644 windows/tools/h5dumpdll/h5dumpdll.vcproj delete mode 100644 windows/tools/h5import/h5import.vcproj delete mode 100644 windows/tools/h5import/h5importtestutil.bat delete mode 100644 windows/tools/h5importdll/h5importdll.vcproj delete mode 100644 windows/tools/h5jam/h5jam.vcproj delete mode 100644 windows/tools/h5jam/testh5jam.bat delete mode 100644 windows/tools/h5ls/h5ls.vcproj delete mode 100644 windows/tools/h5ls/testh5ls.bat delete mode 100644 windows/tools/h5lsdll/h5lsdll.vcproj delete mode 100644 windows/tools/h5mkgrp/h5mkgrp.vcproj delete mode 100644 windows/tools/h5mkgrp/testh5mkgrp.bat delete mode 100644 windows/tools/h5repack/h5repack.bat delete mode 100644 windows/tools/h5repack/h5repack.vcproj delete mode 100644 windows/tools/h5repackdll/h5repackdll.vcproj delete mode 100644 windows/tools/h5repart/h5repart.vcproj delete mode 100644 windows/tools/h5repart/testh5repart.bat delete mode 100644 windows/tools/h5repartdll/h5repartdll.vcproj delete mode 100644 windows/tools/h5stat/h5stat.vcproj delete mode 100644 windows/tools/h5stat/testh5stat.bat delete mode 100644 windows/tools/h5statdll/h5statdll.vcproj delete mode 100644 windows/tools/h5unjam/h5unjam.vcproj delete mode 100644 windows/tools/talign/talign.vcproj delete mode 100644 windows/tools/taligndll/taligndll.vcproj delete mode 100644 windows/tools/testfiles/binread/binread.vcproj delete mode 100644 windows/tools/testfiles/h5difftst/h5difftst.vcproj delete mode 100644 windows/tools/testfiles/h5dumptst/h5dumptst.vcproj delete mode 100644 windows/tools/testfiles/h5importtst/h5importtst.vcproj delete mode 100644 windows/tools/testfiles/h5jamtst/h5jamtst.vcproj delete mode 100644 windows/tools/testfiles/h5repacktst/h5repacktst.vcproj delete mode 100644 windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj delete mode 100644 windows/tools/testfiles/h5reparttst/h5reparttst.vcproj delete mode 100644 windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj delete mode 100644 windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj delete mode 100644 windows/tools/toolslib/toolslib.vcproj delete mode 100644 windows/tools/toolslibdll/toolslibdll.vcproj diff --git a/CMakeLists.txt b/CMakeLists.txt index 340c4ec..0d2db1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -916,7 +916,7 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED) ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY ) INSTALL ( - FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF5_PACKAGE_EXT}-config-version.cmake + FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/${HDF5_PACKAGE} COMPONENT configinstall ) @@ -955,7 +955,7 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED) IF (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs") SET (release_files ${HDF5_SOURCE_DIR}/release_docs/CMake.txt - ${HDF5_SOURCE_DIR}/release_docs/Using_CMake.txt + ${HDF5_SOURCE_DIR}/release_docs/USING_CMake.txt ${HDF5_SOURCE_DIR}/release_docs/COPYING ${HDF5_SOURCE_DIR}/release_docs/HISTORY-1_9.txt ${HDF5_SOURCE_DIR}/release_docs/INSTALL diff --git a/MANIFEST b/MANIFEST index fa9ff05..23a75fd 100644 --- a/MANIFEST +++ b/MANIFEST @@ -349,6 +349,7 @@ ./fortran/test/tH5I.f90 ./fortran/test/tH5L_F03.f90 ./fortran/test/tH5O.f90 +./fortran/test/tH5O_F03.f90 ./fortran/test/tH5P_F03.f90 ./fortran/test/tH5P.f90 ./fortran/test/tH5R.f90 @@ -441,6 +442,8 @@ ./c++/src/H5IntType.h ./c++/src/H5Library.cpp ./c++/src/H5Library.h +./c++/src/H5Location.cpp +./c++/src/H5Location.h ./c++/src/H5Object.cpp ./c++/src/H5Object.h ./c++/src/H5PredType.cpp @@ -494,7 +497,6 @@ ./perform/chunk.c ./perform/gen_report.pl ./perform/iopipe.c -./perform/mpi-perf.c ./perform/overhead.c ./perform/perf.c ./perform/perf_meta.c @@ -514,22 +516,19 @@ ./perform/sio_timer.h ./perform/zip_perf.c +./release_docs/CMake.txt ./release_docs/COPYING ./release_docs/HISTORY-1_0-1_8_0_rc3.txt ./release_docs/HISTORY-1_9.txt ./release_docs/INSTALL ./release_docs/INSTALL_Cygwin.txt +./release_docs/INSTALL_MinGW.txt +./release_docs/INSTALL_parallel ./release_docs/INSTALL_VMS.txt ./release_docs/INSTALL_Windows.txt -./release_docs/USING_Windows.txt -./release_docs/INSTALL_Windows_From_Command_Line.txt -./release_docs/INSTALL_Windows_Short_NET.TXT -./release_docs/INSTALL_Windows_Short_VS2005.TXT -./release_docs/INSTALL_Windows_Short_VS2008.TXT -./release_docs/CMake.txt -./release_docs/INSTALL_parallel ./release_docs/RELEASE.txt -./release_docs/Using_CMake.txt +./release_docs/USING_CMake.txt +./release_docs/USING_Windows.txt ./src/.indent.pro _DO_NOT_DISTRIBUTE_ ./src/hdf5.lnt _DO_NOT_DISTRIBUTE_ @@ -822,6 +821,7 @@ ./src/H5Pdcpl.c ./src/H5Pdeprec.c ./src/H5Pdxpl.c +./src/H5Pencdec.c ./src/H5Pfapl.c ./src/H5Pfcpl.c ./src/H5Pfmpl.c @@ -947,6 +947,8 @@ ./test/dtransform.c ./test/earray.c ./test/efc.c +./test/enc_dec_plist.c +./test/enc_dec_plist_with_endianess.c ./test/enum.c ./test/extend.c ./test/external.c @@ -989,6 +991,7 @@ ./test/gen_old_group.c _DO_NOT_DISTRIBUTE_ ./test/gen_old_layout.c _DO_NOT_DISTRIBUTE_ ./test/gen_old_mtime.c _DO_NOT_DISTRIBUTE_ +./test/gen_plist.c _DO_NOT_DISTRIBUTE_ ./test/gen_sizes_lheap.c _DO_NOT_DISTRIBUTE_ ./test/gen_specmetaread.c _DO_NOT_DISTRIBUTE_ ./test/gen_udlinks.c _DO_NOT_DISTRIBUTE_ @@ -1079,23 +1082,48 @@ ./test/testfiles/error_test_1 ./test/testfiles/error_test_2 ./test/testfiles/links_env.out +./test/testfiles/plist_files/acpl_be +./test/testfiles/plist_files/acpl_le +./test/testfiles/plist_files/dapl_be +./test/testfiles/plist_files/dapl_le +./test/testfiles/plist_files/dcpl_be +./test/testfiles/plist_files/dcpl_le +./test/testfiles/plist_files/dxpl_be +./test/testfiles/plist_files/dxpl_le +./test/testfiles/plist_files/fapl_be +./test/testfiles/plist_files/fapl_le +./test/testfiles/plist_files/fcpl_be +./test/testfiles/plist_files/fcpl_le +./test/testfiles/plist_files/gcpl_be +./test/testfiles/plist_files/gcpl_le +./test/testfiles/plist_files/lapl_be +./test/testfiles/plist_files/lapl_le +./test/testfiles/plist_files/lcpl_be +./test/testfiles/plist_files/lcpl_le +./test/testfiles/plist_files/ocpl_be +./test/testfiles/plist_files/ocpl_le +./test/testfiles/plist_files/ocpypl_be +./test/testfiles/plist_files/ocpypl_le +./test/testfiles/plist_files/strcpl_be +./test/testfiles/plist_files/strcpl_le ./testpar/COPYING ./testpar/Makefile.am ./testpar/Makefile.in ./testpar/t_cache.c +./testpar/t_chunk_alloc.c +./testpar/t_coll_chunk.c ./testpar/t_dset.c ./testpar/t_file.c ./testpar/t_file_image.c +./testpar/t_filter_read.c ./testpar/t_mdset.c ./testpar/t_mpi.c ./testpar/t_ph5basic.c ./testpar/t_pflush1.c ./testpar/t_pflush2.c -./testpar/t_chunk_alloc.c -./testpar/t_coll_chunk.c -./testpar/t_filter_read.c ./testpar/t_posix_compliant.c +./testpar/t_prop.c ./testpar/t_shapesame.c ./testpar/t_span_tree.c ./testpar/testpar.h @@ -1449,6 +1477,10 @@ ./tools/testfiles/topaque.h5 ./tools/testfiles/tsaf.ddl ./tools/testfiles/tsaf.h5 +./tools/testfiles/tscalarattrintsize.ddl +./tools/testfiles/tscalarattrintsize.h5 +./tools/testfiles/tscalarintsize.ddl +./tools/testfiles/tscalarintsize.h5 ./tools/testfiles/tscaleoffset.ddl ./tools/testfiles/tslink-1.ddl ./tools/testfiles/tslink-2.ddl @@ -2356,402 +2388,3 @@ ./tools/h5stat/CMakeLists.txt ./tools/lib/CMakeLists.txt ./tools/misc/CMakeLists.txt - - -# Windows-specific Files. -# Batch scripts -./windows/copy_hdf.bat -./windows/COPYING -./windows/hdf5bt.BAT -./windows/hdf5build.BAT -./windows/hdf5build_examples.BAT -./windows/hdf5check.BAT -./windows/InstallcppExamples.BAT -./windows/install_dll.BAT -./windows/InstallExamples.bat -./windows/Installf90Examples.BAT -./windows/installhdf5lib.bat -./windows/install_hlcexamples.BAT -./windows/install_hlf90examples.BAT - -# C++ Examples -./windows/c++/examples/testcppExamples.BAT -./windows/c++/examples/allcppexamples/allcppexamples.sln -./windows/c++/examples/allcppexamples/allcppexamples.vcproj -./windows/c++/examples/chunkstest/chunkstest.vcproj -./windows/c++/examples/chunkstestdll/chunkstestdll.vcproj -./windows/c++/examples/compoundtest/compoundtest.vcproj -./windows/c++/examples/compoundtestdll/compoundtestdll.vcproj -./windows/c++/examples/createtest/createtest.vcproj -./windows/c++/examples/createtestdll/createtestdll.vcproj -./windows/c++/examples/extend_dstest/extend_dstest.vcproj -./windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj -./windows/c++/examples/h5grouptest/h5grouptest.vcproj -./windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj -./windows/c++/examples/readdatatest/readdatatest.vcproj -./windows/c++/examples/readdatatestdll/readdatatestdll.vcproj -./windows/c++/examples/writedatatest/writedatatest.vcproj -./windows/c++/examples/writedatatestdll/writedatatestdll.vcproj - -# C++ Tests -./windows/c++/test/H5srcdir_str.h -./windows/c++/test/checkcpptests.bat -./windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj -./windows/c++/test/testhdf5_cppdll/testhdf5_cppdll.vcproj - -# Library Examples -./windows/examples/testExamples.bat -./windows/examples/testExamples_exp_output.txt -./windows/examples/allexamples/allexamples.sln -./windows/examples/allexamples/allexamples.vcproj -./windows/examples/attributetest/attributetest.vcproj -./windows/examples/attributetestdll/attributetestdll.vcproj -./windows/examples/chunkread/chunkread.vcproj -./windows/examples/chunkreaddll/chunkreaddll.vcproj -./windows/examples/compoundtest/compoundtest.vcproj -./windows/examples/compoundtestdll/compoundtestdll.vcproj -./windows/examples/extendwritetest/extendwritetest.vcproj -./windows/examples/extendwritetestdll/extendwritetestdll.vcproj -./windows/examples/grouptest/grouptest.vcproj -./windows/examples/grouptestdll/grouptestdll.vcproj -./windows/examples/intermgrouptest/intermgrouptest.vcproj -./windows/examples/intermgrouptestdll/intermgrouptestdll.vcproj -./windows/examples/readtest/readtest.vcproj -./windows/examples/readtestdll/readtestdll.vcproj -./windows/examples/selectest/selectest.vcproj -./windows/examples/selectestdll/selectestdll.vcproj -./windows/examples/writetest/writetest.vcproj -./windows/examples/writetestdll/writetestdll.vcproj - -# Fortran Examples -./windows/fortran/examples/allf90examples/allf90examples.sln -./windows/fortran/examples/allf90examples/allf90examples.vcproj -./windows/fortran/examples/attreexampletest/attreexampletest.vfproj -./windows/fortran/examples/attreexampletestdll/attreexampletestdll.vfproj -./windows/fortran/examples/compoundtest/compoundtest.vfproj -./windows/fortran/examples/compoundtestdll/compoundtestdll.vfproj -./windows/fortran/examples/dsetexampletest/dsetexampletest.vfproj -./windows/fortran/examples/dsetexampletestdll/dsetexampletestdll.vfproj -./windows/fortran/examples/fileexampletest/fileexampletest.vfproj -./windows/fortran/examples/fileexampletestdll/fileexampletestdll.vfproj -./windows/fortran/examples/groupexampletest/groupexampletest.vfproj -./windows/fortran/examples/groupexampletestdll/groupexampletestdll.vfproj -./windows/fortran/examples/grpdsetexampletest/grpdsetexampletest.vfproj -./windows/fortran/examples/grpdsetexampletestdll/grpdsetexampletestdll.vfproj -./windows/fortran/examples/grpittest/grpittest.vfproj -./windows/fortran/examples/grpittestdll/grpittestdll.vfproj -./windows/fortran/examples/grpsexampletest/grpsexampletest.vfproj -./windows/fortran/examples/grpsexampletestdll/grpsexampletestdll.vfproj -./windows/fortran/examples/hyperslabtest/hyperslabtest.vfproj -./windows/fortran/examples/hyperslabtestdll/hyperslabtestdll.vfproj -./windows/fortran/examples/mountexampletest/mountexampletest.vfproj -./windows/fortran/examples/mountexampletestdll/mountexampletestdll.vfproj -./windows/fortran/examples/refobjexampletest/refobjexampletest.vfproj -./windows/fortran/examples/refobjexampletestdll/refobjexampletestdll.vfproj -./windows/fortran/examples/refregexampletest/refregexampletest.vfproj -./windows/fortran/examples/refregexampletestdll/refregexampletestdll.vfproj -./windows/fortran/examples/rwdsetexampletest/rwdsetexampletest.vfproj -./windows/fortran/examples/rwdsetexampletestdll/rwdsetexampletestdll.vfproj -./windows/fortran/examples/selecteletest/selecteletest.vfproj -./windows/fortran/examples/selecteletestdll/selecteletestdll.vfproj - -# Fortran Tests -./windows/fortran/test/checkfortrantests.bat -./windows/fortran/test/flush1_fortran/flush1_fortran.vfproj -./windows/fortran/test/flush1_fortrandll/flush1_fortrandll.vfproj -./windows/fortran/test/flush2_fortran/flush2_fortran.vfproj -./windows/fortran/test/flush2_fortrandll/flush2_fortrandll.vfproj -./windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj -./windows/fortran/test/libtest_fortran/libtest_cstub.vcproj -./windows/fortran/test/libtest_fortran/libtest_fortran.vfproj -./windows/fortran/test/libtest_fortrandll/libtest_fortrandll.vfproj -./windows/fortran/test/testhdf5_fortran/testhdf5_fortran.vfproj -./windows/fortran/test/testhdf5_fortran_1_8/testhdf5_fortran_1_8.vfproj -./windows/fortran/test/testhdf5_fortran_1_8dll/testhdf5_fortran_1_8dll.vfproj -./windows/fortran/test/testhdf5_fortrandll/testhdf5_fortrandll.vfproj - -# High-Leve C++ Tests -./windows/hl/c++/test/checkhlcpptests.bat -./windows/hl/c++/test/hl_test_table_cpp/hl_test_table_cpp.vcproj -./windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj - -# High-Level Library Examples -./windows/hl/examples/test_hl_cexamples.BAT -./windows/hl/examples/allhlcexamples/allhlcexamples.sln -./windows/hl/examples/allhlcexamples/allhlcexamples.vcproj -./windows/hl/examples/ex_ds1/ex_ds1.vcproj -./windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj -./windows/hl/examples/ex_image1/ex_image1.vcproj -./windows/hl/examples/ex_image1dll/ex_image1dll.vcproj -./windows/hl/examples/ex_image2/ex_image2.vcproj -./windows/hl/examples/ex_image2dll/ex_image2dll.vcproj -./windows/hl/examples/ex_lite1/ex_lite1.vcproj -./windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj -./windows/hl/examples/ex_lite2/ex_lite2.vcproj -./windows/hl/examples/ex_lite2dll/ex_lite2dll.vcproj -./windows/hl/examples/ex_lite3/ex_lite3.vcproj -./windows/hl/examples/ex_lite3dll/ex_lite3dll.vcproj -./windows/hl/examples/ex_table01/ex_table01.vcproj -./windows/hl/examples/ex_table01dll/ex_table01dll.vcproj -./windows/hl/examples/ex_table02/ex_table02.vcproj -./windows/hl/examples/ex_table02dll/ex_table02dll.vcproj -./windows/hl/examples/ex_table03/ex_table03.vcproj -./windows/hl/examples/ex_table03dll/ex_table03dll.vcproj -./windows/hl/examples/ex_table04/ex_table04.vcproj -./windows/hl/examples/ex_table04dll/ex_table04dll.vcproj -./windows/hl/examples/ex_table05/ex_table05.vcproj -./windows/hl/examples/ex_table05dll/ex_table05dll.vcproj -./windows/hl/examples/ex_table06/ex_table06.vcproj -./windows/hl/examples/ex_table06dll/ex_table06dll.vcproj -./windows/hl/examples/ex_table07/ex_table07.vcproj -./windows/hl/examples/ex_table07dll/ex_table07dll.vcproj -./windows/hl/examples/ex_table08/ex_table08.vcproj -./windows/hl/examples/ex_table08dll/ex_table08dll.vcproj -./windows/hl/examples/ex_table09/ex_table09.vcproj -./windows/hl/examples/ex_table09dll/ex_table09dll.vcproj -./windows/hl/examples/ex_table10/ex_table10.vcproj -./windows/hl/examples/ex_table10dll/ex_table10dll.vcproj -./windows/hl/examples/ex_table11/ex_table11.vcproj -./windows/hl/examples/ex_table11dll/ex_table11dll.vcproj -./windows/hl/examples/ex_table12/ex_table12.vcproj -./windows/hl/examples/ex_table12dll/ex_table12dll.vcproj -./windows/hl/examples/ptExampleFL/ptExampleFL.vcproj -./windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj -./windows/hl/examples/ptExampleVL/ptExampleVL.vcproj -./windows/hl/examples/ptExampleVLdll/ptExampleVLdll.vcproj - -# High-Level Fortran Examples -./windows/hl/fortran/examples/test_hl_f90examples.BAT -./windows/hl/fortran/examples/allhlf90examples/allhlf90examples.sln -./windows/hl/fortran/examples/allhlf90examples/allhlf90examples.vcproj -./windows/hl/fortran/examples/ex_lite/ex_lite.vfproj -./windows/hl/fortran/examples/ex_litedll/ex_litedll.vfproj - -# High-Level Fortran Tests -./windows/hl/fortran/test/checkhlfortrantests.bat -./windows/hl/fortran/test/hl_test_image_fortran/hl_test_image_fortran.vfproj -./windows/hl/fortran/test/hl_test_image_fortrandll/hl_test_image_fortrandll.vfproj -./windows/hl/fortran/test/hl_test_lite_fortran/hl_test_lite_fortran.vfproj -./windows/hl/fortran/test/hl_test_lite_fortrandll/hl_test_lite_fortrandll.vfproj -./windows/hl/fortran/test/hl_test_table_fortran/hl_test_table_fortran.vfproj -./windows/hl/fortran/test/hl_test_table_fortrandll/hl_test_table_fortrandll.vfproj - -# High-Level Library Tests -./windows/hl/test/H5srcdir_str.h -./windows/hl/test/checkhltests.bat -./windows/hl/test/hl_test_ds/hl_test_ds.vcproj -./windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj -./windows/hl/test/hl_test_image/hl_test_image.vcproj -./windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj -./windows/hl/test/hl_test_lite/hl_test_lite.vcproj -./windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj -./windows/hl/test/hl_test_packet/hl_test_packet.vcproj -./windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj -./windows/hl/test/hl_test_table/hl_test_table.vcproj -./windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj - -# High-Level Tools -./windows/hl/tools/gif2h5/h52giftest.bat -./windows/hl/tools/gifconv/gif2h5.vcproj -./windows/hl/tools/gifconv/h52gif.vcproj -./windows/hl/tools/gifconvdll/gif2h5dll.vcproj -./windows/hl/tools/gifconvdll/h52gifdll.vcproj - -# Misc. Projects -./windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj -./windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj -./windows/misc/typegen/h5match_types/h5match_types.vcproj -./windows/misc/typegen/h5tinit/h5tinit.vcproj -./windows/misc/typegen/h5libsettings/h5libsettings.vcproj - -# Performance Tests -./windows/perform/checkperformtests.bat -./windows/perform/perf_serialdll/perf_serialdll.vcproj -./windows/perform/perf_serial/perf_serial.vcproj - -# Project Files -./windows/proj/all/all.sln -./windows/proj/all/all.vcproj -./windows/proj/all_fortran/all_fortran.sln -./windows/proj/all_fortran/all_fortran.vcproj -./windows/proj/hdf5/hdf5.vcproj -./windows/proj/hdf5_cpp/hdf5_cpp.vcproj -./windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj -./windows/proj/hdf5dll/hdf5dll.vcproj -./windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj -./windows/proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj -./windows/proj/hdf5_fortran/hdf5_fortran.vfproj -./windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj -./windows/proj/hdf5_hl/hdf5_hl.vcproj -./windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj -./windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj -./windows/proj/hdf5_hldll/hdf5_hldll.vcproj -./windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj -./windows/proj/hdf5_hl_fortran/hdf5_hl_f90cstub.vcproj -./windows/proj/hdf5_hl_fortran/hdf5_hl_fortran.vfproj -./windows/proj/hdf5_hl_fortrandll/hdf5_hl_fortrandll.vfproj - -# Visual Studio Property Sheets -./windows/proj/property_sheets/remove-posix-warnings.vsprops - -# Windows-maintainted Source -./windows/src/H5pubconf.h - -# Library Test Projects -./windows/test/H5srcdir_str.h -./windows/test/checktests.bat -./windows/test/testerror.bat -./windows/test/app_ref/app_ref.vcproj -./windows/test/app_refdll/app_refdll.vcproj -./windows/test/big/big.vcproj -./windows/test/bigdll/bigdll.vcproj -./windows/test/bittests/bittests.vcproj -./windows/test/bittestsdll/bittestsdll.vcproj -./windows/test/btree2/btree2.vcproj -./windows/test/btree2dll/btree2dll.vcproj -./windows/test/cache/cache.vcproj -./windows/test/cache_api/cache_api.vcproj -./windows/test/cache_apidll/cache_apidll.vcproj -./windows/test/cachedll/cachedll.vcproj -./windows/test/chunk/chunk.vcproj -./windows/test/chunk_info/chunk_info.vcproj -./windows/test/chunk_infodll/chunk_infodll.vcproj -./windows/test/chunkdll/chunkdll.vcproj -./windows/test/cmpd_dset/cmpd_dset.vcproj -./windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj -./windows/test/cross_read/cross_read.vcproj -./windows/test/cross_readdll/cross_readdll.vcproj -./windows/test/dangle/dangle.vcproj -./windows/test/dangledll/dangledll.vcproj -./windows/test/dsets/dsets.vcproj -./windows/test/dsetsdll/dsetsdll.vcproj -./windows/test/dt_arith/dt_arith.vcproj -./windows/test/dt_arithdll/dt_arithdll.vcproj -./windows/test/dtransform/dtransform.vcproj -./windows/test/dtransformdll/dtransformdll.vcproj -./windows/test/dtypes/dtypes.vcproj -./windows/test/dtypesdll/dtypesdll.vcproj -./windows/test/efc/efc.vcproj -./windows/test/efcdll/efcdll.vcproj -./windows/test/earray/earray.vcproj -./windows/test/earraydll/earraydll.vcproj -./windows/test/enum/enum.vcproj -./windows/test/enumdll/enumdll.vcproj -./windows/test/error_test/error_test.vcproj -./windows/test/error_testdll/error_testdll.vcproj -./windows/test/err_compat/err_compat.vcproj -./windows/test/err_compatdll/err_compatdll.vcproj -./windows/test/extend/extend.vcproj -./windows/test/extenddll/extenddll.vcproj -./windows/test/external/external.vcproj -./windows/test/externaldll/externaldll.vcproj -./windows/test/farray/farray.vcproj -./windows/test/farraydll/farraydll.vcproj -./windows/test/fheap/fheap.vcproj -./windows/test/fheapdll/fheapdll.vcproj -./windows/test/fillval/fillval.vcproj -./windows/test/fillvaldll/fillvaldll.vcproj -./windows/test/flush1/flush1.vcproj -./windows/test/flush1dll/flush1dll.vcproj -./windows/test/flush2/flush2.vcproj -./windows/test/flush2dll/flush2dll.vcproj -./windows/test/freespace/freespace.vcproj -./windows/test/freespacedll/freespacedll.vcproj -./windows/test/getname/getname.vcproj -./windows/test/getnamedll/getnamedll.vcproj -./windows/test/getub/getub.vcproj -./windows/test/gheap/gheap.vcproj -./windows/test/gheapdll/gheapdll.vcproj -./windows/test/hyperslab/hyperslab.vcproj -./windows/test/hyperslabdll/hyperslabdll.vcproj -./windows/test/iopipe/iopipe.vcproj -./windows/test/iopipedll/iopipedll.vcproj -./windows/test/istore/istore.vcproj -./windows/test/istoredll/istoredll.vcproj -./windows/test/lheap/lheap.vcproj -./windows/test/lheapdll/lheapdll.vcproj -./windows/test/libtest/libtest.vcproj -./windows/test/libtestdll/libtestdll.vcproj -./windows/test/links/links.vcproj -./windows/test/linksdll/linksdll.vcproj -./windows/test/mf/mf.vcproj -./windows/test/mfdll/mfdll.vcproj -./windows/test/mount/mount.vcproj -./windows/test/mountdll/mountdll.vcproj -./windows/test/mtime/mtime.vcproj -./windows/test/mtimedll/mtimedll.vcproj -./windows/test/ntypes/ntypes.vcproj -./windows/test/ntypesdll/ntypesdll.vcproj -./windows/test/objcopy/objcopy.vcproj -./windows/test/objcopydll/objcopydll.vcproj -./windows/test/ohdr/ohdr.vcproj -./windows/test/ohdrdll/ohdrdll.vcproj -./windows/test/overhead/overhead.vcproj -./windows/test/overheaddll/overheaddll.vcproj -./windows/test/pool/pool.vcproj -./windows/test/pooldll/pooldll.vcproj -./windows/test/reserved/reserved.vcproj -./windows/test/reserveddll/reserveddll.vcproj -./windows/test/set_extent/set_extent.vcproj -./windows/test/set_extentdll/set_extentdll.vcproj -./windows/test/stab/stab.vcproj -./windows/test/stabdll/stabdll.vcproj -./windows/test/tcheckversion/tcheckversion.vcproj -./windows/test/tcheckversiondll/tcheckversiondll.vcproj -./windows/test/tellub/tellub.vcproj -./windows/test/testhdf5/testhdf5.vcproj -./windows/test/testhdf5dll/testhdf5dll.vcproj -./windows/test/ttsafedll/ttsafedll.vcproj -./windows/test/unlink/unlink.vcproj -./windows/test/unlinkdll/unlinkdll.vcproj -./windows/test/vfd/vfd.vcproj -./windows/test/vfddll/vfddll.vcproj - -# Library Tools -./windows/tools/checktools.bat -./windows/tools/h5copy/h5copy.vcproj -./windows/tools/h5copy/testh5copy.bat -./windows/tools/h5debug/h5debug.vcproj -./windows/tools/h5debugdll/h5debugdll.vcproj -./windows/tools/h5diff/h5diff.vcproj -./windows/tools/h5diff/testh5diff.bat -./windows/tools/h5diffdll/h5diffdll.vcproj -./windows/tools/h5dump/h5dump.vcproj -./windows/tools/h5dump/testh5dump.bat -./windows/tools/h5dump/testh5dumpxml.bat -./windows/tools/h5dumpdll/h5dumpdll.vcproj -./windows/tools/h5import/h5import.vcproj -./windows/tools/h5import/h5importtestutil.bat -./windows/tools/h5importdll/h5importdll.vcproj -./windows/tools/h5jam/h5jam.vcproj -./windows/tools/h5jam/testh5jam.bat -./windows/tools/h5ls/h5ls.vcproj -./windows/tools/h5ls/testh5ls.bat -./windows/tools/h5lsdll/h5lsdll.vcproj -./windows/tools/h5mkgrp/h5mkgrp.vcproj -./windows/tools/h5mkgrp/testh5mkgrp.bat -./windows/tools/h5repack/h5repack.vcproj -./windows/tools/h5repack/h5repack.bat -./windows/tools/h5repackdll/h5repackdll.vcproj -./windows/tools/h5repart/h5repart.vcproj -./windows/tools/h5repart/testh5repart.bat -./windows/tools/h5repartdll/h5repartdll.vcproj -./windows/tools/h5stat/h5stat.vcproj -./windows/tools/h5stat/testh5stat.bat -./windows/tools/h5statdll/h5statdll.vcproj -./windows/tools/h5unjam/h5unjam.vcproj -./windows/tools/talign/talign.vcproj -./windows/tools/taligndll/taligndll.vcproj -./windows/tools/testfiles/binread/binread.vcproj -./windows/tools/testfiles/h5difftst/h5difftst.vcproj -./windows/tools/testfiles/h5dumptst/h5dumptst.vcproj -./windows/tools/testfiles/h5importtst/h5importtst.vcproj -./windows/tools/testfiles/h5jamtst/h5jamtst.vcproj -./windows/tools/testfiles/h5repacktst/h5repacktst.vcproj -./windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj -./windows/tools/testfiles/h5reparttst/h5reparttst.vcproj -./windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj -./windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj -./windows/tools/toolslib/toolslib.vcproj -./windows/tools/toolslibdll/toolslibdll.vcproj - diff --git a/README.txt b/README.txt index 3a668c4..2a17830 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.128 currently under development +HDF5 version 1.9.132 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/aclocal.m4 b/aclocal.m4 index ee9c639..e6aae87 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -406,15 +406,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Copyright (C) 1996-2012 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. diff --git a/bin/h5vers b/bin/h5vers index 138a8e9..475ff5a 100755 --- a/bin/h5vers +++ b/bin/h5vers @@ -187,10 +187,6 @@ die "unable to read file: $RELEASE\n" unless -r $file; my $CONFIGURE = $file; $CONFIGURE =~ s/[^\/]*$/..\/configure.ac/; die "unable to read file: $CONFIGURE\n" unless -r $file; -# windows/src/H5pubconf.h -my $H5PUBCONF = $file; -$H5PUBCONF =~ s/[^\/]*$/..\/windows\/src\/H5pubconf.h/; -die "unable to read file: $H5PUBCONF\n" unless -r $file; # vms/src/h5pubconf.h my $H5VMSPUBCONF = $file; $H5VMSPUBCONF =~ s/[^\/]*$/..\/vms\/src\/h5pubconf.h/; @@ -242,7 +238,6 @@ if ($set) { $README = ""; $RELEASE = ""; $CONFIGURE = ""; - $H5PUBCONF = ""; $H5VMSPUBCONF = ""; $LT_VERS = ""; @newver = @curver; @@ -392,9 +387,6 @@ sub gen_h5pubconf { close FILE; } -# Update the Windows-maintained H5pubconf.h file -gen_h5pubconf("HDF5", $H5PUBCONF, @newver) if $H5PUBCONF; - # Update the VMS-maintained h5pubconf.h file gen_h5pubconf("HDF5", $H5VMSPUBCONF, @newver) if $H5VMSPUBCONF; diff --git a/bin/trace b/bin/trace index e9d1203..67aeb17 100755 --- a/bin/trace +++ b/bin/trace @@ -64,6 +64,7 @@ $Source = ""; "int32_t" => "Is", "unsigned" => "Iu", "unsigned int" => "Iu", + "uint32_t" => "Iu", "H5I_type_t" => "It", "H5G_link_t" => "Ll", #Same as H5L_type_t now "H5L_type_t" => "Ll", diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt index dad98f8..0076335 100644 --- a/c++/CMakeLists.txt +++ b/c++/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_CPP) #----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + +#----------------------------------------------------------------------------- # Shared/Static Libs #----------------------------------------------------------------------------- IF (BUILD_SHARED_LIBS) diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index 375bd4a..d983d1e 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -40,6 +40,7 @@ SET (CPP_SRCS ${HDF5_CPP_SRC_SOURCE_DIR}/H5IdComponent.cpp ${HDF5_CPP_SRC_SOURCE_DIR}/H5IntType.cpp ${HDF5_CPP_SRC_SOURCE_DIR}/H5Library.cpp + ${HDF5_CPP_SRC_SOURCE_DIR}/H5Location.cpp ${HDF5_CPP_SRC_SOURCE_DIR}/H5Object.cpp ${HDF5_CPP_SRC_SOURCE_DIR}/H5PredType.cpp ${HDF5_CPP_SRC_SOURCE_DIR}/H5PropList.cpp @@ -74,6 +75,7 @@ SET (CPP_HDRS ${HDF5_CPP_SRC_SOURCE_DIR}/H5Include.h ${HDF5_CPP_SRC_SOURCE_DIR}/H5IntType.h ${HDF5_CPP_SRC_SOURCE_DIR}/H5Library.h + ${HDF5_CPP_SRC_SOURCE_DIR}/H5Location.h ${HDF5_CPP_SRC_SOURCE_DIR}/H5Object.h ${HDF5_CPP_SRC_SOURCE_DIR}/H5PredType.h ${HDF5_CPP_SRC_SOURCE_DIR}/H5PropList.h diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp index 9cf1ee8..e6cacf9 100644 --- a/c++/src/H5AbstractDs.cpp +++ b/c++/src/H5AbstractDs.cpp @@ -25,11 +25,6 @@ #include "H5CommonFG.h" #include "H5Alltypes.h" -#include // remove when done - - using std::cerr; - using std::endl; - #ifndef H5_NO_NAMESPACE namespace H5 { #endif diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h index 1d04d6c..354b47b 100644 --- a/c++/src/H5AbstractDs.h +++ b/c++/src/H5AbstractDs.h @@ -65,7 +65,7 @@ class H5_DLLCPP AbstractDs { // dataset - pure virtual. virtual hsize_t getStorageSize() const = 0; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass() const = 0; // Copy constructor diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h index d50017a..7daafed 100644 --- a/c++/src/H5ArrayType.h +++ b/c++/src/H5ArrayType.h @@ -36,7 +36,7 @@ class H5_DLLCPP ArrayType : public DataType { // Returns the sizes of dimensions of this array datatype. int getArrayDims(hsize_t* dims); - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("ArrayType"); } // Copy constructor: makes copy of the original object. diff --git a/c++/src/H5AtomType.h b/c++/src/H5AtomType.h index 1ddfd7d..25770f5 100644 --- a/c++/src/H5AtomType.h +++ b/c++/src/H5AtomType.h @@ -57,7 +57,7 @@ class H5_DLLCPP AtomType : public DataType { // Sets the total size for an atomic datatype. void setSize( size_t size ) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("AtomType"); } // Copy constructor - makes copy of the original object diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp index 226ae5c..120ed39 100644 --- a/c++/src/H5Attribute.cpp +++ b/c++/src/H5Attribute.cpp @@ -385,6 +385,31 @@ hsize_t Attribute::getStorageSize() const } //-------------------------------------------------------------------------- +// Function: Attribute::flush +///\brief Flushes all buffers associated with a file specified by +/// this attribute, to disk. +///\param scope - IN: Specifies the scope of the flushing action, +/// which can be either of these values: +/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file +/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file +///\exception H5::AttributeIException +///\par Description +/// This attribute is used to identify the file to be flushed. +// Programmer Binh-Minh Ribler - 2012 +// Modification +// Sep 2012 - BMR +// Duplicated from H5Location +//-------------------------------------------------------------------------- +void Attribute::flush(H5F_scope_t scope) const +{ + herr_t ret_value = H5Fflush(getId(), scope); + if( ret_value < 0 ) + { + throw AttributeIException("Attribute::flush", "H5Fflush failed"); + } +} + +//-------------------------------------------------------------------------- // Function: Attribute::getId // Purpose: Get the id of this attribute // Description: diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h index 284e5bc..dd37a99 100644 --- a/c++/src/H5Attribute.h +++ b/c++/src/H5Attribute.h @@ -51,7 +51,11 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { void write(const DataType& mem_type, const void *buf ) const; void write(const DataType& mem_type, const H5std_string& strg ) const; - // Returns this class name + // Flushes all buffers associated with the file specified by this + // attribute to disk + void flush( H5F_scope_t scope ) const; + + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("Attribute"); } // Creates a copy of an existing attribute using the attribute id diff --git a/c++/src/H5Classes.h b/c++/src/H5Classes.h index f691548..c3b61ca 100644 --- a/c++/src/H5Classes.h +++ b/c++/src/H5Classes.h @@ -22,6 +22,7 @@ namespace H5 { #endif class Exception; class IdComponent; + class H5Location; class H5Object; class PropList; class FileCreatPropList; diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp index 6a8609f..dcc331f 100644 --- a/c++/src/H5CommonFG.cpp +++ b/c++/src/H5CommonFG.cpp @@ -68,25 +68,29 @@ namespace H5 { //-------------------------------------------------------------------------- Group CommonFG::createGroup( const char* name, size_t size_hint ) const { - // Create group creation property list for size_hint - hid_t gcpl_id = H5Pcreate(H5P_GROUP_CREATE); - - // If the creation of the property list failed, throw an exception - if( gcpl_id < 0 ) - throwException("createGroup", "H5Pcreate failed"); + // Group creation property list for size_hint + hid_t gcpl_id = 0; // Set the local heap size hint - if( H5Pset_local_heap_size_hint(gcpl_id, size_hint) < 0) { - H5Pclose(gcpl_id); - throwException("createGroup", "H5Pset_local_heap_size failed"); - } + if(!(size_hint == (size_t)-1 || size_hint == 0)) { + + // If the creation of the property list failed, throw an exception + if((gcpl_id = H5Pcreate(H5P_GROUP_CREATE)) < 0) + throwException("createGroup", "H5Pcreate failed"); + + if( H5Pset_local_heap_size_hint(gcpl_id, size_hint) < 0) { + H5Pclose(gcpl_id); + throwException("createGroup", "H5Pset_local_heap_size failed"); + } + } // Call C routine H5Gcreate2 to create the named group, giving the // location id which can be a file id or a group id hid_t group_id = H5Gcreate2( getLocId(), name, H5P_DEFAULT, gcpl_id, H5P_DEFAULT ); - // Close the group creation property list - H5Pclose(gcpl_id); + // Close the group creation property list, if necessary + if(gcpl_id > 0) + H5Pclose(gcpl_id); // If the creation of the group failed, throw an exception if( group_id < 0 ) diff --git a/c++/src/H5CompType.h b/c++/src/H5CompType.h index ae030ee..9b2b572 100644 --- a/c++/src/H5CompType.h +++ b/c++/src/H5CompType.h @@ -26,12 +26,21 @@ namespace H5 { class H5_DLLCPP CompType : public DataType { public: + // Default constructor + CompType(); + + // Creates a compound datatype using an existing id + CompType( const hid_t existing_id ); + // Creates a new compound datatype, given the type's size CompType( size_t size ); // H5Tcreate // Gets the compound datatype of the specified dataset CompType( const DataSet& dataset ); // H5Dget_type + // Copy constructor - makes a copy of original object + CompType( const CompType& original ); + // Returns the type class of the specified member of this compound // datatype. It provides to the user a way of knowing what type // to create another datatype of the same class @@ -88,18 +97,9 @@ class H5_DLLCPP CompType : public DataType { // Recursively removes padding from within this compound datatype. void pack() const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("CompType"); } - // Default constructor - CompType(); - - // Creates a compound datatype using an existing id - CompType( const hid_t existing_id ); - - // Copy constructor - makes a copy of original object - CompType( const CompType& original ); - // Noop destructor. virtual ~CompType(); diff --git a/c++/src/H5Cpp.h b/c++/src/H5Cpp.h index 75d82ba..ddf4f19 100644 --- a/c++/src/H5Cpp.h +++ b/c++/src/H5Cpp.h @@ -22,6 +22,7 @@ #include "H5IdComponent.h" #include "H5DataSpace.h" #include "H5PropList.h" +#include "H5Location.h" #include "H5Object.h" #include "H5AbstractDs.h" #include "H5Attribute.h" diff --git a/c++/src/H5CppDoc.h b/c++/src/H5CppDoc.h index b974238..ab3fa79 100644 --- a/c++/src/H5CppDoc.h +++ b/c++/src/H5CppDoc.h @@ -30,7 +30,7 @@ * It is assumed that the user has knowledge of the HDF5 file format * and its components. If you are not familiar with HDF5 file format, * and would like to find out more, please refer to the HDF5 documentation - * at http://hdf.ncsa.uiuc.edu/HDF5/doc/H5.intro.html + * at http://www.hdfgroup.org/HDF5/doc/index.html * * Because the HDF5 library maps very well to * the object oriented design approach, classes in the C++ API can diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp index f7aaa72..6a1524d 100644 --- a/c++/src/H5DataSet.cpp +++ b/c++/src/H5DataSet.cpp @@ -644,54 +644,6 @@ void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space) } } -#ifndef H5_NO_DEPRECATED_SYMBOLS -//-------------------------------------------------------------------------- -// Function: DataSet::getObjType -///\brief Retrieves the type of object that an object reference points to. -///\param ref_type - IN: Type of reference to query, valid values are: -/// \li \c H5R_OBJECT - Reference is an object reference. -/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference. -///\param ref - IN: Reference to query -///\return An object type, which can be one of the following: -/// \li \c H5G_LINK (0) - Object is a symbolic link. -/// \li \c H5G_GROUP (1) - Object is a group. -/// \li \c H5G_DATASET (2) - Object is a dataset. -/// \li \c H5G_TYPE (3) - Object is a named datatype -///\exception H5::DataSetIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -H5G_obj_t DataSet::getObjType(void *ref, H5R_type_t ref_type) const -{ - try { - return(p_get_obj_type(ref, ref_type)); - } - catch (IdComponentException E) { - throw DataSetIException("DataSet::getObjType", E.getDetailMsg()); - } -} -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - -//-------------------------------------------------------------------------- -// Function: DataSet::getRegion -///\brief Retrieves a dataspace with the region pointed to selected. -///\param ref - IN: Reference to get region of -///\param ref_type - IN: Type of reference to get region of - default -/// to H5R_DATASET_REGION -///\return DataSpace instance -///\exception H5::DataSetIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -DataSpace DataSet::getRegion(void *ref, H5R_type_t ref_type) const -{ - try { - DataSpace dataspace(p_get_region(ref, ref_type)); - return(dataspace); - } - catch (IdComponentException E) { - throw DataSetIException("DataSet::getRegion", E.getDetailMsg()); - } -} - //-------------------------------------------------------------------------- // Function: DataSet::getId ///\brief Get the id of this dataset. diff --git a/c++/src/H5DataSet.h b/c++/src/H5DataSet.h index 3d9183d..54e9d6f 100644 --- a/c++/src/H5DataSet.h +++ b/c++/src/H5DataSet.h @@ -76,15 +76,10 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { // Iterates the selected elements in the specified dataspace - not implemented in C++ style yet int iterateElems( void* buf, const DataType& type, const DataSpace& space, H5D_operator_t op, void* op_data = NULL ); -#ifndef H5_NO_DEPRECATED_SYMBOLS - // Retrieves the type of object that an object reference points to. - H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const; -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - // Retrieves a dataspace with the region pointed to selected. DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("DataSet"); } // Creates a dataset by way of dereference. @@ -110,6 +105,7 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { private: hid_t id; // HDF5 dataset id +#ifndef DOXYGEN_SHOULD_SKIP_THIS // This function contains the common code that is used by // getTypeClass and various API functions getXxxType // defined in AbstractDs for generic datatype and specific @@ -123,6 +119,7 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { protected: // Sets the dataset id. virtual void p_setId(const hid_t new_id); +#endif // DOXYGEN_SHOULD_SKIP_THIS }; #ifndef H5_NO_NAMESPACE } diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h index 80842f7..9afb8ab 100644 --- a/c++/src/H5DataSpace.h +++ b/c++/src/H5DataSpace.h @@ -103,7 +103,7 @@ class H5_DLLCPP DataSpace : public IdComponent { // Sets or resets the size of this dataspace. void setExtentSimple( int rank, const hsize_t *current_size, const hsize_t *maximum_size = NULL ) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("DataSpace"); } // Creates a DataSpace object using an existing dataspace id. diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp index 3edb163..99525bc 100644 --- a/c++/src/H5DataType.cpp +++ b/c++/src/H5DataType.cpp @@ -679,51 +679,6 @@ bool DataType::isVariableStr() const } } -#ifndef H5_NO_DEPRECATED_SYMBOLS -//-------------------------------------------------------------------------- -// Function: DataType::getObjType -///\brief Retrieves the type of object that an object reference points to. -///\param ref - IN: Reference to query -///\param ref_type - IN: Type of reference to query -///\return Object type, which can be one of the following: -/// \li \c H5G_LINK Object is a symbolic link. -/// \li \c H5G_GROUP Object is a group. -/// \li \c H5G_DATASET Object is a dataset. -/// \li \c H5G_TYPE Object is a named datatype -///\exception H5::DataTypeIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -H5G_obj_t DataType::getObjType(void *ref, H5R_type_t ref_type) const -{ - try { - return(p_get_obj_type(ref, ref_type)); - } - catch (IdComponentException E) { - throw DataTypeIException(inMemFunc("getObjType"), E.getDetailMsg()); - } -} -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - -//-------------------------------------------------------------------------- -// Function: DataType::getRegion -///\brief Retrieves a dataspace with the region pointed to selected. -///\param ref - IN: Reference to get region of -///\param ref_type - IN: Type of reference to get region of - default -///\return DataSpace instance -///\exception H5::DataTypeIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -DataSpace DataType::getRegion(void *ref, H5R_type_t ref_type) const -{ - try { - DataSpace dataspace(p_get_region(ref, ref_type)); - return(dataspace); - } - catch (IdComponentException E) { - throw DataTypeIException(inMemFunc("getRegion"), E.getDetailMsg()); - } -} - //-------------------------------------------------------------------------- // Function: DataType::getId // Purpose: Get the id of this attribute diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h index 48aeaf8..98514bb 100644 --- a/c++/src/H5DataType.h +++ b/c++/src/H5DataType.h @@ -101,15 +101,10 @@ class H5_DLLCPP DataType : public H5Object { // Checks whether this datatype is a variable-length string. bool isVariableStr() const; -#ifndef H5_NO_DEPRECATED_SYMBOLS - // Retrieves the type of object that an object reference points to. - H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const; -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - // Retrieves a dataspace with the region pointed to selected. DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("DataType"); } // Creates a copy of an existing DataType using its id diff --git a/c++/src/H5DcreatProp.h b/c++/src/H5DcreatProp.h index b7f5823..ac7664e 100644 --- a/c++/src/H5DcreatProp.h +++ b/c++/src/H5DcreatProp.h @@ -107,7 +107,7 @@ class H5_DLLCPP DSetCreatPropList : public PropList { // Sets SZIP compression method. void setSzip(unsigned int options_mask, unsigned int pixels_per_block) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("DSetCreatPropList"); } // Copy constructor: creates a copy of a DSetCreatPropList object. diff --git a/c++/src/H5DxferProp.h b/c++/src/H5DxferProp.h index 11e15fc..66216d8 100644 --- a/c++/src/H5DxferProp.h +++ b/c++/src/H5DxferProp.h @@ -92,7 +92,7 @@ class H5_DLLCPP DSetMemXferPropList : public PropList { // Determines whether error-detection is enabled for dataset reads. H5Z_EDC_t getEDCCheck(); - // Returns this class name. + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("DSetMemXferPropList"); } // Copy constructor: makes a copy of a DSetMemXferPropList object. diff --git a/c++/src/H5EnumType.h b/c++/src/H5EnumType.h index 2a2c263..914eb66 100644 --- a/c++/src/H5EnumType.h +++ b/c++/src/H5EnumType.h @@ -57,7 +57,7 @@ class H5_DLLCPP EnumType : public DataType { void valueOf( const char* name, void *value ) const; void valueOf( const H5std_string& name, void *value ) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("EnumType"); } // Default constructor diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h index 7f133bb..0c2cc21 100644 --- a/c++/src/H5FaccProp.h +++ b/c++/src/H5FaccProp.h @@ -123,7 +123,7 @@ class H5_DLLCPP FileAccPropList : public PropList { // Returns garbage collecting references setting. unsigned getGcReferences() const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("FileAccPropList"); } // Copy constructor: creates a copy of a FileAccPropList object. diff --git a/c++/src/H5FcreatProp.h b/c++/src/H5FcreatProp.h index 1aa102f..61074ea 100644 --- a/c++/src/H5FcreatProp.h +++ b/c++/src/H5FcreatProp.h @@ -62,7 +62,7 @@ class H5_DLLCPP FileCreatPropList : public PropList { // indexing chunked datasets. void setIstorek( unsigned ik ) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("FileCreatPropList"); } // Copy constructor: creates a copy of a FileCreatPropList object. diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index da0241f..92c4d32 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -50,7 +50,7 @@ namespace H5 { ///\brief Default constructor: creates a stub H5File object. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File() : IdComponent(), id(0) {} +H5File::H5File() : H5Location(), id(0) {} //-------------------------------------------------------------------------- // Function: H5File overloaded constructor @@ -79,7 +79,7 @@ H5File::H5File() : IdComponent(), id(0) {} /// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5F.html#File-Create // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : IdComponent(0) +H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(0) { p_get_file(name, flags, create_plist, access_plist); } @@ -97,7 +97,7 @@ H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& c /// FileCreatPropList::DEFAULT // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : IdComponent(0) +H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(0) { p_get_file(name.c_str(), flags, create_plist, access_plist); } @@ -140,34 +140,15 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro ///\param original - IN: H5File instance to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File(const H5File& original) : IdComponent(original) +H5File::H5File(const H5File& original) : H5Location(original) { id = original.getId(); incRefCount(); // increment number of references to this id } //-------------------------------------------------------------------------- -// Function: H5File::flush -///\brief Flushes all buffers associated with a file to disk. -///\param scope - IN: Specifies the scope of the flushing action, -/// which can be either of these values: -/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file -/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file -///\exception H5::FileIException -// Programmer Binh-Minh Ribler - Dec. 2005 -//-------------------------------------------------------------------------- -void H5File::flush(H5F_scope_t scope) const -{ - herr_t ret_value = H5Fflush( id, scope ); - if( ret_value < 0 ) - { - throw FileIException("H5File::flush", "H5Fflush failed"); - } -} - -//-------------------------------------------------------------------------- // Function: H5File::isHdf5 -///\brief Determines whether a file in HDF5 format. +///\brief Determines whether a file in HDF5 format. (Static) ///\param name - IN: Name of the file ///\return true if the file is in HDF5 format, and false, otherwise ///\exception H5::FileIException @@ -191,7 +172,7 @@ bool H5File::isHdf5(const char* name) //-------------------------------------------------------------------------- // Function: H5File::isHdf5 ///\brief This is an overloaded member function, provided for convenience. -/// It takes an \c H5std_string for \a name. +/// It takes an \c H5std_string for \a name. (Static) ///\param name - IN: Name of the file - \c H5std_string // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- @@ -269,8 +250,8 @@ void H5File::reOpen() throw FileIException("H5File::reOpen", close_error.getDetailMsg()); } - // call C routine to reopen the file - Note: not sure about this - // does id need to be closed later? which id to be the parameter? + // call C routine to reopen the file - Note: not sure about this, + // which id to be the parameter when closing? id = H5Freopen( id ); if( id < 0 ) // Raise exception when H5Freopen returns a neg value throw FileIException("H5File::reOpen", "H5Freopen failed"); @@ -278,12 +259,10 @@ void H5File::reOpen() //-------------------------------------------------------------------------- // Function: H5File::reopen -///\brief Reopens this file. -/// -///\exception H5::FileIException -///\par Description -/// This function will be replaced by the above function \c reOpen -/// in future releases. +// Purpose: Reopens this file. +// Exception H5::FileIException +// Description +// This function is replaced by the above function reOpen. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- void H5File::reopen() @@ -490,70 +469,6 @@ void H5File::getVFDHandle(void **file_handle) const } //-------------------------------------------------------------------------- -// Function: H5File::getFileName -///\brief Gets the name of this file. -///\return File name -///\exception H5::FileIException -// Programmer Binh-Minh Ribler - Jul, 2004 -//-------------------------------------------------------------------------- -H5std_string H5File::getFileName() const -{ - try { - return(p_get_file_name()); - } - catch (IdComponentException E) { - throw FileIException("H5File::getFileName", E.getDetailMsg()); - } -} - -#ifndef H5_NO_DEPRECATED_SYMBOLS -//-------------------------------------------------------------------------- -// Function: H5File::getObjType -///\brief Retrieves the type of object that an object reference points to. -///\param ref - IN: Reference to query -///\param ref_type - IN: Type of reference, valid values are: -/// \li \c H5R_OBJECT - Reference is an object reference -/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference -///\return Object type, which can be one of the following: -/// \li \c H5G_LINK - Object is a symbolic link. -/// \li \c H5G_GROUP - Object is a group. -/// \li \c H5G_DATASET - Object is a dataset. -/// \li \c H5G_TYPE - Object is a named datatype -///\exception H5::FileIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -H5G_obj_t H5File::getObjType(void *ref, H5R_type_t ref_type) const -{ - try { - return(p_get_obj_type(ref, ref_type)); - } - catch (IdComponentException E) { - throw FileIException("H5File::getObjType", E.getDetailMsg()); - } -} -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - -//-------------------------------------------------------------------------- -// Function: H5File::getRegion -///\brief Retrieves a dataspace with the region pointed to selected. -///\param ref - IN: Reference to get region of -///\param ref_type - IN: Type of reference to get region of - default -///\return DataSpace instance -///\exception H5::FileIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -DataSpace H5File::getRegion(void *ref, H5R_type_t ref_type) const -{ - try { - DataSpace dataspace(p_get_region(ref, ref_type)); - return(dataspace); - } - catch (IdComponentException E) { - throw FileIException("H5File::getRegion", E.getDetailMsg()); - } -} - -//-------------------------------------------------------------------------- // Function: H5File::getFileSize ///\brief Returns the file size of the HDF5 file. ///\return File size @@ -575,134 +490,6 @@ hsize_t H5File::getFileSize() const } //-------------------------------------------------------------------------- -// Function: H5File::p_reference (protected) -// Purpose Creates a reference to an HDF5 object or a dataset region. -// Parameters -// name - IN: Name of the object to be referenced -// dataspace - IN: Dataspace with selection -// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION -// Exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5File::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const -{ - herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id); - if (ret_value < 0) - { - throw IdComponentException("", "H5Rcreate failed"); - } -} - -//-------------------------------------------------------------------------- -// Function: H5File::reference -///\brief Creates a reference to an HDF5 object or a dataset region. -///\param ref - IN: Reference pointer -///\param name - IN: Name of the object to be referenced -///\param dataspace - IN: Dataspace with selection -///\param ref_type - IN: Type of reference to query, valid values are: -/// \li \c H5R_OBJECT - Reference is an object reference -/// \li \c H5R_DATASET_REGION - Reference is a dataset region -/// reference - this is the default -///\exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5File::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const -{ - try { - p_reference(ref, name, dataspace.getId(), ref_type); - } - catch (IdComponentException E) { - throw IdComponentException("H5File::reference", E.getDetailMsg()); - } -} - -//-------------------------------------------------------------------------- -// Function: H5File::reference -///\brief This is an overloaded function, provided for your convenience. -/// It differs from the above function in that it only creates -/// a reference to an HDF5 object, not to a dataset region. -///\param ref - IN: Reference pointer -///\param name - IN: Name of the object to be referenced - \c char pointer -///\exception H5::IdComponentException -///\par Description -// This function passes H5R_OBJECT and -1 to the protected -// function for it to pass to the C API H5Rcreate -// to create a reference to the named object. -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5File::reference(void* ref, const char* name) const -{ - try { - p_reference(ref, name, -1, H5R_OBJECT); - } - catch (IdComponentException E) { - throw IdComponentException("H5File::reference", E.getDetailMsg()); - } -} -//-------------------------------------------------------------------------- -// Function: H5File::reference -///\brief This is an overloaded function, provided for your convenience. -/// It differs from the above function in that it takes an -/// \c H5std_string for the object's name. -///\param ref - IN: Reference pointer -///\param name - IN: Name of the object to be referenced - \c H5std_string -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5File::reference(void* ref, const H5std_string& name) const -{ - reference(ref, name.c_str()); -} - -#ifndef H5_NO_DEPRECATED_SYMBOLS -//-------------------------------------------------------------------------- -// Function: H5File::p_get_obj_type (protected) -// Purpose Retrieves the type of object that an object reference points to. -// Parameters -// ref - IN: Reference to query -// ref_type - IN: Type of reference to query -// Return An object type, which can be one of the following: -// H5G_LINK Object is a symbolic link. -// H5G_GROUP Object is a group. -// H5G_DATASET Object is a dataset. -// H5G_TYPE Object is a named datatype -// Exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -H5G_obj_t H5File::p_get_obj_type(void *ref, H5R_type_t ref_type) const -{ - H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref); - - if (obj_type == H5G_UNKNOWN) - { - throw IdComponentException("", "H5Rget_obj_type failed"); - } - return(obj_type); -} -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - - -//-------------------------------------------------------------------------- -// Function: H5File::p_get_region (protected) -// Purpose Retrieves a dataspace with the region pointed to selected. -// Parameters -// ref_type - IN: Type of reference to get region of - default -// to H5R_DATASET_REGION -// ref - IN: Reference to get region of -// Return Dataspace id -// Exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -hid_t H5File::p_get_region(void *ref, H5R_type_t ref_type) const -{ - hid_t space_id = H5Rget_region(getId(), ref_type, ref); - if (space_id < 0) - { - throw IdComponentException("", "H5Rget_region failed"); - } - return(space_id); -} - -//-------------------------------------------------------------------------- // Function: H5File::getLocId // Purpose: Get the id of this file // Description diff --git a/c++/src/H5File.h b/c++/src/H5File.h index b69c963..cfb6bdf 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -21,7 +21,7 @@ namespace H5 { #endif -class H5_DLLCPP H5File : public IdComponent, public CommonFG { +class H5_DLLCPP H5File : public H5Location, public CommonFG { public: // Creates or opens an HDF5 file. H5File( const char* name, unsigned int flags, @@ -40,18 +40,12 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { // Close this file. virtual void close(); - // Flushes all buffers associated with this file to disk - void flush(H5F_scope_t scope) const; - // Gets the access property list of this file. FileAccPropList getAccessPlist() const; // Gets the creation property list of this file. FileCreatPropList getCreatePlist() const; - // Gets the name of this file. - H5std_string getFileName() const; - // Retrieves the file size of an opened file. hsize_t getFileSize() const; @@ -67,11 +61,6 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { // and datatypes) in the same file. void getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const; -#ifndef H5_NO_DEPRECATED_SYMBOLS - // Retrieves the type of object that an object reference points to. - H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const; -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - // Retrieves a dataspace with the region pointed to selected. DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const; @@ -87,14 +76,7 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { void reOpen(); // added for better name void reopen(); - // Creates a reference to a named HDF5 object or to a dataset region - // in this object. - void reference(void* ref, const char* name, const DataSpace& dataspace, - H5R_type_t ref_type = H5R_DATASET_REGION) const; - void reference(void* ref, const char* name) const; - void reference(void* ref, const H5std_string& name) const; - - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("H5File"); } // Throw file exception. @@ -124,17 +106,6 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { // constructors taking a string or a char* void p_get_file( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ); - // Creates a reference to an HDF5 object or a dataset region. - void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; - -#ifndef H5_NO_DEPRECATED_SYMBOLS - // Retrieves the type of object that an object reference points to. - H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const; -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - - // Retrieves a dataspace with the region pointed to selected. - hid_t p_get_region(void *ref, H5R_type_t ref_type) const; - protected: // Sets the HDF5 file id. virtual void p_setId(const hid_t new_id); diff --git a/c++/src/H5FloatType.h b/c++/src/H5FloatType.h index 7444bd5..cbb9541 100644 --- a/c++/src/H5FloatType.h +++ b/c++/src/H5FloatType.h @@ -53,7 +53,7 @@ class H5_DLLCPP FloatType : public AtomType { // Sets the mantissa normalization of a floating-point datatype. void setNorm( H5T_norm_t norm ) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("FloatType"); } // Default constructor diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp index 6ec2dbb..e83b635 100644 --- a/c++/src/H5Group.cpp +++ b/c++/src/H5Group.cpp @@ -147,53 +147,6 @@ Group::Group(Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object() } } -#ifndef H5_NO_DEPRECATED_SYMBOLS -//-------------------------------------------------------------------------- -// Function: Group::getObjType -///\brief Retrieves the type of object that an object reference points to. -///\param ref - IN: Reference to query -///\param ref_type - IN: Type of reference to query, valid values are: -/// \li \c H5R_OBJECT - Reference is an object reference. -/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference. -///\return An object type, which can be one of the following: -/// \li \c H5G_LINK (0) - Object is a symbolic link. -/// \li \c H5G_GROUP (1) - Object is a group. -/// \li \c H5G_DATASET (2) - Object is a dataset. -/// \li \c H5G_TYPE (3) - Object is a named datatype -///\exception H5::GroupIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -H5G_obj_t Group::getObjType(void *ref, H5R_type_t ref_type) const -{ - try { - return(p_get_obj_type(ref, ref_type)); - } - catch (IdComponentException E) { - throw GroupIException("Group::getObjType", E.getDetailMsg()); - } -} -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - -//-------------------------------------------------------------------------- -// Function: Group::getRegion -///\brief Retrieves a dataspace with the region pointed to selected. -///\param ref - IN: Reference to get region of -///\param ref_type - IN: Type of reference to get region of - default -///\return DataSpace instance -///\exception H5::GroupIException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -DataSpace Group::getRegion(void *ref, H5R_type_t ref_type) const -{ - try { - DataSpace dataspace(p_get_region(ref, ref_type)); - return(dataspace); - } - catch (IdComponentException E) { - throw GroupIException("Group::getRegion", E.getDetailMsg()); - } -} - //-------------------------------------------------------------------------- // Function: Group::getId // Purpose: Get the id of this attribute diff --git a/c++/src/H5Group.h b/c++/src/H5Group.h index 9978cf0..e4c2415 100644 --- a/c++/src/H5Group.h +++ b/c++/src/H5Group.h @@ -26,15 +26,10 @@ class H5_DLLCPP Group : public H5Object, public CommonFG { // Close this group. virtual void close(); -#ifndef H5_NO_DEPRECATED_SYMBOLS - // Retrieves the type of object that an object reference points to. - H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const; -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - // Retrieves a dataspace with the region pointed to selected. DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("Group"); } // Throw group exception. diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h index b217c10..7dc1da3 100644 --- a/c++/src/H5IdComponent.h +++ b/c++/src/H5IdComponent.h @@ -65,7 +65,7 @@ class H5_DLLCPP IdComponent { // is returned by fromClass(). H5std_string inMemFunc(const char* func_name) const; - // Returns this class name. + ///\brief Returns this class name. virtual H5std_string fromClass() const { return("IdComponent");} #endif // DOXYGEN_SHOULD_SKIP_THIS diff --git a/c++/src/H5IntType.h b/c++/src/H5IntType.h index b712103..53864ee 100644 --- a/c++/src/H5IntType.h +++ b/c++/src/H5IntType.h @@ -35,7 +35,7 @@ class H5_DLLCPP IntType : public AtomType { // Sets the sign proprety for an integer type. void setSign( H5T_sign_t sign ) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("IntType"); } // Default constructor diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp new file mode 100644 index 0000000..b93cd86 --- /dev/null +++ b/c++/src/H5Location.cpp @@ -0,0 +1,669 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include + +#include "H5Include.h" +#include "H5Exception.h" +#include "H5IdComponent.h" +#include "H5PropList.h" +#include "H5Location.h" +#include "H5Object.h" +#include "H5DcreatProp.h" +#include "H5DxferProp.h" +#include "H5FaccProp.h" +#include "H5FcreatProp.h" +#include "H5CommonFG.h" +#include "H5DataType.h" +#include "H5DataSpace.h" +#include "H5AbstractDs.h" +#include "H5File.h" +#include "H5DataSet.h" +#include "H5Attribute.h" + +#ifndef H5_NO_NAMESPACE +namespace H5 { +#endif + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +// userAttrOpWrpr simply interfaces between the user's function and the +// C library function H5Aiterate2; used to resolve the different prototype +// problem. May be moved to Iterator later. +extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name, + const H5A_info_t *ainfo, void *op_data) +{ + H5std_string s_attr_name = H5std_string( attr_name ); +#ifdef NO_STATIC_CAST + UserData4Aiterate* myData = (UserData4Aiterate *) op_data; +#else + UserData4Aiterate* myData = static_cast (op_data); +#endif + myData->op( *myData->location, s_attr_name, myData->opData ); + return 0; +} + +//-------------------------------------------------------------------------- +// Function: H5Location default constructor (protected) +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +H5Location::H5Location() : IdComponent(0) {} + +//-------------------------------------------------------------------------- +// Function: H5Location overloaded constructor (protected) +// Purpose Creates an H5Location object using the id of an existing HDF5 +// object. +// Parameters object_id - IN: Id of an existing HDF5 object +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +H5Location::H5Location(const hid_t object_id) : IdComponent(object_id) {} + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +//-------------------------------------------------------------------------- +// Function: H5Location copy constructor +///\brief Copy constructor: makes a copy of the original H5Location +/// instance. +///\param original - IN: H5Location instance to copy +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +H5Location::H5Location( const H5Location& original ) : IdComponent( original ) {} + +//-------------------------------------------------------------------------- +// Function: H5Location::createAttribute +///\brief Creates an attribute for a group, dataset, or named datatype. +///\param name - IN: Name of the attribute +///\param data_type - IN: Datatype for the attribute +///\param data_space - IN: Dataspace for the attribute - only simple +/// dataspaces are allowed at this time +///\param create_plist - IN: Creation property list - default to +/// PropList::DEFAULT +///\return Attribute instance +///\exception H5::AttributeIException +///\par Description +/// The attribute name specified in \a name must be unique. +/// Attempting to create an attribute with the same name as an +/// existing attribute will raise an exception, leaving the +/// pre-existing attribute intact. To overwrite an existing +/// attribute with a new attribute of the same name, first +/// delete the existing one with \c H5Location::removeAttr, then +/// recreate it with this function. +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +Attribute H5Location::createAttribute( const char* name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const +{ + hid_t type_id = data_type.getId(); + hid_t space_id = data_space.getId(); + hid_t plist_id = create_plist.getId(); + hid_t attr_id = H5Acreate2(getId(), name, type_id, space_id, plist_id, H5P_DEFAULT ); + + // If the attribute id is valid, create and return the Attribute object + if( attr_id > 0 ) + { + Attribute attr( attr_id ); + return( attr ); + } + else + throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed"); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::createAttribute +///\brief This is an overloaded member function, provided for convenience. +/// It differs from the above function in that it takes +/// a reference to an \c H5std_string for \a name. +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +Attribute H5Location::createAttribute( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const +{ + return( createAttribute( name.c_str(), data_type, data_space, create_plist )); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::openAttribute +///\brief Opens an attribute given its name. +///\param name - IN: Name of the attribute +///\return Attribute instance +///\exception H5::AttributeIException +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +Attribute H5Location::openAttribute( const char* name ) const +{ + hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT); + if( attr_id > 0 ) + { + Attribute attr( attr_id ); + return( attr ); + } + else + { + throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen failed"); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::openAttribute +///\brief This is an overloaded member function, provided for convenience. +/// It differs from the above function in that it takes +/// a reference to an \c H5std_string for \a name. +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +Attribute H5Location::openAttribute( const H5std_string& name ) const +{ + return( openAttribute( name.c_str()) ); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::openAttribute +///\brief Opens an attribute given its index. +///\param idx - IN: Index of the attribute, a 0-based, non-negative integer +///\return Attribute instance +///\exception H5::AttributeIException +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +Attribute H5Location::openAttribute( const unsigned int idx ) const +{ + hid_t attr_id = H5Aopen_by_idx(getId(), ".", H5_INDEX_CRT_ORDER, + H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT); + if( attr_id > 0 ) + { + Attribute attr( attr_id ); + return( attr ); + } + else + { + throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::iterateAttrs +///\brief Iterates a user's function over all the attributes of an H5 +/// object, which may be a group, dataset or named datatype. +///\param user_op - IN: User's function to operate on each attribute +///\param _idx - IN/OUT: Starting (IN) and ending (OUT) attribute indices +///\param op_data - IN: User's data to pass to user's operator function +///\return Returned value of the last operator if it was non-zero, or +/// zero if all attributes were processed +///\exception H5::AttributeIException +///\par Description +/// The signature of user_op is +/// void (*)(H5::H5Location&, H5std_string, void*). +/// For information, please refer to the C layer Reference Manual +/// at: +/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5A.html#Annot-Iterate +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +int H5Location::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data ) +{ + // store the user's function and data + UserData4Aiterate* userData = new UserData4Aiterate; + userData->opData = op_data; + userData->op = user_op; + userData->location = this; + + // call the C library routine H5Aiterate2 to iterate the attributes + hsize_t idx = _idx ? (hsize_t)*_idx : 0; + int ret_value = H5Aiterate2(getId(), H5_INDEX_NAME, H5_ITER_INC, &idx, + userAttrOpWrpr, (void *) userData); + + // release memory + delete userData; + + if( ret_value >= 0 ) { + /* Pass back update index value to calling code */ + if (_idx) + *_idx = (unsigned)idx; + + return( ret_value ); + } + else // raise exception when H5Aiterate returns a negative value + throw AttributeIException(inMemFunc("iterateAttrs"), "H5Aiterate2 failed"); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::getNumAttrs +///\brief Returns the number of attributes attached to this HDF5 object. +///\return Number of attributes +///\exception H5::AttributeIException +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +int H5Location::getNumAttrs() const +{ + H5O_info_t oinfo; /* Object info */ + + if(H5Oget_info(getId(), &oinfo) < 0) + throw AttributeIException(inMemFunc("getNumAttrs"), "H5Oget_info failed"); + else + return( (int)oinfo.num_attrs ); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::removeAttr +///\brief Removes the named attribute from this object. +///\param name - IN: Name of the attribute to be removed +///\exception H5::AttributeIException +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +void H5Location::removeAttr( const char* name ) const +{ + herr_t ret_value = H5Adelete(getId(), name); + if( ret_value < 0 ) + throw AttributeIException(inMemFunc("removeAttr"), "H5Adelete failed"); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::removeAttr +///\brief This is an overloaded member function, provided for convenience. +/// It differs from the above function in that it takes +/// a reference to an \c H5std_string for \a name. +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +void H5Location::removeAttr( const H5std_string& name ) const +{ + removeAttr( name.c_str() ); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::renameAttr +///\brief Renames the named attribute from this object. +///\param oldname - IN: Name of the attribute to be renamed +///\param newname - IN: New name ame of the attribute +///\exception H5::AttributeIException +// Programmer Binh-Minh Ribler - Mar, 2005 +//-------------------------------------------------------------------------- +void H5Location::renameAttr(const char* oldname, const char* newname) const +{ + herr_t ret_value = H5Arename(getId(), oldname, newname); + if (ret_value < 0) + throw AttributeIException(inMemFunc("renameAttr"), "H5Arename failed"); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::renameAttr +///\brief This is an overloaded member function, provided for convenience. +/// It differs from the above function in that it takes +/// a reference to an \c H5std_string for the names. +// Programmer Binh-Minh Ribler - Mar, 2005 +//-------------------------------------------------------------------------- +void H5Location::renameAttr(const H5std_string& oldname, const H5std_string& newname) const +{ + renameAttr (oldname.c_str(), newname.c_str()); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::flush +///\brief Flushes all buffers associated with a location to disk. +///\param scope - IN: Specifies the scope of the flushing action, +/// which can be either of these values: +/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file +/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file +///\exception H5::FileIException +///\par Description +/// This location is used to identify the file to be flushed. +// Programmer Binh-Minh Ribler - 2012 +// Modification +// Sep 2012 - BMR +// Moved from H5File/H5Object +//-------------------------------------------------------------------------- +void H5Location::flush(H5F_scope_t scope) const +{ + herr_t ret_value = H5Fflush(getId(), scope); + if( ret_value < 0 ) + { + throw FileIException(inMemFunc("flush"), "H5Fflush failed"); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::getFileName +///\brief Gets the name of the file, in which this HDF5 object belongs. +///\return File name +///\exception H5::IdComponentException +// Programmer Binh-Minh Ribler - Jul, 2004 +//-------------------------------------------------------------------------- +H5std_string H5Location::getFileName() const +{ + try { + return(p_get_file_name()); + } + catch (IdComponentException E) { + throw FileIException(inMemFunc("getFileName"), E.getDetailMsg()); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::p_reference (protected) +// Purpose Creates a reference to an HDF5 object or a dataset region. +// Parameters +// name - IN: Name of the object to be referenced +// dataspace - IN: Dataspace with selection +// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION +// Exception H5::IdComponentException +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +void H5Location::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const +{ + herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id); + if (ret_value < 0) + { + throw ReferenceException("", "H5Rcreate failed"); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::reference +///\brief Creates a reference to an HDF5 object or a dataset region. +///\param ref - IN: Reference pointer +///\param name - IN: Name of the object to be referenced +///\param dataspace - IN: Dataspace with selection +///\param ref_type - IN: Type of reference to query, valid values are: +/// \li \c H5R_OBJECT - Reference is an object reference. +/// \li \c H5R_DATASET_REGION - Reference is a dataset region +/// reference. - this is the default +///\exception H5::ReferenceException +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +void H5Location::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const +{ + try { + p_reference(ref, name, dataspace.getId(), ref_type); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::reference", E.getDetailMsg()); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::reference +///\brief This is an overloaded function, provided for your convenience. +/// It differs from the above function in that it only creates +/// a reference to an HDF5 object, not to a dataset region. +///\param ref - IN: Reference pointer +///\param name - IN: Name of the object to be referenced - \c char pointer +///\exception H5::ReferenceException +///\par Description +// This function passes H5R_OBJECT and -1 to the protected +// function for it to pass to the C API H5Rcreate +// to create a reference to the named object. +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +void H5Location::reference(void* ref, const char* name) const +{ + try { + p_reference(ref, name, -1, H5R_OBJECT); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::reference", E.getDetailMsg()); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::reference +///\brief This is an overloaded function, provided for your convenience. +/// It differs from the above function in that it takes an +/// \c H5std_string for the object's name. +///\param ref - IN: Reference pointer +///\param name - IN: Name of the object to be referenced - \c H5std_string +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +void H5Location::reference(void* ref, const H5std_string& name) const +{ + reference(ref, name.c_str()); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::p_dereference (protected) +// Purpose Dereference a ref into an hdf5 object. +// Parameters +// loc_id - IN: An hdf5 identifier specifying the location of the +// referenced object +// ref - IN: Reference pointer +// ref_type - IN: Reference type +// Exception H5::ReferenceException +// Programmer Binh-Minh Ribler - Oct, 2006 +// Modification +// May 2008 - BMR +// Moved from IdComponent. +//-------------------------------------------------------------------------- +hid_t H5Location::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type) +{ + hid_t temp_id; + temp_id = H5Rdereference2(loc_id, H5P_DEFAULT, ref_type, ref); + if (temp_id < 0) + { + throw ReferenceException("", "H5Rdereference failed"); + } + + // No failure, set id to the object + return(temp_id); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::dereference +///\brief Dereferences a reference into an HDF5 object, given an HDF5 object. +///\param obj - IN: Object specifying the location of the referenced object +///\param ref - IN: Reference pointer +///\param ref_type - IN: Reference type +///\exception H5::ReferenceException +// Programmer Binh-Minh Ribler - Oct, 2006 +// Modification +// May, 2008 +// Corrected missing parameters. - BMR +//-------------------------------------------------------------------------- +void H5Location::dereference(H5Object& obj, const void* ref, H5R_type_t ref_type) +{ + hid_t temp_id; + try { + temp_id = p_dereference(obj.getId(), ref, ref_type); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::dereference - located by object", E.getDetailMsg()); + } + p_setId(temp_id); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::dereference +///\brief Dereferences a reference into an HDF5 object, given an HDF5 file. +///\param h5file - IN: HDF5 file specifying the location of the referenced object +///\param ref - IN: Reference pointer +///\param ref_type - IN: Reference type +///\exception H5::ReferenceException +// Programmer Binh-Minh Ribler - Oct, 2006 +// Modification +// May, 2008 +// Corrected missing parameters. - BMR +//-------------------------------------------------------------------------- +void H5Location::dereference(H5File& h5file, const void* ref, H5R_type_t ref_type) +{ + hid_t temp_id; + try { + temp_id = p_dereference(h5file.getId(), ref, ref_type); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::dereference - located by file", E.getDetailMsg()); + } + p_setId(temp_id); +} + +//-------------------------------------------------------------------------- +// Function: H5Location::dereference +///\brief Dereferences a reference into an HDF5 object, given an attribute. +///\param attr - IN: Attribute specifying the location of the referenced object +///\param ref - IN: Reference pointer +///\param ref_type - IN: Reference type +///\exception H5::ReferenceException +// Programmer Binh-Minh Ribler - Oct, 2006 +// Modification +// May, 2008 +// Corrected missing parameters. - BMR +//-------------------------------------------------------------------------- +void H5Location::dereference(Attribute& attr, const void* ref, H5R_type_t ref_type) +{ + hid_t temp_id; + try { + temp_id = p_dereference(attr.getId(), ref, ref_type); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::dereference - located by attribute", E.getDetailMsg()); + } + p_setId(temp_id); +} + +#ifndef H5_NO_DEPRECATED_SYMBOLS +//-------------------------------------------------------------------------- +// Function: H5Location::getObjType +///\brief Retrieves the type of object that an object reference points to. +///\param ref_type - IN: Type of reference to query, valid values are: +/// \li \c H5R_OBJECT \tReference is an object reference. +/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference. +///\param ref - IN: Reference to query +///\return An object type, which can be one of the following: +/// \li \c H5G_UNKNOWN \tA failure occurs. (-1) +/// \li \c H5G_GROUP \tObject is a group. +/// \li \c H5G_DATASET \tObject is a dataset. +/// \li \c H5G_TYPE Object \tis a named datatype +/// \li \c H5G_LINK \tObject is a symbolic link. +/// \li \c H5G_UDLINK \tObject is a user-defined link. +///\exception H5::ReferenceException +// Programmer Binh-Minh Ribler - May, 2004 +// Modification +// Sep 2012: Moved up from H5File, Group, DataSet, and DataType +//-------------------------------------------------------------------------- +H5G_obj_t H5Location::getObjType(void *ref, H5R_type_t ref_type) const +{ + try { + return(p_get_obj_type(ref, ref_type)); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::getObjType", E.getDetailMsg()); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::p_get_obj_type (protected) +// Purpose Retrieves the type of object that an object reference points to. +// Parameters +// ref - IN: Reference to query +// ref_type - IN: Type of reference to query +// Return An object type, which can be one of the following: +// H5G_UNKNOWN \tFailure occurs (-1) +// H5G_GROUP \tObject is a group. +// H5G_DATASET \tObject is a dataset. +// H5G_TYPE Object \tis a named datatype. +// H5G_LINK \tObject is a symbolic link. +// H5G_UDLINK \tObject is a user-defined link. +// Exception H5::ReferenceException +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +H5G_obj_t H5Location::p_get_obj_type(void *ref, H5R_type_t ref_type) const +{ + H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref); + + if (obj_type == H5G_UNKNOWN) + { + throw ReferenceException("", "H5Rget_obj_type1 failed"); + } + return(obj_type); +} +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + + +//-------------------------------------------------------------------------- +// Function: H5Location::getRefObjType +///\brief Retrieves the type of object that an object reference points to. +///\param ref - IN: Reference to query +///\param ref_type - IN: Type of reference to query, valid values are: +/// \li \c H5R_OBJECT - Reference is an object reference. +/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference. +///\return An object type, which can be one of the following: +/// \li \c H5O_TYPE_UNKNOWN - Unknown object type (-1) +/// \li \c H5O_TYPE_GROUP - Object is a group +/// \li \c H5O_TYPE_DATASET - Object is a dataset +/// \li \c H5O_TYPE_NAMED_DATATYPE - Object is a named datatype +/// \li \c H5O_TYPE_NTYPES - Number of different object types +///\exception H5::ReferenceException +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +H5O_type_t H5Location::getRefObjType(void *ref, H5R_type_t ref_type) const +{ + try { + return(p_get_ref_obj_type(ref, ref_type)); + } + catch (ReferenceException E) { + throw ReferenceException("H5Location::getRefObjType", E.getDetailMsg()); + } +} + +//-------------------------------------------------------------------------- +// Function: H5Location::p_get_ref_obj_type (protected) +// Purpose Retrieves the type of object that an object reference points to. +// Parameters +// ref - IN: Reference to query +// ref_type - IN: Type of reference to query +// Return An object type, which can be one of the following: +// H5O_TYPE_UNKNOWN - Unknown object type (-1) +// H5O_TYPE_GROUP - Object is a group +// H5O_TYPE_DATASET - Object is a dataset +// H5O_TYPE_NAMED_DATATYPE - Object is a named datatype +// H5O_TYPE_NTYPES - Number of object types +// Exception H5::ReferenceException +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +H5O_type_t H5Location::p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const +{ + H5O_type_t obj_type = H5O_TYPE_UNKNOWN; + herr_t ret_value = H5Rget_obj_type2(getId(), ref_type, ref, &obj_type); + + if (obj_type == H5O_TYPE_UNKNOWN || obj_type >= H5O_TYPE_NTYPES) + { + throw ReferenceException("", "H5Rget_obj_type2 failed"); + } + return(obj_type); +} + + +//-------------------------------------------------------------------------- +// Function: H5Location::p_get_region (protected) +// Purpose Retrieves a dataspace with the region pointed to selected. +// Parameters +// ref_type - IN: Type of reference to get region of - default +// to H5R_DATASET_REGION +// ref - IN: Reference to get region of +// Return Dataspace id +// Exception H5::ReferenceException +// Programmer Binh-Minh Ribler - May, 2004 +//-------------------------------------------------------------------------- +hid_t H5Location::p_get_region(void *ref, H5R_type_t ref_type) const +{ + hid_t space_id = H5Rget_region(getId(), ref_type, ref); + if (space_id < 0) + { + throw ReferenceException("", "H5Rget_region failed"); + } + return(space_id); +} + + +//-------------------------------------------------------------------------- +// Function: H5Location destructor +///\brief Noop destructor. +// Programmer Binh-Minh Ribler - 2000 +//-------------------------------------------------------------------------- +H5Location::~H5Location() {} + +#ifndef H5_NO_NAMESPACE +} // end namespace +#endif diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h new file mode 100644 index 0000000..d1dd892 --- /dev/null +++ b/c++/src/H5Location.h @@ -0,0 +1,146 @@ +// C++ informative line for the emacs editor: -*- C++ -*- +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef _H5Location_H +#define _H5Location_H + +#include "H5Classes.h" // constains forward class declarations + +// H5Location is an abstract class. It provides a collection of wrappers +// of C functions which take location IDs. Most of these were in H5Object +// but are now moved here for H5File's access. + +#ifndef H5_NO_NAMESPACE +namespace H5 { +#endif + +class H5_DLLCPP H5Location; // forward declaration for UserData4Aiterate + +// Define the operator function pointer for H5Aiterate(). +typedef void (*attr_operator_t)( H5Location& loc/*in*/, + const H5std_string attr_name/*in*/, + void *operator_data/*in,out*/); + +class UserData4Aiterate { // user data for attribute iteration + public: + attr_operator_t op; + void* opData; + H5Location* location; +}; + +// An H5Location can be a file, group, dataset, named datatype, or attribute. + +class H5_DLLCPP H5Location : public IdComponent { + public: + // Creates an attribute for the specified object at this location + // PropList is currently not used, so always be default. + Attribute createAttribute( const char* name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const; + Attribute createAttribute( const H5std_string& name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const; + + // Given its name, opens the attribute that belongs to an object at + // this location. + Attribute openAttribute( const char* name ) const; + Attribute openAttribute( const H5std_string& name ) const; + + // Given its index, opens the attribute that belongs to an object at + // this location. + Attribute openAttribute( const unsigned int idx ) const; + + // Flushes all buffers associated with this location to disk. + void flush( H5F_scope_t scope ) const; + + // Gets the name of the file, specified by this location. + H5std_string getFileName() const; + + // Determines the number of attributes at this location. + int getNumAttrs() const; + +#ifndef H5_NO_DEPRECATED_SYMBOLS + // Retrieves the type of object that an object reference points to. + H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const; +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + + // Retrieves the type of object that an object reference points to. + H5O_type_t getRefObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const; + // Note: getRefObjType deprecates getObjType, but getObjType's name is + // misleading, so getRefObjType is used in the new function instead. + + // Iterate user's function over the attributes at this location. + int iterateAttrs( attr_operator_t user_op, unsigned* idx = NULL, void* op_data = NULL ); + + // Removes the named attribute from this location. + void removeAttr( const char* name ) const; + void removeAttr( const H5std_string& name ) const; + + // Renames the named attribute to a new name. + void renameAttr(const char* oldname, const char* newname) const; + void renameAttr(const H5std_string& oldname, const H5std_string& newname) const; + + // Creates a reference to a named object or to a dataset region + // in this object. + void reference(void* ref, const char* name, const DataSpace& dataspace, + H5R_type_t ref_type = H5R_DATASET_REGION) const; + void reference(void* ref, const char* name) const; + void reference(void* ref, const H5std_string& name) const; + + // Open a referenced object whose location is specified by either + // a file, an HDF5 object, or an attribute. + void dereference(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT); + void dereference(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT); + void dereference(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT); + + // For subclasses. + virtual hid_t getId() const = 0; + + protected: +#ifndef DOXYGEN_SHOULD_SKIP_THIS + // Default constructor, + H5Location(); + + // Creates a copy of an existing object giving the location id. + H5Location(const hid_t loc_id); + + // Copy constructor. + H5Location(const H5Location& original); + + // Creates a reference to an HDF5 object or a dataset region. + void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; + + // Dereferences a ref into an HDF5 id. + hid_t p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type); + +#ifndef H5_NO_DEPRECATED_SYMBOLS + // Retrieves the type of object that an object reference points to. + H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const; +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + + // Retrieves the type of object that an object reference points to. + H5O_type_t p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const; + + // Retrieves a dataspace with the region pointed to selected. + hid_t p_get_region(void *ref, H5R_type_t ref_type) const; + + // Noop destructor. + virtual ~H5Location(); + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +}; /* end class H5Location */ + +#ifndef H5_NO_NAMESPACE +} +#endif +#endif diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp index 3c85502..e29e80e 100644 --- a/c++/src/H5Object.cpp +++ b/c++/src/H5Object.cpp @@ -37,30 +37,11 @@ namespace H5 { #endif #ifndef DOXYGEN_SHOULD_SKIP_THIS -// userAttrOpWrpr simply interfaces between the user's function and the -// C library function H5Aiterate2; used to resolve the different prototype -// problem. May be moved to Iterator later. -extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name, - const H5A_info_t *ainfo, void *op_data) -{ - H5std_string s_attr_name = H5std_string( attr_name ); -#ifdef NO_STATIC_CAST - UserData4Aiterate* myData = (UserData4Aiterate *) op_data; -#else - UserData4Aiterate* myData = static_cast (op_data); -#endif - myData->op( *myData->object, s_attr_name, myData->opData ); - return 0; -} - //-------------------------------------------------------------------------- // Function: H5Object default constructor (protected) -// Description -// The id is set by IdComponent() but subclass constructor will -// set it to a valid HDF5 id. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5Object::H5Object() : IdComponent(0) {} +H5Object::H5Object() : H5Location() {} //-------------------------------------------------------------------------- // Function: H5Object overloaded constructor (protected) @@ -69,7 +50,7 @@ H5Object::H5Object() : IdComponent(0) {} // Parameters object_id - IN: Id of an existing HDF5 object // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5Object::H5Object( const hid_t object_id ) : IdComponent( object_id ) {} +H5Object::H5Object( const hid_t object_id ) : H5Location( object_id ) {} #endif // DOXYGEN_SHOULD_SKIP_THIS @@ -80,496 +61,7 @@ H5Object::H5Object( const hid_t object_id ) : IdComponent( object_id ) {} ///\param original - IN: H5Object instance to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5Object::H5Object( const H5Object& original ) : IdComponent( original ) {} - -//-------------------------------------------------------------------------- -// Function: H5Object::createAttribute -///\brief Creates an attribute for a group, dataset, or named datatype. -///\param name - IN: Name of the attribute -///\param data_type - IN: Datatype for the attribute -///\param data_space - IN: Dataspace for the attribute - only simple -/// dataspaces are allowed at this time -///\param create_plist - IN: Creation property list - default to -/// PropList::DEFAULT -///\return Attribute instance -///\exception H5::AttributeIException -///\par Description -/// The attribute name specified in \a name must be unique. -/// Attempting to create an attribute with the same name as an -/// existing attribute will raise an exception, leaving the -/// pre-existing attribute intact. To overwrite an existing -/// attribute with a new attribute of the same name, first -/// delete the existing one with \c H5Object::removeAttr, then -/// recreate it with this function. -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -Attribute H5Object::createAttribute( const char* name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const -{ - hid_t type_id = data_type.getId(); - hid_t space_id = data_space.getId(); - hid_t plist_id = create_plist.getId(); - hid_t attr_id = H5Acreate2(getId(), name, type_id, space_id, plist_id, H5P_DEFAULT ); - - // If the attribute id is valid, create and return the Attribute object - if( attr_id > 0 ) - { - Attribute attr( attr_id ); - return( attr ); - } - else - throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed"); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::createAttribute -///\brief This is an overloaded member function, provided for convenience. -/// It differs from the above function in that it takes -/// a reference to an \c H5std_string for \a name. -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -Attribute H5Object::createAttribute( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const -{ - return( createAttribute( name.c_str(), data_type, data_space, create_plist )); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::openAttribute -///\brief Opens an attribute given its name. -///\param name - IN: Name of the attribute -///\return Attribute instance -///\exception H5::AttributeIException -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -Attribute H5Object::openAttribute( const char* name ) const -{ - hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT); - if( attr_id > 0 ) - { - Attribute attr( attr_id ); - return( attr ); - } - else - { - throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen failed"); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::openAttribute -///\brief This is an overloaded member function, provided for convenience. -/// It differs from the above function in that it takes -/// a reference to an \c H5std_string for \a name. -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -Attribute H5Object::openAttribute( const H5std_string& name ) const -{ - return( openAttribute( name.c_str()) ); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::openAttribute -///\brief Opens an attribute given its index. -///\param idx - IN: Index of the attribute, a 0-based, non-negative integer -///\return Attribute instance -///\exception H5::AttributeIException -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -Attribute H5Object::openAttribute( const unsigned int idx ) const -{ - hid_t attr_id = H5Aopen_by_idx(getId(), ".", H5_INDEX_CRT_ORDER, - H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT); - if( attr_id > 0 ) - { - Attribute attr( attr_id ); - return( attr ); - } - else - { - throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::iterateAttrs -///\brief Iterates a user's function over all the attributes of an H5 -/// object, which may be a group, dataset or named datatype. -///\param user_op - IN: User's function to operate on each attribute -///\param _idx - IN/OUT: Starting (IN) and ending (OUT) attribute indices -///\param op_data - IN: User's data to pass to user's operator function -///\return Returned value of the last operator if it was non-zero, or -/// zero if all attributes were processed -///\exception H5::AttributeIException -///\par Description -/// The signature of user_op is -/// void (*)(H5::H5Object&, H5std_string, void*). -/// For information, please refer to the C layer Reference Manual -/// at: -/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5A.html#Annot-Iterate -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data ) -{ - // store the user's function and data - UserData4Aiterate* userData = new UserData4Aiterate; - userData->opData = op_data; - userData->op = user_op; - userData->object = this; - - // call the C library routine H5Aiterate2 to iterate the attributes - hsize_t idx = _idx ? (hsize_t)*_idx : 0; - int ret_value = H5Aiterate2(getId(), H5_INDEX_NAME, H5_ITER_INC, &idx, - userAttrOpWrpr, (void *) userData); - - // release memory - delete userData; - - if( ret_value >= 0 ) { - /* Pass back update index value to calling code */ - if (_idx) - *_idx = (unsigned)idx; - - return( ret_value ); - } - else // raise exception when H5Aiterate returns a negative value - throw AttributeIException(inMemFunc("iterateAttrs"), "H5Aiterate2 failed"); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::getNumAttrs -///\brief Returns the number of attributes attached to this HDF5 object. -///\return Number of attributes -///\exception H5::AttributeIException -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -int H5Object::getNumAttrs() const -{ - H5O_info_t oinfo; /* Object info */ - - if(H5Oget_info(getId(), &oinfo) < 0) - throw AttributeIException(inMemFunc("getNumAttrs"), "H5Oget_info failed"); - else - return( (int)oinfo.num_attrs ); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::removeAttr -///\brief Removes the named attribute from this object. -///\param name - IN: Name of the attribute to be removed -///\exception H5::AttributeIException -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -void H5Object::removeAttr( const char* name ) const -{ - herr_t ret_value = H5Adelete(getId(), name); - if( ret_value < 0 ) - throw AttributeIException(inMemFunc("removeAttr"), "H5Adelete failed"); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::removeAttr -///\brief This is an overloaded member function, provided for convenience. -/// It differs from the above function in that it takes -/// a reference to an \c H5std_string for \a name. -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -void H5Object::removeAttr( const H5std_string& name ) const -{ - removeAttr( name.c_str() ); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::renameAttr -///\brief Renames the named attribute from this object. -///\param oldname - IN: Name of the attribute to be renamed -///\param newname - IN: New name ame of the attribute -///\exception H5::AttributeIException -// Programmer Binh-Minh Ribler - Mar, 2005 -//-------------------------------------------------------------------------- -void H5Object::renameAttr(const char* oldname, const char* newname) const -{ - herr_t ret_value = H5Arename(getId(), oldname, newname); - if (ret_value < 0) - throw AttributeIException(inMemFunc("renameAttr"), "H5Arename failed"); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::renameAttr -///\brief This is an overloaded member function, provided for convenience. -/// It differs from the above function in that it takes -/// a reference to an \c H5std_string for the names. -// Programmer Binh-Minh Ribler - Mar, 2005 -//-------------------------------------------------------------------------- -void H5Object::renameAttr(const H5std_string& oldname, const H5std_string& newname) const -{ - renameAttr (oldname.c_str(), newname.c_str()); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::flush -///\brief Flushes all buffers associated with a file to disk. -///\param scope - IN: Specifies the scope of the flushing action, -/// which can be either of these values: -/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file -/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file -///\exception H5::AttributeIException -///\par Description -/// This object is used to identify the file to be flushed. -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -void H5Object::flush(H5F_scope_t scope) const -{ - herr_t ret_value = H5Fflush(getId(), scope); - if( ret_value < 0 ) - { - throw FileIException(inMemFunc("flush"), "H5Fflush failed"); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::getFileName -///\brief Gets the name of the file, in which this HDF5 object belongs. -///\return File name -///\exception H5::IdComponentException -// Programmer Binh-Minh Ribler - Jul, 2004 -//-------------------------------------------------------------------------- -H5std_string H5Object::getFileName() const -{ - try { - return(p_get_file_name()); - } - catch (IdComponentException E) { - throw FileIException(inMemFunc("getFileName"), E.getDetailMsg()); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::p_reference (protected) -// Purpose Creates a reference to an HDF5 object or a dataset region. -// Parameters -// name - IN: Name of the object to be referenced -// dataspace - IN: Dataspace with selection -// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION -// Exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5Object::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const -{ - herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id); - if (ret_value < 0) - { - throw IdComponentException("", "H5Rcreate failed"); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::reference -///\brief Creates a reference to an HDF5 object or a dataset region. -///\param ref - IN: Reference pointer -///\param name - IN: Name of the object to be referenced -///\param dataspace - IN: Dataspace with selection -///\param ref_type - IN: Type of reference to query, valid values are: -/// \li \c H5R_OBJECT - Reference is an object reference. -/// \li \c H5R_DATASET_REGION - Reference is a dataset region -/// reference. - this is the default -///\exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5Object::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const -{ - try { - p_reference(ref, name, dataspace.getId(), ref_type); - } - catch (IdComponentException E) { - throw IdComponentException("H5Object::reference", E.getDetailMsg()); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::reference -///\brief This is an overloaded function, provided for your convenience. -/// It differs from the above function in that it only creates -/// a reference to an HDF5 object, not to a dataset region. -///\param ref - IN: Reference pointer -///\param name - IN: Name of the object to be referenced - \c char pointer -///\exception H5::IdComponentException -///\par Description -// This function passes H5R_OBJECT and -1 to the protected -// function for it to pass to the C API H5Rcreate -// to create a reference to the named object. -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5Object::reference(void* ref, const char* name) const -{ - try { - p_reference(ref, name, -1, H5R_OBJECT); - } - catch (IdComponentException E) { - throw IdComponentException("H5Object::reference", E.getDetailMsg()); - } -} - -//-------------------------------------------------------------------------- -// Function: H5Object::reference -///\brief This is an overloaded function, provided for your convenience. -/// It differs from the above function in that it takes an -/// \c H5std_string for the object's name. -///\param ref - IN: Reference pointer -///\param name - IN: Name of the object to be referenced - \c H5std_string -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -void H5Object::reference(void* ref, const H5std_string& name) const -{ - reference(ref, name.c_str()); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::p_dereference (protected) -// Purpose Dereference a ref into an hdf5 object. -// Parameters -// loc_id - IN: An hdf5 identifier specifying the location of the -// referenced object -// ref - IN: Reference pointer -// ref_type - IN: Reference type -// Exception H5::ReferenceException -// Programmer Binh-Minh Ribler - Oct, 2006 -// Modification -// May 2008 - BMR -// Moved from IdComponent. -//-------------------------------------------------------------------------- -hid_t H5Object::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type) -{ - hid_t temp_id; - temp_id = H5Rdereference2(loc_id, H5P_DEFAULT, ref_type, ref); - if (temp_id < 0) - { - throw ReferenceException("", "H5Rdereference failed"); - } - - // No failure, set id to the object - return(temp_id); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::dereference -///\brief Dereferences a reference into an HDF5 object, given an HDF5 object. -///\param obj - IN: Object specifying the location of the referenced object -///\param ref - IN: Reference pointer -///\param ref_type - IN: Reference type -///\exception H5::ReferenceException -// Programmer Binh-Minh Ribler - Oct, 2006 -// Modification -// May, 2008 -// Corrected missing parameters. - BMR -//-------------------------------------------------------------------------- -void H5Object::dereference(H5Object& obj, const void* ref, H5R_type_t ref_type) -{ - hid_t temp_id; - try { - temp_id = p_dereference(obj.getId(), ref, ref_type); - } - catch (ReferenceException E) { - throw ReferenceException("H5Object::dereference - located by object", E.getDetailMsg()); - } - p_setId(temp_id); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::dereference -///\brief Dereferences a reference into an HDF5 object, given an HDF5 file. -///\param h5file - IN: HDF5 file specifying the location of the referenced object -///\param ref - IN: Reference pointer -///\param ref_type - IN: Reference type -///\exception H5::ReferenceException -// Programmer Binh-Minh Ribler - Oct, 2006 -// Modification -// May, 2008 -// Corrected missing parameters. - BMR -//-------------------------------------------------------------------------- -void H5Object::dereference(H5File& h5file, const void* ref, H5R_type_t ref_type) -{ - hid_t temp_id; - try { - temp_id = p_dereference(h5file.getId(), ref, ref_type); - } - catch (ReferenceException E) { - throw ReferenceException("H5Object::dereference - located by file", E.getDetailMsg()); - } - p_setId(temp_id); -} - -//-------------------------------------------------------------------------- -// Function: H5Object::dereference -///\brief Dereferences a reference into an HDF5 object, given an attribute. -///\param attr - IN: Attribute specifying the location of the referenced object -///\param ref - IN: Reference pointer -///\param ref_type - IN: Reference type -///\exception H5::ReferenceException -// Programmer Binh-Minh Ribler - Oct, 2006 -// Modification -// May, 2008 -// Corrected missing parameters. - BMR -//-------------------------------------------------------------------------- -void H5Object::dereference(Attribute& attr, const void* ref, H5R_type_t ref_type) -{ - hid_t temp_id; - try { - temp_id = p_dereference(attr.getId(), ref, ref_type); - } - catch (ReferenceException E) { - throw ReferenceException("H5Object::dereference - located by attribute", E.getDetailMsg()); - } - p_setId(temp_id); -} - -#ifndef H5_NO_DEPRECATED_SYMBOLS -//-------------------------------------------------------------------------- -// Function: H5Object::p_get_obj_type (protected) -// Purpose Retrieves the type of object that an object reference points to. -// Parameters -// ref - IN: Reference to query -// ref_type - IN: Type of reference to query -// Return An object type, which can be one of the following: -// H5G_LINK Object is a symbolic link. -// H5G_GROUP Object is a group. -// H5G_DATASET Object is a dataset. -// H5G_TYPE Object is a named datatype -// Exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -H5G_obj_t H5Object::p_get_obj_type(void *ref, H5R_type_t ref_type) const -{ - H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref); - - if (obj_type == H5G_UNKNOWN) - { - throw IdComponentException("", "H5Rget_obj_type failed"); - } - return(obj_type); -} -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - - -//-------------------------------------------------------------------------- -// Function: H5Object::p_get_region (protected) -// Purpose Retrieves a dataspace with the region pointed to selected. -// Parameters -// ref_type - IN: Type of reference to get region of - default -// to H5R_DATASET_REGION -// ref - IN: Reference to get region of -// Return Dataspace id -// Exception H5::IdComponentException -// Programmer Binh-Minh Ribler - May, 2004 -//-------------------------------------------------------------------------- -hid_t H5Object::p_get_region(void *ref, H5R_type_t ref_type) const -{ - hid_t space_id = H5Rget_region(getId(), ref_type, ref); - if (space_id < 0) - { - throw IdComponentException("", "H5Rget_region failed"); - } - return(space_id); -} - +H5Object::H5Object( const H5Object& original ) : H5Location( original ) {} //-------------------------------------------------------------------------- // Function: H5Object destructor diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index 4ac417b..bfd5e6f 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -17,81 +17,29 @@ #ifndef _H5Object_H #define _H5Object_H +#include "H5Location.h" #include "H5Classes.h" // constains forward class declarations // H5Object is a baseclass. It has these subclasses: // Group, DataSet, and DataType. // DataType, in turn, has several specific datatypes as subclasses. +// Modification: +// Sept 18, 2012: Added class H5Location in between IdComponent and +// H5Object. An H5File now inherits from H5Location. All HDF5 +// wrappers in H5Object are moved up to H5Location. H5Object +// is left mostly empty for future wrappers that are only for +// group, dataset, and named datatype. Note that the reason for +// adding H5Location instead of simply moving H5File to be under +// H5Object is H5File is not an HDF5 object, and renaming H5Object +// to H5Location will risk breaking user applications. +// -BMR #ifndef H5_NO_NAMESPACE namespace H5 { #endif -#ifndef DOXYGEN_SHOULD_SKIP_THIS -class H5_DLLCPP H5Object; // forward declaration for UserData4Aiterate - -// Define the operator function pointer for H5Aiterate(). -typedef void (*attr_operator_t)( H5Object& loc/*in*/, - const H5std_string attr_name/*in*/, - void *operator_data/*in,out*/); - -class UserData4Aiterate { // user data for attribute iteration - public: - attr_operator_t op; - void* opData; - H5Object* object; -}; -#endif // DOXYGEN_SHOULD_SKIP_THIS - -// The above part is being moved into Iterator, but not completed - -class H5_DLLCPP H5Object : public IdComponent { +class H5_DLLCPP H5Object : public H5Location { public: - // Creates an attribute for a group, dataset, or named datatype. - // PropList is currently not used, so always be default. - Attribute createAttribute( const char* name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const; - Attribute createAttribute( const H5std_string& name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const; - - // Opens an attribute given its name. - Attribute openAttribute( const char* name ) const; - Attribute openAttribute( const H5std_string& name ) const; - - // Opens an attribute given its index. - Attribute openAttribute( const unsigned int idx ) const; - - // Flushes all buffers associated with this object to disk - void flush( H5F_scope_t scope ) const; - - // Gets the name of the file, in which this HDF5 object belongs. - H5std_string getFileName() const; - - // Determines the number of attributes attached to this object. - int getNumAttrs() const; - - // Iterate user's function over the attributes of this object - int iterateAttrs( attr_operator_t user_op, unsigned* idx = NULL, void* op_data = NULL ); - - // Removes the named attribute from this object. - void removeAttr( const char* name ) const; - void removeAttr( const H5std_string& name ) const; - - // Renames the attribute to a new name. - void renameAttr(const char* oldname, const char* newname) const; - void renameAttr(const H5std_string& oldname, const H5std_string& newname) const; - - // Creates a reference to a named Hdf5 object or to a dataset region - // in this object. - void reference(void* ref, const char* name, const DataSpace& dataspace, - H5R_type_t ref_type = H5R_DATASET_REGION) const; - void reference(void* ref, const char* name) const; - void reference(void* ref, const H5std_string& name) const; - - // Open a referenced HDF5 object whose location is specified by either - // a file, an HDF5 object, or an attribute. - void dereference(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT); - void dereference(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT); - void dereference(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT); - // Copy constructor: makes copy of an H5Object object. H5Object(const H5Object& original); @@ -106,23 +54,6 @@ class H5_DLLCPP H5Object : public IdComponent { // Creates a copy of an existing object giving the object id H5Object( const hid_t object_id ); - // Gets the id of the H5 file in which the given object is located. - hid_t p_get_file_id(); - - // Creates a reference to an HDF5 object or a dataset region. - void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; - - // Dereferences a ref into an hdf5 id. - hid_t p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type); - -#ifndef H5_NO_DEPRECATED_SYMBOLS - // Retrieves the type of object that an object reference points to. - H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const; -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - - // Retrieves a dataspace with the region pointed to selected. - hid_t p_get_region(void *ref, H5R_type_t ref_type) const; - #endif // DOXYGEN_SHOULD_SKIP_THIS }; /* end class H5Object */ diff --git a/c++/src/H5PredType.h b/c++/src/H5PredType.h index 9cb1c65..8a04f0c 100644 --- a/c++/src/H5PredType.h +++ b/c++/src/H5PredType.h @@ -36,7 +36,7 @@ namespace H5 { class H5_DLLCPP PredType : public AtomType { public: - ///\brief Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("PredType"); } // Makes a copy of the predefined type and stores the new diff --git a/c++/src/H5PropList.h b/c++/src/H5PropList.h index 5dfa538..7e47b32 100644 --- a/c++/src/H5PropList.h +++ b/c++/src/H5PropList.h @@ -94,7 +94,7 @@ class H5_DLLCPP PropList : public IdComponent { void removeProp(const char *name) const; void removeProp(const H5std_string& name) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("PropList"); } // Default constructor: creates a stub PropList object. diff --git a/c++/src/H5StrType.h b/c++/src/H5StrType.h index d4a0016..be9fed8 100644 --- a/c++/src/H5StrType.h +++ b/c++/src/H5StrType.h @@ -47,7 +47,7 @@ class H5_DLLCPP StrType : public AtomType { // Defines the storage mechanism for character strings. void setStrpad(H5T_str_t strpad) const; - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("StrType"); } // default constructor diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h index 91f653e..0cee219 100644 --- a/c++/src/H5VarLenType.h +++ b/c++/src/H5VarLenType.h @@ -30,7 +30,7 @@ class H5_DLLCPP VarLenType : public DataType { // on the specified base type. VarLenType(const DataType* base_type); - // Returns this class name + ///\brief Returns this class name. virtual H5std_string fromClass () const { return("VarLenType"); } // Copy constructor: makes copy of the original object. diff --git a/c++/src/Makefile.am b/c++/src/Makefile.am index 6278fa0..ec942fd 100644 --- a/c++/src/Makefile.am +++ b/c++/src/Makefile.am @@ -40,12 +40,12 @@ bin_SCRIPTS=h5c++ # Source files for the library libhdf5_cpp_la_SOURCES=H5Exception.cpp H5IdComponent.cpp H5Library.cpp \ - H5Attribute.cpp H5Object.cpp H5PropList.cpp H5FaccProp.cpp \ - H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp H5DataType.cpp \ - H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp H5PredType.cpp \ - H5EnumType.cpp H5IntType.cpp H5FloatType.cpp H5StrType.cpp \ - H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp H5DataSet.cpp \ - H5CommonFG.cpp H5Group.cpp H5File.cpp + H5Attribute.cpp H5Location.cpp H5Object.cpp H5PropList.cpp \ + H5FaccProp.cpp H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp \ + H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp \ + H5PredType.cpp H5EnumType.cpp H5IntType.cpp H5FloatType.cpp \ + H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp \ + H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp # HDF5 C++ library depends on HDF5 Library. libhdf5_cpp_la_LIBADD=$(LIBHDF5) @@ -55,8 +55,9 @@ include_HEADERS=H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h \ H5CommonFG.h H5CompType.h H5DataSet.h H5DataSpace.h H5DataType.h \ H5DcreatProp.h H5DxferProp.h H5EnumType.h H5Exception.h H5FaccProp.h \ H5FcreatProp.h H5File.h H5FloatType.h H5Group.h H5IdComponent.h \ - H5Include.h H5IntType.h H5Library.h H5Object.h H5PredType.h \ - H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h H5VarLenType.h + H5Include.h H5IntType.h H5Library.h H5Location.h H5Object.h \ + H5PredType.h H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h \ + H5VarLenType.h # h5c++ and libhdf5.settings are generated during configure. Remove only when # distclean. diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 8382deb..7a4d3ee 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -120,12 +120,12 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ LTLIBRARIES = $(lib_LTLIBRARIES) libhdf5_cpp_la_DEPENDENCIES = $(LIBHDF5) am_libhdf5_cpp_la_OBJECTS = H5Exception.lo H5IdComponent.lo \ - H5Library.lo H5Attribute.lo H5Object.lo H5PropList.lo \ - H5FaccProp.lo H5FcreatProp.lo H5DcreatProp.lo H5DxferProp.lo \ - H5DataType.lo H5DataSpace.lo H5AbstractDs.lo H5AtomType.lo \ - H5PredType.lo H5EnumType.lo H5IntType.lo H5FloatType.lo \ - H5StrType.lo H5ArrayType.lo H5VarLenType.lo H5CompType.lo \ - H5DataSet.lo H5CommonFG.lo H5Group.lo H5File.lo + H5Library.lo H5Attribute.lo H5Location.lo H5Object.lo \ + H5PropList.lo H5FaccProp.lo H5FcreatProp.lo H5DcreatProp.lo \ + H5DxferProp.lo H5DataType.lo H5DataSpace.lo H5AbstractDs.lo \ + H5AtomType.lo H5PredType.lo H5EnumType.lo H5IntType.lo \ + H5FloatType.lo H5StrType.lo H5ArrayType.lo H5VarLenType.lo \ + H5CompType.lo H5DataSet.lo H5CommonFG.lo H5Group.lo H5File.lo libhdf5_cpp_la_OBJECTS = $(am_libhdf5_cpp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -467,7 +467,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 # Include src directory @@ -482,12 +482,12 @@ bin_SCRIPTS = h5c++ # Source files for the library libhdf5_cpp_la_SOURCES = H5Exception.cpp H5IdComponent.cpp H5Library.cpp \ - H5Attribute.cpp H5Object.cpp H5PropList.cpp H5FaccProp.cpp \ - H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp H5DataType.cpp \ - H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp H5PredType.cpp \ - H5EnumType.cpp H5IntType.cpp H5FloatType.cpp H5StrType.cpp \ - H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp H5DataSet.cpp \ - H5CommonFG.cpp H5Group.cpp H5File.cpp + H5Attribute.cpp H5Location.cpp H5Object.cpp H5PropList.cpp \ + H5FaccProp.cpp H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp \ + H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp \ + H5PredType.cpp H5EnumType.cpp H5IntType.cpp H5FloatType.cpp \ + H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp \ + H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp # HDF5 C++ library depends on HDF5 Library. @@ -498,8 +498,9 @@ include_HEADERS = H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h H5CommonFG.h H5CompType.h H5DataSet.h H5DataSpace.h H5DataType.h \ H5DcreatProp.h H5DxferProp.h H5EnumType.h H5Exception.h H5FaccProp.h \ H5FcreatProp.h H5File.h H5FloatType.h H5Group.h H5IdComponent.h \ - H5Include.h H5IntType.h H5Library.h H5Object.h H5PredType.h \ - H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h H5VarLenType.h + H5Include.h H5IntType.h H5Library.h H5Location.h H5Object.h \ + H5PredType.h H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h \ + H5VarLenType.h # h5c++ and libhdf5.settings are generated during configure. Remove only when @@ -664,6 +665,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5IdComponent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5IntType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Library.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Location.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5PredType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5PropList.Plo@am__quote@ diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp index 26abace..e822b36 100644 --- a/c++/test/dsets.cpp +++ b/c++/test/dsets.cpp @@ -61,7 +61,6 @@ const int H5Z_FILTER_BOGUS = 305; static size_t filter_bogus(unsigned int flags, size_t cd_nelmts, const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf); - /*------------------------------------------------------------------------- * Function: test_create * @@ -179,7 +178,7 @@ test_create( H5File& file) return -1; } } // test_create - + /*------------------------------------------------------------------------- * Function: test_simple_io * @@ -266,7 +265,7 @@ test_simple_io( H5File& file) return -1; } } // test_simple_io - + /*------------------------------------------------------------------------- * Function: test_datasize * @@ -337,7 +336,7 @@ test_datasize() return -1; } } // test_datasize - + /*------------------------------------------------------------------------- * Function: test_tconv * @@ -460,7 +459,6 @@ filter_bogus(unsigned int flags, size_t cd_nelmts, return nbytes; } - /*------------------------------------------------------------------------- * Function: test_compression * @@ -830,7 +828,6 @@ test_multiopen (H5File& file) } } // test_multiopen - /*------------------------------------------------------------------------- * Function: test_types * @@ -1019,7 +1016,7 @@ test_types(H5File& file) return -1; } } // test_types - + /*------------------------------------------------------------------------- * Function: test_dset * diff --git a/c++/test/h5cpputil.cpp b/c++/test/h5cpputil.cpp index 4485808..c6a7a2a 100644 --- a/c++/test/h5cpputil.cpp +++ b/c++/test/h5cpputil.cpp @@ -100,6 +100,7 @@ void issue_fail_msg(const char* where, int line, const char* file_name, { //if (GetTestVerbosity()>=VERBO_HI) { + cerr << endl; cerr << ">>> FAILED in " << where << " at line " << line << " in " << file_name << " - " << message << endl << endl; } diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp index 6bb9ca0..100e725 100644 --- a/c++/test/tattr.cpp +++ b/c++/test/tattr.cpp @@ -42,8 +42,13 @@ #include "h5cpputil.h" // C++ utilility header file -const H5std_string FILENAME("tattr.h5"); -const H5std_string ATTR_TMP_NAME("temp_name"); +const H5std_string FILE_BASIC("tattr_basic.h5"); +const H5std_string FILE_COMPOUND("tattr_compound.h5"); +const H5std_string FILE_SCALAR("tattr_scalar.h5"); +const H5std_string FILE_MULTI("tattr_multi.h5"); +const H5std_string FILE_DTYPE("tattr_dtype.h5"); +const H5std_string ATTR_TMP_NAME("temp_attr_name"); +const H5std_string FATTR_TMP_NAME("temp_fattr_name"); const size_t ATTR_MAX_DIMS = 7; /* 3-D dataset with fixed dimensions */ @@ -63,6 +68,10 @@ const int ATTR1_RANK = 1; const int ATTR1_DIM1 = 3; int attr_data1[ATTR1_DIM1]={512,-234,98123}; /* Test data for 1st attribute */ +// File attribute, using the same rank and dimensions as ATTR1_NAME's +const H5std_string FATTR1_NAME("File Attr1"); +const H5std_string FATTR2_NAME("File Attr2"); + const H5std_string ATTR2_NAME("Attr2"); const int ATTR2_RANK = 2; const int ATTR2_DIM1 = 2; @@ -121,7 +130,7 @@ static void test_attr_basic_write() try { // Create file - H5File fid1 (FILENAME, H5F_ACC_TRUNC); + H5File fid1 (FILE_BASIC, H5F_ACC_TRUNC); // Create dataspace for dataset DataSpace ds_space (SPACE1_RANK, dims1); @@ -136,6 +145,12 @@ static void test_attr_basic_write() // Create dataspace for attribute DataSpace att_space (ATTR1_RANK, dims2); + // Create a file attribute + Attribute file_attr2 = fid1.createAttribute (FATTR1_NAME, PredType::NATIVE_INT, att_space); + + // Create a file attribute + Attribute file_attr1 = fid1.createAttribute (FATTR2_NAME, PredType::NATIVE_INT, att_space); + // Create an attribute for the dataset Attribute ds_attr1 = dataset.createAttribute (ATTR1_NAME, PredType::NATIVE_INT, att_space); @@ -163,8 +178,9 @@ static void test_attr_basic_write() if(attr_data1[i]!=read_data1[i]) TestErrPrintf("%d: attribute data different: attr_data1[%d]=%d,read_data1[%d]=%d\n",__LINE__,i,attr_data1[i],i,read_data1[i]); - // Create another attribute for this dataset - Attribute ds_attr2 = dataset.createAttribute (ATTR1A_NAME, PredType::NATIVE_INT, att_space); + // Create two more attributes for this dataset, but only write to one. + Attribute ds_attr2 = dataset.createAttribute (ATTR2_NAME, PredType::NATIVE_INT, att_space); + Attribute ds_attr3 = dataset.createAttribute (ATTR3_NAME, PredType::NATIVE_INT, att_space); // Write attribute information ds_attr2.write (PredType::NATIVE_INT, attr_data1a); @@ -180,6 +196,7 @@ static void test_attr_basic_write() // Close both attributes ds_attr1.close(); ds_attr2.close(); + ds_attr3.close(); /* * Test attribute with group @@ -240,14 +257,32 @@ static void test_attr_rename() try { // Open file - H5File fid1(FILENAME, H5F_ACC_RDWR); + H5File fid1(FILE_BASIC, H5F_ACC_RDWR); + + // Check rename of attribute belonging to a file + + // Change attribute name + fid1.renameAttr(FATTR1_NAME, FATTR_TMP_NAME); + + // Open attribute again + Attribute fattr1(fid1.openAttribute(FATTR_TMP_NAME)); + + // Verify new attribute name + H5std_string fattr_name = fattr1.getName(); + verify_val(fattr_name, FATTR_TMP_NAME, "Attribute::getName", __LINE__, __FILE__); + + int num_attrs = fid1.getNumAttrs(); + verify_val(num_attrs, 2, "Attribute::getNumAttrs", __LINE__, __FILE__); + + // Change first file attribute back to the original name + fid1.renameAttr(FATTR_TMP_NAME, FATTR1_NAME); // Open the dataset DataSet dataset = fid1.openDataSet(DSET1_NAME); - // Check rename + // Check rename of attribute belonging to a dataset - // change attribute name + // Change attribute name dataset.renameAttr(ATTR1_NAME, ATTR_TMP_NAME); // Open attribute again @@ -269,11 +304,11 @@ static void test_attr_rename() attr1.close(); // Open the second attribute - Attribute attr2(dataset.openAttribute(ATTR1A_NAME)); + Attribute attr2(dataset.openAttribute(ATTR2_NAME)); // Verify second attribute name H5std_string attr2_name = attr2.getName(); - verify_val(attr2_name, ATTR1A_NAME, "Attribute::getName", __LINE__, __FILE__); + verify_val(attr2_name, ATTR2_NAME, "Attribute::getName", __LINE__, __FILE__); // Read attribute information immediately, without closing attribute attr2.read (PredType::NATIVE_INT, read_data1); @@ -311,14 +346,14 @@ static void test_attr_basic_read() try { // Open file - H5File fid1(FILENAME, H5F_ACC_RDWR); + H5File fid1(FILE_BASIC, H5F_ACC_RDWR); // Open the dataset DataSet dataset = fid1.openDataSet(DSET1_NAME); // Verify the correct number of attributes int num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 2, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 3, "DataSet::getNumAttrs", __LINE__, __FILE__); // Open an attribute for the dataset Attribute ds_attr=dataset.openAttribute(ATTR1_NAME); @@ -378,7 +413,7 @@ static void test_attr_compound_write() try { // Create file - H5File fid1(FILENAME.c_str(), H5F_ACC_TRUNC); + H5File fid1(FILE_COMPOUND.c_str(), H5F_ACC_TRUNC); // Create dataspace for dataset hsize_t dims1[] = {SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3}; @@ -442,14 +477,14 @@ static void test_attr_compound_read() try { // Open file - H5File fid1(FILENAME, H5F_ACC_RDWR); + H5File fid1(FILE_COMPOUND, H5F_ACC_RDWR); // Open the dataset DataSet dataset = fid1.openDataSet(DSET1_NAME); // Verify the correct number of attributes int num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 1, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 1, "DataSet::getNumAttrs", __LINE__, __FILE__); // Open 1st attribute for the dataset Attribute attr = dataset.openAttribute((unsigned)0); @@ -571,7 +606,7 @@ static void test_attr_scalar_write() try { // Create file - H5File fid1(FILENAME, H5F_ACC_TRUNC); + H5File fid1(FILE_SCALAR, H5F_ACC_TRUNC); // Create dataspace for dataset hsize_t dims1[] = {SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3}; @@ -625,14 +660,14 @@ static void test_attr_scalar_read() try { // Open file - H5File fid1(FILENAME, H5F_ACC_RDWR); + H5File fid1(FILE_SCALAR, H5F_ACC_RDWR); // Open the dataset DataSet dataset = fid1.openDataSet(DSET1_NAME); // Verify the correct number of attributes int num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 1, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 1, "DataSet::getNumAttrs", __LINE__, __FILE__); // Open an attribute for the dataset Attribute ds_attr=dataset.openAttribute(ATTR5_NAME); @@ -669,7 +704,7 @@ static void test_attr_mult_write() try { // Create file - H5File fid1 (FILENAME, H5F_ACC_TRUNC); + H5File fid1 (FILE_MULTI, H5F_ACC_TRUNC); // Create dataspace for dataset hsize_t dims1[] = {SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3}; @@ -746,14 +781,14 @@ static void test_attr_mult_read() try { // Open file - H5File fid1(FILENAME, H5F_ACC_RDWR); + H5File fid1(FILE_MULTI, H5F_ACC_RDWR); // Open the dataset DataSet dataset = fid1.openDataSet(DSET1_NAME); // Verify the correct number of attributes int num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 3, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 3, "DataSet::getNumAttrs", __LINE__, __FILE__); // Open 1st attribute for the dataset Attribute attr = dataset.openAttribute((unsigned)0); @@ -929,22 +964,42 @@ static void test_attr_mult_read() static void test_attr_delete() { H5std_string attr_name; // Buffer for attribute names + int ii; - // Output message about test being performed + // Output message about test being performed SUBTEST("Removing Attribute Function"); try { - // Open file - H5File fid1(FILENAME, H5F_ACC_RDWR); + // Open file. + H5File fid1(FILE_BASIC, H5F_ACC_RDWR); + + // Get the number of file attributes + int num_attrs = fid1.getNumAttrs(); + verify_val(num_attrs, 2, "H5File::getNumAttrs", __LINE__, __FILE__); + + // Delete the second file attribute + fid1.removeAttr(FATTR2_NAME); + + // Get the number of file attributes + num_attrs = fid1.getNumAttrs(); + verify_val(num_attrs, 1, "H5File::getNumAttrs", __LINE__, __FILE__); + + // Verify the name of the only file attribute left + Attribute fattr = fid1.openAttribute((unsigned)0); + H5std_string attr_name = fattr.getName(); + verify_val(attr_name, FATTR1_NAME, "Attribute::getName", __LINE__, __FILE__); + fattr.close(); + + // Test deleting non-existing attribute // Open the dataset DataSet dataset = fid1.openDataSet(DSET1_NAME); // Verify the correct number of attributes - int num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 3, "H5Object::getNumAttrs", __LINE__, __FILE__); + num_attrs = dataset.getNumAttrs(); + verify_val(num_attrs, 3, "DataSet::getNumAttrs", __LINE__, __FILE__); - // Try to delete bogus attribute, should fail. + // Try to delete bogus attribute, should fail try { dataset.removeAttr("Bogus"); @@ -954,16 +1009,18 @@ static void test_attr_delete() catch (AttributeIException E) // catching invalid removing attribute {} // do nothing, exception expected + // Test deleting dataset's attributes + // Verify the correct number of attributes num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 3, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 3, "DataSet::getNumAttrs", __LINE__, __FILE__); // Delete middle (2nd) attribute dataset.removeAttr(ATTR2_NAME); // Verify the correct number of attributes num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 2, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 2, "DataSet::getNumAttrs", __LINE__, __FILE__); // Open 1st attribute for the dataset Attribute attr = dataset.openAttribute((unsigned)0); @@ -989,9 +1046,9 @@ static void test_attr_delete() // Verify the correct number of attributes num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 1, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 1, "DataSet::getNumAttrs", __LINE__, __FILE__); - // Open last (formally 3rd) attribute for the dataset + // Open the only attribute for the dataset (formally 3rd) attr = dataset.openAttribute((unsigned)0); // Verify Name @@ -1005,7 +1062,7 @@ static void test_attr_delete() // Verify the correct number of attributes num_attrs = dataset.getNumAttrs(); - verify_val(num_attrs, 0, "H5Object::getNumAttrs", __LINE__, __FILE__); + verify_val(num_attrs, 0, "DataSet::getNumAttrs", __LINE__, __FILE__); PASSED(); } // end try block @@ -1035,19 +1092,19 @@ static void test_attr_dtype_shared() try { // Create a file - H5File fid1(FILENAME, H5F_ACC_TRUNC); + H5File fid1(FILE_DTYPE, H5F_ACC_TRUNC); // Close file fid1.close(); // Get size of file h5_stat_size_t empty_filesize; // Size of empty file - empty_filesize = h5_get_file_size(FILENAME.c_str(), H5P_DEFAULT); + empty_filesize = h5_get_file_size(FILE_DTYPE.c_str(), H5P_DEFAULT); if (empty_filesize < 0) TestErrPrintf("Line %d: file size wrong!\n", __LINE__); // Open the file again - fid1.openFile(FILENAME, H5F_ACC_RDWR); + fid1.openFile(FILE_DTYPE, H5F_ACC_RDWR); // Enclosing to work around the issue of unused variables and/or // objects created by copy constructors stay around until end of @@ -1120,7 +1177,7 @@ static void test_attr_dtype_shared() fid1.close(); // Open the file again - fid1.openFile(FILENAME, H5F_ACC_RDWR); + fid1.openFile(FILE_DTYPE, H5F_ACC_RDWR); { // Second enclosed block... @@ -1161,7 +1218,7 @@ static void test_attr_dtype_shared() fid1.close(); // Check size of file - filesize = h5_get_file_size(FILENAME.c_str(), H5P_DEFAULT); + filesize = h5_get_file_size(FILE_DTYPE.c_str(), H5P_DEFAULT); verify_val((long)filesize, (long)empty_filesize, "Checking file size", __LINE__, __FILE__); PASSED(); @@ -1192,7 +1249,7 @@ static void test_string_attr() try { // Create file - H5File fid1(FILENAME, H5F_ACC_RDWR); + H5File fid1(FILE_BASIC, H5F_ACC_RDWR); // // Fixed-lenth string attributes @@ -1349,6 +1406,6 @@ extern "C" #endif void cleanup_attr() { - HDremove(FILENAME.c_str()); + //HDremove(FILENAME.c_str()); } diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp index df01752..ba38d7a 100644 --- a/c++/test/tfile.cpp +++ b/c++/test/tfile.cpp @@ -333,6 +333,7 @@ static void test_file_open() tmpl1.getSymk( iparm1, iparm2); verify_val(iparm1, F2_SYM_INTERN_K, "FileCreatPropList::getSymk", __LINE__, __FILE__); verify_val(iparm2, F2_SYM_LEAF_K, "FileCreatPropList::getSymk", __LINE__, __FILE__); + PASSED(); } // end of try block @@ -381,8 +382,16 @@ static void test_file_size() hsize_t file_size = file4.getFileSize(); // Check if file size is reasonable. It's supposed to be 2KB now. - if(file_size<1*KB || file_size>4*KB) - issue_fail_msg("test_file_size()", __LINE__, __FILE__); + if (file_size < 1*KB || file_size > 4*KB) + issue_fail_msg("test_file_size()", __LINE__, __FILE__, "getFileSize() returned unreasonable value"); + + // Get the amount of free space in the file + hssize_t free_space = file4.getFreeSpace(); + + // Check if it's reasonable. It's 0 now. + if (free_space < 0 || free_space > 4*KB) + issue_fail_msg("test_file_size()", __LINE__, __FILE__, "getFreeSpace returned unreasonable value"); + PASSED(); } // end of try block @@ -415,7 +424,8 @@ const int NX = 4; const int NY = 5; const H5std_string GROUPNAME ("group"); const H5std_string DSETNAME ("dataset"); -const H5std_string ATTRNAME ("attribute"); +const H5std_string DATTRNAME ("dataset attribute"); +const H5std_string FATTRNAME ("file attribute"); const H5std_string DTYPENAME ("compound"); // Compound datatype @@ -431,17 +441,17 @@ static void test_file_name() H5std_string file_name; try { - // Create a file using default properties. + // Create a file using default properties H5File file4(FILE4, H5F_ACC_TRUNC); - // Get file name from the file instance. + // Get file name from the file instance file_name = file4.getFileName(); verify_val(file_name, FILE4, "H5File::getFileName", __LINE__, __FILE__); // Create a group in the root group Group group(file4.createGroup(GROUPNAME, 0)); - // Get and verify file name + // Get and verify file name via a group file_name = group.getFileName(); verify_val(file_name, FILE4, "Group::getFileName", __LINE__, __FILE__); @@ -452,12 +462,12 @@ static void test_file_name() // Create a new dataset DataSet dataset(file4.createDataSet (DSETNAME, PredType::NATIVE_INT, space)); - // Get and verify file name + // Get and verify file name via a dataset file_name = dataset.getFileName(); verify_val(file_name, FILE4, "DataSet::getFileName", __LINE__, __FILE__); // Create an attribute for the dataset - Attribute attr(dataset.createAttribute(ATTRNAME, PredType::NATIVE_INT, space)); + Attribute attr(dataset.createAttribute(DATTRNAME, PredType::NATIVE_INT, space)); // Get and verify file name file_name = attr.getFileName(); @@ -486,6 +496,116 @@ static void test_file_name() } // test_file_name() +#define NUM_OBJS 4 +#define NUM_ATTRS 3 +const int RANK1 = 1; +const int ATTR1_DIM1 = 3; +const H5std_string FILE5("tfattrs.h5"); +const H5std_string FATTR1_NAME ("file attribute 1"); +const H5std_string FATTR2_NAME ("file attribute 2"); +int fattr_data[ATTR1_DIM1]={512,-234,98123}; /* Test data for file attribute */ +int dattr_data[ATTR1_DIM1]={256,-123,1000}; /* Test data for dataset attribute */ +static void test_file_attribute() +{ + int rdata[ATTR1_DIM1]; + int i; + + // Output message about test being performed + SUBTEST("File Attribute"); + + H5std_string file_name; + try { + // Create a file using default properties. + H5File file5(FILE5, H5F_ACC_TRUNC); + + // Create the data space + hsize_t dims[RANK1] = {ATTR1_DIM1}; + DataSpace space(RANK1, dims); + + // Create two attributes for the file + Attribute fattr1(file5.createAttribute(FATTR1_NAME, PredType::NATIVE_FLOAT, space)); + Attribute fattr2(file5.createAttribute(FATTR2_NAME, PredType::NATIVE_INT, space)); + + fattr2.write(PredType::NATIVE_INT, fattr_data); + + try { + // Try to create the same attribute again (should fail) + Attribute fattr_dup(file5.createAttribute(FATTR2_NAME, PredType::NATIVE_INT, space)); + // Should FAIL but didn't, so throw an invalid action exception + throw InvalidActionException("H5File createAttribute", "Attempted to create an existing attribute."); + } + catch( AttributeIException E ) // catch creating existing attribute + {} // do nothing, FAIL expected + + // Create a new dataset + DataSet dataset(file5.createDataSet (DSETNAME, PredType::NATIVE_INT, space)); + + // Create an attribute for the dataset + Attribute dattr(dataset.createAttribute(DATTRNAME, PredType::NATIVE_INT, space)); + + // Write data to the second file attribute + dattr.write(PredType::NATIVE_INT, dattr_data); + + // Test flushing out the data from the attribute object + dattr.flush(H5F_SCOPE_GLOBAL); + + // Get and verify the number of all objects in the file + // Current: 1 file, 2 file attr, 1 ds, and 1 ds attr. + ssize_t num_objs = file5.getObjCount(H5F_OBJ_ALL); + verify_val(num_objs, 5, "H5File::getObjCount", __LINE__, __FILE__); + + num_objs = file5.getObjCount(H5F_OBJ_GROUP); + verify_val(num_objs, 0, "H5File::getObjCount(H5F_OBJ_GROUP)", __LINE__, __FILE__); + num_objs = file5.getObjCount(H5F_OBJ_DATASET); + verify_val(num_objs, 1, "H5File::getObjCount(H5F_OBJ_DATASET)", __LINE__, __FILE__); + num_objs = file5.getObjCount(H5F_OBJ_ATTR); + verify_val(num_objs, 3, "H5File::getObjCount(H5F_OBJ_ATTR)", __LINE__, __FILE__); + num_objs = file5.getObjCount(H5F_OBJ_DATATYPE); + verify_val(num_objs, 0, "H5File::getObjCount(H5F_OBJ_DATATYPE)", __LINE__, __FILE__); + num_objs = file5.getObjCount(H5F_OBJ_FILE); + verify_val(num_objs, 1, "H5File::getObjCount(H5F_OBJ_FILE)", __LINE__, __FILE__); + + // Get the file name using the attributes + H5std_string fname = fattr1.getFileName(); + verify_val(fname, FILE5, "H5File::getFileName()", __LINE__, __FILE__); + + fname.clear(); + fname = dattr.getFileName(); + verify_val(fname, FILE5, "H5File::getFileName()", __LINE__, __FILE__); + + // Get the class of a file attribute's datatype + H5T_class_t atclass = fattr1.getTypeClass(); + verify_val(atclass, H5T_FLOAT, "Attribute::getTypeClass()", __LINE__, __FILE__); + + // Get and verify the number of attributes attached to a file + int n_attrs = file5.getNumAttrs(); + verify_val(n_attrs, 2, "H5File::getNumAttrs()", __LINE__, __FILE__); + + // Get and verify the number of attributes attached to a dataset + n_attrs = 0; + n_attrs = dataset.getNumAttrs(); + verify_val(n_attrs, 1, "DataSet::getNumAttrs()", __LINE__, __FILE__); + + // Read back attribute's data + HDmemset(rdata, 0, sizeof(rdata)); + dattr.read(PredType::NATIVE_INT, rdata); + /* Check results */ + for (i = 0; i < ATTR1_DIM1; i++) { + if (rdata[i] != dattr_data[i]) { + H5_FAILED(); + cerr << endl; + cerr << "element [" << i << "] is " << rdata[i] << + "but should have been " << dattr_data[i] << endl; + } + } + PASSED(); + } // end of try block + + catch (Exception E) { + issue_fail_msg("test_file_name()", __LINE__, __FILE__, E.getCDetailMsg()); + } +} // test_file_attribute() + /*------------------------------------------------------------------------- * Function: test_file * @@ -513,6 +633,7 @@ void test_file() test_file_open(); // Test file opening test_file_size(); // Test file size test_file_name(); // Test getting file's name + test_file_attribute(); // Test file attribute feature } // test_file() diff --git a/c++/test/th5s.cpp b/c++/test/th5s.cpp index 221a61b..32c40d5 100644 --- a/c++/test/th5s.cpp +++ b/c++/test/th5s.cpp @@ -188,7 +188,7 @@ static void test_h5s_basic() * If this test fails and the H5S_MAX_RANK variable has changed, follow * the instructions in space_overflow.c for regenating the th5s.h5 file. */ - const char *testfile = H5_get_srcdir_filename(TESTFILE.c_str()); + const char *testfile = H5_get_srcdir_filename(TESTFILE.c_str()); // Create file H5File fid1(testfile, H5F_ACC_RDONLY); diff --git a/c++/test/trefer.cpp b/c++/test/trefer.cpp index 7f63d33..4eb5b21 100644 --- a/c++/test/trefer.cpp +++ b/c++/test/trefer.cpp @@ -149,34 +149,25 @@ static void test_reference_obj(void) // Create a dataset dataset = file1->createDataSet("Dataset3", PredType::STD_REF_OBJ, sid1); - // Create reference to dataset + // Create reference to dataset and test getRefObjType file1->reference(&wbuf[0], "/Group1/Dataset1"); + H5O_type_t refobj_type = dataset.getRefObjType(&wbuf[0], H5R_OBJECT); + verify_val(refobj_type, H5O_TYPE_DATASET, "DataSet::getRefObjType", __LINE__, __FILE__); -#ifndef H5_NO_DEPRECATED_SYMBOLS - H5G_obj_t obj_type = dataset.getObjType(&wbuf[0], H5R_OBJECT); - verify_val(obj_type, H5G_DATASET, "DataSet::getObjType", __LINE__, __FILE__); -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - - // Create reference to dataset + // Create reference to dataset and test getRefObjType file1->reference(&wbuf[1], "/Group1/Dataset2"); -#ifndef H5_NO_DEPRECATED_SYMBOLS - obj_type = dataset.getObjType(&wbuf[1], H5R_OBJECT); - verify_val(obj_type, H5G_DATASET, "DataSet::getObjType", __LINE__, __FILE__); -#endif /* H5_NO_DEPRECATED_SYMBOLS */ + refobj_type = dataset.getRefObjType(&wbuf[1], H5R_OBJECT); + verify_val(refobj_type, H5O_TYPE_DATASET, "DataSet::getRefObjType", __LINE__, __FILE__); // Create reference to group file1->reference(&wbuf[2], "/Group1"); -#ifndef H5_NO_DEPRECATED_SYMBOLS - obj_type = dataset.getObjType(&wbuf[2], H5R_OBJECT); - verify_val(obj_type, H5G_GROUP, "DataSet::getObjType", __LINE__, __FILE__); -#endif /* H5_NO_DEPRECATED_SYMBOLS */ + refobj_type = dataset.getRefObjType(&wbuf[2], H5R_OBJECT); + verify_val(refobj_type, H5O_TYPE_GROUP, "DataSet::getRefObjType", __LINE__, __FILE__); // Create reference to named datatype file1->reference(&wbuf[3], "/Group1/Datatype1"); -#ifndef H5_NO_DEPRECATED_SYMBOLS - obj_type = dataset.getObjType(&wbuf[3], H5R_OBJECT); - verify_val(obj_type, H5G_TYPE, "DataSet::getObjType", __LINE__, __FILE__); -#endif /* H5_NO_DEPRECATED_SYMBOLS */ + refobj_type = dataset.getRefObjType(&wbuf[3], H5R_OBJECT); + verify_val(refobj_type, H5O_TYPE_NAMED_DATATYPE, "DataSet::getRefObjType", __LINE__, __FILE__); // Write selection to disk dataset.write(wbuf, PredType::STD_REF_OBJ); @@ -253,7 +244,7 @@ static void test_reference_obj(void) // Test getting the type of objects // Test getObjTypeByIdx(hsize_t idx) - obj_type = group.getObjTypeByIdx(0); + H5G_obj_t obj_type = group.getObjTypeByIdx(0); verify_val(obj_type, H5G_DATASET, "Group::getObjTypeByIdx(index)", __LINE__, __FILE__); // Test getObjTypeByIdx(hsize_t idx, char* type_name) @@ -333,6 +324,18 @@ static void test_reference_obj(void) /**************************************************************** ** +** test_reference_compat(): Test basic object reference functionality. +** Tests references to various kinds of objects using deprecated API. +** +****************************************************************/ +static void test_reference_compat(void) +{ + // Not yet +} // test_reference_compat() + + +/**************************************************************** +** ** test_reference(): Main reference testing routine. ** ****************************************************************/ @@ -346,6 +349,7 @@ void test_reference(void) MESSAGE(5, ("Testing References\n")); test_reference_obj(); // Test basic object reference functionality + test_reference_compat(); // Tests deprecated reference routines (not yet) } // test_reference() diff --git a/config/apple b/config/apple index a2d6ae4..34085e0 100644 --- a/config/apple +++ b/config/apple @@ -28,6 +28,22 @@ fi # Figure out compiler flags . $srcdir/config/gnu-flags +# temp patch: if GCC 4.2.1 is used in Lion or Mountain Lion systems, do not +# use -O option as it causes failures in test/dt_arith. +#echo host_os=$host_os +case "$host_os" in + darwin1[12].*) # lion & mountain lion + #echo cc_vendor=$cc_vendor'-'cc_version=$cc_version + case "$cc_vendor-$cc_version" in + gcc-4.2.1) + # Remove any -O flags + #echo PROD_CFLAGS=$PROD_CFLAGS + PROD_CFLAGS="`echo $PROD_CFLAGS | sed -e 's/-O[0-3]*//'`" + #echo new PROD_CFLAGS=$PROD_CFLAGS + ;; + esac + ;; +esac . $srcdir/config/intel-flags if test "X-" = "X-$FC"; then diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index 0940418..4f4f759 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -413,6 +413,7 @@ CHECK_INCLUDE_FILE_CONCAT ("netinet/in.h" H5_HAVE_NETINET_IN_H) # The linux-lfs option is deprecated. SET (LINUX_LFS 0) +SET (HDF5_EXTRA_C_FLAGS) SET (HDF5_EXTRA_FLAGS) IF (NOT WINDOWS) # Linux Specific flags @@ -422,7 +423,9 @@ IF (NOT WINDOWS) # correctly. # POSIX feature information can be found in the gcc manual at: # http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html - SET (HDF5_EXTRA_FLAGS -D_POSIX_C_SOURCE=199506L -D_BSD_SOURCE) + SET (HDF5_EXTRA_C_FLAGS -D_POSIX_C_SOURCE=199506L) + SET (HDF5_EXTRA_FLAGS -D_BSD_SOURCE) + OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON) IF (HDF5_ENABLE_LARGE_FILE) SET (msg "Performing TEST_LFS_WORKS") diff --git a/config/ibm-aix b/config/ibm-aix index c8b1fc3..28498e2 100644 --- a/config/ibm-aix +++ b/config/ibm-aix @@ -56,12 +56,12 @@ fi # to ensure the flag is present for both configure as well as for the build. if test "X-" = "X-$f9x_flags_set"; then F9XSUFFIXFLAG="-qsuffix=f=f90" - FCFLAGS="$FCFLAGS -O ${F9XSUFFIXFLAG}" - H5_FCFLAGS="$H5_FCFLAGS -O ${F9XSUFFIXFLAG}" + FCFLAGS="$FCFLAGS ${F9XSUFFIXFLAG}" + H5_FCFLAGS="$H5_FCFLAGS ${F9XSUFFIXFLAG}" FSEARCH_DIRS="-I./ -I../src" - DEBUG_FCFLAGS="-O" + DEBUG_FCFLAGS="-g" PROD_FCFLAGS="-O" - PROFILE_FCFLAGS="-O" + PROFILE_FCFLAGS="-g -pg" f9x_flags_set=yes fi diff --git a/config/lt_vers.am b/config/lt_vers.am index 04f29db..53af6ed 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -17,7 +17,7 @@ # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index 60474ef..1180d09 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.128. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.132. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.128' -PACKAGE_STRING='HDF5 1.9.128' +PACKAGE_VERSION='1.9.132' +PACKAGE_STRING='HDF5 1.9.132' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1484,7 +1484,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.128 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.132 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1554,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.128:";; + short | recursive ) echo "Configuration of HDF5 1.9.132:";; esac cat <<\_ACEOF @@ -1750,7 +1750,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.128 +HDF5 configure 1.9.132 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2844,7 +2844,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.128, which was +It was created by HDF5 $as_me 1.9.132, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3227,6 +3227,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +## AM_INIT_AUTOMAKE takes a list of options that should be applied to +## every Makefile.am when automake is run. am__api_version='1.12' # Find a good install program. We prefer a C program (faster), @@ -3674,7 +3676,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.128' + VERSION='1.9.132' cat >>confdefs.h <<_ACEOF @@ -3760,6 +3762,16 @@ fi AM_BACKSLASH='\' +## AM_MAINTAINER_MODE turns off "rebuild rules" that contain dependencies +## for Makefiles, configure, src/H5config.h, etc. If AM_MAINTAINER_MODE +## is *not* included here, these files will be rebuilt if out of date. +## This is a problem because if users try to build on a machine with +## the wrong versions of autoconf and automake, these files will be +## rebuilt with the wrong versions and bad things can happen. +## Also, CVS doesn't preserve dependencies between timestamps, so +## Makefiles will often think rebuilding needs to occur when it doesn't. +## Developers should './configure --enable-maintainer-mode' to turn on +## rebuild rules. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @@ -3784,9 +3796,26 @@ fi -ac_config_commands="$ac_config_commands default-1" +## ---------------------------------------------------------------------- +## Set prefix default (install directory) to a directory in the build area. +## This allows multiple src-dir builds within one host. +## Run post processing on files created by configure. +## src/H5pubconf.h: +## Generate src/H5pubconf.h from src/H5config.h by prepending H5_ to all +## macro names. This avoid name conflict between HDF5 macro names and those +## generated by another software package that uses the HDF5 library. +## src/libhdf5.settings: +## Remove all lines begun with "#" which are generated by CONDITIONAL's of +## configure. +ac_config_commands="$ac_config_commands pubconf" + + +## It's possible to configure for a host other than the one on which +## configure is currently running by using the --host=foo flag. +## For machines on which HDF5 is often configured, it can be convenient +## to specify the name of the machine rather than its canonical type. case $host_alias in redstorm) host_alias=x86_64-redstorm-linux-gnu @@ -3866,18 +3895,23 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +## H5_CFLAGS (and company) are for CFLAGS that should be used on HDF5, but +## not exported to h5cc (or h5fc, etc.) +## AM_CFLAGS (and company) are for CFLAGS that should be used on HDF5, +## and WILL be exported to h5cc (or h5fc, etc) if set by configure. +## Make sure flags are set to something (otherwise macros may set them later). AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -3889,26 +3923,57 @@ FCFLAGS="${FCFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" +## Configure may need to alter any of the *FLAGS variables in order for +## various checks to work correctly. Save the user's value here so it +## can be restored once all configure checks are complete. saved_user_CFLAGS="$CFLAGS" saved_user_CXXFLAGS="$CXXFLAGS" saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" +## Different compilers may need default libraries. They are specified in +## the config/* files, so we put this statement here so that it'll be +## set by the code which follows... +## DEFAULT_LIBS="" +## Support F9X variable to define Fortran compiler if FC variable is +## not used. This should be deprecated in the future. if test "x" = "x$FC"; then FC=${F9X} fi - - +## ---------------------------------------------------------------------- +## Dump all shell variables values. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking shell variables initial values" >&5 $as_echo_n "checking shell variables initial values... " >&6; } set >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } +## Define all symbol variables used for configure summary. +## EXTERNAL_FILTERS equals all external filters. Default none. +## MPE: whether MPE option is enabled. Default no. +## STATIC_EXEC: whether static-exec is enabled. Default no. +## HDF_FORTRAN: whether Fortran is enabled. Default no. +## HDF_FORTRAN2003: whether Fortran 2003 is enabled. Default no. +## FC: Fortran compiler. +## HDF_CXX: whether C++ is enabled. Default no. +## CXX: C++ compiler. +## HDF5_HL: whether high-level library is enabled. Default is yes. +## GPFS: whether gpfs is enabled. Default no. +## LARGEFILE: whether largefile support is enabled. Default yes. +## INSTRUMENT: whether INSTRUMENT is enabled. No default set here. +## CODESTACK: whether CODESTACK is enabled. Default no. +## HAVE_DMALLOC: whether system has dmalloc support. Default no. +## DIRECT_VFD: whether DIRECT_VFD is enabled. Default no. +## THREADSAFE: whether THREADSAFE is enabled. Default no. +## STATIC_SHARED: whether static and/or shared libraries are requested. +## enable_shared: whether shared lib is enabled. +## enable_static: whether static lib is enabled. +## UNAME_INFO: System information. MPE=no @@ -3932,7 +3997,17 @@ $as_echo "done" >&6; } UNAME_INFO=`uname -a` +## ---------------------------------------------------------------------- +## Some platforms have broken basename, and/or xargs programs. Check +## that it actually does what it's supposed to do. Catch this early +## since configure relies upon them heavily and there's no use continuing +## if it's broken. +## +## Avoid depending upon Character Ranges. +## These are defined by autoconf. +## as_cr_letters='abcdefghijklmnopqrstuvwxyz' +## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename works" >&5 $as_echo_n "checking if basename works... " >&6; } @@ -3954,6 +4029,10 @@ else $as_echo "yes" >&6; } fi +## ---------------------------------------------------------------------- +## Check that the cache file was build on the same host as what we're +## running on now. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cached host" >&5 $as_echo_n "checking for cached host... " >&6; } if ${hdf5_cv_host+:} false; then : @@ -3971,6 +4050,22 @@ elif test $hdf5_cv_host != $host; then as_fn_error $? "config.cache file is invalid" "$LINENO" 5 fi +## ---------------------------------------------------------------------- +## Source any special files that we need. These files normally aren't +## present but can be used by the maintainers to fine tune things like +## turning on debug or profiling flags for the compiler. The search order +## is: +## +## CPU-VENDOR-OS +## VENDOR-OS +## CPU-OS +## CPU-VENDOR +## OS +## VENDOR +## CPU +## +## If the `OS' ends with a version number then remove it. For instance, +## `freebsd3.1' would become `freebsd' case $host_os in aix*) @@ -4027,6 +4122,7 @@ if test "X$host_config" != "Xnone"; then . $host_config fi +## Source any special site-specific file hname="`hostname`" while test -n "$hname"; do file=$srcdir/config/site-specific/host-$hname @@ -4045,16 +4141,28 @@ $as_echo "no" >&6; } test "$hname_tmp" = "$hname" && break done +## ---------------------------------------------------------------------- +## Some built-in configure checks can only see CFLAGS (not AM_CFLAGS), so +## we need to add this in so configure works as intended. We will need to +## reset this value at the end of configure, to preserve the user's settings. CFLAGS="${AM_CFLAGS} ${CFLAGS}" FCFLAGS="${AM_FCFLAGS} ${FCFLAGS}" CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}" CPPFLAGS="${AM_CPPFLAGS} ${CPPFLAGS}" LDFLAGS="${AM_LDFLAGS} ${LDFLAGS}" +## ---------------------------------------------------------------------- +## Enable dependency tracking unless the configure options or a +## site-specific file told us not to. This prevents configure from +## silently disabling dependencies for some compilers. +## if test -z "${enable_dependency_tracking}"; then enable_dependency_tracking="yes" fi +## ---------------------------------------------------------------------- +## Check for programs. +## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5037,6 +5145,11 @@ fi CC_BASENAME="`echo $CC | cut -f1 -d' ' | xargs basename 2>/dev/null`" +## ---------------------------------------------------------------------------- +## Configure disallows unsupported combinations of options. However, users +## may want to override and build with unsupported combinations for their +## own use. They can use the --enable-unsupported configure flag, which +## ignores any errors from configure due to incompatible flags. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if unsupported combinations of configure options are allowed" >&5 $as_echo_n "checking if unsupported combinations of configure options are allowed... " >&6; } # Check whether --enable-unsupported was given. @@ -5058,6 +5171,9 @@ $as_echo "yes" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like the Fortran interface compiled +## HDF5_INTERFACES="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran interface enabled" >&5 $as_echo_n "checking if Fortran interface enabled... " >&6; } @@ -5074,6 +5190,9 @@ else fi +## ---------------------------------------------------------------------- +## Check if they would like the Fortran 2003 interface compiled +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran 2003 interface enabled" >&5 $as_echo_n "checking if Fortran 2003 interface enabled... " >&6; } # Check whether --enable-fortran2003 was given. @@ -5082,6 +5201,9 @@ if test "${enable_fortran2003+set}" = set; then : fi +## ---------------------------------------------------------------------- +## Check to make sure --enable-fortran is present if --enable-fortran2003 +## was specified if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then echo "no" @@ -5100,9 +5222,15 @@ if test "X$HDF_FORTRAN" = "Xyes"; then HDF5_INTERFACES="$HDF5_INTERFACES fortran" - HAVE_FORTRAN_2003="no" + ## -------------------------------------------------------------------- + ## Default for FORTRAN 2003 compliant compilers + ## + HAVE_FORTRAN_2003="no" HAVE_F2003_REQUIREMENTS="no" + ## -------------------------------------------------------------------- + ## HDF5 integer variables for the H5fortran_types.f90 file. + ## @@ -5112,10 +5240,16 @@ if test "X$HDF_FORTRAN" = "Xyes"; then - AM_FCFLAGS="${AM_FCFLAGS} ${FFLAGS}" + ## -------------------------------------------------------------------- + ## General Fortran flags + ## + AM_FCFLAGS="${AM_FCFLAGS} ${FFLAGS}" FCFLAGS="${FCFLAGS} ${FFLAGS}" - ac_ext=${ac_fc_srcext-f} + ## -------------------------------------------------------------------- + ## Fortran source extention + ## + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -5385,7 +5519,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_ext=${ac_fc_srcext-f} + ## -------------------------------------------------------------------- + ## Check for a Fortran 9X compiler and how to include modules. + ## + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -5688,15 +5825,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - F77=$FC + ## It seems that libtool (as of Libtool 1.5.14) is trying to + ## configure itself for Fortran 77. + ## Tell it that our F77 compiler is $FC (actually a F9X compiler) + F77=$FC - ac_ext=${ac_fc_srcext-f} + ## Change to the Fortran 90 language + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - ac_ext=${ac_fc_srcext-f} + ## -------------------------------------------------------------------- + ## Define wrappers for the C compiler to use Fortran function names + ## + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -6378,8 +6522,13 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu + ## -------------------------------------------------------------------- + ## See if the compiler will support the "-I." option + ## + ## -------------------------------------------------------------------- + ## See if the fortran compiler supports the intrinsic function "SIZEOF" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic SIZEOF" >&5 $as_echo_n "checking if Fortran compiler supports intrinsic SIZEOF... " >&6; } @@ -6409,6 +6558,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + ## Check to see if -r8 was specified to determine if we need to + ## compile the DOUBLE PRECISION interfaces. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran default REAL is DOUBLE PRECISION" >&5 $as_echo_n "checking if Fortran default REAL is DOUBLE PRECISION... " >&6; } @@ -6449,7 +6600,7 @@ $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - FORTRAN_DEFAULT_REALisDBLE="yes" + FORTRAN_DEFAULT_REALisDBLE="yes" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -6458,6 +6609,8 @@ fi if test "X$HDF_FORTRAN2003" = "Xyes"; then + ## Checking if the compiler supports the required Fortran 2003 features and + ## disable Fortran 2003 if it does not. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5 $as_echo_n "checking if Fortran compiler version compatible with Fortran 2003 HDF... " >&6; } @@ -6487,18 +6640,19 @@ else $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5 + ## echo $HAVE_FORTRAN_2003 + as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5 else + ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" - fi - + fi fi else FC="no" fi +## Change back to the C language ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -6531,6 +6685,12 @@ else fi +## ---------------------------------------------------------------------- +## Check if they would like the C++ interface compiled +## +## We need to check for a C++ compiler unconditionally, since +## AC_PROG_CXX defines some macros that Automake 1.9.x uses and will +## miss even if c++ is not enabled. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -7080,6 +7240,7 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + ## this is checked for when AC_HEADER_STDC is done { $as_echo "$as_me:${as_lineno-$LINENO}: checking if c++ interface enabled" >&5 $as_echo_n "checking if c++ interface enabled... " >&6; } @@ -7094,7 +7255,8 @@ if test "X$HDF_CXX" = "Xyes"; then echo "yes" HDF5_INTERFACES="$HDF5_INTERFACES c++" - ac_ext=cpp + ## Change to the C++ language + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -7329,6 +7491,7 @@ else CXX="no" fi +## Change back to the C language ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -7336,6 +7499,10 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu +## ---------------------------------------------------------------------- +## Check if they have Perl installed on their system. We only need Perl +## if they're using a GNU compiler. +## PERL="" if test "X$GCC" = "Xyes"; then for ac_prog in perl @@ -7383,6 +7550,10 @@ done fi +## ---------------------------------------------------------------------- +## Check which archiving tool to use. This needs to be done before +## the AM_PROG_LIBTOOL macro. +## if test -z "$AR"; then for ac_prog in ar xar @@ -7431,6 +7602,8 @@ test -n "$AR" || AR=":" fi +## Export the AR macro so that it will be placed in the libtool file +## correctly. export AR { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 @@ -7467,6 +7640,8 @@ fi +## ---------------------------------------------------------------------- +## Check that the tr utility is working properly. # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 @@ -7515,6 +7690,10 @@ if test "X${TR_TEST}" != "XTEST"; then fi +## ---------------------------------------------------------------------- +## Check that time can be used with srcdir. This is okay on most systems, +## but seems to cause problems on Cygwin. +## The solution on Cygwin is not to record execution time for tests. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if srcdir= and time commands work together" >&5 $as_echo_n "checking if srcdir= and time commands work together... " >&6; } @@ -7532,18 +7711,64 @@ $as_echo "no" >&6; } fi - - - - - +## The following variables are used to distinguish between building a +## serial and parallel library. +## +## HAVE_PARALLEL -- defined in H5config.h if we are building +## a parallel library even if configure wasn't +## able to find some header file or library that +## might be required. This is defined if the +## compiler looks like a parallel compiler (e.g., +## mpicc or mpcc) or if the user explicitly states +## that a parallel library is being built by supplying +## the `--enable-parallel' configure switch. +## +## PARALLEL -- This variable is set to a non-null value if +## configure thinks we're compiling a parallel +## version of the library. +## +## RUNSERIAL -- This is a command which will be prepended to +## the executable name to run the executable using +## a single process. For serial versions of the +## library this will normally be empty. For parallel +## versions it might be something like `mpiexec -n 1'. +## The value of this variable is substituted in *.in +## files. +## +## RUNPARALLEL -- This is a command which will be prepended to +## the executable name to run the executable on +## multiple processors. For the serial library the +## value will normally be the empty string. For +## parallel library it should be something like +## "mpiexec -n \$\${NPROCS:=6}" where NPROCS will +## eventually contain the number of processors on which +## to run the executable (the double dollarsigns are to +## protect the expansion until make executes the +## command). The value of this variable is +## substituted in *.in files. +## + + + + + +## ---------------------------------------------------------------------- +## If the compiler is obviously a parallel compiler then we're building +## a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore, +## the name of the compiler might tell us how to run the resulting +## executable. For `mpicc' the executable should be run with `mpiexec' from +## the same directory as mpicc if it exists. +## case "$CC_BASENAME" in mpicc) - PARALLEL=mpicc + ## The mpich compiler. Use mpiexec from the same directory if it + ## exists. + PARALLEL=mpicc { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 $as_echo_n "checking for mpiexec... " >&6; } - cmd="`echo $CC | cut -f1 -d' '`" + ## Find the path where mpicc is located. + cmd="`echo $CC | cut -f1 -d' '`" if (echo $cmd | grep / >/dev/null); then path="`echo $cmd | sed 's/\(.*\)\/.*$/\1/'`" else @@ -7554,7 +7779,8 @@ $as_echo_n "checking for mpiexec... " >&6; } done fi - if test -x $path/mpiexec; then + ## Is there an mpiexec at that path? + if test -x $path/mpiexec; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5 $as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" @@ -7569,16 +7795,27 @@ $as_echo "none" >&6; } ;; mpcc|mpcc_r) - PARALLEL="$CC_BASENAME" + ## The IBM compiler + PARALLEL="$CC_BASENAME" ;; *) - ;; + ## Probably not a parallel compiler, but if `--enable-parallel' + ## is defined below then we're still building a parallel hdf5. + ;; esac +## ---------------------------------------------------------------------- +## If the Fortran compiler is obviously a parallel compiler then we're +## building a parallel version of hdf5 and should define HAVE_PARALLEL. +## Furthermore, the name of the compiler might tell us how to run the +## resulting executable. For `mpif90' the executable should be run with +## `mpiexec' from the same directory as mpif90 if it exists. +## if test "X$HDF_FORTRAN" = "Xyes" ; then - ac_ext=${ac_fc_srcext-f} + ## Change to the Fortran 90 language + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu @@ -7586,11 +7823,14 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu case "$FC" in *mpif90*) - PARALLEL=mpif90 + ## The Fortran mpich compiler. Use mpiexec from the same directory + ## if it exists. + PARALLEL=mpif90 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 $as_echo_n "checking for mpiexec... " >&6; } - cmd=`echo $FC |cut -f1 -d' '` + ## Find the path where mpif90 is located. + cmd=`echo $FC |cut -f1 -d' '` if (echo $cmd |grep / >/dev/null); then path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`" else @@ -7601,7 +7841,8 @@ $as_echo_n "checking for mpiexec... " >&6; } done fi - if test -x $path/mpiexec; then + ## Is there an mpiexec at that path? + if test -x $path/mpiexec; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5 $as_echo "$path/mpiexec" >&6; } RUNSERIAL="${RUNSERIAL:-none}" @@ -7616,14 +7857,18 @@ $as_echo "none" >&6; } ;; *mpxlf* | *mpxlf_r* | *mpxlf90* | *mpxlf90_r* | *mpxlf95* | *mpxlf95_r*) - PARALLEL="$FC" + ## The IBM compiler + PARALLEL="$FC" ;; *) - ;; + ## Probably not a parallel compiler, but if `--enable-parallel' + ## is defined below then we're still building a parallel hdf5. + ;; esac - ac_ext=c + ## Change to the C language + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -7631,6 +7876,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi +## ----------------------------------------------------------------------------- +## If shared libraries are being used with parallel, disable them, unless the +## user explicity enables them via the '--enable-shared' option. if test "X${enable_shared}" = "X" -a "X${enable_parallel}" = "Xyes"; then echo ' shared libraries disabled in parallel' @@ -7644,6 +7892,10 @@ elif test "X${enable_shared}" = "Xyes" -a "X${PARALLEL}" != "X"; then echo ' shared libraries explicitly enabled by user' fi +## ---------------------------------------------------------------------- +## Fortran libraries are not currently supported on Mac. Disable them. +## (this is overridable with --enable-unsupported). +## H5_FORTRAN_SHARED="no" if test "X${HDF_FORTRAN}" = "Xyes" && test "X${enable_shared}" != "Xno"; then @@ -7651,6 +7903,7 @@ if test "X${HDF_FORTRAN}" = "Xyes" && test "X${enable_shared}" != "Xno"; then $as_echo_n "checking if shared Fortran libraries are supported... " >&6; } H5_FORTRAN_SHARED="yes" + ## Disable fortran shared libraries on Mac. (MAM - 03/30/11) case "`uname`" in Darwin*) @@ -7659,6 +7912,7 @@ $as_echo_n "checking if shared Fortran libraries are supported... " >&6; } ;; esac + ## Report results of check(s) if test "X${H5_FORTRAN_SHARED}" = "Xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -7693,6 +7947,9 @@ else fi +## ---------------------------------------------------------------------- +## Disable C++ shared libraries if +DD64 flag is detected. +## H5_CXX_SHARED="no" if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then @@ -7700,12 +7957,14 @@ if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then $as_echo_n "checking if shared C++ libraries are supported... " >&6; } H5_CXX_SHARED="yes" + ## Disable C++ shared libraries if DD64 flag is being used. if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then H5_CXX_SHARED="no" CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." fi + ## Report results of check(s) if test "X${H5_CXX_SHARED}" = "Xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -7739,12 +7998,20 @@ else fi +## ---------------------------------------------------------------------- +## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect +## these versions and add option "-Mx,28,0x8" to the compiler to avoid +## the problem if optimization is enabled. +## if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then echo 'adding compiler flag to avoid optimization problem in pgcc' CC="${CC-cc} -Mx,28,0x8" fi +## ---------------------------------------------------------------------- +## Shared libraries are not currently supported under Cygwin, so configure +## disables them unless --enable-unsupported has been supplied by the user. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then case "`uname`" in @@ -7759,6 +8026,9 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then esac fi +## ---------------------------------------------------------------------- +## Windows won't create DLLs without the following macro. +## enable_win32_dll=yes case $host in @@ -8063,9 +8333,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump -enable_dlopen=yes - - +## ---------------------------------------------------------------------- +## Create libtool. If shared/static libraries are going to be enabled +## or disabled, it should happen before these macros. case `pwd` in *\ * | *\ *) @@ -11610,6 +11880,7 @@ func_stripname_cnf () # Set options +enable_dlopen=yes @@ -21747,6 +22018,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +## ---------------------------------------------------------------------- +## Check if we should install only statically linked executables. +## This check needs to occur after libtool is initialized because +## we check a libtool cache value and may issue a warning based +## on its result. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should install only statically linked executables" >&5 $as_echo_n "checking if we should install only statically linked executables... " >&6; } # Check whether --enable-static_exec was given. @@ -21757,7 +22033,8 @@ fi if test "X$STATIC_EXEC" = "Xyes"; then echo "yes" - if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then + ## Issue a warning if -static flag is not supported. + if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then echo " warning: -static flag not supported on this system; executable won't statically link shared system libraries." fi LT_STATIC_EXEC="-all-static" @@ -21768,12 +22045,19 @@ fi +## Fix up the INSTALL macro if it's a relative path. We want the +## full-path to the binary instead. case "$INSTALL" in *install-sh*) INSTALL='\${top_srcdir}/bin/install-sh -c' ;; esac +## ---------------------------------------------------------------------- +## Some users have reported problems with libtool's use of '-Wl,-rpath' to +## link shared libraries in nondefault directories. Allow users to +## disable embedding the rpath information in the executables and to +## instead solely rely on the information in LD_LIBRARY_PATH. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -Wl,-rpath should be used to link shared libs in nondefault directories" >&5 $as_echo_n "checking if -Wl,-rpath should be used to link shared libs in nondefault directories... " >&6; } # Check whether --enable-sharedlib-rpath was given. @@ -21804,10 +22088,15 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking make" >&5 $as_echo_n "checking make... " >&6; } +## ---------------------------------------------------------------------- +## Sometimes makes think the `.PATH:' appearing before the first rule +## with an action should override the `all' default target. So we have +## to decide what the proper syntax is. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking how make searches directories" >&5 $as_echo_n "checking how make searches directories... " >&6; } while true; do #for break - # The most common method is `VPATH=DIR1 DIR2 ...' + ## The most common method is `VPATH=DIR1 DIR2 ...' cat >maketest <&6; } break fi - cat >maketest <maketest <&6; } break fi - cat >maketest <maketest <&6; } break fi - SEARCH_RULE='## SEARCH DISABLED: ' + ## No way for make to search directories + SEARCH_RULE='## SEARCH DISABLED: ' SEARCH_SEP=' ' { $as_echo "$as_me:${as_lineno-$LINENO}: result: it doesn't" >&5 $as_echo "it doesn't" >&6; } @@ -21873,8 +22166,13 @@ $as_echo "it doesn't" >&6; } done rm maketest +## ---------------------------------------------------------------------- +## pmake will throw an error if variables are undefined in a Makefile. +## These errors can be changed to warnings using the -V flag. +## AM_MAKEFLAGS="" +## Don't run test if MAKE is defined but is the empty string if test -n "${MAKE-make}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make will build with undefined variables" >&5 @@ -21897,6 +22195,10 @@ $as_echo "no, setting -V flag" >&6; } rm maketest fi +## ---------------------------------------------------------------------- +## Production flags? Save the value in $CONFIG_MODE so we have it for +## the record. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for production mode" >&5 $as_echo_n "checking for production mode... " >&6; } # Check whether --enable-production was given. @@ -21944,6 +22246,9 @@ $as_echo "user-defined" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check for system libraries. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in -lm" >&5 $as_echo_n "checking for ceil in -lm... " >&6; } if ${ac_cv_lib_m_ceil+:} false; then : @@ -21999,7 +22304,8 @@ fi if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 + ## ...for Solaris + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 $as_echo_n "checking for socket in -lsocket... " >&6; } if ${ac_cv_lib_socket_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -22108,6 +22414,9 @@ fi fi +## ---------------------------------------------------------------------- +## Check for system header files. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -22272,6 +22581,11 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi +## ---------------------------------------------------------------------- +## Check for these two functions before the time headers are checked +## for, otherwise they are not detected correctly on Solaris (the +## configure test will fail due to multiply-defined symbols). +## for ac_func in difftime do : ac_fn_c_check_func "$LINENO" "difftime" "ac_cv_func_difftime" @@ -22374,6 +22688,7 @@ fi done +## Unix for ac_header in sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -22426,6 +22741,7 @@ fi done +## Darwin for ac_header in mach/mach_time.h do : ac_fn_c_check_header_mongrel "$LINENO" "mach/mach_time.h" "ac_cv_header_mach_mach_time_h" "$ac_includes_default" @@ -22439,6 +22755,7 @@ fi done +## Windows case "`uname`" in CYGWIN*) for ac_header in io.h sys/timeb.h @@ -22537,7 +22854,11 @@ esac case "$host" in alpha*-dec*-osf*) - for ac_header in sys/sysinfo.h sys/proc.h + ## The and are needed on the DEC + ## Alpha to turn off UAC fixing. We do *not* attempt to + ## locate these files on other systems because there are too + ## many problems with including them. + for ac_header in sys/sysinfo.h sys/proc.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -22552,7 +22873,11 @@ done ;; mips*-sgi*-irix*) - for ac_header in sys/fpu.h + ## The is needed on the SGI machines to turn off + ## denormalized floating-point values going to zero. We do *not* + ## attempt to locate these files on other systems because there + ## may be problems with including them. + for ac_header in sys/fpu.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/fpu.h" "ac_cv_header_sys_fpu_h" "$ac_includes_default" if test "x$ac_cv_header_sys_fpu_h" = xyes; then : @@ -22578,22 +22903,33 @@ done ;; esac +## ---------------------------------------------------------------------- +## Some platforms require that all symbols are resolved when a library +## is linked. We can use the -no-undefined flag to tell libtool that +## it will be able to build shared libraries on these architectures, +## as it will not do so by default. +## if test "X${enable_shared}" = "Xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool needs -no-undefined flag to build shared libraries" >&5 $as_echo_n "checking if libtool needs -no-undefined flag to build shared libraries... " >&6; } case "`uname`" in CYGWIN*|MINGW*|AIX*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + ## Add in the -no-undefined flag to LDFLAGS for libtool. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } H5_LDFLAGS="$H5_LDFLAGS -no-undefined" ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ## Don't add in anything. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi +## ---------------------------------------------------------------------- +## Test for Largefile support. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if configure should try to set up large file support" >&5 $as_echo_n "checking if configure should try to set up large file support... " >&6; } @@ -22603,11 +22939,14 @@ if test "${enable_largefile+set}" = set; then : fi +## If largefile support is enabled, then set up appropriate compiler options. if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 + ## Check for needed compiler options. This check is pulled drectly + ## from autoconf's AC_SYS_LARGEFILE macro, as of Autoconf v2.65. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 @@ -22616,9 +22955,9 @@ else if test "$GCC" != yes; then ac_save_CC=$CC while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ## IRIX 6.2 and later do not support large files by default, + ## so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -22645,16 +22984,16 @@ main () return 0; } _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext - break + break done CC=$ac_save_CC rm -f conftest.$ac_ext @@ -22666,8 +23005,15 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; } CC=$CC$ac_cv_sys_largefile_CC fi + ## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines + ## that might need to be set for largefile support to behave + ## correctly. This macro is defined in acsite.m4 and overrides + ## the version provided by Autoconf (as of v2.65). The custom + ## macro additionally adds the appropriate defines to AM_CPPFLAGS + ## so that later configure checks have them visible. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 + ## Check for _FILE_OFFSET_BITS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 @@ -22753,7 +23099,8 @@ _ACEOF esac rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then + ## Check for _LARGE_FILES + if test "$ac_cv_sys_file_offset_bits" = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : @@ -22841,7 +23188,9 @@ esac rm -rf conftest* fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if large (64-bit) files are supported on this system." >&5 + ## Now actually test to see if we can create large files after we've + ## checked for any needed defines. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if large (64-bit) files are supported on this system." >&5 $as_echo_n "checking if large (64-bit) files are supported on this system.... " >&6; } if ${hdf5_cv_have_lfs+:} false; then : $as_echo_n "(cached) " >&6 @@ -22901,18 +23250,49 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Add necessary defines for Linux Systems. +## case "$host_cpu-$host_vendor-$host_os" in *linux*) - if test "X$LARGEFILE" != "Xno"; then + ## If largefile support is enabled, then make available various + ## LFS-related routines using the following _LARGEFILE*_SOURCE macros. + if test "X$LARGEFILE" != "Xno"; then AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" fi - H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" - - AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + ## Add POSIX support on Linux systems, so defines + ## __USE_POSIX, which is required to get the prototype for fdopen + ## defined correctly in . + ## This flag was removed from h5cc as of 2009-10-17 when it was found + ## that the flag broke compiling netCDF-4 code with h5cc, but kept in + ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen + ## is used only by H5_debug_mask which is used only when debugging in + ## H5_init_library (all in H5.c). When the flag was removed this was + ## the only compile failure noted. + ## This was originally defined as _POSIX_SOURCE which was updated to + ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX + ## functionality so clock_gettime and CLOCK_MONOTONIC are defined + ## correctly. + ## POSIX feature information can be found in the gcc manual at: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" + + ## Also add BSD support on Linux systems, so defines + ## __USE_BSD, which is required to get the prototype for strdup + ## defined correctly in and snprintf & vsnprintf defined + ## correctly in + ## Linking to the bsd-compat library is required as per the gcc manual: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + ## however, we do not do this since it breaks the big test on some + ## older platforms. + AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" ;; esac +## Need to add the AM_ and H5_ into CPFLAGS/CPPFLAGS to make them visible +## for configure checks. +## Note: Both will be restored by the end of configure. CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" @@ -23005,6 +23385,9 @@ $as_echo "skipping test for stat64() and fstat64()" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Data types and their sizes. +## ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : @@ -23652,6 +24035,7 @@ _ACEOF +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -23738,6 +24122,7 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## Posix.1g types (C9x) cat >>confdefs.h <<\EOF #include EOF @@ -24714,6 +25099,7 @@ _ACEOF +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -24800,6 +25186,9 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## ---------------------------------------------------------------------- +## Check if the dev_t type is a scalar type (must come after the check for +## sys/types.h) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dev_t is scalar" >&5 $as_echo_n "checking if dev_t is scalar... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -24838,6 +25227,11 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Fake --with-xxx option to allow us to create a help message for the +## following --with-xxx options which can take either a =DIR or =INC,LIB +## specifier. +## # Check whether --with-fnord was given. if test "${with_fnord+set}" = set; then : @@ -24845,6 +25239,12 @@ if test "${with_fnord+set}" = set; then : fi +## ---------------------------------------------------------------------- +## Is the dmalloc present? It has a header file `dmalloc.h' and a library +## `-ldmalloc' and their locations might be specified with the `--with-dmalloc' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## # Check whether --with-dmalloc was given. if test "${with_dmalloc+set}" = set; then : @@ -24951,7 +25351,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$dmalloc_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$dmalloc_inc" = "X/usr/include"; then dmalloc_inc="" fi if test "X$dmalloc_lib" = "X/usr/lib"; then @@ -25050,6 +25452,12 @@ fi ;; esac +## ---------------------------------------------------------------------- +## Is the GNU zlib present? It has a header file `zlib.h' and a library +## `-lz' and their locations might be specified with the `--with-zlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## USE_FILTER_DEFLATE="no" # Check whether --with-zlib was given. @@ -25162,7 +25570,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$zlib_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$zlib_inc" = "X/usr/include"; then zlib_inc="" fi if test "X$zlib_lib" = "X/usr/lib"; then @@ -25272,13 +25682,20 @@ $as_echo "#define HAVE_FILTER_DEFLATE 1" >>confdefs.h USE_FILTER_DEFLATE="yes" - if test "X$EXTERNAL_FILTERS" != "X"; then + ## Add "deflate" to external filter list + if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi EXTERNAL_FILTERS="${EXTERNAL_FILTERS}deflate(zlib)" fi +## ---------------------------------------------------------------------- +## Is the szlib present? It has a header file `szlib.h' and a library +## `-lsz' and their locations might be specified with the `--with-szlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## USE_FILTER_SZIP="no" # Check whether --with-szlib was given. @@ -25386,7 +25803,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$szlib_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$szlib_inc" = "X/usr/include"; then szlib_inc="" fi if test "X$szlib_lib" = "X/usr/lib"; then @@ -25486,10 +25905,14 @@ fi esac if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib encoder" >&5 + ## SZLIB library is available. Check if it can encode + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for szlib encoder" >&5 $as_echo_n "checking for szlib encoder... " >&6; } - if test -z "$LD_LIBRARY_PATH"; then + ## Set LD_LIBRARY_PATH so encoder test can find the library and run. + ## Also add LL_PATH substitution to Makefiles so they can use the + ## path as well, for testing examples. + if test -z "$LD_LIBRARY_PATH"; then export LD_LIBRARY_PATH="$szlib_lib" else export LD_LIBRARY_PATH="$szlib_lib:$LD_LIBRARY_PATH" @@ -25547,7 +25970,8 @@ $as_echo "yes" >&6; } $as_echo "no" >&6; } fi - if test ${hdf5_cv_szlib_can_encode} = "yes"; then + ## Add "szip" to external filter list + if test ${hdf5_cv_szlib_can_encode} = "yes"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi @@ -25571,6 +25995,7 @@ else fi +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -25657,6 +26082,13 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## ---------------------------------------------------------------------- +## Is the Pthreads library present? It has a header file `pthread.h' and +## a library `-lpthread' and their locations might be specified with the +## `--with-pthread' command-line switch. The value is an include path +## and/or a library path. If the library path is specified then it must +## be preceded by a comma. +## PTHREAD=yes # Check whether --with-pthread was given. @@ -25758,7 +26190,9 @@ $as_echo "suppressed" >&6; } ;; esac - if test "X$pthread_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$pthread_inc" = "X/usr/include"; then pthread_inc="" fi if test "X$pthread_lib" = "X/usr/lib"; then @@ -25922,6 +26356,9 @@ fi ;; esac +## ---------------------------------------------------------------------- +## Enable thread-safe version of library. It requires Pthreads support. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread safe support" >&5 $as_echo_n "checking for thread safe support... " >&6; } # Check whether --enable-threadsafe was given. @@ -25930,13 +26367,31 @@ if test "${enable_threadsafe+set}" = set; then : fi +## The --enable-threadsafe flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_CXX}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + as_fn_error $? "--enable-cxx and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 + fi +fi + +## --enable-threadsafe is also incompatible with --enable-fortran, unless +## --enable-unsupported has been specified on the configure line. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_FORTRAN}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + as_fn_error $? "--enable-fortran and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 + fi +fi + case "X-$THREADSAFE" in X-|X-no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; X-yes) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ## Check that we can link a simple Pthread program. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN @@ -25977,6 +26432,10 @@ $as_echo "#define HAVE_THREADSAFE 1" >>confdefs.h fi +## ---------------------------------------------------------------------- +## Check for MONOTONIC_TIMER support (used in clock_gettime). This has +## to be done after any POSIX/BSD defines to ensure that the test gets +## the correct POSIX level on linux. ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include " if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes; then : @@ -25986,14 +26445,19 @@ else fi +## ---------------------------------------------------------------------- +## How does one figure out the local time zone? Anyone know of a +## Posix way to do this? +## +## First check if `struct tm' has a `tm_gmtoff' member. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tm_gmtoff in struct tm" >&5 $as_echo_n "checking for tm_gmtoff in struct tm... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include + #include + #include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26014,7 +26478,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26022,13 +26486,14 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## check if `struct tm' has a `__tm_gmtoff' member. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __tm_gmtoff in struct tm" >&5 $as_echo_n "checking for __tm_gmtoff in struct tm... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include + #include + #include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26049,7 +26514,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE___TM_GMTOFF 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26057,6 +26522,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## Check whether the global variable `timezone' is defined. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for global timezone variable" >&5 $as_echo_n "checking for global timezone variable... " >&6; } @@ -26091,7 +26557,7 @@ if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_TIMEZONE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26102,6 +26568,7 @@ rm -f core conftest.err conftest.$ac_objext \ ;; esac +## Check whether `struct timezone' is defined. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : @@ -26225,9 +26692,9 @@ $as_echo_n "checking for struct timezone... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include + #include + #include + #include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26248,8 +26715,8 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h -have_struct_tz="yes" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + have_struct_tz="yes" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26257,6 +26724,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## If gettimeofday() is going to be used, make sure it uses the timezone struct if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday() gives timezone" >&5 @@ -26312,12 +26780,15 @@ $as_echo "no" >&6; } fi fi +## ---------------------------------------------------------------------- +## Does the struct stat have the st_blocks field? This field is not Posix. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blocks in struct stat" >&5 $as_echo_n "checking for st_blocks in struct stat... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + #include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -26338,7 +26809,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STAT_ST_BLOCKS 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26346,6 +26817,9 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## How do we figure out the width of a tty in characters? +## for ac_func in _getvideoconfig gettextinfo GetConsoleScreenBufferInfo do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -26396,7 +26870,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STRUCT_VIDEOCONFIG 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26429,7 +26903,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_STRUCT_TEXT_INFO 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26462,7 +26936,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_TIOCGWINSZ 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26495,7 +26969,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_TIOCGETD 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26504,6 +26978,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Check for functions. +## for ac_func in alarm BSDgettimeofday fork frexpf frexpl do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -26577,6 +27054,9 @@ fi done +## Check for vsnprintf() separately, so we can detect situations where it +## doesn't return the correct size for formatted strings that are too large +## for the buffer provided for ac_func in vsnprintf do : ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" @@ -26584,7 +27064,18 @@ if test "x$ac_cv_func_vsnprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VSNPRINTF 1 _ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5 + ## Check if vsnprintf() returns correct size for strings that don't fit + ## into the size allowed. If vsnprintf() works correctly on this platform, + ## it should return a value of 42 for the test below + ## + ## Note that vsnprintf fails in two different ways: + ## - In IRIX64, calls to vnsprintf() with a formatted string that + ## is larger than the buffer size allowed incorrectly + ## return the size of the buffer minus one. + ## - In HP/UX, calls to vsnprintf() with a formatted string that + ## is larger than the buffer size allowed incorrectly + ## return (-1) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5 $as_echo_n "checking if vsnprintf returns correct value... " >&6; } if ${hdf5_cv_vsnprintf_works+:} false; then : @@ -26649,6 +27140,11 @@ fi done +## ---------------------------------------------------------------------- +## Check that a lone colon can be used as an argument +## This is not true on Cray X1, which interprets a lone colon as a +## system command. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lone colon can be used as an argument" >&5 $as_echo_n "checking if lone colon can be used as an argument... " >&6; } if ${hdf5_cv_lone_colon+:} false; then : @@ -26676,6 +27172,9 @@ $as_echo "$hdf5_cv_lone_colon" >&6; } H5_LONE_COLON="$hdf5_cv_lone_colon" +## ---------------------------------------------------------------------- +## Check compiler characteristics +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : @@ -26833,7 +27332,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_ATTRIBUTE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26866,7 +27365,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_C99_FUNC 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26898,7 +27397,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_FUNCTION 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26938,7 +27437,7 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_C99_DESIGNATED_INITIALIZER 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26946,12 +27445,21 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +## ---------------------------------------------------------------------- +## Try to figure out how to print `long long'. Some machines use `%lld' +## and others use `%qd'. There may be more! The final `l' is a +## default in case none of the others work. +## Need to patch up LD_LIBRARY_PATH so that the execution can find all +## the dynamic library. The correct way to do it should be updating +## LD_LIBRARY_PATH along with LDFLAGS or do it with the AC_TRY_RUN macro. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print long long" >&5 $as_echo_n "checking how to print long long... " >&6; } if ${hdf5_cv_printf_ll+:} false; then : $as_echo_n "(cached) " >&6 else - LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo $AM_LDFLAGS $LDFLAGS | sed -e 's/-L/:/g' -e 's/ //g'`" + +LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo $AM_LDFLAGS $LDFLAGS | sed -e 's/-L/:/g' -e 's/ //g'`" export LD_LIBRARY_PATH for hdf5_cv_printf_ll in l ll L q unknown; do @@ -26961,17 +27469,17 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include + #include + #include + #include -int main(void) -{ + int main(void) + { char *s = malloc(128); long long x = (long long)1048576 * (long long)1048576; sprintf(s,"%${hdf5_cv_printf_ll}d",x); exit(strcmp(s,"1099511627776")); -} + } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -26984,6 +27492,7 @@ fi done fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: %${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&5 $as_echo "%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u" >&6; } @@ -26992,6 +27501,10 @@ cat >>confdefs.h <<_ACEOF _ACEOF +## ---------------------------------------------------------------------- +## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) +## is supported on this system +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking Threads support system scope" >&5 $as_echo_n "checking Threads support system scope... " >&6; } if ${hdf5_cv_system_scope_threads+:} false; then : @@ -27006,20 +27519,20 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if STDC_HEADERS -#include -#include -#endif + #if STDC_HEADERS + #include + #include + #endif -int main(void) -{ - pthread_attr_t attribute; - int ret; + int main(void) + { + pthread_attr_t attribute; + int ret; - pthread_attr_init(&attribute); - ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); - exit(ret==0 ? 0 : 1); -} + pthread_attr_init(&attribute); + ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); + exit(ret==0 ? 0 : 1); + } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -27045,6 +27558,9 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Checking to see if GPFS is available on this filesystem +## # Check whether --enable-gpfs was given. if test "${enable_gpfs+set}" = set; then : enableval=$enable_gpfs; @@ -27087,14 +27603,14 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_GPFS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - LIBS="$LIBS -lgpfs" - GPFS="yes" + LIBS="$LIBS -lgpfs" + GPFS="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - GPFS="no" + GPFS="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi @@ -27110,6 +27626,10 @@ $as_echo "suppressed" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Turn on debugging by setting compiler flags +## This must come after the enable-production since it depends on production. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for debug flags" >&5 $as_echo_n "checking for debug flags... " >&6; } # Check whether --enable-debug was given. @@ -27118,6 +27638,7 @@ if test "${enable_debug+set}" = set; then : fi +## Default to no if producton is enabled if test "X-$DEBUG_PKG" = X- ; then if test "$enable_production" = yes ; then DEBUG_PKG=no @@ -27159,6 +27680,9 @@ if test -n "$DEBUG_PKG"; then done fi +## ---------------------------------------------------------------------- +## Check if they would like the function stack support compiled in +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether function stack tracking is enabled" >&5 $as_echo_n "checking whether function stack tracking is enabled... " >&6; } # Check whether --enable-codestack was given. @@ -27183,6 +27707,9 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like the metadata trace file code compiled in +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether metadata trace file code is enabled" >&5 $as_echo_n "checking whether metadata trace file code is enabled... " >&6; } # Check whether --enable-metadata-trace-file was given. @@ -27207,6 +27734,10 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Enable tracing of the API +## This must come after the enable-debug since it depends on debug. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for API tracing" >&5 $as_echo_n "checking for API tracing... " >&6; }; @@ -27216,6 +27747,7 @@ if test "${enable_trace+set}" = set; then : fi +## Default to no if debug is disabled if test "X-$TRACE" = X- ; then if test -z "$DEBUG_PKG" ; then TRACE=no @@ -27239,6 +27771,10 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Enable instrumenting of the library's internal operations +## This must come after the enable-debug since it depends on debug. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for instrumented library" >&5 $as_echo_n "checking for instrumented library... " >&6; }; @@ -27248,6 +27784,7 @@ if test "${enable_instrument+set}" = set; then : fi +## Default to no if debug is disabled if test "X-$INSTRUMENT" = X- ; then if test -z "$DEBUG_PKG" ; then INSTRUMENT=no @@ -27272,6 +27809,10 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like to securely clear file buffers before they are +## written. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to clear file buffers" >&5 $as_echo_n "checking whether to clear file buffers... " >&6; } @@ -27297,6 +27838,12 @@ $as_echo "no" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Check if they would like to use a memory checking tool (like valgrind's +## 'memcheck' tool, or Rational Purify, etc) and the library should be +## more scrupulous with it's memory operations. Enabling this also +## disables the library's free space manager code. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a memory checking tool will be used" >&5 $as_echo_n "checking whether a memory checking tool will be used... " >&6; } @@ -27322,6 +27869,7 @@ $as_echo "no" >&6; } ;; esac +## Checkpoint the cache cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -27408,24 +27956,40 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi rm -f confcache +## What header files and libraries do we have to look for for parallel +## support? For the most part, search paths are already specified with +## CPPFLAGS and LDFLAGS or are known to the compiler. If the user says +## `--disable-parallel' but specifies a known parallel compiler (like mpicc +## or mpcc) then parallel support is enabled but configure doesn't search +## for any parallel header files or libraries. +## # Check whether --enable-parallel was given. if test "${enable_parallel+set}" = set; then : enableval=$enable_parallel; fi +## The --enable-parallel flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${HDF_CXX}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then as_fn_error $? "--enable-cxx and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 fi fi +## --enable-parallel is also incompatible with --enable-threadsafe, unless +## --enable-unsupported has been specified on the configure line. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${THREADSAFE}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then as_fn_error $? "--enable-threadsafe and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error." "$LINENO" 5 fi fi +## It's possible to build in parallel by specifying a parallel compiler +## without using the --enable-parallel flag. This isn't allowed with +## C++ or threadsafe, either, unless the --enable-unsupported flag +## has also been specified. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${PARALLEL}" != "X" -a "X${enable_cxx}" = "Xyes" ; then as_fn_error $? "An MPI compiler is being used; --enable-cxx is not allowed. Use --enable-unsupported to override this error." "$LINENO" 5 @@ -27439,16 +28003,23 @@ fi $as_echo_n "checking for parallel support files... " >&6; } case "X-$enable_parallel" in X-|X-no|X-none) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 + ## Either we are not compiling for parallel or the header and + ## library files and locations are known to the compiler (this is + ## the case for a correct installation of mpicc for instance). + { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 $as_echo "skipped" >&6; } ;; X-yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: provided by compiler" >&5 + ## We want to compile a parallel library with a compiler that + ## may already know how to link with MPI and MPI-IO. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: provided by compiler" >&5 $as_echo "provided by compiler" >&6; } PARALLEL=yes - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ## Try link a simple MPI program. If fail, try again with -lmpi and + ## -lmpich. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN @@ -27470,8 +28041,7 @@ _ACEOF if ac_fn_c_try_link "$LINENO"; then : else - \ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 $as_echo_n "checking for MPI_Init in -lmpi... " >&6; } if ${ac_cv_lib_mpi_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 @@ -27523,8 +28093,7 @@ _ACEOF LIBS="-lmpi $LIBS" else - \ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 $as_echo_n "checking for MPI_Init in -lmpich... " >&6; } if ${ac_cv_lib_mpich_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 @@ -27585,7 +28154,9 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test "X$PARALLEL" = "Xyes"; then + ## Then try link a simple MPI-IO program. If fail, try again with + ## -lmpio. + if test "X$PARALLEL" = "Xyes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27669,13 +28240,15 @@ rm -f core conftest.err conftest.$ac_objext \ fi if test "X$HDF_FORTRAN" = "Xyes"; then - ac_ext=${ac_fc_srcext-f} + ## Change to the Fortran 90 language + ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - cat > conftest.$ac_ext <<_ACEOF + ## Try link a simple MPI program. If fail, try again with -lmpi. + cat > conftest.$ac_ext <<_ACEOF program main include 'mpif.h' @@ -27738,7 +28311,9 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test "X$PARALLEL" = "Xyes"; then + ## Then try link a simple MPI-IO program. If fail, try again with + ## -lmpio. + if test "X$PARALLEL" = "Xyes"; then cat > conftest.$ac_ext <<_ACEOF program main @@ -27803,7 +28378,8 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi - ac_ext=c + ## Change to the C language + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -27811,8 +28387,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi - if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - for path in `echo $PATH | ${TR} ":" " "`; do + ## Set RUNPARALLEL to mpiexec if not set yet. + ## Check for building on Cray if RUNPARALLEL is not yet set by checking + ## for 'aprun' command (which is the parallel job launcher, like mpiexec). + if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then + ## Find the path where aprun is located. + for path in `echo $PATH | ${TR} ":" " "`; do if test -x $path/aprun; then RUNPARALLEL="aprun -q -n \$\${NPROCS:=6}" break; @@ -27820,7 +28400,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu done fi - if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then + ## Set RUNPARALLEL to mpiexec if not set yet. + if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then RUNPARALLEL="mpiexec -n \$\${NPROCS:=6}" fi ;; @@ -27832,16 +28413,22 @@ $as_echo "error" >&6; } ;; esac +## ---------------------------------------------------------------------- +## Print some other parallel information and do some sanity checks. +## ADD_PARALLEL_FILES="no" if test -n "$PARALLEL"; then - TESTPARALLEL=testpar + ## The 'testpar' directory should participate in the build + TESTPARALLEL=testpar + ## We are building a parallel library $as_echo "#define HAVE_PARALLEL 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running on one processor" >&5 + ## Display what we found about running programs + { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for running on one processor" >&5 $as_echo_n "checking prefix for running on one processor... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNSERIAL" >&5 $as_echo "$RUNSERIAL" >&6; } @@ -27850,7 +28437,8 @@ $as_echo_n "checking prefix for running in parallel... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNPARALLEL" >&5 $as_echo "$RUNPARALLEL" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO program can be linked" >&5 + ## Check that we can link a simple MPI and MPI-IO application + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO program can be linked" >&5 $as_echo_n "checking whether a simple MPI-IO program can be linked... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27882,11 +28470,15 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test -z "$RUNPARALLEL"; then + ## There *must* be some way to run in parallel even if it's just the + ## word `none'. + if test -z "$RUNPARALLEL"; then as_fn_error $? "no way to run a parallel program" "$LINENO" 5 fi - if test "X$RUNSERIAL" = "Xnone"; then + ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with + ## the empty string. + if test "X$RUNSERIAL" = "Xnone"; then RUNSERIAL="" fi if test "X$RUNPARALLEL" = "Xnone"; then @@ -27967,7 +28559,13 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi - MPE=yes + ## -------------------------------------------------------------------- + ## Do we want MPE instrumentation feature on? + ## + ## This must be done after enable-parallel is checked since it depends + ## on a mpich compiler. + ## + MPE=yes # Check whether --with-mpe was given. if test "${with_mpe+set}" = set; then : @@ -28055,9 +28653,9 @@ else unset MPE fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CLOG_Init in -llmpe" >&5 -$as_echo_n "checking for CLOG_Init in -llmpe... " >&6; } -if ${ac_cv_lib_lmpe_CLOG_Init+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_mpi_io in -llmpe" >&5 +$as_echo_n "checking for MPE_Init_mpi_io in -llmpe... " >&6; } +if ${ac_cv_lib_lmpe_MPE_Init_mpi_io+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28071,7 +28669,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char CLOG_Init (); +char MPE_Init_mpi_io (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -28083,23 +28681,23 @@ char CLOG_Init (); int main () { -return CLOG_Init (); +return MPE_Init_mpi_io (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lmpe_CLOG_Init=yes + ac_cv_lib_lmpe_MPE_Init_mpi_io=yes else - ac_cv_lib_lmpe_CLOG_Init=no + ac_cv_lib_lmpe_MPE_Init_mpi_io=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_CLOG_Init" >&5 -$as_echo "$ac_cv_lib_lmpe_CLOG_Init" >&6; } -if test "x$ac_cv_lib_lmpe_CLOG_Init" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_MPE_Init_mpi_io" >&5 +$as_echo "$ac_cv_lib_lmpe_MPE_Init_mpi_io" >&6; } +if test "x$ac_cv_lib_lmpe_MPE_Init_mpi_io" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBLMPE 1 _ACEOF @@ -28125,7 +28723,9 @@ fi ;; esac - if test "X$mpe_inc" = "X/usr/include"; then + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. + if test "X$mpe_inc" = "X/usr/include"; then mpe_inc="" fi if test "X$mpe_lib" = "X/usr/lib"; then @@ -28228,9 +28828,9 @@ else LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CLOG_Init in -llmpe" >&5 -$as_echo_n "checking for CLOG_Init in -llmpe... " >&6; } -if ${ac_cv_lib_lmpe_CLOG_Init+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_mpi_io in -llmpe" >&5 +$as_echo_n "checking for MPE_Init_mpi_io in -llmpe... " >&6; } +if ${ac_cv_lib_lmpe_MPE_Init_mpi_io+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28244,7 +28844,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char CLOG_Init (); +char MPE_Init_mpi_io (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -28256,23 +28856,23 @@ char CLOG_Init (); int main () { -return CLOG_Init (); +return MPE_Init_mpi_io (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lmpe_CLOG_Init=yes + ac_cv_lib_lmpe_MPE_Init_mpi_io=yes else - ac_cv_lib_lmpe_CLOG_Init=no + ac_cv_lib_lmpe_MPE_Init_mpi_io=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_CLOG_Init" >&5 -$as_echo "$ac_cv_lib_lmpe_CLOG_Init" >&6; } -if test "x$ac_cv_lib_lmpe_CLOG_Init" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_MPE_Init_mpi_io" >&5 +$as_echo "$ac_cv_lib_lmpe_MPE_Init_mpi_io" >&6; } +if test "x$ac_cv_lib_lmpe_MPE_Init_mpi_io" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBLMPE 1 _ACEOF @@ -28340,9 +28940,9 @@ else unset MPE fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CLOG_Init in -llmpe" >&5 -$as_echo_n "checking for CLOG_Init in -llmpe... " >&6; } -if ${ac_cv_lib_lmpe_CLOG_Init+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_mpi_io in -llmpe" >&5 +$as_echo_n "checking for MPE_Init_mpi_io in -llmpe... " >&6; } +if ${ac_cv_lib_lmpe_MPE_Init_mpi_io+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28356,7 +28956,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char CLOG_Init (); +char MPE_Init_mpi_io (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus @@ -28368,23 +28968,23 @@ char CLOG_Init (); int main () { -return CLOG_Init (); +return MPE_Init_mpi_io (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lmpe_CLOG_Init=yes + ac_cv_lib_lmpe_MPE_Init_mpi_io=yes else - ac_cv_lib_lmpe_CLOG_Init=no + ac_cv_lib_lmpe_MPE_Init_mpi_io=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_CLOG_Init" >&5 -$as_echo "$ac_cv_lib_lmpe_CLOG_Init" >&6; } -if test "x$ac_cv_lib_lmpe_CLOG_Init" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_MPE_Init_mpi_io" >&5 +$as_echo "$ac_cv_lib_lmpe_MPE_Init_mpi_io" >&6; } +if test "x$ac_cv_lib_lmpe_MPE_Init_mpi_io" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBLMPE 1 _ACEOF @@ -28405,7 +29005,13 @@ $as_echo "#define HAVE_MPE 1" >>confdefs.h fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI_File_set_size works for files over 2GB" >&5 + ## ---------------------------------------------------------------------- + ## Set the flag to indicate that the MPI_File_set_size() function + ## works with files over 2GB, unless it's already set in the cache. + ## (This flag should be set for all machines, except for ASCI Red, where + ## the cache value is set in it's config file) + ## + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI_File_set_size works for files over 2GB" >&5 $as_echo_n "checking if MPI_File_set_size works for files over 2GB... " >&6; } if ${hdf5_cv_mpi_file_set_size_big+:} false; then : $as_echo_n "(cached) " >&6 @@ -28425,7 +29031,14 @@ $as_echo "yes" >&6; } $as_echo "no" >&6; } fi - # Check whether --enable-mpi-size was given. + ## ---------------------------------------------------------------------- + ## Set the flag to indicate that the MPI_File_get_size() function + ## works. The default is enabled unless the user knows the function + ## doesn't work on the system and disables it. (This flag should be set + ## for all machines except for SGI Altix Propack 4 where the function + ## doesn't return correct file size.) + ## + # Check whether --enable-mpi-size was given. if test "${enable_mpi_size+set}" = set; then : enableval=$enable_mpi_size; MPI_GET_SIZE=$enableval fi @@ -28452,6 +29065,14 @@ $as_echo "#define HAVE_MPI_GET_SIZE 1" >>confdefs.h esac fi +## ---------------------------------------------------------------------- +## Turn on internal I/O filters by setting macros in header files +## Internal I/O filters are contained entirely within the library and do +## not depend on external headers or libraries. The shuffle filter is +## an example of an internal filter, while the gzip filter is an example of +## an external filter. Each external filter is controlled with an +## "--with-foo=" configure flag. +## USE_FILTER_SHUFFLE="no" USE_FILTER_FLETCHER32="no" @@ -28465,6 +29086,7 @@ if test "${enable_filters+set}" = set; then : fi +## Eventually: all_filters="shuffle,foo,bar,baz" all_filters="shuffle,fletcher32,nbit,scaleoffset" case "X-$FILTERS" in X-|X-all) @@ -28485,7 +29107,11 @@ esac if test -n "$FILTERS"; then for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do - if test $filter = "SHUFFLE"; then + ## ------------------------------------------------------------------ + ## Have to use separate 'if' construct for each filter, so that + ## autoheader can detect the AC_DEFINE for each one... + ## + if test $filter = "SHUFFLE"; then $as_echo "#define HAVE_FILTER_SHUFFLE 1" >>confdefs.h @@ -28512,12 +29138,19 @@ $as_echo "#define HAVE_FILTER_SCALEOFFSET 1" >>confdefs.h done fi +## ---------------------------------------------------------------------- +## This is defined only when we're using CodeWarrior, since it has a +## broken "open()" call. +# if test 1 = 2; then $as_echo "#define NO_SHARED_WRITING 1" >>confdefs.h fi +## -------------------------------------------------------------------------- +## Should the Default Virtual File Driver be compiled? +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Default Virtual File Driver definition" >&5 $as_echo_n "checking for Default Virtual File Driver definition... " >&6; } @@ -28554,6 +29187,9 @@ _ACEOF fi +## ---------------------------------------------------------------------- +## Check if Direct I/O driver is enabled by --enable-direct-vfd +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Direct Virtual File Driver support" >&5 $as_echo_n "checking for Direct Virtual File Driver support... " >&6; } @@ -28654,6 +29290,12 @@ else fi +## ---------------------------------------------------------------------- +## Decide whether the presence of user's exception handling functions is +## checked and data conversion exceptions are returned. This is mainly +## for the speed optimization of hard conversions. Soft conversions can +## actually benefit little. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether exception handling functions is checked during data conversions" >&5 $as_echo_n "checking whether exception handling functions is checked during data conversions... " >&6; } # Check whether --enable-dconv-exception was given. @@ -28675,6 +29317,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Decide whether the data accuracy has higher priority during data +## conversions. If not, some hard conversions will still be prefered even +## though the data may be wrong (for example, some compilers don't +## support denormalized floating values) to maximize speed. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether data accuracy is guaranteed during data conversions" >&5 $as_echo_n "checking whether data accuracy is guaranteed during data conversions... " >&6; } # Check whether --enable-dconv-accuracy was given. @@ -28696,6 +29344,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle converting +## denormalized floating-point values. +## (This flag should be set for all machines, except for the Crays, where +## the cache value is set in it's config file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting denormalized floating-point values is possible" >&5 $as_echo_n "checking if converting denormalized floating-point values is possible... " >&6; } if ${hdf5_cv_convert_denormal_float+:} false; then : @@ -28716,6 +29370,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle converting +## floating-point to long long values. +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting floating-point values to long long is not working" >&5 $as_echo_n "checking if converting floating-point values to long long is not working... " >&6; } if ${hdf5_cv_convert_float_llong_not_works+:} false; then : @@ -28736,6 +29396,12 @@ else $as_echo "false" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine has window style pathname, +## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the machine has window style path name" >&5 $as_echo_n "checking if the machine has window style path name... " >&6; } @@ -28753,6 +29419,13 @@ $as_echo "no" >&6; } ;; esac +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can handle conversion from +## long double to integers accurately. This flag should be set "yes" for +## all machines except all SGIs. For SGIs, some conversions are +## incorrect and its cache value is set "no" in its config/irix6.x and +## irix5.x. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers is accurate" >&5 $as_echo_n "checking if converting from long double to integers is accurate... " >&6; } @@ -28778,6 +29451,13 @@ else $as_echo "no" >&6; } fi +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can do conversion from +## long double to integers regardless of accuracy. This flag should be +## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the +## compiler has 'floating exception' when converting 'long double' to all +## integers except 'unsigned long long'. Other HP-UX systems are unknown +## yet. (1/8/05 - SLU) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers works" >&5 $as_echo_n "checking if converting from long double to integers works... " >&6; } @@ -28844,6 +29524,13 @@ else $as_echo "no" >&6; } fi +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can handle conversion from +## integers to long double. (This flag should be set "yes" for all +## machines except all SGIs, where some conversions are +## incorrect and its cache value is set "no" in its config/irix6.x and +## irix5.x) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting from integers to long double" >&5 $as_echo_n "checking if accurately converting from integers to long double... " >&6; } @@ -28869,6 +29556,14 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'unsigned long' to 'float' values. +## (This flag should be set for all machines, except for Pathscale compiler +## on Sandia's Linux machine where the compiler interprets 'unsigned long' +## values as negative when the first bit of 'unsigned long' is on during +## the conversion to float.) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long to float values" >&5 $as_echo_n "checking if accurately converting unsigned long to float values... " >&6; } @@ -28937,6 +29632,14 @@ $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'unsigned (long) long' values to 'float' and 'double' values. +## (This flag should be set for all machines, except for the SGIs, where +## the cache value is set in the config/irix6.x config file) and Solaris +## 64-bit machines, where the short program below tests if round-up is +## correctly handled. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long long to floating-point values" >&5 $as_echo_n "checking if accurately converting unsigned long long to floating-point values... " >&6; } @@ -29044,6 +29747,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'float' or 'double' to 'unsigned long long' values. +## (This flag should be set for all machines, except for PGI compiler +## where round-up happens when the fraction of float-point value is greater +## than 0.5. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately roundup converting floating-point to unsigned long long values" >&5 $as_echo_n "checking if accurately roundup converting floating-point to unsigned long long values... " >&6; } @@ -29100,6 +29810,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'float', 'double' or 'long double' to 'unsigned long long' values. +## (This flag should be set for all machines, except for HP-UX machines +## where the maximal number for unsigned long long is 0x7fffffffffffffff +## during conversion. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if right maximum converting floating-point to unsigned long long values" >&5 $as_echo_n "checking if right maximum converting floating-point to unsigned long long values... " >&6; } @@ -29163,6 +29880,11 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'long double' to 'unsigned int' values. (This flag should be set for +## all machines, except for some Intel compilers on some Linux.) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to unsigned int values" >&5 $as_echo_n "checking if correctly converting long double to unsigned int values... " >&6; } @@ -29220,6 +29942,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can _compile_ +## 'unsigned long long' to 'float' and 'double' typecasts. +## (This flag should be set for all machines, except for under Windows when +## compiled with Visual Studio 6, where the macro value is set in the +## src/H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling unsigned long long to floating-point typecasts work" >&5 $as_echo_n "checking if compiling unsigned long long to floating-point typecasts work... " >&6; } if ${hdf5_cv_ullong_to_fp_cast_works+:} false; then : @@ -29240,6 +29969,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can _compile_ +## 'long long' to 'float' and 'double' typecasts. +## (This flag should be set for all machines, except for under Windows when +## compiled with Visual Studio 6, where the macro value is set in the +## src/H5pubconf.h file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling long long to floating-point typecasts work" >&5 $as_echo_n "checking if compiling long long to floating-point typecasts work... " >&6; } if ${hdf5_cv_llong_to_fp_cast_works+:} false; then : @@ -29260,6 +29996,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can convert from +## 'unsigned long long' to 'long double' without precision loss. +## (This flag should be set for all machines, except for FreeBSD(sleipnir) +## where the last 2 bytes of mantissa are lost when compiler tries to do +## the conversion, and Cygwin where compiler doesn't do rounding correctly.) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting unsigned long long to long double with precision" >&5 $as_echo_n "checking if converting unsigned long long to long double with precision... " >&6; } @@ -29377,6 +30120,13 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle overflow converting +## all floating-point to all integer types. +## (This flag should be set for all machines, except for Cray X1 where +## floating exception is generated when the floating-point value is greater +## than the maximal integer value). +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if overflows normally converting floating-point to integer values" >&5 $as_echo_n "checking if overflows normally converting floating-point to integer values... " >&6; } @@ -29427,6 +30177,15 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine is using a special algorithm to convert +## 'long double' to '(unsigned) long' values. (This flag should only be set for +## the IBM Power6 Linux. When the bit sequence of long double is +## 0x4351ccf385ebc8a0bfcc2a3c3d855620, the converted value of (unsigned)long +## is 0x004733ce17af227f, not the same as the library's conversion to 0x004733ce17af2282. +## The machine's conversion gets the correct value. We define the macro and disable +## this kind of test until we figure out what algorithm they use. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if using special algorithm to convert long double to (unsigned) long values" >&5 $as_echo_n "checking if using special algorithm to convert long double to (unsigned) long values... " >&6; } @@ -29524,6 +30283,14 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine is using a special algorithm +## to convert some values of '(unsigned) long' to 'long double' values. +## (This flag should be off for all machines, except for IBM Power6 Linux, +## when the bit sequences are 003fff..., 007fff..., 00ffff..., 01ffff..., +## ..., 7fffff..., the compiler uses a unknown algorithm. We define a +## macro and skip the test for now until we know about the algorithm. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if using special algorithm to convert (unsigned) long to long double values" >&5 $as_echo_n "checking if using special algorithm to convert (unsigned) long to long double values... " >&6; } @@ -29623,6 +30390,15 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'long double' to '(unsigned) long long' values. (This flag should be set for +## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence +## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long +## start to go wrong on these two machines. Adjusting it higher to +## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted +## values wildly wrong. This test detects this wrong behavior and disable the test. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to (unsigned) long long values" >&5 $as_echo_n "checking if correctly converting long double to (unsigned) long long values... " >&6; } @@ -29704,6 +30480,13 @@ $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## '(unsigned) long long' to 'long double' values. (This flag should be set for +## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., +## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice +## as big as they should be. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting (unsigned) long long to long double values" >&5 $as_echo_n "checking if correctly converting (unsigned) long long to long double values... " >&6; } @@ -29788,6 +30571,12 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine generates bad code +## for the H5V_log2_gen() routine in src/H5Vprivate.h +## (This flag should be set to no for all machines, except for SGI IRIX64, +## where the cache value is set to yes in it's config file) +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bad code for log2 routine is generated" >&5 $as_echo_n "checking if bad code for log2 routine is generated... " >&6; } if ${hdf5_cv_bad_log2_code_generated+:} false; then : @@ -29808,19 +30597,28 @@ else $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Set some variables for general configuration information to be saved +## and installed with the libraries. +## +## HDF5 version from the first line of the README.txt file. H5_VERSION="`cut -d' ' -f3 $srcdir/README.txt | head -1`" +## Configuration date CONFIG_DATE="`date`" +## User doing the configuration CONFIG_USER="`whoami`@`hostname`" if test -n "$ORGANIZATION"; then CONFIG_USER="$CONFIG_USER at $ORGANIZATION" fi +## Configuration mode (production, development, profile, etc) saved above. +## Byte sex from the AC_C_BIGENDIAN macro. if test "X$ac_cv_c_bigendian" = "Xyes"; then BYTESEX="big-endian" @@ -29836,9 +30634,13 @@ else fi +## Parallel support? (set above except empty if none) PARALLEL=${PARALLEL:-no} +## Compiler with version information. This consists of the full path +## name of the compiler and the reported version number. +## Strip anything that looks like a flag off of $CC CC_NOFLAGS=`echo $CC | sed 's/ -.*//'` if `echo $CC_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -29857,6 +30659,7 @@ if test -n "$cc_version_info"; then fi +## Strip anything that looks like a flag off of $CC FC_NOFLAGS=`echo $FC | sed 's/ -.*//'` if `echo $FC_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -29875,6 +30678,7 @@ if test -n "$fc_version_info"; then fi +## Strip anything that looks like a flag off of $CC CXX_NOFLAGS=`echo $CXX | sed 's/ -.*//'` if `echo $CXX_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -29892,6 +30696,12 @@ if test -n "$cxx_version_info"; then CXX_VERSION="$CXX_VERSION ( $cxx_version_info)" fi +## ---------------------------------------------------------------------- +## Where is the root of the source tree. Give an absolute address so +## we can find it no matter which directory of the distribution is our +## current directory. The built-in pwd fails on some systems, but the +## /bin/pwd version works OK. +## if test -x /bin/pwd; then pwd=/bin/pwd else @@ -29899,8 +30709,16 @@ else fi ROOT="`$pwd`" +## ---------------------------------------------------------------------- +## Move any compiler-specific libraries into the main LIBS varaible. +## LIBS="$DEFAULT_LIBS $LIBS" +## ---------------------------------------------------------------------- +## Determine the runtime libraries we may need to include in the +## libtools command so that executables will find the correct dynamic +## libraries. +## DYNAMIC_DIRS="" if test -n "$AM_LDFLAGS $LDFLAGS"; then @@ -29910,7 +30728,9 @@ if test -n "$AM_LDFLAGS $LDFLAGS"; then d="`echo $d | sed -e 's/-L//g'`" case "$d" in .*) - d=${ROOT}/$d + ## If the path isn't absolute, make it so by + ## prepending the ROOT directory to it. + d=${ROOT}/$d ;; esac DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS" @@ -29924,7 +30744,9 @@ if test -n "$AM_CPPFLAGS"; then for d in $AM_CPPFLAGS ; do case "$d" in -I.*) - d="`echo $d | sed -e 's/-I//g'`" + ## If the path isn't absolute, make it so by prepending + ## the ROOT directory to it. + d="`echo $d | sed -e 's/-I//g'`" d="-I${ROOT}/${d}" ;; esac @@ -29933,9 +30755,12 @@ if test -n "$AM_CPPFLAGS"; then AM_CPPFLAGS=$TEMP_CPPFLAGS fi +## ---------------------------------------------------------------------- +## Check if they would like the High Level library compiled +## HL="" -# name of fortran folder inside "hl", if FORTRAN compile is requested +## name of fortran folder inside "hl", if FORTRAN compile is requested HL_FOR="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if high level library is enabled" >&5 $as_echo_n "checking if high level library is enabled... " >&6; } @@ -29957,6 +30782,11 @@ else echo "no" fi +## ---------------------------------------------------------------------- +## Some programs shouldn't be built by default (e.g., programs to generate +## data files used by tests, some optional tests). +## Check if they want such programs built anyway. +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking additional programs should be built" >&5 $as_echo_n "checking additional programs should be built... " >&6; } # Check whether --enable-build-all was given. @@ -29981,6 +30811,9 @@ else fi +## ---------------------------------------------------------------------- +## Enable deprecated public API symbols +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if deprecated public symbols are available" >&5 $as_echo_n "checking if deprecated public symbols are available... " >&6; }; @@ -30008,6 +30841,9 @@ $as_echo "#define NO_DEPRECATED_SYMBOLS 1" >>confdefs.h ;; esac +## -------------------------------------------------------------------------- +## Which version of the public APIs should the 'base' versioned symbols use? +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking which version of public symbols to use by default" >&5 @@ -30040,12 +30876,19 @@ else as_fn_error $? "invalid version of public symbols given" "$LINENO" 5 fi +## It's an error to try to disable deprecated public API symbols while +## choosing an older version of the public API as the default. However, +## if the user insists on doing this via the --enable-unsupported configure +## flag, we'll let them. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${DEFAULT_API_VERSION}" != "Xv110" -a "X${DEPRECATED_SYMBOLS}" = "Xno" ; then as_fn_error $? "Removing old public API symbols not allowed when using them as default public API symbols. Use --enable-unsupported to override this error." "$LINENO" 5 fi fi +## ---------------------------------------------------------------------- +## Enable strict file format checks +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking Whether to perform strict file format checks" >&5 $as_echo_n "checking Whether to perform strict file format checks... " >&6; }; @@ -30055,6 +30898,7 @@ if test "${enable_strict_format_checks+set}" = set; then : fi +## Default to yes if debug is enabled if test "X-$STRICT_CHECKS" = X- ; then if test -z "$DEBUG_PKG" ; then STRICT_CHECKS=no @@ -30080,6 +30924,9 @@ $as_echo "no" >&6; } esac +## ---------------------------------------------------------------------- +## Enable embedded library information +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking Whether to have library information embedded in the executables" >&5 $as_echo_n "checking Whether to have library information embedded in the executables... " >&6; } # Check whether --enable-embedded-libinfo was given. @@ -30102,6 +30949,9 @@ $as_echo "no" >&6; } fi +## ---------------------------------------------------------------------- +## Check if pointer alignments are enforced +## { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alignment restrictions are strictly enforced" >&5 $as_echo_n "checking if alignment restrictions are strictly enforced... " >&6; } if test "$cross_compiling" = yes; then : @@ -30183,6 +31033,8 @@ fi +## ---------------------------------------------------------------------- +## Restore user's CFLAGS. CFLAGS="$saved_user_CFLAGS" FCFLAGS="$saved_user_FCFLAGS" CXXFLAGS="$saved_user_CXXFLAGS" @@ -30190,6 +31042,9 @@ CPPFLAGS="$saved_user_CPPFLAGS" LDFLAGS="$saved_user_LDFLAGS" +## ---------------------------------------------------------------------- +## Create automake conditionals to tell automake makefiles which directories +## need to be compiled if test "X$HDF_CXX" = "Xyes"; then BUILD_CXX_CONDITIONAL_TRUE= @@ -30225,26 +31080,37 @@ fi +## ---------------------------------------------------------------------- +## Build the Makefiles. +## +## The directory search list SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH +## We don't need to say when we're entering directories if we're using +## GNU make because make does it for us. if test "X$GMAKE" = "Xyes"; then SETX=":" else SETX="set -x" fi +## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod +## Build config.status, touch the stamp files, and build all the Makefiles. +## The order is such that the first `make' does not need to update any +## configuration information. See config/commence.in for the order in which +## things need to be done. -# First the stamp1 file for H5config.h.in +## First the stamp1 file for H5config.h.in mkdir ./config >/dev/null 2>&1 touch ./config/stamp1 -# Then the config.status file (but not makefiles) +## Then the config.status file (but not makefiles) saved_no_create=$no_create no_create=yes @@ -30849,7 +31715,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.128, which was +This file was extended by HDF5 $as_me 1.9.132, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -30915,7 +31781,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.128 +HDF5 config.status 1.9.132 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -31034,7 +31900,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # - AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" @@ -31509,7 +32374,7 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "src/H5config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/H5config.h" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "pubconf") CONFIG_COMMANDS="$CONFIG_COMMANDS pubconf" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "src/libhdf5.settings") CONFIG_FILES="$CONFIG_FILES src/libhdf5.settings" ;; @@ -32182,7 +33047,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in - "default-1":C) + "pubconf":C) echo "creating src/H5pubconf.h" sed 's/#define /#define H5_/' pubconf @@ -33689,7 +34554,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.128 +HDF5 config.lt 1.9.132 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -35163,15 +36028,16 @@ $lt_cl_success || as_fn_exit 1 no_create=$saved_no_create -# Then the stamp2 file for H5config.h +## Then the stamp2 file for H5config.h touch ./config/stamp2 -# Finally the makefiles +## Finally the makefiles test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 +## Post processing to patch up some deficiencies in libtool case $host_os in linux* | freebsd* ) - # If gcc is not used, need to set $wl to use "-Wl," + ## If gcc is not used, need to set $wl to use "-Wl," if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then : using gcc else @@ -35185,6 +36051,12 @@ EOF ;; esac +## Are we compiling static libraries, shared libraries, or both? This +## is only used for the libhdf5.settings file. We can't just look at +## $enable_static and $enable_shared because if they're yes the ltconfig +## might have decided that one or the other is simply not possible. +## Therefore we have to ask the generated `libtool' shell script +## which 'features' it has enabled. if (./libtool --features | grep '^enable shared libraries' > /dev/null); then enable_shared=yes else @@ -35217,6 +36089,9 @@ if test "X$HDF_CXX" = "Xyes"; then chmod 755 c++/src/h5c++ fi +## We don't want inline defined for C++ compilers +## Don't worry about the C++ ifdef wrappers in the H5pubconf file, since +## 'H5_inline' isn't a C++ keyword. cat >> src/H5config.h <> src/H5config.h <pubconf @@ -76,10 +81,10 @@ AC_OUTPUT_COMMANDS([ rm -f libhdf5.settings.TMP ]) -dnl It's possible to configure for a host other than the one on which -dnl configure is currently running by using the --host=foo flag. -dnl For machines on which HDF5 is often configured, it can be convenient -dnl to specify the name of the machine rather than its canonical type. +## It's possible to configure for a host other than the one on which +## configure is currently running by using the --host=foo flag. +## For machines on which HDF5 is often configured, it can be convenient +## to specify the name of the machine rather than its canonical type. case $host_alias in redstorm) host_alias=x86_64-redstorm-linux-gnu @@ -89,23 +94,23 @@ esac AC_CANONICAL_HOST AC_SUBST([CPPFLAGS]) -dnl H5_CFLAGS (and company) are for CFLAGS that should be used on HDF5, but -dnl not exported to h5cc (or h5fc, etc.) +## H5_CFLAGS (and company) are for CFLAGS that should be used on HDF5, but +## not exported to h5cc (or h5fc, etc.) AC_SUBST([H5_CFLAGS]) AC_SUBST([H5_CPPFLAGS]) AC_SUBST([H5_FCFLAGS]) AC_SUBST([H5_CXXFLAGS]) AC_SUBST([H5_LDFLAGS]) -dnl AM_CFLAGS (and company) are for CFLAGS that should be used on HDF5, -dnl and WILL be exported to h5cc (or h5fc, etc) if set by configure. +## AM_CFLAGS (and company) are for CFLAGS that should be used on HDF5, +## and WILL be exported to h5cc (or h5fc, etc) if set by configure. AC_SUBST([AM_CFLAGS]) AC_SUBST([AM_FCFLAGS]) AC_SUBST([AM_CXXFLAGS]) AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_LDFLAGS]) -dnl Make sure flags are set to something (otherwise macros may set them later). +## Make sure flags are set to something (otherwise macros may set them later). AM_CFLAGS="${AM_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS}" AM_FCFLAGS="${AM_FCFLAGS}" @@ -117,94 +122,89 @@ FCFLAGS="${FCFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" -dnl Configure may need to alter any of the *FLAGS variables in order for -dnl various checks to work correctly. Save the user's value here so it -dnl can be restored once all configure checks are complete. +## Configure may need to alter any of the *FLAGS variables in order for +## various checks to work correctly. Save the user's value here so it +## can be restored once all configure checks are complete. saved_user_CFLAGS="$CFLAGS" saved_user_CXXFLAGS="$CXXFLAGS" saved_user_FCFLAGS="$FCFLAGS" saved_user_LDFLAGS="$LDFLAGS" saved_user_CPPFLAGS="$CPPFLAGS" -dnl Different compilers may need default libraries. They are specified in -dnl the config/* files, so we put this statement here so that it'll be -dnl set by the code which follows... -dnl +## Different compilers may need default libraries. They are specified in +## the config/* files, so we put this statement here so that it'll be +## set by the code which follows... +## DEFAULT_LIBS="" -dnl Support F9X variable to define Fortran compiler if FC variable is -dnl not used. This should be deprecated in the future. +## Support F9X variable to define Fortran compiler if FC variable is +## not used. This should be deprecated in the future. if test "x" = "x$FC"; then FC=${F9X} fi -dnl ---------------------------------------------------------------------- -dnl Set prefix default (install directory) to a directory in the build area. -dnl This allows multiple src-dir builds within one host. -AC_PREFIX_DEFAULT([`pwd`/hdf5]) - -dnl ---------------------------------------------------------------------- -dnl Dump all shell variables values. -dnl +## ---------------------------------------------------------------------- +## Dump all shell variables values. +## AC_MSG_CHECKING([shell variables initial values]) set >&AS_MESSAGE_LOG_FD AC_MSG_RESULT([done]) -dnl Define all symbol variables used for configure summary. -dnl EXTERNAL_FILTERS equals all external filters. Default none. -dnl MPE: whether MPE option is enabled. Default no. -dnl STATIC_EXEC: whether static-exec is enabled. Default no. -dnl HDF_FORTRAN: whether Fortran is enabled. Default no. -dnl HDF_FORTRAN2003: whether Fortran 2003 is enabled. Default no. -dnl FC: Fortran compiler. -dnl HDF_CXX: whether C++ is enabled. Default no. -dnl CXX: C++ compiler. -dnl HDF5_HL: whether high-level library is enabled. Default is yes. -dnl GPFS: whether gpfs is enabled. Default no. -dnl LARGEFILE: whether largefile support is enabled. Default yes. -dnl INSTRUMENT: whether INSTRUMENT is enabled. No default set here. -dnl CODESTACK: whether CODESTACK is enabled. Default no. -dnl HAVE_DMALLOC: whether system has dmalloc support. Default no. -dnl DIRECT_VFD: whether DIRECT_VFD is enabled. Default no. -dnl THREADSAFE: whether THREADSAFE is enabled. Default no. -dnl STATIC_SHARED: whether static and/or shared libraries are requested. -dnl enable_shared: whether shared lib is enabled. -dnl enable_static: whether static lib is enabled. -dnl UNAME_INFO: System information. - -AC_SUBST(EXTERNAL_FILTERS) -AC_SUBST(MPE) MPE=no -AC_SUBST(STATIC_EXEC) STATIC_EXEC=no -AC_SUBST(HDF_FORTRAN) HDF_FORTRAN=no -AC_SUBST(HDF_FORTRAN2003) HDF_FORTRAN2003=no -AC_SUBST(FC) HDF_FORTRAN=no -AC_SUBST(FC2003) HDF_FORTRAN2003=no -AC_SUBST(HDF_CXX) HDF_CXX=no -AC_SUBST(CXX) HDF_CXX=no -AC_SUBST(HDF5_HL) HDF5_HL=yes -AC_SUBST(GPFS) GPFS=no -AC_SUBST(LARGEFILE) LARGEFILE=yes -AC_SUBST(INSTRUMENT) -AC_SUBST(CODESTACK) CODESTACK=no -AC_SUBST(HAVE_DMALLOC) HAVE_DMALLOC=no -AC_SUBST(DIRECT_VFD) DIRECT_VFD=no -AC_SUBST(THREADSAFE) THREADSAFE=no -AC_SUBST(STATIC_SHARED) -AC_SUBST(enable_shared) -AC_SUBST(enable_static) -AC_SUBST(UNAME_INFO) UNAME_INFO=`uname -a` - -dnl ---------------------------------------------------------------------- -dnl Some platforms have broken basename, and/or xargs programs. Check -dnl that it actually does what it's supposed to do. Catch this early -dnl since configure relies upon them heavily and there's no use continuing -dnl if it's broken. -dnl - -dnl Avoid depending upon Character Ranges. -dnl These are defined by autoconf. -dnl as_cr_letters='abcdefghijklmnopqrstuvwxyz' -dnl as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +## Define all symbol variables used for configure summary. +## EXTERNAL_FILTERS equals all external filters. Default none. +## MPE: whether MPE option is enabled. Default no. +## STATIC_EXEC: whether static-exec is enabled. Default no. +## HDF_FORTRAN: whether Fortran is enabled. Default no. +## HDF_FORTRAN2003: whether Fortran 2003 is enabled. Default no. +## FC: Fortran compiler. +## HDF_CXX: whether C++ is enabled. Default no. +## CXX: C++ compiler. +## HDF5_HL: whether high-level library is enabled. Default is yes. +## GPFS: whether gpfs is enabled. Default no. +## LARGEFILE: whether largefile support is enabled. Default yes. +## INSTRUMENT: whether INSTRUMENT is enabled. No default set here. +## CODESTACK: whether CODESTACK is enabled. Default no. +## HAVE_DMALLOC: whether system has dmalloc support. Default no. +## DIRECT_VFD: whether DIRECT_VFD is enabled. Default no. +## THREADSAFE: whether THREADSAFE is enabled. Default no. +## STATIC_SHARED: whether static and/or shared libraries are requested. +## enable_shared: whether shared lib is enabled. +## enable_static: whether static lib is enabled. +## UNAME_INFO: System information. + +AC_SUBST([EXTERNAL_FILTERS]) +AC_SUBST([MPE]) MPE=no +AC_SUBST([STATIC_EXEC]) STATIC_EXEC=no +AC_SUBST([HDF_FORTRAN]) HDF_FORTRAN=no +AC_SUBST([HDF_FORTRAN2003]) HDF_FORTRAN2003=no +AC_SUBST([FC]) HDF_FORTRAN=no +AC_SUBST([FC2003]) HDF_FORTRAN2003=no +AC_SUBST([HDF_CXX]) HDF_CXX=no +AC_SUBST([CXX]) HDF_CXX=no +AC_SUBST([HDF5_HL]) HDF5_HL=yes +AC_SUBST([GPFS]) GPFS=no +AC_SUBST([LARGEFILE]) LARGEFILE=yes +AC_SUBST([INSTRUMENT]) +AC_SUBST([CODESTACK]) CODESTACK=no +AC_SUBST([HAVE_DMALLOC]) HAVE_DMALLOC=no +AC_SUBST([DIRECT_VFD]) DIRECT_VFD=no +AC_SUBST([THREADSAFE]) THREADSAFE=no +AC_SUBST([STATIC_SHARED]) +AC_SUBST([enable_shared]) +AC_SUBST([enable_static]) +AC_SUBST([UNAME_INFO]) UNAME_INFO=`uname -a` + +## ---------------------------------------------------------------------- +## Some platforms have broken basename, and/or xargs programs. Check +## that it actually does what it's supposed to do. Catch this early +## since configure relies upon them heavily and there's no use continuing +## if it's broken. +## + +## Avoid depending upon Character Ranges. +## These are defined by autoconf. +## as_cr_letters='abcdefghijklmnopqrstuvwxyz' +## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' AC_MSG_CHECKING([if basename works]) BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`" @@ -222,35 +222,35 @@ else AC_MSG_RESULT([yes]) fi -dnl ---------------------------------------------------------------------- -dnl Check that the cache file was build on the same host as what we're -dnl running on now. -dnl +## ---------------------------------------------------------------------- +## Check that the cache file was build on the same host as what we're +## running on now. +## AC_CACHE_CHECK([for cached host], [hdf5_cv_host], [hdf5_cv_host="none"]); if test $hdf5_cv_host = "none"; then hdf5_cv_host=$host elif test $hdf5_cv_host != $host; then echo "The config.cache file was generated on $hdf5_cv_host but" echo "this is $host. Please remove that file and try again." - AC_MSG_ERROR(config.cache file is invalid) + AC_MSG_ERROR([config.cache file is invalid]) fi -dnl ---------------------------------------------------------------------- -dnl Source any special files that we need. These files normally aren't -dnl present but can be used by the maintainers to fine tune things like -dnl turning on debug or profiling flags for the compiler. The search order -dnl is: -dnl -dnl CPU-VENDOR-OS -dnl VENDOR-OS -dnl CPU-OS -dnl CPU-VENDOR -dnl OS -dnl VENDOR -dnl CPU -dnl -dnl If the `OS' ends with a version number then remove it. For instance, -dnl `freebsd3.1' would become `freebsd' +## ---------------------------------------------------------------------- +## Source any special files that we need. These files normally aren't +## present but can be used by the maintainers to fine tune things like +## turning on debug or profiling flags for the compiler. The search order +## is: +## +## CPU-VENDOR-OS +## VENDOR-OS +## CPU-OS +## CPU-VENDOR +## OS +## VENDOR +## CPU +## +## If the `OS' ends with a version number then remove it. For instance, +## `freebsd3.1' would become `freebsd' case $host_os in aix*) @@ -304,7 +304,7 @@ if test "X$host_config" != "Xnone"; then . $host_config fi -dnl Source any special site-specific file +## Source any special site-specific file hname="`hostname`" while test -n "$hname"; do file=$srcdir/config/site-specific/host-$hname @@ -320,39 +320,39 @@ while test -n "$hname"; do test "$hname_tmp" = "$hname" && break done -dnl ---------------------------------------------------------------------- -dnl Some built-in configure checks can only see CFLAGS (not AM_CFLAGS), so -dnl we need to add this in so configure works as intended. We will need to -dnl reset this value at the end of configure, to preserve the user's settings. +## ---------------------------------------------------------------------- +## Some built-in configure checks can only see CFLAGS (not AM_CFLAGS), so +## we need to add this in so configure works as intended. We will need to +## reset this value at the end of configure, to preserve the user's settings. CFLAGS="${AM_CFLAGS} ${CFLAGS}" FCFLAGS="${AM_FCFLAGS} ${FCFLAGS}" CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}" CPPFLAGS="${AM_CPPFLAGS} ${CPPFLAGS}" LDFLAGS="${AM_LDFLAGS} ${LDFLAGS}" -dnl ---------------------------------------------------------------------- -dnl Enable dependency tracking unless the configure options or a -dnl site-specific file told us not to. This prevents configure from -dnl silently disabling dependencies for some compilers. -dnl +## ---------------------------------------------------------------------- +## Enable dependency tracking unless the configure options or a +## site-specific file told us not to. This prevents configure from +## silently disabling dependencies for some compilers. +## if test -z "${enable_dependency_tracking}"; then enable_dependency_tracking="yes" fi -dnl ---------------------------------------------------------------------- -dnl Check for programs. -dnl +## ---------------------------------------------------------------------- +## Check for programs. +## AC_PROG_CC CC_BASENAME="`echo $CC | cut -f1 -d' ' | xargs basename 2>/dev/null`" -dnl ---------------------------------------------------------------------------- -dnl Configure disallows unsupported combinations of options. However, users -dnl may want to override and build with unsupported combinations for their -dnl own use. They can use the --enable-unsupported configure flag, which -dnl ignores any errors from configure due to incompatible flags. +## ---------------------------------------------------------------------------- +## Configure disallows unsupported combinations of options. However, users +## may want to override and build with unsupported combinations for their +## own use. They can use the --enable-unsupported configure flag, which +## ignores any errors from configure due to incompatible flags. AC_MSG_CHECKING([if unsupported combinations of configure options are allowed]) AC_ARG_ENABLE([unsupported], - [AC_HELP_STRING([--enable-unsupported], + [AS_HELP_STRING([--enable-unsupported], [Allow unsupported combinations of configure options])], [ALLOW_UNSUPPORTED=$enableval]) @@ -367,13 +367,13 @@ case "X-$ALLOW_UNSUPPORTED" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Check if they would like the Fortran interface compiled -dnl +## ---------------------------------------------------------------------- +## Check if they would like the Fortran interface compiled +## AC_SUBST([HDF5_INTERFACES]) HDF5_INTERFACES="" AC_MSG_CHECKING([if Fortran interface enabled]) AC_ARG_ENABLE([fortran], - [AC_HELP_STRING([--enable-fortran], + [AS_HELP_STRING([--enable-fortran], [Compile the Fortran 77/90/95 interface [default=no]])], [HDF_FORTRAN=$enableval]) @@ -384,18 +384,18 @@ else fi -dnl ---------------------------------------------------------------------- -dnl Check if they would like the Fortran 2003 interface compiled -dnl +## ---------------------------------------------------------------------- +## Check if they would like the Fortran 2003 interface compiled +## AC_MSG_CHECKING([if Fortran 2003 interface enabled]) AC_ARG_ENABLE([fortran2003], - [AC_HELP_STRING([--enable-fortran2003], + [AS_HELP_STRING([--enable-fortran2003], [Compile the Fortran 2003 interface, must also specify --enable-fortran [default=no]])], [HDF_FORTRAN2003=$enableval]) -dnl ---------------------------------------------------------------------- -dnl Check to make sure --enable-fortran is present if --enable-fortran2003 -dnl was specified +## ---------------------------------------------------------------------- +## Check to make sure --enable-fortran is present if --enable-fortran2003 +## was specified if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then echo "no" @@ -409,20 +409,20 @@ FORTRAN_DEFAULT_REALisDBLE="no" if test "X$HDF_FORTRAN" = "Xyes"; then - AC_SUBST(FC) HDF_FORTRAN=yes + AC_SUBST([FC]) HDF_FORTRAN=yes AC_SUBST([HAVE_FORTRAN_2003]) HDF5_INTERFACES="$HDF5_INTERFACES fortran" - dnl -------------------------------------------------------------------- - dnl Default for FORTRAN 2003 compliant compilers - dnl + ## -------------------------------------------------------------------- + ## Default for FORTRAN 2003 compliant compilers + ## HAVE_FORTRAN_2003="no" HAVE_F2003_REQUIREMENTS="no" - dnl -------------------------------------------------------------------- - dnl HDF5 integer variables for the H5fortran_types.f90 file. - dnl + ## -------------------------------------------------------------------- + ## HDF5 integer variables for the H5fortran_types.f90 file. + ## AC_SUBST([R_LARGE]) AC_SUBST([R_INTEGER]) AC_SUBST([HADDR_T]) @@ -432,42 +432,42 @@ if test "X$HDF_FORTRAN" = "Xyes"; then AC_SUBST([SIZE_T]) AC_SUBST([OBJECT_NAMELEN_DEFAULT_F]) - dnl -------------------------------------------------------------------- - dnl General Fortran flags - dnl + ## -------------------------------------------------------------------- + ## General Fortran flags + ## AM_FCFLAGS="${AM_FCFLAGS} ${FFLAGS}" FCFLAGS="${FCFLAGS} ${FFLAGS}" - dnl -------------------------------------------------------------------- - dnl Fortran source extention - dnl + ## -------------------------------------------------------------------- + ## Fortran source extention + ## AC_FC_SRCEXT([f90]) AC_SUBST([F9XSUFFIXFLAG]) AC_SUBST([FSEARCH_DIRS]) - dnl -------------------------------------------------------------------- - dnl Check for a Fortran 9X compiler and how to include modules. - dnl + ## -------------------------------------------------------------------- + ## Check for a Fortran 9X compiler and how to include modules. + ## AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],) AC_F9X_MODS - dnl It seems that libtool (as of Libtool 1.5.14) is trying to - dnl configure itself for Fortran 77. - dnl Tell it that our F77 compiler is $FC (actually a F9X compiler) + ## It seems that libtool (as of Libtool 1.5.14) is trying to + ## configure itself for Fortran 77. + ## Tell it that our F77 compiler is $FC (actually a F9X compiler) F77=$FC - dnl Change to the Fortran 90 language + ## Change to the Fortran 90 language AC_LANG_PUSH(Fortran) - dnl -------------------------------------------------------------------- - dnl Define wrappers for the C compiler to use Fortran function names - dnl + ## -------------------------------------------------------------------- + ## Define wrappers for the C compiler to use Fortran function names + ## AC_FC_WRAPPERS - dnl -------------------------------------------------------------------- - dnl See if the compiler will support the "-I." option - dnl + ## -------------------------------------------------------------------- + ## See if the compiler will support the "-I." option + ## dnl AM_FCFLAGS_saved=$AM_FCFLAGS dnl AM_FCFLAGS="${AM_FCFLAGS} -I." @@ -479,20 +479,20 @@ if test "X$HDF_FORTRAN" = "Xyes"; then dnl AC_MSG_RESULT(no) dnl AM_FCFLAGS="$AM_FCFLAGS_saved") - dnl -------------------------------------------------------------------- - dnl See if the fortran compiler supports the intrinsic function "SIZEOF" + ## -------------------------------------------------------------------- + ## See if the fortran compiler supports the intrinsic function "SIZEOF" AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF]) AC_TRY_RUN([ PROGRAM main i = sizeof(x) END PROGRAM - ], [AC_MSG_RESULT(yes) + ], [AC_MSG_RESULT([yes]) HAVE_SIZEOF="yes"], - AC_MSG_RESULT(no)) + [AC_MSG_RESULT([no])]) - dnl Check to see if -r8 was specified to determine if we need to - dnl compile the DOUBLE PRECISION interfaces. + ## Check to see if -r8 was specified to determine if we need to + ## compile the DOUBLE PRECISION interfaces. AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION]) @@ -518,14 +518,14 @@ if test "X$HDF_FORTRAN" = "Xyes"; then CALL h5t(d) END PROGRAM main ], - AC_MSG_RESULT(no), - [AC_MSG_RESULT(yes) - FORTRAN_DEFAULT_REALisDBLE="yes"]) + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes]) + FORTRAN_DEFAULT_REALisDBLE="yes"]) if test "X$HDF_FORTRAN2003" = "Xyes"; then - dnl Checking if the compiler supports the required Fortran 2003 features and - dnl disable Fortran 2003 if it does not. + ## Checking if the compiler supports the required Fortran 2003 features and + ## disable Fortran 2003 if it does not. AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF]) HAVE_FORTRAN_2003="no" @@ -541,43 +541,41 @@ if test "X$HDF_FORTRAN" = "Xyes"; then ptr = C_LOC(ichr(1:1)) ])], - [AC_MSG_RESULT(yes) - HAVE_F2003_REQUIREMENTS=[yes]], - [AC_MSG_RESULT(no)]) - + [AC_MSG_RESULT([yes]) + HAVE_F2003_REQUIREMENTS=[yes]], + [AC_MSG_RESULT([no])]) if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - dnl echo $HAVE_FORTRAN_2003 + ## echo $HAVE_FORTRAN_2003 AC_MSG_ERROR([Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003]) else + ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" - dnl echo $HAVE_FORTRAN_2003 fi - fi else FC="no" fi -dnl Change back to the C language +## Change back to the C language AC_LANG_POP(Fortran) AM_CONDITIONAL([FORTRAN_HAVE_SIZEOF], [test "X$HAVE_SIZEOF" = "Xyes"]) AM_CONDITIONAL([FORTRAN_2003_CONDITIONAL_F], [test "X$HAVE_FORTRAN_2003" = "Xyes"]) AM_CONDITIONAL([FORTRAN_DEFAULT_REALisDBLE_F], [test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"]) -dnl ---------------------------------------------------------------------- -dnl Check if they would like the C++ interface compiled -dnl -dnl We need to check for a C++ compiler unconditionally, since -dnl AC_PROG_CXX defines some macros that Automake 1.9.x uses and will -dnl miss even if c++ is not enabled. +## ---------------------------------------------------------------------- +## Check if they would like the C++ interface compiled +## +## We need to check for a C++ compiler unconditionally, since +## AC_PROG_CXX defines some macros that Automake 1.9.x uses and will +## miss even if c++ is not enabled. AC_PROG_CXX - AC_PROG_CXXCPP dnl this is checked for when AC_HEADER_STDC is done + AC_PROG_CXXCPP ## this is checked for when AC_HEADER_STDC is done AC_MSG_CHECKING([if c++ interface enabled]) AC_ARG_ENABLE([cxx], - [AC_HELP_STRING([--enable-cxx], + [AS_HELP_STRING([--enable-cxx], [Compile the C++ interface [default=no]])], [HDF_CXX=$enableval]) @@ -585,7 +583,7 @@ if test "X$HDF_CXX" = "Xyes"; then echo "yes" HDF5_INTERFACES="$HDF5_INTERFACES c++" - dnl Change to the C++ language + ## Change to the C++ language AC_LANG_PUSH(C++) AC_MSG_CHECKING([if $CXX needs old style header files in includes]) @@ -694,41 +692,41 @@ else CXX="no" fi -dnl Change back to the C language +## Change back to the C language AC_LANG_POP(C++) -dnl ---------------------------------------------------------------------- -dnl Check if they have Perl installed on their system. We only need Perl -dnl if they're using a GNU compiler. -dnl +## ---------------------------------------------------------------------- +## Check if they have Perl installed on their system. We only need Perl +## if they're using a GNU compiler. +## AC_SUBST([PERL]) PERL="" if test "X$GCC" = "Xyes"; then AC_CHECK_PROGS([PERL], [perl],, [$PATH]) fi -dnl ---------------------------------------------------------------------- -dnl Check which archiving tool to use. This needs to be done before -dnl the AM_PROG_LIBTOOL macro. -dnl +## ---------------------------------------------------------------------- +## Check which archiving tool to use. This needs to be done before +## the AM_PROG_LIBTOOL macro. +## if test -z "$AR"; then AC_CHECK_PROGS([AR], [ar xar], [:], [$PATH]) fi AC_SUBST([AR]) -dnl Export the AR macro so that it will be placed in the libtool file -dnl correctly. +## Export the AR macro so that it will be placed in the libtool file +## correctly. export AR AC_PROG_MAKE_SET AC_PROG_INSTALL -dnl ---------------------------------------------------------------------- -dnl Check that the tr utility is working properly. +## ---------------------------------------------------------------------- +## Check that the tr utility is working properly. -AC_PATH_PROG(TR, tr) +AC_PATH_PROG([TR], [tr]) TR_TEST=`echo Test | ${TR} ${as_cr_letters}"," ${as_cr_LETTERS}" "` if test "X${TR_TEST}" != "XTEST"; then @@ -736,10 +734,10 @@ if test "X${TR_TEST}" != "XTEST"; then fi -dnl ---------------------------------------------------------------------- -dnl Check that time can be used with srcdir. This is okay on most systems, -dnl but seems to cause problems on Cygwin. -dnl The solution on Cygwin is not to record execution time for tests. +## ---------------------------------------------------------------------- +## Check that time can be used with srcdir. This is okay on most systems, +## but seems to cause problems on Cygwin. +## The solution on Cygwin is not to record execution time for tests. AC_MSG_CHECKING([if srcdir= and time commands work together]) AC_SUBST([TIME]) @@ -754,62 +752,62 @@ else fi -dnl The following variables are used to distinguish between building a -dnl serial and parallel library. -dnl -dnl HAVE_PARALLEL -- defined in H5config.h if we are building -dnl a parallel library even if configure wasn't -dnl able to find some header file or library that -dnl might be required. This is defined if the -dnl compiler looks like a parallel compiler (e.g., -dnl mpicc or mpcc) or if the user explicitly states -dnl that a parallel library is being built by supplying -dnl the `--enable-parallel' configure switch. -dnl -dnl PARALLEL -- This variable is set to a non-null value if -dnl configure thinks we're compiling a parallel -dnl version of the library. -dnl -dnl RUNSERIAL -- This is a command which will be prepended to -dnl the executable name to run the executable using -dnl a single process. For serial versions of the -dnl library this will normally be empty. For parallel -dnl versions it might be something like `mpiexec -n 1'. -dnl The value of this variable is substituted in *.in -dnl files. -dnl -dnl RUNPARALLEL -- This is a command which will be prepended to -dnl the executable name to run the executable on -dnl multiple processors. For the serial library the -dnl value will normally be the empty string. For -dnl parallel library it should be something like -dnl "mpiexec -n \$\${NPROCS:=6}" where NPROCS will -dnl eventually contain the number of processors on which -dnl to run the executable (the double dollarsigns are to -dnl protect the expansion until make executes the -dnl command). The value of this variable is -dnl substituted in *.in files. -dnl +## The following variables are used to distinguish between building a +## serial and parallel library. +## +## HAVE_PARALLEL -- defined in H5config.h if we are building +## a parallel library even if configure wasn't +## able to find some header file or library that +## might be required. This is defined if the +## compiler looks like a parallel compiler (e.g., +## mpicc or mpcc) or if the user explicitly states +## that a parallel library is being built by supplying +## the `--enable-parallel' configure switch. +## +## PARALLEL -- This variable is set to a non-null value if +## configure thinks we're compiling a parallel +## version of the library. +## +## RUNSERIAL -- This is a command which will be prepended to +## the executable name to run the executable using +## a single process. For serial versions of the +## library this will normally be empty. For parallel +## versions it might be something like `mpiexec -n 1'. +## The value of this variable is substituted in *.in +## files. +## +## RUNPARALLEL -- This is a command which will be prepended to +## the executable name to run the executable on +## multiple processors. For the serial library the +## value will normally be the empty string. For +## parallel library it should be something like +## "mpiexec -n \$\${NPROCS:=6}" where NPROCS will +## eventually contain the number of processors on which +## to run the executable (the double dollarsigns are to +## protect the expansion until make executes the +## command). The value of this variable is +## substituted in *.in files. +## AC_SUBST([PARALLEL]) AC_SUBST([RUNSERIAL]) AC_SUBST([RUNPARALLEL]) AC_SUBST([TESTPARALLEL]) -dnl ---------------------------------------------------------------------- -dnl If the compiler is obviously a parallel compiler then we're building -dnl a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore, -dnl the name of the compiler might tell us how to run the resulting -dnl executable. For `mpicc' the executable should be run with `mpiexec' from -dnl the same directory as mpicc if it exists. -dnl +## ---------------------------------------------------------------------- +## If the compiler is obviously a parallel compiler then we're building +## a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore, +## the name of the compiler might tell us how to run the resulting +## executable. For `mpicc' the executable should be run with `mpiexec' from +## the same directory as mpicc if it exists. +## case "$CC_BASENAME" in mpicc) - dnl The mpich compiler. Use mpiexec from the same directory if it - dnl exists. + ## The mpich compiler. Use mpiexec from the same directory if it + ## exists. PARALLEL=mpicc AC_MSG_CHECKING([for mpiexec]) - dnl Find the path where mpicc is located. + ## Find the path where mpicc is located. cmd="`echo $CC | cut -f1 -d' '`" if (echo $cmd | grep / >/dev/null); then path="`echo $cmd | sed 's/\(.*\)\/.*$/\1/'`" @@ -821,7 +819,7 @@ case "$CC_BASENAME" in done fi - dnl Is there an mpiexec at that path? + ## Is there an mpiexec at that path? if test -x $path/mpiexec; then AC_MSG_RESULT([$path/mpiexec]) RUNSERIAL="${RUNSERIAL:-none}" @@ -835,36 +833,36 @@ case "$CC_BASENAME" in ;; mpcc|mpcc_r) - dnl The IBM compiler + ## The IBM compiler PARALLEL="$CC_BASENAME" ;; *) - dnl Probably not a parallel compiler, but if `--enable-parallel' - dnl is defined below then we're still building a parallel hdf5. + ## Probably not a parallel compiler, but if `--enable-parallel' + ## is defined below then we're still building a parallel hdf5. ;; esac -dnl ---------------------------------------------------------------------- -dnl If the Fortran compiler is obviously a parallel compiler then we're -dnl building a parallel version of hdf5 and should define HAVE_PARALLEL. -dnl Furthermore, the name of the compiler might tell us how to run the -dnl resulting executable. For `mpif90' the executable should be run with -dnl `mpiexec' from the same directory as mpif90 if it exists. -dnl +## ---------------------------------------------------------------------- +## If the Fortran compiler is obviously a parallel compiler then we're +## building a parallel version of hdf5 and should define HAVE_PARALLEL. +## Furthermore, the name of the compiler might tell us how to run the +## resulting executable. For `mpif90' the executable should be run with +## `mpiexec' from the same directory as mpif90 if it exists. +## if test "X$HDF_FORTRAN" = "Xyes" ; then - dnl Change to the Fortran 90 language + ## Change to the Fortran 90 language AC_LANG_PUSH(Fortran) case "$FC" in *mpif90*) - dnl The Fortran mpich compiler. Use mpiexec from the same directory - dnl if it exists. + ## The Fortran mpich compiler. Use mpiexec from the same directory + ## if it exists. PARALLEL=mpif90 AC_MSG_CHECKING([for mpiexec]) - dnl Find the path where mpif90 is located. + ## Find the path where mpif90 is located. cmd=`echo $FC |cut -f1 -d' '` if (echo $cmd |grep / >/dev/null); then path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`" @@ -876,7 +874,7 @@ if test "X$HDF_FORTRAN" = "Xyes" ; then done fi - dnl Is there an mpiexec at that path? + ## Is there an mpiexec at that path? if test -x $path/mpiexec; then AC_MSG_RESULT([$path/mpiexec]) RUNSERIAL="${RUNSERIAL:-none}" @@ -890,23 +888,23 @@ if test "X$HDF_FORTRAN" = "Xyes" ; then ;; *mpxlf* | *mpxlf_r* | *mpxlf90* | *mpxlf90_r* | *mpxlf95* | *mpxlf95_r*) - dnl The IBM compiler + ## The IBM compiler PARALLEL="$FC" ;; *) - dnl Probably not a parallel compiler, but if `--enable-parallel' - dnl is defined below then we're still building a parallel hdf5. + ## Probably not a parallel compiler, but if `--enable-parallel' + ## is defined below then we're still building a parallel hdf5. ;; esac - dnl Change to the C language + ## Change to the C language AC_LANG_POP(Fortran) fi -dnl ----------------------------------------------------------------------------- -dnl If shared libraries are being used with parallel, disable them, unless the -dnl user explicity enables them via the '--enable-shared' option. +## ----------------------------------------------------------------------------- +## If shared libraries are being used with parallel, disable them, unless the +## user explicity enables them via the '--enable-shared' option. if test "X${enable_shared}" = "X" -a "X${enable_parallel}" = "Xyes"; then echo ' shared libraries disabled in parallel' @@ -920,17 +918,17 @@ elif test "X${enable_shared}" = "Xyes" -a "X${PARALLEL}" != "X"; then echo ' shared libraries explicitly enabled by user' fi -dnl ---------------------------------------------------------------------- -dnl Fortran libraries are not currently supported on Mac. Disable them. -dnl (this is overridable with --enable-unsupported). -dnl +## ---------------------------------------------------------------------- +## Fortran libraries are not currently supported on Mac. Disable them. +## (this is overridable with --enable-unsupported). +## AC_SUBST([H5_FORTRAN_SHARED]) H5_FORTRAN_SHARED="no" if test "X${HDF_FORTRAN}" = "Xyes" && test "X${enable_shared}" != "Xno"; then AC_MSG_CHECKING([if shared Fortran libraries are supported]) H5_FORTRAN_SHARED="yes" - dnl Disable fortran shared libraries on Mac. (MAM - 03/30/11) + ## Disable fortran shared libraries on Mac. (MAM - 03/30/11) case "`uname`" in Darwin*) @@ -939,7 +937,7 @@ if test "X${HDF_FORTRAN}" = "Xyes" && test "X${enable_shared}" != "Xno"; then ;; esac - dnl Report results of check(s) + ## Report results of check(s) if test "X${H5_FORTRAN_SHARED}" = "Xno"; then AC_MSG_RESULT([no]) @@ -961,23 +959,23 @@ fi AM_CONDITIONAL([FORTRAN_SHARED_CONDITIONAL], [test "X$H5_FORTRAN_SHARED" = "Xyes"]) -dnl ---------------------------------------------------------------------- -dnl Disable C++ shared libraries if +DD64 flag is detected. -dnl +## ---------------------------------------------------------------------- +## Disable C++ shared libraries if +DD64 flag is detected. +## AC_SUBST([H5_CXX_SHARED]) H5_CXX_SHARED="no" if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then AC_MSG_CHECKING([if shared C++ libraries are supported]) H5_CXX_SHARED="yes" - dnl Disable C++ shared libraries if DD64 flag is being used. + ## Disable C++ shared libraries if DD64 flag is being used. if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then H5_CXX_SHARED="no" CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag." fi - dnl Report results of check(s) + ## Report results of check(s) if test "X${H5_CXX_SHARED}" = "Xno"; then AC_MSG_RESULT([no]) @@ -998,20 +996,20 @@ fi AM_CONDITIONAL([CXX_SHARED_CONDITIONAL], [test "X$H5_CXX_SHARED" = "Xyes"]) -dnl ---------------------------------------------------------------------- -dnl pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect -dnl these versions and add option "-Mx,28,0x8" to the compiler to avoid -dnl the problem if optimization is enabled. -dnl +## ---------------------------------------------------------------------- +## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem. Detect +## these versions and add option "-Mx,28,0x8" to the compiler to avoid +## the problem if optimization is enabled. +## if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then echo 'adding compiler flag to avoid optimization problem in pgcc' CC="${CC-cc} -Mx,28,0x8" fi -dnl ---------------------------------------------------------------------- -dnl Shared libraries are not currently supported under Cygwin, so configure -dnl disables them unless --enable-unsupported has been supplied by the user. +## ---------------------------------------------------------------------- +## Shared libraries are not currently supported under Cygwin, so configure +## disables them unless --enable-unsupported has been supplied by the user. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then case "`uname`" in @@ -1026,32 +1024,32 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then esac fi -dnl ---------------------------------------------------------------------- -dnl Windows won't create DLLs without the following macro. -dnl +## ---------------------------------------------------------------------- +## Windows won't create DLLs without the following macro. +## AC_LIBTOOL_WIN32_DLL -dnl ---------------------------------------------------------------------- -dnl Create libtool. If shared/static libraries are going to be enabled -dnl or disabled, it should happen before these macros. -AC_LIBTOOL_DLOPEN -AM_PROG_LIBTOOL - -dnl ---------------------------------------------------------------------- -dnl Check if we should install only statically linked executables. -dnl This check needs to occur after libtool is initialized because -dnl we check a libtool cache value and may issue a warning based -dnl on its result. +## ---------------------------------------------------------------------- +## Create libtool. If shared/static libraries are going to be enabled +## or disabled, it should happen before these macros. +LT_PREREQ([2.2]) +LT_INIT([dlopen]) + +## ---------------------------------------------------------------------- +## Check if we should install only statically linked executables. +## This check needs to occur after libtool is initialized because +## we check a libtool cache value and may issue a warning based +## on its result. AC_MSG_CHECKING([if we should install only statically linked executables]) AC_ARG_ENABLE([static_exec], - [AC_HELP_STRING([--enable-static-exec], + [AS_HELP_STRING([--enable-static-exec], [Install only statically linked executables [default=no]])], [STATIC_EXEC=$enableval]) if test "X$STATIC_EXEC" = "Xyes"; then echo "yes" - dnl Issue a warning if -static flag is not supported. + ## Issue a warning if -static flag is not supported. if test "X$lt_cv_prog_compiler_static_works" = "Xno"; then echo " warning: -static flag not supported on this system; executable won't statically link shared system libraries." fi @@ -1063,22 +1061,22 @@ fi AC_SUBST([LT_STATIC_EXEC]) -dnl Fix up the INSTALL macro if it's a relative path. We want the -dnl full-path to the binary instead. +## Fix up the INSTALL macro if it's a relative path. We want the +## full-path to the binary instead. case "$INSTALL" in *install-sh*) INSTALL='\${top_srcdir}/bin/install-sh -c' ;; esac -dnl ---------------------------------------------------------------------- -dnl Some users have reported problems with libtool's use of '-Wl,-rpath' to -dnl link shared libraries in nondefault directories. Allow users to -dnl disable embedding the rpath information in the executables and to -dnl instead solely rely on the information in LD_LIBRARY_PATH. +## ---------------------------------------------------------------------- +## Some users have reported problems with libtool's use of '-Wl,-rpath' to +## link shared libraries in nondefault directories. Allow users to +## disable embedding the rpath information in the executables and to +## instead solely rely on the information in LD_LIBRARY_PATH. AC_MSG_CHECKING([if -Wl,-rpath should be used to link shared libs in nondefault directories]) AC_ARG_ENABLE([sharedlib-rpath], - [AC_HELP_STRING([--disable-sharedlib-rpath], + [AS_HELP_STRING([--disable-sharedlib-rpath], [Disable use of the '=Wl,-rpath' linker option])], [RPATH=$enableval]) @@ -1100,14 +1098,14 @@ esac AC_MSG_CHECKING([make]) -dnl ---------------------------------------------------------------------- -dnl Sometimes makes think the `.PATH:' appearing before the first rule -dnl with an action should override the `all' default target. So we have -dnl to decide what the proper syntax is. -dnl +## ---------------------------------------------------------------------- +## Sometimes makes think the `.PATH:' appearing before the first rule +## with an action should override the `all' default target. So we have +## to decide what the proper syntax is. +## AC_MSG_CHECKING([how make searches directories]) while true; do #for break - # The most common method is `VPATH=DIR1 DIR2 ...' + ## The most common method is `VPATH=DIR1 DIR2 ...' cat >maketest <maketest <maketest < and are needed on the DEC - dnl Alpha to turn off UAC fixing. We do *not* attempt to - dnl locate these files on other systems because there are too - dnl many problems with including them. + ## The and are needed on the DEC + ## Alpha to turn off UAC fixing. We do *not* attempt to + ## locate these files on other systems because there are too + ## many problems with including them. AC_CHECK_HEADERS([sys/sysinfo.h sys/proc.h]) ;; mips*-sgi*-irix*) - dnl The is needed on the SGI machines to turn off - dnl denormalized floating-point values going to zero. We do *not* - dnl attempt to dnl locate these files on other systems because there - dnl may be problems with including them. + ## The is needed on the SGI machines to turn off + ## denormalized floating-point values going to zero. We do *not* + ## attempt to locate these files on other systems because there + ## may be problems with including them. AC_CHECK_HEADERS([sys/fpu.h]) AC_CHECK_FUNCS([get_fpc_csr]) ;; esac -dnl ---------------------------------------------------------------------- -dnl Some platforms require that all symbols are resolved when a library -dnl is linked. We can use the -no-undefined flag to tell libtool that -dnl it will be able to build shared libraries on these architectures, -dnl as it will not do so by default. -dnl +## ---------------------------------------------------------------------- +## Some platforms require that all symbols are resolved when a library +## is linked. We can use the -no-undefined flag to tell libtool that +## it will be able to build shared libraries on these architectures, +## as it will not do so by default. +## if test "X${enable_shared}" = "Xyes"; then AC_MSG_CHECKING([if libtool needs -no-undefined flag to build shared libraries]) case "`uname`" in CYGWIN*|MINGW*|AIX*) - dnl Add in the -no-undefined flag to LDFLAGS for libtool. + ## Add in the -no-undefined flag to LDFLAGS for libtool. AC_MSG_RESULT([yes]) H5_LDFLAGS="$H5_LDFLAGS -no-undefined" ;; *) - dnl Don't add in anything. + ## Don't add in anything. AC_MSG_RESULT([no]) ;; esac fi -dnl ---------------------------------------------------------------------- -dnl Test for Largefile support. -dnl +## ---------------------------------------------------------------------- +## Test for Largefile support. +## AC_MSG_CHECKING([if configure should try to set up large file support]) AC_ARG_ENABLE([largefile], - [AC_HELP_STRING([--disable-largefile], + [AS_HELP_STRING([--disable-largefile], [omit support for large files])]) -dnl If largefile support is enabled, then set up appropriate compiler options. +## If largefile support is enabled, then set up appropriate compiler options. if test "$enable_largefile" != no; then - AC_MSG_RESULT(yes) + AC_MSG_RESULT([yes]) - dnl Check for needed compiler options. This check is pulled drectly - dnl from autoconf's AC_SYS_LARGEFILE macro, as of Autoconf v2.65. + ## Check for needed compiler options. This check is pulled drectly + ## from autoconf's AC_SYS_LARGEFILE macro, as of Autoconf v2.65. AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) - AC_COMPILE_IFELSE([], [break]) - CC="$CC -n32" - AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) - break + ## IRIX 6.2 and later do not support large files by default, + ## so use the C compiler's -n32 option if that helps. + AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) + AC_COMPILE_IFELSE([], [break]) + CC="$CC -n32" + AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) + break done CC=$ac_save_CC rm -f conftest.$ac_ext @@ -1370,29 +1368,29 @@ if test "$enable_largefile" != no; then CC=$CC$ac_cv_sys_largefile_CC fi - dnl Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines - dnl that might need to be set for largefile support to behave - dnl correctly. This macro is defined in acsite.m4 and overrides - dnl the version provided by Autoconf (as of v2.65). The custom - dnl macro additionally adds the appropriate defines to AM_CPPFLAGS - dnl so that later configure checks have them visible. + ## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines + ## that might need to be set for largefile support to behave + ## correctly. This macro is defined in acsite.m4 and overrides + ## the version provided by Autoconf (as of v2.65). The custom + ## macro additionally adds the appropriate defines to AM_CPPFLAGS + ## so that later configure checks have them visible. - dnl Check for _FILE_OFFSET_BITS - _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, - ac_cv_sys_file_offset_bits, + ## Check for _FILE_OFFSET_BITS + _AC_SYS_LARGEFILE_MACRO_VALUE([_FILE_OFFSET_BITS], [64], + [ac_cv_sys_file_offset_bits], [Number of bits in a file offset, on hosts where this is settable.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) - dnl Check for _LARGE_FILES - if test $ac_cv_sys_file_offset_bits = unknown; then - _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, - ac_cv_sys_large_files, + ## Check for _LARGE_FILES + if test "$ac_cv_sys_file_offset_bits" = unknown; then + _AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1], + [ac_cv_sys_large_files], [Define for large files, on AIX-style hosts.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) fi - dnl Now actually test to see if we can create large files after we've - dnl checked for any needed defines. + ## Now actually test to see if we can create large files after we've + ## checked for any needed defines. AC_MSG_CHECKING([if large (64-bit) files are supported on this system.]) AC_CACHE_VAL([hdf5_cv_have_lfs], [AC_TRY_RUN([ @@ -1424,52 +1422,52 @@ if test "$enable_largefile" != no; then else LARGEFILE="no" - AC_MSG_RESULT(no) + AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Add necessary defines for Linux Systems. -dnl +## ---------------------------------------------------------------------- +## Add necessary defines for Linux Systems. +## case "$host_cpu-$host_vendor-$host_os" in *linux*) - dnl If largefile support is enabled, then make available various - dnl LFS-related routines using the following _LARGEFILE*_SOURCE macros. + ## If largefile support is enabled, then make available various + ## LFS-related routines using the following _LARGEFILE*_SOURCE macros. if test "X$LARGEFILE" != "Xno"; then AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" fi - dnl Add POSIX support on Linux systems, so defines - dnl __USE_POSIX, which is required to get the prototype for fdopen - dnl defined correctly in . - dnl This flag was removed from h5cc as of 2009-10-17 when it was found - dnl that the flag broke compiling netCDF-4 code with h5cc, but kept in - dnl H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen - dnl is used only by H5_debug_mask which is used only when debugging in - dnl H5_init_library (all in H5.c). When the flag was removed this was - dnl the only compile failure noted. - dnl This was originally defined as _POSIX_SOURCE which was updated to - dnl _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX - dnl functionality so clock_gettime and CLOCK_MONOTONIC are defined - dnl correctly. - dnl POSIX feature information can be found in the gcc manual at: - dnl http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + ## Add POSIX support on Linux systems, so defines + ## __USE_POSIX, which is required to get the prototype for fdopen + ## defined correctly in . + ## This flag was removed from h5cc as of 2009-10-17 when it was found + ## that the flag broke compiling netCDF-4 code with h5cc, but kept in + ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen + ## is used only by H5_debug_mask which is used only when debugging in + ## H5_init_library (all in H5.c). When the flag was removed this was + ## the only compile failure noted. + ## This was originally defined as _POSIX_SOURCE which was updated to + ## _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX + ## functionality so clock_gettime and CLOCK_MONOTONIC are defined + ## correctly. + ## POSIX feature information can be found in the gcc manual at: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" - dnl Also add BSD support on Linux systems, so defines - dnl __USE_BSD, which is required to get the prototype for strdup - dnl defined correctly in and snprintf & vsnprintf defined - dnl correctly in - dnl Linking to the bsd-compat library is required as per the gcc manual: - dnl http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html - dnl however, we do not do this since it breaks the big test on some - dnl older platforms. + ## Also add BSD support on Linux systems, so defines + ## __USE_BSD, which is required to get the prototype for strdup + ## defined correctly in and snprintf & vsnprintf defined + ## correctly in + ## Linking to the bsd-compat library is required as per the gcc manual: + ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + ## however, we do not do this since it breaks the big test on some + ## older platforms. AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" ;; esac -dnl Need to add the AM_ and H5_ into CPFLAGS/CPPFLAGS to make them visible -dnl for configure checks. -dnl Note: Both will be restored by the end of configure. +## Need to add the AM_ and H5_ into CPFLAGS/CPPFLAGS to make them visible +## for configure checks. +## Note: Both will be restored by the end of configure. CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" @@ -1477,7 +1475,7 @@ AC_TRY_COMPILE([#include ], [off64_t n = 0;], [AC_CHECK_FUNCS([lseek64 fseeko64 ftello64 ftruncate64])], [AC_MSG_RESULT([skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined])]) -AC_CHECK_FUNCS(fseeko ftello) +AC_CHECK_FUNCS([fseeko ftello]) AC_TRY_COMPILE([ #include #include ], @@ -1485,13 +1483,19 @@ AC_TRY_COMPILE([ [AC_CHECK_FUNCS([stat64 fstat64])], [AC_MSG_RESULT([skipping test for stat64() and fstat64()])]) -dnl ---------------------------------------------------------------------- -dnl Data types and their sizes. -dnl +## ---------------------------------------------------------------------- +## Data types and their sizes. +## AC_TYPE_OFF_T -AC_CHECK_TYPE([size_t], [unsigned long]) -AC_CHECK_TYPE([ssize_t], [long]) -AC_CHECK_TYPE([ptrdiff_t], [long]) +AC_CHECK_TYPE([size_t], [], + [AC_DEFINE_UNQUOTED([size_t], [unsigned long], + [Define to `unsigned long' if does not define.])]) +AC_CHECK_TYPE([ssize_t], [], + [AC_DEFINE_UNQUOTED([ssize_t], [long], + [Define to `long' if does not define.])]) +AC_CHECK_TYPE([ptrdiff_t], [], + [AC_DEFINE_UNQUOTED([ptrdiff_t], [long], + [Define to `long' if does not define.])]) AC_C_BIGENDIAN AC_CHECK_SIZEOF([char], [1]) AC_CHECK_SIZEOF([short], [2]) @@ -1504,10 +1508,10 @@ AC_CHECK_SIZEOF([float], [4]) AC_CHECK_SIZEOF([double], [8]) AC_CHECK_SIZEOF([long double], [8]) -dnl Checkpoint the cache +## Checkpoint the cache AC_CACHE_SAVE -dnl Posix.1g types (C9x) +## Posix.1g types (C9x) cat >>confdefs.h <<\EOF #include EOF @@ -1518,33 +1522,33 @@ if test "X$C9x" = "Xyes"; then EOF fi -AC_CHECK_SIZEOF( int8_t, [1]) -AC_CHECK_SIZEOF( uint8_t, [1]) -AC_CHECK_SIZEOF( int_least8_t, [1]) -AC_CHECK_SIZEOF( uint_least8_t, [1]) -AC_CHECK_SIZEOF( int_fast8_t, [1]) -AC_CHECK_SIZEOF( uint_fast8_t, [1]) - -AC_CHECK_SIZEOF( int16_t, [2]) -AC_CHECK_SIZEOF( uint16_t, [2]) -AC_CHECK_SIZEOF( int_least16_t, [2]) -AC_CHECK_SIZEOF(uint_least16_t, [2]) -AC_CHECK_SIZEOF( int_fast16_t, [2]) -AC_CHECK_SIZEOF( uint_fast16_t, [2]) - -AC_CHECK_SIZEOF( int32_t, [4]) -AC_CHECK_SIZEOF( uint32_t, [4]) -AC_CHECK_SIZEOF( int_least32_t, [4]) -AC_CHECK_SIZEOF(uint_least32_t, [4]) -AC_CHECK_SIZEOF( int_fast32_t, [4]) -AC_CHECK_SIZEOF( uint_fast32_t, [4]) - -AC_CHECK_SIZEOF( int64_t, [8]) -AC_CHECK_SIZEOF( uint64_t, [8]) -AC_CHECK_SIZEOF( int_least64_t, [8]) -AC_CHECK_SIZEOF(uint_least64_t, [8]) -AC_CHECK_SIZEOF( int_fast64_t, [8]) -AC_CHECK_SIZEOF( uint_fast64_t, [8]) +AC_CHECK_SIZEOF( [int8_t], [1]) +AC_CHECK_SIZEOF( [uint8_t], [1]) +AC_CHECK_SIZEOF( [int_least8_t], [1]) +AC_CHECK_SIZEOF( [uint_least8_t], [1]) +AC_CHECK_SIZEOF( [int_fast8_t], [1]) +AC_CHECK_SIZEOF( [uint_fast8_t], [1]) + +AC_CHECK_SIZEOF( [int16_t], [2]) +AC_CHECK_SIZEOF( [uint16_t], [2]) +AC_CHECK_SIZEOF( [int_least16_t], [2]) +AC_CHECK_SIZEOF([uint_least16_t], [2]) +AC_CHECK_SIZEOF( [int_fast16_t], [2]) +AC_CHECK_SIZEOF( [uint_fast16_t], [2]) + +AC_CHECK_SIZEOF( [int32_t], [4]) +AC_CHECK_SIZEOF( [uint32_t], [4]) +AC_CHECK_SIZEOF( [int_least32_t], [4]) +AC_CHECK_SIZEOF([uint_least32_t], [4]) +AC_CHECK_SIZEOF( [int_fast32_t], [4]) +AC_CHECK_SIZEOF( [uint_fast32_t], [4]) + +AC_CHECK_SIZEOF( [int64_t], [8]) +AC_CHECK_SIZEOF( [uint64_t], [8]) +AC_CHECK_SIZEOF( [int_least64_t], [8]) +AC_CHECK_SIZEOF([uint_least64_t], [8]) +AC_CHECK_SIZEOF( [int_fast64_t], [8]) +AC_CHECK_SIZEOF( [uint_fast64_t], [8]) AC_CHECK_SIZEOF([size_t], [4]) AC_CHECK_SIZEOF([ssize_t], [4]) @@ -1556,12 +1560,12 @@ EOF AC_CHECK_SIZEOF([off_t], [4]) AC_CHECK_SIZEOF([off64_t], [8]) -dnl Checkpoint the cache +## Checkpoint the cache AC_CACHE_SAVE -dnl ---------------------------------------------------------------------- -dnl Check if the dev_t type is a scalar type (must come after the check for -dnl sys/types.h) +## ---------------------------------------------------------------------- +## Check if the dev_t type is a scalar type (must come after the check for +## sys/types.h) AC_MSG_CHECKING([if dev_t is scalar]) AC_TRY_COMPILE([ #ifdef HAVE_SYS_TYPES_H @@ -1571,15 +1575,15 @@ AC_TRY_COMPILE([ [dev_t d1, d2; if(d1==d2) return 0;], AC_DEFINE([DEV_T_IS_SCALAR], [1], [Define if `dev_t' is a scalar]) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) ) -dnl ---------------------------------------------------------------------- -dnl Fake --with-xxx option to allow us to create a help message for the -dnl following --with-xxx options which can take either a =DIR or =INC,LIB -dnl specifier. -dnl +## ---------------------------------------------------------------------- +## Fake --with-xxx option to allow us to create a help message for the +## following --with-xxx options which can take either a =DIR or =INC,LIB +## specifier. +## AC_ARG_WITH([fnord], [ For the following --with-xxx options, you can specify where the header @@ -1591,31 +1595,31 @@ AC_ARG_WITH([fnord], include/ and lib/ subdirectories ]) -dnl ---------------------------------------------------------------------- -dnl Is the dmalloc present? It has a header file `dmalloc.h' and a library -dnl `-ldmalloc' and their locations might be specified with the `--with-dmalloc' -dnl command-line switch. The value is an include path and/or a library path. -dnl If the library path is specified then it must be preceded by a comma. -dnl +## ---------------------------------------------------------------------- +## Is the dmalloc present? It has a header file `dmalloc.h' and a library +## `-ldmalloc' and their locations might be specified with the `--with-dmalloc' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## AC_ARG_WITH([dmalloc], - [AC_HELP_STRING([--with-dmalloc=DIR], + [AS_HELP_STRING([--with-dmalloc=DIR], [Use dmalloc memory debugging aid [default=no]])],, - withval=no) + [withval=no]) case $withval in yes) HAVE_DMALLOC="yes" - AC_CHECK_HEADERS(dmalloc.h) - AC_CHECK_LIB(dmalloc, dmalloc_shutdown,, unset HAVE_DMALLOC) + AC_CHECK_HEADERS([dmalloc.h]) + AC_CHECK_LIB([dmalloc], [dmalloc_shutdown],, [unset HAVE_DMALLOC]) if test -z "$HAVE_DMALLOC" -a -n "$HDF5_CONFIG_ABORT"; then - AC_MSG_ERROR(couldn't find dmalloc library) + AC_MSG_ERROR([couldn't find dmalloc library]) fi ;; no) HAVE_DMALLOC="no" - AC_MSG_CHECKING(for dmalloc library) - AC_MSG_RESULT(suppressed) + AC_MSG_CHECKING([for dmalloc library]) + AC_MSG_RESULT([suppressed]) ;; *) HAVE_DMALLOC="yes" @@ -1632,8 +1636,8 @@ case $withval in ;; esac - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl can mess some compilers up. + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. if test "X$dmalloc_inc" = "X/usr/include"; then dmalloc_inc="" fi @@ -1651,33 +1655,33 @@ case $withval in AM_CPPFLAGS="$AM_CPPFLAGS -I$dmalloc_inc" fi - AC_CHECK_HEADERS(dmalloc.h,,CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS") + AC_CHECK_HEADERS([dmalloc.h],,[CPPFLAGS="$saved_CPPFLAGS"; AM_CPPFLAGS="$saved_AM_CPPFLAGS"]) if test -n "$dmalloc_lib"; then LDFLAGS="$LDFLAGS -L$dmalloc_lib" AM_LDFLAGS="$AM_LDFLAGS -L$dmalloc_lib" fi - AC_CHECK_LIB(dmalloc, dmalloc_shutdown,, LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_DMALLOC) + AC_CHECK_LIB([dmalloc], [dmalloc_shutdown],, [LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset HAVE_DMALLOC]) if test -z "$HAVE_DMALLOC" -a -n "$HDF5_CONFIG_ABORT"; then - AC_MSG_ERROR(couldn't find dmalloc library) + AC_MSG_ERROR([couldn't find dmalloc library]) fi ;; esac -dnl ---------------------------------------------------------------------- -dnl Is the GNU zlib present? It has a header file `zlib.h' and a library -dnl `-lz' and their locations might be specified with the `--with-zlib' -dnl command-line switch. The value is an include path and/or a library path. -dnl If the library path is specified then it must be preceded by a comma. -dnl -AC_SUBST(USE_FILTER_DEFLATE) USE_FILTER_DEFLATE="no" +## ---------------------------------------------------------------------- +## Is the GNU zlib present? It has a header file `zlib.h' and a library +## `-lz' and their locations might be specified with the `--with-zlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## +AC_SUBST([USE_FILTER_DEFLATE]) USE_FILTER_DEFLATE="no" AC_ARG_WITH([zlib], - [AC_HELP_STRING([--with-zlib=DIR], + [AS_HELP_STRING([--with-zlib=DIR], [Use zlib library for external deflate I/O filter [default=yes]])],, - withval=yes) + [withval=yes]) case $withval in yes) @@ -1710,8 +1714,8 @@ case $withval in ;; esac - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl can mess some compilers up. + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. if test "X$zlib_inc" = "X/usr/include"; then zlib_inc="" fi @@ -1752,7 +1756,7 @@ if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes" -a "x$HAVE_COMPRESS2" AC_DEFINE([HAVE_FILTER_DEFLATE], [1], [Define if support for deflate (zlib) filter is enabled]) USE_FILTER_DEFLATE="yes" - dnl Add "deflate" to external filter list + ## Add "deflate" to external filter list if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi @@ -1760,18 +1764,18 @@ if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes" -a "x$HAVE_COMPRESS2" fi -dnl ---------------------------------------------------------------------- -dnl Is the szlib present? It has a header file `szlib.h' and a library -dnl `-lsz' and their locations might be specified with the `--with-szlib' -dnl command-line switch. The value is an include path and/or a library path. -dnl If the library path is specified then it must be preceded by a comma. -dnl -AC_SUBST(USE_FILTER_SZIP) USE_FILTER_SZIP="no" +## ---------------------------------------------------------------------- +## Is the szlib present? It has a header file `szlib.h' and a library +## `-lsz' and their locations might be specified with the `--with-szlib' +## command-line switch. The value is an include path and/or a library path. +## If the library path is specified then it must be preceded by a comma. +## +AC_SUBST([USE_FILTER_SZIP]) USE_FILTER_SZIP="no" AC_ARG_WITH([szlib], - [AC_HELP_STRING([--with-szlib=DIR], + [AS_HELP_STRING([--with-szlib=DIR], [Use szlib library for external szlib I/O filter [default=no]])],, - withval=no) + [withval=no]) case $withval in yes) @@ -1803,8 +1807,8 @@ case $withval in ;; esac - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl can mess some compilers up. + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. if test "X$szlib_inc" = "X/usr/include"; then szlib_inc="" fi @@ -1841,12 +1845,12 @@ case $withval in esac if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then - dnl SZLIB library is available. Check if it can encode + ## SZLIB library is available. Check if it can encode AC_MSG_CHECKING([for szlib encoder]) - dnl Set LD_LIBRARY_PATH so encoder test can find the library and run. - dnl Also add LL_PATH substitution to Makefiles so they can use the - dnl path as well, for testing examples. + ## Set LD_LIBRARY_PATH so encoder test can find the library and run. + ## Also add LL_PATH substitution to Makefiles so they can use the + ## path as well, for testing examples. if test -z "$LD_LIBRARY_PATH"; then export LD_LIBRARY_PATH="$szlib_lib" else @@ -1854,7 +1858,7 @@ if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then fi AC_SUBST([LL_PATH]) LL_PATH="$LD_LIBRARY_PATH" - + AC_CACHE_VAL([hdf5_cv_szlib_can_encode], [AC_TRY_RUN([ #include @@ -1869,10 +1873,10 @@ if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then } ], [hdf5_cv_szlib_can_encode=yes], [hdf5_cv_szlib_can_encode=no],)]) - AC_DEFINE(HAVE_FILTER_SZIP, 1, + AC_DEFINE([HAVE_FILTER_SZIP], [1], [Define if support for szip filter is enabled]) USE_FILTER_SZIP="yes" - + if test ${hdf5_cv_szlib_can_encode} = "yes"; then AC_MSG_RESULT([yes]) fi @@ -1880,7 +1884,7 @@ if test "x$HAVE_SZLIB" = "xyes" -a "x$HAVE_SZLIB_H" = "xyes"; then AC_MSG_RESULT([no]) fi - dnl Add "szip" to external filter list + ## Add "szip" to external filter list if test ${hdf5_cv_szlib_can_encode} = "yes"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," @@ -1898,21 +1902,21 @@ fi AM_CONDITIONAL([BUILD_SHARED_SZIP_CONDITIONAL], [test "X$USE_FILTER_SZIP" = "Xyes" && test "X$LL_PATH" != "X"]) -dnl Checkpoint the cache +## Checkpoint the cache AC_CACHE_SAVE -dnl ---------------------------------------------------------------------- -dnl Is the Pthreads library present? It has a header file `pthread.h' and -dnl a library `-lpthread' and their locations might be specified with the -dnl `--with-pthread' command-line switch. The value is an include path -dnl and/or a library path. If the library path is specified then it must -dnl be preceded by a comma. -dnl +## ---------------------------------------------------------------------- +## Is the Pthreads library present? It has a header file `pthread.h' and +## a library `-lpthread' and their locations might be specified with the +## `--with-pthread' command-line switch. The value is an include path +## and/or a library path. If the library path is specified then it must +## be preceded by a comma. +## AC_SUBST([PTHREAD]) PTHREAD=yes AC_ARG_WITH([pthread], - [AC_HELP_STRING([--with-pthread=DIR], + [AS_HELP_STRING([--with-pthread=DIR], [Use the Pthreads library [default=no]])],, - withval=no) + [withval=no]) case "$withval" in yes) @@ -1938,8 +1942,8 @@ case "$withval" in ;; esac - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl can mess some compilers up. + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. if test "X$pthread_inc" = "X/usr/include"; then pthread_inc="" fi @@ -1971,21 +1975,38 @@ case "$withval" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Enable thread-safe version of library. It requires Pthreads support. -dnl +## ---------------------------------------------------------------------- +## Enable thread-safe version of library. It requires Pthreads support. +## AC_MSG_CHECKING([for thread safe support]) AC_ARG_ENABLE([threadsafe], - [AC_HELP_STRING([--enable-threadsafe], + [AS_HELP_STRING([--enable-threadsafe], [Enable thread safe capability])], - THREADSAFE=$enableval) + [THREADSAFE=$enableval]) + +## The --enable-threadsafe flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_CXX}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + AC_MSG_ERROR([--enable-cxx and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error.]) + fi +fi + +## --enable-threadsafe is also incompatible with --enable-fortran, unless +## --enable-unsupported has been specified on the configure line. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF_FORTRAN}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + AC_MSG_ERROR([--enable-fortran and --enable-threadsafe flags are incompatible. Use --enable-unsupported to override this error.]) + fi +fi case "X-$THREADSAFE" in X-|X-no) AC_MSG_RESULT([no]) ;; X-yes) - dnl Check that we can link a simple Pthread program. + ## Check that we can link a simple Pthread program. AC_TRY_LINK(, [pthread_self()], [AC_MSG_RESULT([yes]); THREADSAFE=yes], [AC_MSG_ERROR([needed pthread library not available])]) @@ -2000,38 +2021,38 @@ if test "X$THREADSAFE" = "Xyes"; then AC_DEFINE([HAVE_THREADSAFE], [1], [Define if we have thread safe support]) fi -dnl ---------------------------------------------------------------------- -dnl Check for MONOTONIC_TIMER support (used in clock_gettime). This has -dnl to be done after any POSIX/BSD defines to ensure that the test gets -dnl the correct POSIX level on linux. -AC_CHECK_DECL(CLOCK_MONOTONIC,[have_clock_monotonic="yes"],[have_clock_monotonic="no"],[[#include ]]) +## ---------------------------------------------------------------------- +## Check for MONOTONIC_TIMER support (used in clock_gettime). This has +## to be done after any POSIX/BSD defines to ensure that the test gets +## the correct POSIX level on linux. +AC_CHECK_DECL([CLOCK_MONOTONIC],[have_clock_monotonic="yes"],[have_clock_monotonic="no"],[[#include ]]) -dnl ---------------------------------------------------------------------- -dnl How does one figure out the local time zone? Anyone know of a -dnl Posix way to do this? -dnl +## ---------------------------------------------------------------------- +## How does one figure out the local time zone? Anyone know of a +## Posix way to do this? +## -dnl First check if `struct tm' has a `tm_gmtoff' member. +## First check if `struct tm' has a `tm_gmtoff' member. AC_MSG_CHECKING([for tm_gmtoff in struct tm]) AC_TRY_COMPILE([ -#include -#include ], [struct tm tm; tm.tm_gmtoff=0;], -AC_DEFINE([HAVE_TM_GMTOFF], [1], + #include + #include ], [struct tm tm; tm.tm_gmtoff=0;], + [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Define if `tm_gmtoff' is a member of `struct tm']) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) -dnl check if `struct tm' has a `__tm_gmtoff' member. +## check if `struct tm' has a `__tm_gmtoff' member. AC_MSG_CHECKING([for __tm_gmtoff in struct tm]) AC_TRY_COMPILE([ -#include -#include ], [struct tm tm; tm.__tm_gmtoff=0;], -AC_DEFINE([HAVE___TM_GMTOFF], [1], + #include + #include ], [struct tm tm; tm.__tm_gmtoff=0;], + [AC_DEFINE([HAVE___TM_GMTOFF], [1], [Define if `__tm_gmtoff' is a member of `struct tm']) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) -dnl Check whether the global variable `timezone' is defined. +## Check whether the global variable `timezone' is defined. AC_MSG_CHECKING([for global timezone variable]) case "`uname`" in @@ -2042,27 +2063,27 @@ case "`uname`" in AC_TRY_LINK([ #include #include ], [timezone=0;], - AC_DEFINE([HAVE_TIMEZONE], [1], + [AC_DEFINE([HAVE_TIMEZONE], [1], [Define if `timezone' is a global variable]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) ;; esac -dnl Check whether `struct timezone' is defined. +## Check whether `struct timezone' is defined. AC_STRUCT_TIMEZONE AC_MSG_CHECKING([for struct timezone]) AC_TRY_COMPILE([ -#include -#include -#include ], [struct timezone tz; tz.tz_minuteswest=0;], -AC_DEFINE([HAVE_STRUCT_TIMEZONE], [1], + #include + #include + #include ], [struct timezone tz; tz.tz_minuteswest=0;], + [AC_DEFINE([HAVE_STRUCT_TIMEZONE], [1], [Define if `struct timezone' is defined]) -have_struct_tz="yes" -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + have_struct_tz="yes" + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) -dnl If gettimeofday() is going to be used, make sure it uses the timezone struct +## If gettimeofday() is going to be used, make sure it uses the timezone struct if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then AC_MSG_CHECKING(whether gettimeofday() gives timezone) @@ -2081,7 +2102,9 @@ if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7) exit(1); else exit (0); - }], [hdf5_cv_gettimeofday_tz=yes], [hdf5_cv_gettimeofday_tz=no],)]) + }], + [hdf5_cv_gettimeofday_tz=yes], + [hdf5_cv_gettimeofday_tz=no])]) if test ${hdf5_cv_gettimeofday_tz} = "yes"; then AC_MSG_RESULT([yes]) @@ -2092,78 +2115,78 @@ if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then fi fi -dnl ---------------------------------------------------------------------- -dnl Does the struct stat have the st_blocks field? This field is not Posix. -dnl +## ---------------------------------------------------------------------- +## Does the struct stat have the st_blocks field? This field is not Posix. +## AC_MSG_CHECKING([for st_blocks in struct stat]) AC_TRY_COMPILE([ -#include ],[struct stat sb; sb.st_blocks=0;], -AC_DEFINE([HAVE_STAT_ST_BLOCKS], [1], + #include ],[struct stat sb; sb.st_blocks=0;], + [AC_DEFINE([HAVE_STAT_ST_BLOCKS], [1], [Define if `struct stat' has the `st_blocks' field]) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) -dnl ---------------------------------------------------------------------- -dnl How do we figure out the width of a tty in characters? -dnl -AC_CHECK_FUNCS(_getvideoconfig gettextinfo GetConsoleScreenBufferInfo) -AC_CHECK_FUNCS(_scrsize ioctl) +## ---------------------------------------------------------------------- +## How do we figure out the width of a tty in characters? +## +AC_CHECK_FUNCS([_getvideoconfig gettextinfo GetConsoleScreenBufferInfo]) +AC_CHECK_FUNCS([_scrsize ioctl]) AC_MSG_CHECKING([for struct videoconfig]) AC_TRY_COMPILE(,[struct videoconfig w; w.numtextcols=0;], -AC_DEFINE([HAVE_STRUCT_VIDEOCONFIG], [1], + [AC_DEFINE([HAVE_STRUCT_VIDEOCONFIG], [1], [Define if `struct videoconfig' is defined]) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for struct text_info]) AC_TRY_COMPILE(, [struct text_info w; w.screenwidth=0;], -AC_DEFINE([HAVE_STRUCT_TEXT_INFO], [1], + [AC_DEFINE([HAVE_STRUCT_TEXT_INFO], [1], [Define if `struct text_info' is defined]) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for TIOCGWINSZ]) AC_TRY_COMPILE([#include ],[int w=TIOCGWINSZ;], -AC_DEFINE([HAVE_TIOCGWINSZ], [1], + [AC_DEFINE([HAVE_TIOCGWINSZ], [1], [Define if the ioctl TIOGWINSZ is defined]) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for TIOCGETD]) AC_TRY_COMPILE([#include ],[int w=TIOCGETD;], -AC_DEFINE([HAVE_TIOCGETD], [1], + [AC_DEFINE([HAVE_TIOCGETD], [1], [Define if the ioctl TIOCGETD is defined]) -AC_MSG_RESULT([yes]), -AC_MSG_RESULT([no])) - - -dnl ---------------------------------------------------------------------- -dnl Check for functions. -dnl -AC_CHECK_FUNCS(alarm BSDgettimeofday fork frexpf frexpl) -AC_CHECK_FUNCS(gethostname getpwuid getrusage lstat) -AC_CHECK_FUNCS(rand_r random setsysinfo) -AC_CHECK_FUNCS(signal longjmp setjmp siglongjmp sigsetjmp sigprocmask) -AC_CHECK_FUNCS(snprintf srandom strdup symlink system) -AC_CHECK_FUNCS(tmpfile vasprintf waitpid) - -dnl Check for vsnprintf() separately, so we can detect situations where it -dnl doesn't return the correct size for formatted strings that are too large -dnl for the buffer provided -AC_CHECK_FUNCS(vsnprintf, - - dnl Check if vsnprintf() returns correct size for strings that don't fit - dnl into the size allowed. If vsnprintf() works correctly on this platform, - dnl it should return a value of 42 for the test below - dnl - dnl Note that vsnprintf fails in two different ways: - dnl - In IRIX64, calls to vnsprintf() with a formatted string that - dnl is larger than the buffer size allowed incorrectly - dnl return the size of the buffer minus one. - dnl - In HP/UX, calls to vsnprintf() with a formatted string that - dnl is larger than the buffer size allowed incorrectly - dnl return (-1) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + + +## ---------------------------------------------------------------------- +## Check for functions. +## +AC_CHECK_FUNCS([alarm BSDgettimeofday fork frexpf frexpl]) +AC_CHECK_FUNCS([gethostname getpwuid getrusage lstat]) +AC_CHECK_FUNCS([rand_r random setsysinfo]) +AC_CHECK_FUNCS([signal longjmp setjmp siglongjmp sigsetjmp sigprocmask]) +AC_CHECK_FUNCS([snprintf srandom strdup symlink system]) +AC_CHECK_FUNCS([tmpfile vasprintf waitpid]) + +## Check for vsnprintf() separately, so we can detect situations where it +## doesn't return the correct size for formatted strings that are too large +## for the buffer provided +AC_CHECK_FUNCS([vsnprintf], + + ## Check if vsnprintf() returns correct size for strings that don't fit + ## into the size allowed. If vsnprintf() works correctly on this platform, + ## it should return a value of 42 for the test below + ## + ## Note that vsnprintf fails in two different ways: + ## - In IRIX64, calls to vnsprintf() with a formatted string that + ## is larger than the buffer size allowed incorrectly + ## return the size of the buffer minus one. + ## - In HP/UX, calls to vsnprintf() with a formatted string that + ## is larger than the buffer size allowed incorrectly + ## return (-1) AC_MSG_CHECKING([if vsnprintf returns correct value]) AC_CACHE_VAL([hdf5_cv_vsnprintf_works], @@ -2200,11 +2223,11 @@ int main(void) fi ,) -dnl ---------------------------------------------------------------------- -dnl Check that a lone colon can be used as an argument -dnl This is not true on Cray X1, which interprets a lone colon as a -dnl system command. -dnl +## ---------------------------------------------------------------------- +## Check that a lone colon can be used as an argument +## This is not true on Cray X1, which interprets a lone colon as a +## system command. +## AC_CACHE_CHECK([if lone colon can be used as an argument], [hdf5_cv_lone_colon], [ @@ -2224,33 +2247,33 @@ AC_CACHE_CHECK([if lone colon can be used as an argument], fi ]) -AC_SUBST(H5_LONE_COLON) H5_LONE_COLON="$hdf5_cv_lone_colon" +AC_SUBST([H5_LONE_COLON]) H5_LONE_COLON="$hdf5_cv_lone_colon" -dnl ---------------------------------------------------------------------- -dnl Check compiler characteristics -dnl +## ---------------------------------------------------------------------- +## Check compiler characteristics +## AC_C_CONST AC_C_INLINE AC_MSG_CHECKING([for __attribute__ extension]) AC_TRY_COMPILE(,[int __attribute__((unused)) x], - AC_DEFINE([HAVE_ATTRIBUTE], [1], + [AC_DEFINE([HAVE_ATTRIBUTE], [1], [Define if the __attribute__(()) extension is present]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for __func__ extension]) AC_TRY_COMPILE(,[ const char *fname = __func__; ], - AC_DEFINE([HAVE_C99_FUNC], [1], + [AC_DEFINE([HAVE_C99_FUNC], [1], [Define if the compiler understands the __func__ keyword]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for __FUNCTION__ extension]) AC_TRY_COMPILE(,[ const char *fname = __FUNCTION__; ], - AC_DEFINE([HAVE_FUNCTION], [1], + [AC_DEFINE([HAVE_FUNCTION], [1], [Define if the compiler understands the __FUNCTION__ keyword]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for C99 designated initialization support]) AC_TRY_COMPILE(,[ typedef struct { @@ -2261,66 +2284,66 @@ AC_TRY_COMPILE(,[ } u; } di_struct_t; di_struct_t x = {0, { .d = 0.0}}; ], - AC_DEFINE([HAVE_C99_DESIGNATED_INITIALIZER], [1], + [AC_DEFINE([HAVE_C99_DESIGNATED_INITIALIZER], [1], [Define if the compiler understands C99 designated initialization of structs and unions]) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - -dnl ---------------------------------------------------------------------- -dnl Try to figure out how to print `long long'. Some machines use `%lld' -dnl and others use `%qd'. There may be more! The final `l' is a -dnl default in case none of the others work. -dnl Need to patch up LD_LIBRARY_PATH so that the execution can find all -dnl the dynamic library. The correct way to do it should be updating -dnl LD_LIBRARY_PATH along with LDFLAGS or do it with the AC_TRY_RUN macro. -dnl + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + +## ---------------------------------------------------------------------- +## Try to figure out how to print `long long'. Some machines use `%lld' +## and others use `%qd'. There may be more! The final `l' is a +## default in case none of the others work. +## Need to patch up LD_LIBRARY_PATH so that the execution can find all +## the dynamic library. The correct way to do it should be updating +## LD_LIBRARY_PATH along with LDFLAGS or do it with the AC_TRY_RUN macro. +## AC_MSG_CHECKING([how to print long long]) -AC_CACHE_VAL([hdf5_cv_printf_ll], +AC_CACHE_VAL([hdf5_cv_printf_ll], [ LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo $AM_LDFLAGS $LDFLAGS | sed -e 's/-L/:/g' -e 's/ //g'`" export LD_LIBRARY_PATH for hdf5_cv_printf_ll in l ll L q unknown; do AC_TRY_RUN([ -#include -#include -#include + #include + #include + #include -int main(void) -{ + int main(void) + { char *s = malloc(128); long long x = (long long)1048576 * (long long)1048576; sprintf(s,"%${hdf5_cv_printf_ll}d",x); exit(strcmp(s,"1099511627776")); -} - ], break,,continue) -done)dnl + } + ], [break],,[continue]) +done]) AC_MSG_RESULT([%${hdf5_cv_printf_ll}d and %${hdf5_cv_printf_ll}u]) AC_DEFINE_UNQUOTED([PRINTF_LL_WIDTH], ["$hdf5_cv_printf_ll"], [Width for printf() for type `long long' or `__int64', use `ll']) -dnl ---------------------------------------------------------------------- -dnl Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) -dnl is supported on this system -dnl +## ---------------------------------------------------------------------- +## Check if pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM) +## is supported on this system +## AC_MSG_CHECKING([Threads support system scope]) AC_CACHE_VAL([hdf5_cv_system_scope_threads], -[AC_TRY_RUN([ -#if STDC_HEADERS -#include -#include -#endif + [AC_TRY_RUN([ + #if STDC_HEADERS + #include + #include + #endif -int main(void) -{ - pthread_attr_t attribute; - int ret; + int main(void) + { + pthread_attr_t attribute; + int ret; - pthread_attr_init(&attribute); - ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); - exit(ret==0 ? 0 : 1); -} -], [hdf5_cv_system_scope_threads=yes], [hdf5_cv_system_scope_threads=no],)]) + pthread_attr_init(&attribute); + ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); + exit(ret==0 ? 0 : 1); + } + ], [hdf5_cv_system_scope_threads=yes], [hdf5_cv_system_scope_threads=no],)]) if test ${hdf5_cv_system_scope_threads} = "yes"; then AC_DEFINE([SYSTEM_SCOPE_THREADS], [1], @@ -2330,11 +2353,11 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Checking to see if GPFS is available on this filesystem -dnl +## ---------------------------------------------------------------------- +## Checking to see if GPFS is available on this filesystem +## AC_ARG_ENABLE([gpfs], - [AC_HELP_STRING([--enable-gpfs], + [AS_HELP_STRING([--enable-gpfs], [Enable GPFS hints for the MPI/POSIX file driver. [default=no]])],, [enableval=no]) @@ -2342,16 +2365,16 @@ AC_ARG_ENABLE([gpfs], case "X-$enableval" in X-yes) AC_CHECK_HEADERS([gpfs.h], - AC_MSG_CHECKING([for GPFS support]) + [AC_MSG_CHECKING([for GPFS support]) AC_TRY_COMPILE([#include ], [int fd = 0; gpfs_fcntl(fd, (void *)0);], - AC_DEFINE(HAVE_GPFS, 1, - [Define if we have GPFS support]) - AC_MSG_RESULT([yes]) - LIBS="$LIBS -lgpfs" - GPFS="yes", - AC_MSG_RESULT([no]) - GPFS="no")) + [AC_DEFINE([HAVE_GPFS], [1], + [Define if we have GPFS support]) + AC_MSG_RESULT([yes]) + LIBS="$LIBS -lgpfs" + GPFS="yes"], + [AC_MSG_RESULT([no]) + GPFS="no"])]) ;; X-no|*) AC_MSG_CHECKING([for gpfs]) @@ -2359,13 +2382,13 @@ case "X-$enableval" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Turn on debugging by setting compiler flags -dnl This must come after the enable-production since it depends on production. -dnl -AC_MSG_CHECKING(for debug flags) +## ---------------------------------------------------------------------- +## Turn on debugging by setting compiler flags +## This must come after the enable-production since it depends on production. +## +AC_MSG_CHECKING([for debug flags]) AC_ARG_ENABLE([debug], - [AC_HELP_STRING([--enable-debug=all], + [AS_HELP_STRING([--enable-debug=all], [Turn on debugging in all packages. One may also specify a comma-separated list of package names without the leading H5 or @@ -2374,7 +2397,7 @@ AC_ARG_ENABLE([debug], ])], [DEBUG_PKG=$enableval]) -dnl Default to no if producton is enabled +## Default to no if producton is enabled if test "X-$DEBUG_PKG" = X- ; then if test "$enable_production" = yes ; then DEBUG_PKG=no @@ -2412,12 +2435,12 @@ if test -n "$DEBUG_PKG"; then done fi -dnl ---------------------------------------------------------------------- -dnl Check if they would like the function stack support compiled in -dnl +## ---------------------------------------------------------------------- +## Check if they would like the function stack support compiled in +## AC_MSG_CHECKING([whether function stack tracking is enabled]) AC_ARG_ENABLE([codestack], - [AC_HELP_STRING([--enable-codestack], + [AS_HELP_STRING([--enable-codestack], [Enable the function stack tracing (for developer debugging).])], [CODESTACK=$enableval]) @@ -2434,12 +2457,12 @@ case "X-$CODESTACK" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Check if they would like the metadata trace file code compiled in -dnl +## ---------------------------------------------------------------------- +## Check if they would like the metadata trace file code compiled in +## AC_MSG_CHECKING([whether metadata trace file code is enabled]) AC_ARG_ENABLE([metadata-trace-file], - [AC_HELP_STRING([--enable-metadata-trace-file], + [AS_HELP_STRING([--enable-metadata-trace-file], [Enable metadata trace file collection.])], [METADATATRACEFILE=$enableval]) @@ -2456,19 +2479,19 @@ case "X-$METADATATRACEFILE" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Enable tracing of the API -dnl This must come after the enable-debug since it depends on debug. -dnl +## ---------------------------------------------------------------------- +## Enable tracing of the API +## This must come after the enable-debug since it depends on debug. +## AC_SUBST([TRACE_API]) AC_MSG_CHECKING([for API tracing]); AC_ARG_ENABLE([trace], - [AC_HELP_STRING([--enable-trace], + [AS_HELP_STRING([--enable-trace], [Enable API tracing capability. Default=no if debug is disabled.])], - TRACE=$enableval) + [TRACE=$enableval]) -dnl Default to no if debug is disabled +## Default to no if debug is disabled if test "X-$TRACE" = X- ; then if test -z "$DEBUG_PKG" ; then TRACE=no @@ -2490,19 +2513,19 @@ case "X-$TRACE" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Enable instrumenting of the library's internal operations -dnl This must come after the enable-debug since it depends on debug. -dnl +## ---------------------------------------------------------------------- +## Enable instrumenting of the library's internal operations +## This must come after the enable-debug since it depends on debug. +## AC_SUBST([INSTRUMENT_LIBRARY]) AC_MSG_CHECKING([for instrumented library]); AC_ARG_ENABLE([instrument], - [AC_HELP_STRING([--enable-instrument], + [AS_HELP_STRING([--enable-instrument], [Enable library instrumentation of optimization tracing. Default=no if debug is disabled.])], - INSTRUMENT=$enableval) + [INSTRUMENT=$enableval]) -dnl Default to no if debug is disabled +## Default to no if debug is disabled if test "X-$INSTRUMENT" = X- ; then if test -z "$DEBUG_PKG" ; then INSTRUMENT=no @@ -2524,14 +2547,14 @@ case "X-$INSTRUMENT" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Check if they would like to securely clear file buffers before they are -dnl written. -dnl +## ---------------------------------------------------------------------- +## Check if they would like to securely clear file buffers before they are +## written. +## AC_SUBST([CLEARFILEBUF]) AC_MSG_CHECKING([whether to clear file buffers]) AC_ARG_ENABLE([clear-file-buffers], - [AC_HELP_STRING([--enable-clear-file-buffers], + [AS_HELP_STRING([--enable-clear-file-buffers], [Securely clear file buffers before writing to file. Default=yes.])], [CLEARFILEBUF=$enableval]) @@ -2550,16 +2573,16 @@ case "X-$CLEARFILEBUF" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Check if they would like to use a memory checking tool (like valgrind's -dnl 'memcheck' tool, or Rational Purify, etc) and the library should be -dnl more scrupulous with it's memory operations. Enabling this also -dnl disables the library's free space manager code. -dnl +## ---------------------------------------------------------------------- +## Check if they would like to use a memory checking tool (like valgrind's +## 'memcheck' tool, or Rational Purify, etc) and the library should be +## more scrupulous with it's memory operations. Enabling this also +## disables the library's free space manager code. +## AC_SUBST([USINGMEMCHECKER]) AC_MSG_CHECKING([whether a memory checking tool will be used]) AC_ARG_ENABLE([using-memchecker], - [AC_HELP_STRING([--enable-using-memchecker], + [AS_HELP_STRING([--enable-using-memchecker], [Enable this option if a memory allocation and/or bounds checking tool will be used on the HDF5 library. Enabling this causes the library to be @@ -2583,41 +2606,41 @@ case "X-$USINGMEMCHECKER" in ;; esac -dnl Checkpoint the cache +## Checkpoint the cache AC_CACHE_SAVE -dnl What header files and libraries do we have to look for for parallel -dnl support? For the most part, search paths are already specified with -dnl CPPFLAGS and LDFLAGS or are known to the compiler. If the user says -dnl `--disable-parallel' but specifies a known parallel compiler (like mpicc -dnl or mpcc) then parallel support is enabled but configure doesn't search -dnl for any parallel header files or libraries. -dnl +## What header files and libraries do we have to look for for parallel +## support? For the most part, search paths are already specified with +## CPPFLAGS and LDFLAGS or are known to the compiler. If the user says +## `--disable-parallel' but specifies a known parallel compiler (like mpicc +## or mpcc) then parallel support is enabled but configure doesn't search +## for any parallel header files or libraries. +## AC_ARG_ENABLE([parallel], - [AC_HELP_STRING([--enable-parallel], + [AS_HELP_STRING([--enable-parallel], [Search for MPI-IO and MPI support files])]) -dnl The --enable-parallel flag is not compatible with --enable-cxx. -dnl If the user tried to specify both flags, throw an error, unless -dnl they also provided the --enable-unsupported flag. +## The --enable-parallel flag is not compatible with --enable-cxx. +## If the user tried to specify both flags, throw an error, unless +## they also provided the --enable-unsupported flag. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${HDF_CXX}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then AC_MSG_ERROR([--enable-cxx and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error.]) fi fi -dnl --enable-parallel is also incompatible with --enable-threadsafe, unless -dnl --enable-unsupported has been specified on the configure line. +## --enable-parallel is also incompatible with --enable-threadsafe, unless +## --enable-unsupported has been specified on the configure line. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${THREADSAFE}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then AC_MSG_ERROR([--enable-threadsafe and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error.]) fi fi -dnl It's possible to build in parallel by specifying a parallel compiler -dnl without using the --enable-parallel flag. This isn't allowed with -dnl C++ or threadsafe, either, unless the --enable-unsupported flag -dnl has also been specified. +## It's possible to build in parallel by specifying a parallel compiler +## without using the --enable-parallel flag. This isn't allowed with +## C++ or threadsafe, either, unless the --enable-unsupported flag +## has also been specified. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${PARALLEL}" != "X" -a "X${enable_cxx}" = "Xyes" ; then AC_MSG_ERROR([An MPI compiler is being used; --enable-cxx is not allowed. Use --enable-unsupported to override this error.]) @@ -2630,49 +2653,49 @@ fi AC_MSG_CHECKING([for parallel support files]) case "X-$enable_parallel" in X-|X-no|X-none) - dnl Either we are not compiling for parallel or the header and - dnl library files and locations are known to the compiler (this is - dnl the case for a correct installation of mpicc for instance). + ## Either we are not compiling for parallel or the header and + ## library files and locations are known to the compiler (this is + ## the case for a correct installation of mpicc for instance). AC_MSG_RESULT([skipped]) ;; X-yes) - dnl We want to compile a parallel library with a compiler that - dnl may already know how to link with MPI and MPI-IO. + ## We want to compile a parallel library with a compiler that + ## may already know how to link with MPI and MPI-IO. AC_MSG_RESULT([provided by compiler]) PARALLEL=yes - dnl Try link a simple MPI program. If fail, try again with -lmpi and - dnl -lmpich. - AC_TRY_LINK(, MPI_Init(),, \ - AC_CHECK_LIB(mpi, MPI_Init,, \ - AC_CHECK_LIB(mpich, MPI_Init,, PARALLEL=no))) + ## Try link a simple MPI program. If fail, try again with -lmpi and + ## -lmpich. + AC_TRY_LINK(, [MPI_Init()],, + [AC_CHECK_LIB([mpi], [MPI_Init],, + [AC_CHECK_LIB([mpich], [MPI_Init],, [PARALLEL=no])])]) - dnl Then try link a simple MPI-IO program. If fail, try again with - dnl -lmpio. + ## Then try link a simple MPI-IO program. If fail, try again with + ## -lmpio. if test "X$PARALLEL" = "Xyes"; then AC_TRY_LINK(, [MPI_File_open()],, [AC_CHECK_LIB([mpio], [MPI_File_open],, [PARALLEL=no])]) fi if test "X$HDF_FORTRAN" = "Xyes"; then - dnl Change to the Fortran 90 language + ## Change to the Fortran 90 language AC_LANG_PUSH(Fortran) - dnl Try link a simple MPI program. If fail, try again with -lmpi. + ## Try link a simple MPI program. If fail, try again with -lmpi. AC_LINK_IFELSE([ program main include 'mpif.h' integer:: ierr call mpi_file_open( ierr ) end],, - AC_CHECK_LIB(mpi, [ + [AC_CHECK_LIB([mpi], [ include 'mpif.h' integer:: ierr - call mpi_file_open( ierr )],, PARALLEL=no)) + call mpi_file_open( ierr )],, [PARALLEL=no])]) - dnl Then try link a simple MPI-IO program. If fail, try again with - dnl -lmpio. + ## Then try link a simple MPI-IO program. If fail, try again with + ## -lmpio. if test "X$PARALLEL" = "Xyes"; then AC_LINK_IFELSE([ program main @@ -2680,21 +2703,21 @@ case "X-$enable_parallel" in integer:: ierr call mpi_file_open( ierr ) end],, - AC_CHECK_LIB(mpio, [ + [AC_CHECK_LIB([mpio], [ include 'mpif.h' integer:: ierr - call mpi_file_open( ierr )],, PARALLEL=no)) + call mpi_file_open( ierr )],, [PARALLEL=no])]) fi - dnl Change to the C language + ## Change to the C language AC_LANG_POP(Fortran) fi - dnl Set RUNPARALLEL to mpiexec if not set yet. - dnl Check for building on Cray if RUNPARALLEL is not yet set by checking - dnl for 'aprun' command (which is the parallel job launcher, like mpiexec). + ## Set RUNPARALLEL to mpiexec if not set yet. + ## Check for building on Cray if RUNPARALLEL is not yet set by checking + ## for 'aprun' command (which is the parallel job launcher, like mpiexec). if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then - dnl Find the path where aprun is located. + ## Find the path where aprun is located. for path in `echo $PATH | ${TR} ":" " "`; do if test -x $path/aprun; then RUNPARALLEL="aprun -q -n \$\${NPROCS:=6}" @@ -2703,7 +2726,7 @@ case "X-$enable_parallel" in done fi - dnl Set RUNPARALLEL to mpiexec if not set yet. + ## Set RUNPARALLEL to mpiexec if not set yet. if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then RUNPARALLEL="mpiexec -n \$\${NPROCS:=6}" fi @@ -2715,39 +2738,39 @@ case "X-$enable_parallel" in ;; esac -dnl ---------------------------------------------------------------------- -dnl Print some other parallel information and do some sanity checks. -dnl +## ---------------------------------------------------------------------- +## Print some other parallel information and do some sanity checks. +## AC_SUBST([ADD_PARALLEL_FILES]) ADD_PARALLEL_FILES="no" if test -n "$PARALLEL"; then - dnl The 'testpar' directory should participate in the build + ## The 'testpar' directory should participate in the build TESTPARALLEL=testpar - dnl We are building a parallel library + ## We are building a parallel library AC_DEFINE([HAVE_PARALLEL], [1], [Define if we have parallel support]) - dnl Display what we found about running programs + ## Display what we found about running programs AC_MSG_CHECKING([prefix for running on one processor]) AC_MSG_RESULT([$RUNSERIAL]) AC_MSG_CHECKING([prefix for running in parallel]) AC_MSG_RESULT([$RUNPARALLEL]) - dnl Check that we can link a simple MPI and MPI-IO application + ## Check that we can link a simple MPI and MPI-IO application AC_MSG_CHECKING([whether a simple MPI-IO program can be linked]) AC_TRY_LINK(, [MPI_Init(); MPI_File_open();], - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - AC_MSG_ERROR([unable to link a simple MPI-IO application])) + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([unable to link a simple MPI-IO application])]) - dnl There *must* be some way to run in parallel even if it's just the - dnl word `none'. + ## There *must* be some way to run in parallel even if it's just the + ## word `none'. if test -z "$RUNPARALLEL"; then AC_MSG_ERROR([no way to run a parallel program]) fi - dnl If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with - dnl the empty string. + ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with + ## the empty string. if test "X$RUNSERIAL" = "Xnone"; then RUNSERIAL="" fi @@ -2777,15 +2800,15 @@ if test -n "$PARALLEL"; then ) fi - dnl -------------------------------------------------------------------- - dnl Do we want MPE instrumentation feature on? - dnl - dnl This must be done after enable-parallel is checked since it depends - dnl on a mpich compiler. - dnl + ## -------------------------------------------------------------------- + ## Do we want MPE instrumentation feature on? + ## + ## This must be done after enable-parallel is checked since it depends + ## on a mpich compiler. + ## MPE=yes AC_ARG_WITH([mpe], - [AC_HELP_STRING([--with-mpe=DIR], + [AS_HELP_STRING([--with-mpe=DIR], [Use MPE instrumentation [default=no]])],, [withval=no]) @@ -2798,7 +2821,7 @@ if test -n "$PARALLEL"; then X-yes) AC_CHECK_HEADERS([mpe.h],, [unset MPE]) AC_CHECK_LIB([mpe], [MPE_Init_log],, [unset MPE]) - AC_CHECK_LIB([lmpe], [CLOG_Init],, [unset MPE]) + AC_CHECK_LIB([lmpe], [MPE_Init_mpi_io],, [unset MPE]) ;; *) case "$withval" in @@ -2814,8 +2837,8 @@ if test -n "$PARALLEL"; then ;; esac - dnl Trying to include -I/usr/include and -L/usr/lib is redundant and - dnl can mess some compilers up. + ## Trying to include -I/usr/include and -L/usr/lib is redundant and + ## can mess some compilers up. if test "X$mpe_inc" = "X/usr/include"; then mpe_inc="" fi @@ -2840,12 +2863,12 @@ if test -n "$PARALLEL"; then AM_LDFLAGS="$AM_LDFLAGS -L$mpe_lib" AC_CHECK_LIB([mpe], [MPE_Init_log],, [LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE]) - AC_CHECK_LIB([lmpe], [CLOG_Init],, + AC_CHECK_LIB([lmpe], [MPE_Init_mpi_io],, [LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE]) else AC_CHECK_LIB([mpe], [MPE_Init_log],, [unset MPE]) - AC_CHECK_LIB([lmpe], [CLOG_Init],, [unset MPE]) + AC_CHECK_LIB([lmpe], [MPE_Init_mpi_io],, [unset MPE]) fi ;; esac @@ -2854,12 +2877,12 @@ if test -n "$PARALLEL"; then AC_DEFINE([HAVE_MPE], [1], [Define if we have MPE support]) fi - dnl ---------------------------------------------------------------------- - dnl Set the flag to indicate that the MPI_File_set_size() function - dnl works with files over 2GB, unless it's already set in the cache. - dnl (This flag should be set for all machines, except for ASCI Red, where - dnl the cache value is set in it's config file) - dnl + ## ---------------------------------------------------------------------- + ## Set the flag to indicate that the MPI_File_set_size() function + ## works with files over 2GB, unless it's already set in the cache. + ## (This flag should be set for all machines, except for ASCI Red, where + ## the cache value is set in it's config file) + ## AC_MSG_CHECKING([if MPI_File_set_size works for files over 2GB]) AC_CACHE_VAL([hdf5_cv_mpi_file_set_size_big], [hdf5_cv_mpi_file_set_size_big=yes]) @@ -2871,15 +2894,15 @@ if test -n "$PARALLEL"; then AC_MSG_RESULT([no]) fi - dnl ---------------------------------------------------------------------- - dnl Set the flag to indicate that the MPI_File_get_size() function - dnl works. The default is enabled unless the user knows the function - dnl doesn't work on the system and disables it. (This flag should be set - dnl for all machines except for SGI Altix Propack 4 where the function - dnl doesn't return correct file size.) - dnl + ## ---------------------------------------------------------------------- + ## Set the flag to indicate that the MPI_File_get_size() function + ## works. The default is enabled unless the user knows the function + ## doesn't work on the system and disables it. (This flag should be set + ## for all machines except for SGI Altix Propack 4 where the function + ## doesn't return correct file size.) + ## AC_ARG_ENABLE([mpi-size], - [AC_HELP_STRING([--enable-mpi-size], + [AS_HELP_STRING([--enable-mpi-size], [Some systems (only SGI Altix Propack 4 so far) return wrong value from MPI_File_get_size. By disabling this function, the library will replace it with stat to get the correct file size. @@ -2903,29 +2926,29 @@ if test -n "$PARALLEL"; then esac fi -dnl ---------------------------------------------------------------------- -dnl Turn on internal I/O filters by setting macros in header files -dnl Internal I/O filters are contained entirely within the library and do -dnl not depend on external headers or libraries. The shuffle filter is -dnl an example of an internal filter, while the gzip filter is an example of -dnl an external filter. Each external filter is controlled with an -dnl "--with-foo=" configure flag. -dnl +## ---------------------------------------------------------------------- +## Turn on internal I/O filters by setting macros in header files +## Internal I/O filters are contained entirely within the library and do +## not depend on external headers or libraries. The shuffle filter is +## an example of an internal filter, while the gzip filter is an example of +## an external filter. Each external filter is controlled with an +## "--with-foo=" configure flag. +## AC_SUBST([FILTERS]) -AC_SUBST(USE_FILTER_SHUFFLE) USE_FILTER_SHUFFLE="no" -AC_SUBST(USE_FILTER_FLETCHER32) USE_FILTER_FLETCHER32="no" -AC_SUBST(USE_FILTER_NBIT) USE_FILTER_NBIT="no" -AC_SUBST(USE_FILTER_SCALEOFFSET) USE_FILTER_SCALEOFFSET="no" +AC_SUBST([USE_FILTER_SHUFFLE]) USE_FILTER_SHUFFLE="no" +AC_SUBST([USE_FILTER_FLETCHER32]) USE_FILTER_FLETCHER32="no" +AC_SUBST([USE_FILTER_NBIT]) USE_FILTER_NBIT="no" +AC_SUBST([USE_FILTER_SCALEOFFSET]) USE_FILTER_SCALEOFFSET="no" AC_MSG_CHECKING([for I/O filters]) AC_ARG_ENABLE([filters], - [AC_HELP_STRING([--enable-filters=all], + [AS_HELP_STRING([--enable-filters=all], [Turn on all internal I/O filters. One may also specify a comma-separated list of filters or the word no. The default is all internal I/O filters.])], [FILTERS=$enableval]) -dnl Eventually: all_filters="shuffle,foo,bar,baz" +## Eventually: all_filters="shuffle,foo,bar,baz" all_filters="shuffle,fletcher32,nbit,scaleoffset" case "X-$FILTERS" in X-|X-all) @@ -2943,10 +2966,10 @@ esac if test -n "$FILTERS"; then for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do - dnl ------------------------------------------------------------------ - dnl Have to use separate 'if' construct for each filter, so that - dnl autoheader can detect the AC_DEFINE for each one... - dnl + ## ------------------------------------------------------------------ + ## Have to use separate 'if' construct for each filter, so that + ## autoheader can detect the AC_DEFINE for each one... + ## if test $filter = "SHUFFLE"; then AC_DEFINE([HAVE_FILTER_SHUFFLE], [1], [Define if support for shuffle filter is enabled]) @@ -2970,22 +2993,22 @@ if test -n "$FILTERS"; then done fi -dnl ---------------------------------------------------------------------- -dnl This is defined only when we're using CodeWarrior, since it has a -dnl broken "open()" call. -dnl +## ---------------------------------------------------------------------- +## This is defined only when we're using CodeWarrior, since it has a +## broken "open()" call. +# if test 1 = 2; then AC_DEFINE([NO_SHARED_WRITING], [1], [Define if shared writing must be disabled (CodeWarrior only)]) fi -dnl -------------------------------------------------------------------------- -dnl Should the Default Virtual File Driver be compiled? -dnl +## -------------------------------------------------------------------------- +## Should the Default Virtual File Driver be compiled? +## AC_MSG_CHECKING([for Default Virtual File Driver definition]) AC_ARG_WITH([default-vfd], - [AC_HELP_STRING([--with-default-vfd=driver], + [AS_HELP_STRING([--with-default-vfd=driver], [Specify default file driver [default=sec2]])],, withval=sec2) @@ -3008,14 +3031,14 @@ if test "X$default_vfd" = "Xyes"; then [Define the default virtual file driver to compile]) fi -dnl ---------------------------------------------------------------------- -dnl Check if Direct I/O driver is enabled by --enable-direct-vfd -dnl +## ---------------------------------------------------------------------- +## Check if Direct I/O driver is enabled by --enable-direct-vfd +## AC_MSG_CHECKING([for Direct Virtual File Driver support]) AC_ARG_ENABLE([direct-vfd], - [AC_HELP_STRING([--enable-direct-vfd], + [AS_HELP_STRING([--enable-direct-vfd], [Build the Direct I/O Virtual File Driver [default=yes]])], [DIRECT_VFD=$enableval], [DIRECT_VFD=yes]) @@ -3034,7 +3057,7 @@ if test "$DIRECT_VFD" = "yes"; then close(fid); remove("tst_file"); exit (0); - }], AC_TRY_LINK(, [posix_memalign()], [hdf5_cv_direct_io=yes], [hdf5_cv_direct_io=no]), [hdf5_cv_direct_io=no],)]) + }], [AC_TRY_LINK(, [posix_memalign()], [hdf5_cv_direct_io=yes], [hdf5_cv_direct_io=no])], [hdf5_cv_direct_io=no],)]) if test ${hdf5_cv_direct_io} = "yes"; then AC_MSG_RESULT([yes]) @@ -3050,15 +3073,15 @@ fi AM_CONDITIONAL([DIRECT_VFD_CONDITIONAL], [test "X$DIRECT_VFD" = "Xyes"]) -dnl ---------------------------------------------------------------------- -dnl Decide whether the presence of user's exception handling functions is -dnl checked and data conversion exceptions are returned. This is mainly -dnl for the speed optimization of hard conversions. Soft conversions can -dnl actually benefit little. -dnl +## ---------------------------------------------------------------------- +## Decide whether the presence of user's exception handling functions is +## checked and data conversion exceptions are returned. This is mainly +## for the speed optimization of hard conversions. Soft conversions can +## actually benefit little. +## AC_MSG_CHECKING([whether exception handling functions is checked during data conversions]) AC_ARG_ENABLE([dconv-exception], - [AC_HELP_STRING([--enable-dconv-exception], + [AS_HELP_STRING([--enable-dconv-exception], [if exception handling functions is checked during data conversions [default=yes]])], [DCONV_EXCEPTION=$enableval], [DCONV_EXCEPTION=yes]) @@ -3071,15 +3094,15 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Decide whether the data accuracy has higher priority during data -dnl conversions. If not, some hard conversions will still be prefered even -dnl though the data may be wrong (for example, some compilers don't -dnl support denormalized floating values) to maximize speed. -dnl +## ---------------------------------------------------------------------- +## Decide whether the data accuracy has higher priority during data +## conversions. If not, some hard conversions will still be prefered even +## though the data may be wrong (for example, some compilers don't +## support denormalized floating values) to maximize speed. +## AC_MSG_CHECKING([whether data accuracy is guaranteed during data conversions]) AC_ARG_ENABLE([dconv-accuracy], - [AC_HELP_STRING([--enable-dconv-accuracy], + [AS_HELP_STRING([--enable-dconv-accuracy], [if data accuracy is guaranteed during data conversions [default=yes]])], [DATA_ACCURACY=$enableval], [DATA_ACCURACY=yes]) @@ -3092,12 +3115,12 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can handle converting -dnl denormalized floating-point values. -dnl (This flag should be set for all machines, except for the Crays, where -dnl the cache value is set in it's config file) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle converting +## denormalized floating-point values. +## (This flag should be set for all machines, except for the Crays, where +## the cache value is set in it's config file) +## AC_MSG_CHECKING([if converting denormalized floating-point values is possible]) AC_CACHE_VAL([hdf5_cv_convert_denormal_float], [hdf5_cv_convert_denormal_float=yes]) @@ -3109,12 +3132,12 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can handle converting -dnl floating-point to long long values. -dnl (This flag should be _unset_ for all machines, except for Windows, where -dnl it's set in the custom Windows H5pubconf.h file) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle converting +## floating-point to long long values. +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) +## AC_MSG_CHECKING([if converting floating-point values to long long is not working]) AC_CACHE_VAL([hdf5_cv_convert_float_llong_not_works], [hdf5_cv_convert_float_llong_not_works=no]) @@ -3126,12 +3149,12 @@ else AC_MSG_RESULT([false]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine has window style pathname, -dnl that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). -dnl (This flag should be _unset_ for all machines, except for Windows, where -dnl it's set in the custom Windows H5pubconf.h file) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine has window style pathname, +## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/"). +## (This flag should be _unset_ for all machines, except for Windows, where +## it's set in the custom Windows H5pubconf.h file) +## AC_MSG_CHECKING([if the machine has window style path name]) case "`uname`" in @@ -3145,13 +3168,13 @@ case "`uname`" in ;; esac -dnl ----------------------------------------------------------------------- -dnl Set flag to indicate that the machine can handle conversion from -dnl long double to integers accurately. This flag should be set "yes" for -dnl all machines except all SGIs. For SGIs, some conversions are -dnl incorrect and its cache value is set "no" in its config/irix6.x and -dnl irix5.x. -dnl +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can handle conversion from +## long double to integers accurately. This flag should be set "yes" for +## all machines except all SGIs. For SGIs, some conversions are +## incorrect and its cache value is set "no" in its config/irix6.x and +## irix5.x. +## AC_MSG_CHECKING([if converting from long double to integers is accurate]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3168,13 +3191,13 @@ else AC_MSG_RESULT([no]) fi -dnl ----------------------------------------------------------------------- -dnl Set flag to indicate that the machine can do conversion from -dnl long double to integers regardless of accuracy. This flag should be -dnl set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the -dnl compiler has 'floating exception' when converting 'long double' to all -dnl integers except 'unsigned long long'. Other HP-UX systems are unknown -dnl yet. (1/8/05 - SLU) +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can do conversion from +## long double to integers regardless of accuracy. This flag should be +## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the +## compiler has 'floating exception' when converting 'long double' to all +## integers except 'unsigned long long'. Other HP-UX systems are unknown +## yet. (1/8/05 - SLU) AC_MSG_CHECKING([if converting from long double to integers works]) @@ -3215,13 +3238,13 @@ else AC_MSG_RESULT([no]) fi -dnl ----------------------------------------------------------------------- -dnl Set flag to indicate that the machine can handle conversion from -dnl integers to long double. (This flag should be set "yes" for all -dnl machines except all SGIs, where some conversions are -dnl incorrect and its cache value is set "no" in its config/irix6.x and -dnl irix5.x) -dnl +## ----------------------------------------------------------------------- +## Set flag to indicate that the machine can handle conversion from +## integers to long double. (This flag should be set "yes" for all +## machines except all SGIs, where some conversions are +## incorrect and its cache value is set "no" in its config/irix6.x and +## irix5.x) +## AC_MSG_CHECKING([if accurately converting from integers to long double]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3238,14 +3261,14 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl 'unsigned long' to 'float' values. -dnl (This flag should be set for all machines, except for Pathscale compiler -dnl on Sandia's Linux machine where the compiler interprets 'unsigned long' -dnl values as negative when the first bit of 'unsigned long' is on during -dnl the conversion to float.) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'unsigned long' to 'float' values. +## (This flag should be set for all machines, except for Pathscale compiler +## on Sandia's Linux machine where the compiler interprets 'unsigned long' +## values as negative when the first bit of 'unsigned long' is on during +## the conversion to float.) +## AC_MSG_CHECKING([if accurately converting unsigned long to float values]) AC_CACHE_VAL([hdf5_cv_ulong_to_float_accurate], @@ -3288,14 +3311,14 @@ else fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl 'unsigned (long) long' values to 'float' and 'double' values. -dnl (This flag should be set for all machines, except for the SGIs, where -dnl the cache value is set in the config/irix6.x config file) and Solaris -dnl 64-bit machines, where the short program below tests if round-up is -dnl correctly handled. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'unsigned (long) long' values to 'float' and 'double' values. +## (This flag should be set for all machines, except for the SGIs, where +## the cache value is set in the config/irix6.x config file) and Solaris +## 64-bit machines, where the short program below tests if round-up is +## correctly handled. +## AC_MSG_CHECKING([if accurately converting unsigned long long to floating-point values]) if test ${host_os_novers} = "solaris2.x"; then @@ -3372,13 +3395,13 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl 'float' or 'double' to 'unsigned long long' values. -dnl (This flag should be set for all machines, except for PGI compiler -dnl where round-up happens when the fraction of float-point value is greater -dnl than 0.5. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'float' or 'double' to 'unsigned long long' values. +## (This flag should be set for all machines, except for PGI compiler +## where round-up happens when the fraction of float-point value is greater +## than 0.5. +## AC_MSG_CHECKING([if accurately roundup converting floating-point to unsigned long long values]) AC_CACHE_VAL([hdf5_cv_fp_to_ullong_accurate], @@ -3409,13 +3432,13 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl 'float', 'double' or 'long double' to 'unsigned long long' values. -dnl (This flag should be set for all machines, except for HP-UX machines -dnl where the maximal number for unsigned long long is 0x7fffffffffffffff -dnl during conversion. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'float', 'double' or 'long double' to 'unsigned long long' values. +## (This flag should be set for all machines, except for HP-UX machines +## where the maximal number for unsigned long long is 0x7fffffffffffffff +## during conversion. +## AC_MSG_CHECKING([if right maximum converting floating-point to unsigned long long values]) AC_CACHE_VAL([hdf5_cv_fp_to_ullong_right_maximum], @@ -3453,11 +3476,11 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl 'long double' to 'unsigned int' values. (This flag should be set for -dnl all machines, except for some Intel compilers on some Linux.) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'long double' to 'unsigned int' values. (This flag should be set for +## all machines, except for some Intel compilers on some Linux.) +## AC_MSG_CHECKING([if correctly converting long double to unsigned int values]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3489,13 +3512,13 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can _compile_ -dnl 'unsigned long long' to 'float' and 'double' typecasts. -dnl (This flag should be set for all machines, except for under Windows when -dnl compiled with Visual Studio 6, where the macro value is set in the -dnl src/H5pubconf.h file) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can _compile_ +## 'unsigned long long' to 'float' and 'double' typecasts. +## (This flag should be set for all machines, except for under Windows when +## compiled with Visual Studio 6, where the macro value is set in the +## src/H5pubconf.h file) +## AC_MSG_CHECKING([if compiling unsigned long long to floating-point typecasts work]) AC_CACHE_VAL([hdf5_cv_ullong_to_fp_cast_works], [hdf5_cv_ullong_to_fp_cast_works=yes]) @@ -3507,13 +3530,13 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can _compile_ -dnl 'long long' to 'float' and 'double' typecasts. -dnl (This flag should be set for all machines, except for under Windows when -dnl compiled with Visual Studio 6, where the macro value is set in the -dnl src/H5pubconf.h file) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can _compile_ +## 'long long' to 'float' and 'double' typecasts. +## (This flag should be set for all machines, except for under Windows when +## compiled with Visual Studio 6, where the macro value is set in the +## src/H5pubconf.h file) +## AC_MSG_CHECKING([if compiling long long to floating-point typecasts work]) AC_CACHE_VAL([hdf5_cv_llong_to_fp_cast_works], [hdf5_cv_llong_to_fp_cast_works=yes]) @@ -3525,13 +3548,13 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can convert from -dnl 'unsigned long long' to 'long double' without precision loss. -dnl (This flag should be set for all machines, except for FreeBSD(sleipnir) -dnl where the last 2 bytes of mantissa are lost when compiler tries to do -dnl the conversion, and Cygwin where compiler doesn't do rounding correctly.) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can convert from +## 'unsigned long long' to 'long double' without precision loss. +## (This flag should be set for all machines, except for FreeBSD(sleipnir) +## where the last 2 bytes of mantissa are lost when compiler tries to do +## the conversion, and Cygwin where compiler doesn't do rounding correctly.) +## AC_MSG_CHECKING([if converting unsigned long long to long double with precision]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3623,13 +3646,13 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can handle overflow converting -dnl all floating-point to all integer types. -dnl (This flag should be set for all machines, except for Cray X1 where -dnl floating exception is generated when the floating-point value is greater -dnl than the maximal integer value). -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can handle overflow converting +## all floating-point to all integer types. +## (This flag should be set for all machines, except for Cray X1 where +## floating exception is generated when the floating-point value is greater +## than the maximal integer value). +## AC_MSG_CHECKING([if overflows normally converting floating-point to integer values]) AC_CACHE_VAL([hdf5_cv_fp_to_integer_overflow_works], @@ -3654,15 +3677,15 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine is using a special algorithm to convert -dnl 'long double' to '(unsigned) long' values. (This flag should only be set for -dnl the IBM Power6 Linux. When the bit sequence of long double is -dnl 0x4351ccf385ebc8a0bfcc2a3c3d855620, the converted value of (unsigned)long -dnl is 0x004733ce17af227f, not the same as the library's conversion to 0x004733ce17af2282. -dnl The machine's conversion gets the correct value. We define the macro and disable -dnl this kind of test until we figure out what algorithm they use. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine is using a special algorithm to convert +## 'long double' to '(unsigned) long' values. (This flag should only be set for +## the IBM Power6 Linux. When the bit sequence of long double is +## 0x4351ccf385ebc8a0bfcc2a3c3d855620, the converted value of (unsigned)long +## is 0x004733ce17af227f, not the same as the library's conversion to 0x004733ce17af2282. +## The machine's conversion gets the correct value. We define the macro and disable +## this kind of test until we figure out what algorithm they use. +## AC_MSG_CHECKING([if using special algorithm to convert long double to (unsigned) long values]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3734,14 +3757,14 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine is using a special algorithm -dnl to convert some values of '(unsigned) long' to 'long double' values. -dnl (This flag should be off for all machines, except for IBM Power6 Linux, -dnl when the bit sequences are 003fff..., 007fff..., 00ffff..., 01ffff..., -dnl ..., 7fffff..., the compiler uses a unknown algorithm. We define a -dnl macro and skip the test for now until we know about the algorithm. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine is using a special algorithm +## to convert some values of '(unsigned) long' to 'long double' values. +## (This flag should be off for all machines, except for IBM Power6 Linux, +## when the bit sequences are 003fff..., 007fff..., 00ffff..., 01ffff..., +## ..., 7fffff..., the compiler uses a unknown algorithm. We define a +## macro and skip the test for now until we know about the algorithm. +## AC_MSG_CHECKING([if using special algorithm to convert (unsigned) long to long double values]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3815,15 +3838,15 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl 'long double' to '(unsigned) long long' values. (This flag should be set for -dnl all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence -dnl of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long -dnl start to go wrong on these two machines. Adjusting it higher to -dnl 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted -dnl values wildly wrong. This test detects this wrong behavior and disable the test. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## 'long double' to '(unsigned) long long' values. (This flag should be set for +## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence +## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long +## start to go wrong on these two machines. Adjusting it higher to +## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted +## values wildly wrong. This test detects this wrong behavior and disable the test. +## AC_MSG_CHECKING([if correctly converting long double to (unsigned) long long values]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3879,13 +3902,13 @@ else fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine can accurately convert -dnl '(unsigned) long long' to 'long double' values. (This flag should be set for -dnl all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., -dnl 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice -dnl as big as they should be. -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine can accurately convert +## '(unsigned) long long' to 'long double' values. (This flag should be set for +## all machines, except for Mac OS 10.4, when the bit sequences are 003fff..., +## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice +## as big as they should be. +## AC_MSG_CHECKING([if correctly converting (unsigned) long long to long double values]) if test ${ac_cv_sizeof_long_double} = 0; then @@ -3944,12 +3967,12 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set the flag to indicate that the machine generates bad code -dnl for the H5V_log2_gen() routine in src/H5Vprivate.h -dnl (This flag should be set to no for all machines, except for SGI IRIX64, -dnl where the cache value is set to yes in it's config file) -dnl +## ---------------------------------------------------------------------- +## Set the flag to indicate that the machine generates bad code +## for the H5V_log2_gen() routine in src/H5Vprivate.h +## (This flag should be set to no for all machines, except for SGI IRIX64, +## where the cache value is set to yes in it's config file) +## AC_MSG_CHECKING([if bad code for log2 routine is generated]) AC_CACHE_VAL([hdf5_cv_bad_log2_code_generated], [hdf5_cv_bad_log2_code_generated=no]) @@ -3961,28 +3984,28 @@ else AC_MSG_RESULT([no]) fi -dnl ---------------------------------------------------------------------- -dnl Set some variables for general configuration information to be saved -dnl and installed with the libraries. -dnl +## ---------------------------------------------------------------------- +## Set some variables for general configuration information to be saved +## and installed with the libraries. +## -dnl HDF5 version from the first line of the README.txt file. +## HDF5 version from the first line of the README.txt file. H5_VERSION="`cut -d' ' -f3 $srcdir/README.txt | head -1`" AC_SUBST([H5_VERSION]) -dnl Configuration date +## Configuration date AC_SUBST([CONFIG_DATE]) CONFIG_DATE="`date`" -dnl User doing the configuration +## User doing the configuration AC_SUBST([CONFIG_USER]) CONFIG_USER="`whoami`@`hostname`" if test -n "$ORGANIZATION"; then CONFIG_USER="$CONFIG_USER at $ORGANIZATION" fi -dnl Configuration mode (production, development, profile, etc) saved above. +## Configuration mode (production, development, profile, etc) saved above. AC_SUBST([CONFIG_MODE]) -dnl Byte sex from the AC_C_BIGENDIAN macro. +## Byte sex from the AC_C_BIGENDIAN macro. AC_SUBST([BYTESEX]) if test "X$ac_cv_c_bigendian" = "Xyes"; then BYTESEX="big-endian" @@ -3998,13 +4021,13 @@ else fi AC_SUBST([WORDS_BIGENDIAN]) -dnl Parallel support? (set above except empty if none) +## Parallel support? (set above except empty if none) PARALLEL=${PARALLEL:-no} -dnl Compiler with version information. This consists of the full path -dnl name of the compiler and the reported version number. +## Compiler with version information. This consists of the full path +## name of the compiler and the reported version number. AC_SUBST([CC_VERSION]) -dnl Strip anything that looks like a flag off of $CC +## Strip anything that looks like a flag off of $CC CC_NOFLAGS=`echo $CC | sed 's/ -.*//'` if `echo $CC_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -4023,7 +4046,7 @@ if test -n "$cc_version_info"; then fi AC_SUBST([FC_VERSION]) -dnl Strip anything that looks like a flag off of $CC +## Strip anything that looks like a flag off of $CC FC_NOFLAGS=`echo $FC | sed 's/ -.*//'` if `echo $FC_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -4042,7 +4065,7 @@ if test -n "$fc_version_info"; then fi AC_SUBST([CXX_VERSION]) -dnl Strip anything that looks like a flag off of $CC +## Strip anything that looks like a flag off of $CC CXX_NOFLAGS=`echo $CXX | sed 's/ -.*//'` if `echo $CXX_NOFLAGS | grep ^/ >/dev/null 2>&1`; then @@ -4060,12 +4083,12 @@ if test -n "$cxx_version_info"; then CXX_VERSION="$CXX_VERSION ( $cxx_version_info)" fi -dnl ---------------------------------------------------------------------- -dnl Where is the root of the source tree. Give an absolute address so -dnl we can find it no matter which directory of the distribution is our -dnl current directory. The built-in pwd fails on some systems, but the -dnl /bin/pwd version works OK. -dnl +## ---------------------------------------------------------------------- +## Where is the root of the source tree. Give an absolute address so +## we can find it no matter which directory of the distribution is our +## current directory. The built-in pwd fails on some systems, but the +## /bin/pwd version works OK. +## if test -x /bin/pwd; then pwd=/bin/pwd else @@ -4073,16 +4096,16 @@ else fi AC_SUBST([ROOT]) ROOT="`$pwd`" -dnl ---------------------------------------------------------------------- -dnl Move any compiler-specific libraries into the main LIBS varaible. -dnl +## ---------------------------------------------------------------------- +## Move any compiler-specific libraries into the main LIBS varaible. +## LIBS="$DEFAULT_LIBS $LIBS" -dnl ---------------------------------------------------------------------- -dnl Determine the runtime libraries we may need to include in the -dnl libtools command so that executables will find the correct dynamic -dnl libraries. -dnl +## ---------------------------------------------------------------------- +## Determine the runtime libraries we may need to include in the +## libtools command so that executables will find the correct dynamic +## libraries. +## AC_SUBST([DYNAMIC_DIRS]) DYNAMIC_DIRS="" if test -n "$AM_LDFLAGS $LDFLAGS"; then @@ -4092,8 +4115,8 @@ if test -n "$AM_LDFLAGS $LDFLAGS"; then d="`echo $d | sed -e 's/-L//g'`" case "$d" in .*) - dnl If the path isn't absolute, make it so by - dnl prepending the ROOT directory to it. + ## If the path isn't absolute, make it so by + ## prepending the ROOT directory to it. d=${ROOT}/$d ;; esac @@ -4108,8 +4131,8 @@ if test -n "$AM_CPPFLAGS"; then for d in $AM_CPPFLAGS ; do case "$d" in -I.*) - dnl If the path isn't absolute, make it so by prepending - dnl the ROOT directory to it. + ## If the path isn't absolute, make it so by prepending + ## the ROOT directory to it. d="`echo $d | sed -e 's/-I//g'`" d="-I${ROOT}/${d}" ;; @@ -4119,16 +4142,16 @@ if test -n "$AM_CPPFLAGS"; then AM_CPPFLAGS=$TEMP_CPPFLAGS fi -dnl ---------------------------------------------------------------------- -dnl Check if they would like the High Level library compiled -dnl +## ---------------------------------------------------------------------- +## Check if they would like the High Level library compiled +## AC_SUBST(HL) HL="" -# name of fortran folder inside "hl", if FORTRAN compile is requested +## name of fortran folder inside "hl", if FORTRAN compile is requested AC_SUBST(HL_FOR) HL_FOR="" AC_MSG_CHECKING([if high level library is enabled]) AC_ARG_ENABLE([hl], - [AC_HELP_STRING([--enable-hl], + [AS_HELP_STRING([--enable-hl], [Enable the high level library [default=yes]])], [HDF5_HL=$enableval], [HDF5_HL=yes]) @@ -4142,14 +4165,14 @@ else echo "no" fi -dnl ---------------------------------------------------------------------- -dnl Some programs shouldn't be built by default (e.g., programs to generate -dnl data files used by tests, some optional tests). -dnl Check if they want such programs built anyway. -dnl +## ---------------------------------------------------------------------- +## Some programs shouldn't be built by default (e.g., programs to generate +## data files used by tests, some optional tests). +## Check if they want such programs built anyway. +## AC_MSG_CHECKING([additional programs should be built]) AC_ARG_ENABLE([build-all], - [AC_HELP_STRING([--enable-build-all], + [AS_HELP_STRING([--enable-build-all], [Build helper programs that only developers should need [default=no]])], [BUILD_ALL=$enableval], [BUILD_ALL=no]) @@ -4161,13 +4184,13 @@ else fi AM_CONDITIONAL([BUILD_ALL_CONDITIONAL], [test "X$BUILD_ALL" = "Xyes"]) -dnl ---------------------------------------------------------------------- -dnl Enable deprecated public API symbols -dnl +## ---------------------------------------------------------------------- +## Enable deprecated public API symbols +## AC_SUBST([DEPRECATED_SYMBOLS]) AC_MSG_CHECKING([if deprecated public symbols are available]); AC_ARG_ENABLE([deprecated-symbols], - [AC_HELP_STRING([--enable-deprecated-symbols], + [AS_HELP_STRING([--enable-deprecated-symbols], [Enable deprecated public API symbols [default=yes]])], [DEPREC_SYMBOLS=$enableval], [DEPREC_SYMBOLS=yes]) @@ -4185,17 +4208,17 @@ case "X-$DEPREC_SYMBOLS" in ;; esac -dnl -------------------------------------------------------------------------- -dnl Which version of the public APIs should the 'base' versioned symbols use? -dnl +## -------------------------------------------------------------------------- +## Which version of the public APIs should the 'base' versioned symbols use? +## AC_SUBST([DEFAULT_API_VERSION]) AC_MSG_CHECKING([which version of public symbols to use by default]) AC_ARG_WITH([default-api-version], - [AC_HELP_STRING([--with-default-api-version=(v16|v18|v110)], + [AS_HELP_STRING([--with-default-api-version=(v16|v18|v110)], [Specify default release version of public symbols [default=v110]])],, - withval=v110) + [withval=v110]) if test "X$withval" = "Xv16"; then AC_MSG_RESULT([v16]) @@ -4212,28 +4235,28 @@ else AC_MSG_ERROR([invalid version of public symbols given]) fi -dnl It's an error to try to disable deprecated public API symbols while -dnl choosing an older version of the public API as the default. However, -dnl if the user insists on doing this via the --enable-unsupported configure -dnl flag, we'll let them. +## It's an error to try to disable deprecated public API symbols while +## choosing an older version of the public API as the default. However, +## if the user insists on doing this via the --enable-unsupported configure +## flag, we'll let them. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then if test "X${DEFAULT_API_VERSION}" != "Xv110" -a "X${DEPRECATED_SYMBOLS}" = "Xno" ; then AC_MSG_ERROR([Removing old public API symbols not allowed when using them as default public API symbols. Use --enable-unsupported to override this error.]) fi fi -dnl ---------------------------------------------------------------------- -dnl Enable strict file format checks -dnl +## ---------------------------------------------------------------------- +## Enable strict file format checks +## AC_SUBST([STRICT_FORMAT_CHECKS]) AC_MSG_CHECKING([Whether to perform strict file format checks]); AC_ARG_ENABLE([strict-format-checks], - [AC_HELP_STRING([--enable-strict-format-checks], + [AS_HELP_STRING([--enable-strict-format-checks], [Enable strict file format checks, default=yes if debug flag is enabled, no otherwise])], [STRICT_CHECKS=$enableval]) -dnl Default to yes if debug is enabled +## Default to yes if debug is enabled if test "X-$STRICT_CHECKS" = X- ; then if test -z "$DEBUG_PKG" ; then STRICT_CHECKS=no @@ -4256,12 +4279,12 @@ case "X-$STRICT_CHECKS" in esac -dnl ---------------------------------------------------------------------- -dnl Enable embedded library information -dnl +## ---------------------------------------------------------------------- +## Enable embedded library information +## AC_MSG_CHECKING([Whether to have library information embedded in the executables]) AC_ARG_ENABLE([embedded-libinfo], - [AC_HELP_STRING([--enable-embedded-libinfo], + [AS_HELP_STRING([--enable-embedded-libinfo], [Enable embedded library information [default=yes]])], [enable_embedded_libinfo=$enableval], [enable_embedded_libinfo=yes]) @@ -4275,9 +4298,9 @@ AC_ARG_ENABLE([embedded-libinfo], fi -dnl ---------------------------------------------------------------------- -dnl Check if pointer alignments are enforced -dnl +## ---------------------------------------------------------------------- +## Check if pointer alignments are enforced +## AC_MSG_CHECKING([if alignment restrictions are strictly enforced]) AC_RUN_IFELSE([ AC_LANG_PROGRAM([ @@ -4323,8 +4346,8 @@ AC_RUN_IFELSE([ ]) -dnl ---------------------------------------------------------------------- -dnl Restore user's CFLAGS. +## ---------------------------------------------------------------------- +## Restore user's CFLAGS. CFLAGS="$saved_user_CFLAGS" FCFLAGS="$saved_user_FCFLAGS" CXXFLAGS="$saved_user_CXXFLAGS" @@ -4332,9 +4355,9 @@ CPPFLAGS="$saved_user_CPPFLAGS" LDFLAGS="$saved_user_LDFLAGS" -dnl ---------------------------------------------------------------------- -dnl Create automake conditionals to tell automake makefiles which directories -dnl need to be compiled +## ---------------------------------------------------------------------- +## Create automake conditionals to tell automake makefiles which directories +## need to be compiled AM_CONDITIONAL([BUILD_CXX_CONDITIONAL], [test "X$HDF_CXX" = "Xyes"]) AM_CONDITIONAL([BUILD_PARALLEL_CONDITIONAL], [test -n "$TESTPARALLEL"]) @@ -4342,37 +4365,37 @@ AM_CONDITIONAL([BUILD_FORTRAN_CONDITIONAL], [test "X$HDF_FORTRAN" = "Xyes"]) AM_CONDITIONAL([BUILD_HDF5_HL_CONDITIONAL], [test "X$HDF5_HL" = "Xyes"]) -dnl ---------------------------------------------------------------------- -dnl Build the Makefiles. -dnl +## ---------------------------------------------------------------------- +## Build the Makefiles. +## -dnl The directory search list +## The directory search list AC_SUBST([SEARCH]) SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src' cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"' SEARCH="$SEARCH_RULE`eval $cmd`" export SEARCH -dnl We don't need to say when we're entering directories if we're using -dnl GNU make because make does it for us. +## We don't need to say when we're entering directories if we're using +## GNU make because make does it for us. if test "X$GMAKE" = "Xyes"; then AC_SUBST([SETX]) SETX=":" else AC_SUBST([SETX]) SETX="set -x" fi -dnl Some cleanup stuff +## Some cleanup stuff rm -f conftest conftest.o conftest.c dummy.o *.mod -dnl Build config.status, touch the stamp files, and build all the Makefiles. -dnl The order is such that the first `make' does not need to update any -dnl configuration information. See config/commence.in for the order in which -dnl things need to be done. +## Build config.status, touch the stamp files, and build all the Makefiles. +## The order is such that the first `make' does not need to update any +## configuration information. See config/commence.in for the order in which +## things need to be done. -# First the stamp1 file for H5config.h.in +## First the stamp1 file for H5config.h.in mkdir ./config >/dev/null 2>&1 touch ./config/stamp1 -# Then the config.status file (but not makefiles) +## Then the config.status file (but not makefiles) saved_no_create=$no_create no_create=yes @@ -4467,16 +4490,16 @@ AC_OUTPUT LT_OUTPUT no_create=$saved_no_create -# Then the stamp2 file for H5config.h +## Then the stamp2 file for H5config.h touch ./config/stamp2 -# Finally the makefiles +## Finally the makefiles test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 -dnl Post processing to patch up some deficiencies in libtool +## Post processing to patch up some deficiencies in libtool case $host_os in linux* | freebsd* ) - # If gcc is not used, need to set $wl to use "-Wl," + ## If gcc is not used, need to set $wl to use "-Wl," if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then : using gcc else @@ -4490,12 +4513,12 @@ EOF ;; esac -dnl Are we compiling static libraries, shared libraries, or both? This -dnl is only used for the libhdf5.settings file. We can't just look at -dnl $enable_static and $enable_shared because if they're yes the ltconfig -dnl might have decided that one or the other is simply not possible. -dnl Therefore we have to ask the generated `libtool' shell script -dnl which 'features' it has enabled. +## Are we compiling static libraries, shared libraries, or both? This +## is only used for the libhdf5.settings file. We can't just look at +## $enable_static and $enable_shared because if they're yes the ltconfig +## might have decided that one or the other is simply not possible. +## Therefore we have to ask the generated `libtool' shell script +## which 'features' it has enabled. if (./libtool --features | grep '^enable shared libraries' > /dev/null); then enable_shared=yes else @@ -4528,9 +4551,9 @@ if test "X$HDF_CXX" = "Xyes"; then chmod 755 c++/src/h5c++ fi -dnl We don't want inline defined for C++ compilers -dnl Don't worry about the C++ ifdef wrappers in the H5pubconf file, since -dnl 'H5_inline' isn't a C++ keyword. +## We don't want inline defined for C++ compilers +## Don't worry about the C++ ifdef wrappers in the H5pubconf file, since +## 'H5_inline' isn't a C++ keyword. cat >> src/H5config.h <> src/H5config.h <fileno = Oinfo.fileno; + object_info->addr = (haddr_t_f)Oinfo.addr; + + object_info->type = (int_f)Oinfo.type; + object_info->rc = (int_f)Oinfo.rc; + + ts = HDgmtime(&Oinfo.atime); + + object_info->atime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ + object_info->atime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ + object_info->atime[2] = (int_f)ts->tm_mday; + object_info->atime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ + object_info->atime[4] = (int_f)ts->tm_hour; + object_info->atime[5] = (int_f)ts->tm_min; + object_info->atime[6] = (int_f)ts->tm_sec; + object_info->atime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + + ts = HDgmtime(&Oinfo.btime); + + object_info->btime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ + object_info->btime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ + object_info->btime[2] = (int_f)ts->tm_mday; + object_info->btime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ + object_info->btime[4] = (int_f)ts->tm_hour; + object_info->btime[5] = (int_f)ts->tm_min; + object_info->btime[6] = (int_f)ts->tm_sec; + object_info->btime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + + ts = HDgmtime(&Oinfo.ctime); + + object_info->ctime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ + object_info->ctime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ + object_info->ctime[2] = (int_f)ts->tm_mday; + object_info->ctime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ + object_info->ctime[4] = (int_f)ts->tm_hour; + object_info->ctime[5] = (int_f)ts->tm_min; + object_info->ctime[6] = (int_f)ts->tm_sec; + object_info->ctime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + + ts = HDgmtime(&Oinfo.mtime); + + object_info->mtime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ + object_info->mtime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ + object_info->mtime[2] = (int_f)ts->tm_mday; + object_info->mtime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ + object_info->mtime[4] = (int_f)ts->tm_hour; + object_info->mtime[5] = (int_f)ts->tm_min; + object_info->mtime[6] = (int_f)ts->tm_sec; + object_info->mtime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + + object_info->num_attrs = (hsize_t_f)Oinfo.num_attrs; + + object_info->hdr.version = (int_f)Oinfo.hdr.version; + object_info->hdr.nmesgs = (int_f)Oinfo.hdr.nmesgs; + object_info->hdr.nchunks = (int_f)Oinfo.hdr.nchunks; + object_info->hdr.flags = (int_f)Oinfo.hdr.flags; + + object_info->hdr.space.total = (hsize_t_f)Oinfo.hdr.space.total; + object_info->hdr.space.meta = (hsize_t_f)Oinfo.hdr.space.meta; + object_info->hdr.space.mesg = (hsize_t_f)Oinfo.hdr.space.mesg; + object_info->hdr.space.free = (hsize_t_f)Oinfo.hdr.space.free; + + object_info->hdr.mesg.present = Oinfo.hdr.mesg.present; + object_info->hdr.mesg.shared = Oinfo.hdr.mesg.shared; + + object_info->meta_size.obj.index_size = (hsize_t_f)Oinfo.meta_size.obj.index_size; + object_info->meta_size.obj.heap_size = (hsize_t_f)Oinfo.meta_size.obj.heap_size; + + return 0; + +} + /****if* H5Of/h5olink_c * NAME * h5olink_c @@ -215,7 +292,7 @@ nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id) return ret_value; } -/* ***if* H5Of/H5Oget_info_by_name_c +/****if* H5Of/H5Oget_info_by_name_c * NAME * H5Oget_info_by_name_c * PURPOSE @@ -226,10 +303,7 @@ nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id) * namelen - Name length. * lapl_id - Link access property list. * OUTPUTS - * corder_valid - Indicates whether the the creation order data is valid for this attribute. - * corder - Is a positive integer containing the creation order of the attribute. - * cset - Indicates the character set used for the attribute’s name. - * data_size - indicates the size, in the number of characters, of the attribute. + * object_info - Buffer in which to return object information. * * RETURNS * 0 on success, -1 on failure @@ -261,74 +335,100 @@ nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f * &Oinfo, (hid_t)*lapl_id) < 0) HGOTO_DONE(FAIL); - object_info->fileno = Oinfo.fileno; - object_info->addr = (haddr_t_f)Oinfo.addr; - - - object_info->type = (int_f)Oinfo.type; - object_info->rc = (int_f)Oinfo.rc; - - ts = HDgmtime(&Oinfo.atime); - - object_info->atime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ - object_info->atime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ - object_info->atime[2] = (int_f)ts->tm_mday; - object_info->atime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ - object_info->atime[4] = (int_f)ts->tm_hour; - object_info->atime[5] = (int_f)ts->tm_min; - object_info->atime[6] = (int_f)ts->tm_sec; - object_info->atime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ - - ts = HDgmtime(&Oinfo.btime); - - object_info->btime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ - object_info->btime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ - object_info->btime[2] = (int_f)ts->tm_mday; - object_info->btime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ - object_info->btime[4] = (int_f)ts->tm_hour; - object_info->btime[5] = (int_f)ts->tm_min; - object_info->btime[6] = (int_f)ts->tm_sec; - object_info->btime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + ret_value = fill_h5o_info_t_f(Oinfo,object_info); - ts = HDgmtime(&Oinfo.ctime); - - object_info->ctime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ - object_info->ctime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ - object_info->ctime[2] = (int_f)ts->tm_mday; - object_info->ctime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ - object_info->ctime[4] = (int_f)ts->tm_hour; - object_info->ctime[5] = (int_f)ts->tm_min; - object_info->ctime[6] = (int_f)ts->tm_sec; - object_info->ctime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + done: + if(c_name) + HDfree(c_name); + return ret_value; +} - ts = HDgmtime(&Oinfo.mtime); +/****if* H5Of/H5Oget_info_by_idx_c + * NAME + * H5Oget_info_by_idx_c + * PURPOSE + * Calls H5Oget_info_by_idx + * INPUTS + * loc_id - File or group identifier specifying location of group in which object is located. + * name - Name of group, relative to loc_id. + * namelen - Name length. + * lapl_id - Link access property list. + * OUTPUTS + * object_info - Buffer in which to return object information. + * + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * December 1, 2008 + * SOURCE +*/ +int_f +nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, + int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info) +/******/ +{ + char *c_group_name = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; /* Return value */ + H5O_info_t Oinfo; + H5_index_t c_index_field; + H5_iter_order_t c_order; + + /* + * Convert FORTRAN name to C name + */ + if((c_group_name = HD5f2cstring( group_name, (size_t)*namelen)) == NULL) + HGOTO_DONE(FAIL); - object_info->mtime[0] = (int_f)ts->tm_year+1900; /* year starts at 1900 */ - object_info->mtime[1] = (int_f)ts->tm_mon+1; /* month starts at 0 in C */ - object_info->mtime[2] = (int_f)ts->tm_mday; - object_info->mtime[3] = 0; /* time is expressed as UTC (or GMT timezone) */ - object_info->mtime[4] = (int_f)ts->tm_hour; - object_info->mtime[5] = (int_f)ts->tm_min; - object_info->mtime[6] = (int_f)ts->tm_sec; - object_info->mtime[7] = -32767; /* millisecond is not available, assign it -HUGE(0) */ + c_index_field = (H5_index_t)*index_field; + c_order = (H5_iter_order_t)*order; - object_info->num_attrs = (hsize_t_f)Oinfo.num_attrs; + /* + * Call H5Oinfo_by_idx function. + */ + if(H5Oget_info_by_idx((hid_t)*loc_id, c_group_name, c_index_field, c_order, (hsize_t)*n, + &Oinfo, (hid_t)*lapl_id) < 0) + HGOTO_DONE(FAIL); - object_info->hdr.version = (int_f)Oinfo.hdr.version; - object_info->hdr.nmesgs = (int_f)Oinfo.hdr.nmesgs; - object_info->hdr.nchunks = (int_f)Oinfo.hdr.nchunks; - object_info->hdr.flags = (int_f)Oinfo.hdr.flags; + ret_value = fill_h5o_info_t_f(Oinfo,object_info); - object_info->hdr.space.total = (hsize_t_f)Oinfo.hdr.space.total; - object_info->hdr.space.meta = (hsize_t_f)Oinfo.hdr.space.meta; - object_info->hdr.space.mesg = (hsize_t_f)Oinfo.hdr.space.mesg; - object_info->hdr.space.free = (hsize_t_f)Oinfo.hdr.space.free; + done: + if(c_group_name) + HDfree(c_group_name); + return ret_value; +} - object_info->hdr.mesg.present = Oinfo.hdr.mesg.present; - object_info->hdr.mesg.shared = Oinfo.hdr.mesg.shared; +/****if* H5Of/H5Oget_info_c + * NAME + * H5Oget_info_c + * PURPOSE + * Calls H5Oget_info + * INPUTS + * object_id - Identifier for target object. + * OUTPUTS + * object_info - Buffer in which to return object information. + * + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 16, 2012 + * SOURCE +*/ +int_f +nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info) +/******/ +{ + int_f ret_value = 0; /* Return value */ + H5O_info_t Oinfo; + + /* + * Call H5Oinfo_by_name function. + */ + if(H5Oget_info((hid_t)*object_id, &Oinfo) < 0) + HGOTO_DONE(FAIL); - object_info->meta_size.obj.index_size = (hsize_t_f)Oinfo.meta_size.obj.index_size; - object_info->meta_size.obj.heap_size = (hsize_t_f)Oinfo.meta_size.obj.heap_size; + ret_value = fill_h5o_info_t_f(Oinfo,object_info); done: return ret_value; @@ -391,3 +491,428 @@ nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, return ret_value; } + +/****if* H5Of/h5ovisit_by_name_c + * NAME + * h5ovisit_by_name_c + * PURPOSE + * Calls H5Ovisit_by_name + * INPUTS + * object_id - Identifier specifying subject group + * index_type - Type of index which determines the order + * order - Order within index + * idx - Iteration position at which to start + * op - Callback function passing data regarding the link to the calling application + * op_data - User-defined pointer to data required by the application for its processing of the link + * + * OUTPUTS + * idx - Position at which an interrupted iteration may be restarted + * + * RETURNS + * >0 on success, 0< on failure + * AUTHOR + * M. Scot Breitenfeld + * May 16, 2012 + * SOURCE +*/ +int_f +nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, + H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ) +/******/ +{ + int_f ret_value = -1; /* Return value */ + herr_t func_ret_value; /* H5Linterate return value */ + char *c_object_name = NULL; /* Buffer to hold C string */ + + + /* + * Convert FORTRAN name to C name + */ + if( (c_object_name = HD5f2cstring(object_name, (size_t)*namelen)) == NULL) + HGOTO_DONE(FAIL); + + /* + * Call H5Ovisit + */ + func_ret_value = H5Ovisit_by_name( (hid_t)*loc_id, c_object_name, (H5_index_t)*index_type, (H5_iter_order_t)*order, + op, op_data, (hid_t)*lapl_id); + ret_value = (int_f)func_ret_value; + + done: + if(c_object_name) + HDfree(c_object_name); + return ret_value; + +} + +/****if* H5Of/h5odecr_refcount_c + * NAME + * h5odecr_refcount_c + * PURPOSE + * Calls H5Odecr_refcount + * INPUTS + * object_id - Object identifier. + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 16, 2012 + * SOURCE +*/ +int_f +nh5odecr_refcount_c (hid_t_f *object_id) +/******/ +{ + int_f ret_value = 0; /* Return value */ + + /* + * Call H5Odecr_refcount function. + */ + if((hid_t_f)H5Odecr_refcount((hid_t)*object_id) < 0) + HGOTO_DONE(FAIL); + + done: + return ret_value; +} + +/****if* H5Of/h5oexists_by_name_c + * NAME + * h5oexists_by_name_c + * PURPOSE + * Calls H5Oexists_by_name + * INPUTS + * loc_id - File or group identifier + * name - Attribute access property list + * namelen - Size of name + * lapl_id - Link access property list + * + * RETURNS + * link status: 0 = false, 1 = true, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 17, 2012 + * SOURCE +*/ +int_f +nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id) +/******/ +{ + char *c_name = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; /* Return value */ + htri_t status = 0; + + /* + * Convert FORTRAN name to C name + */ + if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL) + HGOTO_DONE(FAIL); + + /* + * Call H5Oopen function. + */ + if((ret_value = (int_f)H5Oexists_by_name((hid_t)*loc_id, c_name, (hid_t)*lapl_id)) < 0) + HGOTO_DONE(FAIL); + + done: + if(c_name) + HDfree(c_name); + return ret_value; +} + +/****if* H5Of/h5oincr_refcount_c + * NAME + * h5oincr_refcount_c + * PURPOSE + * Calls H5Oincr_refcount + * INPUTS + * object_id - Object identifier. + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 16, 2012 + * SOURCE +*/ +int_f +nh5oincr_refcount_c (hid_t_f *object_id) +/******/ +{ + int_f ret_value = 0; /* Return value */ + + /* + * Call H5Oincr_refcount function. + */ + if((hid_t_f)H5Oincr_refcount((hid_t)*object_id) < 0) + HGOTO_DONE(FAIL); + + done: + return ret_value; +} + +/****if* H5Of/h5oset_comment_c + * NAME + * h5oset_comment_c + * PURPOSE + * Calls H5Oset_comment + * INPUTS + * object_id - Identifier of the target object. + * comment - The new comment. + * commentlen - Length of the comment. + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 17, 2012 + * SOURCE +*/ +int_f +nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen) +/******/ +{ + char *c_comment = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; /* Return value */ + + /* + * Convert FORTRAN string to C string + */ + if((c_comment = HD5f2cstring(comment, (size_t)*commentlen)) == NULL) + HGOTO_DONE(FAIL); + + /* + * Call H5Oset_comment function. + */ + if((hid_t_f)H5Oset_comment((hid_t)*object_id, c_comment) < 0) + HGOTO_DONE(FAIL); + + done: + if(c_comment) + HDfree(c_comment); + return ret_value; +} + +/****if* H5Of/h5oset_comment_by_name_c + * NAME + * h5oset_comment_by_name_c + * PURPOSE + * Calls H5Oset_comment_by_name + * INPUTS + * object_id - Identifier of the target object. + * name - Name of the object whose comment is to be set or reset, + * specified as a path relative to loc_id. + * namelen - Length of the name. + * comment - The new comment. + * commentlen - Length of the comment. + * lapl_id - Link access property list identifier. + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 17, 2012 + * SOURCE +*/ +int_f +nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id) +/******/ +{ + char *c_comment = NULL; /* Buffer to hold C string */ + char *c_name = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; /* Return value */ + + /* + * Convert FORTRAN string to C string + */ + if((c_comment = HD5f2cstring(comment, (size_t)*commentlen)) == NULL) + HGOTO_DONE(FAIL); + /* + * Convert FORTRAN string to C string + */ + if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL) + HGOTO_DONE(FAIL); + + /* + * Call H5Oset_comment_by_name function. + */ + if((hid_t_f)H5Oset_comment_by_name((hid_t)*object_id, c_name, c_comment, (hid_t)*lapl_id) < 0) + HGOTO_DONE(FAIL); + + done: + if(c_name) + HDfree(c_name); + if(c_comment) + HDfree(c_comment); + return ret_value; +} +/****if* H5Of/h5oopen_by_idx_c + * NAME + * h5oopen_by_idx_c + * PURPOSE + * Calls H5Oopen_by_idx_c + * INPUTS + * loc_id - A file or group identifier. + * group_name - Name of group, relative to loc_id, in which object is located. + * group_namelen - Length of group_name + * index_type - Type of index by which objects are ordered. + * order - Order of iteration within index. + * n - Object to open. + * lapl_id - Link access property list. + * OUTPUTS + * obj_id - An object identifier for the opened object. + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * May 17, 2012 + * SOURCE +*/ +int_f +nh5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *obj_id, hid_t_f *lapl_id) +/******/ +{ + char *c_group_name = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; + H5_index_t c_index_type; + H5_iter_order_t c_order; + + /* + * Convert FORTRAN string to C string + */ + if((c_group_name = HD5f2cstring( group_name, (size_t)*group_namelen)) == NULL) + HGOTO_DONE(FAIL); + + c_index_type = (H5_index_t)*index_type; + c_order = (H5_iter_order_t)*order; + + /* + * Call H5Oopen_by_idx function. + */ + if((*obj_id =(hid_t_f)H5Oopen_by_idx((hid_t)*loc_id, c_group_name, c_index_type, c_order, (hsize_t)*n, (hid_t)*lapl_id)) < 0) + HGOTO_DONE(FAIL); + + done: + if(c_group_name) + HDfree(c_group_name); + return ret_value; +} + +/****if* H5Of/h5oget_comment_c + * NAME + * h5oget_comment_c + * PURPOSE + * Calls H5Oget_comment + * INPUTS + * object_id - Identifier for the target object. + * bufsize - Anticipated required size of the comment buffer. + * OUTPUTS + * comment - The comment. + * + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * June 24, 2012 + * SOURCE +*/ +int_f +nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize) +/******/ +{ + char *c_comment = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; /* Return value */ + size_t c_commentsize; + + c_commentsize = (size_t)*commentsize + 1; + + /* + * Allocate buffer to hold comment name + */ + + if(NULL == (c_comment = (char *)HDmalloc(c_commentsize))) + HGOTO_DONE(FAIL); + + /* + * Call H5Oget_comment function. + */ + + if((*bufsize = (hssize_t_f)H5Oget_comment((hid_t)*object_id, c_comment, (size_t)*commentsize)) < 0) + HGOTO_DONE(FAIL); + + /* + * Convert C name to FORTRAN and place it in the given buffer + */ + if(c_comment) + HD5packFstring(c_comment, _fcdtocp(comment), c_commentsize - 1); + return ret_value; + + done: + if(c_comment) + HDfree(c_comment); + + return ret_value; +} + +/****if* H5Of/h5oget_comment_by_name_c + * NAME + * h5oget_comment_by_name_c + * PURPOSE + * Calls H5Oget_comment_by_name + * INPUTS + * object_id - Identifier for the target object. + * bufsize - Anticipated required size of the comment buffer. + * OUTPUTS + * comment - The comment. + * + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * July 6, 2012 + * SOURCE +*/ +int_f +nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, + _fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id) +/******/ +{ + char *c_comment = NULL; /* Buffer to hold C string */ + char *c_name = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; /* Return value */ + size_t c_commentsize; + + /* + * Convert FORTRAN string to C string + */ + if((c_name = HD5f2cstring(name, (size_t)*name_size)) == NULL) + HGOTO_DONE(FAIL); + + c_commentsize = (size_t)*commentsize + 1; + + /* + * Allocate buffer to hold comment name + */ + + if(NULL == (c_comment = (char *)HDmalloc(c_commentsize))) + HGOTO_DONE(FAIL); + + /* + * Call H5Oget_comment_by_name function. + */ + + if((*bufsize = (size_t_f)H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0) + HGOTO_DONE(FAIL); + + /* + * Convert C name to FORTRAN and place it in the given buffer + */ + if(c_comment) + HD5packFstring(c_comment, _fcdtocp(comment), c_commentsize - 1); + return ret_value; + + done: + if(c_comment) + HDfree(c_comment); + if(c_name) + HDfree(c_name); + + return ret_value; +} diff --git a/fortran/src/H5Off.f90 b/fortran/src/H5Off.f90 index 4f1ea18..ce8c55c 100644 --- a/fortran/src/H5Off.f90 +++ b/fortran/src/H5Off.f90 @@ -119,15 +119,15 @@ CONTAINS ! Opens an object in an HDF5 file by location identifier and path name. ! ! Inputs: -! loc_id - File or group identifier. -! name - Path to the object, relative to loc_id. +! loc_id - File or group identifier. +! name - Path to the object, relative to loc_id. ! ! Outputs: -! obj_id - Object identifier for the opened object. -! hdferr - Returns 0 if successful and -1 if fails. +! obj_id - Object identifier for the opened object. +! hdferr - Returns 0 if successful and -1 if fails. ! ! Optional parameters: -! lapl_id - Access property list identifier for the link pointing to the object. +! lapl_id - Access property list identifier for the link pointing to the object. ! ! AUTHOR ! M. Scot Breitenfeld @@ -215,12 +215,12 @@ CONTAINS ! Opens an object using its address within an HDF5 file. ! ! Inputs: -! loc_id - File or group identifier. -! addr - Object’s address in the file. +! loc_id - File or group identifier. +! addr - Object’s address in the file. ! ! Outputs: -! obj_id - Object identifier for the opened object. -! hdferr - Returns 0 if successful and -1 if fails. +! obj_id - Object identifier for the opened object. +! hdferr - Returns 0 if successful and -1 if fails. ! ! AUTHOR ! M. Scot Breitenfeld @@ -321,5 +321,455 @@ CONTAINS END SUBROUTINE h5ocopy_f +!****s* H5O/h5odecr_refcount_f +! NAME +! h5odecr_refcount_f +! +! PURPOSE +! Decrements an object reference count. +! +! Inputs: +! object_id - Object identifier. +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5odecr_refcount_f(object_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: object_id + INTEGER , INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION h5odecr_refcount_c(object_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ODECR_REFCOUNT_C'::h5odecr_refcount_c + !DEC$ENDIF + INTEGER(HID_T) , INTENT(IN) :: object_id + END FUNCTION h5odecr_refcount_c + END INTERFACE + + hdferr = h5odecr_refcount_c(object_id) + + END SUBROUTINE h5odecr_refcount_f + +!****s* H5O/h5oexists_by_name_f +! NAME +! h5oexists_by_name_f +! +! PURPOSE +! Determines whether a link resolves to an actual object. +! +! Inputs: +! loc_id - Identifier of the file or group to query. +! name - The name of the link to check. +! +! +! Optional parameters: +! lapl_id - Link access property list identifier. +! +! Outputs: +! link_exists - Existing link resolves to an object. +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oexists_by_name_f(loc_id, name, link_exists, hdferr, lapl_id) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + LOGICAL , INTENT(OUT) :: link_exists + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN), OPTIONAL :: lapl_id +!***** + + INTEGER(size_t) :: namelen + INTEGER :: status + INTEGER(HID_T) :: lapl_id_default + + INTERFACE + INTEGER FUNCTION h5oexists_by_name_c(loc_id, name, namelen, lapl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OEXISTS_BY_NAME_C'::h5oexists_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(SIZE_T) , INTENT(IN) :: namelen + INTEGER(HID_T) , INTENT(IN) :: lapl_id + + END FUNCTION h5oexists_by_name_c + END INTERFACE + + namelen = LEN(name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + status = h5oexists_by_name_c(loc_id, name, namelen, lapl_id_default) + + link_exists = .FALSE. + IF(status.EQ.1)THEN + link_exists = .TRUE. + ENDIF + + hdferr = 0 + IF(status.LT.0)THEN + hdferr = -1 + ENDIF + + END SUBROUTINE h5oexists_by_name_f + +!****s* H5O/h5oget_comment_f +! NAME +! h5oget_comment_f +! +! PURPOSE +! Retrieves comment for specified object. +! +! Inputs: +! obj_id - Identifier for the target object. +! +! Optional parameters: +! bufsize - Size of the comment buffer. +! +! Outputs: +! comment - The comment. +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oget_comment_f(obj_id, comment, hdferr, bufsize) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: obj_id + CHARACTER(LEN=*) , INTENT(OUT) :: comment + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HSSIZE_T), INTENT(OUT), OPTIONAL :: bufsize +!***** + + INTEGER(SIZE_T) :: commentsize_default + INTEGER(HSSIZE_T) :: bufsize_default + + INTERFACE + INTEGER FUNCTION h5oget_comment_c(obj_id, comment, commentsize_default, bufsize) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_COMMENT_C'::h5oget_comment_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: comment + INTEGER(HID_T) , INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(OUT) :: comment + INTEGER(SIZE_T) , INTENT(IN) :: commentsize_default + INTEGER(HSSIZE_T) , INTENT(OUT) :: bufsize + END FUNCTION h5oget_comment_c + END INTERFACE + + commentsize_default = LEN(comment) + + hdferr = h5oget_comment_c(obj_id, comment, commentsize_default, bufsize_default) + + IF(PRESENT(bufsize)) bufsize = bufsize_default + + END SUBROUTINE h5oget_comment_f + +!****s* H5O/h5oget_comment_by_name_f +! NAME +! h5oget_comment_by_name_f +! +! PURPOSE +! Retrieves comment for specified object. +! +! Inputs: +! loc_id - Identifier of a file, group, dataset, or named datatype. +! name - Name of the object whose comment is to be retrieved, +! specified as a path relative to loc_id. +! +! Optional parameters: +! bufsize - Size of the comment buffer. +! +! Outputs: +! comment - The comment. +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! July 6, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oget_comment_by_name_f(loc_id, name, comment, hdferr, bufsize, lapl_id) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(OUT) :: comment + INTEGER , INTENT(OUT) :: hdferr + INTEGER(SIZE_T) , INTENT(OUT), OPTIONAL :: bufsize + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + + INTEGER(SIZE_T) :: commentsize_default + INTEGER(SIZE_T) :: name_size + INTEGER(SIZE_T) :: bufsize_default + INTEGER(HID_T) :: lapl_id_default + INTERFACE + INTEGER FUNCTION h5oget_comment_by_name_c(loc_id, name, name_size, & + comment, commentsize_default, bufsize_default, lapl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_COMMENT_BY_NAME_C'::h5oget_comment_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: comment, name + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(SIZE_T) , INTENT(IN) :: name_size + CHARACTER(LEN=*), INTENT(OUT) :: comment + INTEGER(SIZE_T) , INTENT(IN) :: commentsize_default + INTEGER(SIZE_T) , INTENT(OUT) :: bufsize_default + INTEGER(HID_T) , INTENT(IN) :: lapl_id + END FUNCTION h5oget_comment_by_name_c + END INTERFACE + + commentsize_default = LEN(comment) + name_size = LEN(name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + hdferr = h5oget_comment_by_name_c(loc_id, name, name_size, & + comment, commentsize_default, bufsize_default, lapl_id_default) + + IF(PRESENT(bufsize)) bufsize = bufsize_default + + END SUBROUTINE h5oget_comment_by_name_f + +!****s* H5O/h5oincr_refcount_f +! NAME +! h5oincr_refcount_f +! +! PURPOSE +! Increments an object reference count. +! +! Inputs: +! obj_id - Object identifier. +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 15, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oincr_refcount_f(obj_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: obj_id + INTEGER , INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION h5oincr_refcount_c(obj_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OINCR_REFCOUNT_C'::h5oincr_refcount_c + !DEC$ENDIF + INTEGER(HID_T) , INTENT(IN) :: obj_id + END FUNCTION h5oincr_refcount_c + END INTERFACE + + hdferr = h5oincr_refcount_c(obj_id) + + END SUBROUTINE h5oincr_refcount_f + +!****s* H5O/h5oopen_by_idx_f +! +! NAME +! h5oopen_by_idx_f +! +! PURPOSE +! Open the nth object in a group. +! +! Inputs: +! loc_id - A file or group identifier. +! group_name - Name of group, relative to loc_id, in which object is located. +! index_type - Type of index by which objects are ordered. +! order - Order of iteration within index, NOTE: zero-based. +! n - Object to open. +! +! Outputs: +! obj_id - An object identifier for the opened object. +! hdferr - Returns 0 if successful and -1 if fails. +! +! Optional parameters: +! lapl_id - Link access property list. +! +! AUTHOR +! M. Scot Breitenfeld +! May 17, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oopen_by_idx_f(loc_id, group_name, index_type, order, n, obj_id, & + hdferr, lapl_id) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: group_name + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(IN) :: n + INTEGER(HID_T) , INTENT(OUT) :: obj_id + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + INTEGER(SIZE_T) :: group_namelen + INTEGER(HID_T) :: lapl_id_default + + INTERFACE + INTEGER FUNCTION h5oopen_by_idx_c(loc_id, group_name, group_namelen, index_type, order, n, obj_id, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OOPEN_BY_IDX_C'::h5oopen_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: group_name + INTEGER(SIZE_T) , INTENT(IN) :: group_namelen + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(IN) :: n + INTEGER(HID_T) , INTENT(OUT) :: obj_id + INTEGER(HID_T) , INTENT(IN) :: lapl_id_default + + END FUNCTION h5oopen_by_idx_c + END INTERFACE + + group_namelen = LEN(group_name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + hdferr = h5oopen_by_idx_c(loc_id, group_name, group_namelen, index_type, order, n, obj_id, lapl_id_default) + + END SUBROUTINE H5Oopen_by_idx_f + +!****s* H5O/h5oset_comment_f +! NAME +! h5oset_comment_f +! +! PURPOSE +! Sets comment for specified object. +! +! Inputs: +! obj_id - Identifier of the target object. +! comment - The new comment. +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 15, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oset_comment_f(obj_id, comment, hdferr) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(IN) :: comment + INTEGER , INTENT(OUT) :: hdferr +!***** + INTEGER(SIZE_T) :: commentlen + + INTERFACE + INTEGER FUNCTION h5oset_comment_c(obj_id, comment, commentlen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OSET_COMMENT_C'::h5oset_comment_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: comment + INTEGER(HID_T) , INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(IN) :: comment + INTEGER(SIZE_T) , INTENT(IN) :: commentlen + + END FUNCTION h5oset_comment_c + END INTERFACE + + commentlen = LEN(comment) + + hdferr = h5oset_comment_c(obj_id, comment, commentlen) + + END SUBROUTINE h5oset_comment_f + +!****s* H5O/h5oset_comment_by_name_f +! NAME +! h5oset_comment_by_name_f +! +! PURPOSE +! Sets comment for specified object. +! +! Inputs: +! loc_id - Identifier of a file, group, dataset, or named datatype. +! name - Name of the object whose comment is to be set or reset, +! specified as a path relative to loc_id. +! comment - The new comment. +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails. +! +! Optional parameters: +! lapl_id - Link access property list identifier. +! +! AUTHOR +! M. Scot Breitenfeld +! May 15, 2012 +! +! Fortran90 Interface: + SUBROUTINE h5oset_comment_by_name_f(loc_id, name, comment, hdferr, lapl_id) + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: comment + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN), OPTIONAL :: lapl_id +!***** + INTEGER(SIZE_T) :: commentlen + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + + INTERFACE + INTEGER FUNCTION h5oset_comment_by_name_c(loc_id, name, namelen, comment, commentlen, lapl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OSET_COMMENT_BY_NAME_C'::h5oset_comment_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name, comment + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: comment + INTEGER(SIZE_T) , INTENT(IN) :: commentlen + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(SIZE_T) , INTENT(IN) :: namelen + INTEGER(HID_T) , INTENT(IN) :: lapl_id + END FUNCTION h5oset_comment_by_name_c + END INTERFACE + + commentlen = LEN(comment) + namelen = LEN(name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + hdferr = h5oset_comment_by_name_c(loc_id, name, namelen, comment, commentlen, lapl_id_default) + + END SUBROUTINE h5oset_comment_by_name_f + END MODULE H5O diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90 index 8eb7a4b..f4ddd3e 100644 --- a/fortran/src/H5Off_F03.f90 +++ b/fortran/src/H5Off_F03.f90 @@ -82,9 +82,9 @@ MODULE H5O_PROVISIONAL ENDTYPE meta_size_t TYPE, BIND(C) :: h5o_info_t - INTEGER(c_long) :: fileno ! File number that object is located in + INTEGER(C_LONG) :: fileno ! File number that object is located in INTEGER(haddr_t) :: addr ! Object address in file - INTEGER :: type ! Basic object type (group, dataset, etc.) + INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.) INTEGER :: rc ! Reference count of object INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE -- @@ -181,14 +181,14 @@ CONTAINS ! Inputs: ! loc_id - File or group identifier specifying location of group ! in which object is located. -! name - Name of group, relative to loc_id +! name - Name of group, relative to loc_id. ! ! Outputs: -! object_info - Buffer in which to return object information -! hdferr - Returns 0 if successful and -1 if fails +! object_info - Buffer in which to return object information. +! hdferr - Returns 0 if successful and -1 if fails. ! ! Optional parameters: -! lapl_id - Link access property list +! lapl_id - Link access property list. ! ! AUTHOR ! M. Scot Breitenfeld @@ -218,11 +218,12 @@ CONTAINS !DEC$IF DEFINED(HDF5F90_WINDOWS) !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_NAME_C'::h5oget_info_by_name_c !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T) , INTENT(IN) :: loc_id CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(SIZE_T) , INTENT(IN) :: namelen INTEGER(HID_T) , INTENT(IN) :: lapl_id_default - TYPE(C_PTR),value :: object_info + TYPE(C_PTR),VALUE :: object_info END FUNCTION h5oget_info_by_name_c END INTERFACE @@ -238,5 +239,222 @@ CONTAINS END SUBROUTINE H5Oget_info_by_name_f +!****s* H5O (F03)/h5oget_info_f_F03 +! +! NAME +! h5oget_info_f +! +! PURPOSE +! Retrieves the metadata for an object specified by an identifier. +! +! Inputs: +! object_id - Identifier for target object. +! +! Outputs: +! object_info - Buffer in which to return object information. +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5oget_info_f(object_id, object_info, hdferr) + + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: object_id + TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info + INTEGER , INTENT(OUT) :: hdferr +!***** + TYPE(C_PTR) :: ptr + + INTERFACE + INTEGER FUNCTION h5oget_info_c(object_id, object_info) + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_C'::h5oget_info_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: object_id + TYPE(C_PTR), VALUE :: object_info + + END FUNCTION h5oget_info_c + END INTERFACE + + ptr = C_LOC(object_info) + hdferr = H5Oget_info_c(object_id, ptr) + + END SUBROUTINE H5Oget_info_f + +!****s* H5O (F03)/h5oget_info_by_idx_f_F03 +! +! NAME +! h5oget_info_by_idx_f +! +! PURPOSE +! Retrieves the metadata for an object, identifying the object by an index position. +! +! Inputs: +! loc_id - File or group identifier specifying location of group +! in which object is located. +! group_name - Name of group in which object is located. +! index_field - Index or field that determines the order. +! order - Order within field or index. +! n - Object for which information is to be returned +! +! Outputs: +! object_info - Buffer in which to return object information. +! hdferr - Returns 0 if successful and -1 if fails. +! +! Optional parameters: +! lapl_id - Link access property list. (Not currently used.) +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5oget_info_by_idx_f(loc_id, group_name, index_field, order, n, & + object_info, hdferr, lapl_id) + + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: group_name + INTEGER , INTENT(IN) :: index_field + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(IN) :: n + TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + INTEGER :: corder_valid + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + TYPE(C_PTR) :: ptr + + INTERFACE + INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, & + index_field, order, n, lapl_id_default, object_info) + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_IDX_C'::h5oget_info_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: group_name + INTEGER(SIZE_T) , INTENT(IN) :: namelen + INTEGER , INTENT(IN) :: index_field + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(IN) :: n + INTEGER(HID_T) , INTENT(IN) :: lapl_id_default + TYPE(C_PTR), VALUE :: object_info + + END FUNCTION h5oget_info_by_idx_c + END INTERFACE + + namelen = LEN(group_name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + ptr = C_LOC(object_info) + hdferr = H5Oget_info_by_idx_c(loc_id, group_name, namelen, index_field, order, n, lapl_id_default, ptr) + + END SUBROUTINE H5Oget_info_by_idx_f + + +!****s* H5O (F03)/h5ovisit_by_name_f_F03 +! +! NAME +! h5ovisit_by_name_f +! +! PURPOSE +! Recursively visits all objects starting from a specified object. +! +! Inputs: +! loc_id - Identifier of a file or group. +! object_name - Name of the object, generally relative to loc_id, that will serve as root of the iteration +! index_type - Type of index; valid values include: +! H5_INDEX_NAME_F +! H5_INDEX_CRT_ORDER_F +! order - Order in which index is traversed; valid values include: +! H5_ITER_DEC_F +! H5_ITER_INC_F +! H5_ITER_NATIVE_F +! op - Callback function passing data regarding the group to the calling application +! op_data - User-defined pointer to data required by the application for its processing of the group +! +! Outputs: +! return_value - Returns the return value of the first operator that returns a positive value, or +! zero if all members were processed with no operator returning non-zero. +! hdferr - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! lapl_id - Link access property list identifier. +! +! AUTHOR +! M. Scot Breitenfeld +! November 19, 2008 +! +! Fortran2003 Interface: + SUBROUTINE h5ovisit_by_name_f(loc_id, object_name, index_type, order, op, op_data, & + return_value, hdferr, lapl_id) + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: object_name + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + + TYPE(C_FUNPTR) :: op + TYPE(C_PTR) :: op_data + INTEGER , INTENT(OUT) :: return_value + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + TYPE(C_PTR) :: ptr + + INTERFACE + INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & + op, op_data, lapl_id) + USE, INTRINSIC :: ISO_C_BINDING + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OVISIT_BY_NAME_C'::h5ovisit_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: object_name + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: object_name + INTEGER(SIZE_T) :: namelen + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + TYPE(C_FUNPTR) , VALUE :: op + TYPE(C_PTR) , VALUE :: op_data + INTEGER(HID_T) , INTENT(IN) :: lapl_id + END FUNCTION h5ovisit_by_name_c + END INTERFACE + + namelen = LEN(object_name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + return_value = h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & + op, op_data, lapl_id_default) + + IF(return_value.GE.0)THEN + hdferr = 0 + ELSE + hdferr = -1 + END IF + + END SUBROUTINE h5ovisit_by_name_f + END MODULE H5O_PROVISIONAL diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90 index d50e3b9..4254b7f 100644 --- a/fortran/src/H5Pff.f90 +++ b/fortran/src/H5Pff.f90 @@ -6419,3 +6419,5 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) END MODULE H5P + + diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c index 86e0e61..0799e11 100644 --- a/fortran/src/H5Rf.c +++ b/fortran/src/H5Rf.c @@ -331,6 +331,47 @@ done: return ret_value; } /* end nh5rget_region_region_c() */ +/****if* H5Rf/h5rget_region_ptr_c + * NAME + * h5rget_region_ptr_c + * PURPOSE + * Call H5Rget_region to dereference dataspace region + * INPUTS + * dset_id - dataset identifier + * ref - reference to the dataset region + * OUTPUTS + * space_id - dereferenced dataset dataspace identifier + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * August 4, 2012 + * HISTORY + * + * SOURCE +*/ +int_f +nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id) +/******/ +{ + hid_t c_space_id; + hdset_reg_ref_t ref_c; + int_f ret_value = 0; + + /* + * Call H5Rget_region function. + */ + if((c_space_id = H5Rget_region((hid_t)*dset_id, H5R_DATASET_REGION, ref)) < 0) + HGOTO_DONE(FAIL) + + /* Copy the dataspace ID */ + *space_id = (hid_t_f)c_space_id; + +done: + return ret_value; +} /* end nh5rget_region_ptr_c() */ + + /****if* H5Rf/h5rget_object_type_obj_c * NAME * h5rget_object_type_obj_c diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90 index 35a3ed6..89ffc10 100644 --- a/fortran/src/H5Rff.f90 +++ b/fortran/src/H5Rff.f90 @@ -53,12 +53,6 @@ MODULE H5R ! END TYPE ! - INTERFACE h5rget_region_f - - MODULE PROCEDURE h5rget_region_region_f - - END INTERFACE - INTERFACE h5rget_object_type_f MODULE PROCEDURE h5rget_object_type_obj_f @@ -67,61 +61,6 @@ MODULE H5R CONTAINS -!****s* H5R/h5rget_region_region_f -! -! NAME -! h5rget_region_region_f -! -! PURPOSE -! Retrieves a dataspace with the specified region selected -! -! INPUTS -! dset_id - identifier of the dataset containing -! reference to the regions -! ref - reference to open -! OUTPUTS -! space_id - dataspace identifier -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). February 28, 2001 -! -! NOTES -! This is a module procedure for the h5rget_region_f subroutine. -! -! SOURCE - SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier - TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference - INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** - INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference - - INTERFACE - INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id) - USE H5GLOBAL - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c - !DEC$ENDIF - INTEGER(HID_T), INTENT(IN) :: dset_id - ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3 - INTEGER :: ref_f(REF_REG_BUF_LEN) - INTEGER(HID_T), INTENT(OUT) :: space_id - END FUNCTION h5rget_region_region_c - END INTERFACE - - ref_f = ref%ref - hdferr = h5rget_region_region_c(dset_id, ref_f, space_id ) - - END SUBROUTINE h5rget_region_region_f - !****s* H5R/h5rget_object_type_obj_f ! ! NAME diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff_F03.f90 index 7f66745..88ec8cf 100644 --- a/fortran/src/H5Rff_F03.f90 +++ b/fortran/src/H5Rff_F03.f90 @@ -37,6 +37,7 @@ !***** MODULE H5R_PROVISIONAL USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING ! If you change the value of these parameters, do not forget to change corresponding ! values in the H5f90.h file. @@ -51,6 +52,19 @@ MODULE H5R_PROVISIONAL ! INTEGER ref(REF_REG_BUF_LEN) ! END TYPE ! + + TYPE :: hdset_reg_ref_t_f03 + INTEGER(C_SIGNED_CHAR), DIMENSION(1:H5R_DSET_REG_REF_BUF_SIZE_F) :: ref + END TYPE hdset_reg_ref_t_f03 + + INTERFACE h5rget_region_f + + MODULE PROCEDURE h5rget_region_region_f ! obsolete + MODULE PROCEDURE h5rget_region_ptr_f ! F2003 + + END INTERFACE + + INTERFACE h5rcreate_f MODULE PROCEDURE h5rcreate_object_f ! obsolete @@ -123,8 +137,114 @@ MODULE H5R_PROVISIONAL END FUNCTION h5rcreate_ptr_c END INTERFACE + INTERFACE + INTEGER FUNCTION h5rget_region_ptr_c(dset_id, ref, space_id) + USE, INTRINSIC :: ISO_C_BINDING + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_PTR_C':: h5rget_region_ptr_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dset_id + TYPE(C_PTR), VALUE :: ref + INTEGER(HID_T), INTENT(OUT) :: space_id + END FUNCTION h5rget_region_ptr_c + END INTERFACE + CONTAINS +!****s* H5R/h5rget_region_region_f +! +! NAME +! h5rget_region_region_f +! +! PURPOSE +! Retrieves a dataspace with the specified region selected +! +! INPUTS +! dset_id - identifier of the dataset containing +! reference to the regions +! ref - reference to open +! OUTPUTS +! space_id - dataspace identifier +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! NOTES +! This is a module procedure for the h5rget_region_f subroutine. +! +! SOURCE + SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier + TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference + INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference + + INTERFACE + INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dset_id + ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3 + INTEGER :: ref_f(REF_REG_BUF_LEN) + INTEGER(HID_T), INTENT(OUT) :: space_id + END FUNCTION h5rget_region_region_c + END INTERFACE + + ref_f = ref%ref + hdferr = h5rget_region_region_c(dset_id, ref_f, space_id ) + + END SUBROUTINE h5rget_region_region_f + +!****s* H5R/h5rget_region_ptr_f +! +! NAME +! h5rget_region_ptr_f +! +! PURPOSE +! Retrieves a dataspace with the specified region +! selected using pointer +! +! INPUTS +! dset_id - identifier of the dataset containing +! reference to the regions +! ref - reference to open +! OUTPUTS +! space_id - dataspace identifier +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! M. Scot Breitenfeld +! August 4, 2012 +! +! NOTES +! This is a module procedure for the h5rget_region_f subroutine. +! +! SOURCE + SUBROUTINE h5rget_region_ptr_f(dset_id, ref, space_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier + TYPE(C_PTR), INTENT(IN) :: ref ! Dataset region reference + INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference + + hdferr = h5rget_region_ptr_c(dset_id, ref, space_id ) + + END SUBROUTINE h5rget_region_ptr_f + + !****s* H5R (F03)/h5rcreate_object_f ! ! NAME @@ -175,7 +295,7 @@ CONTAINS END SUBROUTINE h5rcreate_object_f -!****s* H5R (F03)/h5rcreate_region_f +!****s* H5R (F90)/h5rcreate_region_f ! ! NAME ! h5rcreate_region_f @@ -183,16 +303,15 @@ CONTAINS ! PURPOSE ! Creates reference to the dataset region ! -! Inputs: +! INPUTS ! loc_id - location identifier ! name - name of the dataset at the specified location ! space_id - dataspace identifier that describes selected region -! Outputs: +! OUTPUTS ! ref - reference to the dataset region ! hdferr: - error code ! Success: 0 ! Failure: -1 -! ! AUTHOR ! Elena Pourmal ! August 12, 1999 @@ -205,46 +324,39 @@ CONTAINS ! NOTES ! This is a module procedure for the h5rcreate_f subroutine. ! -! Signature: +! SOURCE SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr) - USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified ! by loc_id identifier INTEGER(HID_T), INTENT(IN) :: space_id ! Dataset's dataspace identifier - TYPE(hdset_reg_ref_t_f), INTENT(INOUT), TARGET :: ref ! Dataset region reference + TYPE(hdset_reg_ref_t_f), INTENT(OUT) :: ref ! Dataset region reference INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTEGER :: namelen ! Name length INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference - TYPE(C_PTR) :: f_ptr - -! !$ INTERFACE -! !$ INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id) -! !$ USE H5GLOBAL -! !$ !DEC$IF DEFINED(HDF5F90_WINDOWS) -! !$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c -! !$ !DEC$ENDIF -! !$ !DEC$ATTRIBUTES reference :: name -! !$ ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3 -! !$ INTEGER :: ref_f(REF_REG_BUF_LEN) -! !$ INTEGER(HID_T), INTENT(IN) :: loc_id -! !$ CHARACTER(LEN=*), INTENT(IN) :: name -! !$ INTEGER :: namelen -! !$ INTEGER(HID_T), INTENT(IN) :: space_id -! !$ END FUNCTION h5rcreate_region_c -! !$ END INTERFACE - - f_ptr = C_LOC(ref) + INTERFACE + INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3 + INTEGER :: ref_f(REF_REG_BUF_LEN) + INTEGER(HID_T), INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER :: namelen + INTEGER(HID_T), INTENT(IN) :: space_id + END FUNCTION h5rcreate_region_c + END INTERFACE namelen = LEN(name) - hdferr = h5rcreate_ptr_c(f_ptr, loc_id, name, namelen, 1, space_id) - -! !$ ref_f = 0 -! !$ hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id ) -! !$ ref%ref = ref_f + ref_f = 0 + hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id ) + ref%ref = ref_f END SUBROUTINE h5rcreate_region_f diff --git a/fortran/src/H5Rff_F90.f90 b/fortran/src/H5Rff_F90.f90 index 3f02825..0190e57 100644 --- a/fortran/src/H5Rff_F90.f90 +++ b/fortran/src/H5Rff_F90.f90 @@ -72,8 +72,73 @@ MODULE H5R_PROVISIONAL END INTERFACE + INTERFACE h5rget_region_f + + MODULE PROCEDURE h5rget_region_region_f + + END INTERFACE + + CONTAINS + +!****s* H5R/h5rget_region_region_f +! +! NAME +! h5rget_region_region_f +! +! PURPOSE +! Retrieves a dataspace with the specified region selected +! +! INPUTS +! dset_id - identifier of the dataset containing +! reference to the regions +! ref - reference to open +! OUTPUTS +! space_id - dataspace identifier +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! August 12, 1999 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! NOTES +! This is a module procedure for the h5rget_region_f subroutine. +! +! SOURCE + SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier + TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference + INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference + + INTERFACE + INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dset_id + ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3 + INTEGER :: ref_f(REF_REG_BUF_LEN) + INTEGER(HID_T), INTENT(OUT) :: space_id + END FUNCTION h5rget_region_region_c + END INTERFACE + + ref_f = ref%ref + hdferr = h5rget_region_region_c(dset_id, ref_f, space_id ) + + END SUBROUTINE h5rget_region_region_f + + + !****s* H5R (F90)/h5rcreate_object_f ! ! NAME diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index 7b55384..4c85df2 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -398,7 +398,11 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int h5d_flags[19] = (int_f)H5D_CHUNK_CACHE_NSLOTS_DEFAULT; h5d_flags[20] = (int_f)H5D_CHUNK_CACHE_NBYTES_DEFAULT; h5d_flags[21] = (int_f)H5D_CHUNK_CACHE_W0_DEFAULT; - + h5d_flags[22] = (int_f)H5D_MPIO_NO_COLLECTIVE; + h5d_flags[23] = (int_f)H5D_MPIO_CHUNK_INDEPENDENT; + h5d_flags[24] = (int_f)H5D_MPIO_CHUNK_COLLECTIVE; + h5d_flags[25] = (int_f)H5D_MPIO_CHUNK_MIXED; + h5d_flags[26] = (int_f)H5D_MPIO_CONTIGUOUS_COLLECTIVE; /* * H5E flags */ diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90 index 6943270..1bef2f2 100644 --- a/fortran/src/H5f90global.f90 +++ b/fortran/src/H5f90global.f90 @@ -354,7 +354,7 @@ MODULE H5GLOBAL ! H5D flags declaration ! - INTEGER, PARAMETER :: H5D_FLAGS_LEN = 22 + INTEGER, PARAMETER :: H5D_FLAGS_LEN = 27 INTEGER H5D_flags(H5D_FLAGS_LEN) !DEC$if defined(BUILD_HDF5_DLL) !DEC$ATTRIBUTES DLLEXPORT :: /H5D_FLAGS/ @@ -387,10 +387,17 @@ MODULE H5GLOBAL ! shortened "_DEFAULT" to "_DFLT" to satisfy the limit of 31 ! characters for variable names in Fortran. +! shortened "_CONTIGUOUS" to "_CONTIG" to satisfy the limit of 31 +! characters for variable names in Fortran. INTEGER :: H5D_CHUNK_CACHE_NSLOTS_DFLT_F INTEGER :: H5D_CHUNK_CACHE_NBYTES_DFLT_F INTEGER :: H5D_CHUNK_CACHE_W0_DFLT_F + INTEGER :: H5D_MPIO_NO_COLLECTIVE_F + INTEGER :: H5D_MPIO_CHUNK_INDEPENDENT_F + INTEGER :: H5D_MPIO_CHUNK_COLLECTIVE_F + INTEGER :: H5D_MPIO_CHUNK_MIXED_F + INTEGER :: H5D_MPIO_CONTIG_COLLECTIVE_F EQUIVALENCE(H5D_flags(1), H5D_COMPACT_F) EQUIVALENCE(H5D_flags(2), H5D_CONTIGUOUS_F) @@ -419,6 +426,11 @@ MODULE H5GLOBAL EQUIVALENCE(H5D_flags(20), H5D_CHUNK_CACHE_NSLOTS_DFLT_F) EQUIVALENCE(H5D_flags(21), H5D_CHUNK_CACHE_NBYTES_DFLT_F) EQUIVALENCE(H5D_flags(22), H5D_CHUNK_CACHE_W0_DFLT_F) + EQUIVALENCE(H5D_flags(23), H5D_MPIO_NO_COLLECTIVE_F) + EQUIVALENCE(H5D_flags(24), H5D_MPIO_CHUNK_INDEPENDENT_F) + EQUIVALENCE(H5D_flags(25), H5D_MPIO_CHUNK_COLLECTIVE_F) + EQUIVALENCE(H5D_flags(26), H5D_MPIO_CHUNK_MIXED_F) + EQUIVALENCE(H5D_flags(27), H5D_MPIO_CONTIG_COLLECTIVE_F) ! ! H5E flags declaration diff --git a/fortran/src/H5f90kit.c b/fortran/src/H5f90kit.c index 059685e..0bc721f 100644 --- a/fortran/src/H5f90kit.c +++ b/fortran/src/H5f90kit.c @@ -53,7 +53,7 @@ HD5f2cstring(_fcd fdesc, size_t len) /* Search for the end of the string */ str = _fcdtocp(fdesc); - for(i = (int)len - 1; i >= 0 && !HDisgraph((int)str[i]); i--) + for(i = (int)len - 1; i >= 0 && HDisspace((int)str[i]) && str[i] == ' '; i--) /*EMPTY*/; /* Allocate C string */ diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index d0a8361..9340c2a 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -61,7 +61,7 @@ typedef struct H5O_hdr_info_t_f { typedef struct H5O_info_t_f { unsigned long fileno; /* File number that object is located in */ haddr_t_f addr; /* Object address in file */ - int_f type; /* Basic object type (group, dataset, etc.) */ + int type; /* Basic object type (group, dataset, etc.) */ int_f rc; /* Reference count of object */ int_f atime[8]; /* Access time */ int_f mtime[8]; /* Modification time */ @@ -806,11 +806,21 @@ H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, #define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C) #define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C) #define nh5oclose_c H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C) -#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c,H5OVISIT_C) +#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c, H5OVISIT_C) +#define nh5ovisit_by_name_c H5_FC_FUNC_(h5ovisit_by_name_c, H5OVISIT_BY_NAME_C) +#define nh5oget_info_c H5_FC_FUNC_(h5oget_info_c, H5OGET_INFO_C) +#define nh5oget_info_by_idx_c H5_FC_FUNC_(h5oget_info_by_idx_c ,H5OGET_INFO_BY_IDX_C) #define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C) #define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C) #define nh5ocopy_c H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C) - +#define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C) +#define nh5oincr_refcount_c H5_FC_FUNC_(h5oincr_refcount_c, H5OINCR_REFCOUNT_C) +#define nh5oexists_by_name_c H5_FC_FUNC_(h5oexists_by_name_c, H5OEXISTS_BY_NAME_C) +#define nh5oset_comment_c H5_FC_FUNC_(h5oset_comment_c, H5OSET_COMMENT_C) +#define nh5oset_comment_by_name_c H5_FC_FUNC_(h5oset_comment_by_name_c, H5OSET_COMMENT_BY_NAME_C) +#define nh5oopen_by_idx_c H5_FC_FUNC_(h5oopen_by_idx_c, H5OOPEN_BY_IDX_C) +#define nh5oget_comment_c H5_FC_FUNC_(h5oget_comment_c, H5OGET_COMMENT_C) +#define nh5oget_comment_by_name_c H5_FC_FUNC_(h5oget_comment_by_name_c, H5OGET_COMMENT_BY_NAME_C) H5_FCDLL int_f nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id); H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id ); @@ -818,11 +828,26 @@ H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *ob H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id); H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); -H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen,hid_t_f *lapl_id, +H5_FCDLL int_f nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, + H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ); +H5_FCDLL int_f nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info); +H5_FCDLL int_f nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, + int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info); +H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, H5O_info_t_f *object_info); H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, hid_t_f *ocpypl_id, hid_t_f *lcpl_id ); +H5_FCDLL int_f nh5odecr_refcount_c (hid_t_f *object_id); +H5_FCDLL int_f nh5oincr_refcount_c (hid_t_f *object_id); +H5_FCDLL int_f nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen); +H5_FCDLL int_f nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *obj_id, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize); +H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, + _fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id); /* * Functions from H5Pf.c */ @@ -982,6 +1007,7 @@ H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_nam #define nh5pget_nlinks_c H5_FC_FUNC_(h5pget_nlinks_c, H5PGET_NLINKS_C) #define nh5pset_chunk_cache_c H5_FC_FUNC_(h5pset_chunk_cache_c, H5PSET_CHUNK_CACHE_C) #define nh5pget_chunk_cache_c H5_FC_FUNC_(h5pget_chunk_cache_c, H5PGET_CHUNK_CACHE_C) +#define nh5pget_mpio_actual_io_mode_c H5_FC_FUNC_(h5pget_mpio_actual_io_mode_c, H5PGET_MPIO_ACTUAL_IO_MODE_C) H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ); H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id ); @@ -1142,6 +1168,7 @@ H5_FCDLL int_f nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); H5_FCDLL int_f nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); H5_FCDLL int_f nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); +H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode); /* * Functions frome H5Rf.c */ @@ -1152,6 +1179,7 @@ H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, si #define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C) #define nh5rdereference_ptr_c H5_FC_FUNC_(h5rdereference_ptr_c, H5RDEREFERENCE_PTR_C) #define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C) +#define nh5rget_region_ptr_c H5_FC_FUNC_(h5rget_region_ptr_c, H5RGET_REGION_PTR_C) #define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C) #define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C) #define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C) @@ -1166,6 +1194,7 @@ H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f * H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id); H5_FCDLL int_f nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id); H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id); +H5_FCDLL int_f nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id); H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type); H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c index 61504ec..4c83d21 100644 --- a/fortran/src/H5match_types.c +++ b/fortran/src/H5match_types.c @@ -533,7 +533,21 @@ int main(void) /* double_f */ #if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND - writeFloatToFiles("Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND); + if(H5_C_HAS_REAL_NATIVE_16 != 0) { /* Check if C has 16 byte floats */ + writeFloatToFiles("Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND); + } else { +#if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND /* Fall back to 8 byte floats */ + writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); + } +#elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND /* Fall back to 4 byte floats */ + writeFloatToFiles("Fortran_DOUBLE", "double_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND); + } +#else + /* Error: couldn't find a size for double_f when fortran has 16 byte reals */ + return -1; + } +#endif + #elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND); #else @@ -541,6 +555,14 @@ int main(void) return -1; #endif + /* Need the buffer size for the fortran derive type 'hdset_reg_ref_t_f03' + * in order to be interoperable with C's structure, the C buffer size + * H5R_DSET_REG_REF_BUF_SIZE is (sizeof(haddr_t)+4) + */ + + fprintf(fort_header, " INTEGER, PARAMETER :: H5R_DSET_REG_REF_BUF_SIZE_F = %u\n", H5_SIZEOF_HADDR_T + 4 ); + + /* Close files */ endCfile(); endFfile(); diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index a8c0546..572f081 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -517,7 +517,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 # Include src directory in both Fortran and C flags (C compiler is used diff --git a/fortran/src/hdf5_fortrandll.def b/fortran/src/hdf5_fortrandll.def index 29e83f5..d317476 100644 --- a/fortran/src/hdf5_fortrandll.def +++ b/fortran/src/hdf5_fortrandll.def @@ -284,10 +284,25 @@ H5L_mp_H5LIS_REGISTERED_F H5L_mp_H5LMOVE_F H5L_mp_H5LGET_NAME_BY_IDX_F ; H5O +H5O_mp_H5OCLOSE_F H5O_mp_H5OCOPY_F +H5O_mp_H5ODECR_REFCOUNT_F +H5O_mp_H5OEXISTS_BY_NAME_F +H5O_mp_H5OGET_COMMENT_F +H5O_mp_H5OGET_COMMENT_BY_NAME_F +H5O_mp_H5OINCR_REFCOUNT_F H5O_mp_H5OLINK_F -H5O_mp_H5OOPEN_F H5O_mp_H5OOPEN_BY_ADDR_F +H5O_mp_H5OOPEN_BY_IDX_F +H5O_mp_H5OOPEN_F +H5O_mp_H5OSET_COMMENT_F +H5O_mp_H5OSET_COMMENT_BY_NAME_F +; These should only get compiled with option --enable-fortran2003 +;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F +;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F +;H5O_PROVISIONAL_mp_H5OGET_INFO_F +;H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F +;H5O_PROVISIONAL_mp_H5OVISIT_F ; H5P H5P_mp_H5PCREATE_F H5P_mp_H5PSET_PRESERVE_F @@ -429,7 +444,8 @@ H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F H5R_PROVISIONAL_mp_H5RCREATE_REGION_F H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F -H5R_mp_H5RGET_REGION_REGION_F +H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F + H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F diff --git a/fortran/src/phdf5_fortrandll.def b/fortran/src/phdf5_fortrandll.def index 7a196cd..df61860 100644 --- a/fortran/src/phdf5_fortrandll.def +++ b/fortran/src/phdf5_fortrandll.def @@ -284,10 +284,25 @@ H5L_mp_H5LIS_REGISTERED_F H5L_mp_H5LMOVE_F H5L_mp_H5LGET_NAME_BY_IDX_F ; H5O +H5O_mp_H5OCLOSE_F H5O_mp_H5OCOPY_F +H5O_mp_H5ODECR_REFCOUNT_F +H5O_mp_H5OEXISTS_BY_NAME_F +H5O_mp_H5OGET_COMMENT_F +H5O_mp_H5OGET_COMMENT_BY_NAME_F +H5O_mp_H5OINCR_REFCOUNT_F H5O_mp_H5OLINK_F -H5O_mp_H5OOPEN_F H5O_mp_H5OOPEN_BY_ADDR_F +H5O_mp_H5OOPEN_BY_IDX_F +H5O_mp_H5OOPEN_F +H5O_mp_H5OSET_COMMENT_F +H5O_mp_H5OSET_COMMENT_BY_NAME_F +; These should only get compiled with option --enable-fortran2003 +;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F +;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F +;H5O_PROVISIONAL_mp_H5OGET_INFO_F +;H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F +;H5O_PROVISIONAL_mp_H5OVISIT_F ; H5P H5P_mp_H5PCREATE_F H5P_mp_H5PSET_PRESERVE_F @@ -429,7 +444,8 @@ H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F H5R_PROVISIONAL_mp_H5RCREATE_REGION_F H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F -H5R_mp_H5RGET_REGION_REGION_F +H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F + H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F @@ -528,4 +544,9 @@ H5Z_mp_H5ZFILTER_AVAIL_F H5Z_mp_H5ZGET_FILTER_INFO_F ; Parallel H5FDMPIO_mp_H5PSET_FAPL_MPIO_F +H5FDMPIO_mp_H5PGET_FAPL_MPIO_F H5FDMPIO_mp_H5PSET_DXPL_MPIO_F +H5FDMPIO_mp_H5PGET_DXPL_MPIO_F +H5FDMPIO_mp_H5PSET_FAPL_MPIPOSIX_F +H5FDMPIO_mp_H5PGET_FAPL_MPIPOSIX_F +H5FDMPIO_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F \ No newline at end of file diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index d19baea..3a3d084 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -106,6 +106,7 @@ IF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 + tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 ) diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am index b261785..42dd127 100644 --- a/fortran/test/Makefile.am +++ b/fortran/test/Makefile.am @@ -68,7 +68,7 @@ fortranlib_test_1_8_SOURCES = fortranlib_test_1_8.f90 \ if FORTRAN_2003_CONDITIONAL_F fortranlib_test_F03_SOURCES = fortranlib_test_F03.f90 \ - tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5P_F03.f90 tH5T_F03.f90 + tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 endif diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in index e42b080..b9f05e3 100644 --- a/fortran/test/Makefile.in +++ b/fortran/test/Makefile.in @@ -136,11 +136,13 @@ fortranlib_test_1_8_LDADD = $(LDADD) fortranlib_test_1_8_DEPENDENCIES = libh5test_fortran.la $(LIBH5TEST) \ $(LIBH5F) $(LIBHDF5) am__fortranlib_test_F03_SOURCES_DIST = fortranlib_test_F03.f90 \ - tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5P_F03.f90 tH5T_F03.f90 + tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 \ + tH5T_F03.f90 @FORTRAN_2003_CONDITIONAL_F_TRUE@am_fortranlib_test_F03_OBJECTS = fortranlib_test_F03.$(OBJEXT) \ @FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5F.$(OBJEXT) \ @FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5E_F03.$(OBJEXT) \ @FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5L_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5O_F03.$(OBJEXT) \ @FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5P_F03.$(OBJEXT) \ @FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5T_F03.$(OBJEXT) fortranlib_test_F03_OBJECTS = $(am_fortranlib_test_F03_OBJECTS) @@ -525,7 +527,7 @@ fortranlib_test_1_8_SOURCES = fortranlib_test_1_8.f90 \ tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 @FORTRAN_2003_CONDITIONAL_F_TRUE@fortranlib_test_F03_SOURCES = fortranlib_test_F03.f90 \ -@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5P_F03.f90 tH5T_F03.f90 +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 fflush1_SOURCES = fflush1.f90 fflush2_SOURCES = fflush2.f90 diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90 index 321cb99..d3ced72 100644 --- a/fortran/test/fortranlib_test_1_8.f90 +++ b/fortran/test/fortranlib_test_1_8.f90 @@ -94,12 +94,6 @@ PROGRAM fortranlibtest total_error) ret_total_error = 0 - CALL test_nbit(cleanup, ret_total_error ) - CALL write_test_status(ret_total_error, & - ' Testing nbit filter', & - total_error) - - ret_total_error = 0 CALL test_scaleoffset(cleanup, ret_total_error ) CALL write_test_status(ret_total_error, & ' Testing scaleoffset filter', & @@ -401,141 +395,6 @@ SUBROUTINE test_h5s_encode(cleanup, total_error) END SUBROUTINE test_h5s_encode !------------------------------------------------------------------------- -! Function: test_nbit -! -! Purpose: Tests (real) datatype for nbit filter -! -! Return: Success: 0 -! Failure: >0 -! -! Programmer: M. Scot Breitenfeld -! Decemeber 7, 2010 -! -! Modifications: -! -!------------------------------------------------------------------------- -! - -SUBROUTINE test_nbit(cleanup, total_error ) - - USE HDF5 - - IMPLICIT NONE - INTEGER, PARAMETER :: wp = KIND(1.0) - LOGICAL, INTENT(IN) :: cleanup - INTEGER, INTENT(INOUT) :: total_error - INTEGER(hid_t) :: file - - INTEGER(hid_t) :: dataset, datatype, space, dc - INTEGER(hsize_t), DIMENSION(1:2) :: dims = (/2,5/) - INTEGER(hsize_t), DIMENSION(1:2) :: chunk_dim = (/2,5/) - ! orig_data[] are initialized to be within the range that can be represented by - ! dataset datatype (no precision loss during datatype conversion) - ! - REAL(kind=wp), DIMENSION(1:2,1:5) :: orig_data = RESHAPE( (/188384.00, 19.103516, -1.0831790e9, -84.242188, & - 5.2045898, -49140.000, 2350.2500, -3.2110596e-1, 6.4998865e-5, -0.0000000/) , (/2,5/) ) - REAL(kind=wp), DIMENSION(1:2,1:5) :: new_data - INTEGER(size_t) :: PRECISION, offset - INTEGER :: error - LOGICAL :: status - INTEGER*8 :: ii - INTEGER(size_t) :: i, j - - - ! check to see if filter is available - CALL H5Zfilter_avail_f(H5Z_FILTER_NBIT_F, status, error) - IF(.NOT.status)THEN ! We don't have H5Z_FILTER_NBIT_F filter - total_error = -1 ! so return - RETURN - ENDIF - - CALL H5Fcreate_f("nbit.h5", H5F_ACC_TRUNC_F, file, error) - CALL check("H5Fcreate_f", error, total_error) - - ! Define dataset datatype (integer), and set precision, offset - CALL H5Tcopy_f(H5T_IEEE_F32BE, datatype, error) - CALL CHECK(" H5Tcopy_f", error, total_error) - CALL H5Tset_fields_f(datatype, 26_size_t, 20_size_t, 6_size_t, 7_size_t, 13_size_t, error) - CALL CHECK(" H5Tset_fields_f", error, total_error) - offset = 7 - CALL H5Tset_offset_f(datatype, offset, error) - CALL CHECK(" H5Tset_offset_f", error, total_error) - PRECISION = 20 - CALL H5Tset_precision_f(datatype,PRECISION, error) - CALL CHECK(" H5Tset_precision_f", error, total_error) - - CALL H5Tset_size_f(datatype, 4_size_t, error) - CALL CHECK(" H5Tset_size_f", error, total_error) - - CALL H5Tset_ebias_f(datatype, 31_size_t, error) - CALL CHECK(" H5Tset_ebias_f", error, total_error) - - ! Create the data space - CALL H5Screate_simple_f(2, dims, space, error) - CALL CHECK(" H5Screate_simple_f", error, total_error) - - ! USE nbit filter - CALL H5Pcreate_f(H5P_DATASET_CREATE_F, dc, error) - CALL CHECK(" H5Pcreate_f", error, total_error) - - CALL H5Pset_chunk_f(dc, 2, chunk_dim, error) - CALL CHECK(" H5Pset_chunk_f", error, total_error) - CALL H5Pset_nbit_f(dc, error) - CALL CHECK(" H5Pset_nbit_f", error, total_error) - - ! Create the dataset - CALL H5Dcreate_f(file, "nbit_real", datatype, & - space, dataset, error, dc) - CALL CHECK(" H5Dcreate_f", error, total_error) - - !---------------------------------------------------------------------- - ! STEP 1: Test nbit by setting up a chunked dataset and writing - ! to it. - !---------------------------------------------------------------------- - ! - CALL H5Dwrite_f(dataset, H5T_NATIVE_REAL, orig_data, dims, error) - CALL CHECK(" H5Dwrite_f", error, total_error) - - !---------------------------------------------------------------------- - ! STEP 2: Try to read the data we just wrote. - !---------------------------------------------------------------------- - ! - CALL H5Dread_f(dataset, H5T_NATIVE_REAL, new_data, dims, error) - CALL CHECK(" H5Dread_f", error, total_error) - - ! Check that the values read are the same as the values written - ! Assume size of long long = size of double - ! - i_loop: DO i = 1, dims(1) - j_loop: DO j = 1, dims(2) - IF(.NOT.(orig_data(i,j).EQ.orig_data(i,j))) CYCLE ! skip IF value is NaN - IF(new_data(i,j) .NE. orig_data(i,j))THEN - total_error = total_error + 1 - WRITE(*,'(" Read different values than written.")') - WRITE(*,'(" At index ", 2(1X,I0))') i, j - EXIT i_loop - END IF - ENDDO j_loop - ENDDO i_loop - - !---------------------------------------------------------------------- - ! Cleanup - !---------------------------------------------------------------------- - ! - CALL H5Tclose_f(datatype, error) - CALL CHECK(" H5Tclose_f", error, total_error) - CALL H5Pclose_f(dc, error) - CALL CHECK(" H5Pclose_f", error, total_error) - CALL H5Sclose_f(space, error) - CALL CHECK(" H5Sclose_f", error, total_error) - CALL H5Dclose_f(dataset, error) - CALL CHECK(" H5Dclose_f", error, total_error) - CALL H5Fclose_f(file, error) - CALL CHECK(" H5Fclose_f", error, total_error) - -END SUBROUTINE test_nbit - -!------------------------------------------------------------------------- ! Function: test_scaleoffset ! ! Purpose: Tests the integer datatype for scaleoffset filter diff --git a/fortran/test/fortranlib_test_F03.f90 b/fortran/test/fortranlib_test_F03.f90 index 1b69f7f..a03241c 100644 --- a/fortran/test/fortranlib_test_F03.f90 +++ b/fortran/test/fortranlib_test_F03.f90 @@ -64,10 +64,7 @@ PROGRAM fortranlibtest_F03 ! CALL write_test_status(ret_total_error, ' Test error API based on data I/O', total_error) WRITE(*,*) -! write(*,*) -! write(*,*) '=========================================' -! write(*,*) 'Testing DATATYPE interface ' -! write(*,*) '=========================================' + ret_total_error = 0 CALL test_array_compound_atomic(ret_total_error) CALL write_test_status(ret_total_error, ' Testing 1-D Array of Compound Datatypes Functionality', total_error) @@ -117,16 +114,16 @@ PROGRAM fortranlibtest_F03 CALL write_test_status(ret_total_error, ' Testing writing/reading string datatypes, using C_LOC', total_error) ret_total_error = 0 + CALL vl_test_special_char(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing string datatypes containing control characters', total_error) + + ret_total_error = 0 CALL test_create(ret_total_error) - CALL write_test_status(ret_total_error, & - ' Testing filling functions', & - total_error) + CALL write_test_status(ret_total_error, ' Testing filling functions', total_error) ret_total_error = 0 CALL test_h5kind_to_type(total_error) - CALL write_test_status(ret_total_error, & - ' Test function h5kind_to_type', & - total_error) + CALL write_test_status(ret_total_error, ' Test function h5kind_to_type', total_error) ret_total_error = 0 CALL test_array_bkg(ret_total_error) @@ -138,14 +135,30 @@ PROGRAM fortranlibtest_F03 ret_total_error = 0 CALL test_iter_group(ret_total_error) - CALL write_test_status(ret_total_error, ' Testing Group Iteration Functionality', total_error) + CALL write_test_status(ret_total_error, ' Testing group iteration functionality', total_error) + + ret_total_error = 0 + CALL test_nbit(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing nbit filter', total_error) + ! write(*,*) ! write(*,*) '=========================================' ! write(*,*) 'Testing GROUP interface ' ! write(*,*) '=========================================' - + ret_total_error = 0 + CALL test_h5o_refcount(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing object functions ', total_error) + + ret_total_error = 0 + CALL obj_visit(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing object visiting functions ', total_error) + + ret_total_error = 0 + CALL obj_info(ret_total_error) + CALL write_test_status(ret_total_error, ' Testing object info functions ', total_error) + WRITE(*,*) WRITE(*,*) ' ============================================ ' diff --git a/fortran/test/tH5A.f90 b/fortran/test/tH5A.f90 index 03522f7..cecaded 100644 --- a/fortran/test/tH5A.f90 +++ b/fortran/test/tH5A.f90 @@ -100,7 +100,7 @@ CHARACTER(LEN=35), DIMENSION(2) :: aread_data ! Buffer to put read back ! string attr data CHARACTER :: attr_character_data = 'A' - DOUBLE PRECISION, DIMENSION(1) :: attr_double_data = 3.459 + REAL(KIND=Fortran_DOUBLE), DIMENSION(1) :: attr_double_data = 3.459 REAL, DIMENSION(1) :: attr_real_data = 4.0 INTEGER, DIMENSION(1) :: attr_integer_data = 5 INTEGER(HSIZE_T), DIMENSION(7) :: data_dims @@ -109,7 +109,7 @@ CHARACTER :: aread_character_data ! variable to put read back Character attr data INTEGER, DIMENSION(1) :: aread_integer_data ! variable to put read back integer attr data INTEGER, DIMENSION(1) :: aread_null_data = 7 ! variable to put read back null attr data - DOUBLE PRECISION, DIMENSION(1) :: aread_double_data ! variable to put read back double attr data + REAL(KIND=Fortran_DOUBLE), DIMENSION(1) :: aread_double_data ! variable to put read back double attr data REAL, DIMENSION(1) :: aread_real_data ! variable to put read back real attr data ! diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90 index 247d1d0..b68e7ca 100644 --- a/fortran/test/tH5O.f90 +++ b/fortran/test/tH5O.f90 @@ -35,15 +35,8 @@ SUBROUTINE test_h5o(cleanup, total_error) INTEGER, INTENT(OUT) :: total_error INTEGER :: error - ! /* Output message about test being performed */ - ! WRITE(*,*) "Testing Objects" - -!!$ test_h5o_open(); /* Test generic OPEN FUNCTION */ -!!$ test_h5o_open_by_addr(); /* Test opening objects by address */ -!!$ test_h5o_close(); /* Test generic CLOSE FUNCTION */ -!!$ test_h5o_refcount(); /* Test incrementing and decrementing reference count */ - CALL test_h5o_plist(total_error) ! /* Test object creation properties */ - CALL test_h5o_link(total_error) ! /* Test object link routine */ + CALL test_h5o_plist(total_error) ! Test object creation properties + CALL test_h5o_link(total_error) ! Test object link routine IF(cleanup) CALL h5_cleanup_f("TestFile", H5P_DEFAULT_F, error) CALL check("h5_cleanup_f", error, total_error) @@ -100,6 +93,19 @@ SUBROUTINE test_h5o_link(total_error) INTEGER(HSIZE_T), DIMENSION(1:1) :: dims2 = (/dim0/) ! size read/write buffer INTEGER , DIMENSION(1:dim0) :: wdata2, & ! Write buffer rdata2 ! Read buffer + LOGICAL :: link_exists + CHARACTER(LEN=8) :: chr_exact + CHARACTER(LEN=10) :: chr_lg + INTEGER(size_t) :: nlinks + INTEGER(HID_T) :: plist = -1 + + CHARACTER(LEN=20) :: dset_comment = "dataset comment" + CHARACTER(LEN=13) :: grp_comment = "group comment" + CHARACTER(LEN=10) :: comment_sm ! to small comment sized buffer + CHARACTER(LEN=15) :: comment ! exact comment sized buffer + CHARACTER(LEN=20) :: comment_lg ! large comment sized buffer + INTEGER(HSSIZE_T) :: comment_size + INTEGER(SIZE_T) :: comment_size2 ! Initialize the raw data DO i = 1, TEST6_DIM1 @@ -131,8 +137,6 @@ SUBROUTINE test_h5o_link(total_error) CALL H5Pset_libver_bounds_f(fapl_id, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error) CALL check("H5Pset_libver_bounds_f",error, total_error) -!!$ ret = H5Pset_libver_bounds(fapl_id, (new_format ? H5F_LIBVER_LATEST : H5F_LIBVER_EARLIEST), H5F_LIBVER_LATEST); - ! Create a new HDF5 file CALL H5Fcreate_f(TEST_FILENAME, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl_id) CALL check("H5Fcreate_f", error, total_error) @@ -155,10 +159,9 @@ SUBROUTINE test_h5o_link(total_error) ! Create a dataset with no name using the committed datatype CALL H5Dcreate_anon_f(file_id, type_id, space_id, dset_id, error ) ! using no optional parameters CALL check("H5Dcreate_anon_f",error,total_error) - - + ! ! Verify that we can write to and read from the dataset - + ! ! Write the data to the dataset !EP CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, wdata, dims, error, & @@ -199,7 +202,6 @@ SUBROUTINE test_h5o_link(total_error) CALL h5tclose_f(type_id, error) CALL check("h5tclose_f", error, total_error) - ! Re-open datatype using new link CALL H5Topen_f(group_id, "datatype", type_id, error) CALL check("h5topen_f", error, total_error) @@ -208,12 +210,10 @@ SUBROUTINE test_h5o_link(total_error) CALL H5Olink_f(group_id, file_id, "/group", error) CALL check("H5Olink_f", error, total_error) - CALL h5gclose_f(group_id, error) CALL check("h5gclose_f",error,total_error) ! Open dataset through root group and verify its data - CALL H5Dopen_f(file_id, "/group/inter_group/dataset", dset_id, error) CALL check("test_lcpl.h5dopen_f", error, total_error) @@ -236,7 +236,6 @@ SUBROUTINE test_h5o_link(total_error) CALL h5tclose_f(type_id, error) CALL check("h5tclose_f",error,total_error) - ! Close remaining IDs CALL h5sclose_f(space_id, error) CALL check("h5sclose_f",error,total_error) @@ -264,16 +263,214 @@ SUBROUTINE test_h5o_link(total_error) CALL check("h5gcreate_f", error, total_error) CALL h5gcreate_f(file_id,"/G1/G2/G3",group_id,error) CALL check("h5gcreate_f", error, total_error) + + ! Try putting a comment on the group /G1/G2/G3 by name + CALL h5oset_comment_by_name_f(file_id, "/G1/G2/G3", grp_comment, error) + CALL check("h5oset_comment_by_name_f", error, total_error) + + comment_lg = ' ' + + CALL h5oget_comment_by_name_f(file_id, "/G1/G2/G3", comment_lg, error) + CALL check("h5oget_comment_by_name_f", error, total_error) + + IF(comment_lg(1:13).NE.grp_comment)THEN + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + IF(comment_lg(14:20).NE.' ')THEN ! make sure no NULL terminator + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + + ! Try putting a comment on the group /G1/G2/G3 by name with trailing blanks + + CALL h5oset_comment_by_name_f(file_id, "/G1/G2/G3"//' ', grp_comment, error) + CALL check("h5oset_comment_by_name_f", error, total_error) + + comment_lg = ' ' + + CALL h5oget_comment_by_name_f(file_id, "/G1/G2/G3"//' ', comment_lg, error) + CALL check("h5oget_comment_by_name_f", error, total_error) + + IF(comment_lg(1:13).NE.grp_comment)THEN + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + IF(comment_lg(14:20).NE.' ')THEN ! make sure no NULL terminator + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + ! ! Create the dataset ! CALL h5dcreate_f(group_id, dataset, H5T_STD_I32LE, space_id, dset_id, error) CALL check("h5dcreate_f", error, total_error) + + ! Putting a comment on the dataset + CALL h5oset_comment_f(dset_id, dset_comment, error) + CALL check("h5oset_comment_f", error, total_error) + + ! Try reading into a buffer that is the correct size + + CALL h5oget_comment_f(dset_id, comment, error) + CALL check("h5oget_comment_f", error, total_error) + + IF(comment(1:15).NE.dset_comment(1:15))THEN + CALL check("h5oget_comment_f", -1, total_error) + ENDIF + + ! Try reading into a buffer that is to small + + CALL h5oget_comment_f(dset_id, comment_sm, error) + CALL check("h5oget_comment_f", error, total_error) + + IF(comment_sm(1:10).NE.dset_comment(1:10))THEN + CALL check("h5oget_comment_f", -1, total_error) + ENDIF + + ! Try reading into a buffer that is larger then needed + + comment_lg = ' ' + + CALL h5oget_comment_f(dset_id, comment_lg, error) + CALL check("h5oget_comment_f", error, total_error) + + IF(comment_lg(1:15).NE.dset_comment)THEN + CALL check("h5oget_comment_f", -1, total_error) + ENDIF + IF(comment_lg(16:20).NE.' ')THEN ! make sure no NULL terminator + CALL check("h5oget_comment_f", -1, total_error) + ENDIF + ! + ! Check optional parameter + ! + CALL h5oget_comment_f(dset_id, comment_lg, error, comment_size) + CALL check("h5oget_comment_f", error, total_error) + + IF( comment_size.NE.15)THEN + CALL check("h5oget_comment_f", -1, total_error) + ENDIF + + ! CHECK h5oget_comment_by_name_f + + ! Try reading into a buffer that is the correct size + + CALL h5oget_comment_by_name_f(dset_id, ".", comment, error) + CALL check("h5oget_comment_by_name_f", error, total_error) + + IF(comment(1:15).NE.dset_comment(1:15))THEN + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + + ! Try with trailing blanks in the name + + CALL h5oget_comment_by_name_f(dset_id, ". ", comment, error) + CALL check("h5oget_comment_by_name_f", error, total_error) + + IF(comment(1:15).NE.dset_comment(1:15))THEN + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + + ! + ! Check optional parameter + ! + CALL h5oget_comment_by_name_f(dset_id, ". ", comment_lg, error, comment_size2) + CALL check("h5oget_comment_by_name_f", error, total_error) + + IF( comment_size2.NE.15)THEN + CALL check("h5oget_comment_by_name_f", -1, total_error) + ENDIF + ! ! Write the data to the dataset. ! CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, wdata2, dims2, error) CALL check("h5dwrite_f", error, total_error) + + ! ************************* + ! CHECK H5OEXISTS_BY_NAME_F + ! ************************* + + ! Create a soft link to /G1 + CALL h5lcreate_soft_f("/G1", file_id, "/G1_LINK", error) + CALL check("h5lcreate_soft_f", error, total_error) + + + ! Create a soft link to /G1000, does not exist + CALL h5lcreate_soft_f("/G1000", file_id, "/G1_FALSE", error) + CALL check("h5lcreate_soft_f", error, total_error) + + ! Create a soft link to /G1_LINK + CALL h5lcreate_soft_f("/G1_FALSE", file_id, "/G2_FALSE", error) + CALL check("h5lcreate_soft_f", error, total_error) + + ! See if the link exists + CALL h5oexists_by_name_f(file_id,"/G1_LINK", link_exists, error) + CALL check("h5oexists_by_name_f", error, total_error) + + ! Object should exist + IF(.NOT.link_exists)THEN + CALL check("h5oexists_by_name_f", -1, total_error) + ENDIF + + chr_exact = "/G1_LINK" + ! See if the link exists + CALL h5oexists_by_name_f(file_id,chr_exact, link_exists, error, H5P_DEFAULT_F) + CALL check("h5oexists_by_name_f", error, total_error) + + ! Object should exist + IF(.NOT.link_exists)THEN + CALL check("h5oexists_by_name_f", -1, total_error) + ENDIF + + chr_lg = "/G1_LINK" + ! See if the link exists + CALL h5oexists_by_name_f(file_id,chr_lg, link_exists, error, H5P_DEFAULT_F) + CALL check("h5oexists_by_name_f", error, total_error) + + ! Object should exist + IF(.NOT.link_exists)THEN + CALL check("h5oexists_by_name_f", -1, total_error) + ENDIF + + chr_lg = "/G1_LINK " + ! See if the link exists + CALL h5oexists_by_name_f(file_id,chr_lg, link_exists, error, H5P_DEFAULT_F) + CALL check("h5oexists_by_name_f", error, total_error) + + ! Object should exist + IF(.NOT.link_exists)THEN + CALL check("h5oexists_by_name_f", -1, total_error) + ENDIF + + ! See if the link exists + CALL h5oexists_by_name_f(file_id,"/G1_FALSE", link_exists, error) + CALL check("h5oexists_by_name_f", error, total_error) + + ! Object should not exist + IF(link_exists)THEN + CALL check("h5oexists_by_name_f", -1, total_error) + ENDIF + + ! Check optional parameter + + CALL h5pcreate_f(H5P_LINK_ACCESS_F,plist,error) + CALL check("h5pcreate_f",error,total_error) + + nlinks = 2 + CALL h5pset_nlinks_f(plist, nlinks, error) + CALL check("h5pset_nlinks_f", error, total_error) + ! Ensure that nlinks was set successfully + nlinks = 0 + CALL h5pget_nlinks_f(plist, nlinks, error) + CALL check("h5pget_nlinks_f",error,total_error) + CALL VERIFY("h5pget_nlinks_f", INT(nlinks), 2, total_error) + + ! See if the link exists + CALL h5oexists_by_name_f(file_id,"/G1_LINK", link_exists, error, plist) + CALL check("h5oexists_by_name_f", error, total_error) + + ! Object should exist + IF(.not.link_exists)THEN + CALL check("h5oexists_by_name_f", -1, total_error) + ENDIF ! ! Close and release resources. ! @@ -283,6 +480,14 @@ SUBROUTINE test_h5o_link(total_error) CALL check("h5sclose_f", error, total_error) CALL h5gclose_f(group_id, error) CALL check("h5gclose_f", error, total_error) + + ! Test opening an object by index, note + CALL h5oopen_by_idx_f(file_id, "/G1/G2/G3", H5_INDEX_NAME_F, H5_ITER_INC_F, 0_hsize_t, group_id, error) + CALL check("h5oopen_by_idx_f", error, total_error) + + CALL h5oclose_f(group_id, error) + CALL check("h5gclose_f", error, total_error) + ! ! create property to pass copy options ! @@ -324,7 +529,7 @@ SUBROUTINE test_h5o_link(total_error) CALL h5tcopy_f(H5T_NATIVE_INTEGER, tid, error) CALL check("h5tcopy_f", error, total_error) - ! create named datatype + ! create named datatype CALL h5tcommit_f(file_id, NAME_DATATYPE_SIMPLE, tid, error) CALL check("h5tcommit_f", error, total_error) @@ -346,8 +551,7 @@ SUBROUTINE test_h5o_link(total_error) ! Compare the datatypes CALL h5tequal_f(tid, tid2, flag, error) IF(.NOT.flag)THEN - WRITE(*,*) "h5ocopy_f FAILED" - total_error = total_error + 1 + CALL check("h5ocopy_f FAILED", -1, total_error) ENDIF ! close the destination datatype @@ -436,7 +640,6 @@ SUBROUTINE test_h5o_plist(total_error) CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) - ! Create a group, dataset, and committed datatype within the file, ! using the respective type of creation property lists. ! @@ -472,7 +675,6 @@ SUBROUTINE test_h5o_plist(total_error) CALL h5sclose_f(dspace, error) CALL check("h5sclose_f",error,total_error) - ! Close current creation property lists CALL h5pclose_f(gcpl,error) CALL check("h5pclose_f", error, total_error) @@ -482,7 +684,6 @@ SUBROUTINE test_h5o_plist(total_error) CALL check("h5pclose_f", error, total_error) ! Retrieve each object's creation property list - CALL H5Gget_create_plist_f(grp, gcpl, error) CALL check("H5Gget_create_plist", error, total_error) @@ -492,7 +693,6 @@ SUBROUTINE test_h5o_plist(total_error) CALL H5Dget_create_plist_f(dset, dcpl, error) CALL check("H5Dget_create_plist_f", error, total_error) - ! Retrieve attribute phase change values on each creation property list and verify CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) @@ -509,9 +709,7 @@ SUBROUTINE test_h5o_plist(total_error) CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) - ! Close current objects - CALL h5pclose_f(gcpl,error) CALL check("h5pclose_f", error, total_error) CALL h5pclose_f(dcpl,error) @@ -552,7 +750,6 @@ SUBROUTINE test_h5o_plist(total_error) CALL H5Dget_create_plist_f(dset, dcpl, error) CALL check("H5Dget_create_plist_f", error, total_error) - ! Retrieve attribute phase change values on each creation property list and verify CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) @@ -569,9 +766,7 @@ SUBROUTINE test_h5o_plist(total_error) CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) - ! Close current objects - CALL h5pclose_f(gcpl,error) CALL check("h5pclose_f", error, total_error) CALL h5pclose_f(dcpl,error) diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90 new file mode 100644 index 0000000..f060a7d --- /dev/null +++ b/fortran/test/tH5O_F03.f90 @@ -0,0 +1,547 @@ +!****h* root/fortran/test/tH5O_F03.f90 +! +! NAME +! tH5O_F03.f90 +! +! FUNCTION +! Test FORTRAN HDF5 H5O APIs which are dependent on FORTRAN 2003 +! features. +! +! 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 files COPYING and Copyright.html. COPYING can be found at the root * +! of the source code distribution tree; Copyright.html can be found at the * +! root level of an installed copy of the electronic HDF5 document set and * +! is linked from the top-level documents page. It can also be found at * +! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * +! access to either file, you may request a copy from help@hdfgroup.org. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +!***** + +! ***************************************** +! *** H 5 O T E S T S +! ***************************************** +MODULE visit_cb + + USE HDF5 + USE ISO_C_BINDING + + IMPLICIT NONE + + INTEGER, PARAMETER :: info_size = 9 + + !------------------------------------------------------------------------- + ! Function: visit_obj_cb + ! + ! Purpose: Callback routine for visiting objects in a file + ! + ! Return: Success: 0 + ! Failure: -1 + ! + ! Programmer: M.S. Breitenfeld + ! July 12, 2012 + ! Adopted from C test. + ! + !------------------------------------------------------------------------- + ! + ! Object visit structs + TYPE, bind(c) :: obj_visit_t + CHARACTER(LEN=1), DIMENSION(1:180) :: path ! Path to object + INTEGER :: type_obj ! type of object + END TYPE obj_visit_t + + TYPE, bind(c) :: ovisit_ud_t + INTEGER :: idx ! Index in object visit structure + TYPE(obj_visit_t), DIMENSION(1:info_size) :: info ! Pointer to the object visit structure to use + END TYPE ovisit_ud_t + +CONTAINS + + INTEGER FUNCTION visit_obj_cb( group_id, name, oinfo, op_data) bind(C) + + IMPLICIT NONE + + INTEGER(HID_T) :: group_id + CHARACTER(LEN=1), DIMENSION(1:180) :: name + TYPE(h5o_info_t) :: oinfo + TYPE(ovisit_ud_t) :: op_data + + INTEGER :: len, i + INTEGER :: idx + + visit_obj_cb = 0 + + ! Since the name is generated in C and passed to a Fortran string, it + ! will be NULL terminated, so we need to find the end of the string. + + len = 1 + DO len = 1, 180 + IF(name(len) .EQ. C_NULL_CHAR) EXIT + ENDDO + + len = len - 1 + + ! Check for correct object information + + idx = op_data%idx + + DO i = 1, len + IF(op_data%info(idx)%path(i)(1:1) .NE. name(i)(1:1))THEN + visit_obj_cb = -1 + RETURN + ENDIF + + IF(op_data%info(idx)%type_obj .NE. oinfo%type)THEN + visit_obj_cb = -1 + RETURN + ENDIF + + ENDDO + + ! Advance to next location in expected output + op_data%idx = op_data%idx + 1 + + END FUNCTION visit_obj_cb + +END MODULE visit_cb + +!/**************************************************************** +!** +!** test_h5o_refcount(): Test H5O refcounting functions. +!** +!****************************************************************/ + +SUBROUTINE test_h5o_refcount(total_error) + + USE HDF5 + USE ISO_C_BINDING + IMPLICIT NONE + + INTEGER, INTENT(INOUT) :: total_error + + CHARACTER(LEN=11), PARAMETER :: FILENAME = "th5o_ref.h5" + INTEGER, PARAMETER :: DIM0 = 5 + INTEGER, PARAMETER :: DIM1 = 10 + INTEGER(hid_t) :: fid ! HDF5 File ID + INTEGER(hid_t) :: grp, dset, dtype, dspace ! Object identifiers + TYPE(h5o_info_t) :: oinfo ! Object info struct + INTEGER(hsize_t), DIMENSION(1:2) :: dims + INTEGER :: error ! Value returned from API calls + + ! Create a new HDF5 file + CALL h5fcreate_f(FILENAME,H5F_ACC_TRUNC_F,fid,error) + CALL check("h5fcreate_f", error, total_error) + + ! Create a group, dataset, and committed datatype within the file + ! Create the group + CALL h5gcreate_f(fid, "group", grp, error) + CALL check("h5gcreate_f",error, total_error) + + ! Commit the type inside the group + CALL h5tcopy_f(H5T_NATIVE_INTEGER, dtype, error) + CALL check("H5Tcopy_f",error, total_error) + CALL h5tcommit_f(fid, "datatype", dtype, error) + CALL check("h5tcommit_f", error, total_error) + + ! Create the data space for the dataset. + dims(1) = DIM0 + dims(2) = DIM1 + + CALL h5screate_simple_f(2, dims, dspace, error) + CALL check("h5screate_simple_f", error, total_error) + + ! Create the dataset. + CALL h5dcreate_f(fid, "dataset", H5T_NATIVE_INTEGER, dspace, dset, error) + CALL check("h5dcreate_f", error, total_error) + CALL h5sclose_f(dspace, error) + CALL check("h5sclose_f", error, total_error) + + ! Get ref counts for each object. They should all be 1, since each object has a hard link. + CALL h5oget_info_by_name_f(fid, "group", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + CALL h5oget_info_by_name_f(fid, "datatype", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + CALL h5oget_info_by_name_f(fid, "dataset", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + + ! Check h5oget_info + CALL h5oget_info_f(grp, oinfo, error) + CALL check("h5oget_info_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_f", -1, total_error) + ENDIF + IF(oinfo%type.NE.H5O_TYPE_GROUP_F)THEN + CALL check("h5oget_info_f", -1, total_error) + ENDIF + + ! Increment each object's reference count. + CALL h5oincr_refcount_f(grp, error) + CALL check("h5oincr_refcount_f", error, total_error) + CALL h5oincr_refcount_f(dtype, error) + CALL check("h5oincr_refcount_f", error, total_error) + CALL h5oincr_refcount_f(dset, error) + CALL check("h5oincr_refcount_f", error, total_error) + + ! Get ref counts for each object. They should all be 2 now. + CALL h5oget_info_by_name_f(fid, "group", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.2)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + CALL h5oget_info_by_name_f(fid, "datatype", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.2)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + CALL h5oget_info_by_name_f(fid, "dataset", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.2)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + + ! Decrement the reference counts and check that they decrease back to 1. + CALL h5odecr_refcount_f(grp, error) + CALL check("h5oincr_refcount_f", error, total_error) + CALL h5odecr_refcount_f(dtype, error) + CALL check("h5oincr_refcount_f", error, total_error) + CALL h5odecr_refcount_f(dset, error) + CALL check("h5oincr_refcount_f", error, total_error) + + CALL h5oget_info_by_name_f(fid, "group", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + CALL h5oget_info_by_name_f(fid, "datatype", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + CALL h5oget_info_by_name_f(fid, "dataset", oinfo, error) + CALL check("h5oget_info_by_name_f", error, total_error) + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_name_f", -1, total_error) + ENDIF + + CALL h5gclose_f(grp, error) + CALL check("h5gclose_f",error, total_error) + CALL h5tclose_f(dtype, error) + CALL check("h5tclose_f",error, total_error) + CALL h5dclose_f(dset, error) + CALL check("h5dclose_f",error, total_error) + CALL h5fclose_f(fid, error) + CALL check("h5fclose_f",error, total_error) + +END SUBROUTINE test_h5o_refcount + +!**************************************************************** +!** +!** test_h5o_refcount(): Test H5O visit functions. +!** +!**************************************************************** + +SUBROUTINE obj_visit(total_error) + + USE HDF5 + + USE visit_cb + USE ISO_C_BINDING + IMPLICIT NONE + + INTEGER, INTENT(INOUT) :: total_error + + TYPE(ovisit_ud_t), TARGET :: udata ! User-data for visiting + INTEGER(hid_t) :: fid = -1 + INTEGER(hid_t) :: gid = -1 ! Group ID + TYPE(C_PTR) :: f_ptr + TYPE(C_FUNPTR) :: fun_ptr + CHARACTER(LEN=180) :: object_name + INTEGER :: ret_val + INTEGER :: error + + ! Construct "interesting" file to visit + CALL build_visit_file(fid) + + ! Inialize udata for testing purposes + udata%info(1)%path(1:1) ="." + udata%info(1)%type_obj = H5O_TYPE_GROUP_F + udata%info(2)%path(1:12) = & + (/"D","a","t","a","s","e","t","_","z","e","r","o"/) + udata%info(2)%type_obj =H5O_TYPE_DATASET_F + udata%info(3)%path(1:6) = & + (/"G","r","o","u","p","1"/) + udata%info(3)%type_obj = H5O_TYPE_GROUP_F + udata%info(4)%path(1:18) =& + (/"G","r","o","u","p","1","/","D","a","t","a","s","e","t","_","o","n","e"/) + udata%info(4)%type_obj = H5O_TYPE_DATASET_F + udata%info(5)%path(1:13) =& + (/"G","r","o","u","p","1","/","G","r","o","u","p","2"/) + udata%info(5)%type_obj = H5O_TYPE_GROUP_F + udata%info(6)%path(1:25) =& + (/"G","r","o","u","p","1","/","G","r","o","u","p","2","/","D","a","t","a","s","e","t","_","t","w","o"/) + udata%info(6)%type_obj = H5O_TYPE_DATASET_F + udata%info(7)%path(1:22) =& + (/"G","r","o","u","p","1","/","G","r","o","u","p","2","/","T","y","p","e","_","t","w","o"/) + udata%info(7)%type_obj = H5O_TYPE_NAMED_DATATYPE_F + udata%info(8)%path(1:15) =& + (/"G","r","o","u","p","1","/","T","y","p","e","_","o","n","e"/) + udata%info(8)%type_obj = H5O_TYPE_NAMED_DATATYPE_F + udata%info(9)%path(1:9) =& + (/"T","y","p","e","_","z","e","r","o"/) + udata%info(9)%type_obj = H5O_TYPE_NAMED_DATATYPE_F + + ! Visit all the objects reachable from the root group (with file ID) + udata%idx = 1 + + fun_ptr = C_FUNLOC(visit_obj_cb) + f_ptr = C_LOC(udata) + + ! Test h5ovisit_f + CALL h5ovisit_f(fid, H5_INDEX_NAME_F, H5_ITER_INC_F, fun_ptr, f_ptr, ret_val, error) + CALL check("h5ovisit_f", error, total_error) + IF(ret_val.LT.0)THEN + CALL check("h5ovisit_f", -1, total_error) + ENDIF + + ! Test h5ovisit_by_name_f + + object_name = "/" + udata%idx = 1 + + CALL h5ovisit_by_name_f(fid, object_name, H5_INDEX_NAME_F, H5_ITER_INC_F, fun_ptr, f_ptr, ret_val, error) + CALL check("h5ovisit_by_name_f", error, total_error) + IF(ret_val.LT.0)THEN + CALL check("h5ovisit_by_name_f", -1, total_error) + ENDIF + + CALL h5fclose_f(fid, error) + CALL check("h5fclose_f",error, total_error) + +END SUBROUTINE obj_visit + +!**************************************************************** +!** +!** test_h5o_refcount(): Test H5O info functions. +!** +!**************************************************************** + +SUBROUTINE obj_info(total_error) + + USE HDF5 + USE ISO_C_BINDING + IMPLICIT NONE + + INTEGER, INTENT(INOUT) :: total_error + + INTEGER(hid_t) :: fid = -1 ! File ID + INTEGER(hid_t) :: gid = -1, gid2 = -1 ! Group IDs + INTEGER(hid_t) :: did ! Dataset ID + INTEGER(hid_t) :: sid ! Dataspace ID + TYPE(hobj_ref_t_f), TARGET :: wref ! Reference to write + TYPE(hobj_ref_t_f), TARGET :: rref ! Reference to read + TYPE(H5O_info_t) :: oinfo ! Object info struct + INTEGER :: count = 0 ! Count within iterated group + INTEGER :: error + TYPE(C_PTR) :: f_ptr + + CHARACTER(LEN=6) :: GROUPNAME = "/group" + CHARACTER(LEN=6) :: GROUPNAME2 = "group2" + CHARACTER(LEN=6) :: GROUPNAME3 = "group3" + CHARACTER(LEN=5) :: DSETNAME = "/dset" + CHARACTER(LEN=5) :: DSETNAME2 = "dset2" + + ! Create file with a group and a dataset containing an object reference to the group + CALL h5fcreate_f("get_info.h5", H5F_ACC_TRUNC_F, fid, error) + CALL check("h5fcreate_f",error, total_error) + + ! Create dataspace to use for dataset + CALL h5screate_f(H5S_SCALAR_F, sid, error) + CALL check("h5screate_f",error,total_error) + + ! Create group to refer to + CALL h5gcreate_f(fid, GROUPNAME, gid, error) + CALL check("h5gcreate_f",error,total_error) + + ! Create nested groups + CALL h5gcreate_f(gid, GROUPNAME2, gid2, error) + CALL check("h5gcreate_f",error,total_error) + CALL h5gclose_f(gid2, error) + CALL check("h5gclose_f",error,total_error) + + CALL h5gcreate_f(gid, GROUPNAME3, gid2, error) + CALL check("h5gcreate_f",error,total_error) + CALL h5gclose_f(gid2, error) + CALL check("h5gclose_f",error,total_error) + + ! Create bottom dataset + CALL h5dcreate_f(gid, DSETNAME2, H5T_NATIVE_INTEGER, sid, did, error) + CALL check("h5dcreate_f",error, total_error) + + CALL h5dclose_f(did, error) + CALL check("h5dclose_f", error, total_error) + + CALL h5gclose_f(gid, error) + CALL check("h5gclose_f",error,total_error) + + ! Create dataset + CALL h5dcreate_f(fid, DSETNAME, H5T_STD_REF_OBJ, sid, did, error) + CALL check("h5dcreate_f",error, total_error) + + f_ptr = C_LOC(wref) + + ! Create reference to group + CALL h5rcreate_f(fid, GROUPNAME, H5R_OBJECT_F, f_ptr, error) + CALL check("h5rcreate_f",error, total_error) + + ! Write reference to disk + CALL h5dwrite_f(did, H5T_STD_REF_OBJ, f_ptr, error) + CALL check("h5dwrite_f",error, total_error) + + ! Close objects + CALL h5dclose_f(did, error) + CALL check("h5dclose_f", error, total_error) + CALL h5sclose_f(sid, error) + CALL check("h5sclose_f", error, total_error) + CALL h5fclose_f(fid, error) + CALL check("h5fclose_f", error, total_error) + + ! Re-open file + CALL h5fopen_f("get_info.h5", H5F_ACC_RDWR_F, fid, error) + CALL check("h5fopen_f", error, total_error) + + ! Re-open dataset + CALL h5dopen_f(fid, DSETNAME, did, error) + CALL check("h5dopen_f", error, total_error) + + ! Read in the reference + + f_ptr = C_LOC(rref) + + CALL h5dread_f(did, H5T_STD_REF_OBJ, f_ptr, error) + CALL check("H5Dread_f",error, total_error) + + ! Dereference to get the group + + CALL h5rdereference_f(did, H5R_OBJECT_F, f_ptr, gid, error) + CALL check("h5rdereference_f", error, total_error) + + CALL h5oget_info_by_idx_f(gid, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, 0_hsize_t, oinfo, error) + CALL check("h5oget_info_by_idx_f", error, total_error) + + IF(oinfo%rc.NE.1)THEN + CALL check("h5oget_info_by_idx_f", -1, total_error) + ENDIF + + IF(oinfo%type.NE.H5O_TYPE_DATASET_F)THEN + CALL check("h5oget_info_by_idx_f", -1, total_error) + ENDIF + + ! Close objects + CALL h5dclose_f(did, error) + CALL check("h5dclose_f", error, total_error) + CALL h5gclose_f(gid, error) + CALL check("h5sclose_f", error, total_error) + CALL h5fclose_f(fid, error) + CALL check("h5fclose_f", error, total_error) + +END SUBROUTINE obj_info + +!------------------------------------------------------------------------- +! Function: build_visit_file +! +! Purpose: Build an "interesting" file to use for visiting links & objects +! +! Programmer: M. Scot Breitenfeld +! July 12, 2012 +! NOTE: Adapted from C test. +! +!------------------------------------------------------------------------- +! + +SUBROUTINE build_visit_file(fid) + + USE HDF5 + IMPLICIT NONE + + INTEGER(hid_t) :: fid ! File ID + INTEGER(hid_t) :: gid = -1, gid2 = -1 ! Group IDs + INTEGER(hid_t) :: sid = -1 ! Dataspace ID + INTEGER(hid_t) :: did = -1 ! Dataset ID + INTEGER(hid_t) :: tid = -1 ! Datatype ID + CHARACTER(LEN=20) :: filename = 'visit.h5' + INTEGER :: error + + ! Create file for visiting + CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, fid, error) + + ! Create group + CALL H5Gcreate_f(fid, "/Group1", gid, error) + + ! Create nested group + CALL H5Gcreate_f(gid, "Group2", gid2, error) + + ! Close groups + CALL h5gclose_f(gid2, error) + CALL h5gclose_f(gid, error) + + ! Create soft links to groups created + CALL H5Lcreate_soft_f("/Group1", fid, "/soft_one", error) + CALL H5Lcreate_soft_f("/Group1/Group2", fid, "/soft_two", error) + + ! Create dangling soft link + CALL H5Lcreate_soft_f("nowhere", fid, "/soft_dangle", error) + + ! Create hard links to all groups + CALL H5Lcreate_hard_f(fid, "/", fid, "hard_zero", error) + CALL H5Lcreate_hard_f(fid, "/Group1", fid, "hard_one", error) + CALL H5Lcreate_hard_f(fid, "/Group1/Group2", fid, "hard_two", error) + + ! Create loops w/hard links + CALL H5Lcreate_hard_f(fid, "/Group1", fid, "/Group1/hard_one", error) + CALL H5Lcreate_hard_f(fid, "/", fid, "/Group1/Group2/hard_zero", error) + + ! Create dataset in each group + CALL H5Screate_f(H5S_SCALAR_F, sid, error) + + CALL H5Dcreate_f(fid, "/Dataset_zero", H5T_NATIVE_INTEGER, sid, did, error) + CALL H5Dclose_f(did, error) + + CALL H5Dcreate_f(fid, "/Group1/Dataset_one", H5T_NATIVE_INTEGER, sid, did, error) + CALL H5Dclose_f(did, error) + + CALL H5Dcreate_f(fid, "/Group1/Group2/Dataset_two", H5T_NATIVE_INTEGER, sid, did, error) + CALL H5Dclose_f(did, error) + + CALL H5Sclose_f(sid, error) + + ! Create named datatype in each group + CALL H5Tcopy_f(H5T_NATIVE_INTEGER, tid, error) + + CALL H5Tcommit_f(fid, "/Type_zero", tid, error) + CALL H5Tclose_f(tid, error) + + CALL H5Tcopy_f(H5T_NATIVE_INTEGER, tid, error) + CALL H5Tcommit_f(fid, "/Group1/Type_one", tid, error) + CALL H5Tclose_f(tid, error) + + CALL H5Tcopy_f(H5T_NATIVE_INTEGER, tid, error) + CALL H5Tcommit_f(fid, "/Group1/Group2/Type_two", tid, error) + CALL H5Tclose_f(tid, error) + +END SUBROUTINE build_visit_file diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90 index 9605c45..b42a8e6 100644 --- a/fortran/test/tH5T.f90 +++ b/fortran/test/tH5T.f90 @@ -86,8 +86,8 @@ CHARACTER(LEN=2), DIMENSION(dimsize) :: char_member_out ! Buffer to read data out INTEGER, DIMENSION(dimsize) :: int_member INTEGER, DIMENSION(dimsize) :: int_member_out - DOUBLE PRECISION, DIMENSION(dimsize) :: double_member - DOUBLE PRECISION, DIMENSION(dimsize) :: double_member_out + REAL(KIND=Fortran_DOUBLE), DIMENSION(dimsize) :: double_member + REAL(KIND=Fortran_DOUBLE), DIMENSION(dimsize) :: double_member_out REAL, DIMENSION(dimsize) :: real_member REAL, DIMENSION(dimsize) :: real_member_out INTEGER :: i diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90 index 215ac9e..1c4da8b 100644 --- a/fortran/test/tH5T_F03.f90 +++ b/fortran/test/tH5T_F03.f90 @@ -103,7 +103,7 @@ SUBROUTINE test_array_compound_atomic(total_error) ! Create file CALL h5fcreate_f(FILENAME,H5F_ACC_TRUNC_F,fid1,error) - CALL check("h5fcreate_f", error, total_error) + CALL check("h5fcreate_f", error, total_error) ! Create dataspace for datasets CALL h5screate_simple_f(SPACE1_RANK, sdims1, sid1, error) @@ -1976,8 +1976,8 @@ SUBROUTINE t_regref(total_error) INTEGER(HSIZE_T), DIMENSION(1:1) :: maxdims INTEGER(hssize_t) :: npoints - TYPE(hdset_reg_ref_t_f), DIMENSION(1:dim0), TARGET :: wdata ! Write buffer - TYPE(hdset_reg_ref_t_f), DIMENSION(:), ALLOCATABLE, TARGET :: rdata ! Read buffer + TYPE(hdset_reg_ref_t_f03), DIMENSION(1:dim0), TARGET :: wdata ! Write buffer + TYPE(hdset_reg_ref_t_f03), DIMENSION(:), ALLOCATABLE, TARGET :: rdata ! Read buffer INTEGER(size_t) :: size CHARACTER(LEN=1), DIMENSION(1:ds2dim0,1:ds2dim1), TARGET :: wdata2 @@ -2058,7 +2058,6 @@ SUBROUTINE t_regref(total_error) CALL check("h5sclose_f",error, total_error) CALL h5fclose_f(file , error) CALL check("h5fclose_f",error, total_error) - ! ! Now we begin the read section of this example. ! @@ -2095,10 +2094,11 @@ SUBROUTINE t_regref(total_error) ! Open the referenced object, retrieve its region as a ! dataspace selection. ! - CALL H5Rdereference_f(dset, rdata(i), dset2, error) + f_ptr = C_LOC(rdata(i)) + CALL H5Rdereference_f(dset, H5R_DATASET_REGION_F, f_ptr, dset2, error) CALL check("H5Rdereference_f",error, total_error) - - CALL H5Rget_region_f(dset, rdata(i), space, error) + + CALL H5Rget_region_f(dset, f_ptr, space, error) CALL check("H5Rget_region_f",error, total_error) ! @@ -2754,7 +2754,7 @@ SUBROUTINE t_string(total_error) CALL check("H5Dget_type_f",error, total_error) CALL H5Tget_size_f(filetype, size, error) CALL check("H5Tget_size_f",error, total_error) - CALL VERIFY("H5Tget_size_f", size, sdim, total_error) + CALL VERIFY("H5Tget_size_f", INT(size), INT(sdim), total_error) ! ! Get dataspace. ! @@ -2800,4 +2800,295 @@ SUBROUTINE t_string(total_error) END SUBROUTINE t_string +SUBROUTINE vl_test_special_char(cleanup, total_error) + + USE hdf5 + IMPLICIT NONE + + INTERFACE + SUBROUTINE setup_buffer(data_in, line_lengths, char_type) + USE hdf5 + USE ISO_C_BINDING + IMPLICIT NONE + CHARACTER(len=*), DIMENSION(:) :: data_in + INTEGER(size_t), DIMENSION(:) :: line_lengths + CHARACTER(KIND=C_CHAR,LEN=*) :: char_type + END SUBROUTINE setup_buffer + END INTERFACE + + LOGICAL, INTENT(IN) :: cleanup + INTEGER, INTENT(OUT) :: total_error + + CHARACTER(LEN=16), PARAMETER :: filename = "t_controlchar.h5" + INTEGER, PARAMETER :: line_length = 10 + INTEGER(hid_t) :: file + INTEGER(hid_t) :: dataset0 + CHARACTER(len=line_length), DIMENSION(1:100) :: data_in + CHARACTER(len=line_length), DIMENSION(1:100) :: data_out + INTEGER(size_t), DIMENSION(1:100) :: line_lengths + INTEGER(hid_t) :: string_id, space, dcpl + INTEGER(hsize_t), DIMENSION(1:1) :: dims = (/0/) + INTEGER(hsize_t), DIMENSION(1:1) :: max_dims = (/0/) + INTEGER(hsize_t), DIMENSION(1:2) :: data_dims = (/0,0/) + INTEGER(hsize_t), DIMENSION(1:1) :: chunk =(/10/) + INTEGER, PARAMETER :: ncontrolchar = 7 + CHARACTER(KIND=C_CHAR,LEN=1), DIMENSION(1:ncontrolchar) :: controlchar = & + (/C_ALERT, C_BACKSPACE,C_CARRIAGE_RETURN, C_FORM_FEED,C_HORIZONTAL_TAB,C_VERTICAL_TAB, C_NEW_LINE/) + INTEGER :: i, j, n, error + n = 8 + ! + ! Create a new file using the default properties. + ! + CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error) + CALL check("h5fcreate_f",error, total_error) + + max_dims = (/H5S_UNLIMITED_F/) + + ! + ! Create the memory datatype. + ! + CALL h5tcopy_f(h5t_string, string_id, error) + CALL check("h5tcopy_f", error, total_error) + CALL h5tset_strpad_f(string_id, h5t_str_nullpad_f, error) + CALL check("h5tset_strpad_f", error, total_error) + dims(1) = n + ! + ! Create dataspace. + ! + CALL h5screate_simple_f(1, dims, space, error, max_dims) + CALL check("h5screate_simple_f", error, total_error) + CALL h5pcreate_f(h5p_dataset_create_f, dcpl, error) + CALL check("h5pcreate_f", error, total_error) + CALL h5pset_chunk_f(dcpl, 1, chunk, error) + CALL check("h5pset_chunk_f", error, total_error) + + data_dims(1) = line_length + data_dims(2) = n + ! + ! Create data with strings containing various control characters. + ! + DO i = 1, ncontrolchar + ! + ! Create the dataset, for the string with control character and write the string data to it. + ! + CALL h5dcreate_f(file, controlchar(i), string_id, space, dataset0, error, dcpl) + CALL check("h5dcreate_f", error, total_error) + CALL setup_buffer(data_in(1:n), line_lengths, controlchar(i)) + CALL h5dwrite_vl_f(dataset0, string_id, data_in(1:n), data_dims, line_lengths(1:n), error, space) + CALL check("h5dwrite_vl_f", error, total_error) + ! + ! Read the string back. + ! + CALL h5dread_vl_f(dataset0, string_id, data_out(1:n), data_dims, line_lengths(1:n), error, space) + CALL check("h5dread_vl_f", error, total_error) + + DO j = 1, n + IF(data_in(j).NE.data_out(j))THEN + total_error = total_error + 1 + EXIT + ENDIF + ENDDO + + CALL h5dclose_f(dataset0, error) + CALL check("h5dclose_f", error, total_error) + ENDDO + + CALL h5pclose_f(dcpl, error) + CALL check("h5pclose_f", error, total_error) + CALL h5sclose_f(space, error) + CALL check("h5sclose_f", error, total_error) + CALL h5fclose_f(file, error) + CALL check("h5fclose_f", error, total_error) + +END SUBROUTINE vl_test_special_char + + +SUBROUTINE setup_buffer(data_in, line_lengths, char_type) + + USE HDF5 + USE ISO_C_BINDING + + IMPLICIT NONE + + ! Creates a simple "Data_in" consisting of the letters of the alphabet, + ! one per line, with a control character. + + CHARACTER(len=10), DIMENSION(:) :: data_in + INTEGER(size_t), DIMENSION(:) :: line_lengths + INTEGER, DIMENSION(1:3) :: letters + CHARACTER(LEN=3) :: lets + CHARACTER(KIND=C_CHAR,LEN=*) :: char_type + CHARACTER(KIND=C_CHAR,LEN=1) :: char_tmp + INTEGER :: i, j, n, ff + + ! Convert the letters and special character to integers + lets = 'abc' + + READ(lets,'(3A1)') letters + READ(char_type,'(A1)') ff + n = SIZE(data_in) + j = 1 + DO i=1,n-1 + IF( j .EQ. 4 )THEN + WRITE(char_tmp,'(A1)') ff + data_in(i:i) = char_tmp + ELSE + WRITE(char_tmp,'(A1)') letters(j) + data_in(i:i) = char_tmp + ENDIF + line_lengths(i) = LEN_TRIM(data_in(i)) + j = j + 1 + IF( j .EQ. 5 ) j = 1 + END DO + WRITE(char_tmp,'(A1)') ff + data_in(n:n) = char_tmp + line_lengths(n) = 1 + +END SUBROUTINE setup_buffer + +!------------------------------------------------------------------------- +! Function: test_nbit +! +! Purpose: Tests (real, 4 byte) datatype for nbit filter +! +! Return: Success: 0 +! Failure: >0 +! +! Programmer: M. Scot Breitenfeld +! Decemeber 7, 2010 +! +! Modifications: Moved this subroutine from the 1.8 test file and +! modified it to use F2003 features. +! This routine requires 4 byte reals, so we use F2003 features to +! ensure the requirement is satisfied in a portable way. +! The need for this arises when a user specifies the default real is 8 bytes. +! MSB 7/31/12 +! +!------------------------------------------------------------------------- +! + +SUBROUTINE test_nbit(cleanup, total_error ) + + USE HDF5 + USE ISO_C_BINDING + + IMPLICIT NONE + INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(Fortran_REAL_4) !should map to REAL*4 on most modern processors + LOGICAL, INTENT(IN) :: cleanup + INTEGER, INTENT(INOUT) :: total_error + INTEGER(hid_t) :: file + + INTEGER(hid_t) :: dataset, datatype, space, dc, mem_type_id + INTEGER(hsize_t), DIMENSION(1:2) :: dims = (/2,5/) + INTEGER(hsize_t), DIMENSION(1:2) :: chunk_dim = (/2,5/) + ! orig_data[] are initialized to be within the range that can be represented by + ! dataset datatype (no precision loss during datatype conversion) + ! + REAL(kind=wp), DIMENSION(1:2,1:5), TARGET :: orig_data = & + RESHAPE( (/188384.00, 19.103516, -1.0831790e9, -84.242188, & + 5.2045898, -49140.000, 2350.2500, -3.2110596e-1, 6.4998865e-5, -0.0000000/) , (/2,5/) ) + REAL(kind=wp), DIMENSION(1:2,1:5), TARGET :: new_data + INTEGER(size_t) :: PRECISION, offset + INTEGER :: error + LOGICAL :: status + INTEGER(size_t) :: i, j + TYPE(C_PTR) :: f_ptr + + ! check to see if filter is available + CALL H5Zfilter_avail_f(H5Z_FILTER_NBIT_F, status, error) + IF(.NOT.status)THEN ! We don't have H5Z_FILTER_NBIT_F filter + total_error = -1 ! so return + RETURN + ENDIF + + CALL H5Fcreate_f("nbit.h5", H5F_ACC_TRUNC_F, file, error) + CALL check("H5Fcreate_f", error, total_error) + + ! Define dataset datatype (integer), and set precision, offset + CALL H5Tcopy_f(H5T_IEEE_F32BE, datatype, error) + CALL CHECK(" H5Tcopy_f", error, total_error) + CALL H5Tset_fields_f(datatype, 26_size_t, 20_size_t, 6_size_t, 7_size_t, 13_size_t, error) + CALL CHECK(" H5Tset_fields_f", error, total_error) + offset = 7 + CALL H5Tset_offset_f(datatype, offset, error) + CALL CHECK(" H5Tset_offset_f", error, total_error) + PRECISION = 20 + CALL H5Tset_precision_f(datatype,PRECISION, error) + CALL CHECK(" H5Tset_precision_f", error, total_error) + + CALL H5Tset_size_f(datatype, 4_size_t, error) + CALL CHECK(" H5Tset_size_f", error, total_error) + + CALL H5Tset_ebias_f(datatype, 31_size_t, error) + CALL CHECK(" H5Tset_ebias_f", error, total_error) + + ! Create the data space + CALL H5Screate_simple_f(2, dims, space, error) + CALL CHECK(" H5Screate_simple_f", error, total_error) + + ! USE nbit filter + CALL H5Pcreate_f(H5P_DATASET_CREATE_F, dc, error) + CALL CHECK(" H5Pcreate_f", error, total_error) + + CALL H5Pset_chunk_f(dc, 2, chunk_dim, error) + CALL CHECK(" H5Pset_chunk_f", error, total_error) + CALL H5Pset_nbit_f(dc, error) + CALL CHECK(" H5Pset_nbit_f", error, total_error) + + ! Create the dataset + CALL H5Dcreate_f(file, "nbit_real", datatype, & + space, dataset, error, dc) + CALL CHECK(" H5Dcreate_f", error, total_error) + + !---------------------------------------------------------------------- + ! STEP 1: Test nbit by setting up a chunked dataset and writing + ! to it. + !---------------------------------------------------------------------- + ! + mem_type_id = h5kind_to_type(wp,H5_REAL_KIND) + + f_ptr = C_LOC(orig_data(1,1)) + CALL H5Dwrite_f(dataset, mem_type_id, f_ptr, error) + CALL CHECK(" H5Dwrite_f", error, total_error) + + !---------------------------------------------------------------------- + ! STEP 2: Try to read the data we just wrote. + !---------------------------------------------------------------------- + ! + f_ptr = C_LOC(new_data(1,1)) + CALL H5Dread_f(dataset, mem_type_id, f_ptr, error) + CALL CHECK(" H5Dread_f", error, total_error) + + ! Check that the values read are the same as the values written + ! Assume size of long long = size of double + ! + i_loop: DO i = 1, dims(1) + j_loop: DO j = 1, dims(2) + IF(.NOT.(orig_data(i,j).EQ.orig_data(i,j))) CYCLE ! skip IF value is NaN + IF(new_data(i,j) .NE. orig_data(i,j))THEN + total_error = total_error + 1 + WRITE(*,'(" Read different values than written.")') + WRITE(*,'(" At index ", 2(1X,I0))') i, j + EXIT i_loop + END IF + ENDDO j_loop + ENDDO i_loop + + !---------------------------------------------------------------------- + ! Cleanup + !---------------------------------------------------------------------- + ! + CALL H5Tclose_f(datatype, error) + CALL CHECK(" H5Tclose_f", error, total_error) + CALL H5Pclose_f(dc, error) + CALL CHECK(" H5Pclose_f", error, total_error) + CALL H5Sclose_f(space, error) + CALL CHECK(" H5Sclose_f", error, total_error) + CALL H5Dclose_f(dataset, error) + CALL CHECK(" H5Dclose_f", error, total_error) + CALL H5Fclose_f(file, error) + CALL CHECK(" H5Fclose_f", error, total_error) + +END SUBROUTINE test_nbit + diff --git a/fortran/testpar/hyper.f90 b/fortran/testpar/hyper.f90 index 1d65ae1..1a580ca 100644 --- a/fortran/testpar/hyper.f90 +++ b/fortran/testpar/hyper.f90 @@ -50,6 +50,7 @@ SUBROUTINE hyper(length,do_collective,do_chunk, mpi_size, mpi_rank, nerrors) INTEGER :: icount ! number of elements in array CHARACTER(len=80) :: filename ! filename INTEGER :: i + INTEGER :: actual_io_mode ! The type of I/O performed by this process !////////////////////////////////////////////////////////// ! initialize the array data between the processes (3) @@ -180,6 +181,24 @@ SUBROUTINE hyper(length,do_collective,do_chunk, mpi_size, mpi_rank, nerrors) CALL check("h5dwrite_f", hdferror, nerrors) + ! Check h5pget_mpio_actual_io_mode_f function + CALL h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferror) + CALL check("h5pget_mpio_actual_io_mode_f", hdferror, nerrors) + + IF(do_collective.AND.do_chunk)THEN + IF(actual_io_mode.NE.H5D_MPIO_CHUNK_COLLECTIVE_F)THEN + CALL check("h5pget_mpio_actual_io_mode_f", -1, nerrors) + ENDIF + ELSEIF(.NOT.do_collective)THEN + IF(actual_io_mode.NE.H5D_MPIO_NO_COLLECTIVE_F)THEN + CALL check("h5pget_mpio_actual_io_mode_f", -1, nerrors) + ENDIF + ELSEIF( do_collective.AND.(.NOT.do_chunk))THEN + IF(actual_io_mode.NE.H5D_MPIO_CONTIG_COLLECTIVE_F)THEN + CALL check("h5pget_mpio_actual_io_mode_f", -1, nerrors) + ENDIF + ENDIF + !////////////////////////////////////////////////////////// ! close HDF5 I/O !////////////////////////////////////////////////////////// diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt index d1db6ca..e66329e 100644 --- a/hl/CMakeLists.txt +++ b/hl/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_HL C CXX) #----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + +#----------------------------------------------------------------------------- # Shared Libs #----------------------------------------------------------------------------- IF (BUILD_SHARED_LIBS) diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 9f5cad5..93e3942 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -458,7 +458,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 # Include src directory diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 4443e72..d2e60b8 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -474,7 +474,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \ -I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src diff --git a/hl/src/H5LTanalyze.c b/hl/src/H5LTanalyze.c index 767dfd7..5ec795b 100644 --- a/hl/src/H5LTanalyze.c +++ b/hl/src/H5LTanalyze.c @@ -38,7 +38,7 @@ #define yywrap H5LTyywrap #line 20 "H5LTanalyze.c" -/* A lexical scanner generated by flex */ +/* A lexical scanner generated by flex*/ /* Scanner skeleton version: * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ @@ -51,7 +51,7 @@ #include #ifdef H5_HAVE_UNISTD_H #include -#endif +#endif /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus @@ -175,6 +175,15 @@ extern FILE *yyin, *yyout; #define unput(c) yyunput( c, yytext_ptr ) +/* Some routines like yy_flex_realloc() are emitted as static but are + not called by all lexers. This generates warnings in some compilers, + notably GCC. Arrange to suppress these. */ +#ifdef __GNUC__ +#define YY_MAY_BE_UNUSED __attribute__((unused)) +#else +#define YY_MAY_BE_UNUSED +#endif + /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). @@ -281,7 +290,7 @@ YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); static void *yy_flex_alloc YY_PROTO(( yy_size_t )); -static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); +static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED; static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer @@ -849,10 +858,10 @@ hbool_t first_quote = 1; /* For Lex and Yacc */ /*int input_len; char *myinput;*/ - + #define TAG_STRING 1 -#line 834 "H5LTanalyze.c" +#line 843 "H5LTanalyze.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1006,7 +1015,7 @@ YY_DECL #line 76 "H5LTanalyze.l" -#line 988 "H5LTanalyze.c" +#line 997 "H5LTanalyze.c" if ( yy_init ) { @@ -1288,17 +1297,17 @@ YY_RULE_SETUP case 40: YY_RULE_SETUP #line 121 "H5LTanalyze.l" -{return token(H5T_STR_NULLTERM_TOKEN);} +{return token(H5T_STR_NULLTERM_TOKEN);} YY_BREAK case 41: YY_RULE_SETUP #line 122 "H5LTanalyze.l" -{return token(H5T_STR_NULLPAD_TOKEN);} +{return token(H5T_STR_NULLPAD_TOKEN);} YY_BREAK case 42: YY_RULE_SETUP #line 123 "H5LTanalyze.l" -{return token(H5T_STR_SPACEPAD_TOKEN);} +{return token(H5T_STR_SPACEPAD_TOKEN);} YY_BREAK case 43: YY_RULE_SETUP @@ -1363,12 +1372,12 @@ YY_RULE_SETUP case 55: YY_RULE_SETUP #line 139 "H5LTanalyze.l" -{ - if( is_str_size || (is_enum && is_enum_memb) || +{ + if( is_str_size || (is_enum && is_enum_memb) || is_opq_size || (asindex>-1 && arr_stack[asindex].is_dim) || (csindex>-1 && cmpd_stack[csindex].is_field) ) { H5LTyylval.ival = atoi(yytext); - return NUMBER; + return NUMBER; } else REJECT; } @@ -1378,7 +1387,7 @@ YY_RULE_SETUP #line 149 "H5LTanalyze.l" { /*if it's first quote, and is a compound field name or an enum symbol*/ - if((is_opq_tag || is_enum || (csindex>-1 && cmpd_stack[csindex].is_field)) + if((is_opq_tag || is_enum || (csindex>-1 && cmpd_stack[csindex].is_field)) && first_quote) { first_quote = 0; BEGIN TAG_STRING; @@ -1441,7 +1450,7 @@ YY_RULE_SETUP #line 174 "H5LTanalyze.l" ECHO; YY_BREAK -#line 1423 "H5LTanalyze.c" +#line 1432 "H5LTanalyze.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(TAG_STRING): yyterminate(); @@ -2323,8 +2332,8 @@ int main() int my_yyinput(char *buf, int max_size) { int ret; - - memcpy(buf, myinput, input_len); + + memcpy(buf, myinput, input_len); ret = input_len; return ret; } @@ -2332,6 +2341,7 @@ int my_yyinput(char *buf, int max_size) int H5LTyyerror(char *msg) { printf("ERROR: %s before \"%s\".\n", msg, yytext); + return 0; } int yywrap() diff --git a/hl/src/H5LTanalyze.l b/hl/src/H5LTanalyze.l index dbba15a..3f63f50 100644 --- a/hl/src/H5LTanalyze.l +++ b/hl/src/H5LTanalyze.l @@ -184,6 +184,7 @@ int my_yyinput(char *buf, int max_size) int H5LTyyerror(char *msg) { printf("ERROR: %s before \"%s\".\n", msg, yytext); + return 0; } int yywrap() diff --git a/hl/src/H5TB.c b/hl/src/H5TB.c index 8a77f13..0b6305b 100644 --- a/hl/src/H5TB.c +++ b/hl/src/H5TB.c @@ -15,6 +15,7 @@ #include #include +#include "H5private.h" #include "H5LTprivate.h" #include "H5TBprivate.h" @@ -663,7 +664,7 @@ herr_t H5TBwrite_fields_index( hid_t loc_id, hid_t m_sid=-1; hid_t file_space_id=-1; char *member_name; - hsize_t i, j; + hsize_t i; hid_t preserve_id; size_t size_native; @@ -688,14 +689,19 @@ herr_t H5TBwrite_fields_index( hid_t loc_id, /* iterate tru the members */ for ( i = 0; i < nfields; i++) { + unsigned j; + + /* Range check value */ + if(field_index[i] < 0) + goto out; - j = field_index[i]; + j = (unsigned)field_index[i]; /* get the member name */ - member_name = H5Tget_member_name( tid, (unsigned) j ); + member_name = H5Tget_member_name( tid, j ); /* get the member type */ - if (( member_type_id = H5Tget_member_type( tid, (unsigned) j )) < 0) + if (( member_type_id = H5Tget_member_type( tid, j )) < 0) goto out; /* convert to native type */ @@ -1149,7 +1155,7 @@ herr_t H5TBread_fields_index( hid_t loc_id, hid_t m_sid=-1; hsize_t mem_size[1]; size_t size_native; - hsize_t i, j; + hsize_t i; /* open the dataset. */ if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0) @@ -1166,13 +1172,19 @@ herr_t H5TBread_fields_index( hid_t loc_id, /* iterate tru the members */ for ( i = 0; i < nfields; i++) { - j = field_index[i]; + unsigned j; + + /* Range check */ + if(field_index[i] < 0) + goto out; + + j = (unsigned)field_index[i]; /* get the member name */ - member_name = H5Tget_member_name( tid, (unsigned) j ); + member_name = H5Tget_member_name( tid, j ); /* get the member type */ - if (( member_type_id = H5Tget_member_type( tid, (unsigned) j )) < 0) + if (( member_type_id = H5Tget_member_type( tid, j )) < 0) goto out; /* get the member size */ @@ -1289,7 +1301,6 @@ herr_t H5TBdelete_record( hid_t loc_id, hsize_t start, hsize_t nrecords ) { - hsize_t nfields; hsize_t ntotal_records; hsize_t read_start; @@ -1304,8 +1315,8 @@ herr_t H5TBdelete_record( hid_t loc_id, hsize_t mem_size[1]; unsigned char *tmp_buf=NULL; size_t src_size; - size_t *src_offset; - size_t *src_sizes; + size_t *src_offset = NULL; + size_t *src_sizes = NULL; hsize_t dims[1]; /*------------------------------------------------------------------------- @@ -1315,23 +1326,20 @@ herr_t H5TBdelete_record( hid_t loc_id, /* get the number of records and fields */ if (H5TBget_table_info ( loc_id, dset_name, &nfields, &ntotal_records ) < 0) - return -1; - - src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t)); - src_sizes = (size_t *)malloc((size_t)nfields * sizeof(size_t)); + goto out; - if (src_offset == NULL ) - return -1; - if (src_sizes == NULL ) - return -1; + if(NULL == (src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t)))) + goto out; + if(NULL == (src_sizes = (size_t *)malloc((size_t)nfields * sizeof(size_t)))) + goto out; /* get field info */ if (H5TBget_field_info( loc_id, dset_name, NULL, src_sizes, src_offset, &src_size ) < 0) - return -1; + goto out; /* open the dataset. */ if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0) - return -1; + goto out; /*------------------------------------------------------------------------- * read the records after the deleted one(s) @@ -1343,14 +1351,12 @@ herr_t H5TBdelete_record( hid_t loc_id, if ( read_nrecords ) { - tmp_buf = (unsigned char *)calloc((size_t) read_nrecords, src_size ); - - if (tmp_buf == NULL ) - return -1; + if(NULL == (tmp_buf = (unsigned char *)calloc((size_t) read_nrecords, src_size ))) + goto out; /* read the records after the deleted one(s) */ if (H5TBread_records( loc_id, dset_name, read_start, read_nrecords, src_size, src_offset, src_sizes, tmp_buf ) < 0) - return -1; + goto out; /*------------------------------------------------------------------------- * write the records in another position @@ -1406,31 +1412,34 @@ herr_t H5TBdelete_record( hid_t loc_id, /* close dataset */ if (H5Dclose( did ) < 0) - return -1; - - if (tmp_buf !=NULL) - free( tmp_buf ); - free( src_offset ); - free( src_sizes ); + goto out; + if(tmp_buf) + free(tmp_buf); + if(src_offset) + free(src_offset); + if(src_sizes) + free(src_sizes); return 0; /* error zone */ out: - - if (tmp_buf !=NULL ) - free( tmp_buf ); + if(tmp_buf) + free(tmp_buf); + if(src_offset) + free(src_offset); + if(src_sizes) + free(src_sizes); H5E_BEGIN_TRY { H5Tclose(mem_type_id); H5Dclose(did); H5Tclose(tid); H5Sclose(sid); + H5Sclose(m_sid); } H5E_END_TRY; return -1; - - } /*------------------------------------------------------------------------- @@ -1629,10 +1638,10 @@ herr_t H5TBadd_records_from( hid_t loc_id, hsize_t mem_size[1]; hsize_t nfields; hsize_t ntotal_records; - unsigned char *tmp_buf; + unsigned char *tmp_buf = NULL; size_t src_size; - size_t *src_offset; - size_t *src_sizes; + size_t *src_offset = NULL; + size_t *src_sizes = NULL; /*------------------------------------------------------------------------- * first we get information about type size and offsets on disk @@ -1641,17 +1650,16 @@ herr_t H5TBadd_records_from( hid_t loc_id, /* get the number of records and fields */ if (H5TBget_table_info ( loc_id, dset_name1, &nfields, &ntotal_records ) < 0) - return -1; - - src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t)); - src_sizes = (size_t *)malloc((size_t)nfields * sizeof(size_t)); + goto out; - if (src_offset == NULL ) - return -1; + if(NULL == (src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t)))) + goto out; + if(NULL == (src_sizes = (size_t *)malloc((size_t)nfields * sizeof(size_t)))) + goto out; /* get field info */ if (H5TBget_field_info( loc_id, dset_name1, NULL, src_sizes, src_offset, &src_size ) < 0) - return -1; + goto out; /*------------------------------------------------------------------------- * Get information about the first table and read it @@ -1660,7 +1668,7 @@ herr_t H5TBadd_records_from( hid_t loc_id, /* open the 1st dataset. */ if ((did_1 = H5Dopen2(loc_id, dset_name1, H5P_DEFAULT)) < 0) - return -1; + goto out; /* get the datatype */ if ((tid_1 = H5Dget_type( did_1 )) < 0) @@ -1674,7 +1682,8 @@ herr_t H5TBadd_records_from( hid_t loc_id, if (( type_size1 = H5Tget_size( tid_1 )) == 0 ) goto out; - tmp_buf = (unsigned char *)calloc((size_t)nrecords, type_size1 ); + if(NULL == (tmp_buf = (unsigned char *)calloc((size_t)nrecords, type_size1 ))) + goto out; /* define a hyperslab in the dataset of the size of the records */ offset[0] = start1; @@ -1707,18 +1716,27 @@ herr_t H5TBadd_records_from( hid_t loc_id, if (H5Sclose( sid_1 ) < 0) goto out; if (H5Tclose( tid_1 ) < 0) - return -1; + goto out; if (H5Dclose( did_1 ) < 0) - return -1; + goto out; - free( tmp_buf ); - free( src_offset ); - free( src_sizes ); + if(tmp_buf) + free(tmp_buf); + if(src_offset) + free(src_offset); + if(src_sizes) + free(src_sizes); return 0; /* error zone */ out: + if(tmp_buf) + free(tmp_buf); + if(src_offset) + free(src_offset); + if(src_sizes) + free(src_sizes); H5E_BEGIN_TRY { H5Dclose(did_1); @@ -1748,50 +1766,50 @@ out: * *------------------------------------------------------------------------- */ -herr_t H5TBcombine_tables( hid_t loc_id1, +herr_t H5TBcombine_tables(hid_t loc_id1, const char *dset_name1, hid_t loc_id2, const char *dset_name2, - const char *dset_name3 ) + const char *dset_name3) { - /* identifiers for the 1st dataset. */ - hid_t did_1=-1; - hid_t tid_1=-1; - hid_t sid_1=-1; - hid_t pid_1=-1; + hid_t did_1 = H5I_BADID; + hid_t tid_1 = H5I_BADID; + hid_t sid_1 = H5I_BADID; + hid_t pid_1 = H5I_BADID; /* identifiers for the 2nd dataset. */ - hid_t did_2=-1; - hid_t tid_2=-1; - hid_t sid_2=-1; - hid_t pid_2=-1; + hid_t did_2 = H5I_BADID; + hid_t tid_2 = H5I_BADID; + hid_t sid_2 = H5I_BADID; + hid_t pid_2 = H5I_BADID; /* identifiers for the 3rd dataset. */ - hid_t did_3=-1; - hid_t tid_3=-1; - hid_t sid_3=-1; - hid_t pid_3=-1; + hid_t did_3 = H5I_BADID; + hid_t tid_3 = H5I_BADID; + hid_t sid_3 = H5I_BADID; + hid_t pid_3 = H5I_BADID; + hid_t sid = H5I_BADID; + hid_t m_sid = H5I_BADID; + hid_t member_type_id = H5I_BADID; + hid_t attr_id = H5I_BADID; hsize_t count[1]; hsize_t offset[1]; - hid_t m_sid; hsize_t mem_size[1]; hsize_t nfields; hsize_t nrecords; hsize_t dims[1]; - hsize_t maxdims[1] = { H5S_UNLIMITED }; + hsize_t maxdims[1] = {H5S_UNLIMITED}; + hsize_t i; size_t type_size; - hid_t sid; - hid_t member_type_id; size_t member_offset; + size_t src_size; + size_t *src_offset = NULL; + size_t *src_sizes = NULL; char attr_name[255]; - hid_t attr_id; char aux[255]; - unsigned char *tmp_buf; - unsigned char *tmp_fill_buf; - hsize_t i; - size_t src_size; - size_t *src_offset; - size_t *src_sizes; - int has_fill=0; + unsigned char *tmp_buf = NULL; + unsigned char *tmp_fill_buf = NULL; + htri_t has_fill; + int ret_val = -1; /*------------------------------------------------------------------------- * first we get information about type size and offsets on disk @@ -1799,18 +1817,17 @@ herr_t H5TBcombine_tables( hid_t loc_id1, */ /* get the number of records and fields */ - if (H5TBget_table_info ( loc_id1, dset_name1, &nfields, &nrecords ) < 0) - return -1; - - src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t)); - src_sizes = (size_t *)malloc((size_t)nfields * sizeof(size_t)); + if(H5TBget_table_info(loc_id1, dset_name1, &nfields, &nrecords) < 0) + goto out; - if (src_offset == NULL ) - return -1; + if(NULL == (src_offset = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t)))) + goto out; + if(NULL == (src_sizes = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t)))) + goto out; /* get field info */ - if (H5TBget_field_info( loc_id1, dset_name1, NULL, src_sizes, src_offset, &src_size ) < 0) - return -1; + if(H5TBget_field_info(loc_id1, dset_name1, NULL, src_sizes, src_offset, &src_size) < 0) + goto out; /*------------------------------------------------------------------------- * get information about the first table @@ -1818,24 +1835,24 @@ herr_t H5TBcombine_tables( hid_t loc_id1, */ /* open the 1st dataset. */ - if ((did_1 = H5Dopen2(loc_id1, dset_name1, H5P_DEFAULT)) < 0) + if((did_1 = H5Dopen2(loc_id1, dset_name1, H5P_DEFAULT)) < 0) goto out; /* get the datatype */ - if ((tid_1 = H5Dget_type( did_1 )) < 0) + if((tid_1 = H5Dget_type(did_1)) < 0) goto out; /* get the dataspace handle */ - if ((sid_1 = H5Dget_space( did_1 )) < 0) + if((sid_1 = H5Dget_space(did_1)) < 0) goto out; /* get creation properties list */ - if ((pid_1 = H5Dget_create_plist( did_1 )) < 0) + if((pid_1 = H5Dget_create_plist(did_1)) < 0) goto out; /* get the dimensions */ - if (H5TBget_table_info ( loc_id1, dset_name1, &nfields, &nrecords ) < 0) - return -1; + if(H5TBget_table_info(loc_id1, dset_name1, &nfields, &nrecords) < 0) + goto out; /*------------------------------------------------------------------------- * make the merged table with no data originally @@ -1843,11 +1860,11 @@ herr_t H5TBcombine_tables( hid_t loc_id1, */ /* clone the property list */ - if ((pid_3 = H5Pcopy(pid_1)) < 0) + if((pid_3 = H5Pcopy(pid_1)) < 0) goto out; /* clone the type id */ - if ((tid_3 = H5Tcopy(tid_1)) < 0) + if((tid_3 = H5Tcopy(tid_1)) < 0) goto out; /*------------------------------------------------------------------------- @@ -1858,96 +1875,97 @@ herr_t H5TBcombine_tables( hid_t loc_id1, dims[0] = 0; /* create a simple data space with unlimited size */ - if ((sid_3 = H5Screate_simple(1, dims, maxdims)) < 0) - return -1; + if((sid_3 = H5Screate_simple(1, dims, maxdims)) < 0) + goto out; /* create the dataset */ - if ((did_3 = H5Dcreate2(loc_id1, dset_name3, tid_3, sid_3, H5P_DEFAULT, pid_3, H5P_DEFAULT)) < 0) + if((did_3 = H5Dcreate2(loc_id1, dset_name3, tid_3, sid_3, H5P_DEFAULT, pid_3, H5P_DEFAULT)) < 0) goto out; /*------------------------------------------------------------------------- * attach the conforming table attributes *------------------------------------------------------------------------- */ - if (H5TB_attach_attributes("Merge table", loc_id1, dset_name3, nfields, tid_3) < 0) + if(H5TB_attach_attributes("Merge table", loc_id1, dset_name3, nfields, tid_3) < 0) goto out; /*------------------------------------------------------------------------- * get attributes *------------------------------------------------------------------------- */ - type_size = H5Tget_size(tid_3); /* alloc fill value attribute buffer */ - tmp_fill_buf = (unsigned char *)malloc(type_size); + if(NULL == (tmp_fill_buf = (unsigned char *)HDmalloc(type_size))) + goto out; /* get the fill value attributes */ - has_fill = H5TBAget_fill(loc_id1, dset_name1, did_1, tmp_fill_buf); + if((has_fill = H5TBAget_fill(loc_id1, dset_name1, did_1, tmp_fill_buf)) < 0) + goto out; /*------------------------------------------------------------------------- * attach the fill attributes from previous table *------------------------------------------------------------------------- */ - if (has_fill == 1 ) - { + if(has_fill) { - if (( sid = H5Screate(H5S_SCALAR)) < 0) + if((sid = H5Screate(H5S_SCALAR)) < 0) goto out; - for ( i = 0; i < nfields; i++) - { - + for(i = 0; i < nfields; i++) { /* get the member type */ - if (( member_type_id = H5Tget_member_type( tid_3, (unsigned) i )) < 0) + if((member_type_id = H5Tget_member_type(tid_3, (unsigned)i)) < 0) goto out; /* get the member offset */ member_offset = H5Tget_member_offset(tid_3, (unsigned)i); - strcpy(attr_name, "FIELD_"); - sprintf(aux, "%d", (int)i); - strcat(attr_name, aux); - sprintf(aux, "%s", "_FILL"); - strcat(attr_name, aux); + HDstrncpy(attr_name, "FIELD_", 6); + HDsnprintf(aux, 12, "%d", (int)i); + HDstrncat(attr_name, aux, 12); + HDsnprintf(aux, 6, "%s", "_FILL"); + HDstrncat(attr_name, aux, 7); - if ((attr_id = H5Acreate2(did_3, attr_name, member_type_id, sid, H5P_DEFAULT, H5P_DEFAULT)) < 0) + if((attr_id = H5Acreate2(did_3, attr_name, member_type_id, sid, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto out; - if (H5Awrite(attr_id, member_type_id, tmp_fill_buf+member_offset) < 0) + if(H5Awrite(attr_id, member_type_id, tmp_fill_buf + member_offset) < 0) goto out; - if (H5Aclose(attr_id) < 0) + if(H5Aclose(attr_id) < 0) goto out; + attr_id = H5I_BADID; - if (H5Tclose(member_type_id) < 0) + if(H5Tclose(member_type_id) < 0) goto out; + member_type_id = H5I_BADID; } /* close data space. */ - if (H5Sclose( sid ) < 0) + if(H5Sclose(sid) < 0) goto out; + sid = H5I_BADID; } /*------------------------------------------------------------------------- * read data from 1st table *------------------------------------------------------------------------- */ - - tmp_buf = (unsigned char *)calloc((size_t) nrecords, type_size ); + if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t)nrecords, type_size))) + goto out; /* define a hyperslab in the dataset of the size of the records */ offset[0] = 0; count[0] = nrecords; - if (H5Sselect_hyperslab( sid_1, H5S_SELECT_SET, offset, NULL, count, NULL) < 0) + if(H5Sselect_hyperslab(sid_1, H5S_SELECT_SET, offset, NULL, count, NULL) < 0) goto out; /* create a memory dataspace handle */ mem_size[0] = count[0]; - if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0) + if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0) goto out; - if (H5Dread( did_1, tid_1, m_sid, sid_1, H5P_DEFAULT, tmp_buf ) < 0) + if(H5Dread(did_1, tid_1, m_sid, sid_1, H5P_DEFAULT, tmp_buf) < 0) goto out; /*------------------------------------------------------------------------- @@ -1956,27 +1974,32 @@ herr_t H5TBcombine_tables( hid_t loc_id1, */ /* append the records to the new table */ - if (H5TBappend_records( loc_id1, dset_name3, nrecords, src_size, src_offset, src_sizes, tmp_buf ) < 0) + if(H5TBappend_records(loc_id1, dset_name3, nrecords, src_size, src_offset, src_sizes, tmp_buf) < 0) goto out; /*------------------------------------------------------------------------- * release resources from 1st table *------------------------------------------------------------------------- */ - - if (H5Sclose( m_sid ) < 0) + if(H5Sclose(m_sid) < 0) goto out; - if(H5Sclose( sid_1 ) < 0) + m_sid = H5I_BADID; + if(H5Sclose(sid_1) < 0) goto out; - if(H5Tclose( tid_1 ) < 0) + sid_1 = H5I_BADID; + if(H5Tclose(tid_1) < 0) goto out; - if(H5Pclose( pid_1 ) < 0) + tid_1 = H5I_BADID; + if(H5Pclose(pid_1) < 0) goto out; - if(H5Dclose( did_1 ) < 0) + pid_1 = H5I_BADID; + if(H5Dclose(did_1) < 0) goto out; + did_1 = H5I_BADID; /* Release resources. */ - free( tmp_buf ); + free(tmp_buf); + tmp_buf = NULL; /*------------------------------------------------------------------------- * get information about the 2nd table @@ -1984,44 +2007,45 @@ herr_t H5TBcombine_tables( hid_t loc_id1, */ /* open the dataset. */ - if ((did_2 = H5Dopen2(loc_id2, dset_name2, H5P_DEFAULT)) < 0) + if((did_2 = H5Dopen2(loc_id2, dset_name2, H5P_DEFAULT)) < 0) goto out; /* get the datatype */ - if ((tid_2 = H5Dget_type( did_2 )) < 0) + if((tid_2 = H5Dget_type(did_2)) < 0) goto out; /* get the dataspace handle */ - if ((sid_2 = H5Dget_space( did_2 )) < 0) + if((sid_2 = H5Dget_space(did_2)) < 0) goto out; /* get the property list handle */ - if ((pid_2 = H5Dget_create_plist( did_2 )) < 0) + if((pid_2 = H5Dget_create_plist(did_2)) < 0) goto out; /* get the dimensions */ - if (H5TBget_table_info ( loc_id2, dset_name2, &nfields, &nrecords ) < 0) - return -1; + if(H5TBget_table_info(loc_id2, dset_name2, &nfields, &nrecords) < 0) + goto out; /*------------------------------------------------------------------------- * read data from 2nd table *------------------------------------------------------------------------- */ - tmp_buf = (unsigned char *)calloc((size_t) nrecords, type_size ); + if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t)nrecords, type_size))) + goto out; /* define a hyperslab in the dataset of the size of the records */ offset[0] = 0; count[0] = nrecords; - if (H5Sselect_hyperslab( sid_2, H5S_SELECT_SET, offset, NULL, count, NULL) < 0) + if(H5Sselect_hyperslab(sid_2, H5S_SELECT_SET, offset, NULL, count, NULL) < 0) goto out; /* create a memory dataspace handle */ mem_size[0] = count[0]; - if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0) + if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0) goto out; - if (H5Dread( did_2, tid_2, m_sid, sid_2, H5P_DEFAULT, tmp_buf ) < 0) + if(H5Dread(did_2, tid_2, m_sid, sid_2, H5P_DEFAULT, tmp_buf) < 0) goto out; /*------------------------------------------------------------------------- @@ -2030,7 +2054,7 @@ herr_t H5TBcombine_tables( hid_t loc_id1, */ /* append the records to the new table */ - if (H5TBappend_records( loc_id1, dset_name3, nrecords, src_size, src_offset, src_sizes, tmp_buf ) < 0) + if(H5TBappend_records(loc_id1, dset_name3, nrecords, src_size, src_offset, src_sizes, tmp_buf) < 0) goto out; /*------------------------------------------------------------------------- @@ -2038,58 +2062,88 @@ herr_t H5TBcombine_tables( hid_t loc_id1, *------------------------------------------------------------------------- */ - if (H5Sclose( m_sid ) < 0) + if(H5Sclose(m_sid) < 0) goto out; - if (H5Sclose( sid_2 ) < 0) + m_sid = H5I_BADID; + if(H5Sclose(sid_2) < 0) goto out; - if (H5Tclose( tid_2 ) < 0) - return -1; - if (H5Pclose( pid_2 ) < 0) + sid_2 = H5I_BADID; + if(H5Tclose(tid_2) < 0) goto out; - if (H5Dclose( did_2 ) < 0) - return -1; + tid_2 = H5I_BADID; + if(H5Pclose(pid_2) < 0) + goto out; + pid_2 = H5I_BADID; + if(H5Dclose(did_2) < 0) + goto out; + did_2 = H5I_BADID; /*------------------------------------------------------------------------- * release resources from 3rd table *------------------------------------------------------------------------- */ - if (H5Sclose( sid_3 ) < 0) - return -1; - if (H5Tclose( tid_3 ) < 0) - return -1; - if (H5Pclose( pid_3 ) < 0) - return -1; - if (H5Dclose( did_3 ) < 0) - return -1; - - /* Release resources. */ - free( tmp_buf ); - free( tmp_fill_buf ); - free( src_offset ); - free( src_sizes ); + if(H5Sclose(sid_3) < 0) + goto out; + sid_3 = H5I_BADID; + if(H5Tclose(tid_3) < 0) + goto out; + tid_3 = H5I_BADID; + if(H5Pclose(pid_3) < 0) + goto out; + pid_3 = H5I_BADID; + if(H5Dclose(did_3) < 0) + goto out; + did_3 = H5I_BADID; - return 0; + ret_val = 0; - /* error zone */ out: - H5E_BEGIN_TRY - { - H5Dclose(did_1); - H5Sclose(sid_1); - H5Tclose(tid_1); - H5Pclose(pid_1); - H5Dclose(did_2); - H5Sclose(sid_2); - H5Tclose(tid_2); - H5Pclose(pid_2); - H5Dclose(did_3); - H5Sclose(sid_3); - H5Tclose(tid_3); - H5Pclose(pid_3); + if(tmp_buf) + free(tmp_buf); + if(tmp_fill_buf) + free(tmp_fill_buf); + if(src_offset) + free(src_offset); + if(src_sizes) + free(src_sizes); + + H5E_BEGIN_TRY { + if(member_type_id > 0) + H5Tclose(member_type_id); + if(attr_id > 0) + H5Aclose(attr_id); + if(sid > 0) + H5Sclose(sid); + if(m_sid > 0) + H5Sclose(m_sid); + if(pid_1 > 0) + H5Pclose(pid_1); + if(tid_1 > 0) + H5Tclose(tid_1); + if(sid_1 > 0) + H5Sclose(sid_1); + if(did_1 > 0) + H5Dclose(did_1); + if(pid_2 > 0) + H5Pclose(pid_2); + if(tid_2 > 0) + H5Tclose(tid_2); + if(sid_2 > 0) + H5Sclose(sid_2); + if(did_2 > 0) + H5Dclose(did_2); + if(pid_3 > 0) + H5Pclose(pid_3); + if(tid_3 > 0) + H5Tclose(tid_3); + if(sid_3 > 0) + H5Sclose(sid_3); + if(did_3 > 0) + H5Dclose(did_3); } H5E_END_TRY; - return -1; + return ret_val; } /*------------------------------------------------------------------------- @@ -2581,7 +2635,7 @@ herr_t H5TBdelete_field( hid_t loc_id, size_t member_offset; hid_t attr_id; hsize_t i; - int has_fill=0; + htri_t has_fill = 0; /* get the number of records and fields */ if (H5TBget_table_info ( loc_id, dset_name, &nfields, &nrecords ) < 0) @@ -3017,7 +3071,7 @@ herr_t H5TBAget_title( hid_t loc_id, * * Purpose: Read the table attribute fill values * -* Return: Success: 0, Failure: -1 +* Return: Success: TRUE/FALSE, Failure: -1 * * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu * @@ -3029,12 +3083,10 @@ herr_t H5TBAget_title( hid_t loc_id, * *------------------------------------------------------------------------- */ - - -herr_t H5TBAget_fill( hid_t loc_id, +htri_t H5TBAget_fill(hid_t loc_id, const char *dset_name, hid_t dset_id, - unsigned char *dst_buf ) + unsigned char *dst_buf) { hsize_t nfields; @@ -3149,9 +3201,7 @@ herr_t H5TBget_table_info ( hid_t loc_id, */ if (nfields) - { - *nfields = num_members; - } + *nfields = (hsize_t)num_members; /*------------------------------------------------------------------------- @@ -3331,19 +3381,19 @@ int H5TB_find_field( const char *field, const char *field_list ) const char *start = field_list; const char *end; - while ( (end = strstr( start, "," )) != 0 ) + while ( (end = HDstrstr( start, "," )) != 0 ) { - size_t count = end - start; - if(strncmp(start, field, count) == 0 && count == strlen(field) ) + ptrdiff_t count = end - start; + + if(HDstrncmp(start, field, (size_t)count) == 0 && (size_t)count == HDstrlen(field) ) return 1; start = end + 1; } - if(strcmp( start, field ) == 0 ) + if(HDstrcmp( start, field ) == 0 ) return 1; return -1; - } diff --git a/hl/src/H5TBpublic.h b/hl/src/H5TBpublic.h index 4dd17bb..874ef20 100644 --- a/hl/src/H5TBpublic.h +++ b/hl/src/H5TBpublic.h @@ -219,10 +219,10 @@ H5_HLDLL herr_t H5TBdelete_field( hid_t loc_id, H5_HLDLL herr_t H5TBAget_title( hid_t loc_id, char *table_title ); -H5_HLDLL herr_t H5TBAget_fill( hid_t loc_id, +H5_HLDLL htri_t H5TBAget_fill(hid_t loc_id, const char *dset_name, hid_t dset_id, - unsigned char *dst_buf ); + unsigned char *dst_buf); #ifdef __cplusplus } diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 5da7bd2..ba9c2ad 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -457,7 +457,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 # This library is our main target. diff --git a/hl/test/test_image.c b/hl/test/test_image.c index 4cef1b4..a4a10e4 100644 --- a/hl/test/test_image.c +++ b/hl/test/test_image.c @@ -676,7 +676,7 @@ static int test_generate(void) goto out; /* Indicate success */ - retval = 0; + return 0; /* error zone, gracefully close */ out: diff --git a/hl/test/test_lite.c b/hl/test/test_lite.c index 3fface8..a611088 100644 --- a/hl/test/test_lite.c +++ b/hl/test/test_lite.c @@ -2152,9 +2152,12 @@ int main( void ) /* test attribute functions */ nerrors += test_attr(); - /* test text-dtype functions */ + /* test valid path functions */ nerrors += test_valid_path(); + /* test text-dtype functions */ + nerrors += test_text_dtype(); + /* check for errors */ if (nerrors) goto error; diff --git a/perform/CMakeLists.txt b/perform/CMakeLists.txt index 421caba..0a34677 100644 --- a/perform/CMakeLists.txt +++ b/perform/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_PERFORM ) #----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + +#----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR}) @@ -119,17 +124,6 @@ IF (H5_HAVE_PARALLEL) TARGET_NAMING (benchpar ${LIB_TYPE}) TARGET_LINK_LIBRARIES (benchpar ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) SET_TARGET_PROPERTIES (benchpar PROPERTIES FOLDER perform) - - #-- Adding test for mpi-perf - IF (NOT WIN32) - SET (mpi-perf_SRCS - ${HDF5_PERFORM_SOURCE_DIR}/mpi-perf.c - ) - ADD_EXECUTABLE (mpi-perf ${mpi-perf_SRCS}) - TARGET_NAMING (mpi-perf ${LIB_TYPE}) - TARGET_LINK_LIBRARIES (mpi-perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) - SET_TARGET_PROPERTIES (mpi-perf PROPERTIES FOLDER perform) - ENDIF (NOT WIN32) ENDIF (HDF5_BUILD_PARALLEL_ALL) ENDIF (H5_HAVE_PARALLEL) @@ -192,9 +186,5 @@ IF (H5_HAVE_PARALLEL) IF (HDF5_BUILD_PARALLEL_ALL) ADD_TEST (NAME PERFORM_benchpar COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $) - - IF (NOT WIN32) - ADD_TEST (NAME PERFORM_mpi-perf COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $) - ENDIF (NOT WIN32) ENDIF (HDF5_BUILD_PARALLEL_ALL) ENDIF (H5_HAVE_PARALLEL) diff --git a/perform/Makefile.am b/perform/Makefile.am index c4720f8..6fe32cf 100644 --- a/perform/Makefile.am +++ b/perform/Makefile.am @@ -37,8 +37,9 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # Some programs are not built or run by default, but can be built by hand or by # specifying --enable-build-all at configure time. # Also, some of these programs should only be built in parallel. +# Currently there is no such program. if BUILD_PARALLEL_CONDITIONAL - PARA_BUILD_ALL=benchpar mpi-perf + PARA_BUILD_ALL= endif if BUILD_ALL_CONDITIONAL BUILD_ALL_PROGS=$(PARA_BUILD_ALL) diff --git a/perform/Makefile.in b/perform/Makefile.in index 1f9cfd6..a66a5a8 100644 --- a/perform/Makefile.in +++ b/perform/Makefile.in @@ -90,22 +90,17 @@ CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" -@BUILD_PARALLEL_CONDITIONAL_TRUE@am__EXEEXT_1 = benchpar$(EXEEXT) \ -@BUILD_PARALLEL_CONDITIONAL_TRUE@ mpi-perf$(EXEEXT) +am__EXEEXT_1 = @BUILD_ALL_CONDITIONAL_TRUE@am__EXEEXT_2 = $(am__EXEEXT_1) PROGRAMS = $(bin_PROGRAMS) -benchpar_SOURCES = benchpar.c -benchpar_OBJECTS = benchpar.$(OBJEXT) -benchpar_LDADD = $(LDADD) -benchpar_DEPENDENCIES = $(LIBHDF5) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = chunk_SOURCES = chunk.c chunk_OBJECTS = chunk.$(OBJEXT) chunk_LDADD = $(LDADD) chunk_DEPENDENCIES = $(LIBHDF5) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = dectris_perf_SOURCES = dectris_perf.c dectris_perf_OBJECTS = dectris_perf.$(OBJEXT) dectris_perf_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) @@ -126,10 +121,6 @@ h5perf_serial_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ iopipe_SOURCES = iopipe.c iopipe_OBJECTS = iopipe.$(OBJEXT) iopipe_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) -mpi_perf_SOURCES = mpi-perf.c -mpi_perf_OBJECTS = mpi-perf.$(OBJEXT) -mpi_perf_LDADD = $(LDADD) -mpi_perf_DEPENDENCIES = $(LIBHDF5) overhead_SOURCES = overhead.c overhead_OBJECTS = overhead.$(OBJEXT) overhead_LDADD = $(LDADD) @@ -177,11 +168,11 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = benchpar.c chunk.c dectris_perf.c $(h5perf_SOURCES) \ - $(h5perf_serial_SOURCES) iopipe.c mpi-perf.c overhead.c perf.c \ +SOURCES = chunk.c dectris_perf.c $(h5perf_SOURCES) \ + $(h5perf_serial_SOURCES) iopipe.c overhead.c perf.c \ perf_meta.c zip_perf.c -DIST_SOURCES = benchpar.c chunk.c dectris_perf.c $(h5perf_SOURCES) \ - $(h5perf_serial_SOURCES) iopipe.c mpi-perf.c overhead.c perf.c \ +DIST_SOURCES = chunk.c dectris_perf.c $(h5perf_SOURCES) \ + $(h5perf_serial_SOURCES) iopipe.c overhead.c perf.c \ perf_meta.c zip_perf.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -485,7 +476,8 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # Some programs are not built or run by default, but can be built by hand or by # specifying --enable-build-all at configure time. # Also, some of these programs should only be built in parallel. -@BUILD_PARALLEL_CONDITIONAL_TRUE@PARA_BUILD_ALL = benchpar mpi-perf +# Currently there is no such program. +@BUILD_PARALLEL_CONDITIONAL_TRUE@PARA_BUILD_ALL = @BUILD_ALL_CONDITIONAL_TRUE@BUILD_ALL_PROGS = $(PARA_BUILD_ALL) # Define programs that will be run in 'make check' @@ -621,9 +613,6 @@ clean-checkPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -benchpar$(EXEEXT): $(benchpar_OBJECTS) $(benchpar_DEPENDENCIES) $(EXTRA_benchpar_DEPENDENCIES) - @rm -f benchpar$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(benchpar_OBJECTS) $(benchpar_LDADD) $(LIBS) chunk$(EXEEXT): $(chunk_OBJECTS) $(chunk_DEPENDENCIES) $(EXTRA_chunk_DEPENDENCIES) @rm -f chunk$(EXEEXT) $(AM_V_CCLD)$(LINK) $(chunk_OBJECTS) $(chunk_LDADD) $(LIBS) @@ -639,9 +628,6 @@ h5perf_serial$(EXEEXT): $(h5perf_serial_OBJECTS) $(h5perf_serial_DEPENDENCIES) $ iopipe$(EXEEXT): $(iopipe_OBJECTS) $(iopipe_DEPENDENCIES) $(EXTRA_iopipe_DEPENDENCIES) @rm -f iopipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(iopipe_OBJECTS) $(iopipe_LDADD) $(LIBS) -mpi-perf$(EXEEXT): $(mpi_perf_OBJECTS) $(mpi_perf_DEPENDENCIES) $(EXTRA_mpi_perf_DEPENDENCIES) - @rm -f mpi-perf$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(mpi_perf_OBJECTS) $(mpi_perf_LDADD) $(LIBS) overhead$(EXEEXT): $(overhead_OBJECTS) $(overhead_DEPENDENCIES) $(EXTRA_overhead_DEPENDENCIES) @rm -f overhead$(EXEEXT) $(AM_V_CCLD)$(LINK) $(overhead_OBJECTS) $(overhead_LDADD) $(LIBS) @@ -661,11 +647,9 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchpar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chunk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopipe.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi-perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/overhead.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_meta.Po@am__quote@ diff --git a/perform/mpi-perf.c b/perform/mpi-perf.c deleted file mode 100644 index a09d672..0000000 --- a/perform/mpi-perf.c +++ /dev/null @@ -1,373 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * (C) 1995-2001 Clemson University and Argonne National Laboratory. - * - * See COPYING in top-level directory. - * - * This is contributed by Robert Ross to the HDF5 software. - * and was called mpi-io-test.c - */ - -#include "hdf5.h" -#include "H5private.h" -#ifdef H5_HAVE_PARALLEL -/* mpi-perf.c - * - * This is derived from code given to me by Rajeev Thakur. Dunno where - * it originated. - * - * It's purpose is to produce aggregate bandwidth numbers for varying - * block sizes, number of processors, an number of iterations. - * - * This is strictly an mpi program - it is used to test the MPI I/O - * functionality implemented by Romio. - * - * Compiling is usually easiest with something like: - * mpicc -Wall -Wstrict-prototypes mpi-io-test.c -o mpi-io-test - * - * NOTE: This code assumes that all command line arguments make it out to all - * the processes that make up the parallel job, which isn't always the case. - * So if it doesn't work on some platform, that might be why. - */ -/* Modifications: - * Albert Cheng, Apr 30, 20001 - * Changed MPI_File_open to use MPI_COMM_WORLD (was MPI_COMM_SELF). - * Albert Cheng, May 5, 20001 - * Changed MPI_File_seek then MPI_File_write or MPI_File_read to just - * MPI_File_write_at and MPI_File_read_at. Some compiler, e.g., IBM - * mpcc_r does not support MPI_File_seek and MPI_File_read or MPI_File_write. - */ - -#include -#include -#include -#ifdef H5_HAVE_UNISTD_H -#include -#endif -#include -#include -#if defined(H5_TIME_WITH_SYS_TIME) -# include -# include -#elif defined(H5_HAVE_SYS_TIME_H) -# include -#else -# include -#endif -#include -#ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */ -# include -#endif - - - -/* DEFAULT VALUES FOR OPTIONS */ -int64_t opt_block = 1048576*16; -int opt_iter = 1; -int opt_stripe = -1; -int opt_correct = 0; -int amode = O_RDWR | O_CREAT; -char opt_file[256] = "/tmp/test.out\0"; -char opt_pvfstab[256] = "notset\0"; -int opt_pvfstab_set = 0; - -/* function prototypes */ -static int parse_args(int argc, char **argv); - -extern int errno; - -/* globals needed for getopt */ -extern char *optarg; - -int main(int argc, char **argv) -{ - char *buf, *tmp, *buf2, *tmp2, *check; - int i, j, mynod=0, nprocs=1, err, my_correct = 1, correct, myerrno; - double stim, etim; - double write_tim = 0; - double read_tim = 0; - double read_bw, write_bw; - double max_read_tim, max_write_tim; - double min_read_tim, min_write_tim; - double ave_read_tim, ave_write_tim; - int64_t iter_jump = 0; - int64_t seek_position = 0; - MPI_File fh; - MPI_Status status; - int nchars; - - /* startup MPI and determine the rank of this process */ - MPI_Init(&argc,&argv); - MPI_Comm_size(MPI_COMM_WORLD, &nprocs); - MPI_Comm_rank(MPI_COMM_WORLD, &mynod); - - /* parse the command line arguments */ - parse_args(argc, argv); - - if (mynod == 0) printf("# Using mpi-io calls.\n"); - - - /* kindof a weird hack- if the location of the pvfstab file was - * specified on the command line, then spit out this location into - * the appropriate environment variable: */ - -#if H5_HAVE_SETENV -/* no setenv or unsetenv */ - if (opt_pvfstab_set) { - if((setenv("PVFSTAB_FILE", opt_pvfstab, 1)) < 0){ - perror("setenv"); - goto die_jar_jar_die; - } - } -#endif - - /* this is how much of the file data is covered on each iteration of - * the test. used to help determine the seek offset on each - * iteration */ - iter_jump = nprocs * opt_block; - - /* setup a buffer of data to write */ - if (!(tmp = (char *) malloc(opt_block + 256))) { - perror("malloc"); - goto die_jar_jar_die; - } - buf = tmp + 128 - (((long)tmp) % 128); /* align buffer */ - - if (opt_correct) { - /* do the same buffer setup for verifiable data */ - if (!(tmp2 = (char *) malloc(opt_block + 256))) { - perror("malloc2"); - goto die_jar_jar_die; - } - buf2 = tmp + 128 - (((long)tmp) % 128); - } - - /* open the file for writing */ - err = MPI_File_open(MPI_COMM_WORLD, opt_file, - MPI_MODE_CREATE | MPI_MODE_RDWR, MPI_INFO_NULL, &fh); - if (err < 0) { - fprintf(stderr, "node %d, open error: %s\n", mynod, strerror(errno)); - goto die_jar_jar_die; - } - - /* now repeat the write operations the number of times - * specified on the command line */ - for (j=0; j < opt_iter; j++) { - - /* calculate the appropriate position depending on the iteration - * and rank of the current process */ - seek_position = (j*iter_jump)+(mynod*opt_block); - - if (opt_correct) /* fill in buffer for iteration */ { - for (i=mynod+j, check=buf; i + + Notes: The command format above is for readilibity. In practice, + please type in the command above with at least one + space between each line, No "Enter" until users finish + the switches and want to run the configure. + + + or do it through CPPFLAGS and LDFLAGS variables: + + $ CPPFLAGS=-I/usr/include \ + $ LDFLAGS=-L/usr/lib \ + + $ ./configure + --prefix=/c/hdf5 + --enable-fortran + <"If no more switches, then hit Enter"> + +7. Make and Make Check + + After configuration is done successfully, run the following series of + commands to build, test and install HDF5 + + $ make > "output file name" + $ make check > "output file name" + + Before run "make install", check output file for "make check", there + should be no failures at all. + +8. Make Install + + $ make install > "output file name" + + +9. Check installed HDF5 library + + After step 8, go to your installation directory, there should be + three subdirectories: "bin" "include" and "lib". + + $ make installcheck > "output file name" + +----------------------------------------------------------------------- + +Need Further assistance, email help@hdfgroup.org diff --git a/release_docs/INSTALL_Windows.txt b/release_docs/INSTALL_Windows.txt index e7184d4..967675f 100644 --- a/release_docs/INSTALL_Windows.txt +++ b/release_docs/INSTALL_Windows.txt @@ -1,1754 +1,16 @@ *********************************************************************** -* HDF5 Build and Install Instructions for Windows XP/VISTA * +* HDF5 Build and Install Instructions for Windows * * (Full Version) * *********************************************************************** -The following instructions assume that the HDF5 source code package from -HDF website (http://hdfgroup.org) is used. +We now recommend that users build, test and install HDF5 using CMake. -Warnings: -Please read CAREFULLY about the following preconditions and notes first. +Instructions for building and testing HDF5 using CMake can be found in +the CMake.txt file found in this folder. -Contents: +The old solutions and projects found in the windows\ folder will be +maintained for legacy users until HDF5 1.10. - Section : Preconditions and Notes - Section I : What do we build and install - Section II : How to build and test HDF5 libraries and tools - Section III : How to build examples (optional) - Section IV : How to build an application using the HDF5 library or DLL - Section V : How to disable Gzip(Zlib)/Szip compression - Section VI : How to build HDF5 with Fortran Support - Section VII : How to build Multi-threaded version of HDF5 library - Section VIII : How to build HDF5 with Thread-Safe Feature - Section IX : How to build HDF5 for 64-bit Windows - Section X : How to build HDF5 on Windows Vista - Section XI : How to build HDF5 using Visual Studio 2008 - Section XII : Backwards Compatibility with HDF5 1.6 - Section XIII : Misc. - - -======================================================================== - Preconditions and Notes -======================================================================== - -Preconditions: - - 1. Installed Microsoft Visual Studio. This document is written for Visual - Studio 2008. We no longer support building HDF5 using Microsoft Visual - Studio .NET 2003 or 2005. Express Editions may work with the project files - but not from the command line. We do not support the Express Editions. - - 2. (Optional) Installed Intel Compiler 10.1 or 11.1 if you want to build HDF5 - Fortran libraries. We no longer support Intel Fortran Compiler 9.1. - - 3. Install Winzip or 7-zip for extracting source tarball. - - Note: 1. 7zip is an open-source alternative to WinZip. Some of the - advanced functionality is disabled in WinZip unless you buy the - software. With 7zip, most of this functionality is included for - free. - - 2. By default, WinZip will convert the Unix end of line format when - extracting .tar file. This conversion will cause "false" failure - in some HDF5 tools testings. - - Please uncheck the "TAR file smart CR/LF conversion" option in your - WinZip to prevent the conversion when extracting .tar file. To - uncheck the "TAR file smart CR/LF conversion" option: - - Invoke WinZip, go to "Options", select "Configuration..." - - Click the "Miscellaneous" tab and uncheck "TAR file smart CR/LF - conversion" option, then click OK. - - 4. CMake is available for this release. CMake 2.8.2 can be downloaded from - the KitWare website at http://www.kitware.com. - - Note: We have attempted to mirror our Autoconf configuration files for - maintainence reasons. We are still working to synchronize the - configuration files. - Also, if you are using a VS Express version or do not want to enable - the packaging components, set HDF5_NO_PACKAGES to ON (on the command - line add -DHDF5_NO_PACKAGES:BOOL=ON) - - 5. Set up a directory structure to unpack the library. For example: - - c:\ (any drive) - MyHDFstuff\ (any folder name) - - 6. Download the hdf5-1.9.x source code package and use 7zip or WinZip to - extract the HDF5 package into c:\MyHDFstuff. This creates a directory - called 'hdf5-1.9.x' under MyHDFstuff which contains several files and - directories. Rename "hdf5-1.9.x" to "hdf5". - - 7. HDF5 provide options to do in-memory compression within HDF5 library. - Currently, two external compression libraries Zlib and Szip can be used - with HDF5. - - 7.1 HDF5 uses Zlib version 1.2.5 for compression and Zlib is NOT - distributed with HDF5 library in 1.9.x release. To use Zlib library, - you have to install your own Zlib DLL library or go to - http://www.zlib.net/ to download the Zlib library. - - 7.2 HDF5 uses Szip version 2.1 for compression and Szip compression - software is provided with HDF5 products in 1.9.x release. To use - Szip 2.1 library, you can download Szip source codes and binaries from - ftp://ftp.hdfgroup.org/lib-external/szip/2.1/bin/windows - - Please note that Szip is not a totally open-source free software. - For licensing issue of Szip, please check "Licensing terms" at - http://hdfgroup.org/doc_resource/SZIP/index.html. - - Szip compression feature inside HDF5 is optional. - - 8. Define the following environment variables: - - HDF5_EXT_ZLIB - HDF5_EXT_SZIP - - In this section, Zlib and Szip compression packages are assumed to be - used. Please read Section V as well as this section if you do not want - to use compression feature inside HDF5. - - To define these environment variables: - - Click "Start", click "Control Panel", and then double-click "System". - On the "Advanced" tab, click "Environment Variables". - - If you are logged on as administrator to the local computer AND want to - let all other users use these two environment variables, click "New" - under "System Variables" box; otherwise, click "New" under "User - Variables" box. - - In the New Variable window, set "Variable name" as HDF5_EXT_ZLIB and - "Variable value" as zlib1.lib, then click OK. - - Similarly, you can set: - - HDF5_EXT_SZIP environment variable as szip.lib - - Notes: - - a. You will have to close and reopen running programs for the new - environment variable settings to take effect. - - b. c:\zlib\zlib1.dll and c:\szip\szip.dll should be copied - into a location that the application can find. - - 9. Set up path for external libraries and headers - - Skip this part if you don't want to use ANY compression features provided - by HDF5. Please do read Section V. - - You have to read this part even if you want to only use Zlib or Szip. - You also need to read Section V. - - Invoke Microsoft Visual Studio and go to "Tools" and select "Options", - find "Projects", and then "VC++ Directories". - - 9.1 If you are building on 64-bit Windows, find the "Platform" dropdown - and select "x64". - - 9.2 Find the box "Show directories for", choose "Include files", if you - can not find your Zlib and Szip header path (for example, - c:\zlib\include, c:\szip\include) from the directory list, add the - header path (c:\zlib\include, c:\szip\include) to the included - directories. - - 9.3 Find the box "Show directories for", choose "Library files". If you - cannot find your Zlib and Szip library path (for example, - c:\zlib\dll, c:\szip\dll) from the directory list, add the library - path (c:\zlib\dll, c:\szip\dll) to the library directories. - - 9.4 If building Fortran libraries, you will also need to setup the path - for the Intel Fortran compiler. Please see Section VI. - -Notes: - - 1. Users should go to hdf5/windows directory, run copy_hdf.bat first and then - open all.sln under hdf5/windows/proj/all to start building process. - - 2. Visual Studio 6.0 is no longer supported in HDF5 1.8 or later releases. - Visual Studio .NET is no longer support in HDF5 1.8.4 or later releases. - Visual Studio 2005 is no longer support in HDF5 1.8.5 or later releases. - Intel Fortran 9.1 is no longer support in HDF5 1.8.5 or later releases. - - 3. For users who want to quickly build HDF5 library or do not want to know - HDF5 building and installation details, please read the - INSTALL_Windows_Short_2008.txt relating to your compiler. - - 4. For users who would like to build and test HDF5 package from the command - line, please read INSTALL_Windows_From_Command_Line.txt. - - 5. For users who would like to build and test HDF5 package using CMake, - please read CMake.txt. - - 6. HDF4-related tools are not built and released with HDF5 library packages - any more. To obtain HDF4 related tools, please check - http://hdfgroup.org/h4toh5/ and ftp://ftp.hdfgroup.org/HDF5/h4toh5 - - 7. For Fortran users, Intel Fortran Compiler 10.1 is currently supported - -- please see Section VI. Intel Compiler verion 7.x, 8.x and 9.x are - no longer supported. Intel Compiler 11.1 can be used but the project files - must be upgraded within the Visual Studio IDE. - - 8. Visual Studio now only builds muti-threaded versions of HDF5 library, - please read Section VII. - - -======================================================================== - Section I: What do we build and install? -======================================================================== - - 1. Build and Install - - HDF5 static library: - debug and release version - - HDF5 Dynamic Link Library(DLL): - debug and release version as well as export libraries for DLL - - HDF5 High-Level Library (Optional): - HDF5 C++ Library - HDF5 HL-Fortran Library - - HDF5 tools: - HDF5 tools - - 2. Build Only (Not included in the binary distribution) - - HDF5 tool library: - debug and release version - - HDF5 tool export library for DLL: - debug and release version - - HDF5 library testing programs: - HDF5 library comprehensive tests - - HDF5 related tools testing programs: - HDF5 tools comprehensive tests - - 3. Examples (Not included in the binary distribution) - - HDF5 examples: - Simple HDF5 C/C++/Fortran and High level C/Fortran examples - -======================================================================== - Section II: How to build and test HDF5 libraries and tools -======================================================================== - -Note: - To build and test HDF5 with Fortran support, please read over Section VI. - - -STEP 1: Building HDF5 Libraries and Tools - - - 1. Run batch file copy_hdf.bat - - Go to c:\MyHDFstuff\hdf5\windows and run copy_hdf.bat. This process will - copy all the necessary batch files, Windows-specific source code and - text files saved under c:\MyHDFstuff\hdf5\windows directory to the - corresponding directories under hdf5. - - 2. Open the HDF5 library project in Visual Studio - - Invoke Microsoft Visual Studio. From the main menu, go to "File" and - select the "Open Solution" option. Then open the - c:\MyHDFstuff\hdf5\windows\proj\all\all.sln solution. - - You should find Windows project files listed as "all", "big", etc. on the - left. - - 3. (Optional) Disable HDF5 C++ and High level C++ - - In HDF5 1.9, C++ and HL C++ libraries are built by default. To opt-out, - you must explicitly disable them. - - 3.1 Skip this step if you do want to build HDF5 High-Level C++ libraries - - Go to "Project" and select "Project Dependencies". Select "all", and - disable all of the following projects: - - hdf5_hl_cpp - hdf5_hl_cppdll - hl_test_table_cpp - hl_test_table_cppdll - - 3.2 Skip this step if you do want to build HDF5 High-Level libraries - - Go to "Project" and select "Project Dependencies". Select "all", and - disable all of the project files listed in the previous step, as well - as the following projects: - - hdf5_hl - hdf5_hldll - hl_test_image - hl_test_imagedll - hl_test_lite - hl_test_litedll - hl_test_table - hl_test_tabledll - hl_test_ds - hl_test_dsdll - hl_test_packet - hl_test_packetdll - - Note: Disabling some projects will likely produce false errors in the - testing script. Check the output carefully to ensure that the - errors are related to the disabled projects, and then safely - ignore them. - - - 4. Select "Build", then Select "Configuration Manager". - - 4.1 To build debug static libraries, debug multithreaded DLLs, and tests: - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build debug - version of project "all". - - 4.2 To build release static libraries, multithreaded DLLs and tests: - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build release - version of project "all". - - Release version must be built for testing, debug version is optional. - - Warning messages can be ignored. - - When the debug or release build is done the directories - listed below will contain the following files: - - c:\MyHDFstuff\hdf5\proj\hdf5\debug - - - hdf5d.lib- the hdf5 static library - - c:\MyHDFstuff\hdf5\proj\hdf5\release - - - hdf5.lib- the hdf5 static library - - c:\MyHDFstuff\hdf5\proj\hdf5dll\debug - - - hdf5ddll.dll- DLL - hdf5ddll.lib- the DLL export library - - c:\MyHDFstuff\hdf5\proj\hdf5dll\release - - - hdf5dll.dll- DLL - hdf5dll.lib- the DLL export library - - c:\MyHDFstuff\hdf5\test\libtest\debug - - and c:\MyHDFstuff\hdf5\test\libtest\release - - - libtest.lib - the internal library for test - - c:\MyHDFstuff\hdf5\test\libtestdll\debug - - - libtestddll.dll - the internal DLL for test - libtestddll.lib - the internal DLL export library for test - - c:\MyHDFstuff\hdf5\test\libtestdll\release - - - libtestdll.dll - the internal DLL for test - libtestdll.lib - the internal DLL export library for test - - c:\MyHDFstuff\hdf5\tools\toolslib\debug - - and c:\MyHDFstuff\hdf5\tools\toolslib\release - - - toolslib.lib- the internal tools library - - c:\MyHDFstuff\hdf5\tools\toolslibD\debug - - and c:\MyHDFstuff\hdf5\tools\toolslibD\release - - - toolslibD.dll- DLL - toolslibD.lib- the internal DLL export library for tools - - c:\MyHDFstuff\hdf5\tools\"tools directory"- - where tools are located - - The directories listed below will contain the following files - ONLY when you choose to build HDF5 C++ libraries: - - c:\MyHDFstuff\hdf5\proj\hdf5_cpp\debug - - - hdf5_cppd.lib- the HDF5 C++ API static library - - and c:\MyHDFstuff\hdf5\proj\hdf5_cpp\release - - - hdf5_cpp.lib- the HDF5 C++ API static library - - c:\MyHDFstuff\hdf5\proj\hdf5_cppdll\debug - - - hdf5_cppddll.dll- the HDF5 C++ API DLL - hdf5_cppddll.lib - the C++ API export library - - and c:\MyHDFstuff\hdf5\proj\hdf5_cppdll\release - - - hdf5_cppdll.dll- the HDF5 C++ API DLL - hdf5_cppdll.lib- the C++ API DLL export library - - - The directories listed below will contain the following files - ONLY when you choose to build HDF5 High Level libraries: - - c:\MyHDFstuff\hdf5\proj\hdf5_hl\Release - - hdf5_hl.lib - HDF5 High Level static Library - - and c:\MyHDFstuff\hdf5\proj\hdf5_hl\Debug - - - hdf5_hld.lib - HDF5 High Level Static Library - - c:\MyHDFstuff\hdf5\proj\hdf5_hldll\Release - - hdf5_hldll.dll - HDF5 High Level DLL - hdf5_hldll.lib - HDF5 High Level export Library - - and c:\MyHDFstuff\hdf5\proj\hdf5_hldll\Debug - - - hdf5_hlddll.dll - HDF5 High Level DLL - hdf5_hlddll.lib - HDF5 High Level export Library - - The directories listed below will contain the following files - ONLY when you choose to build HDF5 High Level C++ libraries: - - c:\MyHDFstuff\hdf5\proj\hdf5_hl_cpp\Release - - - hdf5_hl_cpp.lib - HDF5 High Level C++ Static Library - - and c:\MyHDFstuff\hdf5\proj\hdf5_hl_cpp\Debug - - - hdf5_hl_cppd.lib - HDF5 High Level C++ Static Library - - c:\MyHDFstuff\hdf5\proj\hdf5_hl_cppdll\Release - - and c:\MyHDFstuff\hdf5\proj\hdf5_hl_cppdll\Debug - - - hdf5_hl_cppddll.dll - HDF5 High Level C++ DLL - hdf5_hl_cppddll.lib - HDF5 High Level C++ export Library - - -STEP 2: Testing HDF5 Libraries and Tools - -HDF5 libraries and tools should be tested to make sure that they were built -correctly. - -Note: The complete testing suite can take a long time to run on even fast - machines. Some of the longer tests can be automatically shortened by - defining an environment variable HDF5TestExpress. Set HDF5TestExpress - to 3 for fastest, or 0 for slowest. For example: - - set HDF5TestExpress=3 - - If the variable is unset, it takes on the value 1. Note that when - HDF5TestExpress is set to 2 or 3, some features may not be thoroughly - tested. For most users, we recommend not setting this variable. - - -We provide 2 options for users to test HDF5 libraries and tools. - - Option 1: Automatic testings - - HDF5 comes with various test suites, all of which can be tested with - hdf5check.bat batch file in c:\MyHDFstuff\hdf5 directory. - - hdf5check batch file can be run with one of the following four options: - - hdf5check Test HDF5 C library and tools only. - - hdf5check enablecpp Test HDF5 C/C++ libraries and tools. To use - this option, HDF5 C++ libraries must have been - built in step I. - - hdf5check enablefortran Test HDF5 C/Fortran libraries and tools. To - use this option, HDF5 Fortran libraries must - have been built in Section VI. - - hdf5check enableall Test HDF5 C/C++/Fortran libraries and tools. - To use this option, HDF5 C++ and Fortran - libraries must have been built. - - nodebug -- can be added to any of the above to - not test debug versions - - Invoke a command prompt window and run hdf5check with appropriate option. - Users are encouraged to pipe the test output into a file. You should find - no "*FAILED*" marks. - - Option 2: Step-by-step HDF5 libraries and tools testings - - You can also test HDF5 libraries and tools one by one. There are possibly - four versions of HDF5 libraries and tools testings. - - They are: - - release - release dll - debug - debug dll - - We strongly suggest you to redirect your testing results into an output file - so that you can easily check the testing results. - - HDF5 DLLs should be placed into the Windows system directory. A batch file - named install_dll.bat is included in c:\MyHDFstuff\hdf5 directory. Run this - batch file and all neccessary HDF5 DLLS will be placed in the system - directory. - - - 1. HDF5 library testing - - Open a command prompt in the hdf5\test directory - - (1) Basic tests - - a) Release Static, type: - checktests release >"Your output filename" - - b) Release DLL, type: - checktests release dll >"Your output filename" - - c) Debug Static, type: - checktests debug >"Your output filename" - - d) Debug DLL, type: - checktests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - 2. HDF5 performance testing - - Open a command prompt in the hdf5\perform directory - - a) Release Static, type: - checkperformtests release >"Your output filename" - - b) Release DLL, type: - checkperformtests release dll >"Your output filename" - - c) Debug Static, type: - checkperformtests debug >"Your output filename" - - d) Debug DLL, type: - checkperformtests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - 3. HDF5 tools testing - - Open a command prompt in the hdf5\tools directory - - a) Release Static, type: - checktools release >"Your output filename" - - b) Release DLL, type: - checktools release dll >"Your output filename" - - c) Debug Static, type: - checktools debug >"Your output filename" - - d) Debug DLL, type: - checktools debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - 4. HDF5 C++ library test - - Skip this step UNLESS you have built HDF5 C++ libraries and want to test - them. - - Open a command prompt in the hdf5\c++\test directory - - a) Release Static, type: - checkcpptests release >"Your output filename" - - b) Release DLL, type: - checkcpptests release dll >"Your output filename" - - c) Debug Static, type: - checkcpptests debug >"Your output filename" - - d) Debug DLL, type: - checkcpptests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - 4. HDF5 High-Level library test - - Skip this step UNLESS you have built HDF5 High-Level libraries and want to - test them. - - Open a command prompt in the hdf5\hl\test directory - - a) Release Static, type: - checkhltests release >"Your output filename" - - b) Release DLL, type: - checkhltests release dll >"Your output filename" - - c) Debug Static, type: - checkhltests debug >"Your output filename" - - d) Debug DLL, type: - checkhltests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - 5. HDF5 High-Level C++ library test - - Skip this step UNLESS you have built HDF5 High-Level C++ libraries and want - to test them. - - Open a command prompt in the hdf5\hl\c++\test directory - - a) Release Static, type: - checkhlcpptests release >"Your output filename" - - b) Release DLL, type: - checkhlcpptests release dll >"Your output filename" - - c) Debug Static, type: - checkhlcpptests debug >"Your output filename" - - d) Debug DLL, type: - checkhlcpptests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - Note: See Section VI for instructions on testing Fortran libraries. - - STEP 3: Installing HDF5 Libraries - -We provide a batch file for users to relocate all HDF5 libraries in one folder -(C++ and Fortran libraries will also be copied into this folder if they have -been built in step I or Section VI, respectively). The file is called -installhdf5lib.bat under c:\MyHDFstuff\hdf5 directory. Run the batch file, you -may see a folder called hdf5lib under c:\MyHDFstuff\hdf5. - -The layout of should be: - - release\include -- HDF5 header files - release\bin -- HDF5 static tool executables - release\bindll -- HDF5 DLL tool executables - release\lib -- HDF5 static libraries - release\dll -- HDF5 DLLs - -You may also find the similar layout for the . - -======================================================================== - Section III: How To Build Examples (Optional) -======================================================================== - -Simple examples have been provided for users to test HDF5 C/C++/Fortran and -High level C/Fortran library and tools. - -Note: - 1) To build HDF5 C++ examples, HDF5 C++ library must have been built in - Step I. - - 2) To build HDF5 Fortran or HL Fortran examples, please see Section VI, - Step 3. - - 3) To build HDF5 High Level C examples, HDF5 High level library must have - been built in step I. - - 4) By default, the debug versions of HDF5 C/C++/HL examples are linked - with the debug versions of HDF5 C/C++/HL libraries and DLLs. The - debug versions of HDF5 C/C++/HL examples will fail if they are linked - with HDF5 binary distribution, which only includes the release - versions of HDF5 C/C++ libraries and DLLs. - -To build and test HDF5 C examples: ----------------------------------- - 1. Invoke Microsoft Visual Studio, go to "File" and select the "Open - Solution" option. - - Then open the solution - c:\MyHDFstuff\hdf5\windows\examples\allexamples\allexamples.sln. - - 2. Select "Build", and "Configuration Manager". - - 2.1 To build debug versions of C examples: - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - debug version of project "allexamples". - - 2.2 To build release versions of C examples. - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - release version of project "allexamples". - - When the debug and release build is done, there should be the following - subdirectories in c:\MyHDFstuff\hdf5\examples\ - - attributetest - attributetestdll - chunkread - chunkreaddll - compoundtest - compoundtestdll - extendwritetest - extendwritetestdll - grouptest - grouptestdll - readtest - readtestdll - selectest - selectestdll - writetest - writetestdll - - 3. Invoke a command prompt window and run the batch file InstallExamples.bat - which resides in the top level directory (c:\MyHDFstuff\hdf5). This file - creates 4 new directories, examplesREL, examplesRELDLL, examplesDBG, and - examplesDBGDLL, in the c:\MyHDFstuff\hdf5\examples directory and places - all the executables in it. Both the release and debug versions of the - examples should be built before this step is done. - - 4. We provide a batch file named testExamples.bat and an expected examples - tests output file named testExamples_exp_output.txt in - c:\MyHDFstuff\hdf5\examples directory for you to test HDF5 C examples. - - testExamples.bat batch file has 4 options: - - testExamples release -- for release version - - testExamples release dll -- for release DLL version - - testExamples debug -- for debug version - - testExamples debug dll -- for debug DLL version - - Invoke a command prompt and run testExamples.bat with appropriate options. - You should get "All HDF5 C examples tests passed." when the C examples are - built successfully. Otherwise, the difference between the expected - outputs and actual outputs will be given. - -To build and test HDF5 C++ examples: ------------------------------------- - - 1. Invoke Microsoft Visual Studio, go to "File" and select the "Open - Solution" option. - - Then open the solution - c:\MyHDFstuff\hdf5\windows\examples\allexamples\allcppexamples.sln. - - 2. Select "Build", and "Configuration Manager". - - 2.1 To build debug versions of C examples: - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - debug version of project "allcppexamples". - - 2.2 To build release versions of C examples. - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - release version of project "allcppexamples". - - When the debug build or release build is done, there should be the following - subdirectories in c:\MyHDFstuff\hdf5\c++\examples\ - - chunks - chunksdll - compound - compounddll - create - createdll - extend_ds - extend_dsll - h5group - h5groupdll - readdata - readdatadll - writedata - writedatadll - - 3. Invoke a command prompt window and run the batch file - InstallcppExamples.bat which resides in the top level directory - (c:\MyHDFstuff\hdf5). This file creates 4 new directories, - cppexamplesREL, cppexamplesRELDLL, cppexamplesDBG, and cppexamplesDBGDLL, - in the c:\MyHDFstuff\c++\examples directory and places all the executables - in it. Both the release and debug versions of the examples should be - built before this step is done. - - 4. We provide a batch file named testcppExamples.bat in - c:\MyHDFstuff\hdf5\c++\examples directory for you to test HDF5 C++ - examples. - - testcppExamples.bat batch file has 4 options: - - testcppExamples release -- for release version - - testcppExamples release dll -- for release DLL version - - testcppExamples debug -- for debug version - - testcppExamples debug dll -- for debug DLL version - - Invoke a command prompt and run testcppExamples.bat with appropriate - options. You should get "All HDF5 C++ examples tests passed." when the - C++ examples are built successfully. Otherwise, the difference between - the expected outputs and actual outputs will be given. - - -To build and test HDF5 High Level C examples: ---------------------------------------------- - - 1. Invoke Microsoft Visual Studio, go to "File" and select the "Open - Solution" option. - - Then open the solution - c:\MyHDFstuff\hdf5\windows\hl\examples\allhlcexamples\allhlcexamples.sln - - 2. Select "Build", and "Configuration Manager". - - 2.1 To build debug versions of C examples: - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - debug version of project "allhlcexamples". - - 2.2 To build release versions of C examples. - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - release version of project "allhlcexamples". - - When the debug and release build is done, binaries will be built in the - following subdirectories of c:\MyHDFstuff\hdf5\examples\ - - ex_image[1-2](dll) - ex_lite1(dll) - ex_table[01-12](dll) - ex_ds1(dll) - ptExample[FL+VL](dll) - - 3. Invoke a command prompt and run the batch file Install_hlcexamples.bat - which resides in the top level directory (c:\MyHDFstuff\hdf5). This file - creates 4 new directories, HLCexamplesRELEASE, HLCexamplesRELEASEDLL, - HLCexamplesDEBUG, and HLCexamplesDEBUGDLL, in the - c:\MyHDFstuff\hdf5\hl\examples directory and places all the executables in - it. Both the release and debug versions of the examples should be built - before this step is done. - - 4. We provide a batch file named test_hl_cexamples.bat in - c:\MyHDFstuff\hdf5\hl\examples directory for you to test HDF5 high level C - examples. - - test_hl_cexamples.bat batch file has 4 options: - - Options purpose - - test_hl_cexamples release -- for release version - - test_hl_cexamples release dll -- for release DLL version - - test_hl_cexamples debug -- for debug version - - test_hl_cexamples debug dll -- for debug DLL version - - Invoke a command prompt window and run test_hl_cexamples with - appropriate options. - - Invoke a command prompt and run testExamples.bat with appropriate options. - You should get "All of the HL C Examples Passed!" when the HL C examples - are built successfully. Otherwise, the difference between the expected - outputs and actual outputs will be given. - - -======================================================================== - Section IV: Building an application using the HDF5 library or DLL -======================================================================== - -Waring: The instructions below will only describe how to build an application - using the release version of the HDF5 library or DLL. To use the debug - version of the HDF5 library or DLL, you need to substitute the release - version of the HDF5 library or DLL with the debug version. - - -To build an application that uses the HDF5 static library the following -locations will need to be specified for locating header files and linking with -the HDF static library, for example: - -c:\MyHDFstuff\hdf5\hdf5lib\release\include -c:\MyHDFstuff\hdf5\hdf5lib\release\lib - -We assume that you will use Zlib and Szip compression with HDF5 library. - -1. Specifying Include Directories - -To specify the include directories in the settings for your Visual Studio -project, you may choose one of the following two methods. - - Method One: Project-wide Settings - - 1. Open your project in Microsoft Visual Studio and make sure it is the - active project. - - 2. Go to the Project menu and chose the "Properties" option. - - 3. Choose the build configuration you would like to modify in the drop - down menu labeled "Configuration:" - - 4. Choose the "C/C++" tab, and select "General". - - 5. In a text-area labeled with "Additional Include Directories:", add - HDF5, Zlib, and Szip header files directories. For example: - - c:\MyHDFstuff\hdf5\hdf5lib\release\include - c:\zlib\include - c:\szip\include - - Then click OK. - - 6. (Optional) To use HDF5 Fortran static library, the location of - Fortran module files should be specified by following Project-> - Settings->Fortran->Preprocessor, and in the text-area labeled - "Additional Include Directories", add HDF5 Fortran module files - directories. For example: - - c:\MyHDFstuff\hdf5\hdf5lib\release\include - - Method Two: Visual Studio Settings - - 1. In Visual STudio, go to Tools->Options->Projects-> - VC++ Directories. Under "Show Directories For", select "Include files" - - 2. Insert the correct HDF5, Zlib, Szip paths for headers(include). For - example, - - c:\MyHDFstuff\hdf5\hdf5lib\release\include - c:\zlib\include - c:\szip\include - - -2. Specifying Library Directories - -To specify the library directories in the settings for your Visual Studio -project, you may choose one of the following two methods. - - Method One: Project-wide Settings - - 1. Open your project in Microsoft Visual Studio and make sure it is the - active project. - - 2. Go to the Project menu and chose the "Properties" option. - - 3. Choose the build configuration you would like to modify in the drop - down menu labeled "Configuration:" - - 4. Choose the "Linker" tab, and select "General". - - 5. In a text-area labeled with "Additional Library Directories:", add - HDF5, Zlib, and Szip library files directories. For example: - - c:\MyHDFstuff\hdf5\hdf5lib\release\lib - c:\zlib\dll - c:\szip\dll - - Note: To link with HDF5 DLLs rathern that static libraries, simply - specify the "dll" directory rather than "lib", and link with the - corresponding DLL link library below. - - Then click OK. - - - Method Two: Visual Studio Settings - - 1. In Visual STudio, go to Tools->Options->Projects-> - VC++ Directories. Under "Show Directories For", select "Library files" - - 2. Insert the correct HDF5, Zlib, Szip paths for link libraries. For - example, - - c:\MyHDFstuff\hdf5\hdf5lib\release\lib - c:\zlib\dll - c:\szip\dll - - Note: To link with HDF5 DLLs rathern that static libraries, simply - specify the "dll" directory rather than "lib", and link with the - corresponding DLL link library below. - - -3. Specifying Libraries to Link - - To link the HDF5 static library with your application: - - 1. In Visual Studio, go to the Project menu and choose "Properties". - - 2. Find the "Link" option and "Input" category. In the "Additional - Dependencies" field, insert "zlib.lib, libszip.lib, hdf5.lib". - - 3. (Optional) Also insert "hdf5_cpp.lib" if you want to use HDF5 C++ - static library. - - 4. (Optional) Also insert "hdf5_fortran.lib" if you want to use HDF5 - Fortran static library. - - 5. (Optional) Also insert "hdf5_hl.lib" if you want to use HDF5 high - level static library. - - 6. (Optional) Also insert "hdf5_hl_cpp.lib" if you want to use HDF5 High - Level C++ static library. - - 7. (Optional) Also insert "hdf5_hl_fortran.lib" if you want to use HDF5 - High Level Fortran static library. - - - To link the HDF5 DLL library with your application: - - 1. Follow the steps for linking the HDF5 static library as shown above, - except now link the export library that is created with the DLL. - - The export library is called hdf5dll.lib for HDF5 C libray, - hdf5_cppdll.lib for HDF5 C++ library, and hdf5_fortrandll.lib - for HDF5 Fortran library. - - 2. In the Project Properties dialog, go to the C/C++ > Preprocessor - subsection. In the "Preprocessor Definitions" box, add "_HDF5USEDLL_" - to the list. - - 3. (Optional) Also add HDF5CPP_USEDLL to use HDF5 C++ DLL. - - 4. (Optional) Also add _HDF5USEHLDLL_ to use HDF5 high level DLL. - - 5. (Optional) Also add HDF5USE_HLCPPDLL use HDF5 high level C++ DLL. - - 6. (Optional) Follow Project->Settings->Fortran->Category->General-> - Predefined Preprocess or Symbols, and add "HDF5F90_WINDOWS" to use HDF5 - Fortran DLL. - - 7. Place the DLLs in a location that Windows will be able to locate. The - searched path and order for DLL's is - - a) The directory where the executable module for the current - process is located. - b) The current directory. - c} The Windows system directory. The GetSystemDirectory function - retrieves the path of this directory. - d) The Windows directory. The GetWindowsDirectory function - retrieves the path of this directory. - e) The directories listed in the PATH environment variable. - -======================================================================== - Section V: How to disable Gzip(Zlib)/Szip compression -======================================================================== - -Warning: When you modify the H5pubconf.h file as described below, DO NOT just - change the values of these macros from 1 to 0. Please DO remove (or - comment out) appropriate lines. - - Notes: - - To disable Gzip and Szip at the same time, just make the appropriate - modifications to H5pubconf.h and the environmental variables all together, - and then Run-compile. - - These instructions assume that copy_hdf.bat has already been run in Section - II. If you can't find H5pubconf.h file in the specified directory, please - verify that this script has been run. - - 1. Disable Gzip (Zlib) Compression - - If you would like to remove Gzip compression from the HDF5 library, follow - the steps below. - - 1.1 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src directory - and remove (or comment out) the following two lines: - - #define H5_HAVE_ZLIB_H 1 - #define H5_HAVE_FILTER_DEFLATE 1 - - Then save the file. - - 1.2 Delete HDF5_EXT_ZLIB environment variable if you have set it in - preconditions. - - 1.3 Run-compile HDF5 library according to Section II. - - When you disable Gzip, you may get the following message when building - HDF5 libraries: "The following environment variables were not found: - $(HDF5_EXT_ZLIB)". This message can be ignored. - - 2. Disable Szip Compression (both encoder and decoder) - - If you would like to remove Szip compression from the HDF5 library, follow - the steps below. - - 2.1 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src directory - and remove (or comment out) the following two lines: - - #define H5_HAVE_SZLIB_H 1 - #define H5_HAVE_FILTER_SZIP 1 - - Then save the file. - - 2.2 Delete HDF5_EXT_SZIP environment variable if you have set it in - preconditions. - - 2.3 Run-compile HDF5 library according to Section II. - - When you disable Szip, you may get the following message when building - HDF5 libraries: "The following environment variables were not found: - $(HDF5_EXT_SZIP)". This message can be ignored. - - 3. Disable Szip Encoder - - If you would like to just disable Szip encoder from the HDF5 - library while keeping Szip decoder enabled, follow the steps - below. - - 3.1 Download Szip library without encoder - - Szip library is different if you want to disable Szip encoder. - Download szip-noenc binaries from - ftp://ftp.hdfgroup.org/lib-external/szip/2.1/bin/windows. The Szip - library and header path should also be set up accordingly (refer to - precondition 6). - - 3.2 Run-compile HDF5 library according to Section II. The encoding - functionality is detected dynamically. - -======================================================================== - Section VI: How to build HDF5 with Fortran Support -======================================================================== - -Notes: 1. For Intel Compiler users, Intel fortran Compiler10.1 is - currently supported. Intel Compiler verion 7.x, 8.x and - 9.x are no longer supported. Intel Compiler 11.1 can be used, however - the fortran project files must be upgraded from within the IDE. - - 2. The Compaq Fortran Compiler is no longer supported for HDF5 1.8. - - 3. Visual Studio 2008 is supported only with Intel Fortran 10.1 and 11.1. - - 4. Parallel builds should be disabled. To do so: Go to Tools > - Options > Projects and Solutions > Build and Run. Set "Maximum Number - of Parallel Project Builds" to 1. - - - Preconditions: - - a. Setup Szip Library for Intel Compiler. - - Szip source codes or binaries for Windows compilers can be downloaded - from the following address: - - ftp://ftp.hdfgroup.org/lib-external/szip/2.1/bin/windows. - - b. Set up path for external libraries and headers - - Skip this part if you don't want to use ANY compression features - provided by HDF5. Instead, read Section V. - - You have to read this part even if you want to use only Zlib - or Szip. You also need to read Section V. - - 1) Invoke Microsoft Visual Studio. - - 2) From the main menu, Go to Tools > Options > Intel(R) Fortran. In the - right panel, make sure your "Selected Compiler" is Intel Fortran. - - 3) Select the right-most box for "Libraries", and add Zlib and Szip - library paths (c:\zlib\dll, c:\szip\dll for example). - - 4) Select right-most box for "Includes", and add Zlib and Szip header - paths (c:\zlib\include c:\szip\include, for example). - - 5) Then click "OK". - - -1. Build with Intel Fortran Compiler 11.1 under Visual Studio 2008 - - Note: This step will build HDF5 Static and DLL C and C++ Library using - Visual Studio compiler as well as HDF5 Static and High Level - Fortran Library using Intel Fortran 11.1 Compiler. - - 1.1 Open all_fortran.sln - - Invoke Microsoft Visual Studio. From the main menu, - go to "File" and select "Open Solution". Choose "all_fortran.sln" - under the directory c:\MyHDFstuff\hdf5\windows\proj\all_fortran. - - - 1.2 Build as Normal - - Follow steps as in Section II to build all HDF5 library files, including - Fortran and HL Fortran libraries. - - -2. Test HDF5 Static and High Level Fortran Library - - We provide 2 options for users to test HDF5 libraries and tools. - - Option 1: Automatic testings - - HDF5 comes with various test suites, all of which can be tested with - hdf5check.bat batch file in c:\MyHDFstuff\hdf5 directory. - - hdf5check batch file can used to test HDF libraries with Fortran with - the following options: - - hdf5check enablefortran Test HDF5 C/Fortran libraries and tools - - - hdf5check enableall Test HDF5 C/C++/Fortran libraries and tools - To use this option, HDF5 C++ and Fortran - libraries must have been built. - - Invoke a command prompt window and run hdf5check with appropriate option. - Users are encouraged to redirect their ouput into a file. There should - be no "*FAILED*" marks. - - Option 2: Step-by-step HDF5 libraries and tools testings - - Note: This section provides step-by-step instructions for testing the - Fortran librariy and tools only. To test the rest of the HDF5 library - and tools, please see Section II, Step 2. - - - a. Test HDF5 Static Fortran Library - - Open a command prompt in the hdf5\fortran\test directory - - a) Release Static, type: - checkfortrantests release >"Your output filename" - - b) Release DLL, type: - checkfortrantests release dll >"Your output filename" - - c) Debug Static, type: - checkfortrantests debug >"Your output filename" - - d) Debug DLL, type: - checkfortrantests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - b. Test HDF5 High Level Fortran Library - - Open a command prompt in the hdf5\hl\fortran\test directory - - a) Release Static, type: - checkhlfortrantests release >"Your output filename" - - b) Release DLL, type: - checkhlfortrantests release dll >"Your output filename" - - c) Debug Static, type: - checkhlfortrantests debug >"Your output filename" - - d) Debug DLL, type: - checkhlfortrantests debug dll >"Your output filename" - - Use a text editor to check results. You should not find any FAILED marks - in your output files. - - -3. (Optional) Build HDF5 Fortan and HL Fortran Examples - - Note: This section only covers building Fortran and HL Fortran examples. - For other examples, please see Section III. - - To build and test HDF5 Fortran example: - --------------------------------------- - - 1. Open allf90examples.sln - - Invoke Microsoft Visual Studio. From the main menu, - go to "File" and select "Open Solution". Choose "allf90examples.sln" - under the directory - c:\MyHDFstuff\hdf5\windows\fortran\examples\allf90examples. - - 2. Select "Build", then Select "Configuration Manager". - - 2.1 To build debug versions of Fortran examples. - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - debug version of project "allf90examples". - - 2.2 To build release versions of Fortran examples. - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - release version of project "allf90examples". - - When the debug build or release build is done, there should be the - following subdirectories in c:\MyHDFstuff\hdf5\fortran\examples\ - - attreexampletest - attreexampletestdll - compoundtest - compoundtestdll - dsetexampletest - dsetexampletestdll - fileexampletest - fileexampletestdll - groupexampletest - groupexampletestdll - grpdsetexampletest - grpdsetexampletestdll - grpittest - grpittestdll - grpsexampletest - grpsexampletestdll - hyperslabtest - hyperslabtestdll - mountexampletest - mountexampletest - refobjexampletest - refobjexampletestdll - refregexampletest - refregexampletestdll - rwdsetexampletest - rwdsetexampletestdll - selecteletest - selecteletestdll - - 3. Invoke a command prompt and run the batch file Installf90Examples.bat - which resides in the top level directory (c:\MyHDFstuff\hdf5). This - file creates 4 new directories, f90examplesREL, f90examplesRELDLL, - f90examplesDBG, and f90examplesDBGDLL, in the - c:\MyHDFstuff\fortran\examples directory and places all the - executables in it. Both the release and debug versions of the - examples should be built before this step is done. - - - To build and test HDF5 High Level Fortran examples: - --------------------------------------------------- - - 1. Open allhlf90examples.sln - - Invoke Microsoft Visual Studio. From the main menu, - go to "File" and select "Open Solution". Choose - "allhlf90examples.sln" under the directory - c:\MyHDFstuff\hdf5\windows\hl\fortran\examples\allhlf90examples. - - 2. Select "Build", then Select "Configuration Manager". - - 2.1 To build debug versions of Fortran examples. - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - debug version of project "allhlf90examples". - - 2.2 To build release versions of Fortran examples. - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build - release version of project "allhlf90examples". - - When the debug build or release build is done, there should be the - following subdirectories in c:\MyHDFstuff\hdf5\hl\fortran\examples - - ex_lite - ex_litedll - - 3. Invoke a command prompt and run the batch file - Install_hlf90examples.bat which resides in the top level directory - (c:\MyHDFstuff\hdf5). This file creates 4 new directories, - HLf90examplesRELEASE, HLf90examplesRELEASEDLL, HLf90examplesDEBUG, - and HLf90examplesDEBUGDLL, in the - c:\MyHDFstuff\hdf5\hl\fortran\examples directory and places all - the executables in it. Both the release and debug versions of the - examples should be built before this step is done. - - 4. We provide a batch file named test_hl_f90examples.bat in - c:\MyHDFstuff\hdf5\hl\fortran\examples directory for you to test - HDF5 high level fortran examples. - - test_hl_f90examples.bat batch file has 4 options: - - Options purpose - - test_hl_f90examples release -- for release version - - test_hl_f90examples release dll -- for release DLL version - - test_hl_f90examples debug -- for debug version - - test_hl_f90examples debug dll -- for debug DLL version - - Invoke a command prompt and run test_hl_f90examples with - appropriate options. - - When you run "test_hl_f90examples release", the output will look - like: - - release version of High Level Fortran examples PASSED - - Similar messages should be generated with another three options - If the high level Fortran examples are built successfully. - -======================================================================== - Section VII : How to build Multi-threaded version of HDF5 library -======================================================================== - -Notes: In Visual Studio 2008, the Single-threaded runtime libraries have been - depreciated, and Multi-threaded is built by default. Therefore, no extra - work needs to be done to build Multi-threaded libraries in Visual Studio - 2008. - - -======================================================================== - Section VIII: How To Build And Test HDF5 With Thread-Safe Feature -======================================================================== - - All of the preconditions in "Preconditions" Section at the beginning of this - document also apply to this section. There are some extra preconditions for - this section only as following. - - Pre1. Pthread-Win32 Installed - - Posix Threads for Windows is a open source free software. Users can download - it from http://sources.redhat.com/pthreads-win32/. - - HDF5 release 1.8 supports Pthread-Win32 2.7.0 (2005-06-04) or later. Since - pthreadVC2.dll used by HDF5 1.8 is the release version dll of - pthread-win32, ONLY HDF5 1.8 release dll are supported and tested on - Windows XP. - - Pre2. Set Path for Pthread-Win32 header and library - - Invoke Microsoft Visual Studio, go to Tools->Options->Projects->VC++ - Directories. - - From the drop-down box under "Show directories for:", - - Choose "Include files", add in the path to Pthread-Win32 header file (For - example: C:\PTHREADS_WIN32\INCLUDE). - - Choose "Library files", add in the path to Pthread-Winew library (For - example: C:\PTHREADS_WIN32\LIB). - - Pre3. Enable HDF5 Thread-safe Feature on Windows - - Go to directory c:\MYHDFstuff\hdf5\windows\src, open H5pubconf.h and find the - following messages and remove those comment signs referred to by those two - arrows and save H5pubconf.h - - - /*Users want to build and test hdf5 library with thread safe enabled, - Make the following block active - */ - - /* <---- - #if defined _DLL - #define H5_HAVE_THREADSAFE - #define H5_HAVE_SYSTEM_SCOPE_THREADS 1 - #if defined TTSAFE_H - #define sleep Sleep - #endif - #endif - */ <---- - - - Pre4. Define Environment Variable(HDF5_EXT_PTHREAD) for PthreadVC2.lib - - To define this environment variable: - - Click "Start" -> "Control Panel" -> "System" -> "Advanced" -> - "Environment Variables". - - If you are logged on as administrator to the local computer AND want to - let all other users use these two environment variables, click "New" under - "System Variables" box; otherwise, click "New" under "User Variables" box. - - In the New Variable window, set - "Variable name" as HDF5_EXT_PTHREAD - "Variable value" as pthreadVC2.lib - - Click OK. - - pre5. Copy pthreadVC2.dll to System Directory - - pthreadVC2.dll should be copied into the location that applications can - find. One suggestion is to use the c:\WINDOWS\system. - - -1. Build HDF5 Release DLL with Thread-safe Feature - - 1.1 Run batch file copy_hdf.bat. - - Go to c:\MyHDFstuff\hdf5\windows and run copy_hdf.bat. This process will - copy all the necessary batch files, Windows-specific source code and text - files saved under c:\MyHDFstuff\hdf5\windows directory to the corresponding - directories under hdf5. - - - 1.2 Invoke Microsoft Visual Studio - - Invoke Microsoft Visual Studio. From the main menu, go to "File" and select - the "Open Solution" option. Then open the - c:\MyHDFstuff\hdf5\windows\proj\all\all.sln workspace. - - 1.3 Add in Thread-safe Source Code for HDF5 Library - - Expand project "hdf5dll", right click on "source" and choose "Add Files to - Folder...", browse to add in file "H5TS.c" under directory - c:\MYHDFSTUFF\hdf5\src. - - 1.4 Link to pthreadVC2.lib - - Right click on project "hdf5dll", choose "Set as Active Project". - - Go to Project->Properties - - On the left pane, choose "Release" to the right of "Configuration:" - - Choose "Linker", choose "Input" from the left pane. - - Under "Additional Dependencies", add in "$(HDF5_EXT_PTHREAD)" (No - quotation marks). - - Click on "OK". - - 1.5 Set Project Active Configurations - - Go to Build->Set Active Configuration, choose "Release" under "Project - Configurations:", Click "OK". - - 1.6 Build HDF5 Release DLL with Thread-safe Feature - - Right-click on project hdf5dll and click "Build" to build HDF5 Release DLL - with thread-safe feature. - - Warning messages can be ignored. But there should be no failures at all. - -2. Test Thread-safe Feature of HDF5 Release DLL - - 2.1 Build Release Version of Project libtestdll - - Go to Build->Set Active Configuration, choose - "libtestdll-Win32 Release" under "Project configurations:", Click "OK". - - Go to Build->Build libtestdll.dll to build release version of Project - libtestdll. - - 2.2 Build Release Version of Project ttsafedll - - Go to Build->Set Active Configuration, choose "Release" under "Project - Configurations:", Click "OK". - - Right-click on project ttsafedll and click "Build" to build release version - of Project ttsafedll.exe. - - 2.3 Install hdf5dll.dll - - Invoke a comand prompt, change directory to c:\MYHDFSTUFF\hdf5, run batch - file install_dll.bat to copy - c:\MYHDFSTUFF\hdf5\proj\hdf5dll\release\hdf5dll.dll into system directory. - - 2.4 Test Thread-safe Feature of HDF5 Release DLL - - Set project ttsafedll as the active project file if it is not. Go to - Build->Execute ttsafedll.exe, the following is the test messages users - should get: - - For help use: ttsafedll.exe -help - Linked with hdf5 version 1.8 release 0 - Testing -- multi-dataset creation (dcreate) - Testing -- per-thread error stacks (error) - Testing -- thread cancellation safety test (cancel) - Testing -- multi-attribute creation (acreate) - - - All tests were successful. - - - Cleaning Up temp files... - - Users who got the same messages as above have successfully built the release - version of hdf5dll.dll. - -3. Build, Test and Install HDF5 Library and Tools - - Go back to Section II, Step I(2) to Build, test and install HDF5 libary and - tools. - -======================================================================== - Section IX: How to build HDF5 for 64-bit Windows -======================================================================== - -HDF5 can be built for 64-bit Windows in Visual Studio 2008. - -Notes: - - 1. Building 64-bit HDF5 from a 32-bit machine is also unsupported. Because - we generate source file H5tinit.c from a generated 64-bit executable, - this must be done on a 64-bit machine. - - -Prerequisites: - - 1. A 64-bit Windows machine. - - 2. Microsoft Visual Studio 2008 installed with x64 Extensions. - - -Building: - - Building 64-bit Windows binaries is very similar to the process for 32-bit. - Therefore, you may follow the instructions in Section II with the following - modifications. - - 1. The x64 platform must be selected in the build configuration for - debug and release versions. Before building, go to "Build", - "Configuration Manager". In the "Active solution platform" box, - select "x64", and press "Close". - - 2. 64-bit HDF5 must be built with 64-bit external libraries, unless - external library support is disabled. You must add the include and - library paths for x64 configurations as you have in the - "Prerequisites" section. This is also true for Intel Fortran if - Fortran libraries are to be built. If you do not wish to use - external libraries, please read Section V about disabling them. - -Testing: - - We provide a test suite to verify all libraries and tools were built - successfully. This test suite should work identically on 32- and 64-bit - builds. Therefore, you may follow the instructions in Section II about - testing. Note that because 64-bit binaries were built, these tests must - run on a 64-bit machine. - -Installing: - - We provide a script that will install all headers, libraries, and tools - into one folder, hdf5lib. This script should work identically on 32- and - 64-bit builds. Therefore, you may follow the instructions in Section II - about installing. - -======================================================================== - Section X: How to build HDF5 on Windows Vista -======================================================================== -Building on Windows Vista is very similar to building on Windows XP, with -some minor changes. Therefore, follow the build instructions above, with the -following considerations: - - 1. Only Visual Studio 2008 is currently supported on Windows Vista. - - 2. Elevated security permissions are required to test the HDF5 libraries. - This is because DLLs are installed in the system directory. To enable - elevated security: - - 1. In the Start menu, search for "Command Prompt". Right click on - the "Command Prompt" program, and select "Run as administrator." - - 2. A security dialog will pop up. Make sure you select "Continue." - - 3. Test HDF5 libraries and tools as usual using "hdf5check.bat" - script. - - -======================================================================== - Section XI: How to build HDF5 using Visual Studio 2010 -======================================================================== -Building with Visual Studio 2010 is very similar to building with Visual Studio -2008, with some minor changes. Therefore, follow the build instructions above, -with the following considerations: - - 1. Visual Studio 2010 uses a new format for project files, but Visual Studio - 2008 project files can be easily converted. The HDF5 project files - will need to be converted on first use. To do so: - - 1.1. Open the HDF5 Visual Studio 2008 solution file as in Section II - (either all.sln or all_fortran.sln if building Fortran.) - - 1.2. You will be prompted with an automatic conversion wizard. Click - through, accepting the default values. You may choose to create - backups of the project files, although it isn't necessary. - - 1.3. When it is finished, it should state that all projects were - converted successfully with no errors. Warnings can be ignored. - - 2. Once the project files have been converted, build and test normally. - Note that the converted project files aren't backwards compatible with - previous versions of Visual Studio. - - -======================================================================== - Section XII: Backwards Compatibility with HDF5 1.6 -======================================================================== - -Several basic HDF5 functions have changed over the years as requirements on -the library and data format have evolved. To enable existing applications to -run properly, all versions of these functions have been retained; for -flexibility and ease-of-use, macros have been created that can be mapped -either globally to broad sets of function versions or on a -function-by-function basis to specific versions. For example, an overall -approach can be determined by means global setting; function-level settings -can then be used to override the global setting then for specific functions. - -To enable 1.6 API symbols in your application: - - 1. Build and test HDF5 normally (see Section II). - - 2. Open your application in Visual Studio. Right click on the - project file, and select properties. - - 3. Select the C/C++ > Preprocessor pane on the left. In the list of - "Preprocessor Definitions", add "H5_USE_16_API". (Note: macros in - the list are separated by a semi-colon.) - - 4. Repeat this for each project and project configuration that uses - HDF5 libraries. - - 5. Continue to build and test your application normally. - - -======================================================================== - Section XIII: Misc. -======================================================================== - -1. Helpful Pointers - -Here are some helpful notes if you are not familiar with -using the Visual C++ Development Environment. - - 1.1 Project name and location issues: - - It is recommended that you use the given directory structure for building - HDF5. However, it is possible to create your own structure. If you must - install all.sln and all.vcproj in another directory, relative to hdf5 - directory, you will be asked to locate the sub-project files, when you open - the project all.sln. - - If you want to rename "all" (the entire project), you will need to modify - two files all.sln and all.vcproj as text (contrary to the explicit warnings - in the files). - - - 1.2 Settings... details: - - If you create your own project, the necessary settings can be read - from the all.vcproj file (as text), or from the Project Settings in the - Visual Studio project settings dialog. - - 1.3 FAQ - - Many other common questions and hints are located online and being updated - in the HDF5 FAQ. For Windows-specific questions, please see: - - http://www.hdfgroup.uiuc.edu/windows/faq.html - - For all other general questions, you can look in the general FAQ: - - http://hdfgroup.org/HDF5-FAQ.html - - -************************************************************************ - Please send email to help@hdfgroup.org for further assistance. +The old INSTALL_Windows documentation can be found in the +obsolete_windows_docs\ folder located with this document. diff --git a/release_docs/INSTALL_Windows_From_Command_Line.txt b/release_docs/INSTALL_Windows_From_Command_Line.txt deleted file mode 100644 index 7557441..0000000 --- a/release_docs/INSTALL_Windows_From_Command_Line.txt +++ /dev/null @@ -1,168 +0,0 @@ -************************************************************************ -* Instructions for Building and Testing HDF5 on Windows XP * -* (From Command Line) * -************************************************************************ -Note: This instruction is written for users who would like to build HDF5 - libraries and tools from the HDF5 source code package on command - line. We no longer support building HDF5 using Microsoft Visual - Studio .NET 2003 or Visual Studio VS2005 or Intel Fortran 91. - - Currently, we support: - - 1. Building and testing HDF5 C/C++/Fortran libraries on command line with - Microsoft Visual Studio 2008 for 32- or 64-bit Windows. - - 2. Building and testing HDF5 C/C++/Fortran libraries and utilities using - CMake tools. Refer to the CMAKE.txt file for detailed information. - - For all other Windows development tools, HDF5 should be built in - the development environment. Please refer to INSTALL_Windows.txt - for detailed HDF5 building and installation information, or - INSTALL_Windows_Short.txt for quick HDF5 building and installation - instructions. - -WARNINGS: - -Please read CAREFULLY about HDF5 build and install preconditions and -notes in INSTALL_Windows.txt before starting below procedures. - - -======================================================================== - Section I: Building and testing HDF5 on command line with Microsoft - Visual Studio -======================================================================== - -1. Preconditions: - - 1.1 Verify environment for Visual Studio - - Building from the command line requires environment variables for Visual - Studio. These are generally setup when Visual Studio is installed, but you - can verify by running the command: - - echo %vs90comntools% - - This should output a path similar to: - - C:\Program Files\Microsoft Visual Studio 9\Common7\Tools\ - - 1.2 Run batch file copy_hdf.bat. - - Go to c:\MyHDFstuff\hdf5\windows and run copy_hdf.bat. - - 1.3 Setup evironment for external libraries - - Similarly to building from within Visual Studio, HDF5 requires environment - variables for szip and zlib library names. To define these environment - variables: - - From the command prompt that you will be building HDF5 from, issue the - following command: - - set HDF5_EXT_ZLIB=zlib1.lib - - replacing "zlib1.lib" with the name of the zlib library on your system. - Similarly, set HDF5_EXT_SZIP to the name of the szip library on your system. - - (Optional) If you will be building using the /useenv switch, you must also - define variables INCLUDE and LIB with a semi-colon deliminated list of - paths for szip and zlib include files and libraries, respectively. Set - these variables in the same way you set HDF5_EXT_ZLIB and HDF5_EXT_SZIP. - - -2. Building and testing HDF5 libraries and tools - - We provide 2 options for users to build and test HDF5 libraries - and tools. - - 2.1 Options A: Build and test in one step - - A batch file named hdf5bt.bat in c:\MyHDFstuff\hdf5 directory is - provided for users to build and test HDF5 library and tools together - from command line. - - hdf5bt file takes the following options: - /vs9 Build HDF5 using Visual Studio 2008 - /fort Build and test HDF5 with Fortran libraries - /ivf101 Build HDF5 Fortran using Intel Visual Fortran 10.1 - /ivf111 Build HDF5 Fortran using Intel Visual Fortran 11.1 - /useenv Build HDF5 using compiler settings defined - in the environment, rather than the IDE. - /? Help information - - If you specify the "/useenv" option, then include and library - directories for szip and zlib must have been set in the - Preconditions above. - - Invoke a command prompt window and run hdf5bt. Users are - encouraged to pipe the test output into a file. You should find no - compilation errors or "*FAILED*" marks. - - 2.2 Options B: Build and test in two steps - - We also provide users with the option to build and test HDF5 libraries - and tools seperately. - - Step 1) Build HDF5 Libraries and Tools - - A batch file named hdf5build.bat in c:\MyHDFstuff\hdf5 - directory is provided for users to build HDF5 library and - tools from command line. - - hdf5build takes the following options: - /vs9 Build HDF5 using Visual Studio 2008 - /fort Build HDF5 with Fortran libraries - /ivf101 Build HDF5 Fortran using Intel Visual Fortran 10.1 - /ivf111 Build HDF5 Fortran using Intel Visual Fortran 11.1 - /nodebug Build HDF5 release versions only - Note: Default is to build debug and release versions - /useenv Build HDF5 using compiler settings defined - in the environment, rather than the IDE. - /? Help information - - If you specify the "/useenv" option, then include and library - directories for szip and zlib must have been set in the - Preconditions above. - - Invoke a command prompt window and run hdf5build. Users are - encouraged to pipe the test output into a file. You can check - the file to find out whether there are any compilation errors. - - Step 2) Test HDF5 Libraries and Tools - - HDF5 comes with various test suites, all of which can be tested with - hdf5check.bat batch file in c:\MyHDFstuff\hdf5 directory. - - hdf5check batch file can be run with one of the following four options: - - hdf5check Test HDF5 C library and tools only. - - hdf5check enablecpp Test HDF5 C/C++ libraries and tools. - - hdf5check enablefortran Test HDF5 C/Fortran libraries and - tools. To use this option, HDF5 - Fortran libraries must have been built. - - hdf5check enableall Test HDF5 C/Fortran libraries and - tools. To use this option, HDF5 - Fortran libraries must have been built. - - nodebug option can be added to any of the above options to only - test the release versions. - - Invoke a command prompt window and run hdf5check with appropriate - option. Users are encouraged to pipe the test output into a file. - You should find no "*FAILED*" marks. - -3. Installing HDF5 Libraries - -Run the batch file c:\MyHDFstuff\hdf5\installhdf5lib.bat to install all -HDF5 libraries and tools into c:\MyHDFstuff\hdf5\hdf5lib directory. - -For further information, please refer to INSTALL_WINDOWS.txt. - - -*********************************************************************** -For further information, please refer to INSTALL_WINDOWS.txt. - -Please send email to help@hdfgroup.org for further assistance. diff --git a/release_docs/INSTALL_Windows_Short_NET.TXT b/release_docs/INSTALL_Windows_Short_NET.TXT deleted file mode 100644 index db144d1..0000000 --- a/release_docs/INSTALL_Windows_Short_NET.TXT +++ /dev/null @@ -1,10 +0,0 @@ -************************************************************************ -* Build and Install HDF5 C/C++ Library with VS .NET 2003 * -* with Windows XP (Short Version) * -************************************************************************ - -Notes: We no longer support building HDF5 using Microsoft Visual Studio .NET 2003. -************************************************************************ - -Need further assistance, send email to help@hdfgroup.org - diff --git a/release_docs/INSTALL_Windows_Short_VS2005.TXT b/release_docs/INSTALL_Windows_Short_VS2005.TXT deleted file mode 100644 index 9ed15b4..0000000 --- a/release_docs/INSTALL_Windows_Short_VS2005.TXT +++ /dev/null @@ -1,10 +0,0 @@ -************************************************************************ -* Build and Install HDF5 C/C++ Library with Visual Studio 2005 * -* with Windows XP (Short Version) * -************************************************************************ - -Notes: We no longer support building HDF5 using Microsoft Visual Studio 2005. -************************************************************************ - -Need further assistance, send email to help@hdfgroup.org - diff --git a/release_docs/INSTALL_Windows_Short_VS2008.TXT b/release_docs/INSTALL_Windows_Short_VS2008.TXT deleted file mode 100644 index 8ff8866..0000000 --- a/release_docs/INSTALL_Windows_Short_VS2008.TXT +++ /dev/null @@ -1,192 +0,0 @@ -************************************************************************ -* Build and Install HDF5 C/C++ Library with Visual Studio 2008 * -* with Windows XP (Short Version) * -************************************************************************ - -Notes: This short instruction is written for users who want to quickly build - HDF5 library and tools from the HDF5 source code package with Microsoft - Visual Studio 2008 but do not want to know HDF5 building and installation - details on Windows XP. - - For detailed HDF5 build and install information, or if you have trouble - following any steps in the instructions, please refer to - INSTALL_Windows.txt for further information. - - For users who would like to build and test HDF5 package from the - command line, please refer to INSTALL_Windows_From_Command_Line.txt. - - Notes: - - 1. HDF5 1.8 can also be built using Visual Studio 2008 on Windows - Vista. For details, please see Section X of INSTALL_Windows.txt. - - 2. 64-bit builds are also supported in Visual Studio 2008. For details - please see Section IX of INSTALL_Windows.txt. - - 3. Fortran libraries can be built with Visual Studio 2008 and Intel - Fortran 10.1. For details, see Section VI of INSTALL_Windows.txt. - -WARNINGS: - -Please read CAREFULLY about HDF5 build and install preconditions and -notes in INSTALL_Windows.txt before starting below procedures. - - -======================================================================== - Preconditions -======================================================================== - - 1. Set up path for external libraries and headers - - Skip this part if you don't want to use ANY compression features provided - by HDF5. Please do read Section V in INSTALL_Windows.txt. - - You have to read this part even if you want to only use Zlib or Szip. You - also need to read Section V in INSTALL_Windows.txt. - - Invoke Microsoft Visual Studio and go to "Tools" and select "Options". In - the left pane of "Option" window poped up, choose and expand "Projects", - Click on "VC++ Directories". In the right pane, Find the box "Show - directories for", choose "Include files", if you can not find your Zlib - and Szip header path (for example, c:\zlib125\include, c:\szip\include) - from the directory list, add the header path (c:\zlib125\include, - c:\szip\include) to the included directories. - - Find the box "Show directories for", choose "Library files", If you cannot - find your Zlib and Szip library path (for example, c:\zlib125\dll, - c:\szip\dll) from the directory list, add the library path - (c:\zlib125\dll, c:\szip\dll) to the library directories. - -======================================================================== - Building HDF5 C/C++ Libraries with Visual Studio 2005 -======================================================================== - - 1. Run batch file copy_hdf.bat - - Go to c:\MyHDFstuff\hdf5\windows and run copy_hdf.bat. This process will - copy all the necessary batch files, windows specific source codes and - text files saved under c:\MyHDFstuff\hdf5\windows directory to the - corresponding directories under hdf5. - - 2. Invoke Microsoft Visual Studio compiler - - Invoke Microsoft Visual Studio. From the main menu, go to "File" and - select the "Open Solution" option. Then open the - c:\MyHDFstuff\hdf5\windows\proj\all\all.sln solution if you are building - without Fortran libraries, or - c:\MyHDFstuff\hdf5\windows\proj\all_fortran\all_fortran.sln if you would - like to use Fortran. - - You should find Windows project files listed as "all", "big", etc. on the - left. - - - 3. (Optional) Disable HDF5 C++ and High level C++ - - In HDF5 1.8, C++ and HL C++ libraries are built by default. To opt-out, - you must explicitly disable them. - - 3.1 Skip this step if you do want to build HDF5 High-Level C++ libraries - - Go to "Project" and select "Project Dependencies". Select "all", and - disable all of the following projects: - - hdf5_hl_cpp - hdf5_hl_cppdll - hl_test_table_cpp - hl_test_table_cppdll - - 3.2 Skip this step if you do want to build HDF5 High-Level libraries - - Go to "Project" and select "Project Dependencies". Select "all", and - disable all of the project files listed in the previous step, as well - as the following projects: - - hdf5_hl - hdf5_hldll - hl_test_image - hl_test_imagedll - hl_test_lite - hl_test_litedll - hl_test_table - hl_test_tabledll - hl_test_ds - hl_test_dsdll - hl_test_packet - hl_test_packetdll - - Click on "OK", From the main menu, choose "Build"-> "Build" or - "Rebuild ALL" to build both release and debug version of HDF5 - Libraries. - - - 4. Select "Build", then Select "Configuration Manager". - - 4.1 To build debug static libraries, debug multithreaded DLLs, and tests: - - In "Active Solution Configuration", select "Debug". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build debug - version of project "all". - - 4.2 To build release static libraries, multithreaded DLLs and tests: - - In "Active Solution Configuration", select "Release". Select "Close". - Select "Build" -> "Build Solution" or "Rebuild Solution" to build release - version of project "all". - - Both debug and release versions must be built. - - Warning messages can be ignored. - -======================================================================== - Testing HDF5 C/C++ Libraries -======================================================================== - -HDF5 libraries and tools should be tested to make sure that they were -built correctly. c:\MyHDFstuff\hdf5\hdf5check.bat was provided to test -HDF5 libraries and tools. - -hdf5check.bat has four options: - - hdf5check test HDF5 C library and tools only - - hdf5check enablecpp test HDF5 C/C++ libraries and tools - - hdf5check enablefortran test HDF5 C/Fortran libraries and tools - - hdf5check enableall test HDF5 C/C++/Fortran libraries and tools - - nodebug -- can be added to any of the above to not - test debug versions - -Notes: Users who only build HDF5 C/C++ libraries ONLY have the first - two options. - -Invoke a command prompt window and run hdf5check with appropriate option. -Users are encouraged to pipe the test output into a file. You should find -no "*FAILED*" marks. - -If you want to test HDF5 libraries and tools one by one, please refer to -Section II, step 2 in INSTALL_Windows.txt. - - -======================================================================== - Installing HDF5 C/C++ Libraries -======================================================================== - -Run the batch file c:\MyHDFstuff\hdf5\installhdf5lib.bat to install -all HDF5 libraries and tools into c:\MyHDFstuff\hdf5\hdf5lib directory. - -======================================================================== - Building HDF5 Examples and Applications -======================================================================== - -Building HDF5 Examples is Optional. Please read Section II, step 4 and -the following part in INSTALL_Windows.txt for detailed information. - - - -************************************************************************ - -Need further assistance, send email to help@hdfgroup.org - diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel index d771c0b..b2e1eec 100644 --- a/release_docs/INSTALL_parallel +++ b/release_docs/INSTALL_parallel @@ -6,7 +6,7 @@ ----------- This file contains instructions for the installation of parallel HDF5 (PHDF5). It is assumed that you are familiar with the general installation steps as -described in the INSATLL file. Get familiar with that file before trying +described in the INSTALL file. Get familiar with that file before trying the parallel HDF5 installation. The remaining of this section explains the requirements to run PHDF5. diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 328bba6..13889de 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.128 currently under development +HDF5 version 1.9.132 currently under development ================================================================================ @@ -39,6 +39,9 @@ New Features Configuration: ------------- + - Fixed AIX Fortran compiler flags to use appropriate settings for + debugging, profiling, optimization situations. HDFFV-8069. (AKC + 2012/09/27) - Updated to latest autotools and changed all hard *.sh scripts to configure managed *.sh.in files. Removed overloading of autotools TESTS variable by examples and tests. Renamed configure.in to @@ -97,6 +100,9 @@ New Features Library: -------- + - The library now supports the data conversion from enumeration to numeric + (integer and floating-point number) datatypes. See Issue 8221. + (SLU - 2012/10/23) - The data sieve buffer size was for all the datasets in the file. It could waste memory if any dataset size is smaller than the sieve buffer size. Now the library picks the smaller one between the dataset size @@ -185,6 +191,8 @@ New Features Fortran Library: ---------------- + - Added parallel routine H5Pget_mpio_actual_io_mode_f (MSB - 2012/09/27) + - Added for the C API the Fortran wrapper: h5ocopy_f (MSB - 2012/03/22) @@ -230,6 +238,7 @@ New Features (MSB - 2009/04/17) + C++ Library: ------------ - New member functions @@ -698,6 +707,11 @@ Bug Fixes since HDF5-1.8.0 release Performance ------------- + - Removed program perform/benchpar from the enable-build-all list. The + program will be retired or moved to another location. HDFFV-8156 + (AKC 2012/10/01) + - Retired program perform/mpi-perf. Its purpose has been incorporated + into h5perf before. (AKC 2012/09/20) - ifdefs added to tests around include unistd.h and function to simulate getlogin() on Windows. (ADB - 2011/08/15) @@ -710,11 +724,37 @@ Bug Fixes since HDF5-1.8.0 release with other Fortran functions; cleaned the code from debug statements. (EIP - 2012/06/23) + - Fixed problem writing/reading control characters to a dataset; writing + a string containing: alerts, backspace, carriage_return, form_feed, + horizontal_tab, vertical_tab, new_line is now tested and working. + (MSB - 2012/09/01) + + - Corrected the integer type of H5S_UNLIMITED_F to HSIZE_T (MSB - 2012/09/01) + + - Corrected the number of continuation lines in the src files + to be less then 32 lines for F95 compliance. (MSB - 2012/10/01) + Tools ----- + - h5diff: Improved speed when comparing HDF5 files with lots of + attributes. Much slower performance was identified with release version + from 1.8.7 to 1.8.10 compared to 1.8.6. (JKM 2012/10/19) + - h5repack: "h5repack -f NONE file1.h5 out.h5" command failed if + source file contains chunked dataset and a chunk dim is bigger than + the dataset dim. Another issue is that the command changed max dims + if chunk dim is smaller than the dataset dim. + These issue occurred when dataset size is smaller than 64k (compact + size limit) Fixed both. + HDFFV-8012 (JKM 2012/09/24) + - h5diff: Fixed not to accumulate attribute difference to dataset + difference in verbose mode (-v, -r), which caused incorrect + difference between dataset and group/datatype object if attribute + exist with any differences. This also lead to fix inconsistent + format indicating difference between dataset and group/datatype + object. HDFFV-5919 (JKM 2012/09/05) - h5diff: Fixed the incorrect result when comparing attribute data values and the data type has same class but different size. - HDFFV-7942 (JKM 08/15/2012) + HDFFV-7942 (JKM 2012/08/15) - ph5diff: Fixed intermittent hang issue on a certain operation in parallel mode. It was detected by daily test for comparing non-comparable objects, but it could have occurred in other @@ -926,6 +966,13 @@ Bug Fixes since HDF5-1.8.0 release High-Level APIs: ------ + + - Fixed problem with H5TBdelete_record destroying all data following the deletion + of a row. (MSB- 2012/7/26) + + - Fixed H5LTget_attribute_string not closing an object identifier when an + error occurs. (MSB- 2012/7/21) + - Fixed the H5LTdtype_to_text function. It had some memory problems when dealing with some complicated data types. HDFFVI-7701 (SLU - 2011/10/19) @@ -1013,14 +1060,12 @@ Platforms Tested xlf90 12.1.0.6 FreeBSD 8.2-STABLE i386 gcc 4.2.1 [FreeBSD] 20070719 - (loyalty) g++ 4.2.1 [FreeBSD] 20070719 - gcc 4.6.1 20110422 + (loyalty) gcc 4.6.1 20110422 g++ 4.6.1 20110422 gfortran 4.6.1 20110422 FreeBSD 8.2-STABLE amd64 gcc 4.2.1 [FreeBSD] 20070719 - (freedom) g++ 4.2.1 [FreeBSD] 20070719 - gcc 4.6.1 20110422 + (freedom) gcc 4.6.1 20110422 g++ 4.6.1 20110422 gfortran 4.6.1 20110422 @@ -1097,7 +1142,7 @@ SunOS5.10 32-bit n y n y y y Windows 7 y y n y y y Windows 7 x64 y y n y y y Mac OS X 10.5 Intel n y n y y y -FreeBSD 8.2 32- and 64-bit n x n x y y +FreeBSD 8.2 32- and 64-bit n y n y y y RedHat EL4 2.6.9 i686 GNU W y(2) y(4) y(2) y y y RedHat EL4 2.6.9 i686 Intel W n y n y y n RedHat EL4 2.6.9 i686 PGI W n y n y y n @@ -1113,7 +1158,6 @@ SuSe Linux 2.6.5 Alpha OpenVMS 7.3.2 n y n y n n - Platform Shared Shared Shared static- Thread- C libs F90 libs C++ libs exec safe SunOS 5.10 32-bit y y y x y @@ -1123,7 +1167,7 @@ Windows XP x64 y y(3) y y n Windows Vista y y(3) y y y Windows Vista x64 y y(3) y y y Mac OS X 10.5 Intel y y y x n -FreeBSD 8.2 32- and 64-bit y x x y y +FreeBSD 8.2 32- and 64-bit y y y y y RHEL4 2.6.9 i686 GNU W y y(4) y x y RHEL4 2.6.9 i686 Intel W y y y x n RHEL4 2.6.9 i686 PGI W y y y x n @@ -1149,6 +1193,11 @@ SuSe Linux 2.6.5 Known Problems ============== +* The C++ and FORTRAN bindings are not currently working on FreeBSD with the + native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the + ports (and probably gcc releases after that). + (QAK - 2012/10/19) + * The data conversion test dt_arith.c has failures (segmentation fault) from "long double" to other datatypes during hard conversion when the library is built with the default GCC 4.2.1 on Mac Lion system. It only happens diff --git a/release_docs/USING_CMake.txt b/release_docs/USING_CMake.txt new file mode 100644 index 0000000..71f2fcf --- /dev/null +++ b/release_docs/USING_CMake.txt @@ -0,0 +1,202 @@ +************************************************************************ +* Build and Install HDF5 Applications with CMake * +************************************************************************ + +Notes: This short instruction is written for users who want to quickly build + HDF5 Applications from the HDF5 Examples package using the CMake tools. + Users can adapt these instructions for their own applicaltions, see the + "Minimum Project Files" section. + + More information about using CMake can be found at the KitWare site, + www.cmake.org. + + CMake uses the command line, however the visual CMake tool is + available for the configuration step. The steps are similiar for + all the operating systems supported by CMake. + + NOTES: + 1. Using CMake for building and using HDF5 is under active development. + While we have attempted to provide error-free files, please + understand that development with CMake has not been extensively + tested outside of HDF. The CMake specific files may change + before the next release. + + 2. CMake was originally introduced to support development on Windows, + however it should be usable on any system where CMake is supported. + Please send us any comments on how CMake support can be improved on + any system. Visit the KitWare site for more information about CMake. + + 3. HDF5 library build and test results can be submitted to our CDash server at: + cdash.hdfgroup.uiuc.edu. + Please read the HDF and CDash document at: + www.hdfgroup.org/CDash/HowToSubmit. + + +======================================================================== + Preconditions +======================================================================== + + 1. We suggest you obtain the latest CMake for windows from the Kitware + web site. The HDF5 1.8.x product requires CMake version 2.8.6 (minimum). + + 2. You have installed the HDF5 library built with CMake, by executing the + HDF Install Utility (The *.exe file in the binary package for Windows). + If you are using a Windows platform, you can obtain a pre-built Windows + binary from The HDF Group's website at www.hdfgroup.org. + + 3. On Windows with Visual Studio, if you have installed the static HDF5 + library, you will need to add the HDF5\lib folder to the library + search list. See the "Using Static Libraries with Visual Studio" section. + + 4. Set the environment variable HDF5_ROOT to the installed location of HDF5. + On Windows HDF5_ROOT=C:\Program Files\HDF Group\HDF5\hdf5-1.8.x + (Note there are no quote characters used on windows) + +======================================================================== + Building HDF5 Applications with CMake +======================================================================== + + 1. Run CMake + + The CMake executable is named "cmake-gui.exe" on Windows and should be + available in your Start menu. For Linux, UNIX, and Mac users the + executable is named "cmake-gui" and can be found where CMake was + installed. + Specify the source and build directories. It is recommemded that you + choose a build directory different then the source directory + (for example on Windows, if the source is at c:\MyHDFstuff\hdf5, then + use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5). + + OPTIONAL: + Users can perform the configuration step without using the visual cmake-gui + program. Example configuration step executed within the build directory: + + cmake -G "" [-D] + + Where is + * Borland Makefiles + * MSYS Makefiles + * MinGW Makefiles + * NMake Makefiles + * Unix Makefiles + * Visual Studio 10 + * Visual Studio 10 Win64 + * Visual Studio 6 + * Visual Studio 7 + * Visual Studio 7 .NET 2003 + * Visual Studio 8 2005 + * Visual Studio 8 2005 Win64 + * Visual Studio 9 2008 + * Visual Studio 9 2008 Win64 + + is: + * BUILD_TESTING:BOOL=ON + * USE_SHARED_LIBS:BOOL=[ON | OFF] + + 2. Configure the cache settings + + 2.1 Click the Configure button. If this is the first time you are + running cmake-gui in this directory, you will be prompted for the + generator you wish to use (for example on Windows, Visual Studio 9 2008). + CMake will read in the CMakeLists.txt files from the source directory and + display options for the HDF5 project. After the first configure you + can adjust the cache settings and/or specify locations of other programs. + + Any conflicts or new values will be highlighted by the configure + process in red. Once you are happy with all the settings and there are no + more values in red, click the Generate button to produce the appropriate + build files. + + On Windows, if you are using a Visual Studio generator, the solution and + project files will be created in the build folder. + + On linux, if you are using the Unix Makefiles generator, the Makefiles will + be created in the build folder. + + 2.2 Alternative command line example on Windows in c:\MyHDFstuff\hdf5\build directory: + + cmake -G "Visual Studio 9 2008" -DBUILD_TESTING:BOOL=ON -DUSE_SHARED_LIBS:BOOL=ON .. + + 3. Build HDF5 Applications + + On Windows, you can build HDF5 applications using either the Visual Studio Environment + or the command line. The command line is normally used on linux, Unix, and Mac. + + To build from the command line, navigate to your build directory and + execute the following; + + cmake --build . --config {Debug | Release} + + NOTE: "--config {Debug | Release}" may be optional on your platform. We + recommend choosing either Debug or Release on Windows. If you are + using the pre-built binaries from HDF, use Release. + + 3.1 If you wish to use the Visual Studio environment, open the solution + file in your build directory. Be sure to select either Debug or + Release and build the solution. + + 4. Test HDF5 Applications. + + To test the build, navigate to your build directory and execute; + + ctest . -C {Debug | Release} + + NOTE: "-C {Debug | Release}" may be optional on your platform. We + recommend choosing either Debug or Release to match the build + step on Windows. + + 6. The files that support building with CMake are all the files in the + config/cmake folder, the CMakeLists.txt files in each source folder, and + CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing + performed by The HDF Group. It should be altered for the users + installation and needs. + + 7. More information about using CMake can be found at the KitWare site, + www.cmake.org. + + +======================================================================== + Using HDF5 Libraries with Visual Studio 2008 +======================================================================== + + 8. Set up path for external libraries and headers + + Invoke Microsoft Visual Studio and go to "Tools" and select "Options", + find "Projects", and then "VC++ Directories". + + 8.1 If you are building on 64-bit Windows, find the "Platform" dropdown + and select "x64". + + 8.2 Find the box "Show directories for", choose "Include files", add the + header path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.7\include) + to the included directories. + + 8.3 Find the box "Show directories for", choose "Library files", add the + library path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.7\lib) + to the library directories. + + 8.4 If using Fortran libraries, you will also need to setup the path + for the Intel Fortran compiler. + + +======================================================================== + Minimum C Project Files for CMake +======================================================================== + + 9. Create a CMakeLists.txt file at the source root. +.......................................................................... +cmake_minimum_required (VERSION 2.8.6) +PROJECT (HDF5MyApp C CXX) + +FIND_PACKAGE (HDF5 REQURIED) +INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRS}) +SET (LINK_LIBS ${LINK_LIBS} ${HDF5_LIBRARIES}) + +ADD_EXECUTABLE (hdf_example ${PROJECT_SOURCE_DIR}/hdf_example.c) +TARGET_LINK_LIBRARIES (hdf_example ${LINK_LIBS}) +.......................................................................... + +************************************************************************ + +Need further assistance, send email to help@hdfgroup.org + diff --git a/release_docs/USING_Windows.txt b/release_docs/USING_Windows.txt index 410a759..9afbeb1 100644 --- a/release_docs/USING_Windows.txt +++ b/release_docs/USING_Windows.txt @@ -1,6 +1,6 @@ *********************************************************************** -* HDF5 Build and Install Instructions for Windows XP/VISTA * +* HDF5 Build and Install Instructions for Windows * * (Full Version) * *********************************************************************** @@ -659,7 +659,7 @@ using the Visual C++ Development Environment. Many other common questions and hints are located online and being updated in the HDF5 FAQ. For Windows-specific questions, please see: - http://www.hdfgroup.uiuc.edu/windows/faq.html + http://www.hdfgroup.org/windows/faq.html For all other general questions, you can look in the general FAQ: diff --git a/release_docs/Using_CMake.txt b/release_docs/Using_CMake.txt deleted file mode 100644 index 71f2fcf..0000000 --- a/release_docs/Using_CMake.txt +++ /dev/null @@ -1,202 +0,0 @@ -************************************************************************ -* Build and Install HDF5 Applications with CMake * -************************************************************************ - -Notes: This short instruction is written for users who want to quickly build - HDF5 Applications from the HDF5 Examples package using the CMake tools. - Users can adapt these instructions for their own applicaltions, see the - "Minimum Project Files" section. - - More information about using CMake can be found at the KitWare site, - www.cmake.org. - - CMake uses the command line, however the visual CMake tool is - available for the configuration step. The steps are similiar for - all the operating systems supported by CMake. - - NOTES: - 1. Using CMake for building and using HDF5 is under active development. - While we have attempted to provide error-free files, please - understand that development with CMake has not been extensively - tested outside of HDF. The CMake specific files may change - before the next release. - - 2. CMake was originally introduced to support development on Windows, - however it should be usable on any system where CMake is supported. - Please send us any comments on how CMake support can be improved on - any system. Visit the KitWare site for more information about CMake. - - 3. HDF5 library build and test results can be submitted to our CDash server at: - cdash.hdfgroup.uiuc.edu. - Please read the HDF and CDash document at: - www.hdfgroup.org/CDash/HowToSubmit. - - -======================================================================== - Preconditions -======================================================================== - - 1. We suggest you obtain the latest CMake for windows from the Kitware - web site. The HDF5 1.8.x product requires CMake version 2.8.6 (minimum). - - 2. You have installed the HDF5 library built with CMake, by executing the - HDF Install Utility (The *.exe file in the binary package for Windows). - If you are using a Windows platform, you can obtain a pre-built Windows - binary from The HDF Group's website at www.hdfgroup.org. - - 3. On Windows with Visual Studio, if you have installed the static HDF5 - library, you will need to add the HDF5\lib folder to the library - search list. See the "Using Static Libraries with Visual Studio" section. - - 4. Set the environment variable HDF5_ROOT to the installed location of HDF5. - On Windows HDF5_ROOT=C:\Program Files\HDF Group\HDF5\hdf5-1.8.x - (Note there are no quote characters used on windows) - -======================================================================== - Building HDF5 Applications with CMake -======================================================================== - - 1. Run CMake - - The CMake executable is named "cmake-gui.exe" on Windows and should be - available in your Start menu. For Linux, UNIX, and Mac users the - executable is named "cmake-gui" and can be found where CMake was - installed. - Specify the source and build directories. It is recommemded that you - choose a build directory different then the source directory - (for example on Windows, if the source is at c:\MyHDFstuff\hdf5, then - use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5). - - OPTIONAL: - Users can perform the configuration step without using the visual cmake-gui - program. Example configuration step executed within the build directory: - - cmake -G "" [-D] - - Where is - * Borland Makefiles - * MSYS Makefiles - * MinGW Makefiles - * NMake Makefiles - * Unix Makefiles - * Visual Studio 10 - * Visual Studio 10 Win64 - * Visual Studio 6 - * Visual Studio 7 - * Visual Studio 7 .NET 2003 - * Visual Studio 8 2005 - * Visual Studio 8 2005 Win64 - * Visual Studio 9 2008 - * Visual Studio 9 2008 Win64 - - is: - * BUILD_TESTING:BOOL=ON - * USE_SHARED_LIBS:BOOL=[ON | OFF] - - 2. Configure the cache settings - - 2.1 Click the Configure button. If this is the first time you are - running cmake-gui in this directory, you will be prompted for the - generator you wish to use (for example on Windows, Visual Studio 9 2008). - CMake will read in the CMakeLists.txt files from the source directory and - display options for the HDF5 project. After the first configure you - can adjust the cache settings and/or specify locations of other programs. - - Any conflicts or new values will be highlighted by the configure - process in red. Once you are happy with all the settings and there are no - more values in red, click the Generate button to produce the appropriate - build files. - - On Windows, if you are using a Visual Studio generator, the solution and - project files will be created in the build folder. - - On linux, if you are using the Unix Makefiles generator, the Makefiles will - be created in the build folder. - - 2.2 Alternative command line example on Windows in c:\MyHDFstuff\hdf5\build directory: - - cmake -G "Visual Studio 9 2008" -DBUILD_TESTING:BOOL=ON -DUSE_SHARED_LIBS:BOOL=ON .. - - 3. Build HDF5 Applications - - On Windows, you can build HDF5 applications using either the Visual Studio Environment - or the command line. The command line is normally used on linux, Unix, and Mac. - - To build from the command line, navigate to your build directory and - execute the following; - - cmake --build . --config {Debug | Release} - - NOTE: "--config {Debug | Release}" may be optional on your platform. We - recommend choosing either Debug or Release on Windows. If you are - using the pre-built binaries from HDF, use Release. - - 3.1 If you wish to use the Visual Studio environment, open the solution - file in your build directory. Be sure to select either Debug or - Release and build the solution. - - 4. Test HDF5 Applications. - - To test the build, navigate to your build directory and execute; - - ctest . -C {Debug | Release} - - NOTE: "-C {Debug | Release}" may be optional on your platform. We - recommend choosing either Debug or Release to match the build - step on Windows. - - 6. The files that support building with CMake are all the files in the - config/cmake folder, the CMakeLists.txt files in each source folder, and - CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing - performed by The HDF Group. It should be altered for the users - installation and needs. - - 7. More information about using CMake can be found at the KitWare site, - www.cmake.org. - - -======================================================================== - Using HDF5 Libraries with Visual Studio 2008 -======================================================================== - - 8. Set up path for external libraries and headers - - Invoke Microsoft Visual Studio and go to "Tools" and select "Options", - find "Projects", and then "VC++ Directories". - - 8.1 If you are building on 64-bit Windows, find the "Platform" dropdown - and select "x64". - - 8.2 Find the box "Show directories for", choose "Include files", add the - header path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.7\include) - to the included directories. - - 8.3 Find the box "Show directories for", choose "Library files", add the - library path (i.e. c:\Program Files\HDF Group\HDF5\hdf5-1.8.7\lib) - to the library directories. - - 8.4 If using Fortran libraries, you will also need to setup the path - for the Intel Fortran compiler. - - -======================================================================== - Minimum C Project Files for CMake -======================================================================== - - 9. Create a CMakeLists.txt file at the source root. -.......................................................................... -cmake_minimum_required (VERSION 2.8.6) -PROJECT (HDF5MyApp C CXX) - -FIND_PACKAGE (HDF5 REQURIED) -INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRS}) -SET (LINK_LIBS ${LINK_LIBS} ${HDF5_LIBRARIES}) - -ADD_EXECUTABLE (hdf_example ${PROJECT_SOURCE_DIR}/hdf_example.c) -TARGET_LINK_LIBRARIES (hdf_example ${LINK_LIBS}) -.......................................................................... - -************************************************************************ - -Need further assistance, send email to help@hdfgroup.org - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c67431b..f398af5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_SRC C CXX) #----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + +#----------------------------------------------------------------------------- # List Source Files #----------------------------------------------------------------------------- SET (H5_SRCS @@ -12,6 +17,7 @@ SET (H5_SRCS ${HDF5_SRC_DIR}/H5timer.c ${HDF5_SRC_DIR}/H5trace.c ) + SET (H5_HDRS ${HDF5_SRC_DIR}/hdf5.h ${HDF5_SRC_DIR}/H5api_adpt.h @@ -29,6 +35,7 @@ SET (H5A_SRCS ${HDF5_SRC_DIR}/H5Aint.c ${HDF5_SRC_DIR}/H5Atest.c ) + SET (H5A_HDRS ${HDF5_SRC_DIR}/H5Apkg.h ${HDF5_SRC_DIR}/H5Apublic.h @@ -38,6 +45,7 @@ IDE_GENERATED_PROPERTIES ("H5A" "${H5A_HDRS}" "${H5A_SRCS}" ) SET (H5AC_SRCS ${HDF5_SRC_DIR}/H5AC.c ) + SET (H5AC_HDRS ${HDF5_SRC_DIR}/H5ACpkg.h ${HDF5_SRC_DIR}/H5ACpublic.h @@ -109,6 +117,7 @@ SET (H5D_SRCS ${HDF5_SRC_DIR}/H5Dselect.c ${HDF5_SRC_DIR}/H5Dtest.c ) + SET (H5D_HDRS ${HDF5_SRC_DIR}/H5Dpkg.h ${HDF5_SRC_DIR}/H5Dpublic.h @@ -120,6 +129,7 @@ SET (H5E_SRCS ${HDF5_SRC_DIR}/H5Edeprec.c ${HDF5_SRC_DIR}/H5Eint.c ) + SET (H5E_HDRS ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h @@ -167,6 +177,7 @@ SET (H5F_SRCS ${HDF5_SRC_DIR}/H5Fsuper_cache.c ${HDF5_SRC_DIR}/H5Ftest.c ) + SET (H5F_HDRS ${HDF5_SRC_DIR}/H5Fpkg.h ${HDF5_SRC_DIR}/H5Fpublic.h @@ -206,6 +217,7 @@ SET (H5FD_SRCS ${HDF5_SRC_DIR}/H5FDstdio.c ${HDF5_SRC_DIR}/H5FDwindows.c ) + SET (H5FD_HDRS ${HDF5_SRC_DIR}/H5FDcore.h ${HDF5_SRC_DIR}/H5FDdirect.h @@ -248,6 +260,7 @@ SET (H5FS_SRCS ${HDF5_SRC_DIR}/H5FSstat.c ${HDF5_SRC_DIR}/H5FStest.c ) + SET (H5FS_HDRS ${HDF5_SRC_DIR}/H5FSpkg.h ${HDF5_SRC_DIR}/H5FSpublic.h @@ -274,6 +287,7 @@ SET (H5G_SRCS ${HDF5_SRC_DIR}/H5Gtest.c ${HDF5_SRC_DIR}/H5Gtraverse.c ) + SET (H5G_HDRS ${HDF5_SRC_DIR}/H5Gpkg.h ${HDF5_SRC_DIR}/H5Gpublic.h @@ -298,6 +312,7 @@ SET (H5HF_SRCS ${HDF5_SRC_DIR}/H5HFtest.c ${HDF5_SRC_DIR}/H5HFtiny.c ) + SET (H5HF_HDRS ${HDF5_SRC_DIR}/H5HFpkg.h ${HDF5_SRC_DIR}/H5HFpublic.h @@ -310,6 +325,7 @@ SET (H5HG_SRCS ${HDF5_SRC_DIR}/H5HGdbg.c ${HDF5_SRC_DIR}/H5HGquery.c ) + SET (H5HG_HDRS ${HDF5_SRC_DIR}/H5HGpkg.h ${HDF5_SRC_DIR}/H5HGpublic.h @@ -322,6 +338,7 @@ SET (H5HL_SRCS ${HDF5_SRC_DIR}/H5HLdbg.c ${HDF5_SRC_DIR}/H5HLint.c ) + SET (H5HL_HDRS ${HDF5_SRC_DIR}/H5HLpkg.h ${HDF5_SRC_DIR}/H5HLpublic.h @@ -365,6 +382,7 @@ SET (H5MF_SRCS ${HDF5_SRC_DIR}/H5MFdbg.c ${HDF5_SRC_DIR}/H5MFsection.c ) + SET (H5MF_HDRS ) IDE_GENERATED_PROPERTIES ("H5MF" "${H5MF_HDRS}" "${H5MF_SRCS}" ) @@ -383,6 +401,7 @@ SET (H5MP_SRCS ${HDF5_SRC_DIR}/H5MP.c ${HDF5_SRC_DIR}/H5MPtest.c ) + SET (H5MP_HDRS ${HDF5_SRC_DIR}/H5MPpkg.h ) @@ -423,6 +442,7 @@ SET (H5O_SRCS ${HDF5_SRC_DIR}/H5Otest.c ${HDF5_SRC_DIR}/H5Ounknown.c ) + SET (H5O_HDRS ${HDF5_SRC_DIR}/H5Opkg.h ${HDF5_SRC_DIR}/H5Opublic.h @@ -437,6 +457,7 @@ SET (H5P_SRCS ${HDF5_SRC_DIR}/H5Pdcpl.c ${HDF5_SRC_DIR}/H5Pdeprec.c ${HDF5_SRC_DIR}/H5Pdxpl.c + ${HDF5_SRC_DIR}/H5Pencdec.c ${HDF5_SRC_DIR}/H5Pfapl.c ${HDF5_SRC_DIR}/H5Pfcpl.c ${HDF5_SRC_DIR}/H5Pfmpl.c @@ -449,6 +470,7 @@ SET (H5P_SRCS ${HDF5_SRC_DIR}/H5Pstrcpl.c ${HDF5_SRC_DIR}/H5Ptest.c ) + SET (H5P_HDRS ${HDF5_SRC_DIR}/H5Ppkg.h ${HDF5_SRC_DIR}/H5Ppublic.h @@ -494,6 +516,7 @@ SET (H5S_SRCS ${HDF5_SRC_DIR}/H5Sselect.c ${HDF5_SRC_DIR}/H5Stest.c ) + SET (H5S_HDRS ${HDF5_SRC_DIR}/H5Spkg.h ${HDF5_SRC_DIR}/H5Spublic.h @@ -516,6 +539,7 @@ SET (H5SM_SRCS ${HDF5_SRC_DIR}/H5SMmessage.c ${HDF5_SRC_DIR}/H5SMtest.c ) + SET (H5SM_HDRS ${HDF5_SRC_DIR}/H5SMpkg.h ) @@ -555,6 +579,7 @@ SET (H5T_SRCS ${HDF5_SRC_DIR}/H5Tvisit.c ${HDF5_SRC_DIR}/H5Tvlen.c ) + SET (H5T_HDRS ${HDF5_SRC_DIR}/H5Tpkg.h ${HDF5_SRC_DIR}/H5Tpublic.h @@ -600,6 +625,8 @@ IF (H5_ZLIB_HEADER) SET_PROPERTY(SOURCE ${HDF5_SRC_DIR}/H5Zdeflate.c PROPERTY COMPILE_DEFINITIONS H5_ZLIB_HEADER="${H5_ZLIB_HEADER}") ENDIF (H5_ZLIB_HEADER) + + SET (H5Z_HDRS ${HDF5_SRC_DIR}/H5Zpkg.h ${HDF5_SRC_DIR}/H5Zpublic.h diff --git a/src/H5AC.c b/src/H5AC.c index 99caf28..ed79813 100644 --- a/src/H5AC.c +++ b/src/H5AC.c @@ -282,11 +282,13 @@ H5AC_init_interface(void) /* Insert 'block before metadata write' property */ block_before_meta_write=1; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") /* Set the transfer mode */ @@ -304,11 +306,13 @@ H5AC_init_interface(void) /* Insert 'block before metadata write' property */ block_before_meta_write=0; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") /* Set the transfer mode */ @@ -326,11 +330,13 @@ H5AC_init_interface(void) /* Insert 'block before metadata write' property */ block_before_meta_write=0; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") /* Set the transfer mode */ diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h index 26fa051..17ce310 100644 --- a/src/H5ACprivate.h +++ b/src/H5ACprivate.h @@ -236,27 +236,27 @@ H5_DLLVAR hid_t H5AC_ind_dxpl_id; /* hbool_t evictions_enabled = */ TRUE, \ /* hbool_t set_initial_size = */ TRUE, \ /* size_t initial_size = */ ( 2 * 1024 * 1024), \ - /* double min_clean_fraction = */ 0.3, \ + /* double min_clean_fraction = */ 0.3f, \ /* size_t max_size = */ (32 * 1024 * 1024), \ /* size_t min_size = */ (1 * 1024 * 1024), \ /* long int epoch_length = */ 50000, \ /* enum H5C_cache_incr_mode incr_mode = */ H5C_incr__threshold, \ - /* double lower_hr_threshold = */ 0.9, \ - /* double increment = */ 2.0, \ + /* double lower_hr_threshold = */ 0.9f, \ + /* double increment = */ 2.0f, \ /* hbool_t apply_max_increment = */ TRUE, \ /* size_t max_increment = */ (4 * 1024 * 1024), \ /* enum H5C_cache_flash_incr_mode */ \ /* flash_incr_mode = */ H5C_flash_incr__add_space, \ - /* double flash_multiple = */ 1.0, \ - /* double flash_threshold = */ 0.25, \ + /* double flash_multiple = */ 1.0f, \ + /* double flash_threshold = */ 0.25f, \ /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__age_out_with_threshold, \ - /* double upper_hr_threshold = */ 0.999, \ - /* double decrement = */ 0.9, \ + /* double upper_hr_threshold = */ 0.999f, \ + /* double decrement = */ 0.9f, \ /* hbool_t apply_max_decrement = */ TRUE, \ /* size_t max_decrement = */ (1 * 1024 * 1024), \ /* int epochs_before_eviction = */ 3, \ /* hbool_t apply_empty_reserve = */ TRUE, \ - /* double empty_reserve = */ 0.1, \ + /* double empty_reserve = */ 0.1f, \ /* int dirty_bytes_threshold = */ (256 * 1024), \ /* int metadata_write_strategy = */ \ H5AC__DEFAULT_METADATA_WRITE_STRATEGY \ @@ -272,27 +272,27 @@ H5_DLLVAR hid_t H5AC_ind_dxpl_id; /* hbool_t evictions_enabled = */ TRUE, \ /* hbool_t set_initial_size = */ TRUE, \ /* size_t initial_size = */ ( 2 * 1024 * 1024), \ - /* double min_clean_fraction = */ 0.01, \ + /* double min_clean_fraction = */ 0.01f, \ /* size_t max_size = */ (32 * 1024 * 1024), \ /* size_t min_size = */ ( 1 * 1024 * 1024), \ /* long int epoch_length = */ 50000, \ /* enum H5C_cache_incr_mode incr_mode = */ H5C_incr__threshold, \ - /* double lower_hr_threshold = */ 0.9, \ - /* double increment = */ 2.0, \ + /* double lower_hr_threshold = */ 0.9f, \ + /* double increment = */ 2.0f, \ /* hbool_t apply_max_increment = */ TRUE, \ /* size_t max_increment = */ (4 * 1024 * 1024), \ /* enum H5C_cache_flash_incr_mode */ \ /* flash_incr_mode = */ H5C_flash_incr__add_space, \ - /* double flash_multiple = */ 1.4, \ - /* double flash_threshold = */ 0.25, \ + /* double flash_multiple = */ 1.4f, \ + /* double flash_threshold = */ 0.25f, \ /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__age_out_with_threshold,\ - /* double upper_hr_threshold = */ 0.999, \ - /* double decrement = */ 0.9, \ + /* double upper_hr_threshold = */ 0.999f, \ + /* double decrement = */ 0.9f, \ /* hbool_t apply_max_decrement = */ TRUE, \ /* size_t max_decrement = */ (1 * 1024 * 1024), \ /* int epochs_before_eviction = */ 3, \ /* hbool_t apply_empty_reserve = */ TRUE, \ - /* double empty_reserve = */ 0.1, \ + /* double empty_reserve = */ 0.1f, \ /* int dirty_bytes_threshold = */ (256 * 1024), \ /* int metadata_write_strategy = */ \ H5AC__DEFAULT_METADATA_WRITE_STRATEGY \ diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index 48c6ddd..af9931f 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -66,7 +66,6 @@ #define H5D_XFER_VFL_ID_NAME "vfl_id" /* File driver ID */ #define H5D_XFER_VFL_INFO_NAME "vfl_info" /* File driver info */ #define H5D_XFER_HYPER_VECTOR_SIZE_NAME "vec_size" /* Hyperslab vector size */ -#ifdef H5_HAVE_PARALLEL #define H5D_XFER_IO_XFER_MODE_NAME "io_xfer_mode" /* I/O transfer mode */ #define H5D_XFER_MPIO_COLLECTIVE_OPT_NAME "mpio_collective_opt" /* Optimization of MPI-IO transfer mode */ #define H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME "mpio_chunk_opt_hard" @@ -76,7 +75,6 @@ #define H5D_MPIO_ACTUAL_IO_MODE_NAME "actual_io_mode" #define H5D_MPIO_LOCAL_NO_COLLECTIVE_CAUSE_NAME "local_no_collective_cause" /* cause of broken collective I/O in each process */ #define H5D_MPIO_GLOBAL_NO_COLLECTIVE_CAUSE_NAME "global_no_collective_cause" /* cause of broken collective I/O in all processes */ -#endif /* H5_HAVE_PARALLEL */ #define H5D_XFER_EDC_NAME "err_detect" /* EDC */ #define H5D_XFER_FILTER_CB_NAME "filter_cb" /* Filter callback function */ #define H5D_XFER_CONV_CB_NAME "type_conv_cb" /* Type conversion callback function */ diff --git a/src/H5Edefin.h b/src/H5Edefin.h index ee284c4..2ae79e5 100644 --- a/src/H5Edefin.h +++ b/src/H5Edefin.h @@ -22,7 +22,7 @@ /* Major error IDs */ hid_t H5E_FUNC_g = FAIL; /* Function entry/exit */ -hid_t H5E_FILE_g = FAIL; /* File accessability */ +hid_t H5E_FILE_g = FAIL; /* File accessibilty */ hid_t H5E_SOHM_g = FAIL; /* Shared Object Header Messages */ hid_t H5E_SYM_g = FAIL; /* Symbol table */ hid_t H5E_VFL_g = FAIL; /* Virtual File Layer */ @@ -131,7 +131,7 @@ hid_t H5E_PATH_g = FAIL; /* Problem with path to object */ /* No error */ hid_t H5E_NONE_MINOR_g = FAIL; /* No error */ -/* File accessability errors */ +/* File accessibilty errors */ hid_t H5E_FILEEXISTS_g = FAIL; /* File already exists */ hid_t H5E_FILEOPEN_g = FAIL; /* File already open */ hid_t H5E_CANTCREATE_g = FAIL; /* Unable to create file */ diff --git a/src/H5Einit.h b/src/H5Einit.h index 6881e48..a2eb02f 100644 --- a/src/H5Einit.h +++ b/src/H5Einit.h @@ -30,7 +30,7 @@ if((msg = H5E_create_msg(cls, H5E_MAJOR, "Function entry/exit"))==NULL) if((H5E_FUNC_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0) HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error message") assert(H5E_FILE_g==(-1)); -if((msg = H5E_create_msg(cls, H5E_MAJOR, "File accessability"))==NULL) +if((msg = H5E_create_msg(cls, H5E_MAJOR, "File accessibilty"))==NULL) HGOTO_ERROR(H5E_ERROR, H5E_CANTINIT, FAIL, "error message initialization failed") if((H5E_FILE_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0) HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error message") @@ -477,7 +477,7 @@ if((msg = H5E_create_msg(cls, H5E_MINOR, "No error"))==NULL) if((H5E_NONE_MINOR_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0) HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error message") -/* File accessability errors */ +/* File accessibilty errors */ assert(H5E_FILEEXISTS_g==(-1)); if((msg = H5E_create_msg(cls, H5E_MINOR, "File already exists"))==NULL) HGOTO_ERROR(H5E_ERROR, H5E_CANTINIT, FAIL, "error message initialization failed") diff --git a/src/H5Eint.c b/src/H5Eint.c index 76eaaf5..88dfdee 100644 --- a/src/H5Eint.c +++ b/src/H5Eint.c @@ -380,6 +380,10 @@ H5E_walk2_cb(unsigned n, const H5E_error2_t *err_desc, void *client_data) * they might be different. */ cls_ptr = (H5E_cls_t *)H5I_object_verify(err_desc->cls_id, H5I_ERROR_CLASS); + /* Check for bad pointer(s), but can't issue error, just leave */ + if(!cls_ptr) + HGOTO_DONE(FAIL) + /* Print error class header if new class */ if(eprint->cls.lib_name == NULL || HDstrcmp(cls_ptr->lib_name, eprint->cls.lib_name)) { /* update to the new class information */ diff --git a/src/H5Epubgen.h b/src/H5Epubgen.h index 967b248..ddfb1d3 100644 --- a/src/H5Epubgen.h +++ b/src/H5Epubgen.h @@ -57,7 +57,7 @@ #define H5E_ERROR (H5OPEN H5E_ERROR_g) #define H5E_CACHE (H5OPEN H5E_CACHE_g) H5_DLLVAR hid_t H5E_FUNC_g; /* Function entry/exit */ -H5_DLLVAR hid_t H5E_FILE_g; /* File accessability */ +H5_DLLVAR hid_t H5E_FILE_g; /* File accessibilty */ H5_DLLVAR hid_t H5E_SOHM_g; /* Shared Object Header Messages */ H5_DLLVAR hid_t H5E_SYM_g; /* Symbol table */ H5_DLLVAR hid_t H5E_VFL_g; /* Virtual File Layer */ @@ -221,7 +221,7 @@ H5_DLLVAR hid_t H5E_PATH_g; /* Problem with path to object */ #define H5E_NONE_MINOR (H5OPEN H5E_NONE_MINOR_g) H5_DLLVAR hid_t H5E_NONE_MINOR_g; /* No error */ -/* File accessability errors */ +/* File accessibilty errors */ #define H5E_FILEEXISTS (H5OPEN H5E_FILEEXISTS_g) #define H5E_FILEOPEN (H5OPEN H5E_FILEOPEN_g) #define H5E_CANTCREATE (H5OPEN H5E_CANTCREATE_g) diff --git a/src/H5Eterm.h b/src/H5Eterm.h index 5edcd34..6c621bc 100644 --- a/src/H5Eterm.h +++ b/src/H5Eterm.h @@ -133,7 +133,7 @@ H5E_PATH_g= /* No error */ H5E_NONE_MINOR_g= -/* File accessability errors */ +/* File accessibilty errors */ H5E_FILEEXISTS_g= H5E_FILEOPEN_g= H5E_CANTCREATE_g= diff --git a/src/H5FDmpiposix.c b/src/H5FDmpiposix.c index 261f427..0d0b839 100644 --- a/src/H5FDmpiposix.c +++ b/src/H5FDmpiposix.c @@ -14,10 +14,10 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Thursday, July 11, 2002 * - * Purpose: This is a "combination" MPI-2 and posix I/O driver. + * Purpose: This is a "combination" MPI-2 and posix I/O driver. * It uses MPI for coordinating the actions of several processes * and posix I/O calls to do the actual I/O to the disk. * @@ -230,7 +230,7 @@ static const H5FD_class_mpi_t H5FD_mpiposix_g = { H5FD_mpiposix_truncate, /* truncate */ NULL, /* lock */ NULL, /* unlock */ - H5FD_FLMAP_SINGLE /* fl_map */ + H5FD_FLMAP_DICHOTOMY /* fl_map */ }, /* End of superclass information */ H5FD_mpiposix_mpi_rank, /* get_rank */ H5FD_mpiposix_mpi_size, /* get_size */ diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 1ef40b0..5f83cd2 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -27,6 +27,7 @@ #include "H5FDpublic.h" /* File drivers */ /* Private headers needed by this file */ +#include "H5Vprivate.h" /* Vectors and arrays */ /****************************/ @@ -114,6 +115,35 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; /* (Assumes that the high bits of the integer are zero) */ # define UINT64ENCODE_VAR(p, n, l) ENCODE_VAR(p, uint64_t, n, l) +/* Encode a 64-bit unsigned integer and its length into a variable-sized buffer */ +/* (Assumes that the high bits of the integer are zero) */ +# define UINT64ENCODE_VARLEN(p, n) { \ + uint64_t __n = (uint64_t)(n); \ + unsigned _s = H5V_limit_enc_size(__n); \ + \ + *(p)++ = (uint8_t)_s; \ + UINT64ENCODE_VAR(p, __n, _s); \ +} + +# define H5_ENCODE_UNSIGNED(p, n) { \ + HDcompile_assert(sizeof(unsigned) == sizeof(uint32_t)); \ + UINT32ENCODE(p, n) \ +} + +/* Assumes the endianness of uint64_t is the same as double */ +# define H5_ENCODE_DOUBLE(p, n) { \ + uint64_t _n; \ + size_t _u; \ + uint8_t *_p = (uint8_t*)(p); \ + \ + HDcompile_assert(sizeof(double) == 8); \ + HDcompile_assert(sizeof(double) == sizeof(uint64_t)); \ + HDmemcpy(&_n, &n, sizeof(double)); \ + for(_u = 0; _u < sizeof(uint64_t); _u++, _n >>= 8) \ + *_p++ = (uint8_t)(_n & 0xff); \ + (p) = (uint8_t *)(p) + 8; \ +} + /* DECODE converts little endian bytes pointed by p to integer values and store * it in i. For signed values, need to do sign-extension when converting * the last byte which carries the sign bit. @@ -134,11 +164,11 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; } # define INT32DECODE(p, i) { \ - (i) = ( *(p) & 0xff); (p)++; \ - (i) |= ((int32_t)(*(p) & 0xff) << 8); (p)++; \ - (i) |= ((int32_t)(*(p) & 0xff) << 16); (p)++; \ - (i) |= ((int32_t)(((*(p) & 0xff) << 24) | \ - ((*(p) & 0x80) ? ~0xffffffff : 0x0))); (p)++; \ + (i) = ((int32_t)(*(p) & (unsigned)0xff)); (p)++; \ + (i) |= ((int32_t)(*(p) & (unsigned)0xff) << 8); (p)++; \ + (i) |= ((int32_t)(*(p) & (unsigned)0xff) << 16); (p)++; \ + (i) |= ((int32_t)(((*(p) & (unsigned)0xff) << 24) | \ + ((*(p) & (unsigned)0x80) ? (unsigned)(~0xffffffff) : (unsigned)0x0))); (p)++; \ } # define UINT32DECODE(p, i) { \ @@ -190,6 +220,34 @@ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; /* (Assumes that the high bits of the integer will be zero) */ # define UINT64DECODE_VAR(p, n, l) DECODE_VAR(p, n, l) +/* Decode a 64-bit unsigned integer and its length from a variable-sized buffer */ +/* (Assumes that the high bits of the integer will be zero) */ +# define UINT64DECODE_VARLEN(p, n) { \ + unsigned _s = *(p)++; \ + \ + UINT64DECODE_VAR(p, n, _s); \ +} + +# define H5_DECODE_UNSIGNED(p, n) { \ + HDcompile_assert(sizeof(unsigned) == sizeof(uint32_t)); \ + UINT32DECODE(p, n) \ +} + +/* Assumes the endianness of uint64_t is the same as double */ +# define H5_DECODE_DOUBLE(p, n) { \ + uint64_t _n; \ + size_t _u; \ + \ + HDcompile_assert(sizeof(double) == 8); \ + HDcompile_assert(sizeof(double) == sizeof(uint64_t)); \ + _n = 0; \ + (p) += 8; \ + for(_u = 0; _u < sizeof(uint64_t); _u++) \ + _n = (_n << 8) | *(--p); \ + HDmemcpy(&(n), &_n, sizeof(double)); \ + (p) += 8; \ +} + /* Address-related macros */ #define H5F_addr_overflow(X,Z) (HADDR_UNDEF==(X) || \ HADDR_UNDEF==(X)+(haddr_t)(Z) || \ @@ -576,7 +634,7 @@ H5_DLL void H5F_addr_decode_len(size_t addr_len, const uint8_t **pp, haddr_t *ad H5_DLL herr_t H5P_facc_close(hid_t dxpl_id, void *close_data); /* Shared file list related routines */ -H5_DLL herr_t H5F_sfile_assert_num(unsigned n); +H5_DLL void H5F_sfile_assert_num(unsigned n); /* Routines for creating & destroying "fake" file structures */ H5_DLL H5F_t *H5F_fake_alloc(uint8_t sizeof_size); diff --git a/src/H5Fsfile.c b/src/H5Fsfile.c index 95e5ad2..a1c6976 100644 --- a/src/H5Fsfile.c +++ b/src/H5Fsfile.c @@ -46,16 +46,14 @@ H5F_sfile_node_t *H5F_sfile_head_g = NULL; * * Purpose: Sanity checking that shared file list is empty * - * Return: SUCCEED/FAIL + * Return: none (void) * * Programmer: Quincey Koziol * Monday, July 25, 2005 * - * Modifications: - * *------------------------------------------------------------------------- */ -herr_t +void H5F_sfile_assert_num(unsigned n) { FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -83,7 +81,7 @@ H5F_sfile_assert_num(unsigned n) HDassert(count == n); } /* end else */ - FUNC_LEAVE_NOAPI(SUCCEED) + FUNC_LEAVE_NOAPI_VOID } /* H5F_sfile_assert_num() */ diff --git a/src/H5P.c b/src/H5P.c index ba286fb..9489e49 100644 --- a/src/H5P.c +++ b/src/H5P.c @@ -462,7 +462,7 @@ H5Pregister2(hid_t cls_id, const char *name, size_t size, void *def_value, /* Create the new property list class */ orig_pclass = pclass; - if((ret_value = H5P_register(&pclass, name, size, def_value, prp_create, prp_set, prp_get, prp_delete, prp_copy, prp_cmp, prp_close)) < 0) + if((ret_value = H5P_register(&pclass, name, size, def_value, prp_create, prp_set, prp_get, NULL, NULL, prp_delete, prp_copy, prp_cmp, prp_close)) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTREGISTER, FAIL, "unable to register property in class") /* Check if the property class changed and needs to be substituted in the ID */ @@ -645,7 +645,8 @@ H5Pinsert2(hid_t plist_id, const char *name, size_t size, void *value, HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "properties >0 size must have default") /* Create the new property list class */ - if((ret_value = H5P_insert(plist, name, size, value, prp_set, prp_get, prp_delete, prp_copy, prp_cmp, prp_close)) < 0) + if((ret_value = H5P_insert(plist, name, size, value, prp_set, prp_get, + NULL, NULL, prp_delete, prp_copy, prp_cmp, prp_close)) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTREGISTER, FAIL, "unable to register property in plist") done: @@ -838,6 +839,89 @@ done: /*-------------------------------------------------------------------------- NAME + H5Pencode + PURPOSE + Routine to convert the property values in a property list into a binary buffer + USAGE + herr_t H5Pencode(plist_id, buf, nalloc) + hid_t plist_id; IN: Identifier to property list to encode + void *buf: OUT: buffer to gold the encoded plist + size_t *nalloc; IN/OUT: size of buffer needed to encode plist + RETURNS + Returns non-negative on success, negative on failure. + DESCRIPTION + Encodes a property list into a binary buffer. If the buffer is NULL, then + the call will set the size needed to encode the plist in nalloc. Otherwise + the routine will encode the plist in buf. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +herr_t +H5Pencode(hid_t plist_id, void *buf, size_t *nalloc) +{ + H5P_genplist_t *plist; /* Property list to query */ + hid_t ret_value = SUCCEED; /* return value */ + + FUNC_ENTER_API(FAIL) + H5TRACE3("e", "i*x*z", plist_id, buf, nalloc); + + /* Check arguments. */ + if(NULL == (plist = (H5P_genplist_t *)H5I_object_verify(plist_id, H5I_GENPROP_LST))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list"); + + /* Call the internal encode routine */ + if((ret_value = H5P__encode(plist, TRUE, buf, nalloc)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "unable to encode property list"); + +done: + FUNC_LEAVE_API(ret_value) +} /* H5Pencode() */ + + +/*-------------------------------------------------------------------------- + NAME + H5Pdecode + PURPOSE + API routine to decode a property list from a binary buffer. + USAGE + hid_t H5Pdecode(buf) + void *buf; IN: buffer that holds the encoded plist + RETURNS + Returns non-negative ID of new property list object on success, negative + on failure. + DESCRIPTION + Decodes a property list from a binary buffer. The contents of the buffer + contain the values for the correponding properties of the plist. The decode + callback of a certain property decodes its value from the buffer and sets it + in the property list. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + Properties in the property list that are not encoded in the serialized + form retain their default value. + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +hid_t +H5Pdecode(const void *buf) +{ + hid_t ret_value = SUCCEED; /* return value */ + + FUNC_ENTER_API(FAIL) + H5TRACE1("i", "*x", buf); + + /* Call the internal decode routine */ + if((ret_value = H5P__decode(buf)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTDECODE, FAIL, "unable to decode property list"); + +done: + FUNC_LEAVE_API(ret_value) +} /* H5Pdecode() */ + + +/*-------------------------------------------------------------------------- + NAME H5Pget_class PURPOSE Routine to query the class of a generic property list @@ -990,8 +1074,13 @@ H5Pequal(hid_t id1, hid_t id2) /* Compare property lists */ if(H5I_GENPROP_LST == H5I_get_type(id1)) { - if(H5P_cmp_plist((const H5P_genplist_t *)obj1, (const H5P_genplist_t *)obj2) == 0) - ret_value = TRUE; + int cmp_ret = 0; + + if(H5P_cmp_plist((const H5P_genplist_t *)obj1, (const H5P_genplist_t *)obj2, &cmp_ret) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTCOMPARE, FAIL, "can't compare property lists") + + /* Set return value */ + ret_value = cmp_ret == 0 ? TRUE : FALSE; } /* end if */ /* Must be property classes */ else { @@ -1062,6 +1151,7 @@ done: void *udata; IN/OUT: Pointer to iteration data from user RETURNS Success: Returns the return value of the last call to ITER_FUNC + Failure: negative value DESCRIPTION This routine calls the actual callback routine for the property in the property list or class. diff --git a/src/H5Pdapl.c b/src/H5Pdapl.c index d21cdbf..5239fba 100644 --- a/src/H5Pdapl.c +++ b/src/H5Pdapl.c @@ -49,13 +49,18 @@ /* Definitions for size of raw data chunk cache(slots) */ #define H5D_ACS_DATA_CACHE_NUM_SLOTS_SIZE sizeof(size_t) #define H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF H5D_CHUNK_CACHE_NSLOTS_DEFAULT +#define H5D_ACS_DATA_CACHE_NUM_SLOTS_ENC H5P__encode_size_t +#define H5D_ACS_DATA_CACHE_NUM_SLOTS_DEC H5P__decode_size_t /* Definition for size of raw data chunk cache(bytes) */ #define H5D_ACS_DATA_CACHE_BYTE_SIZE_SIZE sizeof(size_t) #define H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF H5D_CHUNK_CACHE_NBYTES_DEFAULT +#define H5D_ACS_DATA_CACHE_BYTE_SIZE_ENC H5P__encode_size_t +#define H5D_ACS_DATA_CACHE_BYTE_SIZE_DEC H5P__decode_size_t /* Definition for preemption read chunks first */ #define H5D_ACS_PREEMPT_READ_CHUNKS_SIZE sizeof(double) #define H5D_ACS_PREEMPT_READ_CHUNKS_DEF H5D_CHUNK_CACHE_W0_DEFAULT - +#define H5D_ACS_PREEMPT_READ_CHUNKS_ENC H5P__encode_double +#define H5D_ACS_PREEMPT_READ_CHUNKS_DEC H5P__decode_double /******************/ /* Local Typedefs */ @@ -130,15 +135,18 @@ H5P__dacc_reg_prop(H5P_genclass_t *pclass) FUNC_ENTER_STATIC /* Register the size of raw data chunk cache (elements) */ - if(H5P_register_real(pclass, H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME, H5D_ACS_DATA_CACHE_NUM_SLOTS_SIZE, &rdcc_nslots, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME, H5D_ACS_DATA_CACHE_NUM_SLOTS_SIZE, &rdcc_nslots, + NULL, NULL, NULL, H5D_ACS_DATA_CACHE_NUM_SLOTS_ENC, H5D_ACS_DATA_CACHE_NUM_SLOTS_DEC, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the size of raw data chunk cache(bytes) */ - if(H5P_register_real(pclass, H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME, H5D_ACS_DATA_CACHE_BYTE_SIZE_SIZE, &rdcc_nbytes, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME, H5D_ACS_DATA_CACHE_BYTE_SIZE_SIZE, &rdcc_nbytes, + NULL, NULL, NULL, H5D_ACS_DATA_CACHE_BYTE_SIZE_ENC, H5D_ACS_DATA_CACHE_BYTE_SIZE_DEC, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the preemption for reading chunks */ - if(H5P_register_real(pclass, H5D_ACS_PREEMPT_READ_CHUNKS_NAME, H5D_ACS_PREEMPT_READ_CHUNKS_SIZE, &rdcc_w0, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_ACS_PREEMPT_READ_CHUNKS_NAME, H5D_ACS_PREEMPT_READ_CHUNKS_SIZE, &rdcc_w0, + NULL, NULL, NULL, H5D_ACS_PREEMPT_READ_CHUNKS_ENC, H5D_ACS_PREEMPT_READ_CHUNKS_DEC, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c index 6e7e820..b3090ab 100644 --- a/src/H5Pdcpl.c +++ b/src/H5Pdcpl.c @@ -42,6 +42,7 @@ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ #include "H5Ppkg.h" /* Property lists */ +#include "H5Tprivate.h" /* Datatypes */ #include "H5Zpkg.h" /* Data filters */ @@ -76,18 +77,26 @@ /* Definitions for storage layout property */ #define H5D_CRT_LAYOUT_SIZE sizeof(H5O_layout_t) #define H5D_CRT_LAYOUT_DEF H5D_DEF_LAYOUT_CONTIG +#define H5D_CRT_LAYOUT_ENC H5P__dcrt_layout_enc +#define H5D_CRT_LAYOUT_DEC H5P__dcrt_layout_dec #define H5D_CRT_LAYOUT_CMP H5P__dcrt_layout_cmp /* Definitions for fill value. size=0 means fill value will be 0 as * library default; size=-1 means fill value is undefined. */ #define H5D_CRT_FILL_VALUE_SIZE sizeof(H5O_fill_t) #define H5D_CRT_FILL_VALUE_DEF {{0, NULL, H5O_NULL_ID, {{0, HADDR_UNDEF}}}, H5O_FILL_VERSION_2, NULL, 0, NULL, H5D_ALLOC_TIME_LATE, H5D_FILL_TIME_IFSET, FALSE} +#define H5D_CRT_FILL_VALUE_ENC H5P__fill_value_enc +#define H5D_CRT_FILL_VALUE_DEC H5P__fill_value_dec #define H5D_CRT_FILL_VALUE_CMP H5P_fill_value_cmp /* Definitions for space allocation time state */ #define H5D_CRT_ALLOC_TIME_STATE_SIZE sizeof(unsigned) #define H5D_CRT_ALLOC_TIME_STATE_DEF 1 +#define H5D_CRT_ALLOC_TIME_STATE_ENC H5P__encode_unsigned +#define H5D_CRT_ALLOC_TIME_STATE_DEC H5P__decode_unsigned /* Definitions for external file list */ #define H5D_CRT_EXT_FILE_LIST_SIZE sizeof(H5O_efl_t) #define H5D_CRT_EXT_FILE_LIST_DEF {HADDR_UNDEF, 0, 0, NULL} +#define H5D_CRT_EXT_FILE_LIST_ENC H5P__dcrt_ext_file_list_enc +#define H5D_CRT_EXT_FILE_LIST_DEC H5P__dcrt_ext_file_list_dec #define H5D_CRT_EXT_FILE_LIST_CMP H5P__dcrt_ext_file_list_cmp @@ -117,7 +126,13 @@ static herr_t H5P__dcrt_copy(hid_t new_plist_t, hid_t old_plist_t, void *copy_da static herr_t H5P__dcrt_close(hid_t dxpl_id, void *close_data); /* Property callbacks */ +static herr_t H5P__dcrt_layout_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dcrt_layout_dec(const void **pp, void *value); static int H5P__dcrt_layout_cmp(const void *value1, const void *value2, size_t size); +static herr_t H5P__fill_value_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__fill_value_dec(const void **pp, void *value); +static herr_t H5P__dcrt_ext_file_list_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dcrt_ext_file_list_dec(const void **pp, void *value); static int H5P__dcrt_ext_file_list_cmp(const void *value1, const void *value2, size_t size); @@ -149,6 +164,17 @@ const H5P_libclass_t H5P_CLS_DCRT[1] = {{ /* Declare extern the free list to manage blocks of type conversion data */ H5FL_BLK_EXTERN(type_conv); + +/***************************/ +/* Local Private Variables */ +/***************************/ + +/* Property value defaults */ +static const H5O_layout_t H5D_def_layout_g = H5D_CRT_LAYOUT_DEF; /* Default storage layout */ +static const H5O_fill_t H5D_def_fill_g = H5D_CRT_FILL_VALUE_DEF; /* Default fill value */ +static const unsigned H5D_def_alloc_time_state_g = H5D_CRT_ALLOC_TIME_STATE_DEF; /* Default allocation time state */ +static const H5O_efl_t H5D_def_efl_g = H5D_CRT_EXT_FILE_LIST_DEF; /* Default external file list */ + /* Defaults for each type of layout */ #ifdef H5_HAVE_C99_DESIGNATED_INITIALIZER static const H5O_layout_t H5D_def_layout_compact_g = H5D_DEF_LAYOUT_COMPACT; @@ -177,28 +203,32 @@ static hbool_t H5P_dcrt_def_layout_init_g = FALSE; static herr_t H5P__dcrt_reg_prop(H5P_genclass_t *pclass) { - H5O_layout_t layout = H5D_CRT_LAYOUT_DEF; /* Default storage layout */ - H5O_fill_t fill = H5D_CRT_FILL_VALUE_DEF; /* Default fill value */ - unsigned alloc_time_state = H5D_CRT_ALLOC_TIME_STATE_DEF; /* Default allocation time state */ - H5O_efl_t efl = H5D_CRT_EXT_FILE_LIST_DEF; /* Default external file list */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC /* Register the storage layout property */ - if(H5P_register_real(pclass, H5D_CRT_LAYOUT_NAME, H5D_CRT_LAYOUT_SIZE, &layout, NULL, NULL, NULL, NULL, NULL, H5D_CRT_LAYOUT_CMP, NULL) < 0) + if(H5P_register_real(pclass, H5D_CRT_LAYOUT_NAME, H5D_CRT_LAYOUT_SIZE, &H5D_def_layout_g, + NULL, NULL, NULL, H5D_CRT_LAYOUT_ENC, H5D_CRT_LAYOUT_DEC, + NULL, NULL, H5D_CRT_LAYOUT_CMP, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the fill value property */ - if(H5P_register_real(pclass, H5D_CRT_FILL_VALUE_NAME, H5D_CRT_FILL_VALUE_SIZE, &fill, NULL, NULL, NULL, NULL, NULL, H5D_CRT_FILL_VALUE_CMP, NULL) < 0) + if(H5P_register_real(pclass, H5D_CRT_FILL_VALUE_NAME, H5D_CRT_FILL_VALUE_SIZE, &H5D_def_fill_g, + NULL, NULL, NULL, H5D_CRT_FILL_VALUE_ENC, H5D_CRT_FILL_VALUE_DEC, + NULL, NULL, H5D_CRT_FILL_VALUE_CMP, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the space allocation time state property */ - if(H5P_register_real(pclass, H5D_CRT_ALLOC_TIME_STATE_NAME, H5D_CRT_ALLOC_TIME_STATE_SIZE, &alloc_time_state, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_CRT_ALLOC_TIME_STATE_NAME, H5D_CRT_ALLOC_TIME_STATE_SIZE, &H5D_def_alloc_time_state_g, + NULL, NULL, NULL, H5D_CRT_ALLOC_TIME_STATE_ENC, H5D_CRT_ALLOC_TIME_STATE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the external file list property */ - if(H5P_register_real(pclass, H5D_CRT_EXT_FILE_LIST_NAME, H5D_CRT_EXT_FILE_LIST_SIZE, &efl, NULL, NULL, NULL, NULL, NULL, H5D_CRT_EXT_FILE_LIST_CMP, NULL) < 0) + if(H5P_register_real(pclass, H5D_CRT_EXT_FILE_LIST_NAME, H5D_CRT_EXT_FILE_LIST_SIZE, &H5D_def_efl_g, + NULL, NULL, NULL, H5D_CRT_EXT_FILE_LIST_ENC, H5D_CRT_EXT_FILE_LIST_DEC, + NULL, NULL, H5D_CRT_EXT_FILE_LIST_CMP, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: @@ -369,6 +399,150 @@ done: /*------------------------------------------------------------------------- + * Function: H5P__dcrt_layout_enc + * + * Purpose: Callback routine which is called whenever the layout + * property in the dataset creation property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dcrt_layout_enc(const void *value, void **_pp, size_t *size) +{ + const H5O_layout_t *layout = (const H5O_layout_t *)value; /* Create local aliases for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(layout); + HDassert(size); + + if(NULL != *pp) { + /* Encode layout type */ + *(*pp)++ = (uint8_t)layout->type; + + /* If layout is chunked, encode chunking structure */ + if(H5D_CHUNKED == layout->type) { + unsigned u; /* Local index variable */ + + /* Encode rank */ + *(*pp)++ = (uint8_t)layout->u.chunk.ndims; + + /* Encode chunk dims */ + HDcompile_assert(sizeof(uint32_t) == sizeof(layout->u.chunk.dim[0])); + for(u = 0; u < layout->u.chunk.ndims; u++) + UINT32ENCODE(*pp, layout->u.chunk.dim[u]) + } /* end if */ + } /* end if */ + + /* Size of layout type */ + *size += sizeof(uint8_t); + + /* Size of chunk info encoding */ + if(H5D_CHUNKED == layout->type) { + *size += sizeof(uint8_t); + *size += layout->u.chunk.ndims * sizeof(uint32_t); + } /* end if */ + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dcrt_layout_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dcrt_layout_dec + * + * Purpose: Callback routine which is called whenever the layout + * property in the dataset creation property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dcrt_layout_dec(const void **_pp, void *value) +{ + const H5O_layout_t *layout; /* Storage layout */ + H5O_layout_t chunk_layout; /* Layout structure for chunk info */ + H5D_layout_t type; /* Layout type */ + const uint8_t **pp = (const uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode layout type */ + type = (H5D_layout_t)*(*pp)++; + + /* set default layout in case the type is compact or contiguous, otherwise + * decode the chunked structure and set chunked layout */ + switch(type) { + case H5D_COMPACT: + layout = &H5D_def_layout_compact_g; + break; + + case H5D_CONTIGUOUS: + layout = &H5D_def_layout_contig_g; + break; + + case H5D_CHUNKED: + { + unsigned ndims; /* Number of chunk dimensions */ + + /* Decode the number of chunk dimensions */ + ndims = *(*pp)++; + + /* default chunk layout */ + if(0 == ndims) + layout = &H5D_def_layout_chunk_g; + else { /* chunk layout structure is encoded*/ + unsigned u; /* Local index variable */ + + /* Initialize to default values */ + chunk_layout = H5D_def_layout_chunk_g; + + /* Set rank & dimensions */ + chunk_layout.u.chunk.ndims = (unsigned)ndims; + for(u = 0; u < ndims; u++) + UINT32DECODE(*pp, chunk_layout.u.chunk.dim[u]) + + /* Point at the newly set up struct */ + layout = &chunk_layout; + } /* end else */ + } + break; + + case H5D_LAYOUT_ERROR: + case H5D_NLAYOUTS: + default: + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "bad layout type") + } /* end switch */ + + /* Set the value */ + HDmemcpy(value, layout, sizeof(H5O_layout_t)); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__dcrt_layout_dec() */ + + +/*------------------------------------------------------------------------- * Function: H5P__dcrt_layout_cmp * * Purpose: Callback routine which is called whenever the layout @@ -440,6 +614,168 @@ done: /*------------------------------------------------------------------------- + * Function: H5P__fill_value_enc + * + * Purpose: Callback routine which is called whenever the fill value + * property in the dataset creation property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fill_value_enc(const void *value, void **_pp, size_t *size) +{ + const H5O_fill_t *fill = (const H5O_fill_t *)value; /* Create local aliases for values */ + size_t dt_size = 0; /* Size of encoded datatype */ + herr_t ret_value = SUCCEED; /* Return value */ + uint8_t **pp = (uint8_t **)_pp; + uint64_t enc_value; + unsigned enc_size; + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDcompile_assert(sizeof(ssize_t) <= sizeof(int64_t)); + HDassert(fill); + HDassert(size); + + if(NULL != *pp) { + /* Encode alloc and fill time */ + *(*pp)++ = (uint8_t)fill->alloc_time; + *(*pp)++ = (uint8_t)fill->fill_time; + + /* Encode size of fill value */ + INT64ENCODE(*pp, fill->size) + + /* Encode the fill value & datatype */ + if(fill->size > 0) { + /* Encode the fill value itself */ + HDmemcpy(*pp, (uint8_t *)fill->buf, (size_t)fill->size); + *pp += fill->size; + + /* Encode fill value datatype */ + HDassert(fill->type); + + if(H5T_encode(fill->type, NULL, &dt_size) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTENCODE, FAIL, "can't encode datatype") + + /* Encode the size of a size_t */ + enc_value = (uint64_t)dt_size; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + + /* Encode the size */ + *(*pp)++ = (uint8_t)enc_size; + + /* Encode the size of the encoded datatype */ + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + if(H5T_encode(fill->type, *pp, &dt_size) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTENCODE, FAIL, "can't encode datatype") + *pp += dt_size; + } /* end if */ + } /* end if */ + + /* Calculate size needed for encoding */ + *size += 2; + *size += sizeof(int64_t); + if(fill->size > 0) { + /* The size of the fill value buffer */ + *size += (size_t)fill->size; + + /* calculate those if they were not calculated earlier */ + if(NULL == *pp) { + /* Get the size of the encoded datatype */ + HDassert(fill->type); + if(H5T_encode(fill->type, NULL, &dt_size) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTENCODE, FAIL, "can't encode datatype") + enc_value = (uint64_t)dt_size; + enc_size = H5V_limit_enc_size(enc_value); + } + *size += (1 + enc_size); + *size += dt_size; + } /* end if */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__fill_value_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__fill_value_dec + * + * Purpose: Callback routine which is called whenever the fill value + * property in the dataset creation property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fill_value_dec(const void **_pp, void *_value) +{ + H5O_fill_t *fill = (H5O_fill_t *)_value; /* Fill value */ + const uint8_t **pp = (const uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDcompile_assert(sizeof(ssize_t) <= sizeof(int64_t)); + + /* Set property to default value */ + *fill = H5D_def_fill_g; + + /* Decode alloc and fill time */ + fill->alloc_time = (H5D_alloc_time_t)*(*pp)++; + fill->fill_time = (H5D_fill_time_t)*(*pp)++; + + /* Decode fill size */ + INT64DECODE(*pp, fill->size) + + /* Check if there's a fill value */ + if(fill->size > 0) { + size_t dt_size = 0; + uint64_t enc_value; + unsigned enc_size; + + /* Allocate fill buffer and copy the contents in it */ + if(NULL == (fill->buf = H5MM_malloc((size_t)fill->size))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTALLOC, FAIL, "memory allocation failed for fill value buffer") + HDmemcpy((uint8_t *)fill->buf, *pp, (size_t)fill->size); + *pp += fill->size; + + enc_size = *(*pp)++; + HDassert(enc_size < 256); + + /* Decode the size of encoded datatype */ + UINT64DECODE_VAR(*pp, enc_value, enc_size); + dt_size = (size_t)enc_value; + + /* Decode type */ + if(NULL == (fill->type = H5T_decode(*pp))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTDECODE, FAIL, "can't decode fill value datatype") + *pp += dt_size; + } /* end if */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__fill_value_dec() */ + + +/*------------------------------------------------------------------------- * Function: H5P_fill_value_cmp * * Purpose: Callback routine which is called whenever the fill value @@ -501,6 +837,181 @@ done: /*------------------------------------------------------------------------- + * Function: H5P__dcrt_ext_file_list_enc + * + * Purpose: Callback routine which is called whenever the efl + * property in the dataset creation property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dcrt_ext_file_list_enc(const void *value, void **_pp, size_t *size) +{ + const H5O_efl_t *efl = (const H5O_efl_t *)value; /* Create local aliases for values */ + size_t len = 0; /* String length of slot name */ + size_t u; /* Local index variable */ + uint8_t **pp = (uint8_t **)_pp; + unsigned enc_size; + uint64_t enc_value; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(efl); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDcompile_assert(sizeof(off_t) <= sizeof(uint64_t)); + HDcompile_assert(sizeof(hsize_t) <= sizeof(uint64_t)); + HDassert(size); + + if(NULL != *pp) { + /* Encode number of slots used */ + enc_value = (uint64_t)efl->nused; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* Encode file list */ + for(u = 0; u < efl->nused; u++) { + /* Calculate length of slot name and encode it */ + len = HDstrlen(efl->slot[u].name) + 1; + enc_value = (uint64_t)len; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* Encode name */ + HDmemcpy(*pp, (uint8_t *)(efl->slot[u].name), len); + *pp += len; + + /* Encode offset */ + enc_value = (uint64_t)efl->slot[u].offset; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* encode size */ + enc_value = (uint64_t)efl->slot[u].size; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + } /* end for */ + } /* end if */ + + /* Calculate size needed for encoding */ + *size += (1 + H5V_limit_enc_size((uint64_t)efl->nused)); + for(u = 0; u < efl->nused; u++) { + len = HDstrlen(efl->slot[u].name) + 1; + *size += (1 + H5V_limit_enc_size((uint64_t)len)); + *size += len; + *size += (1 + H5V_limit_enc_size((uint64_t)efl->slot[u].offset)); + *size += (1 + H5V_limit_enc_size((uint64_t)efl->slot[u].size)); + } /* end for */ + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dcrt_ext_file_list_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dcrt_ext_file_list_dec + * + * Purpose: Callback routine which is called whenever the efl + * property in the dataset creation property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dcrt_ext_file_list_dec(const void **_pp, void *_value) +{ + H5O_efl_t *efl = (H5O_efl_t *)_value; /* External file list */ + const uint8_t **pp = (const uint8_t **)_pp; + size_t u, nused; + unsigned enc_size; + uint64_t enc_value; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDassert(pp); + HDassert(*pp); + HDassert(efl); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDcompile_assert(sizeof(off_t) <= sizeof(uint64_t)); + HDcompile_assert(sizeof(hsize_t) <= sizeof(uint64_t)); + + /* Set property to default value */ + *efl = H5D_def_efl_g; + + /* Decode number of slots used */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + nused = (size_t)enc_value; + + /* Decode information for each slot */ + for(u = 0; u < nused; u++) { + size_t len; + if(efl->nused >= efl->nalloc) { + size_t na = efl->nalloc + H5O_EFL_ALLOC; + H5O_efl_entry_t *x = (H5O_efl_entry_t *)H5MM_realloc(efl->slot, + na * sizeof(H5O_efl_entry_t)); + if(!x) + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL, "memory allocation failed") + + efl->nalloc = na; + efl->slot = x; + } /* end if */ + + /* Decode length of slot name */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + len = (size_t)enc_value; + + /* Allocate name buffer and decode the name into it */ + efl->slot[u].name = H5MM_xstrdup((const char *)(*pp)); + *pp += len; + + /* decode offset */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + efl->slot[u].offset = (off_t)enc_value; + + /* decode size */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + efl->slot[u].size = (hsize_t)enc_value; + + efl->slot[u].name_offset = 0; /*not entered into heap yet*/ + efl->nused++; + } /* end for */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__dcrt_ext_file_list_dec() */ + + +/*------------------------------------------------------------------------- * Function: H5P__dcrt_ext_file_list_cmp * * Purpose: Callback routine which is called whenever the external file @@ -1399,7 +1910,7 @@ done: * Function: H5Pset_fill_value * * Purpose: Set the fill value for a dataset creation property list. The - * VALUE is interpretted as being of type TYPE, which need not + * VALUE is interpreted as being of type TYPE, which need not * be the same type as the dataset but the library must be able * to convert VALUE to the dataset type when the dataset is * created. If VALUE is NULL, it will be interpreted as @@ -1410,13 +1921,6 @@ done: * Programmer: Robb Matzke * Thursday, October 1, 1998 * - * Modifications: - * - * Raymond Lu - * Tuesday, October 2, 2001 - * Changed the way to check parameter and set property for - * generic property list. - * *------------------------------------------------------------------------- */ herr_t diff --git a/src/H5Pdeprec.c b/src/H5Pdeprec.c index 8d1d75f..cb5e10f 100644 --- a/src/H5Pdeprec.c +++ b/src/H5Pdeprec.c @@ -267,7 +267,7 @@ H5Pregister1(hid_t cls_id, const char *name, size_t size, void *def_value, /* Create the new property list class */ orig_pclass = pclass; - if((ret_value = H5P_register(&pclass, name, size, def_value, prp_create, prp_set, prp_get, prp_delete, prp_copy, NULL, prp_close)) < 0) + if((ret_value = H5P_register(&pclass, name, size, def_value, prp_create, prp_set, prp_get, NULL, NULL, prp_delete, prp_copy, NULL, prp_close)) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTREGISTER, FAIL, "unable to register property in class"); /* Check if the property class changed and needs to be substituted in the ID */ @@ -450,7 +450,8 @@ H5Pinsert1(hid_t plist_id, const char *name, size_t size, void *value, HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "properties >0 size must have default") /* Create the new property list class */ - if((ret_value = H5P_insert(plist, name, size, value, prp_set, prp_get, prp_delete, prp_copy, NULL, prp_close)) < 0) + if((ret_value = H5P_insert(plist, name, size, value, prp_set, prp_get, + NULL, NULL, prp_delete, prp_copy, NULL, prp_close)) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTREGISTER, FAIL, "unable to register property in plist") done: diff --git a/src/H5Pdxpl.c b/src/H5Pdxpl.c index 2596d35..04ff54a 100644 --- a/src/H5Pdxpl.c +++ b/src/H5Pdxpl.c @@ -38,6 +38,7 @@ #include "H5Dprivate.h" /* Datasets */ #include "H5Eprivate.h" /* Error handling */ #include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ #include "H5Ppkg.h" /* Property lists */ @@ -49,6 +50,8 @@ /* Definitions for maximum temp buffer size property */ #define H5D_XFER_MAX_TEMP_BUF_SIZE sizeof(size_t) #define H5D_XFER_MAX_TEMP_BUF_DEF H5D_TEMP_BUF_SIZE +#define H5D_XFER_MAX_TEMP_BUF_ENC H5P__encode_size_t +#define H5D_XFER_MAX_TEMP_BUF_DEC H5P__decode_size_t /* Definitions for type conversion buffer property */ #define H5D_XFER_TCONV_BUF_SIZE sizeof(void *) #define H5D_XFER_TCONV_BUF_DEF NULL @@ -58,12 +61,16 @@ /* Definitions for background buffer type property */ #define H5D_XFER_BKGR_BUF_TYPE_SIZE sizeof(H5T_bkg_t) #define H5D_XFER_BKGR_BUF_TYPE_DEF H5T_BKG_NO +#define H5D_XFER_BKGR_BUF_TYPE_ENC H5P__dxfr_bkgr_buf_type_enc +#define H5D_XFER_BKGR_BUF_TYPE_DEC H5P__dxfr_bkgr_buf_type_dec /* Definitions for B-tree node splitting ratio property */ /* (These default B-tree node splitting ratios are also used for splitting * group's B-trees as well as chunked dataset's B-trees - QAK) */ #define H5D_XFER_BTREE_SPLIT_RATIO_SIZE sizeof(double[3]) -#define H5D_XFER_BTREE_SPLIT_RATIO_DEF {0.1, 0.5, 0.9} +#define H5D_XFER_BTREE_SPLIT_RATIO_DEF {0.1f, 0.5f, 0.9f} +#define H5D_XFER_BTREE_SPLIT_RATIO_ENC H5P__dxfr_btree_split_ratio_enc +#define H5D_XFER_BTREE_SPLIT_RATIO_DEC H5P__dxfr_btree_split_ratio_dec /* Definitions for vlen allocation function property */ #define H5D_XFER_VLEN_ALLOC_SIZE sizeof(H5MM_allocate_t) #define H5D_XFER_VLEN_ALLOC_DEF H5D_VLEN_ALLOC @@ -82,20 +89,37 @@ */ #define H5D_XFER_HYPER_VECTOR_SIZE_SIZE sizeof(size_t) #define H5D_XFER_HYPER_VECTOR_SIZE_DEF H5D_IO_VECTOR_SIZE +#define H5D_XFER_HYPER_VECTOR_SIZE_ENC H5P__encode_size_t +#define H5D_XFER_HYPER_VECTOR_SIZE_DEC H5P__decode_size_t + +/* Parallel I/O properties */ +/* Note: Some of these are registered with the DXPL class even when parallel + * is disabled, so that property list comparisons of encoded property + * lists (between parallel & non-parallel builds) work properly. -QAK + */ -#ifdef H5_HAVE_PARALLEL /* Definitions for I/O transfer mode property */ #define H5D_XFER_IO_XFER_MODE_SIZE sizeof(H5FD_mpio_xfer_t) #define H5D_XFER_IO_XFER_MODE_DEF H5FD_MPIO_INDEPENDENT +#define H5D_XFER_IO_XFER_MODE_ENC H5P__dxfr_io_xfer_mode_enc +#define H5D_XFER_IO_XFER_MODE_DEC H5P__dxfr_io_xfer_mode_dec /* Definitions for optimization of MPI-IO transfer mode property */ #define H5D_XFER_MPIO_COLLECTIVE_OPT_SIZE sizeof(H5FD_mpio_collective_opt_t) #define H5D_XFER_MPIO_COLLECTIVE_OPT_DEF H5FD_MPIO_COLLECTIVE_IO +#define H5D_XFER_MPIO_COLLECTIVE_OPT_ENC H5P__dxfr_mpio_collective_opt_enc +#define H5D_XFER_MPIO_COLLECTIVE_OPT_DEC H5P__dxfr_mpio_collective_opt_dec #define H5D_XFER_MPIO_CHUNK_OPT_HARD_SIZE sizeof(H5FD_mpio_chunk_opt_t) #define H5D_XFER_MPIO_CHUNK_OPT_HARD_DEF H5FD_MPIO_CHUNK_DEFAULT +#define H5D_XFER_MPIO_CHUNK_OPT_HARD_ENC H5P__dxfr_mpio_chunk_opt_hard_enc +#define H5D_XFER_MPIO_CHUNK_OPT_HARD_DEC H5P__dxfr_mpio_chunk_opt_hard_dec #define H5D_XFER_MPIO_CHUNK_OPT_NUM_SIZE sizeof(unsigned) #define H5D_XFER_MPIO_CHUNK_OPT_NUM_DEF H5D_ONE_LINK_CHUNK_IO_THRESHOLD +#define H5D_XFER_MPIO_CHUNK_OPT_NUM_ENC H5P__encode_unsigned +#define H5D_XFER_MPIO_CHUNK_OPT_NUM_DEC H5P__decode_unsigned #define H5D_XFER_MPIO_CHUNK_OPT_RATIO_SIZE sizeof(unsigned) #define H5D_XFER_MPIO_CHUNK_OPT_RATIO_DEF H5D_MULTI_CHUNK_IO_COL_THRESHOLD +#define H5D_XFER_MPIO_CHUNK_OPT_RATIO_ENC H5P__encode_unsigned +#define H5D_XFER_MPIO_CHUNK_OPT_RATIO_DEC H5P__decode_unsigned /* Definitions for chunk opt mode property. */ #define H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_SIZE sizeof(H5D_mpio_actual_chunk_opt_mode_t) #define H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_DEF H5D_MPIO_NO_CHUNK_OPTIMIZATION @@ -103,8 +127,9 @@ #define H5D_MPIO_ACTUAL_IO_MODE_SIZE sizeof(H5D_mpio_actual_io_mode_t) #define H5D_MPIO_ACTUAL_IO_MODE_DEF H5D_MPIO_NO_COLLECTIVE /* Definitions for cause of broken collective io property */ -#define H5D_MPIO_NO_COLLECTIVE_CAUSE_SIZE sizeof(H5D_mpio_no_collective_cause_t) +#define H5D_MPIO_NO_COLLECTIVE_CAUSE_SIZE sizeof(uint32_t) #define H5D_MPIO_NO_COLLECTIVE_CAUSE_DEF H5D_MPIO_COLLECTIVE +#ifdef H5_HAVE_PARALLEL /* Definitions for memory MPI type property */ #define H5FD_MPI_XFER_MEM_MPI_TYPE_SIZE sizeof(MPI_Datatype) #define H5FD_MPI_XFER_MEM_MPI_TYPE_DEF MPI_DATATYPE_NULL @@ -116,6 +141,8 @@ /* Definitions for EDC property */ #define H5D_XFER_EDC_SIZE sizeof(H5Z_EDC_t) #define H5D_XFER_EDC_DEF H5Z_ENABLE_EDC +#define H5D_XFER_EDC_ENC H5P__dxfr_edc_enc +#define H5D_XFER_EDC_DEC H5P__dxfr_edc_dec /* Definitions for filter callback function property */ #define H5D_XFER_FILTER_CB_SIZE sizeof(H5Z_cb_t) #define H5D_XFER_FILTER_CB_DEF {NULL,NULL} @@ -125,6 +152,8 @@ /* Definitions for data transform property */ #define H5D_XFER_XFORM_SIZE sizeof(void *) #define H5D_XFER_XFORM_DEF NULL +#define H5D_XFER_XFORM_ENC H5P__dxfr_xform_enc +#define H5D_XFER_XFORM_DEC H5P__dxfr_xform_dec #define H5D_XFER_XFORM_DEL H5P__dxfr_xform_del #define H5D_XFER_XFORM_COPY H5P__dxfr_xform_copy #define H5D_XFER_XFORM_CMP H5P__dxfr_xform_cmp @@ -148,6 +177,20 @@ static herr_t H5P__dxfr_reg_prop(H5P_genclass_t *pclass); /* Property list callbacks */ +static herr_t H5P__dxfr_bkgr_buf_type_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_bkgr_buf_type_dec(const void **pp, void *value); +static herr_t H5P__dxfr_btree_split_ratio_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_btree_split_ratio_dec(const void **pp, void *value); +static herr_t H5P__dxfr_io_xfer_mode_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_io_xfer_mode_dec(const void **pp, void *value); +static herr_t H5P__dxfr_mpio_collective_opt_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_mpio_collective_opt_dec(const void **pp, void *value); +static herr_t H5P__dxfr_mpio_chunk_opt_hard_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_mpio_chunk_opt_hard_dec(const void **pp, void *value); +static herr_t H5P__dxfr_edc_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_edc_dec(const void **pp, void *value); +static herr_t H5P__dxfr_xform_enc(const void *value, void **pp, size_t *size); +static herr_t H5P__dxfr_xform_dec(const void **pp, void *value); static herr_t H5P__dxfr_xform_del(hid_t prop_id, const char* name, size_t size, void* value); static herr_t H5P__dxfr_xform_copy(const char* name, size_t size, void* value); static int H5P__dxfr_xform_cmp(const void *value1, const void *value2, size_t size); @@ -180,6 +223,40 @@ const H5P_libclass_t H5P_CLS_DXFR[1] = {{ /*****************************/ +/***************************/ +/* Local Private Variables */ +/***************************/ + +/* Property value defaults */ +static const size_t H5D_def_max_temp_buf_g = H5D_XFER_MAX_TEMP_BUF_DEF; /* Default value for maximum temp buffer size */ +static const void *H5D_def_tconv_buf_g = H5D_XFER_TCONV_BUF_DEF; /* Default value for type conversion buffer */ +static const void *H5D_def_bkgr_buf_g = H5D_XFER_BKGR_BUF_DEF; /* Default value for background buffer */ +static const H5T_bkg_t H5D_def_bkgr_buf_type_g = H5D_XFER_BKGR_BUF_TYPE_DEF; +static const double H5D_def_btree_split_ratio_g[3] = H5D_XFER_BTREE_SPLIT_RATIO_DEF; /* Default value for B-tree node split ratios */ +static const H5MM_allocate_t H5D_def_vlen_alloc_g = H5D_XFER_VLEN_ALLOC_DEF; /* Default value for vlen allocation function */ +static const void *H5D_def_vlen_alloc_info_g = H5D_XFER_VLEN_ALLOC_INFO_DEF; /* Default value for vlen allocation information */ +static const H5MM_free_t H5D_def_vlen_free_g = H5D_XFER_VLEN_FREE_DEF; /* Default value for vlen free function */ +static const void *H5D_def_vlen_free_info_g = H5D_XFER_VLEN_FREE_INFO_DEF; /* Default value for vlen free information */ +static const size_t H5D_def_hyp_vec_size_g = H5D_XFER_HYPER_VECTOR_SIZE_DEF; /* Default value for vector size */ +static const haddr_t H5D_def_metadata_tag_g = H5AC_METADATA_TAG_DEF; /* Default value for metadata tag */ +static const H5FD_mpio_xfer_t H5D_def_io_xfer_mode_g = H5D_XFER_IO_XFER_MODE_DEF; /* Default value for I/O transfer mode */ +static const H5FD_mpio_chunk_opt_t H5D_def_mpio_chunk_opt_mode_g = H5D_XFER_MPIO_CHUNK_OPT_HARD_DEF; +static const H5FD_mpio_collective_opt_t H5D_def_mpio_collective_opt_mode_g = H5D_XFER_MPIO_COLLECTIVE_OPT_DEF; +static const unsigned H5D_def_mpio_chunk_opt_num_g = H5D_XFER_MPIO_CHUNK_OPT_NUM_DEF; +static const unsigned H5D_def_mpio_chunk_opt_ratio_g = H5D_XFER_MPIO_CHUNK_OPT_RATIO_DEF; +static const H5D_mpio_actual_chunk_opt_mode_t H5D_def_mpio_actual_chunk_opt_mode_g = H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_DEF; +static const H5D_mpio_actual_io_mode_t H5D_def_mpio_actual_io_mode_g = H5D_MPIO_ACTUAL_IO_MODE_DEF; +static const H5D_mpio_no_collective_cause_t H5D_def_mpio_no_collective_cause_g = H5D_MPIO_NO_COLLECTIVE_CAUSE_DEF; +#ifdef H5_HAVE_PARALLEL +static const MPI_Datatype H5D_def_btype_g = H5FD_MPI_XFER_MEM_MPI_TYPE_DEF; /* Default value for MPI buffer type */ +static const MPI_Datatype H5D_def_ftype_g = H5FD_MPI_XFER_FILE_MPI_TYPE_DEF; /* Default value for MPI file type */ +#endif /* H5_HAVE_PARALLEL */ +static const H5Z_EDC_t H5D_def_enable_edc_g = H5D_XFER_EDC_DEF; /* Default value for EDC property */ +static const H5Z_cb_t H5D_def_filter_cb_g = H5D_XFER_FILTER_CB_DEF; /* Default value for filter callback */ +static const H5T_conv_cb_t H5D_def_conv_cb_g = H5D_XFER_CONV_CB_DEF; /* Default value for datatype conversion callback */ +static const void *H5D_def_xfer_xform_g = H5D_XFER_XFORM_DEF; /* Default value for data transform */ + + /*------------------------------------------------------------------------- * Function: H5P__dxfr_reg_prop @@ -195,135 +272,158 @@ const H5P_libclass_t H5P_CLS_DXFR[1] = {{ static herr_t H5P__dxfr_reg_prop(H5P_genclass_t *pclass) { - size_t def_max_temp_buf = H5D_XFER_MAX_TEMP_BUF_DEF; /* Default value for maximum temp buffer size */ - void *def_tconv_buf = H5D_XFER_TCONV_BUF_DEF; /* Default value for type conversion buffer */ - void *def_bkgr_buf = H5D_XFER_BKGR_BUF_DEF; /* Default value for background buffer */ - H5T_bkg_t def_bkgr_buf_type = H5D_XFER_BKGR_BUF_TYPE_DEF; - double def_btree_split_ratio[3] = H5D_XFER_BTREE_SPLIT_RATIO_DEF; /* Default value for B-tree node split ratios */ - H5MM_allocate_t def_vlen_alloc = H5D_XFER_VLEN_ALLOC_DEF; /* Default value for vlen allocation function */ - void *def_vlen_alloc_info = H5D_XFER_VLEN_ALLOC_INFO_DEF; /* Default value for vlen allocation information */ - H5MM_free_t def_vlen_free = H5D_XFER_VLEN_FREE_DEF; /* Default value for vlen free function */ - void *def_vlen_free_info = H5D_XFER_VLEN_FREE_INFO_DEF; /* Default value for vlen free information */ - size_t def_hyp_vec_size = H5D_XFER_HYPER_VECTOR_SIZE_DEF; /* Default value for vector size */ - haddr_t metadata_tag = H5AC_METADATA_TAG_DEF; /* Default value for metadata tag */ -#ifdef H5_HAVE_PARALLEL - H5FD_mpio_xfer_t def_io_xfer_mode = H5D_XFER_IO_XFER_MODE_DEF; /* Default value for I/O transfer mode */ - H5FD_mpio_chunk_opt_t def_mpio_chunk_opt_mode = H5D_XFER_MPIO_CHUNK_OPT_HARD_DEF; - H5FD_mpio_collective_opt_t def_mpio_collective_opt_mode = H5D_XFER_MPIO_COLLECTIVE_OPT_DEF; - unsigned def_mpio_chunk_opt_num = H5D_XFER_MPIO_CHUNK_OPT_NUM_DEF; - unsigned def_mpio_chunk_opt_ratio = H5D_XFER_MPIO_CHUNK_OPT_RATIO_DEF; - H5D_mpio_actual_chunk_opt_mode_t def_mpio_actual_chunk_opt_mode = H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_DEF; - H5D_mpio_actual_io_mode_t def_mpio_actual_io_mode = H5D_MPIO_ACTUAL_IO_MODE_DEF; - H5D_mpio_no_collective_cause_t def_mpio_no_collective_cause = H5D_MPIO_NO_COLLECTIVE_CAUSE_DEF; - MPI_Datatype btype = H5FD_MPI_XFER_MEM_MPI_TYPE_DEF; /* Default value for MPI buffer type */ - MPI_Datatype ftype = H5FD_MPI_XFER_FILE_MPI_TYPE_DEF; /* Default value for MPI file type */ -#endif /* H5_HAVE_PARALLEL */ - H5Z_EDC_t enable_edc = H5D_XFER_EDC_DEF; /* Default value for EDC property */ - H5Z_cb_t filter_cb = H5D_XFER_FILTER_CB_DEF; /* Default value for filter callback */ - H5T_conv_cb_t conv_cb = H5D_XFER_CONV_CB_DEF; /* Default value for datatype conversion callback */ - void *def_xfer_xform = H5D_XFER_XFORM_DEF; /* Default value for data transform */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC /* Register the max. temp buffer size property */ - if(H5P_register_real(pclass, H5D_XFER_MAX_TEMP_BUF_NAME, H5D_XFER_MAX_TEMP_BUF_SIZE, &def_max_temp_buf, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_MAX_TEMP_BUF_NAME, H5D_XFER_MAX_TEMP_BUF_SIZE, &H5D_def_max_temp_buf_g, + NULL, NULL, NULL, H5D_XFER_MAX_TEMP_BUF_ENC, H5D_XFER_MAX_TEMP_BUF_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the metadata tag property */ - if(H5P_register_real(pclass, H5AC_METADATA_TAG_NAME, H5AC_METADATA_TAG_SIZE, &metadata_tag, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5AC_METADATA_TAG_NAME, H5AC_METADATA_TAG_SIZE, &H5D_def_metadata_tag_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the type conversion buffer property */ - if(H5P_register_real(pclass, H5D_XFER_TCONV_BUF_NAME, H5D_XFER_TCONV_BUF_SIZE, &def_tconv_buf, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_TCONV_BUF_NAME, H5D_XFER_TCONV_BUF_SIZE, &H5D_def_tconv_buf_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the background buffer property */ - if(H5P_register_real(pclass, H5D_XFER_BKGR_BUF_NAME, H5D_XFER_BKGR_BUF_SIZE, &def_bkgr_buf, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_BKGR_BUF_NAME, H5D_XFER_BKGR_BUF_SIZE, &H5D_def_bkgr_buf_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the background buffer type property */ - if(H5P_register_real(pclass, H5D_XFER_BKGR_BUF_TYPE_NAME, H5D_XFER_BKGR_BUF_TYPE_SIZE, &def_bkgr_buf_type, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_BKGR_BUF_TYPE_NAME, H5D_XFER_BKGR_BUF_TYPE_SIZE, &H5D_def_bkgr_buf_type_g, + NULL, NULL, NULL, H5D_XFER_BKGR_BUF_TYPE_ENC, H5D_XFER_BKGR_BUF_TYPE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the B-Tree node splitting ratios property */ - if(H5P_register_real(pclass, H5D_XFER_BTREE_SPLIT_RATIO_NAME, H5D_XFER_BTREE_SPLIT_RATIO_SIZE, def_btree_split_ratio, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_BTREE_SPLIT_RATIO_NAME, H5D_XFER_BTREE_SPLIT_RATIO_SIZE, H5D_def_btree_split_ratio_g, + NULL, NULL, NULL, H5D_XFER_BTREE_SPLIT_RATIO_ENC, H5D_XFER_BTREE_SPLIT_RATIO_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the vlen allocation function property */ - if(H5P_register_real(pclass, H5D_XFER_VLEN_ALLOC_NAME, H5D_XFER_VLEN_ALLOC_SIZE, &def_vlen_alloc, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_VLEN_ALLOC_NAME, H5D_XFER_VLEN_ALLOC_SIZE, &H5D_def_vlen_alloc_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the vlen allocation information property */ - if(H5P_register_real(pclass, H5D_XFER_VLEN_ALLOC_INFO_NAME, H5D_XFER_VLEN_ALLOC_INFO_SIZE, &def_vlen_alloc_info, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_VLEN_ALLOC_INFO_NAME, H5D_XFER_VLEN_ALLOC_INFO_SIZE, &H5D_def_vlen_alloc_info_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the vlen free function property */ - if(H5P_register_real(pclass, H5D_XFER_VLEN_FREE_NAME, H5D_XFER_VLEN_FREE_SIZE, &def_vlen_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_VLEN_FREE_NAME, H5D_XFER_VLEN_FREE_SIZE, &H5D_def_vlen_free_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the vlen free information property */ - if(H5P_register_real(pclass, H5D_XFER_VLEN_FREE_INFO_NAME, H5D_XFER_VLEN_FREE_INFO_SIZE, &def_vlen_free_info, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_VLEN_FREE_INFO_NAME, H5D_XFER_VLEN_FREE_INFO_SIZE, &H5D_def_vlen_free_info_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the vector size property */ - if(H5P_register_real(pclass, H5D_XFER_HYPER_VECTOR_SIZE_NAME, H5D_XFER_HYPER_VECTOR_SIZE_SIZE, &def_hyp_vec_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_HYPER_VECTOR_SIZE_NAME, H5D_XFER_HYPER_VECTOR_SIZE_SIZE, &H5D_def_hyp_vec_size_g, + NULL, NULL, NULL, H5D_XFER_HYPER_VECTOR_SIZE_ENC, H5D_XFER_HYPER_VECTOR_SIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") -#ifdef H5_HAVE_PARALLEL /* Register the I/O transfer mode properties */ - if(H5P_register_real(pclass, H5D_XFER_IO_XFER_MODE_NAME, H5D_XFER_IO_XFER_MODE_SIZE, &def_io_xfer_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_IO_XFER_MODE_NAME, H5D_XFER_IO_XFER_MODE_SIZE, &H5D_def_io_xfer_mode_g, + NULL, NULL, NULL, H5D_XFER_IO_XFER_MODE_ENC, H5D_XFER_IO_XFER_MODE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, H5D_XFER_MPIO_COLLECTIVE_OPT_SIZE, &def_mpio_collective_opt_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, H5D_XFER_MPIO_COLLECTIVE_OPT_SIZE, &H5D_def_mpio_collective_opt_mode_g, + NULL, NULL, NULL, H5D_XFER_MPIO_COLLECTIVE_OPT_ENC, H5D_XFER_MPIO_COLLECTIVE_OPT_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass, H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME, H5D_XFER_MPIO_CHUNK_OPT_HARD_SIZE, &def_mpio_chunk_opt_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME, H5D_XFER_MPIO_CHUNK_OPT_HARD_SIZE, &H5D_def_mpio_chunk_opt_mode_g, + NULL, NULL, NULL, H5D_XFER_MPIO_CHUNK_OPT_HARD_ENC, H5D_XFER_MPIO_CHUNK_OPT_HARD_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass, H5D_XFER_MPIO_CHUNK_OPT_NUM_NAME, H5D_XFER_MPIO_CHUNK_OPT_NUM_SIZE, &def_mpio_chunk_opt_num, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_MPIO_CHUNK_OPT_NUM_NAME, H5D_XFER_MPIO_CHUNK_OPT_NUM_SIZE, &H5D_def_mpio_chunk_opt_num_g, + NULL, NULL, NULL, H5D_XFER_MPIO_CHUNK_OPT_NUM_ENC, H5D_XFER_MPIO_CHUNK_OPT_NUM_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass, H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME, H5D_XFER_MPIO_CHUNK_OPT_RATIO_SIZE, &def_mpio_chunk_opt_ratio, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME, H5D_XFER_MPIO_CHUNK_OPT_RATIO_SIZE, &H5D_def_mpio_chunk_opt_ratio_g, + NULL, NULL, NULL, H5D_XFER_MPIO_CHUNK_OPT_RATIO_ENC, H5D_XFER_MPIO_CHUNK_OPT_RATIO_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the chunk optimization mode property. */ - if(H5P_register_real(pclass, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_SIZE, &def_mpio_actual_chunk_opt_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_SIZE, &H5D_def_mpio_actual_chunk_opt_mode_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the actual I/O mode property. */ - if(H5P_register_real(pclass, H5D_MPIO_ACTUAL_IO_MODE_NAME, H5D_MPIO_ACTUAL_IO_MODE_SIZE, &def_mpio_actual_io_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_MPIO_ACTUAL_IO_MODE_NAME, H5D_MPIO_ACTUAL_IO_MODE_SIZE, &H5D_def_mpio_actual_io_mode_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the local cause of broken collective I/O */ - if(H5P_register_real(pclass, H5D_MPIO_LOCAL_NO_COLLECTIVE_CAUSE_NAME, H5D_MPIO_NO_COLLECTIVE_CAUSE_SIZE, &def_mpio_actual_io_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_MPIO_LOCAL_NO_COLLECTIVE_CAUSE_NAME, H5D_MPIO_NO_COLLECTIVE_CAUSE_SIZE, &H5D_def_mpio_no_collective_cause_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the global cause of broken collective I/O */ - if(H5P_register_real(pclass, H5D_MPIO_GLOBAL_NO_COLLECTIVE_CAUSE_NAME, H5D_MPIO_NO_COLLECTIVE_CAUSE_SIZE, &def_mpio_actual_io_mode, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_MPIO_GLOBAL_NO_COLLECTIVE_CAUSE_NAME, H5D_MPIO_NO_COLLECTIVE_CAUSE_SIZE, &H5D_def_mpio_no_collective_cause_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") +#ifdef H5_HAVE_PARALLEL /* Register the MPI memory type property */ - if(H5P_register_real(pclass, H5FD_MPI_XFER_MEM_MPI_TYPE_NAME, H5FD_MPI_XFER_MEM_MPI_TYPE_SIZE, - &btype, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5FD_MPI_XFER_MEM_MPI_TYPE_NAME, H5FD_MPI_XFER_MEM_MPI_TYPE_SIZE, &H5D_def_btype_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the MPI file type property */ - if(H5P_register_real(pclass, H5FD_MPI_XFER_FILE_MPI_TYPE_NAME, H5FD_MPI_XFER_FILE_MPI_TYPE_SIZE, - &ftype, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5FD_MPI_XFER_FILE_MPI_TYPE_NAME, H5FD_MPI_XFER_FILE_MPI_TYPE_SIZE, &H5D_def_ftype_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") #endif /* H5_HAVE_PARALLEL */ /* Register the EDC property */ - if(H5P_register_real(pclass, H5D_XFER_EDC_NAME, H5D_XFER_EDC_SIZE, &enable_edc, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5D_XFER_EDC_NAME, H5D_XFER_EDC_SIZE, &H5D_def_enable_edc_g, + NULL, NULL, NULL, H5D_XFER_EDC_ENC, H5D_XFER_EDC_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the filter callback property */ - if(H5P_register_real(pclass, H5D_XFER_FILTER_CB_NAME, H5D_XFER_FILTER_CB_SIZE, &filter_cb, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_FILTER_CB_NAME, H5D_XFER_FILTER_CB_SIZE, &H5D_def_filter_cb_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the type conversion callback property */ - if(H5P_register_real(pclass, H5D_XFER_CONV_CB_NAME, H5D_XFER_CONV_CB_SIZE, &conv_cb, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5D_XFER_CONV_CB_NAME, H5D_XFER_CONV_CB_SIZE, &H5D_def_conv_cb_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the data transform property */ - if(H5P_register_real(pclass, H5D_XFER_XFORM_NAME, H5D_XFER_XFORM_SIZE, &def_xfer_xform, NULL, NULL, NULL, H5D_XFER_XFORM_DEL, H5D_XFER_XFORM_COPY, H5D_XFER_XFORM_CMP, H5D_XFER_XFORM_CLOSE) < 0) + if(H5P_register_real(pclass, H5D_XFER_XFORM_NAME, H5D_XFER_XFORM_SIZE, &H5D_def_xfer_xform_g, + NULL, NULL, NULL, H5D_XFER_XFORM_ENC, H5D_XFER_XFORM_DEC, + H5D_XFER_XFORM_DEL, H5D_XFER_XFORM_COPY, H5D_XFER_XFORM_CMP, H5D_XFER_XFORM_CLOSE) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: @@ -331,10 +431,300 @@ done: } /* end H5P__dxfr_reg_prop() */ +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_bkgr_buf_type_enc + * + * Purpose: Callback routine which is called whenever the background + * buffer type property in the dataset transfer property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_bkgr_buf_type_enc(const void *value, void **_pp, size_t *size) +{ + const H5T_bkg_t *bkgr_buf_type = (const H5T_bkg_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(bkgr_buf_type); + HDassert(size); + + if(NULL != *pp) + /* Encode background buffer type */ + *(*pp)++ = (uint8_t)*bkgr_buf_type; + + /* Size of background buffer type */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_bkgr_buf_type_enc() */ /*------------------------------------------------------------------------- - * Function: H5P_dxfr_xform_del + * Function: H5P__dxfr_bkgr_buf_type_dec + * + * Purpose: Callback routine which is called whenever the background + * buffer type property in the dataset transfer property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_bkgr_buf_type_dec(const void **_pp, void *_value) +{ + H5T_bkg_t *bkgr_buf_type = (H5T_bkg_t *)_value; /* Background buffer type */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(bkgr_buf_type); + + /* Decode background buffer type */ + *bkgr_buf_type = (H5T_bkg_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_bkgr_buf_type_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_btree_split_ratio_enc + * + * Purpose: Callback routine which is called whenever the B-tree split + * ratio property in the dataset transfer property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_btree_split_ratio_enc(const void *value, void **_pp, size_t *size) +{ + const double *btree_split_ratio = (const double *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(btree_split_ratio); + HDassert(size); + + if(NULL != *pp) { + /* Encode the size of a double*/ + *(*pp)++ = (uint8_t)sizeof(double); + + /* Encode the left split value */ + H5_ENCODE_DOUBLE(*pp, *(const double *)btree_split_ratio) + btree_split_ratio++; + + /* Encode the middle split value */ + H5_ENCODE_DOUBLE(*pp, *(const double *)btree_split_ratio) + btree_split_ratio++; + + /* Encode the right split value */ + H5_ENCODE_DOUBLE(*pp, *(const double *)btree_split_ratio) + } /* end if */ + + /* Size of B-tree split ratio values */ + *size += 1 + (3 * sizeof(double)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_btree_split_ratio_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_btree_split_ratio_dec + * + * Purpose: Callback routine which is called whenever the B-tree split + * ratio property in the dataset transfer property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_btree_split_ratio_dec(const void **_pp, void *_value) +{ + double *btree_split_ratio = (double *)_value; /* B-tree split ratio */ + unsigned enc_size; /* Size of encoded property */ + const uint8_t **pp = (const uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(btree_split_ratio); + + /* Decode the size */ + enc_size = *(*pp)++; + if(enc_size != sizeof(double)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "double value can't be decoded") + + /* Decode the left, middle & left B-tree split ratios */ + H5_DECODE_DOUBLE(*pp, btree_split_ratio[0]) + H5_DECODE_DOUBLE(*pp, btree_split_ratio[1]) + H5_DECODE_DOUBLE(*pp, btree_split_ratio[2]) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__dxfr_btree_split_ratio_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_xform_enc + * + * Purpose: Callback routine which is called whenever the data transform + * property in the dataset transfer property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Monday, August 6, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_xform_enc(const void *value, void **_pp, size_t *size) +{ + const H5Z_data_xform_t *data_xform_prop = *(const H5Z_data_xform_t * const *)value; /* Create local alias for values */ + const char *pexp = NULL; /* Pointer to transform expression */ + size_t len = 0; /* Length of transform expression */ + uint8_t **pp = (uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDassert(size); + + /* Check for data transform set */ + if(NULL != data_xform_prop) { + /* Get the transform expression */ + if(NULL == (pexp = H5Z_xform_extract_xform_str(data_xform_prop))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "failed to retrieve transform expression") + + /* Get the transform string expression size */ + len = HDstrlen(pexp) + 1; + } /* end if */ + + if(NULL != *pp) { + uint64_t enc_value; + unsigned enc_size; + + /* encode the length of the prefix */ + enc_value = (uint64_t)len; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + if(NULL != data_xform_prop) { + /* Sanity check */ + HDassert(pexp); + + /* Copy the expression into the buffer */ + HDmemcpy(*pp, (const uint8_t *)pexp, len); + *pp += len; + *pp[0] = '\0'; + } /* end if */ + } /* end if */ + + /* Size of encoded data transform */ + *size += (1 + H5V_limit_enc_size((uint64_t)len)); + if(NULL != pexp) + *size += len; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__dxfr_xform_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_xform_dec + * + * Purpose: Callback routine which is called whenever the data transform + * property in the dataset transfer property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Monday, August 6, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_xform_dec(const void **_pp, void *_value) +{ + H5Z_data_xform_t **data_xform_prop = (H5Z_data_xform_t **)_value; /* New data xform property */ + size_t len; /* Length of encoded string */ + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; + uint64_t enc_value; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(data_xform_prop); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + /* Decode the length of xform expression */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + len = (size_t)enc_value; + + if(0 != len) { + if(NULL == (*data_xform_prop = H5Z_xform_create((const char *)*pp))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTCREATE, FAIL, "unable to create data transform info") + *pp += len; + } /* end if */ + else + *data_xform_prop = H5D_XFER_XFORM_DEF; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__dxfr_xform_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_xform_del * * Purpose: Frees memory allocated by H5P_dxfr_xform_set * @@ -1301,6 +1691,225 @@ done: FUNC_LEAVE_API(ret_value) } /* end H5Pget_hyper_vector_size() */ + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_io_xfer_mode_enc + * + * Purpose: Callback routine which is called whenever the I/O transfer + * mode property in the dataset transfer property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_io_xfer_mode_enc(const void *value, void **_pp, size_t *size) +{ + const H5FD_mpio_xfer_t *xfer_mode = (const H5FD_mpio_xfer_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(xfer_mode); + HDassert(size); + + if(NULL != *pp) + /* Encode I/O transfer mode */ + *(*pp)++ = (uint8_t)*xfer_mode; + + /* Size of I/O transfer mode */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_io_xfer_mode_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_io_xfer_mode_dec + * + * Purpose: Callback routine which is called whenever the I/O transfer + * mode property in the dataset transfer property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_io_xfer_mode_dec(const void **_pp, void *_value) +{ + H5FD_mpio_xfer_t *xfer_mode = (H5FD_mpio_xfer_t *)_value; /* I/O transfer mode */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(xfer_mode); + + /* Decode I/O transfer mode */ + *xfer_mode = (H5FD_mpio_xfer_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_io_xfer_mode_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_mpio_collective_opt_enc + * + * Purpose: Callback routine which is called whenever the MPI-I/O + * collective optimization property in the dataset transfer + * property list is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_mpio_collective_opt_enc(const void *value, void **_pp, size_t *size) +{ + const H5FD_mpio_collective_opt_t *coll_opt = (const H5FD_mpio_collective_opt_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(coll_opt); + HDassert(size); + + if(NULL != *pp) + /* Encode MPI-I/O collective optimization property */ + *(*pp)++ = (uint8_t)*coll_opt; + + /* Size of MPI-I/O collective optimization property */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_mpio_collective_opt_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_mpio_collective_opt_dec + * + * Purpose: Callback routine which is called whenever the MPI-I/O + * collective optimization property in the dataset transfer + * property list is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_mpio_collective_opt_dec(const void **_pp, void *_value) +{ + H5FD_mpio_collective_opt_t *coll_opt = (H5FD_mpio_collective_opt_t *)_value; /* MPI-I/O collective optimization mode */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(coll_opt); + + /* Decode MPI-I/O collective optimization mode */ + *coll_opt = (H5FD_mpio_collective_opt_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_mpio_collective_opt_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_mpio_chunk_opt_hard_enc + * + * Purpose: Callback routine which is called whenever the MPI-I/O + * chunk optimization property in the dataset transfer + * property list is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_mpio_chunk_opt_hard_enc(const void *value, void **_pp, size_t *size) +{ + const H5FD_mpio_chunk_opt_t *chunk_opt = (const H5FD_mpio_chunk_opt_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(chunk_opt); + HDassert(size); + + if(NULL != *pp) + /* Encode MPI-I/O chunk optimization property */ + *(*pp)++ = (uint8_t)*chunk_opt; + + /* Size of MPI-I/O chunk optimization property */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_mpio_chunk_opt_hard_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_mpio_chunk_opt_hard_enc + * + * Purpose: Callback routine which is called whenever the MPI-I/O + * chunk collective optimization property in the dataset transfer + * property list is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_mpio_chunk_opt_hard_dec(const void **_pp, void *_value) +{ + H5FD_mpio_chunk_opt_t *chunk_opt = (H5FD_mpio_chunk_opt_t *)_value; /* MPI-I/O chunk optimization mode */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(chunk_opt); + + /* Decode MPI-I/O chunk optimization mode */ + *chunk_opt = (H5FD_mpio_chunk_opt_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_mpio_chunk_opt_hard_dec() */ + #ifdef H5_HAVE_PARALLEL /*------------------------------------------------------------------------- @@ -1385,13 +1994,13 @@ done: *------------------------------------------------------------------------- */ herr_t -H5Pget_mpio_no_collective_cause(hid_t plist_id, H5D_mpio_no_collective_cause_t *local_no_collective_cause, H5D_mpio_no_collective_cause_t *global_no_collective_cause) +H5Pget_mpio_no_collective_cause(hid_t plist_id, uint32_t *local_no_collective_cause, uint32_t *global_no_collective_cause) { H5P_genplist_t *plist; herr_t ret_value = SUCCEED; /* return value */ FUNC_ENTER_API(FAIL) - H5TRACE3("e", "i*Dn*Dn", plist_id, local_no_collective_cause, + H5TRACE3("e", "i*Iu*Iu", plist_id, local_no_collective_cause, global_no_collective_cause); /* Get the plist structure */ @@ -1413,3 +2022,76 @@ done: #endif /* H5_HAVE_PARALLEL */ + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_edc_enc + * + * Purpose: Callback routine which is called whenever the error detect + * property in the dataset transfer property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_edc_enc(const void *value, void **_pp, size_t *size) +{ + const H5Z_EDC_t *check = (const H5Z_EDC_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(check); + HDassert(size); + + if(NULL != *pp) + /* Encode EDC property */ + *(*pp)++ = (uint8_t)*check; + + /* Size of EDC property */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_edc_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__dxfr_edc_dec + * + * Purpose: Callback routine which is called whenever the error detect + * property in the dataset transfer property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 3, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__dxfr_edc_dec(const void **_pp, void *_value) +{ + H5Z_EDC_t *check = (H5Z_EDC_t *)_value; /* EDC property */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(check); + + /* Decode EDC property */ + *check = (H5Z_EDC_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__dxfr_edc_dec() */ + diff --git a/src/H5Pencdec.c b/src/H5Pencdec.c new file mode 100644 index 0000000..ff148b0 --- /dev/null +++ b/src/H5Pencdec.c @@ -0,0 +1,813 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Quincey Koziol + * + * Purpose: Generic Property Functions + */ + +/****************/ +/* Module Setup */ +/****************/ + +#define H5P_PACKAGE /*suppress error about including H5Ppkg */ + +/* Interface initialization */ +#define H5_INTERFACE_INIT_FUNC H5P_init_encdec_interface + + +/***********/ +/* Headers */ +/***********/ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Ppkg.h" /* Property lists */ + + +/****************/ +/* Local Macros */ +/****************/ + +/* Version # of encoded property lists */ +#define H5P_ENCODE_VERS 0 + + +/******************/ +/* Local Typedefs */ +/******************/ + +/* Typedef for iterator when encoding a property list */ +typedef struct { + hbool_t encode; /* Whether the property list should be encoded */ + size_t *enc_size_ptr; /* Pointer to size of encoded buffer */ + void **pp; /* Pointer to encoding buffer pointer */ +} H5P_enc_iter_ud_t; + + +/********************/ +/* Local Prototypes */ +/********************/ + + +/*********************/ +/* Package Variables */ +/*********************/ + + +/*****************************/ +/* Library Private Variables */ +/*****************************/ + + +/*******************/ +/* Local Variables */ +/*******************/ + + + +/*-------------------------------------------------------------------------- +NAME + H5P_init_encdec_interface -- Initialize interface-specific information +USAGE + herr_t H5P_init_encdec_interface() +RETURNS + Non-negative on success/Negative on failure +DESCRIPTION + Initializes any interface-specific data or routines. (Just calls + H5P_init() currently). + +--------------------------------------------------------------------------*/ +static herr_t +H5P_init_encdec_interface(void) +{ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + FUNC_LEAVE_NOAPI(H5P_init()) +} /* H5P_init_encdec_interface() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__encode_size_t + * + * Purpose: Generic encoding callback routine for 'size_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Sunday, July 29, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__encode_size_t(const void *value, void **_pp, size_t *size) +{ + uint64_t enc_value = (uint64_t)*(const size_t *)value; /* Property value to encode */ + uint8_t **pp = (uint8_t **)_pp; + unsigned enc_size = H5V_limit_enc_size(enc_value); /* Size of encoded property */ + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDassert(enc_size < 256); + HDassert(size); + + if(NULL != *pp) { + /* Encode the size */ + *(*pp)++ = (uint8_t)enc_size; + + /* Encode the value */ + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + } /* end if */ + + /* Set size needed for encoding */ + *size += (1 + enc_size); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__encode_size_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__encode_hsize_t + * + * Purpose: Generic encoding callback routine for 'hsize_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 07, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__encode_hsize_t(const void *value, void **_pp, size_t *size) +{ + uint64_t enc_value = (uint64_t)*(const hsize_t *)value; /* Property value to encode */ + unsigned enc_size = H5V_limit_enc_size(enc_value); /* Size of encoded property */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDcompile_assert(sizeof(hsize_t) <= sizeof(uint64_t)); + HDassert(enc_size < 256); + HDassert(size); + + if(NULL != *pp) { + *(*pp)++ = (uint8_t)enc_size; + + /* Encode the value */ + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + } /* end if */ + + /* Set size needed for encoding */ + *size += (1 + enc_size); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__encode_hsize_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__encode_unsigned + * + * Purpose: Generic encoding callback routine for 'unsigned' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Sunday, July 29, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__encode_unsigned(const void *value, void **_pp, size_t *size) +{ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDassert(value); + HDassert(size); + + if(NULL != *pp) { + /* Encode the size */ + *(*pp)++ = (uint8_t)sizeof(unsigned); + + /* Encode the value */ + H5_ENCODE_UNSIGNED(*pp, *(const unsigned *)value) + } /* end if */ + + /* Set size needed for encoding */ + *size += (1 + sizeof(unsigned)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__encode_unsigned() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__encode_uint8_t + * + * Purpose: Generic encoding callback routine for 'uint8_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 07, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__encode_uint8_t(const void *value, void **_pp, size_t *size) +{ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDassert(value); + HDassert(size); + + if(NULL != *pp) { + /* Encode the value */ + *(*pp)++ = *(const uint8_t *)value; + } /* end if */ + + /* Set size needed for encoding */ + *size += 1; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__encode_uint8_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__encode_hbool_t + * + * Purpose: Generic encoding callback routine for 'hbool_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * August 15, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__encode_hbool_t(const void *value, void **_pp, size_t *size) +{ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDassert(value); + HDassert(size); + + if(NULL != *pp) + /* Encode the value */ + *(*pp)++ = (uint8_t)*(const hbool_t *)value; + + /* Set size needed for encoding */ + *size += 1; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__encode_hbool_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__encode_double + * + * Purpose: Generic encoding callback routine for 'double' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Sunday, July 29, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__encode_double(const void *value, void **_pp, size_t *size) +{ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDassert(value); + HDassert(size); + + if(NULL != *pp) { + /* Encode the size */ + *(*pp)++ = (uint8_t)sizeof(double); + + /* Encode the value */ + H5_ENCODE_DOUBLE(*pp, *(const double *)value) + } /* end if */ + + /* Set size needed for encoding */ + *size += (1 + sizeof(double)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__encode_double() */ + + +/*-------------------------------------------------------------------------- + NAME + H5P__encode_cb + PURPOSE + Internal callback routine when iterating over properties while encoding + a property list. + USAGE + int H5P__encode_cb(item, key, udata) + H5P_genprop_t *prop; IN: Pointer to the property + void *udata; IN/OUT: Pointer to iteration data from user + RETURNS + Success: H5_ITER_CONT + Fail: H5_ITER_ERROR + DESCRIPTION + This routine encodes a property in a property list + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +static int +H5P__encode_cb(H5P_genprop_t *prop, void *_udata) +{ + H5P_enc_iter_ud_t *udata = (H5P_enc_iter_ud_t *)_udata; /* Pointer to user data */ + int ret_value = H5_ITER_CONT; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDassert(prop); + HDassert(udata); + + /* Check if this property can be encoded */ + if(prop->encode) { + size_t prop_name_len; /* Length of property's name */ + size_t prop_value_len; /* Encoded size of property's value */ + + /* Encode (or not, if the 'encode' flag is off) the property's name */ + prop_name_len = HDstrlen(prop->name) + 1; + if(udata->encode) { + HDstrncpy((char *)*(udata->pp), prop->name, prop_name_len); + *(uint8_t **)(udata->pp) += prop_name_len; + } /* end if */ + *(udata->enc_size_ptr) += prop_name_len; + + /* Encode (or not, if *(udata->pp) is NULL) the property value */ + prop_value_len = 0; + if((prop->encode)(prop->value, udata->pp, &prop_value_len) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, H5_ITER_ERROR, "property encoding routine failed") + *(udata->enc_size_ptr) += prop_value_len; + } /* end if */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__encode_cb() */ + + +/*------------------------------------------------------------------------- + NAME + H5P__encode + PURPOSE + Internal routine to encode a property list into a binary buffer. + USAGE + herr_t H5P__encode(plist, enc_all_prop, buf, nalloc) + const H5P_genplist_t *plist; IN: Property list to encode + hbool_t enc_all_prop; IN: Whether to encode all properties (TRUE), + or just non-default (i.e. changed) properties (FALSE). + uint8_t *buf; OUT: buffer to hold the encoded plist + size_t *nalloc; IN/OUT: size of buffer needed to encode plist + RETURNS + Returns non-negative on success, negative on failure. + DESCRIPTION + Encodes a property list into a binary buffer. If the buffer is NULL, then + the call will set the size needed to encode the plist in nalloc. Otherwise + the routine will encode the plist in buf. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +herr_t +H5P__encode(const H5P_genplist_t *plist, hbool_t enc_all_prop, void *buf, + size_t *nalloc) +{ + H5P_enc_iter_ud_t udata; /* User data for property iteration callback */ + uint8_t *p = (uint8_t *)buf; /* Temporary pointer to encoding buffer */ + int idx; /* Index of property to start at */ + size_t encode_size = 0; /* Size of buffer needed to encode properties */ + hbool_t encode = TRUE; /* Whether the property list should be encoded */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_PACKAGE + + /* Sanity check */ + if(NULL == nalloc) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "bad allocation size pointer") + + /* If the buffer is NULL, then this call to H5P__encode will return how much + * space is needed to encode a property. + */ + if(NULL == p) + encode = FALSE; + + /* Encode property list description info */ + if(encode) { + /* Version # of property list encoding */ + *p++ = (uint8_t)H5P_ENCODE_VERS; + + /* Type of property list */ + *p++ = (uint8_t)plist->pclass->type; + } /* end if */ + encode_size += 2; + + /* Initialize user data for iteration callback */ + udata.encode = encode; + udata.enc_size_ptr = &encode_size; + udata.pp = (void **)&p; + + /* Iterate over all properties in property list, encoding them */ + idx = 0; + if(H5P_iterate_plist(plist, enc_all_prop, &idx, H5P__encode_cb, &udata) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_BADITER, FAIL, "can't iterate over properties") + + /* Encode a terminator for list of properties */ + if(encode) + *p++ = 0; + encode_size++; + + /* Set the size of the buffer needed/used to encode the property list */ + *nalloc = encode_size; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__encode() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__decode_size_t + * + * Purpose: Generic decoding callback routine for 'size_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Thursday, August 2, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__decode_size_t(const void **_pp, void *_value) +{ + size_t *value = (size_t *)_value; /* Property value to return */ + const uint8_t **pp = (const uint8_t **)_pp; + uint64_t enc_value; /* Decoded property value */ + unsigned enc_size; /* Size of encoded property */ + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity check */ + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode the size */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + + /* Decode the value */ + UINT64DECODE_VAR(*pp, enc_value, enc_size); + H5_ASSIGN_OVERFLOW(*value, enc_value, uint64_t, size_t); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__decode_size_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__decode_hsize_t + * + * Purpose: Generic decoding callback routine for 'hsize_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 07, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__decode_hsize_t(const void **_pp, void *_value) +{ + hsize_t *value = (hsize_t *)_value; /* Property value to return */ + const uint8_t **pp = (const uint8_t **)_pp; + uint64_t enc_value; /* Decoded property value */ + unsigned enc_size; /* Size of encoded property */ + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity check */ + HDcompile_assert(sizeof(hsize_t) <= sizeof(uint64_t)); + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode the size */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + + /* Decode the value */ + UINT64DECODE_VAR(*pp, enc_value, enc_size); + H5_ASSIGN_OVERFLOW(*value, enc_value, uint64_t, hsize_t); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__decode_hsize_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__decode_unsigned + * + * Purpose: Generic decoding callback routine for 'unsigned' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Thursday, August 2, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__decode_unsigned(const void **_pp, void *_value) +{ + unsigned *value = (unsigned *)_value; /* Property value to return */ + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; /* Size of encoded property */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_PACKAGE + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode the size */ + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + + H5_DECODE_UNSIGNED(*pp, *value) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__decode_unsigned() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__decode_uint8_t + * + * Purpose: Generic decoding callback routine for 'uint8_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Thursday, August 2, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__decode_uint8_t(const void **_pp, void *_value) +{ + uint8_t *value = (uint8_t *)_value; /* Property value to return */ + const uint8_t **pp = (const uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode the value */ + *value = *(*pp)++; + + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__decode_uint8_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__decode_hbool_t + * + * Purpose: Generic decoding callback routine for 'hbool_t' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__decode_hbool_t(const void **_pp, void *_value) +{ + hbool_t *value = (hbool_t *)_value; /* Property value to return */ + const uint8_t **pp = (const uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_PACKAGE_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode the value */ + *value = (hbool_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__decode_hbool_t() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__decode_double + * + * Purpose: Generic decoding callback routine for 'double' properties. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Thursday, August 2, 2012 + * + *------------------------------------------------------------------------- + */ +herr_t +H5P__decode_double(const void **_pp, void *_value) +{ + double *value = (double *)_value; /* Property value to return */ + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; /* Size of encoded property */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_PACKAGE + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(value); + + /* Decode the size */ + enc_size = *(*pp)++; + if(enc_size != sizeof(double)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "double value can't be decoded") + + H5_DECODE_DOUBLE(*pp, *value) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__decode_double() */ + + +/*------------------------------------------------------------------------- + NAME + H5P__decode + PURPOSE + Internal routine to decode a property list from a binary buffer. + USAGE + H5P_genplist_t *H5P__decode(buf) + const void *buf; IN: buffer that holds the encoded plist + RETURNS + Returns non-negative ID of new property list object on success, negative + on failure. + DESCRIPTION + Decodes a property list from a binary buffer. The contents of the buffer + contain the values for the correponding properties of the plist. The decode + callback of a certain property decodes its value from the buffer and sets it + in the property list. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + Properties in the property list that are not encoded in the serialized + form retain their default value. + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +hid_t +H5P__decode(const void *buf) +{ + H5P_genplist_t *plist; /* Property list to decode into */ + void *value_buf = NULL; /* Pointer to buffer to use when decoding values */ + const uint8_t *p = (const uint8_t *)buf; /* Current pointer into buffer */ + H5P_plist_type_t type; /* Type of encoded property list */ + hid_t plist_id = -1; /* ID of new property list */ + size_t value_buf_size = 0; /* Size of current value buffer */ + uint8_t vers; /* Version of encoded property list */ + hid_t ret_value; /* Return value */ + + FUNC_ENTER_PACKAGE + + /* Sanity check */ + if(NULL == p) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "decode buffer is NULL") + + /* Get the version number of the encoded property list */ + vers = (uint8_t)*p++; + if((uint8_t)H5P_ENCODE_VERS != vers) + HGOTO_ERROR(H5E_PLIST, H5E_VERSION, FAIL, "bad version # of encoded information, expected %u, got %u", (unsigned)H5P_ENCODE_VERS, (unsigned)vers) + + /* Get the type of the property list */ + type = (H5P_plist_type_t)*p++; + if(type <= H5P_TYPE_USER || type > H5P_TYPE_LINK_ACCESS) + HGOTO_ERROR(H5E_PLIST, H5E_BADRANGE, FAIL, "bad type of encoded information: %u", (unsigned)type) + + /* Create new property list of the specified type */ + if((plist_id = H5P__new_plist_of_type(type)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_VERSION, FAIL, "can't create property list of type: %u\n", (unsigned)type); + + /* Get the property list object */ + if(NULL == (plist = (H5P_genplist_t *)H5I_object(plist_id))) + HGOTO_ERROR(H5E_PLIST, H5E_BADTYPE, FAIL, "not a property class") + + /* Loop over encoded properties, deserializing their values */ + while(p) { + H5P_genprop_t *prop; /* Pointer to property with same name */ + const char *name; /* Pointer to property list name */ + + /* Check for end of serialized list of properties */ + if(0 == *p) + break; + + /* Get property list name */ + name = (const char *)p; + p += HDstrlen(name) + 1; + + /* Find property with name */ + if(NULL == (prop = H5P__find_prop_plist(plist, name))) + HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, FAIL, "property doesn't exist: '%s'", name) + + /* Check if we should increase the size of the value buffer */ + if(prop->size > value_buf_size) { + if(NULL == (value_buf = H5MM_realloc(value_buf, prop->size))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTALLOC, FAIL, "decoding buffer allocation failed") + value_buf_size = prop->size; + } /* end if */ + + /* Decode serialized value */ + if(prop->decode) { + if((prop->decode)((const void **)&p, value_buf) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTDECODE, FAIL, "property decoding routine failed, property: '%s'", name) + } /* end if */ + else + HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, FAIL, "no decode callback for property: '%s', name") + + /* Set the value for the property */ + if(H5P_set(plist, name, value_buf) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "unable to set value for property: '%s'", name) + } /* end while */ + + /* Set return value */ + ret_value = plist_id; + +done: + /* Release resources */ + if(value_buf) + value_buf = H5MM_xfree(value_buf); + + /* Cleanup on error */ + if(ret_value < 0) { + if(plist_id > 0 && H5I_dec_ref(plist_id) < 0) + HDONE_ERROR(H5E_PLIST, H5E_CANTCLOSEOBJ, FAIL, "unable to close partially initialized property list") + } /* end if */ + + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__decode() */ + diff --git a/src/H5Pfapl.c b/src/H5Pfapl.c index 9707357..4faed4f 100644 --- a/src/H5Pfapl.c +++ b/src/H5Pfapl.c @@ -59,36 +59,57 @@ /* Definitions for the initial metadata cache resize configuration */ #define H5F_ACS_META_CACHE_INIT_CONFIG_SIZE sizeof(H5AC_cache_config_t) #define H5F_ACS_META_CACHE_INIT_CONFIG_DEF H5AC__DEFAULT_CACHE_CONFIG +#define H5F_ACS_META_CACHE_INIT_CONFIG_ENC H5P__facc_cache_config_enc +#define H5F_ACS_META_CACHE_INIT_CONFIG_DEC H5P__facc_cache_config_dec +#define H5F_ACS_META_CACHE_INIT_CONFIG_CMP H5P__facc_cache_config_cmp /* Definitions for size of raw data chunk cache(slots) */ #define H5F_ACS_DATA_CACHE_NUM_SLOTS_SIZE sizeof(size_t) #define H5F_ACS_DATA_CACHE_NUM_SLOTS_DEF 521 +#define H5F_ACS_DATA_CACHE_NUM_SLOTS_ENC H5P__encode_size_t +#define H5F_ACS_DATA_CACHE_NUM_SLOTS_DEC H5P__decode_size_t /* Definition for size of raw data chunk cache(bytes) */ #define H5F_ACS_DATA_CACHE_BYTE_SIZE_SIZE sizeof(size_t) #define H5F_ACS_DATA_CACHE_BYTE_SIZE_DEF (1024*1024) +#define H5F_ACS_DATA_CACHE_BYTE_SIZE_ENC H5P__encode_size_t +#define H5F_ACS_DATA_CACHE_BYTE_SIZE_DEC H5P__decode_size_t /* Definition for preemption read chunks first */ #define H5F_ACS_PREEMPT_READ_CHUNKS_SIZE sizeof(double) -#define H5F_ACS_PREEMPT_READ_CHUNKS_DEF 0.75 +#define H5F_ACS_PREEMPT_READ_CHUNKS_DEF 0.75f +#define H5F_ACS_PREEMPT_READ_CHUNKS_ENC H5P__encode_double +#define H5F_ACS_PREEMPT_READ_CHUNKS_DEC H5P__decode_double /* Definition for threshold for alignment */ #define H5F_ACS_ALIGN_THRHD_SIZE sizeof(hsize_t) #define H5F_ACS_ALIGN_THRHD_DEF 1 +#define H5F_ACS_ALIGN_THRHD_ENC H5P__encode_hsize_t +#define H5F_ACS_ALIGN_THRHD_DEC H5P__decode_hsize_t /* Definition for alignment */ #define H5F_ACS_ALIGN_SIZE sizeof(hsize_t) #define H5F_ACS_ALIGN_DEF 1 +#define H5F_ACS_ALIGN_ENC H5P__encode_hsize_t +#define H5F_ACS_ALIGN_DEC H5P__decode_hsize_t /* Definition for minimum metadata allocation block size (when aggregating metadata allocations. */ #define H5F_ACS_META_BLOCK_SIZE_SIZE sizeof(hsize_t) #define H5F_ACS_META_BLOCK_SIZE_DEF 2048 +#define H5F_ACS_META_BLOCK_SIZE_ENC H5P__encode_hsize_t +#define H5F_ACS_META_BLOCK_SIZE_DEC H5P__decode_hsize_t /* Definition for maximum sieve buffer size (when data sieving is allowed by file driver */ #define H5F_ACS_SIEVE_BUF_SIZE_SIZE sizeof(size_t) #define H5F_ACS_SIEVE_BUF_SIZE_DEF (64*1024) +#define H5F_ACS_SIEVE_BUF_SIZE_ENC H5P__encode_size_t +#define H5F_ACS_SIEVE_BUF_SIZE_DEC H5P__decode_size_t /* Definition for minimum "small data" allocation block size (when aggregating "small" raw data allocations. */ #define H5F_ACS_SDATA_BLOCK_SIZE_SIZE sizeof(hsize_t) #define H5F_ACS_SDATA_BLOCK_SIZE_DEF 2048 +#define H5F_ACS_SDATA_BLOCK_SIZE_ENC H5P__encode_hsize_t +#define H5F_ACS_SDATA_BLOCK_SIZE_DEC H5P__decode_hsize_t /* Definition for garbage-collect references */ #define H5F_ACS_GARBG_COLCT_REF_SIZE sizeof(unsigned) #define H5F_ACS_GARBG_COLCT_REF_DEF 0 +#define H5F_ACS_GARBG_COLCT_REF_ENC H5P__encode_unsigned +#define H5F_ACS_GARBG_COLCT_REF_DEC H5P__decode_unsigned /* Definition for file driver ID */ #define H5F_ACS_FILE_DRV_ID_SIZE sizeof(hid_t) #define H5F_ACS_FILE_DRV_ID_DEF H5_DEFAULT_VFD @@ -98,9 +119,13 @@ /* Definition for file close degree */ #define H5F_CLOSE_DEGREE_SIZE sizeof(H5F_close_degree_t) #define H5F_CLOSE_DEGREE_DEF H5F_CLOSE_DEFAULT +#define H5F_CLOSE_DEGREE_ENC H5P__facc_fclose_degree_enc +#define H5F_CLOSE_DEGREE_DEC H5P__facc_fclose_degree_dec /* Definition for offset position in file for family file driver */ #define H5F_ACS_FAMILY_OFFSET_SIZE sizeof(hsize_t) #define H5F_ACS_FAMILY_OFFSET_DEF 0 +#define H5F_ACS_FAMILY_OFFSET_ENC H5P__encode_hsize_t +#define H5F_ACS_FAMILY_OFFSET_DEC H5P__decode_hsize_t /* Definition for new member size of family driver. It's private * property only used by h5repart */ #define H5F_ACS_FAMILY_NEWSIZE_SIZE sizeof(hsize_t) @@ -112,9 +137,13 @@ /* Definition for data type in multi file driver */ #define H5F_ACS_MULTI_TYPE_SIZE sizeof(H5FD_mem_t) #define H5F_ACS_MULTI_TYPE_DEF H5FD_MEM_DEFAULT +#define H5F_ACS_MULTI_TYPE_ENC H5P__facc_multi_type_enc +#define H5F_ACS_MULTI_TYPE_DEC H5P__facc_multi_type_dec /* Definition for 'use latest format version' flag */ #define H5F_ACS_LATEST_FORMAT_SIZE sizeof(hbool_t) #define H5F_ACS_LATEST_FORMAT_DEF FALSE +#define H5F_ACS_LATEST_FORMAT_ENC H5P__encode_hbool_t +#define H5F_ACS_LATEST_FORMAT_DEC H5P__decode_hbool_t /* Definition for whether to query the file descriptor from the core VFD * instead of the memory address. (Private to library) */ @@ -123,6 +152,8 @@ /* Definition for external file cache size */ #define H5F_ACS_EFC_SIZE_SIZE sizeof(unsigned) #define H5F_ACS_EFC_SIZE_DEF 0 +#define H5F_ACS_EFC_SIZE_ENC H5P__encode_unsigned +#define H5F_ACS_EFC_SIZE_DEC H5P__decode_unsigned /* Definition of pointer to initial file image info */ #define H5F_ACS_FILE_IMAGE_INFO_SIZE sizeof(H5FD_file_image_info_t) #define H5F_ACS_FILE_IMAGE_INFO_DEF H5FD_DEFAULT_FILE_IMAGE_INFO @@ -155,6 +186,16 @@ static herr_t H5P_file_image_info_del(hid_t prop_id, const char *name, size_t si static herr_t H5P_file_image_info_copy(const char *name, size_t size, void *value); static herr_t H5P_file_image_info_close(const char *name, size_t size, void *value); +/* encode & decode callbacks */ +static herr_t H5P__facc_cache_config_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__facc_cache_config_dec(const void **_pp, void *value); +static int H5P__facc_cache_config_cmp(const void *value1, const void *value2, size_t size); +static herr_t H5P__facc_fclose_degree_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__facc_fclose_degree_dec(const void **pp, void *value); +static herr_t H5P__facc_multi_type_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__facc_multi_type_dec(const void **_pp, void *value); + + /*********************/ /* Package Variables */ /*********************/ @@ -185,6 +226,28 @@ const H5P_libclass_t H5P_CLS_FACC[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const H5AC_cache_config_t H5F_def_mdc_initCacheCfg_g = H5F_ACS_META_CACHE_INIT_CONFIG_DEF; /* Default metadata cache settings */ +static const size_t H5F_def_rdcc_nslots_g = H5F_ACS_DATA_CACHE_NUM_SLOTS_DEF; /* Default raw data chunk cache # of slots */ +static const size_t H5F_def_rdcc_nbytes_g = H5F_ACS_DATA_CACHE_BYTE_SIZE_DEF; /* Default raw data chunk cache # of bytes */ +static const double H5F_def_rdcc_w0_g = H5F_ACS_PREEMPT_READ_CHUNKS_DEF; /* Default raw data chunk cache dirty ratio */ +static const hsize_t H5F_def_threshold_g = H5F_ACS_ALIGN_THRHD_DEF; /* Default allocation alignment threshold */ +static const hsize_t H5F_def_alignment_g = H5F_ACS_ALIGN_DEF; /* Default allocation alignment value */ +static const hsize_t H5F_def_meta_block_size_g = H5F_ACS_META_BLOCK_SIZE_DEF; /* Default metadata allocation block size */ +static const size_t H5F_def_sieve_buf_size_g = H5F_ACS_SIEVE_BUF_SIZE_DEF; /* Default raw data I/O sieve buffer size */ +static const hsize_t H5F_def_sdata_block_size_g = H5F_ACS_SDATA_BLOCK_SIZE_DEF; /* Default small data allocation block size */ +static const unsigned H5F_def_gc_ref_g = H5F_ACS_GARBG_COLCT_REF_DEF; /* Default garbage collection for references setting */ +static const void *H5F_def_driver_info_g = H5F_ACS_FILE_DRV_INFO_DEF; /* Default VFL driver info */ +static const H5F_close_degree_t H5F_def_close_degree_g = H5F_CLOSE_DEGREE_DEF; /* Default file close degree */ +static const hsize_t H5F_def_family_offset_g = H5F_ACS_FAMILY_OFFSET_DEF; /* Default offset for family VFD */ +static const hsize_t H5F_def_family_newsize_g = H5F_ACS_FAMILY_NEWSIZE_DEF; /* Default size of new files for family VFD */ +static const hbool_t H5F_def_family_to_sec2_g = H5F_ACS_FAMILY_TO_SEC2_DEF; /* Default ?? for family VFD */ +static const H5FD_mem_t H5F_def_mem_type_g = H5F_ACS_MULTI_TYPE_DEF; /* Default file space type for multi VFD */ +static const hbool_t H5F_def_latest_format_g = H5F_ACS_LATEST_FORMAT_DEF; /* Default setting for "use the latest version of the format" flag */ +static const hbool_t H5F_def_want_posix_fd_g = H5F_ACS_WANT_POSIX_FD_DEF; /* Default setting for retrieving 'handle' from core VFD */ +static const unsigned H5F_def_efc_size_g = H5F_ACS_EFC_SIZE_DEF; /* Default external file cache size */ +static const H5FD_file_image_info_t H5F_def_file_image_info_g = H5F_ACS_FILE_IMAGE_INFO_DEF; /* Default file image info and callbacks */ + /*------------------------------------------------------------------------- @@ -201,114 +264,137 @@ const H5P_libclass_t H5P_CLS_FACC[1] = {{ static herr_t H5P_facc_reg_prop(H5P_genclass_t *pclass) { - H5AC_cache_config_t mdc_initCacheCfg = H5F_ACS_META_CACHE_INIT_CONFIG_DEF; /* Default metadata cache settings */ - size_t rdcc_nslots = H5F_ACS_DATA_CACHE_NUM_SLOTS_DEF; /* Default raw data chunk cache # of slots */ - size_t rdcc_nbytes = H5F_ACS_DATA_CACHE_BYTE_SIZE_DEF; /* Default raw data chunk cache # of bytes */ - double rdcc_w0 = H5F_ACS_PREEMPT_READ_CHUNKS_DEF; /* Default raw data chunk cache dirty ratio */ - hsize_t threshold = H5F_ACS_ALIGN_THRHD_DEF; /* Default allocation alignment threshold */ - hsize_t alignment = H5F_ACS_ALIGN_DEF; /* Default allocation alignment value */ - hsize_t meta_block_size = H5F_ACS_META_BLOCK_SIZE_DEF; /* Default metadata allocation block size */ - size_t sieve_buf_size = H5F_ACS_SIEVE_BUF_SIZE_DEF; /* Default raw data I/O sieve buffer size */ - hsize_t sdata_block_size = H5F_ACS_SDATA_BLOCK_SIZE_DEF; /* Default small data allocation block size */ - unsigned gc_ref = H5F_ACS_GARBG_COLCT_REF_DEF; /* Default garbage collection for references setting */ - hid_t driver_id = H5F_ACS_FILE_DRV_ID_DEF; /* Default VFL driver ID */ - void *driver_info = H5F_ACS_FILE_DRV_INFO_DEF; /* Default VFL driver info */ - H5F_close_degree_t close_degree = H5F_CLOSE_DEGREE_DEF; /* Default file close degree */ - hsize_t family_offset = H5F_ACS_FAMILY_OFFSET_DEF; /* Default offset for family VFD */ - hsize_t family_newsize = H5F_ACS_FAMILY_NEWSIZE_DEF; /* Default size of new files for family VFD */ - hbool_t family_to_sec2 = H5F_ACS_FAMILY_TO_SEC2_DEF; /* Default ?? for family VFD */ - H5FD_mem_t mem_type = H5F_ACS_MULTI_TYPE_DEF; /* Default file space type for multi VFD */ - hbool_t latest_format = H5F_ACS_LATEST_FORMAT_DEF; /* Default setting for "use the latest version of the format" flag */ - hbool_t want_posix_fd = H5F_ACS_WANT_POSIX_FD_DEF; /* Default setting for retrieving 'handle' from core VFD */ - unsigned efc_size = H5F_ACS_EFC_SIZE_DEF; /* Default external file cache size */ - H5FD_file_image_info_t file_image_info = H5F_ACS_FILE_IMAGE_INFO_DEF; /* Default file image info and callbacks */ + const hid_t def_driver_id = H5F_ACS_FILE_DRV_ID_DEF; /* Default VFL driver ID (initialized from a variable) */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT /* Register the initial metadata cache resize configuration */ - if(H5P_register_real(pclass, H5F_ACS_META_CACHE_INIT_CONFIG_NAME, H5F_ACS_META_CACHE_INIT_CONFIG_SIZE, &mdc_initCacheCfg, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_META_CACHE_INIT_CONFIG_NAME, H5F_ACS_META_CACHE_INIT_CONFIG_SIZE, &H5F_def_mdc_initCacheCfg_g, + NULL, NULL, NULL, H5F_ACS_META_CACHE_INIT_CONFIG_ENC, H5F_ACS_META_CACHE_INIT_CONFIG_DEC, + NULL, NULL, H5F_ACS_META_CACHE_INIT_CONFIG_CMP, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the size of raw data chunk cache (elements) */ - if(H5P_register_real(pclass, H5F_ACS_DATA_CACHE_NUM_SLOTS_NAME, H5F_ACS_DATA_CACHE_NUM_SLOTS_SIZE, &rdcc_nslots, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_DATA_CACHE_NUM_SLOTS_NAME, H5F_ACS_DATA_CACHE_NUM_SLOTS_SIZE, &H5F_def_rdcc_nslots_g, + NULL, NULL, NULL, H5F_ACS_DATA_CACHE_NUM_SLOTS_ENC, H5F_ACS_DATA_CACHE_NUM_SLOTS_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the size of raw data chunk cache(bytes) */ - if(H5P_register_real(pclass, H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME, H5F_ACS_DATA_CACHE_BYTE_SIZE_SIZE, &rdcc_nbytes, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME, H5F_ACS_DATA_CACHE_BYTE_SIZE_SIZE, &H5F_def_rdcc_nbytes_g, + NULL, NULL, NULL, H5F_ACS_DATA_CACHE_BYTE_SIZE_ENC, H5F_ACS_DATA_CACHE_BYTE_SIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the preemption for reading chunks */ - if(H5P_register_real(pclass, H5F_ACS_PREEMPT_READ_CHUNKS_NAME, H5F_ACS_PREEMPT_READ_CHUNKS_SIZE, &rdcc_w0, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_PREEMPT_READ_CHUNKS_NAME, H5F_ACS_PREEMPT_READ_CHUNKS_SIZE, &H5F_def_rdcc_w0_g, + NULL, NULL, NULL, H5F_ACS_PREEMPT_READ_CHUNKS_ENC, H5F_ACS_PREEMPT_READ_CHUNKS_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the threshold for alignment */ - if(H5P_register_real(pclass, H5F_ACS_ALIGN_THRHD_NAME, H5F_ACS_ALIGN_THRHD_SIZE, &threshold, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_ALIGN_THRHD_NAME, H5F_ACS_ALIGN_THRHD_SIZE, &H5F_def_threshold_g, + NULL, NULL, NULL, H5F_ACS_ALIGN_THRHD_ENC, H5F_ACS_ALIGN_THRHD_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the alignment */ - if(H5P_register_real(pclass, H5F_ACS_ALIGN_NAME, H5F_ACS_ALIGN_SIZE, &alignment, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_ALIGN_NAME, H5F_ACS_ALIGN_SIZE, &H5F_def_alignment_g, + NULL, NULL, NULL, H5F_ACS_ALIGN_ENC, H5F_ACS_ALIGN_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the minimum metadata allocation block size */ - if(H5P_register_real(pclass, H5F_ACS_META_BLOCK_SIZE_NAME, H5F_ACS_META_BLOCK_SIZE_SIZE, &meta_block_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_META_BLOCK_SIZE_NAME, H5F_ACS_META_BLOCK_SIZE_SIZE, &H5F_def_meta_block_size_g, + NULL, NULL, NULL, H5F_ACS_META_BLOCK_SIZE_ENC, H5F_ACS_META_BLOCK_SIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the maximum sieve buffer size */ - if(H5P_register_real(pclass, H5F_ACS_SIEVE_BUF_SIZE_NAME, H5F_ACS_SIEVE_BUF_SIZE_SIZE, &sieve_buf_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_SIEVE_BUF_SIZE_NAME, H5F_ACS_SIEVE_BUF_SIZE_SIZE, &H5F_def_sieve_buf_size_g, + NULL, NULL, NULL, H5F_ACS_SIEVE_BUF_SIZE_ENC, H5F_ACS_SIEVE_BUF_SIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the minimum "small data" allocation block size */ - if(H5P_register_real(pclass, H5F_ACS_SDATA_BLOCK_SIZE_NAME, H5F_ACS_SDATA_BLOCK_SIZE_SIZE, &sdata_block_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_SDATA_BLOCK_SIZE_NAME, H5F_ACS_SDATA_BLOCK_SIZE_SIZE, &H5F_def_sdata_block_size_g, + NULL, NULL, NULL, H5F_ACS_SDATA_BLOCK_SIZE_ENC, H5F_ACS_SDATA_BLOCK_SIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the garbage collection reference */ - if(H5P_register_real(pclass, H5F_ACS_GARBG_COLCT_REF_NAME, H5F_ACS_GARBG_COLCT_REF_SIZE, &gc_ref, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_GARBG_COLCT_REF_NAME, H5F_ACS_GARBG_COLCT_REF_SIZE, &H5F_def_gc_ref_g, + NULL, NULL, NULL, H5F_ACS_GARBG_COLCT_REF_ENC, H5F_ACS_GARBG_COLCT_REF_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the file driver ID */ - if(H5P_register_real(pclass, H5F_ACS_FILE_DRV_ID_NAME, H5F_ACS_FILE_DRV_ID_SIZE, &driver_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_ACS_FILE_DRV_ID_NAME, H5F_ACS_FILE_DRV_ID_SIZE, &def_driver_id, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the file driver info */ - if(H5P_register_real(pclass, H5F_ACS_FILE_DRV_INFO_NAME, H5F_ACS_FILE_DRV_INFO_SIZE, &driver_info, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_ACS_FILE_DRV_INFO_NAME, H5F_ACS_FILE_DRV_INFO_SIZE, &H5F_def_driver_info_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the file close degree */ - if(H5P_register_real(pclass, H5F_ACS_CLOSE_DEGREE_NAME, H5F_CLOSE_DEGREE_SIZE, &close_degree, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_CLOSE_DEGREE_NAME, H5F_CLOSE_DEGREE_SIZE, &H5F_def_close_degree_g, + NULL, NULL, NULL, H5F_CLOSE_DEGREE_ENC, H5F_CLOSE_DEGREE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the offset of family driver info */ - if(H5P_register_real(pclass, H5F_ACS_FAMILY_OFFSET_NAME, H5F_ACS_FAMILY_OFFSET_SIZE, &family_offset, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_FAMILY_OFFSET_NAME, H5F_ACS_FAMILY_OFFSET_SIZE, &H5F_def_family_offset_g, + NULL, NULL, NULL, H5F_ACS_FAMILY_OFFSET_ENC, H5F_ACS_FAMILY_OFFSET_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the private property of new family file size. It's used by h5repart only. */ - if(H5P_register_real(pclass, H5F_ACS_FAMILY_NEWSIZE_NAME, H5F_ACS_FAMILY_NEWSIZE_SIZE, &family_newsize, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_ACS_FAMILY_NEWSIZE_NAME, H5F_ACS_FAMILY_NEWSIZE_SIZE, &H5F_def_family_newsize_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the private property of whether convert family to sec2 driver. It's used by h5repart only. */ - if(H5P_register_real(pclass, H5F_ACS_FAMILY_TO_SEC2_NAME, H5F_ACS_FAMILY_TO_SEC2_SIZE, &family_to_sec2, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_ACS_FAMILY_TO_SEC2_NAME, H5F_ACS_FAMILY_TO_SEC2_SIZE, &H5F_def_family_to_sec2_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the data type of multi driver info */ - if(H5P_register_real(pclass, H5F_ACS_MULTI_TYPE_NAME, H5F_ACS_MULTI_TYPE_SIZE, &mem_type, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_MULTI_TYPE_NAME, H5F_ACS_MULTI_TYPE_SIZE, &H5F_def_mem_type_g, + NULL, NULL, NULL, H5F_ACS_MULTI_TYPE_ENC, H5F_ACS_MULTI_TYPE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the 'use the latest version of the format' flag */ - if(H5P_register_real(pclass, H5F_ACS_LATEST_FORMAT_NAME, H5F_ACS_LATEST_FORMAT_SIZE, &latest_format, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_LATEST_FORMAT_NAME, H5F_ACS_LATEST_FORMAT_SIZE, &H5F_def_latest_format_g, + NULL, NULL, NULL, H5F_ACS_LATEST_FORMAT_ENC, H5F_ACS_LATEST_FORMAT_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the private property of whether to retrieve the file descriptor from the core VFD */ /* (used internally to the library only) */ - if(H5P_register_real(pclass, H5F_ACS_WANT_POSIX_FD_NAME, H5F_ACS_WANT_POSIX_FD_SIZE, &want_posix_fd, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_ACS_WANT_POSIX_FD_NAME, H5F_ACS_WANT_POSIX_FD_SIZE, &H5F_def_want_posix_fd_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the external file cache size */ - if(H5P_register_real(pclass, H5F_ACS_EFC_SIZE_NAME, H5F_ACS_EFC_SIZE_SIZE, &efc_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_ACS_EFC_SIZE_NAME, H5F_ACS_EFC_SIZE_SIZE, &H5F_def_efc_size_g, + NULL, NULL, NULL, H5F_ACS_EFC_SIZE_ENC, H5F_ACS_EFC_SIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the initial file image info */ - if(H5P_register_real(pclass, H5F_ACS_FILE_IMAGE_INFO_NAME, H5F_ACS_FILE_IMAGE_INFO_SIZE, &file_image_info, NULL, NULL, NULL, H5F_ACS_FILE_IMAGE_INFO_DEL, H5F_ACS_FILE_IMAGE_INFO_COPY, NULL, H5F_ACS_FILE_IMAGE_INFO_CLOSE) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_ACS_FILE_IMAGE_INFO_NAME, H5F_ACS_FILE_IMAGE_INFO_SIZE, &H5F_def_file_image_info_g, + NULL, NULL, NULL, NULL, NULL, + H5F_ACS_FILE_IMAGE_INFO_DEL, H5F_ACS_FILE_IMAGE_INFO_COPY, NULL, H5F_ACS_FILE_IMAGE_INFO_CLOSE) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: @@ -508,18 +594,18 @@ H5Pset_alignment(hid_t fapl_id, hsize_t threshold, hsize_t alignment) H5TRACE3("e", "ihh", fapl_id, threshold, alignment); /* Check args */ - if (alignment<1) - HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "alignment must be positive"); + if(alignment < 1) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "alignment must be positive") /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(fapl_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set values */ if(H5P_set(plist, H5F_ACS_ALIGN_THRHD_NAME, &threshold) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set threshold"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set threshold") if(H5P_set(plist, H5F_ACS_ALIGN_NAME, &alignment) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set alignment"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set alignment") done: FUNC_LEAVE_API(ret_value) @@ -692,10 +778,10 @@ H5P_get_driver(H5P_genplist_t *plist) /* Get the current driver ID */ if(TRUE == H5P_isa_class(plist->plist_id, H5P_FILE_ACCESS)) { if(H5P_get(plist, H5F_ACS_FILE_DRV_ID_NAME, &ret_value) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get driver ID"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get driver ID") } /* end if */ else - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list"); + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list") if(H5FD_VFD_DEFAULT == ret_value) ret_value = H5_DEFAULT_VFD; @@ -1002,17 +1088,6 @@ done: * Programmer: Robb Matzke * Tuesday, May 19, 1998 * - * Modifications: - * - * Raymond Lu - * Tuesday, Oct 23, 2001 - * Changed the file access list to the new generic property list. - * - * J. Mainzer - * Thurs. 3/17/05 - * The mdc_nelmts entry is no more in the FAPL, so I modified - * the code to ignore it. - * *------------------------------------------------------------------------- */ herr_t @@ -1027,24 +1102,24 @@ H5Pset_cache(hid_t plist_id, int UNUSED mdc_nelmts, rdcc_w0); /* Check arguments */ - if (rdcc_w0<0.0 || rdcc_w0>1.0) - HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "raw data cache w0 value must be between 0.0 and 1.0 inclusive"); + if(rdcc_w0 < 0.0 || rdcc_w0 > 1.0) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "raw data cache w0 value must be between 0.0 and 1.0 inclusive") /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set sizes */ if(H5P_set(plist, H5F_ACS_DATA_CACHE_NUM_SLOTS_NAME, &rdcc_nslots) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET,FAIL, "can't set data cache number of slots"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET,FAIL, "can't set data cache number of slots") if(H5P_set(plist, H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME, &rdcc_nbytes) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET,FAIL, "can't set data cache byte size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET,FAIL, "can't set data cache byte size") if(H5P_set(plist, H5F_ACS_PREEMPT_READ_CHUNKS_NAME, &rdcc_w0) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET,FAIL, "can't set preempt read chunks"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET,FAIL, "can't set preempt read chunks") done: FUNC_LEAVE_API(ret_value) -} +} /* end H5Pset_cache() */ /*------------------------------------------------------------------------- @@ -1061,18 +1136,6 @@ done: * Programmer: Robb Matzke * Tuesday, May 19, 1998 * - * Modifications: - * - * Raymond Lu - * Tuesday, Oct 23, 2001 - * Changed the file access list to the new generic property - * list. - * - * J Mainzer - * Thurs, 3/17/05 - * The mdc_nelmts fapl entry is no more, so we now just - * return a constant when that value is requested. - * *------------------------------------------------------------------------- */ herr_t @@ -1088,27 +1151,27 @@ H5Pget_cache(hid_t plist_id, int *mdc_nelmts, /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Get sizes */ /* the mdc_nelmts FAPL entry no longer exists, so just return a constant */ - if (mdc_nelmts) + if(mdc_nelmts) *mdc_nelmts = 0; - if (rdcc_nslots) + if(rdcc_nslots) if(H5P_get(plist, H5F_ACS_DATA_CACHE_NUM_SLOTS_NAME, rdcc_nslots) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache number of slots"); - if (rdcc_nbytes) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache number of slots") + if(rdcc_nbytes) if(H5P_get(plist, H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME, rdcc_nbytes) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache byte size"); - if (rdcc_w0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache byte size") + if(rdcc_w0) if(H5P_get(plist, H5F_ACS_PREEMPT_READ_CHUNKS_NAME, rdcc_w0) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get preempt read chunks"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get preempt read chunks") done: FUNC_LEAVE_API(ret_value) -} +} /* end H5Pget_cache() */ /*------------------------------------------------------------------------- @@ -1248,11 +1311,11 @@ H5Pset_gc_references(hid_t plist_id, unsigned gc_ref) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set values */ if(H5P_set(plist, H5F_ACS_GARBG_COLCT_REF_NAME, &gc_ref) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set garbage collect reference"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set garbage collect reference") done: FUNC_LEAVE_API(ret_value) @@ -1290,12 +1353,12 @@ H5Pget_gc_references(hid_t plist_id, unsigned *gc_ref/*out*/) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Get values */ - if (gc_ref) + if(gc_ref) if(H5P_get(plist, H5F_ACS_GARBG_COLCT_REF_NAME, gc_ref) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get garbage collect reference"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get garbage collect reference") done: FUNC_LEAVE_API(ret_value) @@ -1413,11 +1476,11 @@ H5Pset_meta_block_size(hid_t plist_id, hsize_t size) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set values */ if(H5P_set(plist, H5F_ACS_META_BLOCK_SIZE_NAME, &size) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set meta data block size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set meta data block size") done: FUNC_LEAVE_API(ret_value) @@ -1455,12 +1518,12 @@ H5Pget_meta_block_size(hid_t plist_id, hsize_t *size/*out*/) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Get values */ - if (size) { + if(size) { if(H5P_get(plist, H5F_ACS_META_BLOCK_SIZE_NAME, size) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get meta data block size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get meta data block size") } /* end if */ done: @@ -1508,11 +1571,11 @@ H5Pset_sieve_buf_size(hid_t plist_id, size_t size) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set values */ if(H5P_set(plist, H5F_ACS_SIEVE_BUF_SIZE_NAME, &size) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set sieve buffer size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set sieve buffer size") done: FUNC_LEAVE_API(ret_value) @@ -1550,12 +1613,12 @@ H5Pget_sieve_buf_size(hid_t plist_id, size_t *size/*out*/) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Get values */ - if (size) + if(size) if(H5P_get(plist, H5F_ACS_SIEVE_BUF_SIZE_NAME, size) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get sieve buffer size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get sieve buffer size") done: FUNC_LEAVE_API(ret_value) @@ -1597,11 +1660,11 @@ H5Pset_small_data_block_size(hid_t plist_id, hsize_t size) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set values */ if(H5P_set(plist, H5F_ACS_SDATA_BLOCK_SIZE_NAME, &size) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set 'small data' block size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set 'small data' block size") done: FUNC_LEAVE_API(ret_value) @@ -1634,12 +1697,12 @@ H5Pget_small_data_block_size(hid_t plist_id, hsize_t *size/*out*/) /* Get the plist structure */ if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_ACCESS))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Get values */ - if (size) { + if(size) { if(H5P_get(plist, H5F_ACS_SDATA_BLOCK_SIZE_NAME, size) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get 'small data' block size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get 'small data' block size") } /* end if */ done: @@ -1911,7 +1974,7 @@ H5Pset_file_image(hid_t fapl_id, void *buf_ptr, size_t buf_len) /* validate parameters */ if(!(((buf_ptr == NULL) && (buf_len == 0)) || ((buf_ptr != NULL) && (buf_len > 0)))) - HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "inconsistant buf_ptr and buf_len"); + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "inconsistant buf_ptr and buf_len") /* Get the plist structure */ if(NULL == (fapl = H5P_object_verify(fapl_id, H5P_FILE_ACCESS))) @@ -2369,3 +2432,551 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5P_file_image_info_close() */ + +/*------------------------------------------------------------------------- + * Function: H5P__facc_cache_config_cmp + * + * Purpose: Compare two cache configurations. + * + * Return: positive if VALUE1 is greater than VALUE2, negative if VALUE2 is + * greater than VALUE1 and zero if VALUE1 and VALUE2 are equal. + * + * Programmer: Mohamad Chaarawi + * September 24, 2012 + * + *------------------------------------------------------------------------- + */ +static int +H5P__facc_cache_config_cmp(const void *_config1, const void *_config2, size_t UNUSED size) +{ + const H5AC_cache_config_t *config1 = (const H5AC_cache_config_t *)_config1; /* Create local aliases for values */ + const H5AC_cache_config_t *config2 = (const H5AC_cache_config_t *)_config2; /* Create local aliases for values */ + int ret_value = 0; /* Return value */ + + FUNC_ENTER_STATIC_NOERR + + /* Check for a property being set */ + if(config1 == NULL && config2 != NULL) HGOTO_DONE(-1); + if(config1 != NULL && config2 == NULL) HGOTO_DONE(1); + + if(config1->version < config2->version) HGOTO_DONE(-1); + if(config1->version > config2->version) HGOTO_DONE(1); + + if(config1->rpt_fcn_enabled < config2->rpt_fcn_enabled) HGOTO_DONE(-1); + if(config1->rpt_fcn_enabled > config2->rpt_fcn_enabled) HGOTO_DONE(1); + + if(config1->open_trace_file < config2->open_trace_file) HGOTO_DONE(-1); + if(config1->open_trace_file > config2->open_trace_file) HGOTO_DONE(1); + + if(config1->close_trace_file < config2->close_trace_file) HGOTO_DONE(-1); + if(config1->close_trace_file > config2->close_trace_file) HGOTO_DONE(1); + + if((ret_value = HDstrncmp(config1->trace_file_name, config2->trace_file_name, + H5AC__MAX_TRACE_FILE_NAME_LEN + 1)) != 0) + HGOTO_DONE(ret_value); + + if(config1->evictions_enabled < config2->evictions_enabled) HGOTO_DONE(-1); + if(config1->evictions_enabled > config2->evictions_enabled) HGOTO_DONE(1); + + if(config1->set_initial_size < config2->set_initial_size) HGOTO_DONE(-1); + if(config1->set_initial_size > config2->set_initial_size) HGOTO_DONE(1); + + if(config1->initial_size < config2->initial_size) HGOTO_DONE(-1); + if(config1->initial_size > config2->initial_size) HGOTO_DONE(1); + + if(config1->min_clean_fraction < config2->min_clean_fraction) HGOTO_DONE(-1); + if(config1->min_clean_fraction > config2->min_clean_fraction) HGOTO_DONE(1); + + if(config1->max_size < config2->max_size) HGOTO_DONE(-1); + if(config1->max_size > config2->max_size) HGOTO_DONE(1); + + if(config1->min_size < config2->min_size) HGOTO_DONE(-1); + if(config1->min_size > config2->min_size) HGOTO_DONE(1); + + if(config1->epoch_length < config2->epoch_length) HGOTO_DONE(-1); + if(config1->epoch_length > config2->epoch_length) HGOTO_DONE(1); + + if(config1->incr_mode < config2->incr_mode) HGOTO_DONE(-1); + if(config1->incr_mode > config2->incr_mode) HGOTO_DONE(1); + + if(config1->lower_hr_threshold < config2->lower_hr_threshold) HGOTO_DONE(-1); + if(config1->lower_hr_threshold > config2->lower_hr_threshold) HGOTO_DONE(1); + + if(config1->increment < config2->increment) HGOTO_DONE(-1); + if(config1->increment > config2->increment) HGOTO_DONE(1); + + if(config1->apply_max_increment < config2->apply_max_increment) HGOTO_DONE(-1); + if(config1->apply_max_increment > config2->apply_max_increment) HGOTO_DONE(1); + + if(config1->max_increment < config2->max_increment) HGOTO_DONE(-1); + if(config1->max_increment > config2->max_increment) HGOTO_DONE(1); + + if(config1->flash_incr_mode < config2->flash_incr_mode) HGOTO_DONE(-1); + if(config1->flash_incr_mode > config2->flash_incr_mode) HGOTO_DONE(1); + + if(config1->flash_multiple < config2->flash_multiple) HGOTO_DONE(-1); + if(config1->flash_multiple > config2->flash_multiple) HGOTO_DONE(1); + + if(config1->flash_threshold < config2->flash_threshold) HGOTO_DONE(-1); + if(config1->flash_threshold > config2->flash_threshold) HGOTO_DONE(1); + + if(config1->decr_mode < config2->decr_mode) HGOTO_DONE(-1); + if(config1->decr_mode > config2->decr_mode) HGOTO_DONE(1); + + if(config1->upper_hr_threshold < config2->upper_hr_threshold) HGOTO_DONE(-1); + if(config1->upper_hr_threshold > config2->upper_hr_threshold) HGOTO_DONE(1); + + if(config1->decrement < config2->decrement) HGOTO_DONE(-1); + if(config1->decrement > config2->decrement) HGOTO_DONE(1); + + if(config1->apply_max_decrement < config2->apply_max_decrement) HGOTO_DONE(-1); + if(config1->apply_max_decrement > config2->apply_max_decrement) HGOTO_DONE(1); + + if(config1->max_decrement < config2->max_decrement) HGOTO_DONE(-1); + if(config1->max_decrement > config2->max_decrement) HGOTO_DONE(1); + + if(config1->epochs_before_eviction < config2->epochs_before_eviction) HGOTO_DONE(-1); + if(config1->epochs_before_eviction > config2->epochs_before_eviction) HGOTO_DONE(1); + + if(config1->apply_empty_reserve < config2->apply_empty_reserve) HGOTO_DONE(-1); + if(config1->apply_empty_reserve > config2->apply_empty_reserve) HGOTO_DONE(1); + + if(config1->empty_reserve < config2->empty_reserve) HGOTO_DONE(-1); + if(config1->empty_reserve > config2->empty_reserve) HGOTO_DONE(1); + + if(config1->dirty_bytes_threshold < config2->dirty_bytes_threshold) HGOTO_DONE(-1); + if(config1->dirty_bytes_threshold > config2->dirty_bytes_threshold) HGOTO_DONE(1); + + if(config1->metadata_write_strategy < config2->metadata_write_strategy) HGOTO_DONE(-1); + if(config1->metadata_write_strategy > config2->metadata_write_strategy) HGOTO_DONE(1); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__facc_cache_config_cmp() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__facc_cache_config_enc + * + * Purpose: Callback routine which is called whenever the default + * cache config property in the file creation property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 09, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__facc_cache_config_enc(const void *value, void **_pp, size_t *size) +{ + const H5AC_cache_config_t *config = (const H5AC_cache_config_t *)value; /* Create local aliases for values */ + uint8_t **pp = (uint8_t **)_pp; + unsigned enc_size; /* Size of encoded property */ + uint64_t enc_value; /* Property to encode */ + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(value); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + if(NULL != *pp) { + /* Encode type sizes (as a safety check) */ + *(*pp)++ = (uint8_t)sizeof(unsigned); + *(*pp)++ = (uint8_t)sizeof(double); + + /* int */ + INT32ENCODE(*pp, (int32_t)config->version); + + H5_ENCODE_UNSIGNED(*pp, config->rpt_fcn_enabled); + + H5_ENCODE_UNSIGNED(*pp, config->open_trace_file); + + H5_ENCODE_UNSIGNED(*pp, config->close_trace_file); + + HDmemcpy(*pp, (const uint8_t *)(config->trace_file_name), H5AC__MAX_TRACE_FILE_NAME_LEN + 1); + *pp += H5AC__MAX_TRACE_FILE_NAME_LEN + 1; + + H5_ENCODE_UNSIGNED(*pp, config->evictions_enabled); + + H5_ENCODE_UNSIGNED(*pp, config->set_initial_size); + + enc_value = (uint64_t)config->initial_size; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + H5_ENCODE_DOUBLE(*pp, config->min_clean_fraction); + + enc_value = (uint64_t)config->max_size; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + enc_value = (uint64_t)config->min_size; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* long int */ + INT64ENCODE(*pp, (int64_t)config->epoch_length); + + /* enum */ + *(*pp)++ = (uint8_t)config->incr_mode; + + H5_ENCODE_DOUBLE(*pp, config->lower_hr_threshold); + + H5_ENCODE_DOUBLE(*pp, config->increment); + + H5_ENCODE_UNSIGNED(*pp, config->apply_max_increment); + + enc_value = (uint64_t)config->max_increment; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* enum */ + *(*pp)++ = (uint8_t)config->flash_incr_mode; + + H5_ENCODE_DOUBLE(*pp, config->flash_multiple); + + H5_ENCODE_DOUBLE(*pp, config->flash_threshold); + + /* enum */ + *(*pp)++ = (uint8_t)config->decr_mode; + + H5_ENCODE_DOUBLE(*pp, config->upper_hr_threshold); + + H5_ENCODE_DOUBLE(*pp, config->decrement); + + H5_ENCODE_UNSIGNED(*pp, config->apply_max_decrement); + + enc_value = (uint64_t)config->max_decrement; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* int */ + INT32ENCODE(*pp, (int32_t)config->epochs_before_eviction); + + H5_ENCODE_UNSIGNED(*pp, config->apply_empty_reserve); + + H5_ENCODE_DOUBLE(*pp, config->empty_reserve); + + /* int */ + INT32ENCODE(*pp, (int32_t)config->dirty_bytes_threshold); + + /* int */ + INT32ENCODE(*pp, (int32_t)config->metadata_write_strategy); + } /* end if */ + + /* Compute encoded size of variably-encoded values */ + enc_value = (uint64_t)config->initial_size; + *size += 1 + H5V_limit_enc_size(enc_value); + enc_value = (uint64_t)config->max_size; + *size += 1 + H5V_limit_enc_size(enc_value); + enc_value = (uint64_t)config->min_size; + *size += 1 + H5V_limit_enc_size(enc_value); + enc_value = (uint64_t)config->max_increment; + *size += 1 + H5V_limit_enc_size(enc_value); + enc_value = (uint64_t)config->max_decrement; + *size += 1 + H5V_limit_enc_size(enc_value); + + /* Compute encoded size of fixed-size values */ + *size += (5 + (sizeof(unsigned) * 8) + (sizeof(double) * 8) + + (sizeof(int32_t) * 4) + sizeof(int64_t) + + H5AC__MAX_TRACE_FILE_NAME_LEN + 1); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__facc_cache_config_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__facc_cache_config_dec + * + * Purpose: Callback routine which is called whenever the default + * cache config property in the file creation property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 09, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__facc_cache_config_dec(const void **_pp, void *_value) +{ + H5AC_cache_config_t *config = (H5AC_cache_config_t *)_value; + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; + uint64_t enc_value; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(config); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + /* Set property to default value */ + HDmemcpy(config, &H5F_def_mdc_initCacheCfg_g, sizeof(H5AC_cache_config_t)); + + /* Decode type sizes */ + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + enc_size = *(*pp)++; + if(enc_size != sizeof(double)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "double value can't be decoded") + + /* int */ + INT32DECODE(*pp, config->version); + + H5_DECODE_UNSIGNED(*pp, config->rpt_fcn_enabled); + + H5_DECODE_UNSIGNED(*pp, config->open_trace_file); + + H5_DECODE_UNSIGNED(*pp, config->close_trace_file); + + HDstrcpy(config->trace_file_name, (const char *)(*pp)); + *pp += H5AC__MAX_TRACE_FILE_NAME_LEN + 1; + + H5_DECODE_UNSIGNED(*pp, config->evictions_enabled); + + H5_DECODE_UNSIGNED(*pp, config->set_initial_size); + + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + config->initial_size = (size_t)enc_value; + + H5_DECODE_DOUBLE(*pp, config->min_clean_fraction); + + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + config->max_size = (size_t)enc_value; + + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + config->min_size = (size_t)enc_value; + + /* long int */ + { + int64_t temp; + INT64DECODE(*pp, temp); + config->epoch_length = (long int)temp; + } + /* enum */ + config->incr_mode = (enum H5C_cache_incr_mode)*(*pp)++; + + H5_DECODE_DOUBLE(*pp, config->lower_hr_threshold); + + H5_DECODE_DOUBLE(*pp, config->increment); + + H5_DECODE_UNSIGNED(*pp, config->apply_max_increment); + + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + config->max_increment = (size_t)enc_value; + + /* enum */ + config->flash_incr_mode = (enum H5C_cache_flash_incr_mode)*(*pp)++; + + H5_DECODE_DOUBLE(*pp, config->flash_multiple); + + H5_DECODE_DOUBLE(*pp, config->flash_threshold); + + /* enum */ + config->decr_mode = (enum H5C_cache_decr_mode)*(*pp)++; + + H5_DECODE_DOUBLE(*pp, config->upper_hr_threshold); + + H5_DECODE_DOUBLE(*pp, config->decrement); + + H5_DECODE_UNSIGNED(*pp, config->apply_max_decrement); + + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + config->max_decrement = (size_t)enc_value; + + /* int */ + INT32DECODE(*pp, config->epochs_before_eviction); + + H5_DECODE_UNSIGNED(*pp, config->apply_empty_reserve); + + H5_DECODE_DOUBLE(*pp, config->empty_reserve); + + /* int */ + INT32DECODE(*pp, config->dirty_bytes_threshold); + + /* int */ + INT32DECODE(*pp, config->metadata_write_strategy); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__facc_cache_config_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__facc_fclose_degree_enc + * + * Purpose: Callback routine which is called whenever the file close + * degree property in the file access property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__facc_fclose_degree_enc(const void *value, void **_pp, size_t *size) +{ + const H5F_close_degree_t *fclose_degree = (const H5F_close_degree_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(fclose_degree); + HDassert(size); + + if(NULL != *pp) + /* Encode file close degree */ + *(*pp)++ = (uint8_t)*fclose_degree; + + /* Size of file close degree */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__facc_fclose_degree_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__facc_fclose_degree_dec + * + * Purpose: Callback routine which is called whenever the file close + * degree property in the file access property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__facc_fclose_degree_dec(const void **_pp, void *_value) +{ + H5F_close_degree_t *fclose_degree = (H5F_close_degree_t *)_value; /* File close degree */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(fclose_degree); + + /* Decode file close degree */ + *fclose_degree = (H5F_close_degree_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__facc_fclose_degree_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__facc_multi_type_enc + * + * Purpose: Callback routine which is called whenever the multi VFD + * memory type property in the file access property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__facc_multi_type_enc(const void *value, void **_pp, size_t *size) +{ + const H5FD_mem_t *type = (const H5FD_mem_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(type); + HDassert(size); + + if(NULL != *pp) + /* Encode file close degree */ + *(*pp)++ = (uint8_t)*type; + + /* Size of multi VFD memory type */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__facc_multi_type_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__facc_multi_type_dec + * + * Purpose: Callback routine which is called whenever the multi VFD + * memory type property in the file access property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__facc_multi_type_dec(const void **_pp, void *_value) +{ + H5FD_mem_t *type = (H5FD_mem_t *)_value; /* File close degree */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(type); + + /* Decode multi VFD memory type */ + *type = (H5FD_mem_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__facc_multi_type_dec() */ + diff --git a/src/H5Pfcpl.c b/src/H5Pfcpl.c index cd6a7cd..3eb9c5b 100644 --- a/src/H5Pfcpl.c +++ b/src/H5Pfcpl.c @@ -49,37 +49,61 @@ /* Definitions for the size of the file user block in bytes */ #define H5F_CRT_USER_BLOCK_SIZE sizeof(hsize_t) #define H5F_CRT_USER_BLOCK_DEF 0 +#define H5F_CRT_USER_BLOCK_ENC H5P__encode_hsize_t +#define H5F_CRT_USER_BLOCK_DEC H5P__decode_hsize_t /* Definitions for the 1/2 rank for symbol table leaf nodes */ #define H5F_CRT_SYM_LEAF_SIZE sizeof(unsigned) +#define H5F_CRT_SYM_LEAF_ENC H5P__encode_unsigned +#define H5F_CRT_SYM_LEAF_DEC H5P__decode_unsigned /* Definitions for the 1/2 rank for btree internal nodes */ #define H5F_CRT_BTREE_RANK_SIZE sizeof(unsigned[H5B_NUM_BTREE_ID]) #define H5F_CRT_BTREE_RANK_DEF {HDF5_BTREE_SNODE_IK_DEF,HDF5_BTREE_CHUNK_IK_DEF} +#define H5F_CRT_BTREE_RANK_ENC H5P__fcrt_btree_rank_enc +#define H5F_CRT_BTREE_RANK_DEC H5P__fcrt_btree_rank_dec /* Definitions for byte number in an address */ #define H5F_CRT_ADDR_BYTE_NUM_SIZE sizeof(uint8_t) #define H5F_CRT_ADDR_BYTE_NUM_DEF H5F_OBJ_ADDR_SIZE +#define H5F_CRT_ADDR_BYTE_NUM_ENC H5P__encode_uint8_t +#define H5F_CRT_ADDR_BYTE_NUM_DEC H5P__decode_uint8_t /* Definitions for byte number for object size */ #define H5F_CRT_OBJ_BYTE_NUM_SIZE sizeof(uint8_t) #define H5F_CRT_OBJ_BYTE_NUM_DEF H5F_OBJ_SIZE_SIZE +#define H5F_CRT_OBJ_BYTE_NUM_ENC H5P__encode_uint8_t +#define H5F_CRT_OBJ_BYTE_NUM_DEC H5P__decode_uint8_t /* Definitions for version number of the superblock */ #define H5F_CRT_SUPER_VERS_SIZE sizeof(unsigned) #define H5F_CRT_SUPER_VERS_DEF HDF5_SUPERBLOCK_VERSION_DEF /* Definitions for shared object header messages */ #define H5F_CRT_SHMSG_NINDEXES_SIZE sizeof(unsigned) #define H5F_CRT_SHMSG_NINDEXES_DEF (0) +#define H5F_CRT_SHMSG_NINDEXES_ENC H5P__encode_unsigned +#define H5F_CRT_SHMSG_NINDEXES_DEC H5P__decode_unsigned #define H5F_CRT_SHMSG_INDEX_TYPES_SIZE sizeof(unsigned[H5O_SHMESG_MAX_NINDEXES]) #define H5F_CRT_SHMSG_INDEX_TYPES_DEF {0,0,0,0,0,0} +#define H5F_CRT_SHMSG_INDEX_TYPES_ENC H5P__fcrt_shmsg_index_types_enc +#define H5F_CRT_SHMSG_INDEX_TYPES_DEC H5P__fcrt_shmsg_index_types_dec #define H5F_CRT_SHMSG_INDEX_MINSIZE_SIZE sizeof(unsigned[H5O_SHMESG_MAX_NINDEXES]) #define H5F_CRT_SHMSG_INDEX_MINSIZE_DEF {250,250,250,250,250,250} +#define H5F_CRT_SHMSG_INDEX_MINSIZE_ENC H5P__fcrt_shmsg_index_minsize_enc +#define H5F_CRT_SHMSG_INDEX_MINSIZE_DEC H5P__fcrt_shmsg_index_minsize_dec /* Definitions for shared object header list/btree phase change cutoffs */ #define H5F_CRT_SHMSG_LIST_MAX_SIZE sizeof(unsigned) #define H5F_CRT_SHMSG_LIST_MAX_DEF (50) +#define H5F_CRT_SHMSG_LIST_MAX_ENC H5P__encode_unsigned +#define H5F_CRT_SHMSG_LIST_MAX_DEC H5P__decode_unsigned #define H5F_CRT_SHMSG_BTREE_MIN_SIZE sizeof(unsigned) #define H5F_CRT_SHMSG_BTREE_MIN_DEF (40) +#define H5F_CRT_SHMSG_BTREE_MIN_ENC H5P__encode_unsigned +#define H5F_CRT_SHMSG_BTREE_MIN_DEC H5P__decode_unsigned /* Definitions for file space handling strategy */ #define H5F_CRT_FILE_SPACE_STRATEGY_SIZE sizeof(unsigned) #define H5F_CRT_FILE_SPACE_STRATEGY_DEF H5F_FILE_SPACE_STRATEGY_DEF +#define H5F_CRT_FILE_SPACE_STRATEGY_ENC H5P__encode_unsigned +#define H5F_CRT_FILE_SPACE_STRATEGY_DEC H5P__decode_unsigned #define H5F_CRT_FREE_SPACE_THRESHOLD_SIZE sizeof(hsize_t) #define H5F_CRT_FREE_SPACE_THRESHOLD_DEF H5F_FREE_SPACE_THRESHOLD_DEF +#define H5F_CRT_FREE_SPACE_THRESHOLD_ENC H5P__encode_hsize_t +#define H5F_CRT_FREE_SPACE_THRESHOLD_DEC H5P__decode_hsize_t /******************/ @@ -99,6 +123,15 @@ /* Property class callbacks */ static herr_t H5P_fcrt_reg_prop(H5P_genclass_t *pclass); +/* property callbacks */ +static herr_t H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__fcrt_btree_rank_dec(const void **_pp, void *value); +static herr_t H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__fcrt_shmsg_index_types_dec(const void **_pp, void *value); +static herr_t H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__fcrt_shmsg_index_minsize_dec(const void **_pp, void *value); + + /*********************/ /* Package Variables */ /*********************/ @@ -129,6 +162,21 @@ const H5P_libclass_t H5P_CLS_FCRT[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const hsize_t H5F_def_userblock_size_g = H5F_CRT_USER_BLOCK_DEF; /* Default userblock size */ +static const unsigned H5F_def_sym_leaf_k_g = H5F_CRT_SYM_LEAF_DEF; /* Default size for symbol table leaf nodes */ +static const unsigned H5F_def_btree_k_g[H5B_NUM_BTREE_ID] = H5F_CRT_BTREE_RANK_DEF; /* Default 'K' values for B-trees in file */ +static const uint8_t H5F_def_sizeof_addr_g = H5F_CRT_ADDR_BYTE_NUM_DEF; /* Default size of addresses in the file */ +static const uint8_t H5F_def_sizeof_size_g = H5F_CRT_OBJ_BYTE_NUM_DEF; /* Default size of sizes in the file */ +static const unsigned H5F_def_superblock_ver_g = H5F_CRT_SUPER_VERS_DEF; /* Default superblock version # */ +static const unsigned H5F_def_num_sohm_indexes_g = H5F_CRT_SHMSG_NINDEXES_DEF; +static const unsigned H5F_def_sohm_index_flags_g[H5O_SHMESG_MAX_NINDEXES] = H5F_CRT_SHMSG_INDEX_TYPES_DEF; +static const unsigned H5F_def_sohm_index_minsizes_g[H5O_SHMESG_MAX_NINDEXES] = H5F_CRT_SHMSG_INDEX_MINSIZE_DEF; +static const unsigned H5F_def_sohm_list_max_g = H5F_CRT_SHMSG_LIST_MAX_DEF; +static const unsigned H5F_def_sohm_btree_min_g = H5F_CRT_SHMSG_BTREE_MIN_DEF; +static const unsigned H5F_def_file_space_strategy_g = H5F_CRT_FILE_SPACE_STRATEGY_DEF; +static const hsize_t H5F_def_free_space_threshold_g = H5F_CRT_FREE_SPACE_THRESHOLD_DEF; + /*------------------------------------------------------------------------- @@ -145,68 +193,82 @@ const H5P_libclass_t H5P_CLS_FCRT[1] = {{ static herr_t H5P_fcrt_reg_prop(H5P_genclass_t *pclass) { - hsize_t userblock_size = H5F_CRT_USER_BLOCK_DEF; /* Default userblock size */ - unsigned sym_leaf_k = H5F_CRT_SYM_LEAF_DEF; /* Default size for symbol table leaf nodes */ - unsigned btree_k[H5B_NUM_BTREE_ID] = H5F_CRT_BTREE_RANK_DEF; /* Default 'K' values for B-trees in file */ - uint8_t sizeof_addr = H5F_CRT_ADDR_BYTE_NUM_DEF; /* Default size of addresses in the file */ - uint8_t sizeof_size = H5F_CRT_OBJ_BYTE_NUM_DEF; /* Default size of sizes in the file */ - unsigned superblock_ver = H5F_CRT_SUPER_VERS_DEF; /* Default superblock version # */ - unsigned num_sohm_indexes = H5F_CRT_SHMSG_NINDEXES_DEF; - unsigned sohm_index_flags[H5O_SHMESG_MAX_NINDEXES] = H5F_CRT_SHMSG_INDEX_TYPES_DEF; - unsigned sohm_index_minsizes[H5O_SHMESG_MAX_NINDEXES] = H5F_CRT_SHMSG_INDEX_MINSIZE_DEF; - unsigned sohm_list_max = H5F_CRT_SHMSG_LIST_MAX_DEF; - unsigned sohm_btree_min = H5F_CRT_SHMSG_BTREE_MIN_DEF; - unsigned file_space_strategy = H5F_CRT_FILE_SPACE_STRATEGY_DEF; - hsize_t free_space_threshold = H5F_CRT_FREE_SPACE_THRESHOLD_DEF; herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT /* Register the user block size */ - if(H5P_register_real(pclass, H5F_CRT_USER_BLOCK_NAME, H5F_CRT_USER_BLOCK_SIZE, &userblock_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_USER_BLOCK_NAME, H5F_CRT_USER_BLOCK_SIZE, &H5F_def_userblock_size_g, + NULL, NULL, NULL, H5F_CRT_USER_BLOCK_ENC, H5F_CRT_USER_BLOCK_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the 1/2 rank for symbol table leaf nodes */ - if(H5P_register_real(pclass, H5F_CRT_SYM_LEAF_NAME, H5F_CRT_SYM_LEAF_SIZE, &sym_leaf_k, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_SYM_LEAF_NAME, H5F_CRT_SYM_LEAF_SIZE, &H5F_def_sym_leaf_k_g, + NULL, NULL, NULL, H5F_CRT_SYM_LEAF_ENC, H5F_CRT_SYM_LEAF_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the 1/2 rank for btree internal nodes */ - if(H5P_register_real(pclass, H5F_CRT_BTREE_RANK_NAME, H5F_CRT_BTREE_RANK_SIZE, btree_k, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_BTREE_RANK_NAME, H5F_CRT_BTREE_RANK_SIZE, H5F_def_btree_k_g, + NULL, NULL, NULL, H5F_CRT_BTREE_RANK_ENC, H5F_CRT_BTREE_RANK_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the byte number for an address */ - if(H5P_register_real(pclass, H5F_CRT_ADDR_BYTE_NUM_NAME, H5F_CRT_ADDR_BYTE_NUM_SIZE, &sizeof_addr, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_ADDR_BYTE_NUM_NAME, H5F_CRT_ADDR_BYTE_NUM_SIZE, &H5F_def_sizeof_addr_g, + NULL, NULL, NULL, H5F_CRT_ADDR_BYTE_NUM_ENC, H5F_CRT_ADDR_BYTE_NUM_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the byte number for object size */ - if(H5P_register_real(pclass, H5F_CRT_OBJ_BYTE_NUM_NAME, H5F_CRT_OBJ_BYTE_NUM_SIZE, &sizeof_size, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_OBJ_BYTE_NUM_NAME, H5F_CRT_OBJ_BYTE_NUM_SIZE, &H5F_def_sizeof_size_g, + NULL, NULL, NULL, H5F_CRT_OBJ_BYTE_NUM_ENC, H5F_CRT_OBJ_BYTE_NUM_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the superblock version number */ - if(H5P_register_real(pclass, H5F_CRT_SUPER_VERS_NAME, H5F_CRT_SUPER_VERS_SIZE, &superblock_ver, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5F_CRT_SUPER_VERS_NAME, H5F_CRT_SUPER_VERS_SIZE, &H5F_def_superblock_ver_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the shared OH message information */ - if(H5P_register_real(pclass,H5F_CRT_SHMSG_NINDEXES_NAME, H5F_CRT_SHMSG_NINDEXES_SIZE, &num_sohm_indexes,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_register_real(pclass, H5F_CRT_SHMSG_NINDEXES_NAME, H5F_CRT_SHMSG_NINDEXES_SIZE, &H5F_def_num_sohm_indexes_g, + NULL, NULL, NULL, H5F_CRT_SHMSG_NINDEXES_ENC, H5F_CRT_SHMSG_NINDEXES_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass,H5F_CRT_SHMSG_INDEX_TYPES_NAME, H5F_CRT_SHMSG_INDEX_TYPES_SIZE, &sohm_index_flags,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_register_real(pclass, H5F_CRT_SHMSG_INDEX_TYPES_NAME, H5F_CRT_SHMSG_INDEX_TYPES_SIZE, &H5F_def_sohm_index_flags_g, + NULL, NULL, NULL, H5F_CRT_SHMSG_INDEX_TYPES_ENC, H5F_CRT_SHMSG_INDEX_TYPES_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass,H5F_CRT_SHMSG_INDEX_MINSIZE_NAME, H5F_CRT_SHMSG_INDEX_MINSIZE_SIZE, &sohm_index_minsizes,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_register_real(pclass, H5F_CRT_SHMSG_INDEX_MINSIZE_NAME, H5F_CRT_SHMSG_INDEX_MINSIZE_SIZE, &H5F_def_sohm_index_minsizes_g, + NULL, NULL, NULL, H5F_CRT_SHMSG_INDEX_MINSIZE_ENC, H5F_CRT_SHMSG_INDEX_MINSIZE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the shared OH cutoff size information */ - if(H5P_register_real(pclass,H5F_CRT_SHMSG_LIST_MAX_NAME, H5F_CRT_SHMSG_LIST_MAX_SIZE, &sohm_list_max,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_register_real(pclass, H5F_CRT_SHMSG_LIST_MAX_NAME, H5F_CRT_SHMSG_LIST_MAX_SIZE, &H5F_def_sohm_list_max_g, + NULL, NULL, NULL, H5F_CRT_SHMSG_LIST_MAX_ENC, H5F_CRT_SHMSG_LIST_MAX_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") - if(H5P_register_real(pclass,H5F_CRT_SHMSG_BTREE_MIN_NAME, H5F_CRT_SHMSG_BTREE_MIN_SIZE, &sohm_btree_min,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) + if(H5P_register_real(pclass, H5F_CRT_SHMSG_BTREE_MIN_NAME, H5F_CRT_SHMSG_BTREE_MIN_SIZE, &H5F_def_sohm_btree_min_g, + NULL, NULL, NULL, H5F_CRT_SHMSG_BTREE_MIN_ENC, H5F_CRT_SHMSG_BTREE_MIN_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the file space handling strategy */ - if(H5P_register_real(pclass, H5F_CRT_FILE_SPACE_STRATEGY_NAME, H5F_CRT_FILE_SPACE_STRATEGY_SIZE, &file_space_strategy, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_FILE_SPACE_STRATEGY_NAME, H5F_CRT_FILE_SPACE_STRATEGY_SIZE, &H5F_def_file_space_strategy_g, + NULL, NULL, NULL, H5F_CRT_FILE_SPACE_STRATEGY_ENC, H5F_CRT_FILE_SPACE_STRATEGY_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the free space section threshold */ - if(H5P_register_real(pclass, H5F_CRT_FREE_SPACE_THRESHOLD_NAME, H5F_CRT_FREE_SPACE_THRESHOLD_SIZE, &free_space_threshold, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5F_CRT_FREE_SPACE_THRESHOLD_NAME, H5F_CRT_FREE_SPACE_THRESHOLD_SIZE, &H5F_def_free_space_threshold_g, + NULL, NULL, NULL, H5F_CRT_FREE_SPACE_THRESHOLD_ENC, H5F_CRT_FREE_SPACE_THRESHOLD_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5P_fcrt_reg_prop() */ @@ -613,6 +675,97 @@ done: /*------------------------------------------------------------------------- + * Function: H5P__fcrt_btree_rank_enc + * + * Purpose: Callback routine which is called whenever the index storage + * btree in file creation property list is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 7, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size) +{ + const unsigned *btree_k = (const unsigned *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(btree_k); + HDassert(size); + + if(NULL != *pp) { + unsigned u; /* Local index variable */ + + /* Encode the size of an unsigned*/ + *(*pp)++ = (uint8_t)sizeof(unsigned); + + /* Encode all the btree */ + for(u = 0 ; u < H5B_NUM_BTREE_ID; u++) { + /* Encode the left split value */ + H5_ENCODE_UNSIGNED(*pp, *(const unsigned *)btree_k) + btree_k++; + } /* end for */ + } /* end if */ + + /* Size of type flags values */ + *size += 1 + (H5B_NUM_BTREE_ID * sizeof(unsigned)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__fcrt_btree_rank_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__fcrt_btree_rank_dec + * + * Purpose: Callback routine which is called whenever the index storage + * btree in file creation property list is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 7, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fcrt_btree_rank_dec(const void **_pp, void *_value) +{ + unsigned *btree_k = (unsigned *)_value; + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; /* Size of encoded property */ + unsigned u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(btree_k); + + /* Decode the size */ + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + + /* Decode all the type flags */ + for(u = 0 ; u < H5B_NUM_BTREE_ID; u++) + H5_DECODE_UNSIGNED(*pp, btree_k[u]) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__fcrt_btree_rank_dec() */ + + +/*------------------------------------------------------------------------- * Function: H5Pset_shared_mesg_nindexes * * Purpose: Set the number of Shared Object Header Message (SOHM) @@ -812,6 +965,192 @@ done: /*------------------------------------------------------------------------- + * Function: H5P__fcrt_shmsg_index_types_enc + * + * Purpose: Callback routine which is called whenever the shared + * message indec types in file creation property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 7, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size) +{ + const unsigned *type_flags = (const unsigned *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(type_flags); + HDassert(size); + + if(NULL != *pp) { + unsigned u; /* Local index variable */ + + /* Encode the size of a double*/ + *(*pp)++ = (uint8_t)sizeof(unsigned); + + /* Encode all the type flags */ + for(u = 0; u < H5O_SHMESG_MAX_NINDEXES; u++) { + /* Encode the left split value */ + H5_ENCODE_UNSIGNED(*pp, *(const unsigned *)type_flags) + type_flags++; + } /* end for */ + } /* end if */ + + /* Size of type flags values */ + *size += 1 + (H5O_SHMESG_MAX_NINDEXES * sizeof(unsigned)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__fcrt_shmsg_index_types_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__fcrt_shmsg_index_types_dec + * + * Purpose: Callback routine which is called whenever the shared + * message indec types in file creation property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 7, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fcrt_shmsg_index_types_dec(const void **_pp, void *_value) +{ + unsigned *type_flags = (unsigned *)_value; + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; /* Size of encoded property */ + unsigned u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(type_flags); + + /* Decode the size */ + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + + /* Decode all the type flags */ + for(u = 0; u < H5O_SHMESG_MAX_NINDEXES; u++) + H5_DECODE_UNSIGNED(*pp, type_flags[u]) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__fcrt_shmsg_index_types_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__fcrt_shmsg_index_minsize_enc + * + * Purpose: Callback routine which is called whenever the shared + * message index minsize in file creation property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 7, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size) +{ + const unsigned *minsizes = (const unsigned *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(minsizes); + HDassert(size); + + if(NULL != *pp) { + unsigned u; /* Local index variable */ + + /* Encode the size of a double*/ + *(*pp)++ = (uint8_t)sizeof(unsigned); + + /* Encode all the minsize values */ + for(u = 0 ; u < H5O_SHMESG_MAX_NINDEXES; u++) { + /* Encode the left split value */ + H5_ENCODE_UNSIGNED(*pp, *(const unsigned *)minsizes) + minsizes++; + } /* end for */ + } /* end if */ + + /* Size of type flags values */ + *size += 1 + (H5O_SHMESG_MAX_NINDEXES * sizeof(unsigned)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__fcrt_shmsg_index_minsize_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__fcrt_shmsg_index_minsize_dec + * + * Purpose: Callback routine which is called whenever the shared + * message indec minsize in file creation property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * August 7, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__fcrt_shmsg_index_minsize_dec(const void **_pp, void *_value) +{ + unsigned *minsizes = (unsigned *)_value; + const uint8_t **pp = (const uint8_t **)_pp; + unsigned enc_size; /* Size of encoded property */ + unsigned u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(minsizes); + + /* Decode the size */ + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + + /* Decode all the minsize values */ + for(u = 0 ; u < H5O_SHMESG_MAX_NINDEXES; u++) + H5_DECODE_UNSIGNED(*pp, minsizes[u]) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__fcrt_shmsg_index_minsize_dec() */ + + +/*------------------------------------------------------------------------- * Function: H5Pset_shared_mesg_phase_change * * Purpose: Sets the cutoff values for indexes storing shared object diff --git a/src/H5Pfmpl.c b/src/H5Pfmpl.c index 0158bf1..1c4d3f4 100644 --- a/src/H5Pfmpl.c +++ b/src/H5Pfmpl.c @@ -93,6 +93,14 @@ const H5P_libclass_t H5P_CLS_FMNT[1] = {{ /*****************************/ +/*******************/ +/* Local Variables */ +/*******************/ + +/* Property value defaults */ +static const hbool_t H5F_def_local_g = H5F_MNT_SYM_LOCAL_DEF; /* Whether symlinks are local to file */ + + /*------------------------------------------------------------------------- * Function: H5P_fmnt_reg_prop @@ -108,14 +116,14 @@ const H5P_libclass_t H5P_CLS_FMNT[1] = {{ static herr_t H5P_fmnt_reg_prop(H5P_genclass_t *pclass) { - hbool_t local = H5F_MNT_SYM_LOCAL_DEF; /* Whether symlinks are local to file */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT /* Register property of whether symlinks is local to file */ - if(H5P_register_real(pclass, H5F_MNT_SYM_LOCAL_NAME, H5F_MNT_SYM_LOCAL_SIZE, &local, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + if(H5P_register_real(pclass, H5F_MNT_SYM_LOCAL_NAME, H5F_MNT_SYM_LOCAL_SIZE, &H5F_def_local_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: FUNC_LEAVE_NOAPI(ret_value) diff --git a/src/H5Pgcpl.c b/src/H5Pgcpl.c index 737976e..0210700 100644 --- a/src/H5Pgcpl.c +++ b/src/H5Pgcpl.c @@ -42,6 +42,12 @@ /* Local Macros */ /****************/ +/* ========= Group Creation properties ============ */ +#define H5G_CRT_GROUP_INFO_ENC H5P__gcrt_group_info_enc +#define H5G_CRT_GROUP_INFO_DEC H5P__gcrt_group_info_dec +#define H5G_CRT_LINK_INFO_ENC H5P__gcrt_link_info_enc +#define H5G_CRT_LINK_INFO_DEC H5P__gcrt_link_info_dec + /******************/ /* Local Typedefs */ @@ -58,7 +64,13 @@ /********************/ /* Property class callbacks */ -static herr_t H5P_gcrt_reg_prop(H5P_genclass_t *pclass); +static herr_t H5P__gcrt_reg_prop(H5P_genclass_t *pclass); + +/* Property callbacks */ +static herr_t H5P__gcrt_group_info_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__gcrt_group_info_dec(const void **_pp, void *value); +static herr_t H5P__gcrt_link_info_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__gcrt_link_info_dec(const void **_pp, void *value); /*********************/ @@ -72,7 +84,7 @@ const H5P_libclass_t H5P_CLS_GCRT[1] = {{ &H5P_CLS_OBJECT_CREATE_g, /* Parent class ID */ &H5P_CLS_GROUP_CREATE_g, /* Pointer to class ID */ &H5P_LST_GROUP_CREATE_g, /* Pointer to default property list ID */ - H5P_gcrt_reg_prop, /* Default property registration routine */ + H5P__gcrt_reg_prop, /* Default property registration routine */ NULL, /* Class creation callback */ NULL, /* Class creation callback info */ NULL, /* Class copy callback */ @@ -91,10 +103,14 @@ const H5P_libclass_t H5P_CLS_GCRT[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const H5O_ginfo_t H5G_def_ginfo_g = H5G_CRT_GROUP_INFO_DEF; /* Default group info settings */ +static const H5O_linfo_t H5G_def_linfo_g = H5G_CRT_LINK_INFO_DEF; /* Default link info settings */ + /*------------------------------------------------------------------------- - * Function: H5P_gcrt_reg_prop + * Function: H5P__gcrt_reg_prop * * Purpose: Initialize the group creation property list class * @@ -105,25 +121,27 @@ const H5P_libclass_t H5P_CLS_GCRT[1] = {{ *------------------------------------------------------------------------- */ static herr_t -H5P_gcrt_reg_prop(H5P_genclass_t *pclass) +H5P__gcrt_reg_prop(H5P_genclass_t *pclass) { - H5O_ginfo_t ginfo = H5G_CRT_GROUP_INFO_DEF; /* Default group info settings */ - H5O_linfo_t linfo = H5G_CRT_LINK_INFO_DEF; /* Default link info settings */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Register group info property */ - if(H5P_register_real(pclass, H5G_CRT_GROUP_INFO_NAME, H5G_CRT_GROUP_INFO_SIZE, &ginfo, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + if(H5P_register_real(pclass, H5G_CRT_GROUP_INFO_NAME, H5G_CRT_GROUP_INFO_SIZE, &H5G_def_ginfo_g, + NULL, NULL, NULL, H5G_CRT_GROUP_INFO_ENC, H5G_CRT_GROUP_INFO_DEC, + NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register link info property */ - if(H5P_register_real(pclass, H5G_CRT_LINK_INFO_NAME, H5G_CRT_LINK_INFO_SIZE, &linfo, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + if(H5P_register_real(pclass, H5G_CRT_LINK_INFO_NAME, H5G_CRT_LINK_INFO_SIZE, &H5G_def_linfo_g, + NULL, NULL, NULL, H5G_CRT_LINK_INFO_ENC, H5G_CRT_LINK_INFO_DEC, + NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_gcrt_reg_prop() */ +} /* end H5P__gcrt_reg_prop() */ /*------------------------------------------------------------------------- @@ -156,7 +174,7 @@ H5Pset_local_heap_size_hint(hid_t plist_id, size_t size_hint) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info") /* Update field */ - ginfo.lheap_size_hint = size_hint; + H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t); /* Set value */ if(H5P_set(plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0) @@ -506,3 +524,176 @@ done: FUNC_LEAVE_API(ret_value) } /* end H5Pget_link_creation_order() */ + +/*------------------------------------------------------------------------- + * Function: H5P__gcrt_group_info_enc + * + * Purpose: Callback routine which is called whenever the group + * property in the dataset access property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__gcrt_group_info_enc(const void *value, void **_pp, size_t *size) +{ + const H5O_ginfo_t *ginfo = (const H5O_ginfo_t *)value; /* Create local aliases for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + if(NULL != *pp) { + UINT32ENCODE(*pp, ginfo->lheap_size_hint) + UINT16ENCODE(*pp, ginfo->max_compact) + UINT16ENCODE(*pp, ginfo->min_dense) + UINT16ENCODE(*pp, ginfo->est_num_entries) + UINT16ENCODE(*pp, ginfo->est_name_len) + } /* end if */ + + *size += sizeof(uint16_t) * 4 + sizeof(uint32_t); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__gcrt_group_info_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__gcrt_group_info_dec + * + * Purpose: Callback routine which is called whenever the group info + * property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__gcrt_group_info_dec(const void **_pp, void *_value) +{ + H5O_ginfo_t *ginfo = (H5O_ginfo_t *)_value; /* Group info settings */ + const uint8_t **pp = (const uint8_t **)_pp; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC_NOERR + + /* Set property to default value */ + *ginfo = H5G_def_ginfo_g; + + UINT32DECODE(*pp, ginfo->lheap_size_hint) + UINT16DECODE(*pp, ginfo->max_compact) + UINT16DECODE(*pp, ginfo->min_dense) + UINT16DECODE(*pp, ginfo->est_num_entries) + UINT16DECODE(*pp, ginfo->est_name_len) + + /* Update fields */ + if(ginfo->max_compact != H5G_CRT_GINFO_MAX_COMPACT || + ginfo->min_dense != H5G_CRT_GINFO_MIN_DENSE) + ginfo->store_link_phase_change = TRUE; + else + ginfo->store_link_phase_change = FALSE; + + if(ginfo->est_num_entries != H5G_CRT_GINFO_EST_NUM_ENTRIES || + ginfo->est_name_len != H5G_CRT_GINFO_EST_NAME_LEN) + ginfo->store_est_entry_info = TRUE; + else + ginfo->store_est_entry_info = FALSE; + + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__gcrt_group_info_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__gcrt_link_info_enc + * + * Purpose: Callback routine which is called whenever the link + * property in the dataset access property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__gcrt_link_info_enc(const void *value, void **_pp, size_t *size) +{ + const H5O_linfo_t *linfo = (const H5O_linfo_t *)value; /* Create local aliases for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + if(NULL != *pp) { + unsigned crt_order_flags = 0; + + crt_order_flags |= linfo->track_corder ? H5P_CRT_ORDER_TRACKED : 0; + crt_order_flags |= linfo->index_corder ? H5P_CRT_ORDER_INDEXED : 0; + + /* Encode the size of unsigned*/ + *(*pp)++ = (uint8_t)sizeof(unsigned); + + /* Encode the value */ + H5_ENCODE_UNSIGNED(*pp, crt_order_flags) + } /* end if */ + + *size += (1 + sizeof(unsigned)); + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__gcrt_link_info_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__gcrt_link_info_dec + * + * Purpose: Callback routine which is called whenever the link info + * property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__gcrt_link_info_dec(const void **_pp, void *_value) +{ + H5O_linfo_t *linfo = (H5O_linfo_t *)_value; /* Link info settings */ + const uint8_t **pp = (const uint8_t **)_pp; + unsigned crt_order_flags; + unsigned enc_size; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + + /* Set property to default value */ + *linfo = H5G_def_linfo_g; + + H5_DECODE_UNSIGNED(*pp, crt_order_flags) + + /* Update fields */ + linfo->track_corder = (hbool_t)((crt_order_flags & H5P_CRT_ORDER_TRACKED) ? TRUE : FALSE); + linfo->index_corder = (hbool_t)((crt_order_flags & H5P_CRT_ORDER_INDEXED) ? TRUE : FALSE); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__gcrt_link_info_dec() */ + diff --git a/src/H5Pint.c b/src/H5Pint.c index b2d5860..88c3247 100644 --- a/src/H5Pint.c +++ b/src/H5Pint.c @@ -59,7 +59,7 @@ typedef struct { typedef struct { H5P_iterate_int_t cb_func; /* Iterator callback */ void *udata; /* Iterator callback pointer */ - H5P_genplist_t *plist; /* Property list pointer */ + const H5P_genplist_t *plist; /* Property list pointer */ H5SL_t *seen; /* Skip list to hold names of properties already seen */ int *curr_idx_ptr; /* Pointer to current iteration index */ int prev_idx; /* Previous iteration index */ @@ -73,6 +73,12 @@ typedef struct { int prev_idx; /* Previous iteration index */ } H5P_iter_pclass_ud_t; +/* Typedef for property list comparison callback */ +typedef struct { + const H5P_genplist_t *plist2; /* Pointer to second property list */ + int cmp_value; /* Value from property comparison */ +} H5P_plist_cmp_ud_t; + /********************/ /* Local Prototypes */ @@ -964,7 +970,7 @@ done: Internal routine to create a new property USAGE H5P_genprop_t *H5P_create_prop(name,size,type,value,prp_create,prp_set, - prp_get,prp_delete,prp_close) + prp_get,prp_delete,prp_close, prp_encode, prp_decode) const char *name; IN: Name of property to register size_t size; IN: Size of property in bytes H5P_prop_within_t type; IN: Type of object the property will be inserted into @@ -973,6 +979,8 @@ done: creation callback H5P_prp_set_func_t prp_set; IN: Function pointer to property set callback H5P_prp_get_func_t prp_get; IN: Function pointer to property get callback + H5P_prp_encode_func_t prp_encode; IN: Function pointer to property encode + H5P_prp_decode_func_t prp_decode; IN: Function pointer to property decode H5P_prp_delete_func_t prp_delete; IN: Function pointer to property delete callback H5P_prp_copy_func_t prp_copy; IN: Function pointer to property copy callback H5P_prp_compare_func_t prp_cmp; IN: Function pointer to property compare callback @@ -990,9 +998,10 @@ done: --------------------------------------------------------------------------*/ static H5P_genprop_t * H5P_create_prop(const char *name, size_t size, H5P_prop_within_t type, - const void *value, - H5P_prp_create_func_t prp_create, H5P_prp_set_func_t prp_set, - H5P_prp_get_func_t prp_get, H5P_prp_delete_func_t prp_delete, + const void *value, H5P_prp_create_func_t prp_create, + H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, + H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close) { @@ -1028,6 +1037,8 @@ H5P_create_prop(const char *name, size_t size, H5P_prop_within_t type, prop->create = prp_create; prop->set = prp_set; prop->get = prp_get; + prop->encode = prp_encode; + prop->decode = prp_decode; prop->del = prp_delete; prop->copy = prp_copy; /* Use custom comparison routine if available, otherwise default to memcmp() */ @@ -1101,7 +1112,7 @@ done: Internal routine to check for a property in a property list's skip list USAGE H5P_genprop_t *H5P_find_prop(plist, name) - H5P_genplist_t *plist; IN: Pointer to property list to check + const H5P_genplist_t *plist; IN: Pointer to property list to check const char *name; IN: Name of property to check for RETURNS Returns pointer to property on success, NULL on failure. @@ -1113,7 +1124,7 @@ done: REVISION LOG --------------------------------------------------------------------------*/ H5P_genprop_t * -H5P__find_prop_plist(H5P_genplist_t *plist, const char *name) +H5P__find_prop_plist(const H5P_genplist_t *plist, const char *name) { H5P_genprop_t *ret_value; /* Property pointer return value */ @@ -1776,7 +1787,8 @@ done: PURPOSE Internal routine to register a new property in a property list class. USAGE - herr_t H5P_register_real(class, name, size, default, prp_create, prp_set, prp_get, prp_close) + herr_t H5P_register_real(class, name, size, default, prp_create, prp_set, + prp_get, prp_close, prp_encode, prp_decode) H5P_genclass_t *class; IN: Property list class to modify const char *name; IN: Name of property to register size_t size; IN: Size of property in bytes @@ -1786,6 +1798,8 @@ done: creation callback H5P_prp_set_func_t prp_set; IN: Function pointer to property set callback H5P_prp_get_func_t prp_get; IN: Function pointer to property get callback + H5P_prp_encode_func_t prp_encode; IN: Function pointer to property encode + H5P_prp_decode_func_t prp_decode; IN: Function pointer to property decode H5P_prp_delete_func_t prp_delete; IN: Function pointer to property delete callback H5P_prp_copy_func_t prp_copy; IN: Function pointer to property copy callback H5P_prp_compare_func_t prp_cmp; IN: Function pointer to property compare callback @@ -1905,6 +1919,33 @@ done: 'close' routine returns a negative value, the property list close routine returns an error value but the property list is still closed. + The 'encode' callback is called when a property list with this + property is being encoded. H5P_prp_encode_func_t is defined as: + typedef herr_t (*H5P_prp_encode_func_t)(void *f, size_t *size, + void *value, void *plist, uint8_t **buf); + where the parameters to the callback function are: + void *f; IN: A fake file structure used to encode. + size_t *size; IN/OUT: The size of the buffer to encode the property. + void *value; IN: The value of the property being encoded. + void *plist; IN: The property list structure. + uint8_t **buf; OUT: The buffer that holds the encoded property; + The 'encode' routine returns the size needed to encode the property value + if the buffer passed in is NULL or the size is zero. Otherwise it encodes + the property value into binary in buf. + + The 'decode' callback is called when a property list with this + property is being decoded. H5P_prp_encode_func_t is defined as: + typedef herr_t (*H5P_prp_encode_func_t)(void *f, size_t *size, + void *value, void *plist, uint8_t **buf); + where the parameters to the callback function are: + void *f; IN: A fake file structure used to decode. + size_t *size; IN: UNUSED + void *value; IN: UNUSED + void *plist; IN: The property list structure. + uint8_t **buf; IN: The buffer that holds the binary encoded property; + The 'decode' routine decodes the binary buffer passed in and transforms it into + corresponding property values that are set in the property list passed in. + GLOBAL VARIABLES COMMENTS, BUGS, ASSUMPTIONS The 'set' callback function may be useful to range check the value being @@ -1926,8 +1967,10 @@ done: --------------------------------------------------------------------------*/ herr_t H5P_register_real(H5P_genclass_t *pclass, const char *name, size_t size, - const void *def_value, H5P_prp_create_func_t prp_create, H5P_prp_set_func_t prp_set, - H5P_prp_get_func_t prp_get, H5P_prp_delete_func_t prp_delete, + const void *def_value, H5P_prp_create_func_t prp_create, + H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, + H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close) { @@ -1947,7 +1990,9 @@ H5P_register_real(H5P_genclass_t *pclass, const char *name, size_t size, HGOTO_ERROR(H5E_PLIST, H5E_EXISTS, FAIL, "property already exists") /* Create property object from parameters */ - if(NULL == (new_prop = H5P_create_prop(name, size, H5P_PROP_WITHIN_CLASS, def_value, prp_create, prp_set, prp_get, prp_delete, prp_copy, prp_cmp, prp_close))) + if(NULL == (new_prop = H5P_create_prop(name, size, H5P_PROP_WITHIN_CLASS, + def_value, prp_create, prp_set, prp_get, prp_encode, prp_decode, + prp_delete, prp_copy, prp_cmp, prp_close))) HGOTO_ERROR(H5E_PLIST, H5E_CANTCREATE, FAIL,"Can't create property") /* Insert property into property list class */ @@ -1985,6 +2030,8 @@ done: creation callback H5P_prp_set_func_t prp_set; IN: Function pointer to property set callback H5P_prp_get_func_t prp_get; IN: Function pointer to property get callback + H5P_prp_encode_func_t prp_encode; IN: Function pointer to property encode + H5P_prp_decode_func_t prp_decode; IN: Function pointer to property decode H5P_prp_delete_func_t prp_delete; IN: Function pointer to property delete callback H5P_prp_copy_func_t prp_copy; IN: Function pointer to property copy callback H5P_prp_compare_func_t prp_cmp; IN: Function pointer to property compare callback @@ -2050,6 +2097,33 @@ done: negative value, the property value is returned and the property list get routine returns an error value. + The 'encode' callback is called when a property list with this + property is being encoded. H5P_prp_encode_func_t is defined as: + typedef herr_t (*H5P_prp_encode_func_t)(void *f, size_t *size, + void *value, void *plist, uint8_t **buf); + where the parameters to the callback function are: + void *f; IN: A fake file structure used to encode. + size_t *size; IN/OUT: The size of the buffer to encode the property. + void *value; IN: The value of the property being encoded. + void *plist; IN: The property list structure. + uint8_t **buf; OUT: The buffer that holds the encoded property; + The 'encode' routine returns the size needed to encode the property value + if the buffer passed in is NULL or the size is zero. Otherwise it encodes + the property value into binary in buf. + + The 'decode' callback is called when a property list with this + property is being decoded. H5P_prp_encode_func_t is defined as: + typedef herr_t (*H5P_prp_encode_func_t)(void *f, size_t *size, + void *value, void *plist, uint8_t **buf); + where the parameters to the callback function are: + void *f; IN: A fake file structure used to decode. + size_t *size; IN: UNUSED + void *value; IN: UNUSED + void *plist; IN: The property list structure. + uint8_t **buf; IN: The buffer that holds the binary encoded property; + The 'decode' routine decodes the binary buffer passed in and transforms it into + corresponding property values that are set in the property list passed in. + The 'delete' callback is called when a property is deleted from a property list. H5P_prp_del_func_t is defined as: typedef herr_t (*H5P_prp_del_func_t)(hid_t prop_id, const char *name, @@ -2125,8 +2199,10 @@ done: --------------------------------------------------------------------------*/ herr_t H5P_register(H5P_genclass_t **ppclass, const char *name, size_t size, - const void *def_value, H5P_prp_create_func_t prp_create, H5P_prp_set_func_t prp_set, - H5P_prp_get_func_t prp_get, H5P_prp_delete_func_t prp_delete, + const void *def_value, H5P_prp_create_func_t prp_create, + H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, + H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close) { @@ -2180,7 +2256,8 @@ H5P_register(H5P_genclass_t **ppclass, const char *name, size_t size, } /* end if */ /* Really register the property in the class */ - if(H5P_register_real(pclass, name, size, def_value, prp_create, prp_set, prp_get, prp_delete, prp_copy, prp_cmp, prp_close) < 0) + if(H5P_register_real(pclass, name, size, def_value, prp_create, prp_set, prp_get, + prp_encode, prp_decode, prp_delete, prp_copy, prp_cmp, prp_close) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTCREATE, FAIL, "can't register property") /* Update pointer to pointer to class, if a new one was generated */ @@ -2202,13 +2279,16 @@ done: PURPOSE Internal routine to insert a new property in a property list. USAGE - herr_t H5P_insert(plist, name, size, value, prp_set, prp_get, prp_close) + herr_t H5P_insert(plist, name, size, value, prp_set, prp_get, prp_close, + prp_encode, prp_decode) H5P_genplist_t *plist; IN: Property list to add property to const char *name; IN: Name of property to add size_t size; IN: Size of property in bytes void *value; IN: Pointer to the value for the property H5P_prp_set_func_t prp_set; IN: Function pointer to property set callback H5P_prp_get_func_t prp_get; IN: Function pointer to property get callback + H5P_prp_encode_func_t prp_encode; IN: Function pointer to property encode + H5P_prp_decode_func_t prp_decode; IN: Function pointer to property decode H5P_prp_delete_func_t prp_delete; IN: Function pointer to property delete callback H5P_prp_copy_func_t prp_copy; IN: Function pointer to property copy callback H5P_prp_compare_func_t prp_cmp; IN: Function pointer to property compare callback @@ -2258,6 +2338,33 @@ done: negative value, the property value is returned and the property list get routine returns an error value. + The 'encode' callback is called when a property list with this + property is being encoded. H5P_prp_encode_func_t is defined as: + typedef herr_t (*H5P_prp_encode_func_t)(void *f, size_t *size, + void *value, void *plist, uint8_t **buf); + where the parameters to the callback function are: + void *f; IN: A fake file structure used to encode. + size_t *size; IN/OUT: The size of the buffer to encode the property. + void *value; IN: The value of the property being encoded. + void *plist; IN: The property list structure. + uint8_t **buf; OUT: The buffer that holds the encoded property; + The 'encode' routine returns the size needed to encode the property value + if the buffer passed in is NULL or the size is zero. Otherwise it encodes + the property value into binary in buf. + + The 'decode' callback is called when a property list with this + property is being decoded. H5P_prp_encode_func_t is defined as: + typedef herr_t (*H5P_prp_encode_func_t)(void *f, size_t *size, + void *value, void *plist, uint8_t **buf); + where the parameters to the callback function are: + void *f; IN: A fake file structure used to decode. + size_t *size; IN: UNUSED + void *value; IN: UNUSED + void *plist; IN: The property list structure. + uint8_t **buf; IN: The buffer that holds the binary encoded property; + The 'decode' routine decodes the binary buffer passed in and transforms it into + corresponding property values that are set in the property list passed in. + The 'delete' callback is called when a property is deleted from a property list. H5P_prp_del_func_t is defined as: typedef herr_t (*H5P_prp_del_func_t)(hid_t prop_id, const char *name, @@ -2338,6 +2445,7 @@ done: herr_t H5P_insert(H5P_genplist_t *plist, const char *name, size_t size, void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close) { @@ -2385,7 +2493,9 @@ H5P_insert(H5P_genplist_t *plist, const char *name, size_t size, /* Ok to add to property list */ /* Create property object from parameters */ - if(NULL == (new_prop = H5P_create_prop(name, size, H5P_PROP_WITHIN_LIST, value, NULL, prp_set, prp_get, prp_delete, prp_copy, prp_cmp, prp_close))) + if(NULL == (new_prop = H5P_create_prop(name, size, H5P_PROP_WITHIN_LIST, value, NULL, + prp_set, prp_get, prp_encode, prp_decode, prp_delete, prp_copy, + prp_cmp, prp_close))) HGOTO_ERROR(H5E_PLIST, H5E_CANTCREATE, FAIL, "Can't create property") /* Insert property into property list class */ @@ -2572,7 +2682,7 @@ done: Internal routine to query the existance of a property in a property list. USAGE herr_t H5P_exist_plist(plist, name) - H5P_genplist_t *plist; IN: Property list to check + const H5P_genplist_t *plist; IN: Property list to check const char *name; IN: Name of property to check for RETURNS Success: Positive if the property exists in the property list, zero @@ -2587,7 +2697,7 @@ done: REVISION LOG --------------------------------------------------------------------------*/ htri_t -H5P_exist_plist(H5P_genplist_t *plist, const char *name) +H5P_exist_plist(const H5P_genplist_t *plist, const char *name) { htri_t ret_value = FAIL; /* return value */ @@ -2687,7 +2797,7 @@ done: Internal routine to query the size of a property in a property list. USAGE herr_t H5P_get_size_plist(plist, name) - H5P_genplist_t *plist; IN: Property list to check + const H5P_genplist_t *plist; IN: Property list to check const char *name; IN: Name of property to query size_t *size; OUT: Size of property RETURNS @@ -2703,7 +2813,7 @@ done: REVISION LOG --------------------------------------------------------------------------*/ herr_t -H5P_get_size_plist(H5P_genplist_t *plist, const char *name, size_t *size) +H5P_get_size_plist(const H5P_genplist_t *plist, const char *name, size_t *size) { H5P_genprop_t *prop; /* Temporary property pointer */ herr_t ret_value=SUCCEED; /* return value */ @@ -2944,6 +3054,16 @@ H5P_cmp_prop(const H5P_genprop_t *prop1, const H5P_genprop_t *prop2) if(prop1->get != NULL && prop2->get == NULL) HGOTO_DONE(1); if(prop1->get != prop2->get) HGOTO_DONE(-1); + /* Check if they both have the same 'encode' callback */ + if(prop1->encode == NULL && prop2->encode != NULL) HGOTO_DONE(-1); + if(prop1->encode != NULL && prop2->encode == NULL) HGOTO_DONE(1); + if(prop1->encode != prop2->encode) HGOTO_DONE(-1); + + /* Check if they both have the same 'decode' callback */ + if(prop1->decode == NULL && prop2->decode != NULL) HGOTO_DONE(-1); + if(prop1->decode != NULL && prop2->decode == NULL) HGOTO_DONE(1); + if(prop1->decode != prop2->decode) HGOTO_DONE(-1); + /* Check if they both have the same 'delete' callback */ if(prop1->del == NULL && prop2->del != NULL) HGOTO_DONE(-1); if(prop1->del != NULL && prop2->del == NULL) HGOTO_DONE(1); @@ -3086,105 +3206,141 @@ done: /*-------------------------------------------------------------------------- NAME + H5P__cmp_plist_cb + PURPOSE + Internal callback routine when iterating over properties in property list + to compare them for equality + USAGE + int H5P__cmp_plist_cb(prop, udata) + H5P_genprop_t *prop; IN: Pointer to the property + void *udata; IN/OUT: Pointer to iteration data from user + RETURNS + Success: Returns whether to continue (H5_ITER_CONT) or stop (H5_ITER_STOP) + iterating over the property lists. + Failure: Negative value (H5_ITER_ERROR) + DESCRIPTION + This routine compares a property from one property list (the one being + iterated over, to a property from the second property list (which is + looked up). Iteration is stopped if the comparison is non-equal. + GLOBAL VARIABLES + COMMENTS, BUGS, ASSUMPTIONS + EXAMPLES + REVISION LOG +--------------------------------------------------------------------------*/ +static int +H5P__cmp_plist_cb(H5P_genprop_t *prop, void *_udata) +{ + H5P_plist_cmp_ud_t *udata = (H5P_plist_cmp_ud_t *)_udata; /* Pointer to user data */ + htri_t prop2_exist; /* Whether the property exists in the second property list */ + int ret_value = H5_ITER_CONT; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDassert(prop); + HDassert(udata); + + /* Check if the property exists in the second property list */ + if((prop2_exist = H5P_exist_plist(udata->plist2, prop->name)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, H5_ITER_ERROR, "can't lookup existance of property?") + if(prop2_exist) { + const H5P_genprop_t *prop2; /* Pointer to property in second plist */ + + /* Look up same property in second property list */ + if(NULL == (prop2 = H5P__find_prop_plist(udata->plist2, prop->name))) + HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, H5_ITER_ERROR, "property doesn't exist") + + /* Compare the two properties */ + if((udata->cmp_value = H5P_cmp_prop(prop, prop2)) != 0) + HGOTO_DONE(H5_ITER_STOP); + } /* end if */ + else { + /* Property exists in first list, but not second */ + udata->cmp_value = 1; + HGOTO_DONE(H5_ITER_STOP); + } /* end else */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__cmp_plist_cb() */ + + +/*-------------------------------------------------------------------------- + NAME H5P_cmp_plist PURPOSE Internal routine to compare two generic property lists USAGE - int H5P_cmp_plist(plist1, plist2) + herr_t H5P_cmp_plist(plist1, plist2, cmp_ret) H5P_genplist_t *plist1; IN: 1st property list to compare H5P_genplist_t *plist2; IN: 2nd property list to compare + int *cmp_ret; OUT: Comparison value for two property lists + Negative if list1 "less" than list2, + positive if list1 "greater" than list2, + zero if list1 is "equal" to list2 RETURNS - Success: negative if list1 "less" than list2, positive if list1 "greater" - than list2, zero if list1 is "equal" to list2 - Failure: can't fail + Success: non-negative value + Failure: negative value DESCRIPTION This function compares two generic property lists together to see if - they are the same list. - + they are equal. GLOBAL VARIABLES COMMENTS, BUGS, ASSUMPTIONS EXAMPLES REVISION LOG --------------------------------------------------------------------------*/ -int -H5P_cmp_plist(const H5P_genplist_t *plist1, const H5P_genplist_t *plist2) +herr_t +H5P_cmp_plist(const H5P_genplist_t *plist1, const H5P_genplist_t *plist2, + int *cmp_ret) { - H5SL_node_t *tnode1, *tnode2; /* Temporary pointer to property nodes */ - int cmp_value; /* Value from comparison */ - int ret_value = 0; /* return value */ + H5P_plist_cmp_ud_t udata; /* User data for callback */ + int idx = 0; /* Index of property to begin with */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT_NOERR + FUNC_ENTER_NOAPI_NOINIT HDassert(plist1); HDassert(plist2); + HDassert(cmp_ret); /* Check the number of properties */ - if(plist1->nprops < plist2->nprops) HGOTO_DONE(-1); - if(plist1->nprops > plist2->nprops) HGOTO_DONE(1); + if(plist1->nprops < plist2->nprops) { + *cmp_ret = -1; + HGOTO_DONE(SUCCEED); + } /* end if */ + if(plist1->nprops > plist2->nprops) { + *cmp_ret = 1; + HGOTO_DONE(SUCCEED); + } /* end if */ /* Check whether they've been initialized */ - if(plist1->class_init < plist2->class_init) HGOTO_DONE(-1); - if(plist1->class_init > plist2->class_init) HGOTO_DONE(1); - - /* Check for identical deleted properties */ - if(H5SL_count(plist1->del) > 0) { - /* Check for no deleted properties in plist2 */ - if(H5SL_count(plist2->del) == 0) HGOTO_DONE(1); - - tnode1 = H5SL_first(plist1->del); - tnode2 = H5SL_first(plist2->del); - while(tnode1 || tnode2) { - const char *name1, *name2; /* Name for node */ - - /* Check if they both have properties in this node */ - if(tnode1 == NULL && tnode2 != NULL) HGOTO_DONE(-1); - if(tnode1 != NULL && tnode2 == NULL) HGOTO_DONE(1); - - /* Compare the two deleted properties */ - name1 = (const char *)H5SL_item(tnode1); - name2 = (const char *)H5SL_item(tnode2); - if((cmp_value = HDstrcmp(name1, name2)) != 0) - HGOTO_DONE(cmp_value); - - /* Advance the pointers */ - tnode1 = H5SL_next(tnode1); - tnode2 = H5SL_next(tnode2); - } /* end while */ + if(plist1->class_init < plist2->class_init) { + *cmp_ret = -1; + HGOTO_DONE(SUCCEED); } /* end if */ - else - if(H5SL_count(plist2->del) > 0) HGOTO_DONE (-1); - - /* Cycle through the changed properties and compare them also */ - if(H5SL_count(plist1->props) > 0) { - /* Check for no changed properties in plist2 */ - if(H5SL_count(plist2->props) == 0) HGOTO_DONE(1); - - tnode1 = H5SL_first(plist1->props); - tnode2 = H5SL_first(plist2->props); - while(tnode1 || tnode2) { - H5P_genprop_t *prop1, *prop2; /* Property for node */ - - /* Check if they both have properties in this node */ - if(tnode1 == NULL && tnode2 != NULL) HGOTO_DONE(-1); - if(tnode1 != NULL && tnode2 == NULL) HGOTO_DONE(1); - - /* Compare the two properties */ - prop1 = (H5P_genprop_t *)H5SL_item(tnode1); - prop2 = (H5P_genprop_t *)H5SL_item(tnode2); - if((cmp_value = H5P_cmp_prop(prop1, prop2)) != 0) - HGOTO_DONE(cmp_value); - - /* Advance the pointers */ - tnode1 = H5SL_next(tnode1); - tnode2 = H5SL_next(tnode2); - } /* end while */ + if(plist1->class_init > plist2->class_init) { + *cmp_ret = 1; + HGOTO_DONE(SUCCEED); + } /* end if */ + + /* Set up iterator callback info */ + udata.cmp_value = 0; + udata.plist2 = plist2; + + /* Iterate over properties in first property list */ + if((ret_value = H5P_iterate_plist(plist1, TRUE, &idx, H5P__cmp_plist_cb, &udata)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTREGISTER, FAIL, "unable to iterate over list") + if(ret_value != 0) { + *cmp_ret = udata.cmp_value; + HGOTO_DONE(SUCCEED); } /* end if */ - else - if(H5SL_count(plist2->props)>0) HGOTO_DONE (-1); /* Check the parent classes */ - if((cmp_value = H5P_cmp_class(plist1->pclass, plist2->pclass)) != 0) - HGOTO_DONE(cmp_value); + if((*cmp_ret = H5P_cmp_class(plist1->pclass, plist2->pclass)) != 0) + HGOTO_DONE(SUCCEED); + + /* Property lists must be equal, set comparison value to 0 */ + *cmp_ret = 0; done: FUNC_LEAVE_NOAPI(ret_value) @@ -3363,7 +3519,7 @@ H5P__iterate_plist_cb(void *_item, void *_key, void *_udata) H5P_genprop_t *item = (H5P_genprop_t *)_item; /* Pointer to the property */ char *key = (char *)_key; /* Pointer to the property's name */ H5P_iter_plist_ud_t *udata = (H5P_iter_plist_ud_t *)_udata; /* Pointer to user data */ - int ret_value = 0; /* Return value */ + int ret_value = H5_ITER_CONT; /* Return value */ FUNC_ENTER_STATIC @@ -3382,9 +3538,9 @@ H5P__iterate_plist_cb(void *_item, void *_key, void *_udata) /* Increment the current index */ (*udata->curr_idx_ptr)++; - /* Add property name to "seen" list */ + /* Add property name to 'seen' list */ if(H5SL_insert(udata->seen, key, key) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into seen skip list") + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, H5_ITER_ERROR, "can't insert property into 'seen' skip list") done: FUNC_LEAVE_NOAPI(ret_value) @@ -3417,7 +3573,7 @@ H5P__iterate_plist_pclass_cb(void *_item, void *_key, void *_udata) H5P_genprop_t *item = (H5P_genprop_t *)_item; /* Pointer to the property */ char *key = (char *)_key; /* Pointer to the property's name */ H5P_iter_plist_ud_t *udata = (H5P_iter_plist_ud_t *)_udata; /* Pointer to user data */ - int ret_value = 0; /* Return value */ + int ret_value = H5_ITER_CONT; /* Return value */ FUNC_ENTER_STATIC_NOERR @@ -3662,7 +3818,7 @@ H5P_iterate_pclass(const H5P_genclass_t *pclass, int *idx, int curr_idx = 0; /* Current iteration index */ int ret_value = 0; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_NOAPI_NOINIT_NOERR /* Sanity check */ HDassert(pclass); @@ -4228,7 +4384,7 @@ H5P_copy_prop_plist(hid_t dst_id, hid_t src_id, const char *name) /* Create property object from parameters */ if(NULL == (new_prop = H5P_create_prop(prop->name, prop->size, H5P_PROP_WITHIN_LIST, prop->value, - prop->create, prop->set, prop->get, + prop->create, prop->set, prop->get, prop->encode, prop->decode, prop->del, prop->copy, prop->cmp, prop->close))) HGOTO_ERROR(H5E_PLIST, H5E_CANTCREATE, FAIL,"Can't create property") @@ -4320,7 +4476,7 @@ H5P_copy_prop_pclass(hid_t dst_id, hid_t src_id, const char *name) /* Register the property into the destination */ orig_dst_pclass = dst_pclass; if(H5P_register(&dst_pclass, name, prop->size, prop->value, prop->create, prop->set, prop->get, - prop->del, prop->copy, prop->cmp, prop->close) < 0) + prop->encode, prop->decode, prop->del, prop->copy, prop->cmp, prop->close) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTDELETE, FAIL, "unable to remove property") /* Check if the property class changed and needs to be substituted in the ID */ @@ -4829,3 +4985,121 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* H5P_close_class() */ + +/*------------------------------------------------------------------------- + * Function: H5P__new_plist_of_type + * + * Purpose: Create a new property list, of a given type + * + * Return: Success: ID of new property list + * Failure: Negative + * + * Programmer: Quincey Koziol + * Thursday, August 2, 2012 + * + *------------------------------------------------------------------------- + */ +hid_t +H5P__new_plist_of_type(H5P_plist_type_t type) +{ + H5P_genclass_t *pclass; /* Class of property list to create */ + hid_t class_id; /* ID of class to create */ + hid_t ret_value; /* Return value */ + + FUNC_ENTER_PACKAGE + + /* Sanity checks */ + HDcompile_assert(H5P_TYPE_LINK_ACCESS == (H5P_TYPE_MAX_TYPE - 1)); + HDassert(type >= H5P_TYPE_USER && type <= H5P_TYPE_LINK_ACCESS); + + /* Check arguments */ + if(type == H5P_TYPE_USER) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "can't create user property list"); + if(type == H5P_TYPE_ROOT) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "shouldn't be creating root class property list"); + + /* Instantiate a property list of the proper type */ + switch(type) { + case H5P_TYPE_OBJECT_CREATE: + class_id = H5P_CLS_OBJECT_CREATE_g; + break; + + case H5P_TYPE_FILE_CREATE: + class_id = H5P_CLS_FILE_CREATE_g; + break; + + case H5P_TYPE_FILE_ACCESS: + class_id = H5P_CLS_FILE_ACCESS_g; + break; + + case H5P_TYPE_DATASET_CREATE: + class_id = H5P_CLS_DATASET_CREATE_g; + break; + + case H5P_TYPE_DATASET_ACCESS: + class_id = H5P_CLS_DATASET_ACCESS_g; + break; + + case H5P_TYPE_DATASET_XFER: + class_id = H5P_CLS_DATASET_XFER_g; + break; + + case H5P_TYPE_FILE_MOUNT: + class_id = H5P_CLS_FILE_MOUNT_g; + break; + + case H5P_TYPE_GROUP_CREATE: + class_id = H5P_CLS_GROUP_CREATE_g; + break; + + case H5P_TYPE_GROUP_ACCESS: + class_id = H5P_CLS_GROUP_ACCESS_g; + break; + + case H5P_TYPE_DATATYPE_CREATE: + class_id = H5P_CLS_DATATYPE_CREATE_g; + break; + + case H5P_TYPE_DATATYPE_ACCESS: + class_id = H5P_CLS_DATATYPE_ACCESS_g; + break; + + case H5P_TYPE_STRING_CREATE: + class_id = H5P_CLS_STRING_CREATE_g; + break; + + case H5P_TYPE_ATTRIBUTE_CREATE: + class_id = H5P_CLS_ATTRIBUTE_CREATE_g; + break; + + case H5P_TYPE_OBJECT_COPY: + class_id = H5P_CLS_OBJECT_COPY_g; + break; + + case H5P_TYPE_LINK_CREATE: + class_id = H5P_CLS_LINK_CREATE_g; + break; + + case H5P_TYPE_LINK_ACCESS: + class_id = H5P_CLS_LINK_ACCESS_g; + break; + + case H5P_TYPE_USER: /* shut compiler warnings up */ + case H5P_TYPE_ROOT: + case H5P_TYPE_MAX_TYPE: + default: + HGOTO_ERROR(H5E_PLIST, H5E_BADRANGE, FAIL, "invalid property list type: %u\n", (unsigned)type); + } /* end switch */ + + /* Get the class object */ + if(NULL == (pclass = (H5P_genclass_t *)H5I_object(class_id))) + HGOTO_ERROR(H5E_PLIST, H5E_BADTYPE, FAIL, "not a property class") + + /* Create the new property list */ + if((ret_value = H5P_create_id(pclass, TRUE)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTCREATE, FAIL, "unable to create property list") + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P__new_plist_of_type() */ + diff --git a/src/H5Plapl.c b/src/H5Plapl.c index 8d8ee15..aa02546 100644 --- a/src/H5Plapl.c +++ b/src/H5Plapl.c @@ -48,9 +48,15 @@ /* Definitions for number of soft links to traverse */ #define H5L_ACS_NLINKS_SIZE sizeof(size_t) #define H5L_ACS_NLINKS_DEF H5L_NUM_LINKS /*max symlinks to follow per lookup */ +#define H5L_ACS_NLINKS_ENC H5P__encode_size_t +#define H5L_ACS_NLINKS_DEC H5P__decode_size_t + + /* Definitions for external link prefix */ #define H5L_ACS_ELINK_PREFIX_SIZE sizeof(char *) #define H5L_ACS_ELINK_PREFIX_DEF NULL /*default is no prefix */ +#define H5L_ACS_ELINK_PREFIX_ENC H5P_lacc_elink_pref_enc +#define H5L_ACS_ELINK_PREFIX_DEC H5P_lacc_elink_pref_dec #define H5L_ACS_ELINK_PREFIX_DEL H5P_lacc_elink_pref_del #define H5L_ACS_ELINK_PREFIX_COPY H5P_lacc_elink_pref_copy #define H5L_ACS_ELINK_PREFIX_CMP H5P_lacc_elink_pref_cmp @@ -59,6 +65,8 @@ /* Definitions for setting fapl of external link access */ #define H5L_ACS_ELINK_FAPL_SIZE sizeof(hid_t) #define H5L_ACS_ELINK_FAPL_DEF H5P_DEFAULT +#define H5L_ACS_ELINK_FAPL_ENC H5P_lacc_elink_fapl_enc +#define H5L_ACS_ELINK_FAPL_DEC H5P_lacc_elink_fapl_dec #define H5L_ACS_ELINK_FAPL_DEL H5P_lacc_elink_fapl_del #define H5L_ACS_ELINK_FAPL_COPY H5P_lacc_elink_fapl_copy #define H5L_ACS_ELINK_FAPL_CMP H5P_lacc_elink_fapl_cmp @@ -67,6 +75,8 @@ /* Definitions for file access flags for external link traversal */ #define H5L_ACS_ELINK_FLAGS_SIZE sizeof(unsigned) #define H5L_ACS_ELINK_FLAGS_DEF H5F_ACC_DEFAULT +#define H5L_ACS_ELINK_FLAGS_ENC H5P__encode_unsigned +#define H5L_ACS_ELINK_FLAGS_DEC H5P__decode_unsigned /* Definitions for callback function for external link traversal */ #define H5L_ACS_ELINK_CB_SIZE sizeof(H5L_elink_cb_t) @@ -91,10 +101,14 @@ static herr_t H5P_lacc_reg_prop(H5P_genclass_t *pclass); /* Property list callbacks */ +static herr_t H5P_lacc_elink_pref_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P_lacc_elink_pref_dec(const void **_pp, void *value); static herr_t H5P_lacc_elink_pref_del(hid_t prop_id, const char* name, size_t size, void* value); static herr_t H5P_lacc_elink_pref_copy(const char* name, size_t size, void* value); static int H5P_lacc_elink_pref_cmp(const void *value1, const void *value2, size_t size); static herr_t H5P_lacc_elink_pref_close(const char* name, size_t size, void* value); +static herr_t H5P_lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P_lacc_elink_fapl_dec(const void **_pp, void *value); static herr_t H5P_lacc_elink_fapl_del(hid_t prop_id, const char* name, size_t size, void* value); static herr_t H5P_lacc_elink_fapl_copy(const char* name, size_t size, void* value); static int H5P_lacc_elink_fapl_cmp(const void *value1, const void *value2, size_t size); @@ -131,6 +145,13 @@ const H5P_libclass_t H5P_CLS_LACC[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const size_t H5L_def_nlinks_g = H5L_ACS_NLINKS_DEF; /* Default number of soft links to traverse */ +static const char *H5L_def_elink_prefix_g = H5L_ACS_ELINK_PREFIX_DEF; /* Default external link prefix string */ +static const hid_t H5L_def_fapl_id_g = H5L_ACS_ELINK_FAPL_DEF; /* Default fapl for external link access */ +static const unsigned H5L_def_elink_flags_g = H5L_ACS_ELINK_FLAGS_DEF; /* Default file access flags for external link traversal */ +static const H5L_elink_cb_t H5L_def_elink_cb_g = H5L_ACS_ELINK_CB_DEF; /* Default external link traversal callback */ + /*------------------------------------------------------------------------- @@ -152,34 +173,38 @@ const H5P_libclass_t H5P_CLS_LACC[1] = {{ static herr_t H5P_lacc_reg_prop(H5P_genclass_t *pclass) { - size_t nlinks = H5L_ACS_NLINKS_DEF; /* Default number of soft links to traverse */ - char *elink_prefix = H5L_ACS_ELINK_PREFIX_DEF; /* Default external link prefix string */ - hid_t def_fapl_id = H5L_ACS_ELINK_FAPL_DEF; /* Default fapl for external link access */ - unsigned elink_flags = H5L_ACS_ELINK_FLAGS_DEF; /* Default file access flags for external link traversal */ - H5L_elink_cb_t elink_cb = H5L_ACS_ELINK_CB_DEF; /* Default external link traversal callback */ - herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT /* Register property for number of links traversed */ - if(H5P_register_real(pclass, H5L_ACS_NLINKS_NAME, H5L_ACS_NLINKS_SIZE, &nlinks, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5L_ACS_NLINKS_NAME, H5L_ACS_NLINKS_SIZE, &H5L_def_nlinks_g, + NULL, NULL, NULL, H5L_ACS_NLINKS_ENC, H5L_ACS_NLINKS_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register property for external link prefix */ - if(H5P_register_real(pclass, H5L_ACS_ELINK_PREFIX_NAME, H5L_ACS_ELINK_PREFIX_SIZE, &elink_prefix, NULL, NULL, NULL, H5L_ACS_ELINK_PREFIX_DEL, H5L_ACS_ELINK_PREFIX_COPY, H5L_ACS_ELINK_PREFIX_CMP, H5L_ACS_ELINK_PREFIX_CLOSE) < 0) + if(H5P_register_real(pclass, H5L_ACS_ELINK_PREFIX_NAME, H5L_ACS_ELINK_PREFIX_SIZE, &H5L_def_elink_prefix_g, + NULL, NULL, NULL, H5L_ACS_ELINK_PREFIX_ENC, H5L_ACS_ELINK_PREFIX_DEC, + H5L_ACS_ELINK_PREFIX_DEL, H5L_ACS_ELINK_PREFIX_COPY, H5L_ACS_ELINK_PREFIX_CMP, H5L_ACS_ELINK_PREFIX_CLOSE) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register fapl for link access */ - if(H5P_register_real(pclass, H5L_ACS_ELINK_FAPL_NAME, H5L_ACS_ELINK_FAPL_SIZE, &def_fapl_id, NULL, NULL, NULL, H5L_ACS_ELINK_FAPL_DEL, H5L_ACS_ELINK_FAPL_COPY, H5L_ACS_ELINK_FAPL_CMP, H5L_ACS_ELINK_FAPL_CLOSE) < 0) + if(H5P_register_real(pclass, H5L_ACS_ELINK_FAPL_NAME, H5L_ACS_ELINK_FAPL_SIZE, &H5L_def_fapl_id_g, + NULL, NULL, NULL, H5L_ACS_ELINK_FAPL_ENC, H5L_ACS_ELINK_FAPL_DEC, + H5L_ACS_ELINK_FAPL_DEL, H5L_ACS_ELINK_FAPL_COPY, H5L_ACS_ELINK_FAPL_CMP, H5L_ACS_ELINK_FAPL_CLOSE) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register property for external link file access flags */ - if(H5P_register_real(pclass, H5L_ACS_ELINK_FLAGS_NAME, H5L_ACS_ELINK_FLAGS_SIZE, &elink_flags, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5L_ACS_ELINK_FLAGS_NAME, H5L_ACS_ELINK_FLAGS_SIZE, &H5L_def_elink_flags_g, + NULL, NULL, NULL, H5L_ACS_ELINK_FLAGS_ENC, H5L_ACS_ELINK_FLAGS_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register property for external link file traversal callback */ - if(H5P_register_real(pclass, H5L_ACS_ELINK_CB_NAME, H5L_ACS_ELINK_CB_SIZE, &elink_cb, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5L_ACS_ELINK_CB_NAME, H5L_ACS_ELINK_CB_SIZE, &H5L_def_elink_cb_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: @@ -187,6 +212,120 @@ done: } /* end H5P_lacc_reg_prop() */ +/*------------------------------------------------------------------------- + * Function: H5P_lacc_elink_fapl_enc + * + * Purpose: Callback routine which is called whenever the elink FAPL + * property in the dataset access property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P_lacc_elink_fapl_enc(const void *value, void **_pp, size_t *size) +{ + const hid_t *elink_fapl = (const hid_t *)value; /* Property to encode */ + uint8_t **pp = (uint8_t **)_pp; + H5P_genplist_t *fapl_plist; /* Pointer to property list */ + hbool_t non_default_fapl = FALSE; /* Whether the FAPL is non-default */ + size_t enc_size = 0; /* FAPL's encoded size */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI_NOINIT + + /* Check for non-default FAPL */ + if(*elink_fapl != H5P_DEFAULT) { + if(NULL == (fapl_plist = (H5P_genplist_t *)H5P_object_verify(*elink_fapl, H5P_FILE_ACCESS))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get property list") + non_default_fapl = TRUE; + } /* end if */ + + if(NULL != *pp) { + /* Store whether the FAPL is non-default */ + *(*pp)++ = (uint8_t)non_default_fapl; + } /* end if */ + + /* Encode the property list, if non-default */ + /* (if *pp == NULL, will only compute the size) */ + if(non_default_fapl) { + if(H5P__encode(fapl_plist, TRUE, *pp, &enc_size) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "can't encode property list") + if(*pp) + *pp += enc_size; + } /* end if */ + + *size += (1 + enc_size); /* Non-default flag, plus encoded property list size */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P_lacc_elink_fapl_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P_lacc_elink_fapl_dec + * + * Purpose: Callback routine which is called whenever the elink FAPL + * property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Wednesday, August 15, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P_lacc_elink_fapl_dec(const void **_pp, void *_value) +{ + hid_t *elink_fapl = (hid_t *)_value; /* The elink FAPL value */ + const uint8_t **pp = (const uint8_t **)_pp; + hbool_t non_default_fapl; /* Whether the FAPL is non-default */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI_NOINIT + + HDassert(pp); + HDassert(*pp); + HDassert(elink_fapl); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + /* Determine if the FAPL is non-default */ + non_default_fapl = (hbool_t)*(*pp)++; + + if(non_default_fapl) { + H5P_genplist_t *fapl_plist; /* Pointer to property list */ + size_t enc_size = 0; /* Encoded size of property list */ + + /* Decode the property list */ + if((*elink_fapl = H5P__decode(*pp)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTDECODE, FAIL, "can't decode property") + + /* Get the property list object */ + if(NULL == (fapl_plist = (H5P_genplist_t *)H5P_object_verify(*elink_fapl, H5P_FILE_ACCESS))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get property list") + + /* Compute the encoded size of the property list */ + if(H5P__encode(fapl_plist, TRUE, NULL, &enc_size) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTENCODE, FAIL, "can't compute encoded property list size") + + *pp += enc_size; + } /* end if */ + else + *elink_fapl = H5P_DEFAULT; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P_lacc_elink_fapl_dec() */ + + /*-------------------------------------------------------------------------- * Function: H5P_lacc_elink_fapl_del * @@ -297,8 +436,12 @@ H5P_lacc_elink_fapl_cmp(const void *value1, const void *value2, size_t UNUSED si /* Check for NULL property lists */ if(obj1 == NULL && obj2 != NULL) HGOTO_DONE(1); if(obj1 != NULL && obj2 == NULL) HGOTO_DONE(-1); - if(obj1 && obj2) - ret_value = H5P_cmp_plist(obj1, obj2); + if(obj1 && obj2) { + herr_t status; + + status = H5P_cmp_plist(obj1, obj2, &ret_value); + HDassert(status >= 0); + } /* end if */ done: FUNC_LEAVE_NOAPI(ret_value) @@ -339,6 +482,119 @@ done: /*------------------------------------------------------------------------- + * Function: H5P_lacc_elink_pref_enc + * + * Purpose: Callback routine which is called whenever the elink flags + * property in the dataset access property list is + * encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P_lacc_elink_pref_enc(const void *value, void **_pp, size_t *size) +{ + const char *elink_pref = *(const char * const *)value; + uint8_t **pp = (uint8_t **)_pp; + size_t len = 0; + uint64_t enc_value; + unsigned enc_size; + + FUNC_ENTER_NOAPI_NOINIT_NOERR + + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + /* calculate prefix length */ + if(NULL != elink_pref) + len = HDstrlen(elink_pref); + + enc_value = (uint64_t)len; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + + if(NULL != *pp) { + /* encode the length of the prefix */ + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* encode the prefix */ + if(NULL != elink_pref) { + HDmemcpy(*(char **)pp, elink_pref, len); + *pp += len; + } /* end if */ + } /* end if */ + + *size += (1 + enc_size); + if(NULL != elink_pref) + *size += len; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P_lacc_elink_pref_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P_lacc_elink_pref_dec + * + * Purpose: Callback routine which is called whenever the elink prefix + * property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P_lacc_elink_pref_dec(const void **_pp, void *_value) +{ + char **elink_pref = (char **)_value; + const uint8_t **pp = (const uint8_t **)_pp; + size_t len; + uint64_t enc_value; /* Decoded property value */ + unsigned enc_size; /* Size of encoded property */ + herr_t ret_value = SUCCEED; + + FUNC_ENTER_NOAPI_NOINIT + + HDassert(pp); + HDassert(*pp); + HDassert(elink_pref); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + /* Decode the size */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + + /* Decode the value */ + UINT64DECODE_VAR(*pp, enc_value, enc_size); + len = enc_value; + + if(0 != len) { + /* Make a copy of the user's prefix string */ + if(NULL == (*elink_pref = (char *)H5MM_malloc(len + 1))) + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "memory allocation failed for prefix") + HDstrncpy(*elink_pref, *(const char **)pp, len); + (*elink_pref)[len] = '\0'; + + *pp += len; + } /* end if */ + else + *elink_pref = NULL; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5P_lacc_elink_pref_dec() */ + + +/*------------------------------------------------------------------------- * Function: H5P_lacc_elink_pref_del * * Purpose: Frees memory used to store the external link prefix string diff --git a/src/H5Plcpl.c b/src/H5Plcpl.c index b327df9..d81d55c 100644 --- a/src/H5Plcpl.c +++ b/src/H5Plcpl.c @@ -48,7 +48,8 @@ /* Definitions for create intermediate groups flag */ #define H5L_CRT_INTERMEDIATE_GROUP_SIZE sizeof(unsigned) #define H5L_CRT_INTERMEDIATE_GROUP_DEF 0 - +#define H5L_CRT_INTERMEDIATE_GROUP_ENC H5P__encode_unsigned +#define H5L_CRT_INTERMEDIATE_GROUP_DEC H5P__decode_unsigned /******************/ /* Local Typedefs */ @@ -98,6 +99,9 @@ const H5P_libclass_t H5P_CLS_LCRT[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const unsigned H5L_def_intmd_group_g = H5L_CRT_INTERMEDIATE_GROUP_DEF; /* Default setting for creating intermediate groups */ + /*------------------------------------------------------------------------- @@ -114,13 +118,14 @@ const H5P_libclass_t H5P_CLS_LCRT[1] = {{ herr_t H5P_lcrt_reg_prop(H5P_genclass_t *pclass) { - unsigned intmd_group = H5L_CRT_INTERMEDIATE_GROUP_DEF; /* Default setting for creating intermediate groups */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) /* Register create intermediate groups property */ - if(H5P_register_real(pclass, H5L_CRT_INTERMEDIATE_GROUP_NAME, H5L_CRT_INTERMEDIATE_GROUP_SIZE, &intmd_group, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5L_CRT_INTERMEDIATE_GROUP_NAME, H5L_CRT_INTERMEDIATE_GROUP_SIZE, &H5L_def_intmd_group_g, + NULL, NULL, NULL, H5L_CRT_INTERMEDIATE_GROUP_ENC, H5L_CRT_INTERMEDIATE_GROUP_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: diff --git a/src/H5Pocpl.c b/src/H5Pocpl.c index 024f79b..6e20963 100644 --- a/src/H5Pocpl.c +++ b/src/H5Pocpl.c @@ -37,6 +37,7 @@ #include "H5private.h" /* Generic Functions */ #include "H5Eprivate.h" /* Error handling */ #include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ #include "H5Opkg.h" /* Object headers */ #include "H5Ppkg.h" /* Property lists */ @@ -48,13 +49,21 @@ /* ========= Object Creation properties ============ */ /* Definitions for the max. # of attributes to store compactly */ #define H5O_CRT_ATTR_MAX_COMPACT_SIZE sizeof(unsigned) +#define H5O_CRT_ATTR_MAX_COMPACT_ENC H5P__encode_unsigned +#define H5O_CRT_ATTR_MAX_COMPACT_DEC H5P__decode_unsigned /* Definitions for the min. # of attributes to store densely */ #define H5O_CRT_ATTR_MIN_DENSE_SIZE sizeof(unsigned) +#define H5O_CRT_ATTR_MIN_DENSE_ENC H5P__encode_unsigned +#define H5O_CRT_ATTR_MIN_DENSE_DEC H5P__decode_unsigned /* Definitions for object header flags */ #define H5O_CRT_OHDR_FLAGS_SIZE sizeof(uint8_t) +#define H5O_CRT_OHDR_FLAGS_ENC H5P__encode_uint8_t +#define H5O_CRT_OHDR_FLAGS_DEC H5P__decode_uint8_t /* Definitions for filter pipeline */ #define H5O_CRT_PIPELINE_SIZE sizeof(H5O_pline_t) -#define H5O_CRT_PIPELINE_CMP H5P_ocrt_pipeline_cmp +#define H5O_CRT_PIPELINE_ENC H5P__ocrt_pipeline_enc +#define H5O_CRT_PIPELINE_DEC H5P__ocrt_pipeline_dec +#define H5O_CRT_PIPELINE_CMP H5P__ocrt_pipeline_cmp /******************/ @@ -72,12 +81,14 @@ /********************/ /* Property class callbacks */ -static herr_t H5P_ocrt_reg_prop(H5P_genclass_t *pclass); -static herr_t H5P_ocrt_copy(hid_t new_plist_t, hid_t old_plist_t, void *copy_data); -static herr_t H5P_ocrt_close(hid_t dxpl_id, void *close_data); +static herr_t H5P__ocrt_reg_prop(H5P_genclass_t *pclass); +static herr_t H5P__ocrt_copy(hid_t new_plist_t, hid_t old_plist_t, void *copy_data); +static herr_t H5P__ocrt_close(hid_t dxpl_id, void *close_data); /* Property callbacks */ -static int H5P_ocrt_pipeline_cmp(const void *value1, const void *value2, size_t size); +static herr_t H5P__ocrt_pipeline_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__ocrt_pipeline_dec(const void **_pp, void *value); +static int H5P__ocrt_pipeline_cmp(const void *value1, const void *value2, size_t size); /*********************/ @@ -91,12 +102,12 @@ const H5P_libclass_t H5P_CLS_OCRT[1] = {{ &H5P_CLS_ROOT_g, /* Parent class ID */ &H5P_CLS_OBJECT_CREATE_g, /* Pointer to class ID */ NULL, /* Pointer to default property list ID */ - H5P_ocrt_reg_prop, /* Default property registration routine */ + H5P__ocrt_reg_prop, /* Default property registration routine */ NULL, /* Class creation callback */ NULL, /* Class creation callback info */ - H5P_ocrt_copy, /* Class copy callback */ + H5P__ocrt_copy, /* Class copy callback */ NULL, /* Class copy callback info */ - H5P_ocrt_close, /* Class close callback */ + H5P__ocrt_close, /* Class close callback */ NULL /* Class close callback info */ }}; @@ -111,10 +122,16 @@ const H5P_libclass_t H5P_CLS_OCRT[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const unsigned H5O_def_attr_max_compact_g = H5O_CRT_ATTR_MAX_COMPACT_DEF; /* Default max. compact attribute storage settings */ +static const unsigned H5O_def_attr_min_dense_g = H5O_CRT_ATTR_MIN_DENSE_DEF; /* Default min. dense attribute storage settings */ +static const uint8_t H5O_def_ohdr_flags_g = H5O_CRT_OHDR_FLAGS_DEF; /* Default object header flag settings */ +static const H5O_pline_t H5O_def_pline_g = H5O_CRT_PIPELINE_DEF; /* Default I/O pipeline setting */ + /*------------------------------------------------------------------------- - * Function: H5P_ocrt_reg_prop + * Function: H5P__ocrt_reg_prop * * Purpose: Initialize the object creation property list class * @@ -126,39 +143,43 @@ const H5P_libclass_t H5P_CLS_OCRT[1] = {{ *------------------------------------------------------------------------- */ static herr_t -H5P_ocrt_reg_prop(H5P_genclass_t *pclass) +H5P__ocrt_reg_prop(H5P_genclass_t *pclass) { - unsigned attr_max_compact = H5O_CRT_ATTR_MAX_COMPACT_DEF; /* Default max. compact attribute storage settings */ - unsigned attr_min_dense = H5O_CRT_ATTR_MIN_DENSE_DEF; /* Default min. dense attribute storage settings */ - uint8_t ohdr_flags = H5O_CRT_OHDR_FLAGS_DEF; /* Default object header flag settings */ - H5O_pline_t pline = H5O_CRT_PIPELINE_DEF; /* Default I/O pipeline setting */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Register max. compact attribute storage property */ - if(H5P_register_real(pclass, H5O_CRT_ATTR_MAX_COMPACT_NAME, H5O_CRT_ATTR_MAX_COMPACT_SIZE, &attr_max_compact, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5O_CRT_ATTR_MAX_COMPACT_NAME, H5O_CRT_ATTR_MAX_COMPACT_SIZE, &H5O_def_attr_max_compact_g, + NULL, NULL, NULL, H5O_CRT_ATTR_MAX_COMPACT_ENC, H5O_CRT_ATTR_MAX_COMPACT_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register min. dense attribute storage property */ - if(H5P_register_real(pclass, H5O_CRT_ATTR_MIN_DENSE_NAME, H5O_CRT_ATTR_MIN_DENSE_SIZE, &attr_min_dense, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5O_CRT_ATTR_MIN_DENSE_NAME, H5O_CRT_ATTR_MIN_DENSE_SIZE, &H5O_def_attr_min_dense_g, + NULL, NULL, NULL, H5O_CRT_ATTR_MIN_DENSE_ENC, H5O_CRT_ATTR_MIN_DENSE_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register object header flags property */ - if(H5P_register_real(pclass, H5O_CRT_OHDR_FLAGS_NAME, H5O_CRT_OHDR_FLAGS_SIZE, &ohdr_flags, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5O_CRT_OHDR_FLAGS_NAME, H5O_CRT_OHDR_FLAGS_SIZE, &H5O_def_ohdr_flags_g, + NULL, NULL, NULL, H5O_CRT_OHDR_FLAGS_ENC, H5O_CRT_OHDR_FLAGS_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register the pipeline property */ - if(H5P_register_real(pclass, H5O_CRT_PIPELINE_NAME, H5O_CRT_PIPELINE_SIZE, &pline, NULL, NULL, NULL, NULL, NULL, H5O_CRT_PIPELINE_CMP, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + if(H5P_register_real(pclass, H5O_CRT_PIPELINE_NAME, H5O_CRT_PIPELINE_SIZE, &H5O_def_pline_g, + NULL, NULL, NULL, H5O_CRT_PIPELINE_ENC, H5O_CRT_PIPELINE_DEC, + NULL, NULL, H5O_CRT_PIPELINE_CMP, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocrt_reg_prop() */ +} /* end H5P__ocrt_reg_prop() */ /*------------------------------------------------------------------------- - * Function: H5P_ocrt_copy + * Function: H5P__ocrt_copy * * Purpose: Callback routine which is called whenever any object * creation property list is copied. This routine copies @@ -174,14 +195,14 @@ done: */ /* ARGSUSED */ static herr_t -H5P_ocrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void UNUSED *copy_data) +H5P__ocrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void UNUSED *copy_data) { H5O_pline_t src_pline, dst_pline; /* Source & destination pipelines */ H5P_genplist_t *src_plist; /* Pointer to source property list */ H5P_genplist_t *dst_plist; /* Pointer to destination property list */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Verify property list IDs */ if(NULL == (dst_plist = (H5P_genplist_t *)H5I_object(dst_plist_id))) @@ -203,11 +224,11 @@ H5P_ocrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void UNUSED *copy_data) done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocrt_copy() */ +} /* end H5P__ocrt_copy() */ /*------------------------------------------------------------------------- - * Function: H5P_ocrt_close + * Function: H5P__ocrt_close * * Purpose: Callback routine which is called whenever any object create * property list is closed. This routine performs any generic @@ -223,13 +244,13 @@ done: */ /* ARGSUSED */ static herr_t -H5P_ocrt_close(hid_t dcpl_id, void UNUSED *close_data) +H5P__ocrt_close(hid_t dcpl_id, void UNUSED *close_data) { H5O_pline_t pline; /* I/O pipeline */ H5P_genplist_t *plist; /* Property list */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Check arguments */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(dcpl_id))) @@ -245,7 +266,7 @@ H5P_ocrt_close(hid_t dcpl_id, void UNUSED *close_data) done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocrt_close() */ +} /* end H5P__ocrt_close() */ /*------------------------------------------------------------------------- @@ -1330,7 +1351,189 @@ H5P_get_filter(const H5Z_filter_info_t *filter, unsigned int *flags/*out*/, /*------------------------------------------------------------------------- - * Function: H5P_ocrt_pipeline_cmp + * Function: H5P__ocrt_pipeline_enc + * + * Purpose: Callback routine which is called whenever the pipeline + * property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__ocrt_pipeline_enc(const void *value, void **_pp, size_t *size) +{ + const H5O_pline_t *pline = (const H5O_pline_t *)value; + uint8_t **pp = (uint8_t **)_pp; + size_t u; /* Local index variable */ + + FUNC_ENTER_STATIC_NOERR + + HDassert(pline); + HDassert(size); + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + if(NULL != *pp) { + unsigned enc_size; + uint64_t enc_value; + + /* Encode size of unsigned */ + *(*pp)++ = (uint8_t)sizeof(unsigned); + + /* encode nused value */ + enc_value = (uint64_t)pline->nused; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* encode each pipeline */ + for(u = 0; u < pline->nused; u++) { + unsigned v; /* Local index variable */ + + /* encode filter ID */ + INT32ENCODE(*pp, pline->filter[u].id) + + /* encode filter flags */ + H5_ENCODE_UNSIGNED(*pp, pline->filter[u].flags) + + /* encode filter name if it exists */ + if(NULL != pline->filter[u].name) { + /* encode TRUE indicating that it exits */ + *(*pp)++ = (uint8_t)TRUE; + + /* encode filter name */ + HDmemcpy(*pp, (uint8_t *)(pline->filter[u].name), H5Z_COMMON_NAME_LEN); + *pp += H5Z_COMMON_NAME_LEN; + } /* end if */ + else + /* encode FALSE indicating that it does not exist */ + *(*pp)++ = (uint8_t)FALSE; + + /* encode cd_nelmts */ + enc_value = (uint64_t)pline->filter[u].cd_nelmts; + enc_size = H5V_limit_enc_size(enc_value); + HDassert(enc_size < 256); + *(*pp)++ = (uint8_t)enc_size; + UINT64ENCODE_VAR(*pp, enc_value, enc_size); + + /* encode all values */ + for(v = 0; v < pline->filter[u].cd_nelmts; v++) + H5_ENCODE_UNSIGNED(*pp, pline->filter[u].cd_values[v]) + } /* end for */ + } /* end if */ + + /* calculate size required for encoding */ + *size += 1; + *size += (1 + H5V_limit_enc_size((uint64_t)pline->nused)); + for(u = 0; u < pline->nused; u++) { + *size += (sizeof(int32_t) + sizeof(unsigned) + 1); + if(NULL != pline->filter[u].name) + *size += H5Z_COMMON_NAME_LEN; + *size += (1 + H5V_limit_enc_size((uint64_t)pline->filter[u].cd_nelmts)); + *size += pline->filter[u].cd_nelmts * sizeof(unsigned); + } /* end for */ + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__ocrt_pipeline_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__ocrt_pipeline_dec + * + * Purpose: Callback routine which is called whenever the pipeline + * property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Mohamad Chaarawi + * Monday, October 10, 2011 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__ocrt_pipeline_dec(const void **_pp, void *_value) +{ + H5O_pline_t *pline = (H5O_pline_t *)_value; /* Property to set */ + const uint8_t **pp = (const uint8_t **)_pp; + size_t nused; /* Number of filters used for pipeline */ + unsigned enc_size; /* Size of encoded value (in bytes) */ + uint64_t enc_value; /* Value to encode */ + size_t u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t)); + + /* Decode the size of size_t */ + enc_size = *(*pp)++; + if(enc_size != sizeof(unsigned)) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded") + + /* decode nused */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + nused = (size_t)enc_value; + + /* Set property default value */ + *pline = H5O_def_pline_g; + + for(u = 0; u < nused; u++) { + H5Z_filter_info_t filter; /* Filter info, for pipeline */ + uint8_t has_name; /* Flag to indicate whether filter has a name */ + unsigned v; /* Local index variable */ + + /* decode filter id */ + INT32DECODE(*pp, filter.id) + + /* decode filter flags */ + H5_DECODE_UNSIGNED(*pp, filter.flags) + + /* decode value indicating if the name is encoded */ + has_name = *(*pp)++; + if(has_name) { + /* decode name */ + filter.name = H5MM_xstrdup((const char *)(*pp)); + *pp += H5Z_COMMON_NAME_LEN; + } /* end if */ + else + filter.name = NULL; + + /* decode num elements */ + enc_size = *(*pp)++; + HDassert(enc_size < 256); + UINT64DECODE_VAR(*pp, enc_value, enc_size); + filter.cd_nelmts = (size_t)enc_value; + + if(filter.cd_nelmts) + if(NULL == (filter.cd_values = (unsigned *)H5MM_malloc(sizeof(unsigned) * filter.cd_nelmts))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTALLOC, FAIL, "memory allocation failed for cd_values") + + /* decode values */ + for(v = 0; v < filter.cd_nelmts; v++) + H5_DECODE_UNSIGNED(*pp, filter.cd_values[v]) + + /* Add the filter to the I/O pipeline */ + if(H5Z_append(pline, filter.id, filter.flags, filter.cd_nelmts, filter.cd_values) < 0) + HGOTO_ERROR(H5E_PLINE, H5E_CANTINIT, FAIL, "unable to add filter to pipeline") + } /* end for */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* H5P__ocrt_pipeline_dec() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__ocrt_pipeline_cmp * * Purpose: Callback routine which is called whenever a filter pipeline * property in a property list is compared. @@ -1345,24 +1548,20 @@ H5P_get_filter(const H5Z_filter_info_t *filter, unsigned int *flags/*out*/, *------------------------------------------------------------------------- */ static int -H5P_ocrt_pipeline_cmp(const void *_pline1, const void *_pline2, size_t UNUSED size) +H5P__ocrt_pipeline_cmp(const void *_pline1, const void *_pline2, size_t UNUSED size) { const H5O_pline_t *pline1 = (const H5O_pline_t *)_pline1, /* Create local aliases for values */ *pline2 = (const H5O_pline_t *)_pline2; int cmp_value; /* Value from comparison */ herr_t ret_value = 0; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT_NOERR + FUNC_ENTER_STATIC_NOERR /* Sanity check */ HDassert(pline1); HDassert(pline2); HDassert(size == sizeof(H5O_pline_t)); - /* Check the number of allocated pipeline entries */ - if(pline1->nalloc < pline2->nalloc) HGOTO_DONE(-1); - if(pline1->nalloc > pline2->nalloc) HGOTO_DONE(1); - /* Check the number of used pipeline entries */ if(pline1->nused < pline2->nused) HGOTO_DONE(-1); if(pline1->nused > pline2->nused) HGOTO_DONE(1); @@ -1412,7 +1611,7 @@ H5P_ocrt_pipeline_cmp(const void *_pline1, const void *_pline2, size_t UNUSED si done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocrt_pipeline_cmp() */ +} /* end H5P__ocrt_pipeline_cmp() */ #ifndef H5_NO_DEPRECATED_SYMBOLS @@ -1566,6 +1765,5 @@ H5Pget_filter_by_id1(hid_t plist_id, H5Z_filter_t id, unsigned int *flags/*out*/ done: FUNC_LEAVE_API(ret_value) } /* end H5Pget_filter_by_id1() */ - #endif /* H5_NO_DEPRECATED_SYMBOLS */ diff --git a/src/H5Pocpypl.c b/src/H5Pocpypl.c index adea906..e5e5f51 100644 --- a/src/H5Pocpypl.c +++ b/src/H5Pocpypl.c @@ -49,14 +49,21 @@ /* Definitions for copy options */ #define H5O_CPY_OPTION_SIZE sizeof(unsigned) #define H5O_CPY_OPTION_DEF 0 +#define H5O_CPY_OPTION_ENC H5P__encode_unsigned +#define H5O_CPY_OPTION_DEC H5P__decode_unsigned /* Definitions for merge committed dtype list */ #define H5O_CPY_MERGE_COMM_DT_LIST_SIZE sizeof(char *) #define H5O_CPY_MERGE_COMM_DT_LIST_DEF NULL -#define H5O_CPY_MERGE_COMM_DT_LIST_CMP H5P_ocpy_merge_comm_dt_list_cmp +#define H5O_CPY_MERGE_COMM_DT_LIST_ENC H5P__ocpy_merge_comm_dt_list_enc +#define H5O_CPY_MERGE_COMM_DT_LIST_DEC H5P__ocpy_merge_comm_dt_list_dec +#define H5O_CPY_MERGE_COMM_DT_LIST_COPY H5P__ocpy_merge_comm_dt_list_copy +#define H5O_CPY_MERGE_COMM_DT_LIST_CMP H5P__ocpy_merge_comm_dt_list_cmp +#define H5O_CPY_MERGE_COMM_DT_LIST_CLOSE H5P__ocpy_merge_comm_dt_list_close /* Definitions for callback function when completing the search for a matching committed datatype from the committed dtype list */ #define H5O_CPY_MCDT_SEARCH_CB_SIZE sizeof(H5O_mcdt_cb_info_t) #define H5O_CPY_MCDT_SEARCH_CB_DEF {NULL,NULL} + /******************/ /* Local Typedefs */ /******************/ @@ -72,16 +79,17 @@ /********************/ /* General routines */ -static H5O_copy_dtype_merge_list_t *H5P_free_merge_comm_dtype_list(H5O_copy_dtype_merge_list_t *dt_list); +static H5O_copy_dtype_merge_list_t *H5P__free_merge_comm_dtype_list(H5O_copy_dtype_merge_list_t *dt_list); /* Property class callbacks */ -static herr_t H5P_ocpy_reg_prop(H5P_genclass_t *pclass); -static herr_t H5P_ocpy_copy(hid_t dst_plist_id, hid_t src_plist_id, - void *copy_data); -static herr_t H5P_ocpy_close(hid_t ocpypl_id, void *close_data); +static herr_t H5P__ocpy_reg_prop(H5P_genclass_t *pclass); /* Property callbacks */ -static int H5P_ocpy_merge_comm_dt_list_cmp(const void *value1, const void *value2, size_t size); +static herr_t H5P__ocpy_merge_comm_dt_list_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__ocpy_merge_comm_dt_list_dec(const void **_pp, void *value); +static herr_t H5P__ocpy_merge_comm_dt_list_copy(const char* name, size_t size, void* value); +static int H5P__ocpy_merge_comm_dt_list_cmp(const void *value1, const void *value2, size_t size); +static herr_t H5P__ocpy_merge_comm_dt_list_close(const char* name, size_t size, void* value); /*********************/ @@ -95,12 +103,12 @@ const H5P_libclass_t H5P_CLS_OCPY[1] = {{ &H5P_CLS_ROOT_g, /* Parent class ID */ &H5P_CLS_OBJECT_COPY_g, /* Pointer to class ID */ &H5P_LST_OBJECT_COPY_g, /* Pointer to default property list ID */ - H5P_ocpy_reg_prop, /* Default property registration routine */ + H5P__ocpy_reg_prop, /* Default property registration routine */ NULL, /* Class creation callback */ NULL, /* Class creation callback info */ - H5P_ocpy_copy, /* Class copy callback */ + NULL, /* Class copy callback */ NULL, /* Class copy callback info */ - H5P_ocpy_close, /* Class close callback */ + NULL, /* Class close callback */ NULL /* Class close callback info */ }}; @@ -114,13 +122,18 @@ const H5P_libclass_t H5P_CLS_OCPY[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const unsigned H5O_def_ocpy_option_g = H5O_CPY_OPTION_DEF; /* Default object copy flags */ +static const H5O_copy_dtype_merge_list_t *H5O_def_merge_comm_dtype_list_g = H5O_CPY_MERGE_COMM_DT_LIST_DEF; /* Default merge committed dtype list */ +static const H5O_mcdt_cb_info_t H5O_def_mcdt_cb_g = H5O_CPY_MCDT_SEARCH_CB_DEF; /* Default callback before searching the global list of committed datatypes at destination */ + /* Declare a free list to manage the H5O_copy_dtype_merge_list_t struct */ H5FL_DEFINE(H5O_copy_dtype_merge_list_t); /*------------------------------------------------------------------------- - * Function: H5P_ocpy_reg_prop + * Function: H5P__ocpy_reg_prop * * Purpose: Initialize the object copy property list class * @@ -131,100 +144,186 @@ H5FL_DEFINE(H5O_copy_dtype_merge_list_t); *------------------------------------------------------------------------- */ static herr_t -H5P_ocpy_reg_prop(H5P_genclass_t *pclass) +H5P__ocpy_reg_prop(H5P_genclass_t *pclass) { - unsigned ocpy_option = H5O_CPY_OPTION_DEF; /* Default object copy flags */ - H5O_copy_dtype_merge_list_t *merge_comm_dtype_list = H5O_CPY_MERGE_COMM_DT_LIST_DEF; /* Default merge committed dtype list */ - H5O_mcdt_cb_info_t mcdt_cb = H5O_CPY_MCDT_SEARCH_CB_DEF; /* Default callback before searching the global list of committed datatypes at destination */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(FAIL) + FUNC_ENTER_STATIC /* Register copy options property */ - if(H5P_register_real(pclass, H5O_CPY_OPTION_NAME, H5O_CPY_OPTION_SIZE, &ocpy_option, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + if(H5P_register_real(pclass, H5O_CPY_OPTION_NAME, H5O_CPY_OPTION_SIZE, &H5O_def_ocpy_option_g, + NULL, NULL, NULL, H5O_CPY_OPTION_ENC, H5O_CPY_OPTION_DEC, + NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register merge named dtype list property */ - if(H5P_register_real(pclass, H5O_CPY_MERGE_COMM_DT_LIST_NAME, H5O_CPY_MERGE_COMM_DT_LIST_SIZE, &merge_comm_dtype_list, NULL, NULL, NULL, NULL, NULL, H5O_CPY_MERGE_COMM_DT_LIST_CMP, NULL) < 0) + if(H5P_register_real(pclass, H5O_CPY_MERGE_COMM_DT_LIST_NAME, H5O_CPY_MERGE_COMM_DT_LIST_SIZE, &H5O_def_merge_comm_dtype_list_g, + NULL, NULL, NULL, H5O_CPY_MERGE_COMM_DT_LIST_ENC, H5O_CPY_MERGE_COMM_DT_LIST_DEC, + NULL, H5O_CPY_MERGE_COMM_DT_LIST_COPY, H5O_CPY_MERGE_COMM_DT_LIST_CMP, H5O_CPY_MERGE_COMM_DT_LIST_CLOSE) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") /* Register property for callback when completing the search for a matching named datatype from the named dtype list */ - if(H5P_register_real(pclass, H5O_CPY_MCDT_SEARCH_CB_NAME, H5O_CPY_MCDT_SEARCH_CB_SIZE, &mcdt_cb, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + /* (Note: this property should not have an encode/decode callback -QAK) */ + if(H5P_register_real(pclass, H5O_CPY_MCDT_SEARCH_CB_NAME, H5O_CPY_MCDT_SEARCH_CB_SIZE, &H5O_def_mcdt_cb_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocpy_reg_prop() */ +} /* end H5P__ocpy_reg_prop() */ /*------------------------------------------------------------------------- - * Function: H5P_ocpy_copy + * Function: H5P__free_merge_comm_dtype_list * - * Purpose: Callback routine which is called whenever any object - * copy property list is copied. This routine copies - * the properties from the old list to the new list. + * Purpose: Frees the provided merge named dtype list * - * Return: Success: Non-negative - * Failure: Negative + * Return: NULL * - * Programmer: Neil Fortner - * Friday, October 28, 2011 + * Programmer: Neil Fortner + * October 27, 2011 + *------------------------------------------------------------------------- + */ +static H5O_copy_dtype_merge_list_t * +H5P__free_merge_comm_dtype_list(H5O_copy_dtype_merge_list_t *dt_list) +{ + H5O_copy_dtype_merge_list_t *tmp_node; + + FUNC_ENTER_STATIC_NOERR + + /* Free the list */ + while(dt_list) { + tmp_node = dt_list->next; + (void)H5MM_xfree(dt_list->path); + (void)H5FL_FREE(H5O_copy_dtype_merge_list_t, dt_list); + dt_list = tmp_node; + } /* end while */ + + FUNC_LEAVE_NOAPI(NULL); +} /* H5P__free_merge_comm_dtype_list */ + + +/*------------------------------------------------------------------------- + * Function: H5P__ocpy_merge_comm_dt_list_enc + * + * Purpose: Callback routine which is called whenever the common + * datatype property in the object copy property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 31, 2012 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t -H5P_ocpy_copy(hid_t dst_plist_id, hid_t src_plist_id, void UNUSED *copy_data) +H5P__ocpy_merge_comm_dt_list_enc(const void *value, void **_pp, size_t *size) { - H5O_copy_dtype_merge_list_t *src_dt_list, *dst_dt_list = NULL; /* Source & destination merge named datatype lists */ - H5O_copy_dtype_merge_list_t *dst_dt_list_tail = NULL, *tmp_dt_list = NULL; /* temporary merge named datatype lists */ - H5P_genplist_t *src_plist; /* Pointer to source property list */ - H5P_genplist_t *dst_plist; /* Pointer to destination property list */ - herr_t ret_value = SUCCEED; /* Return value */ + const H5O_copy_dtype_merge_list_t * const *dt_list_ptr = (const H5O_copy_dtype_merge_list_t * const *)value; + uint8_t **pp = (uint8_t **)_pp; + const H5O_copy_dtype_merge_list_t *dt_list; /* Pointer to merge named datatype list */ + size_t len; /* Length of path component */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC_NOERR - /* Verify property list IDs */ - if(NULL == (dst_plist = (H5P_genplist_t *)H5I_object(dst_plist_id))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an object copy property list") - if(NULL == (src_plist = (H5P_genplist_t *)H5I_object(src_plist_id))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an object copy property list") + HDassert(dt_list_ptr); + HDassert(size); - /* Get the merge committed dtype list property from the old property list */ - if(H5P_get(src_plist, H5O_CPY_MERGE_COMM_DT_LIST_NAME, &src_dt_list) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get merge named dtype list") + /* Iterate over merge committed dtype list */ + dt_list = *dt_list_ptr; + while(dt_list) { + /* Get length of encoded path */ + len = HDstrlen(dt_list->path) + 1; - /* Make copy of merge committed dtype list */ - while(src_dt_list) { - /* Copy src_dt_list */ - if(NULL == (tmp_dt_list = H5FL_CALLOC(H5O_copy_dtype_merge_list_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") - if(NULL == (tmp_dt_list->path = H5MM_strdup(src_dt_list->path))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") + /* Encode merge committed dtype list */ + if(*pp) { + HDmemcpy(*(char **)pp, dt_list->path, len); + *pp += len; + } /* end if */ - /* Add copied node to dest dtype list */ - if(dst_dt_list_tail) { - dst_dt_list_tail->next = tmp_dt_list; - dst_dt_list_tail = tmp_dt_list; + /* Increment the size of the buffer */ + *size += len; + + /* Advance to the next node */ + dt_list = dt_list->next; + } /* end while */ + + /* Encode the terminator for the string sequence */ + if(*pp) + *(*pp)++ = (uint8_t)'\0'; + + /* Account for the string sequence terminator */ + *size += 1; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__ocpy_merge_comm_dt_list_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__ocpy_merge_comm_dt_list_dec + * + * Purpose: Callback routine which is called whenever the common + * datatype property in the dataset access property list is + * decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 31, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__ocpy_merge_comm_dt_list_dec(const void **_pp, void *_value) +{ + H5O_copy_dtype_merge_list_t **dt_list = (H5O_copy_dtype_merge_list_t **)_value; /* Pointer to merge named datatype list */ + const uint8_t **pp = (const uint8_t **)_pp; + H5O_copy_dtype_merge_list_t *dt_list_tail = NULL, *tmp_dt_list = NULL; /* temporary merge named datatype lists */ + size_t len; /* Length of path component */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDassert(pp); + HDassert(*pp); + HDassert(dt_list); + + /* Decode the string sequence */ + len = HDstrlen(*(const char **)pp); + while(len > 0) { + /* Create new node & duplicate string */ + if(NULL == (tmp_dt_list = H5FL_CALLOC(H5O_copy_dtype_merge_list_t))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTALLOC, FAIL, "memory allocation failed") + if(NULL == (tmp_dt_list->path = H5MM_strdup(*(const char **)pp))) + HGOTO_ERROR(H5E_PLIST, H5E_CANTALLOC, FAIL, "memory allocation failed") + *pp += len + 1; + HDassert(len == HDstrlen(tmp_dt_list->path)); + + /* Add copied node to dtype list */ + if(dt_list_tail) { + dt_list_tail->next = tmp_dt_list; + dt_list_tail = tmp_dt_list; } /* end if */ else { - dst_dt_list = tmp_dt_list; - dst_dt_list_tail = tmp_dt_list; + *dt_list = tmp_dt_list; + dt_list_tail = tmp_dt_list; } /* end else */ tmp_dt_list = NULL; - /* Advance src_dt_list pointer */ - src_dt_list = src_dt_list->next; + /* Compute length of next string */ + len = HDstrlen(*(const char **)pp); } /* end while */ - /* Set the merge named dtype list property for the destination property list - */ - if(H5P_set(dst_plist, H5O_CPY_MERGE_COMM_DT_LIST_NAME, &dst_dt_list) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set merge committed dtype list") + /* Advance past terminator for string sequence */ + *pp += 1; -done: +done: if(ret_value < 0) { - dst_dt_list = H5P_free_merge_comm_dtype_list(dst_dt_list); + *dt_list = H5P__free_merge_comm_dtype_list(*dt_list); if(tmp_dt_list) { tmp_dt_list->path = (char *)H5MM_xfree(tmp_dt_list->path); tmp_dt_list = H5FL_FREE(H5O_copy_dtype_merge_list_t, tmp_dt_list); @@ -232,53 +331,78 @@ done: } /* end if */ FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocpy_copy() */ +} /* H5P__ocpy_merge_comm_dt_list_dec() */ -/*------------------------------------------------------------------------- - * Function: H5P_ocpy_close +/*-------------------------------------------------------------------------- + * Function: H5P__ocpy_merge_comm_dt_list_copy * - * Purpose: Callback routine which is called whenever any object copy - * property list is closed. This routine performs any generic - * cleanup needed on the properties the library put into the - * list. + * Purpose: Copy the merge committed datatype list * - * Return: Success: Non-negative - * Failure: Negative + * Return: Success: Non-negative + * Failure: Negative * - * Programmer: Neil Fortner - * Friday, October 28, 2011 + * Programmer: Quincey Koziol + * Friday, August 31, 2012 * - *------------------------------------------------------------------------- + *-------------------------------------------------------------------------- */ /* ARGSUSED */ static herr_t -H5P_ocpy_close(hid_t ocpypl_id, void UNUSED *close_data) +H5P__ocpy_merge_comm_dt_list_copy(const char UNUSED *name, size_t UNUSED size, + void *value) { - H5O_copy_dtype_merge_list_t *dt_list; /* Merge named datatype list */ - H5P_genplist_t *plist; /* Property list */ - herr_t ret_value = SUCCEED; /* Return value */ + const H5O_copy_dtype_merge_list_t *src_dt_list; /* Source merge named datatype lists */ + H5O_copy_dtype_merge_list_t *dst_dt_list = NULL; /* Destination merge named datatype lists */ + H5O_copy_dtype_merge_list_t *dst_dt_list_tail = NULL, *tmp_dt_list = NULL; /* temporary merge named datatype lists */ + herr_t ret_value = SUCCEED; - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC - /* Check arguments */ - if(NULL == (plist = (H5P_genplist_t *)H5I_object(ocpypl_id))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an object copy property list") + HDassert(value); - /* Get the merge named dtype list property from the old property list */ - if(H5P_get(plist, H5O_CPY_MERGE_COMM_DT_LIST_NAME, &dt_list) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get merge named dtype list") + /* Make copy of merge committed dtype list */ + src_dt_list = *(const H5O_copy_dtype_merge_list_t **)value; + while(src_dt_list) { + /* Copy src_dt_list */ + if(NULL == (tmp_dt_list = H5FL_CALLOC(H5O_copy_dtype_merge_list_t))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") + if(NULL == (tmp_dt_list->path = H5MM_strdup(src_dt_list->path))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") - /* Free the merge named dtype list */ - dt_list = H5P_free_merge_comm_dtype_list(dt_list); + /* Add copied node to dest dtype list */ + if(dst_dt_list_tail) { + dst_dt_list_tail->next = tmp_dt_list; + dst_dt_list_tail = tmp_dt_list; + } /* end if */ + else { + dst_dt_list = tmp_dt_list; + dst_dt_list_tail = tmp_dt_list; + } /* end else */ + tmp_dt_list = NULL; + + /* Advance src_dt_list pointer */ + src_dt_list = src_dt_list->next; + } /* end while */ + + /* Set the merge named dtype list property for the destination property list */ + *(H5O_copy_dtype_merge_list_t **)value = dst_dt_list; done: + if(ret_value < 0) { + dst_dt_list = H5P__free_merge_comm_dtype_list(dst_dt_list); + if(tmp_dt_list) { + tmp_dt_list->path = (char *)H5MM_xfree(tmp_dt_list->path); + tmp_dt_list = H5FL_FREE(H5O_copy_dtype_merge_list_t, tmp_dt_list); + } /* end if */ + } /* end if */ + FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocpy_close() */ +} /* end H5P__ocpy_merge_comm_dt_list_copy() */ /*------------------------------------------------------------------------- - * Function: H5P_ocpy_merge_comm_dt_list_cmp + * Function: H5P__ocpy_merge_comm_dt_list_cmp * * Purpose: Callback routine which is called whenever the merge * named dtype property in the object copy property list @@ -294,14 +418,14 @@ done: *------------------------------------------------------------------------- */ static int -H5P_ocpy_merge_comm_dt_list_cmp(const void *_dt_list1, const void *_dt_list2, +H5P__ocpy_merge_comm_dt_list_cmp(const void *_dt_list1, const void *_dt_list2, size_t UNUSED size) { const H5O_copy_dtype_merge_list_t *dt_list1 = *(H5O_copy_dtype_merge_list_t * const *)_dt_list1, /* Create local aliases for values */ *dt_list2 = *(H5O_copy_dtype_merge_list_t * const *)_dt_list2; herr_t ret_value = 0; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC_NOERR /* Sanity check */ HDassert(_dt_list1); @@ -326,37 +450,35 @@ H5P_ocpy_merge_comm_dt_list_cmp(const void *_dt_list1, const void *_dt_list2, done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_ocpy_merge_comm_dt_list_cmp() */ +} /* end H5P__ocpy_merge_comm_dt_list_cmp() */ -/*------------------------------------------------------------------------- - * Function: H5P_free_merge_comm_dtype_list +/*-------------------------------------------------------------------------- + * Function: H5P__ocpy_merge_comm_dt_list_close * - * Purpose: Frees the provided merge named dtype list + * Purpose: Close the merge common datatype list property * - * Return: NULL + * Return: Success: Non-negative + * Failure: Negative * - * Programmer: Neil Fortner - * October 27, 2011 - *------------------------------------------------------------------------- + * Programmer: Quincey Koziol + * Friday, August 31, 2012 + * + *--------------------------------------------------------------------------- */ -static H5O_copy_dtype_merge_list_t * -H5P_free_merge_comm_dtype_list(H5O_copy_dtype_merge_list_t *dt_list) +/* ARGSUSED */ +static herr_t +H5P__ocpy_merge_comm_dt_list_close(const char UNUSED *name, size_t UNUSED size, void *value) { - H5O_copy_dtype_merge_list_t *tmp_node; + FUNC_ENTER_STATIC_NOERR - FUNC_ENTER_NOAPI_NOINIT + HDassert(value); - /* Free the list */ - while(dt_list) { - tmp_node = dt_list->next; - (void)H5MM_xfree(dt_list->path); - (void)H5FL_FREE(H5O_copy_dtype_merge_list_t, dt_list); - dt_list = tmp_node; - } /* end while */ + /* Free the merge named dtype list */ + H5P__free_merge_comm_dtype_list(*(H5O_copy_dtype_merge_list_t **)value); - FUNC_LEAVE_NOAPI(NULL); -} /* H5P_free_merge_comm_dtype_list */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__ocpy_merge_comm_dt_list_close() */ /*------------------------------------------------------------------------- @@ -541,7 +663,7 @@ H5Pfree_merge_committed_dtype_paths(hid_t plist_id) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get merge committed dtype list") /* Free dtype list */ - dt_list = H5P_free_merge_comm_dtype_list(dt_list); + dt_list = H5P__free_merge_comm_dtype_list(dt_list); /* Update the list stored in the property list (to NULL) */ if(H5P_set(plist, H5O_CPY_MERGE_COMM_DT_LIST_NAME, &dt_list) < 0) diff --git a/src/H5Ppkg.h b/src/H5Ppkg.h index 803abfd..9d48c60 100644 --- a/src/H5Ppkg.h +++ b/src/H5Ppkg.h @@ -75,6 +75,8 @@ typedef struct H5P_genprop_t { H5P_prp_create_func_t create; /* Function to call when a property is created */ H5P_prp_set_func_t set; /* Function to call when a property value is set */ H5P_prp_get_func_t get; /* Function to call when a property value is retrieved */ + H5P_prp_encode_func_t encode; /* Function to call when a property is encoded */ + H5P_prp_decode_func_t decode; /* Function to call when a property is decoded */ H5P_prp_delete_func_t del; /* Function to call when a property is deleted */ H5P_prp_copy_func_t copy; /* Function to call when a property is copied */ H5P_prp_compare_func_t cmp; /* Function to call when a property is compared */ @@ -159,26 +161,31 @@ H5_DLL H5P_genclass_t *H5P_create_class(H5P_genclass_t *par_class, H5P_cls_close_func_t cls_close, void *close_data); H5_DLL H5P_genclass_t *H5P_copy_pclass(H5P_genclass_t *pclass); H5_DLL herr_t H5P_register_real(H5P_genclass_t *pclass, const char *name, size_t size, - const void *def_value, H5P_prp_create_func_t prp_create, H5P_prp_set_func_t prp_set, - H5P_prp_get_func_t prp_get, H5P_prp_delete_func_t prp_delete, + const void *def_value, H5P_prp_create_func_t prp_create, + H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, + H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); H5_DLL herr_t H5P_register(H5P_genclass_t **pclass, const char *name, size_t size, - const void *def_value, H5P_prp_create_func_t prp_create, H5P_prp_set_func_t prp_set, - H5P_prp_get_func_t prp_get, H5P_prp_delete_func_t prp_delete, + const void *def_value, H5P_prp_create_func_t prp_create, + H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, + H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); H5_DLL herr_t H5P_add_prop(H5SL_t *props, H5P_genprop_t *prop); H5_DLL herr_t H5P_access_class(H5P_genclass_t *pclass, H5P_class_mod_t mod); H5_DLL htri_t H5P_exist_pclass(H5P_genclass_t *pclass, const char *name); -H5_DLL herr_t H5P_get_size_plist(H5P_genplist_t *plist, const char *name, +H5_DLL herr_t H5P_get_size_plist(const H5P_genplist_t *plist, const char *name, size_t *size); H5_DLL herr_t H5P_get_size_pclass(H5P_genclass_t *pclass, const char *name, size_t *size); H5_DLL H5P_genclass_t *H5P_get_class(const H5P_genplist_t *plist); H5_DLL herr_t H5P_get_nprops_plist(const H5P_genplist_t *plist, size_t *nprops); H5_DLL int H5P_cmp_class(const H5P_genclass_t *pclass1, const H5P_genclass_t *pclass2); -H5_DLL int H5P_cmp_plist(const H5P_genplist_t *plist1, const H5P_genplist_t *plist2); +H5_DLL herr_t H5P_cmp_plist(const H5P_genplist_t *plist1, const H5P_genplist_t *plist2, + int *cmp_ret); H5_DLL int H5P_iterate_plist(const H5P_genplist_t *plist, hbool_t iter_all_prop, int *idx, H5P_iterate_int_t iter_func, void *iter_data); H5_DLL int H5P_iterate_pclass(const H5P_genclass_t *pclass, int *idx, @@ -193,7 +200,25 @@ H5_DLL herr_t H5P_close_class(void *_pclass); H5_DLL herr_t H5P_get_filter(const H5Z_filter_info_t *filter, unsigned int *flags, size_t *cd_nelmts, unsigned cd_values[], size_t namelen, char name[], unsigned *filter_config); -H5_DLL H5P_genprop_t *H5P__find_prop_plist(H5P_genplist_t *plist, const char *name); +H5_DLL H5P_genprop_t *H5P__find_prop_plist(const H5P_genplist_t *plist, const char *name); +H5_DLL hid_t H5P__new_plist_of_type(H5P_plist_type_t type); + +/* Encode/decode routines */ +H5_DLL herr_t H5P__encode(const H5P_genplist_t *plist, hbool_t enc_all_prop, + void *buf, size_t *nalloc); +H5_DLL hid_t H5P__decode(const void *buf); +H5_DLL herr_t H5P__encode_hsize_t(const void *value, void **_pp, size_t *size); +H5_DLL herr_t H5P__encode_size_t(const void *value, void **_pp, size_t *size); +H5_DLL herr_t H5P__encode_unsigned(const void *value, void **_pp, size_t *size); +H5_DLL herr_t H5P__encode_uint8_t(const void *value, void **_pp, size_t *size); +H5_DLL herr_t H5P__encode_hbool_t(const void *value, void **_pp, size_t *size); +H5_DLL herr_t H5P__encode_double(const void *value, void **_pp, size_t *size); +H5_DLL herr_t H5P__decode_hsize_t(const void **_pp, void *value); +H5_DLL herr_t H5P__decode_size_t(const void **_pp, void *value); +H5_DLL herr_t H5P__decode_unsigned(const void **_pp, void *value); +H5_DLL herr_t H5P__decode_uint8_t(const void **_pp, void *value); +H5_DLL herr_t H5P__decode_hbool_t(const void **_pp, void *value); +H5_DLL herr_t H5P__decode_double(const void **_pp, void *value); /* Testing functions */ #ifdef H5P_TESTING diff --git a/src/H5Pprivate.h b/src/H5Pprivate.h index 849a533..6560064 100644 --- a/src/H5Pprivate.h +++ b/src/H5Pprivate.h @@ -84,10 +84,11 @@ H5_DLL herr_t H5P_get(const H5P_genplist_t *plist, const char *name, void *value H5_DLL herr_t H5P_set(H5P_genplist_t *plist, const char *name, const void *value); H5_DLL herr_t H5P_insert(H5P_genplist_t *plist, const char *name, size_t size, void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, + H5P_prp_encode_func_t prp_encode, H5P_prp_decode_func_t prp_decode, H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); H5_DLL herr_t H5P_remove(hid_t plist_id, H5P_genplist_t *plist, const char *name); -H5_DLL htri_t H5P_exist_plist(H5P_genplist_t *plist, const char *name); +H5_DLL htri_t H5P_exist_plist(const H5P_genplist_t *plist, const char *name); H5_DLL char *H5P_get_class_name(H5P_genclass_t *pclass); H5_DLL herr_t H5P_get_nprops_pclass(const H5P_genclass_t *pclass, size_t *nprops, hbool_t recurse); diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h index fd75e86..507bbb6 100644 --- a/src/H5Ppublic.h +++ b/src/H5Ppublic.h @@ -113,6 +113,8 @@ typedef herr_t (*H5P_prp_cb2_t)(hid_t prop_id, const char *name, size_t size, vo typedef H5P_prp_cb1_t H5P_prp_create_func_t; typedef H5P_prp_cb2_t H5P_prp_set_func_t; typedef H5P_prp_cb2_t H5P_prp_get_func_t; +typedef herr_t (*H5P_prp_encode_func_t)(const void *value, void **buf, size_t *size); +typedef herr_t (*H5P_prp_decode_func_t)(const void **buf, void *value); typedef H5P_prp_cb2_t H5P_prp_delete_func_t; typedef H5P_prp_cb1_t H5P_prp_copy_func_t; typedef int (*H5P_prp_compare_func_t)(const void *value1, const void *value2, size_t size); @@ -229,6 +231,8 @@ H5_DLL herr_t H5Pinsert2(hid_t plist_id, const char *name, size_t size, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); H5_DLL herr_t H5Pset(hid_t plist_id, const char *name, void *value); H5_DLL htri_t H5Pexist(hid_t plist_id, const char *name); +H5_DLL herr_t H5Pencode(hid_t plist_id, void *buf, size_t *nalloc); +H5_DLL hid_t H5Pdecode(const void *buf); H5_DLL herr_t H5Pget_size(hid_t id, const char *name, size_t *size); H5_DLL herr_t H5Pget_nprops(hid_t id, size_t *nprops); H5_DLL hid_t H5Pget_class(hid_t plist_id); @@ -412,7 +416,7 @@ H5_DLL herr_t H5Pget_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t *op, voi #ifdef H5_HAVE_PARALLEL H5_DLL herr_t H5Pget_mpio_actual_chunk_opt_mode(hid_t plist_id, H5D_mpio_actual_chunk_opt_mode_t *actual_chunk_opt_mode); H5_DLL herr_t H5Pget_mpio_actual_io_mode(hid_t plist_id, H5D_mpio_actual_io_mode_t *actual_io_mode); -H5_DLL herr_t H5Pget_mpio_no_collective_cause(hid_t plist_id, H5D_mpio_no_collective_cause_t *local_no_collective_cause, H5D_mpio_no_collective_cause_t *global_no_collective_cause); +H5_DLL herr_t H5Pget_mpio_no_collective_cause(hid_t plist_id, uint32_t *local_no_collective_cause, uint32_t *global_no_collective_cause); #endif /* H5_HAVE_PARALLEL */ /* Link creation property list (LCPL) routines */ diff --git a/src/H5Pstrcpl.c b/src/H5Pstrcpl.c index 8573985..bedacb0 100644 --- a/src/H5Pstrcpl.c +++ b/src/H5Pstrcpl.c @@ -46,6 +46,8 @@ /* Definitions for character set encoding property */ #define H5P_STRCRT_CHAR_ENCODING_SIZE sizeof(H5T_cset_t) #define H5P_STRCRT_CHAR_ENCODING_DEF H5F_DEFAULT_CSET +#define H5P_STRCRT_CHAR_ENCODING_ENC H5P__strcrt_char_encoding_enc +#define H5P_STRCRT_CHAR_ENCODING_DEC H5P__strcrt_char_encoding_dec /******************/ @@ -63,7 +65,11 @@ /********************/ /* Property class callbacks */ -static herr_t H5P_strcrt_reg_prop(H5P_genclass_t *pclass); +static herr_t H5P__strcrt_reg_prop(H5P_genclass_t *pclass); + +/* encode & decode callbacks */ +static herr_t H5P__strcrt_char_encoding_enc(const void *value, void **_pp, size_t *size); +static herr_t H5P__strcrt_char_encoding_dec(const void **_pp, void *value); /*********************/ @@ -77,7 +83,7 @@ const H5P_libclass_t H5P_CLS_STRCRT[1] = {{ &H5P_CLS_ROOT_g, /* Parent class ID */ &H5P_CLS_STRING_CREATE_g, /* Pointer to class ID */ NULL, /* Pointer to default property list ID */ - H5P_strcrt_reg_prop, /* Default property registration routine */ + H5P__strcrt_reg_prop, /* Default property registration routine */ NULL, /* Class creation callback */ NULL, /* Class creation callback info */ NULL, /* Class copy callback */ @@ -96,12 +102,15 @@ const H5P_libclass_t H5P_CLS_STRCRT[1] = {{ /* Local Variables */ /*******************/ +/* Property value defaults */ +static const H5T_cset_t H5P_def_char_encoding_g = H5P_STRCRT_CHAR_ENCODING_DEF; /* Default character set encoding */ + /*------------------------------------------------------------------------- - * Function: H5P_strcrt_reg_prop + * Function: H5P__strcrt_reg_prop * - * Purpose: Register the dataset creation property list class's properties + * Purpose: Register the string creation property list class's properties * * Return: Non-negative on success/Negative on failure * @@ -110,41 +119,39 @@ const H5P_libclass_t H5P_CLS_STRCRT[1] = {{ *------------------------------------------------------------------------- */ static herr_t -H5P_strcrt_reg_prop(H5P_genclass_t *pclass) +H5P__strcrt_reg_prop(H5P_genclass_t *pclass) { - H5T_cset_t char_encoding = H5P_STRCRT_CHAR_ENCODING_DEF; /* Default character set encoding */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(FAIL) + FUNC_ENTER_STATIC /* Register character encoding */ - if(H5P_register_real(pclass, H5P_STRCRT_CHAR_ENCODING_NAME, H5P_STRCRT_CHAR_ENCODING_SIZE, &char_encoding, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + if(H5P_register_real(pclass, H5P_STRCRT_CHAR_ENCODING_NAME, H5P_STRCRT_CHAR_ENCODING_SIZE, &H5P_def_char_encoding_g, + NULL, NULL, NULL, H5P_STRCRT_CHAR_ENCODING_ENC, H5P_STRCRT_CHAR_ENCODING_DEC, + NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5P_strcrt_reg_prop() */ +} /* end H5P__strcrt_reg_prop() */ /*------------------------------------------------------------------------- - * Function: H5Pset_char_encoding - * - * Purpose: Sets the character encoding of the string. + * Function: H5Pset_char_encoding * - * Return: Non-negative on success/Negative on failure + * Purpose: Sets the character encoding of the string. * - * Programmer: James Laird - * Wednesday, October 26, 2005 - * - * Modifications: + * Return: Non-negative on success/Negative on failure * + * Programmer: James Laird + * Wednesday, October 26, 2005 *------------------------------------------------------------------------- */ herr_t H5Pset_char_encoding(hid_t plist_id, H5T_cset_t encoding) { H5P_genplist_t *plist; /* Property list pointer */ - herr_t ret_value=SUCCEED; /* return value */ + herr_t ret_value = SUCCEED; /* return value */ FUNC_ENTER_API(FAIL) H5TRACE2("e", "iTc", plist_id, encoding); @@ -154,7 +161,7 @@ H5Pset_char_encoding(hid_t plist_id, H5T_cset_t encoding) HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "character encoding is not valid") /* Get the plist structure */ - if(NULL == (plist = H5P_object_verify(plist_id,H5P_STRING_CREATE))) + if(NULL == (plist = H5P_object_verify(plist_id, H5P_STRING_CREATE))) HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") /* Set the character encoding */ @@ -199,3 +206,76 @@ done: FUNC_LEAVE_API(ret_value) } /* end H5Pget_char_encoding() */ + +/*------------------------------------------------------------------------- + * Function: H5P__strcrt_char_encoding_enc + * + * Purpose: Callback routine which is called whenever the character + * set encoding property in the string create property list + * is encoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 31, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__strcrt_char_encoding_enc(const void *value, void **_pp, size_t *size) +{ + const H5T_cset_t *encoding = (const H5T_cset_t *)value; /* Create local alias for values */ + uint8_t **pp = (uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity check */ + HDassert(encoding); + HDassert(size); + + if(NULL != *pp) + /* Encode character set encoding */ + *(*pp)++ = (uint8_t)*encoding; + + /* Size of character set encoding */ + (*size)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__strcrt_char_encoding_enc() */ + + +/*------------------------------------------------------------------------- + * Function: H5P__strcrt_char_encoding_dec + * + * Purpose: Callback routine which is called whenever the character + * set encoding property in the string create property list + * is decoded. + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Quincey Koziol + * Friday, August 31, 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5P__strcrt_char_encoding_dec(const void **_pp, void *_value) +{ + H5T_cset_t *encoding = (H5T_cset_t *)_value; /* Character set encoding */ + const uint8_t **pp = (const uint8_t **)_pp; + + FUNC_ENTER_STATIC_NOERR + + /* Sanity checks */ + HDassert(pp); + HDassert(*pp); + HDassert(encoding); + + /* Decode character set encoding */ + *encoding = (H5T_cset_t)*(*pp)++; + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5P__strcrt_char_encoding_dec() */ + diff --git a/src/H5T.c b/src/H5T.c index 5a3c17b..5801c3f 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -292,8 +292,6 @@ static herr_t H5T_unregister(H5T_pers_t pers, const char *name, H5T_t *src, static herr_t H5T_register(H5T_pers_t pers, const char *name, H5T_t *src, H5T_t *dst, H5T_conv_t func, hid_t dxpl_id, hbool_t api_call); static htri_t H5T_compiler_conv(H5T_t *src, H5T_t *dst); -static herr_t H5T_encode(H5T_t *obj, unsigned char *buf, size_t *nalloc); -static H5T_t *H5T_decode(const unsigned char *buf); static herr_t H5T_set_size(H5T_t *dt, size_t size); @@ -1062,6 +1060,8 @@ H5T_init_interface(void) status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_dxpl_id, FALSE); status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); @@ -2897,7 +2897,7 @@ done: * *------------------------------------------------------------------------- */ -static herr_t +herr_t H5T_encode(H5T_t *obj, unsigned char *buf, size_t *nalloc) { size_t buf_size; /* Encoded size of datatype */ @@ -2954,7 +2954,7 @@ done: * *------------------------------------------------------------------------- */ -static H5T_t * +H5T_t * H5T_decode(const unsigned char *buf) { H5F_t *f = NULL; /* Fake file structure*/ diff --git a/src/H5Tconv.c b/src/H5Tconv.c index 983922f..5ecf864 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -2889,6 +2889,86 @@ done: /*------------------------------------------------------------------------- + * Function: H5T__conv_enum_numeric + * + * Purpose: Converts enumerated data to a numeric type (integer or + * floating-point number). This function is registered into + * the conversion table twice in H5T_init_interface in H5T.c. + * Once for enum-integer conversion. Once for enum-float conversion. + * + * Return: Success: Non-negative + * + * Failure: negative + * + * Programmer: Raymond Lu + * 12 October 2012 + *------------------------------------------------------------------------- + */ +herr_t +H5T__conv_enum_numeric(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t UNUSED bkg_stride, void *_buf, + void UNUSED *bkg, hid_t UNUSED dxpl_id) +{ + H5T_t *src, *dst; /*src and dst datatypes */ + H5T_t *src_parent; /*parent type for src */ + hid_t src_parent_id = -1; /*ID for parent of the source */ + H5T_path_t *tpath; /* Conversion information */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_PACKAGE + + switch(cdata->command) { + case H5T_CONV_INIT: + /* + * Determine if this conversion function applies to the conversion + * path SRC_ID->DST_ID. If not, return failure. + */ + if(NULL == (src = (H5T_t *)H5I_object(src_id)) || NULL == (dst = (H5T_t *)H5I_object(dst_id))) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADTYPE, FAIL, "not a datatype") + if(H5T_ENUM != src->shared->type) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADTYPE, FAIL, "source type is not a H5T_ENUM datatype") + if(H5T_INTEGER != dst->shared->type && H5T_FLOAT != dst->shared->type) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADTYPE, FAIL, "destination is not an integer type") + + cdata->need_bkg = H5T_BKG_NO; + break; + + case H5T_CONV_FREE: + break; + + case H5T_CONV_CONV: + if(NULL == (src = (H5T_t *)H5I_object(src_id)) || NULL == (dst = (H5T_t *)H5I_object(dst_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype") + + src_parent = src->shared->parent; + + if(NULL == (tpath = H5T_path_find(src_parent, dst, NULL, NULL, dxpl_id, FALSE))) { + HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest datatype") + } else if(!H5T_path_noop(tpath)) { + if((src_parent_id = H5I_register(H5I_DATATYPE, H5T_copy(src_parent, H5T_COPY_ALL), FALSE)) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTREGISTER, FAIL, "unable to register types for conversion") + + /* Convert the data */ + if(H5T_convert(tpath, src_parent_id, dst_id, nelmts, buf_stride, bkg_stride, _buf, bkg, dxpl_id) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "datatype conversion failed") + } + break; + + default: + /* Some other command we don't know about yet.*/ + HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, FAIL, "unknown conversion command") + } /* end switch */ + +done: + /* Release the temporary datatype IDs used */ + if(src_parent_id >= 0) + H5I_dec_ref(src_parent_id); + + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5T__conv_enum_numeric() */ + + +/*------------------------------------------------------------------------- * Function: H5T__conv_vlen * * Purpose: Converts between VL datatypes in memory and on disk. diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index b9364d6..8323e15 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -544,6 +544,10 @@ H5_DLL herr_t H5T__conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf, void *bkg, hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_enum_numeric(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); H5_DLL herr_t H5T__conv_vlen(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf, void *bkg, diff --git a/src/H5Tprivate.h b/src/H5Tprivate.h index 345924c..558afaf 100644 --- a/src/H5Tprivate.h +++ b/src/H5Tprivate.h @@ -114,6 +114,8 @@ H5_DLL H5T_class_t H5T_get_class(const H5T_t *dt, htri_t internal); H5_DLL htri_t H5T_detect_class(const H5T_t *dt, H5T_class_t cls, hbool_t from_api); H5_DLL size_t H5T_get_size(const H5T_t *dt); H5_DLL int H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset); +H5_DLL herr_t H5T_encode(H5T_t *obj, unsigned char *buf, size_t *nalloc); +H5_DLL H5T_t *H5T_decode(const unsigned char *buf); H5_DLL herr_t H5T_debug(const H5T_t *dt, FILE * stream); H5_DLL struct H5O_loc_t *H5T_oloc(H5T_t *dt); H5_DLL H5G_name_t *H5T_nameof(H5T_t *dt); diff --git a/src/H5Zprivate.h b/src/H5Zprivate.h index c2d6f7e..c1528b3 100644 --- a/src/H5Zprivate.h +++ b/src/H5Zprivate.h @@ -103,6 +103,6 @@ H5_DLL herr_t H5Z_xform_destroy(H5Z_data_xform_t *data_xform_prop); H5_DLL herr_t H5Z_xform_eval(H5Z_data_xform_t *data_xform_prop, void *array, size_t array_size, const H5T_t *buf_type); H5_DLL hbool_t H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop); -H5_DLL char* H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop); +H5_DLL const char *H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop); #endif diff --git a/src/H5Ztrans.c b/src/H5Ztrans.c index 9fa3863..498db03 100644 --- a/src/H5Ztrans.c +++ b/src/H5Ztrans.c @@ -1732,11 +1732,9 @@ H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop) * *------------------------------------------------------------------------- */ -char * +const char * H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop) { - char* ret_value; - FUNC_ENTER_NOAPI_NOINIT_NOERR /* There should be no way that this can be NULL since the function @@ -1744,8 +1742,6 @@ H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop) * pasing them */ assert(data_xform_prop); - ret_value = data_xform_prop->xform_exp; - - FUNC_LEAVE_NOAPI(ret_value) + FUNC_LEAVE_NOAPI(data_xform_prop->xform_exp) } /* H5Z_xform_extract_xform_str() */ diff --git a/src/H5err.txt b/src/H5err.txt index b4cb28b..ab3277f 100644 --- a/src/H5err.txt +++ b/src/H5err.txt @@ -48,7 +48,7 @@ MAJOR, H5E_ARGS, Invalid arguments to routine MAJOR, H5E_RESOURCE, Resource unavailable MAJOR, H5E_INTERNAL, Internal error (too specific to document in detail) -MAJOR, H5E_FILE, File accessability +MAJOR, H5E_FILE, File accessibilty MAJOR, H5E_IO, Low-level I/O MAJOR, H5E_FUNC, Function entry/exit MAJOR, H5E_ATOM, Object atom @@ -81,7 +81,7 @@ MAJOR, H5E_NONE_MAJOR, No error # Sections (for grouping minor errors) SECTION, ARGS, Argument errors SECTION, RESOURCE, Resource errors -SECTION, FILEACC, File accessability errors +SECTION, FILEACC, File accessibilty errors SECTION, FILE, Generic low-level file I/O errors SECTION, FUNC, Function entry/exit interface errors SECTION, ATOM, Object atom related errors @@ -121,7 +121,7 @@ MINOR, RESOURCE, H5E_CANTGC, Unable to garbage collect MINOR, RESOURCE, H5E_CANTGETSIZE, Unable to compute size MINOR, RESOURCE, H5E_OBJOPEN, Object is already open -# File accessability errors +# File accessibilty errors MINOR, FILEACC, H5E_FILEEXISTS, File already exists MINOR, FILEACC, H5E_FILEOPEN, File already open MINOR, FILEACC, H5E_CANTCREATE, Unable to create file diff --git a/src/H5public.h b/src/H5public.h index 193aae1..88e514d 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -75,10 +75,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 128 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 132 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.128" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.132" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.am b/src/Makefile.am index d42af98..2669bdd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -86,7 +86,8 @@ libhdf5_la_SOURCES= H5.c H5checksum.c H5dbg.c H5system.c H5timer.c H5trace.c \ H5Osdspace.c H5Oshared.c H5Ostab.c \ H5Oshmesg.c H5Otest.c H5Ounknown.c \ H5P.c H5Pacpl.c H5Pdapl.c H5Pdcpl.c \ - H5Pdeprec.c H5Pdxpl.c H5Pfapl.c H5Pfcpl.c H5Pfmpl.c \ + H5Pdeprec.c H5Pdxpl.c H5Pencdec.c \ + H5Pfapl.c H5Pfcpl.c H5Pfmpl.c \ H5Pgcpl.c H5Pint.c \ H5Plapl.c H5Plcpl.c H5Pocpl.c H5Pocpypl.c H5Pstrcpl.c H5Ptest.c \ H5R.c H5Rdeprec.c \ diff --git a/src/Makefile.in b/src/Makefile.in index a876365..c673bcf 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -157,20 +157,21 @@ am_libhdf5_la_OBJECTS = H5.lo H5checksum.lo H5dbg.lo H5system.lo \ H5Omessage.lo H5Omtime.lo H5Oname.lo H5Onull.lo H5Opline.lo \ H5Orefcount.lo H5Osdspace.lo H5Oshared.lo H5Ostab.lo \ H5Oshmesg.lo H5Otest.lo H5Ounknown.lo H5P.lo H5Pacpl.lo \ - H5Pdapl.lo H5Pdcpl.lo H5Pdeprec.lo H5Pdxpl.lo H5Pfapl.lo \ - H5Pfcpl.lo H5Pfmpl.lo H5Pgcpl.lo H5Pint.lo H5Plapl.lo \ - H5Plcpl.lo H5Pocpl.lo H5Pocpypl.lo H5Pstrcpl.lo H5Ptest.lo \ - H5R.lo H5Rdeprec.lo H5RC.lo H5RS.lo H5S.lo H5Sall.lo H5Sdbg.lo \ - H5Shyper.lo H5Smpio.lo H5Snone.lo H5Spoint.lo H5Sselect.lo \ - H5Stest.lo H5SL.lo H5SM.lo H5SMbtree2.lo H5SMcache.lo \ - H5SMmessage.lo H5SMtest.lo H5ST.lo H5T.lo H5Tarray.lo \ - H5Tbit.lo H5Tcommit.lo H5Tcompound.lo H5Tconv.lo H5Tcset.lo \ - H5Tdbg.lo H5Tdeprec.lo H5Tenum.lo H5Tfields.lo H5Tfixed.lo \ - H5Tfloat.lo H5Tinit.lo H5Tnative.lo H5Toffset.lo H5Toh.lo \ - H5Topaque.lo H5Torder.lo H5Tpad.lo H5Tprecis.lo H5Tstrpad.lo \ - H5Tvisit.lo H5Tvlen.lo H5TS.lo H5V.lo H5WB.lo H5Z.lo \ - H5Zdeflate.lo H5Zfletcher32.lo H5Znbit.lo H5Zshuffle.lo \ - H5Zszip.lo H5Zscaleoffset.lo H5Ztrans.lo + H5Pdapl.lo H5Pdcpl.lo H5Pdeprec.lo H5Pdxpl.lo H5Pencdec.lo \ + H5Pfapl.lo H5Pfcpl.lo H5Pfmpl.lo H5Pgcpl.lo H5Pint.lo \ + H5Plapl.lo H5Plcpl.lo H5Pocpl.lo H5Pocpypl.lo H5Pstrcpl.lo \ + H5Ptest.lo H5R.lo H5Rdeprec.lo H5RC.lo H5RS.lo H5S.lo \ + H5Sall.lo H5Sdbg.lo H5Shyper.lo H5Smpio.lo H5Snone.lo \ + H5Spoint.lo H5Sselect.lo H5Stest.lo H5SL.lo H5SM.lo \ + H5SMbtree2.lo H5SMcache.lo H5SMmessage.lo H5SMtest.lo H5ST.lo \ + H5T.lo H5Tarray.lo H5Tbit.lo H5Tcommit.lo H5Tcompound.lo \ + H5Tconv.lo H5Tcset.lo H5Tdbg.lo H5Tdeprec.lo H5Tenum.lo \ + H5Tfields.lo H5Tfixed.lo H5Tfloat.lo H5Tinit.lo H5Tnative.lo \ + H5Toffset.lo H5Toh.lo H5Topaque.lo H5Torder.lo H5Tpad.lo \ + H5Tprecis.lo H5Tstrpad.lo H5Tvisit.lo H5Tvlen.lo H5TS.lo \ + H5V.lo H5WB.lo H5Z.lo H5Zdeflate.lo H5Zfletcher32.lo \ + H5Znbit.lo H5Zshuffle.lo H5Zszip.lo H5Zscaleoffset.lo \ + H5Ztrans.lo libhdf5_la_OBJECTS = $(am_libhdf5_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -521,7 +522,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 118 +LT_VERS_REVISION = 122 LT_VERS_AGE = 0 H5detect_CFLAGS = -g $(AM_CFLAGS) @@ -582,7 +583,8 @@ libhdf5_la_SOURCES = H5.c H5checksum.c H5dbg.c H5system.c H5timer.c H5trace.c \ H5Osdspace.c H5Oshared.c H5Ostab.c \ H5Oshmesg.c H5Otest.c H5Ounknown.c \ H5P.c H5Pacpl.c H5Pdapl.c H5Pdcpl.c \ - H5Pdeprec.c H5Pdxpl.c H5Pfapl.c H5Pfcpl.c H5Pfmpl.c \ + H5Pdeprec.c H5Pdxpl.c H5Pencdec.c \ + H5Pfapl.c H5Pfcpl.c H5Pfmpl.c \ H5Pgcpl.c H5Pint.c \ H5Plapl.c H5Plcpl.c H5Pocpl.c H5Pocpypl.c H5Pstrcpl.c H5Ptest.c \ H5R.c H5Rdeprec.c \ @@ -938,6 +940,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pdcpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pdeprec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pdxpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pencdec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pfapl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pfcpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Pfmpl.Plo@am__quote@ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a6ff10b..5551fa3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_TEST) #----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + +#----------------------------------------------------------------------------- # Define Sources #----------------------------------------------------------------------------- SET (TEST_LIB_SRCS @@ -73,6 +78,47 @@ FOREACH (ref_file ${HDF5_REFERENCE_FILES}) ENDFOREACH (ref_file ${HDF5_REFERENCE_FILES}) # -------------------------------------------------------------------- +# Copy test files from test/testfiles/plist_files dir to test dir +# -------------------------------------------------------------------- +SET (HDF5_REFERENCE_PLIST_FILES + acpl_be + acpl_le + dapl_be + dapl_le + dcpl_be + dcpl_le + dxpl_be + dxpl_le + fapl_be + fapl_le + fcpl_be + fcpl_le + gcpl_be + gcpl_le + lapl_be + lapl_le + lcpl_be + lcpl_le + ocpl_be + ocpl_le + ocpypl_be + ocpypl_le + strcpl_be + strcpl_le +) + +FOREACH (plistfile ${HDF5_REFERENCE_PLIST_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/${plistfile}") + #MESSAGE (STATUS " Copying ${plistfile} to ${dset}") + ADD_CUSTOM_COMMAND ( + TARGET ${HDF5_TEST_LIB_TARGET} + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile} ${dest} + ) +ENDFOREACH (plistfile ${HDF5_REFERENCE_PLIST_FILES}) + +# -------------------------------------------------------------------- #-- Copy all the HDF5 files from the test directory into the source directory # -------------------------------------------------------------------- SET (HDF5_REFERENCE_TEST_FILES @@ -309,6 +355,8 @@ SET (H5_TESTS testmeta #links_env file_image + enc_dec_plist + enc_dec_plist_with_endianess ) FOREACH (test ${H5_TESTS}) @@ -633,6 +681,7 @@ IF (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS) gen_specmetaread gen_sizes_lheap gen_file_image + gen_plist ) FOREACH (gen ${H5_GENERATORS}) diff --git a/test/Makefile.am b/test/Makefile.am index 0197e99..64088b8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -39,8 +39,8 @@ SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) links_env$(EXEEXT) TEST_PROG= testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ - big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe dectris_tst \ + big mtime fillval mount flush1 flush2 app_ref enum dectris_tst \ + set_extent ttsafe enc_dec_plist enc_dec_plist_with_endianess\ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -63,7 +63,7 @@ check_PROGRAMS=$(TEST_PROG) error_test err_compat tcheck_version testmeta links_ BUILD_ALL_PROGS=gen_bad_ohdr gen_bogus gen_cross gen_deflate gen_filters gen_new_array \ gen_new_fill gen_new_group gen_new_mtime gen_new_super gen_noencoder \ gen_nullspace gen_udlinks space_overflow gen_filespace gen_specmetaread \ - gen_sizes_lheap gen_file_image + gen_sizes_lheap gen_file_image gen_plist if BUILD_ALL_CONDITIONAL noinst_PROGRAMS=$(BUILD_ALL_PROGS) diff --git a/test/Makefile.in b/test/Makefile.in index 30bfc59..09b4f93 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -107,8 +107,9 @@ am__EXEEXT_1 = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \ external$(EXEEXT) efc$(EXEEXT) objcopy$(EXEEXT) links$(EXEEXT) \ unlink$(EXEEXT) big$(EXEEXT) mtime$(EXEEXT) fillval$(EXEEXT) \ mount$(EXEEXT) flush1$(EXEEXT) flush2$(EXEEXT) \ - app_ref$(EXEEXT) enum$(EXEEXT) set_extent$(EXEEXT) \ - ttsafe$(EXEEXT) dectris_tst$(EXEEXT) getname$(EXEEXT) \ + app_ref$(EXEEXT) enum$(EXEEXT) dectris_tst$(EXEEXT) \ + set_extent$(EXEEXT) ttsafe$(EXEEXT) enc_dec_plist$(EXEEXT) \ + enc_dec_plist_with_endianess$(EXEEXT) getname$(EXEEXT) \ vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ dtransform$(EXEEXT) reserved$(EXEEXT) cross_read$(EXEEXT) \ freespace$(EXEEXT) mf$(EXEEXT) farray$(EXEEXT) earray$(EXEEXT) \ @@ -121,7 +122,7 @@ am__EXEEXT_2 = gen_bad_ohdr$(EXEEXT) gen_bogus$(EXEEXT) \ gen_nullspace$(EXEEXT) gen_udlinks$(EXEEXT) \ space_overflow$(EXEEXT) gen_filespace$(EXEEXT) \ gen_specmetaread$(EXEEXT) gen_sizes_lheap$(EXEEXT) \ - gen_file_image$(EXEEXT) + gen_file_image$(EXEEXT) gen_plist$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) accum_SOURCES = accum.c accum_OBJECTS = accum.$(OBJEXT) @@ -195,6 +196,15 @@ efc_SOURCES = efc.c efc_OBJECTS = efc.$(OBJEXT) efc_LDADD = $(LDADD) efc_DEPENDENCIES = libh5test.la $(LIBHDF5) +enc_dec_plist_SOURCES = enc_dec_plist.c +enc_dec_plist_OBJECTS = enc_dec_plist.$(OBJEXT) +enc_dec_plist_LDADD = $(LDADD) +enc_dec_plist_DEPENDENCIES = libh5test.la $(LIBHDF5) +enc_dec_plist_with_endianess_SOURCES = enc_dec_plist_with_endianess.c +enc_dec_plist_with_endianess_OBJECTS = \ + enc_dec_plist_with_endianess.$(OBJEXT) +enc_dec_plist_with_endianess_LDADD = $(LDADD) +enc_dec_plist_with_endianess_DEPENDENCIES = libh5test.la $(LIBHDF5) enum_SOURCES = enum.c enum_OBJECTS = enum.$(OBJEXT) enum_LDADD = $(LDADD) @@ -303,6 +313,10 @@ gen_nullspace_SOURCES = gen_nullspace.c gen_nullspace_OBJECTS = gen_nullspace.$(OBJEXT) gen_nullspace_LDADD = $(LDADD) gen_nullspace_DEPENDENCIES = libh5test.la $(LIBHDF5) +gen_plist_SOURCES = gen_plist.c +gen_plist_OBJECTS = gen_plist.$(OBJEXT) +gen_plist_LDADD = $(LDADD) +gen_plist_DEPENDENCIES = libh5test.la $(LIBHDF5) gen_sizes_lheap_SOURCES = gen_sizes_lheap.c gen_sizes_lheap_OBJECTS = gen_sizes_lheap.$(OBJEXT) gen_sizes_lheap_LDADD = $(LDADD) @@ -458,13 +472,14 @@ am__v_CCLD_1 = SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ btree2.c cache.c cache_api.c cache_tagging.c cmpd_dset.c \ cross_read.c dangle.c dectris_tst.c dsets.c dt_arith.c \ - dtransform.c dtypes.c earray.c efc.c enum.c err_compat.c \ + dtransform.c dtypes.c earray.c efc.c enc_dec_plist.c \ + enc_dec_plist_with_endianess.c enum.c err_compat.c \ error_test.c extend.c external.c farray.c fheap.c file_image.c \ fillval.c filter_fail.c flush1.c flush2.c freespace.c \ gen_bad_ohdr.c gen_bogus.c gen_cross.c gen_deflate.c \ gen_file_image.c gen_filespace.c gen_filters.c gen_new_array.c \ gen_new_fill.c gen_new_group.c gen_new_mtime.c gen_new_super.c \ - gen_noencoder.c gen_nullspace.c gen_sizes_lheap.c \ + gen_noencoder.c gen_nullspace.c gen_plist.c gen_sizes_lheap.c \ gen_specmetaread.c gen_udlinks.c getname.c gheap.c hyperslab.c \ istore.c lheap.c links.c links_env.c mf.c mount.c mtime.c \ ntypes.c objcopy.c ohdr.c pool.c reserved.c set_extent.c \ @@ -473,13 +488,14 @@ SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ cmpd_dset.c cross_read.c dangle.c dectris_tst.c dsets.c \ - dt_arith.c dtransform.c dtypes.c earray.c efc.c enum.c \ + dt_arith.c dtransform.c dtypes.c earray.c efc.c \ + enc_dec_plist.c enc_dec_plist_with_endianess.c enum.c \ err_compat.c error_test.c extend.c external.c farray.c fheap.c \ file_image.c fillval.c filter_fail.c flush1.c flush2.c \ freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ gen_deflate.c gen_file_image.c gen_filespace.c gen_filters.c \ gen_new_array.c gen_new_fill.c gen_new_group.c gen_new_mtime.c \ - gen_new_super.c gen_noencoder.c gen_nullspace.c \ + gen_new_super.c gen_noencoder.c gen_nullspace.c gen_plist.c \ gen_sizes_lheap.c gen_specmetaread.c gen_udlinks.c getname.c \ gheap.c hyperslab.c istore.c lheap.c links.c links_env.c mf.c \ mount.c mtime.c ntypes.c objcopy.c ohdr.c pool.c reserved.c \ @@ -825,8 +841,8 @@ SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) links_env$(EXEEXT) TEST_PROG = testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ - big mtime fillval mount flush1 flush2 app_ref enum \ - set_extent ttsafe dectris_tst \ + big mtime fillval mount flush1 flush2 app_ref enum dectris_tst \ + set_extent ttsafe enc_dec_plist enc_dec_plist_with_endianess\ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -841,7 +857,7 @@ TEST_PROG = testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ BUILD_ALL_PROGS = gen_bad_ohdr gen_bogus gen_cross gen_deflate gen_filters gen_new_array \ gen_new_fill gen_new_group gen_new_mtime gen_new_super gen_noencoder \ gen_nullspace gen_udlinks space_overflow gen_filespace gen_specmetaread \ - gen_sizes_lheap gen_file_image + gen_sizes_lheap gen_file_image gen_plist # The libh5test library provides common support code for the tests. @@ -1017,6 +1033,12 @@ earray$(EXEEXT): $(earray_OBJECTS) $(earray_DEPENDENCIES) $(EXTRA_earray_DEPENDE efc$(EXEEXT): $(efc_OBJECTS) $(efc_DEPENDENCIES) $(EXTRA_efc_DEPENDENCIES) @rm -f efc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(efc_OBJECTS) $(efc_LDADD) $(LIBS) +enc_dec_plist$(EXEEXT): $(enc_dec_plist_OBJECTS) $(enc_dec_plist_DEPENDENCIES) $(EXTRA_enc_dec_plist_DEPENDENCIES) + @rm -f enc_dec_plist$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(enc_dec_plist_OBJECTS) $(enc_dec_plist_LDADD) $(LIBS) +enc_dec_plist_with_endianess$(EXEEXT): $(enc_dec_plist_with_endianess_OBJECTS) $(enc_dec_plist_with_endianess_DEPENDENCIES) $(EXTRA_enc_dec_plist_with_endianess_DEPENDENCIES) + @rm -f enc_dec_plist_with_endianess$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(enc_dec_plist_with_endianess_OBJECTS) $(enc_dec_plist_with_endianess_LDADD) $(LIBS) enum$(EXEEXT): $(enum_OBJECTS) $(enum_DEPENDENCIES) $(EXTRA_enum_DEPENDENCIES) @rm -f enum$(EXEEXT) $(AM_V_CCLD)$(LINK) $(enum_OBJECTS) $(enum_LDADD) $(LIBS) @@ -1098,6 +1120,9 @@ gen_noencoder$(EXEEXT): $(gen_noencoder_OBJECTS) $(gen_noencoder_DEPENDENCIES) $ gen_nullspace$(EXEEXT): $(gen_nullspace_OBJECTS) $(gen_nullspace_DEPENDENCIES) $(EXTRA_gen_nullspace_DEPENDENCIES) @rm -f gen_nullspace$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gen_nullspace_OBJECTS) $(gen_nullspace_LDADD) $(LIBS) +gen_plist$(EXEEXT): $(gen_plist_OBJECTS) $(gen_plist_DEPENDENCIES) $(EXTRA_gen_plist_DEPENDENCIES) + @rm -f gen_plist$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gen_plist_OBJECTS) $(gen_plist_LDADD) $(LIBS) gen_sizes_lheap$(EXEEXT): $(gen_sizes_lheap_OBJECTS) $(gen_sizes_lheap_DEPENDENCIES) $(EXTRA_gen_sizes_lheap_DEPENDENCIES) @rm -f gen_sizes_lheap$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gen_sizes_lheap_OBJECTS) $(gen_sizes_lheap_LDADD) $(LIBS) @@ -1205,6 +1230,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtypes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earray.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/efc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enc_dec_plist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enc_dec_plist_with_endianess.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enum.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/err_compat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error_test.Po@am__quote@ @@ -1232,6 +1259,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_new_super.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_noencoder.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_nullspace.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_plist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_sizes_lheap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_specmetaread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_udlinks.Po@am__quote@ diff --git a/test/enc_dec_plist.c b/test/enc_dec_plist.c new file mode 100644 index 0000000..26bfb84 --- /dev/null +++ b/test/enc_dec_plist.c @@ -0,0 +1,480 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Serial tests for encoding/decoding plists + */ + +#include "h5test.h" +#include "H5Pprivate.h" + +static int +test_encode_decode(hid_t orig_pl) +{ + hid_t pl = (-1); /* Decoded property list */ + void *temp_buf = NULL; /* Pointer to encoding buffer */ + size_t temp_size = 0; /* Size of encoding buffer */ + + /* first call to encode returns only the size of the buffer needed */ + if(H5Pencode(orig_pl, NULL, &temp_size) < 0) + STACK_ERROR + + if(NULL == (temp_buf = (void *)HDmalloc(temp_size))) + TEST_ERROR + + if(H5Pencode(orig_pl, temp_buf, &temp_size) < 0) + STACK_ERROR + + if((pl = H5Pdecode(temp_buf)) < 0) + STACK_ERROR + + if(!H5Pequal(orig_pl, pl)) + PUTS_ERROR("encoding-decoding cycle failed\n") + + if((H5Pclose(pl)) < 0) + STACK_ERROR + + HDfree(temp_buf); + + /* Success */ + return(0); + +error: + if(pl > 0) + H5Pclose(pl); + if(temp_buf) + HDfree(temp_buf); + + return(-1); +} /* end test_encode_decode() */ + +int +main(void) +{ + hid_t dcpl; /* dataset create prop. list */ + hid_t dapl; /* dataset access prop. list */ + hid_t dxpl; /* dataset xfer prop. list */ + hid_t gcpl; /* group create prop. list */ + hid_t ocpypl; /* object copy prop. list */ + hid_t ocpl; /* object create prop. list */ + hid_t lcpl; /* link create prop. list */ + hid_t lapl; /* link access prop. list */ + hid_t fapl; /* file access prop. list */ + hid_t fcpl; /* file create prop. list */ + hid_t strcpl; /* string create prop. list */ + hid_t acpl; /* attribute create prop. list */ + + hsize_t chunk_size[2] = {16384, 4}; /* chunk size */ + double fill = 2.7f; /* Fill value */ + hsize_t max_size[1]; /* data space maximum size */ + size_t nslots = 521 * 2; + size_t nbytes = 1048576 * 10; + double w0 = 0.5f; + unsigned max_compact; + unsigned min_dense; + const char* c_to_f = "x+32"; + H5AC_cache_config_t my_cache_config = { + H5AC__CURR_CACHE_CONFIG_VERSION, + TRUE, + FALSE, + FALSE, + "temp", + TRUE, + FALSE, + ( 2 * 2048 * 1024), + 0.3f, + (64 * 1024 * 1024), + (4 * 1024 * 1024), + 60000, + H5C_incr__threshold, + 0.8f, + 3.0f, + TRUE, + (8 * 1024 * 1024), + H5C_flash_incr__add_space, + 2.0f, + 0.25f, + H5C_decr__age_out_with_threshold, + 0.997f, + 0.8f, + TRUE, + (3 * 1024 * 1024), + 3, + FALSE, + 0.2f, + (256 * 2048), + H5AC__DEFAULT_METADATA_WRITE_STRATEGY}; + + if(VERBOSE_MED) + printf("Encode/Decode DCPLs\n"); + + /******* ENCODE/DECODE DCPLS *****/ + TESTING("DCPL Encoding/Decoding"); + if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_chunk(dcpl, 2, &chunk_size)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_LATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_fill_value(dcpl, H5T_NATIVE_DOUBLE, &fill)) < 0) + FAIL_STACK_ERROR + + max_size[0] = 100; + if((H5Pset_external(dcpl, "ext1.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + FAIL_STACK_ERROR + if((H5Pset_external(dcpl, "ext2.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + FAIL_STACK_ERROR + if((H5Pset_external(dcpl, "ext3.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + FAIL_STACK_ERROR + if((H5Pset_external(dcpl, "ext4.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(dcpl) < 0) + FAIL_PUTS_ERROR("DCPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(dcpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE DAPLS *****/ + TESTING("DAPL Encoding/Decoding"); + if((dapl = H5Pcreate(H5P_DATASET_ACCESS)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_chunk_cache(dapl, nslots, nbytes, w0)) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(dapl) < 0) + FAIL_PUTS_ERROR("DAPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(dapl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE OCPLS *****/ + TESTING("OCPL Encoding/Decoding"); + if((ocpl = H5Pcreate(H5P_OBJECT_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_attr_creation_order(ocpl, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED))) < 0) + FAIL_STACK_ERROR + + if((H5Pset_attr_phase_change (ocpl, 110, 105)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_filter (ocpl, H5Z_FILTER_FLETCHER32, 0, (size_t)0, NULL)) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(ocpl) < 0) + FAIL_PUTS_ERROR("OCPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(ocpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE DXPLS *****/ + TESTING("DXPL Encoding/Decoding"); + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + FAIL_STACK_ERROR + if((H5Pset_btree_ratios(dxpl, 0.2f, 0.6f, 0.2f)) < 0) + FAIL_STACK_ERROR + if((H5Pset_hyper_vector_size(dxpl, 5)) < 0) + FAIL_STACK_ERROR +#ifdef H5_HAVE_PARALLEL + if((H5Pset_dxpl_mpio(dxpl, H5FD_MPIO_COLLECTIVE)) < 0) + FAIL_STACK_ERROR + if((H5Pset_dxpl_mpio_collective_opt(dxpl, H5FD_MPIO_INDIVIDUAL_IO)) < 0) + FAIL_STACK_ERROR + if((H5Pset_dxpl_mpio_chunk_opt(dxpl, H5FD_MPIO_CHUNK_MULTI_IO)) < 0) + FAIL_STACK_ERROR + if((H5Pset_dxpl_mpio_chunk_opt_ratio(dxpl, 30)) < 0) + FAIL_STACK_ERROR + if((H5Pset_dxpl_mpio_chunk_opt_num(dxpl, 40)) < 0) + FAIL_STACK_ERROR +#endif/* H5_HAVE_PARALLEL */ + if((H5Pset_edc_check(dxpl, H5Z_DISABLE_EDC)) < 0) + FAIL_STACK_ERROR + if((H5Pset_data_transform(dxpl, c_to_f)) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(dxpl) < 0) + FAIL_PUTS_ERROR("DXPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(dxpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE GCPLS *****/ + TESTING("GCPL Encoding/Decoding"); + if((gcpl = H5Pcreate(H5P_GROUP_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_local_heap_size_hint(gcpl, 256)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_link_phase_change(gcpl, 2, 2)) < 0) + FAIL_STACK_ERROR + + /* Query the group creation properties */ + if((H5Pget_link_phase_change(gcpl, &max_compact, &min_dense)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_est_link_info(gcpl, 3, 9)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_link_creation_order(gcpl, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED))) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(gcpl) < 0) + FAIL_PUTS_ERROR("GCPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(gcpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE LCPLS *****/ + TESTING("LCPL Encoding/Decoding"); + if((lcpl = H5Pcreate(H5P_LINK_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_create_intermediate_group(lcpl, TRUE)) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(lcpl) < 0) + FAIL_PUTS_ERROR("LCPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(lcpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE LAPLS *****/ + TESTING("LAPL Encoding/Decoding"); + if((lapl = H5Pcreate(H5P_LINK_ACCESS)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_nlinks(lapl, (size_t)134)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_elink_acc_flags(lapl, H5F_ACC_RDONLY)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_elink_prefix(lapl, "/tmpasodiasod")) < 0) + FAIL_STACK_ERROR + + /* Create FAPL for the elink FAPL */ + if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0) + FAIL_STACK_ERROR + if((H5Pset_alignment(fapl, 2, 1024)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_elink_fapl(lapl, fapl)) < 0) + FAIL_STACK_ERROR + + /* Close the elink's FAPL */ + if((H5Pclose(fapl)) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(lapl) < 0) + FAIL_PUTS_ERROR("LAPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(lapl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE OCPYPLS *****/ + TESTING("OCPYPL Encoding/Decoding"); + if((ocpypl = H5Pcreate(H5P_OBJECT_COPY)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_copy_object(ocpypl, H5O_COPY_EXPAND_EXT_LINK_FLAG)) < 0) + FAIL_STACK_ERROR + + if((H5Padd_merge_committed_dtype_path(ocpypl, "foo")) < 0) + FAIL_STACK_ERROR + if((H5Padd_merge_committed_dtype_path(ocpypl, "bar")) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(ocpypl) < 0) + FAIL_PUTS_ERROR("OCPYPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(ocpypl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE FAPLS *****/ + TESTING("FAPL Encoding/Decoding"); + if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_family_offset(fapl, 1024)) < 0) + FAIL_STACK_ERROR + if((H5Pset_meta_block_size(fapl, 2098452)) < 0) + FAIL_STACK_ERROR + if((H5Pset_sieve_buf_size(fapl, 1048576)) < 0) + FAIL_STACK_ERROR + if((H5Pset_alignment(fapl, 2, 1024)) < 0) + FAIL_STACK_ERROR + if((H5Pset_cache(fapl, 1024, 128, 10485760, 0.3f)) < 0) + FAIL_STACK_ERROR + if((H5Pset_elink_file_cache_size(fapl, 10485760)) < 0) + FAIL_STACK_ERROR + if((H5Pset_gc_references(fapl, 1)) < 0) + FAIL_STACK_ERROR + if((H5Pset_small_data_block_size(fapl, 2048)) < 0) + FAIL_STACK_ERROR + if((H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST)) < 0) + FAIL_STACK_ERROR + if((H5Pset_fclose_degree(fapl, H5F_CLOSE_WEAK)) < 0) + FAIL_STACK_ERROR + if((H5Pset_multi_type(fapl, H5FD_MEM_GHEAP)) < 0) + FAIL_STACK_ERROR + if((H5Pset_mdc_config(fapl, &my_cache_config)) < 0) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(fapl) < 0) + FAIL_PUTS_ERROR("FAPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(fapl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE FCPLS *****/ + TESTING("FCPL Encoding/Decoding"); + + if((fcpl = H5Pcreate(H5P_FILE_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_userblock(fcpl, 1024) < 0)) + FAIL_STACK_ERROR + + if((H5Pset_istore_k(fcpl, 3) < 0)) + FAIL_STACK_ERROR + + if((H5Pset_sym_k(fcpl, 4, 5) < 0)) + FAIL_STACK_ERROR + + if((H5Pset_shared_mesg_nindexes(fcpl, 8) < 0)) + FAIL_STACK_ERROR + + if((H5Pset_shared_mesg_index(fcpl, 1, H5O_SHMESG_SDSPACE_FLAG, 32) < 0)) + FAIL_STACK_ERROR + + if((H5Pset_shared_mesg_phase_change(fcpl, 60, 20) < 0)) + FAIL_STACK_ERROR + + if((H5Pset_sizes(fcpl, 8, 4) < 0)) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(fcpl) < 0) + FAIL_PUTS_ERROR("FCPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(fcpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE STRCPLS *****/ + TESTING("STRCPL Encoding/Decoding"); + + if((strcpl = H5Pcreate(H5P_STRING_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_char_encoding(strcpl, H5T_CSET_UTF8) < 0)) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(strcpl) < 0) + FAIL_PUTS_ERROR("STRCPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(strcpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + /******* ENCODE/DECODE ACPLS *****/ + TESTING("ACPL Encoding/Decoding"); + + if((acpl = H5Pcreate(H5P_ATTRIBUTE_CREATE)) < 0) + FAIL_STACK_ERROR + + if((H5Pset_char_encoding(acpl, H5T_CSET_UTF8) < 0)) + FAIL_STACK_ERROR + + /* Test encoding & decoding property list */ + if(test_encode_decode(acpl) < 0) + FAIL_PUTS_ERROR("ACPL encoding/decoding failed\n") + + /* release resource */ + if((H5Pclose(acpl)) < 0) + FAIL_STACK_ERROR + + PASSED(); + + + return 0; + +error: + printf("***** Plist Encode/Decode tests FAILED! *****\n"); + return 1; +} + diff --git a/test/enc_dec_plist_with_endianess.c b/test/enc_dec_plist_with_endianess.c new file mode 100644 index 0000000..4469604 --- /dev/null +++ b/test/enc_dec_plist_with_endianess.c @@ -0,0 +1,160 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Serial tests for encoding/decoding plists + */ + +#include "h5test.h" +#include "H5srcdir.h" + +static int test_plists(const char *filename1, const char *filename2); + +int +main(void) +{ + if(VERBOSE_MED) + printf("Encode/Decode property list endianess\n"); + + /******* ENCODE/DECODE DCPLS *****/ + TESTING("DCPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/dcpl_le", "testfiles/plist_files/dcpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE DAPLS *****/ + TESTING("DAPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/dapl_le", "testfiles/plist_files/dapl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE DXPLS *****/ + TESTING("DXPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/dxpl_le", "testfiles/plist_files/dxpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE GCPLS *****/ + TESTING("GCPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/gcpl_le", "testfiles/plist_files/gcpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE LCPLS *****/ + TESTING("LCPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/lcpl_le", "testfiles/plist_files/lcpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE LAPLS *****/ + TESTING("LAPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/lapl_le", "testfiles/plist_files/lapl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE OCPLS *****/ + TESTING("OCPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/ocpl_le", "testfiles/plist_files/ocpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE OCPYPLS *****/ + TESTING("OCPYPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/ocpypl_le", "testfiles/plist_files/ocpypl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE FCPLS *****/ + TESTING("FCPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/fcpl_le", "testfiles/plist_files/fcpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE FAPLS *****/ + TESTING("FAPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/fapl_le", "testfiles/plist_files/fapl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE STRCPLS *****/ + TESTING("STRCPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/strcpl_le", "testfiles/plist_files/strcpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + /******* ENCODE/DECODE ACPLS *****/ + TESTING("ACPL Encoding/Decoding"); + if(test_plists("testfiles/plist_files/acpl_le", "testfiles/plist_files/acpl_be") < 0) + FAIL_STACK_ERROR + PASSED(); + + return 0; + +error: + return 1; +} + +static int +test_plists(const char *filename1, const char *filename2) +{ + int fd_le, fd_be; + size_t size_le = 0, size_be = 0; + void *buf_le = NULL, *buf_be = NULL; + hid_t plist_le, plist_be; /* dataset create prop. list */ + const char *testfile; + + testfile = H5_get_srcdir_filename(filename1); + if((fd_le = HDopen(testfile, O_RDONLY, 0666)) < 0) + TEST_ERROR + size_le = HDlseek(fd_le, (HDoff_t)0, SEEK_END); + HDlseek(fd_le, (HDoff_t)0, SEEK_SET); + buf_le = (void *)HDmalloc(size_le); + if(HDread(fd_le, buf_le, size_le) < 0) + TEST_ERROR + HDclose(fd_le); + + testfile = H5_get_srcdir_filename(filename2); + if((fd_be = HDopen(testfile, O_RDONLY, 0666)) < 0) + TEST_ERROR + size_be = HDlseek(fd_be, (HDoff_t)0, SEEK_END); + HDlseek(fd_be, (HDoff_t)0, SEEK_SET); + buf_be = (void *)HDmalloc(size_be); + if(HDread(fd_be, buf_be, size_be) < 0) + TEST_ERROR + HDclose(fd_be); + + if((plist_le = H5Pdecode(buf_le)) < 0) + FAIL_STACK_ERROR + if((plist_be = H5Pdecode(buf_be)) < 0) + FAIL_STACK_ERROR + + if(!H5Pequal(plist_le, plist_be)) + FAIL_PUTS_ERROR("PLIST encoding/decoding comparison failed\n") + + if((H5Pclose(plist_le)) < 0) + FAIL_STACK_ERROR + if((H5Pclose(plist_be)) < 0) + FAIL_STACK_ERROR + + HDfree(buf_le); + HDfree(buf_be); + + return 1; + +error: + printf("***** Plist Encode/Decode tests FAILED! *****\n"); + return -1; +} + diff --git a/test/enum.c b/test/enum.c index 3684102..29b702d 100644 --- a/test/enum.c +++ b/test/enum.c @@ -109,9 +109,9 @@ test_named(hid_t file) /*------------------------------------------------------------------------- - * Function: test_noconv + * Function: test_conv * - * Purpose: Tests creation of datasets when no conversion is present. + * Purpose: Tests writing and read data * * Return: Success: 0 * @@ -119,24 +119,32 @@ test_named(hid_t file) * * Programmer: Robb Matzke * Monday, January 4, 1999 + * + * Raymond Lu + * 12 October 2012 + * I added tests for enum-integer and enum-float conversions *------------------------------------------------------------------------- */ static int -test_noconv(hid_t file) +test_conv(hid_t file) { hid_t cwg=-1, type=-1, space=-1, dset=-1; c_e1 val; + /* Some values are out of range for testing. The library should accept them */ static c_e1 data1[]={E1_RED, E1_GREEN, E1_BLUE, E1_GREEN, E1_WHITE, E1_WHITE, E1_BLACK, E1_GREEN, E1_BLUE, E1_RED, E1_RED, E1_BLUE, E1_GREEN, E1_BLACK, E1_WHITE, - E1_RED, E1_WHITE, E1_GREEN, E1_GREEN, E1_BLUE}; + E1_RED, E1_WHITE, (c_e1)0, (c_e1)-1, (c_e1)-2}; c_e1 data2[NELMTS(data1)]; + short data_short[NELMTS(data1)]; + int data_int[NELMTS(data1)]; + double data_double[NELMTS(data1)]; hsize_t ds_size[1]={NELMTS(data1)}; size_t i; - TESTING("no-conversion datasets"); + TESTING("enumeration conversions"); - if((cwg = H5Gcreate2(file, "test_noconv", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR + if((cwg = H5Gcreate2(file, "test_conv", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR if((type = H5Tcreate(H5T_ENUM, sizeof(c_e1))) < 0) FAIL_STACK_ERROR if(H5Tenum_insert(type, "RED", CPTR(val, E1_RED )) < 0) FAIL_STACK_ERROR @@ -146,20 +154,96 @@ test_noconv(hid_t file) if(H5Tenum_insert(type, "BLACK", CPTR(val, E1_BLACK)) < 0) FAIL_STACK_ERROR if((space = H5Screate_simple(1, ds_size, NULL)) < 0) FAIL_STACK_ERROR - if((dset = H5Dcreate2(cwg, "color_table", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR + + /*************************************** + * Dataset of enumeration type + ***************************************/ + /* Create a dataset of enum type and write enum data to it */ + if((dset = H5Dcreate2(cwg, "color_table1", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR if(H5Dwrite(dset, type, space, space, H5P_DEFAULT, data1) < 0) FAIL_STACK_ERROR + + /* Test reading back the data with no conversion */ if(H5Dread(dset, type, space, space, H5P_DEFAULT, data2) < 0) FAIL_STACK_ERROR for(i = 0; i < (size_t)ds_size[0]; i++) if(data1[i] != data2[i]) { H5_FAILED(); - printf(" data1[%lu]=%d, data2[%lu]=%d (should be same)\n", + printf(" 1. data1[%lu]=%d, data2[%lu]=%d (should be same)\n", (unsigned long)i, (int)(data1[i]), (unsigned long)i, (int)(data2[i])); goto error; } /* end if */ + /* Test converting the data to integer. Read enum data back as integer */ + if(H5Dread(dset, H5T_NATIVE_SHORT, space, space, H5P_DEFAULT, data_short) < 0) FAIL_STACK_ERROR + + for(i = 0; i < (size_t)ds_size[0]; i++) + if((short)data1[i] != data_short[i]) { + H5_FAILED(); + printf(" 2. data1[%lu]=%d, data_short[%lu]=%d (should be same)\n", + (unsigned long)i, (int)(data1[i]), + (unsigned long)i, (int)(data_short[i])); + goto error; + } /* end if */ + + /* Test converting the data to floating number. Read enum data back as floating number */ + if(H5Dread(dset, H5T_NATIVE_DOUBLE, space, space, H5P_DEFAULT, data_double) < 0) FAIL_STACK_ERROR + + for(i = 0; i < (size_t)ds_size[0]; i++) + if((int)data1[i] != (int)data_double[i]) { + H5_FAILED(); + printf(" 3. data1[%lu]=%d, data_double[%lu]=%d (should be same)\n", + (unsigned long)i, (int)(data1[i]), + (unsigned long)i, (int)(data_double[i])); + goto error; + } /* end if */ + + if(H5Dclose(dset) < 0) FAIL_STACK_ERROR + + /*************************************** + * Dataset of integer type + ***************************************/ + /* Create a dataset of native integer and write enum data to it */ + if((dset = H5Dcreate2(cwg, "color_table2", H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR + + if(H5Dwrite(dset, type, space, space, H5P_DEFAULT, data1) < 0) FAIL_STACK_ERROR + + /* Test reading back the data with no conversion */ + if(H5Dread(dset, H5T_NATIVE_INT, space, space, H5P_DEFAULT, data_int) < 0) FAIL_STACK_ERROR + + for(i = 0; i < (size_t)ds_size[0]; i++) + if((int)data1[i] != data_int[i]) { + H5_FAILED(); + printf(" 4. data1[%lu]=%d, data_int[%lu]=%d (should be same)\n", + (unsigned long)i, (int)(data1[i]), + (unsigned long)i, (int)(data_int[i])); + goto error; + } /* end if */ + if(H5Dclose(dset) < 0) FAIL_STACK_ERROR + + /*************************************** + * Dataset of double type + ***************************************/ + /* Create a dataset of native double and write enum data to it */ + if((dset = H5Dcreate2(cwg, "color_table3", H5T_NATIVE_DOUBLE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR + + if(H5Dwrite(dset, type, space, space, H5P_DEFAULT, data1) < 0) FAIL_STACK_ERROR + + /* Test reading back the data with no conversion */ + if(H5Dread(dset, H5T_NATIVE_DOUBLE, space, space, H5P_DEFAULT, data_double) < 0) FAIL_STACK_ERROR + + for(i = 0; i < (size_t)ds_size[0]; i++) + if((int)data1[i] != (int)data_double[i]) { + H5_FAILED(); + printf(" 5. data1[%lu]=%d, data_double[%lu]=%d (should be same)\n", + (unsigned long)i, (int)(data1[i]), + (unsigned long)i, (int)(data_double[i])); + goto error; + } /* end if */ + + if(H5Dclose(dset) < 0) FAIL_STACK_ERROR + if(H5Sclose(space) < 0) FAIL_STACK_ERROR if(H5Tclose(type) < 0) FAIL_STACK_ERROR if(H5Gclose(cwg) < 0) FAIL_STACK_ERROR @@ -572,7 +656,7 @@ main(void) /* Tests */ nerrors += test_named(file); - nerrors += test_noconv(file); + nerrors += test_conv(file); nerrors += test_tr1(file); nerrors += test_tr2(file); nerrors += test_value_dsnt_exist(); diff --git a/test/file_image.c b/test/file_image.c index 9d7a48c..c734db8 100644 --- a/test/file_image.c +++ b/test/file_image.c @@ -163,6 +163,7 @@ error: return retval; } /* end test_properties() */ + /****************************************************************************** * Function: malloc_cb * @@ -185,6 +186,7 @@ malloc_cb(size_t size, H5FD_file_image_op_t op, void *udata) return HDmalloc(size); } + /****************************************************************************** * Function: memcpy_cb * @@ -207,6 +209,7 @@ memcpy_cb(void *dest, const void *src, size_t size, H5FD_file_image_op_t op, voi return HDmemcpy(dest, src, size); } + /****************************************************************************** * Function: realloc_cb * @@ -229,6 +232,7 @@ realloc_cb(void *ptr, size_t size, H5FD_file_image_op_t op, void *udata) return HDrealloc(ptr,size); } + /****************************************************************************** * Function: free_cb * @@ -250,6 +254,7 @@ free_cb(void *ptr, H5FD_file_image_op_t op, void *udata) return(SUCCEED); } + /****************************************************************************** * Function: udata_copy_cb * @@ -273,6 +278,7 @@ udata_copy_cb(void *udata) return udata; } + /****************************************************************************** * Function: udata_free_cb * @@ -296,6 +302,7 @@ udata_free_cb(void *udata) return(SUCCEED); } + /****************************************************************************** * Function: reset_udata * @@ -314,6 +321,7 @@ reset_udata(udata_t *u) u->malloc_src = u->memcpy_src = u->realloc_src = u->free_src = H5FD_FILE_IMAGE_OP_NO_OP; } + /****************************************************************************** * Function: test_callbacks * @@ -502,6 +510,7 @@ error: return 1; } /* test_callbacks() */ + /****************************************************************************** * Function: test_core * @@ -647,6 +656,7 @@ error: return 1; } /* end test_core() */ + /****************************************************************************** * Function: test_get_file_image * @@ -899,6 +909,7 @@ error: return 1; } /* end test_get_file_image() */ + /****************************************************************************** * Function: test_get_file_image_error_rejection * @@ -1282,7 +1293,7 @@ main(void) /* test H5Fget_file_image() with sec2 driver */ fapl = H5Pcreate(H5P_FILE_ACCESS); - if(0 > H5Pset_fapl_sec2(fapl)) + if(H5Pset_fapl_sec2(fapl) < 0) errors++; else errors += test_get_file_image("H5Fget_file_image() with sec2 driver", @@ -1290,7 +1301,7 @@ main(void) /* test H5Fget_file_image() with stdio driver */ fapl = H5Pcreate(H5P_FILE_ACCESS); - if(0 > H5Pset_fapl_stdio(fapl)) + if(H5Pset_fapl_stdio(fapl) < 0) errors++; else errors += test_get_file_image("H5Fget_file_image() with stdio driver", @@ -1298,7 +1309,7 @@ main(void) /* test H5Fget_file_image() with core driver */ fapl = H5Pcreate(H5P_FILE_ACCESS); - if(0 > H5Pset_fapl_core(fapl, (size_t)(64 *1024), TRUE)) + if(H5Pset_fapl_core(fapl, (size_t)(64 *1024), TRUE) < 0) errors++; else errors += test_get_file_image("H5Fget_file_image() with core driver", diff --git a/test/gen_plist.c b/test/gen_plist.c new file mode 100644 index 0000000..b4da261 --- /dev/null +++ b/test/gen_plist.c @@ -0,0 +1,435 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * generate plist file + */ + +#include +#include +#include +#include +#include +#include "H5private.h" +#include "hdf5.h" + +static int encode_plist(hid_t plist_id, int little_endian, const char *filename_le, const char *filename_be); + +int +main(void) +{ + hid_t dcpl1; /* dataset create prop. list */ + hid_t dapl1; /* dataset access prop. list */ + hid_t dxpl1; /* dataset xfer prop. list */ + hid_t gcpl1; /* group create prop. list */ + hid_t ocpypl1; /* object copy prop. list */ + hid_t ocpl1; /* object create prop. list */ + hid_t lcpl1; /* link create prop. list */ + hid_t lapl1; /* link access prop. list */ + hid_t fapl1; /* file access prop. list */ + hid_t fcpl1; /* file create prop. list */ + hid_t strcpl1; /* string create prop. list */ + hid_t acpl1; /* attribute create prop. list */ + + herr_t ret = 0; + hsize_t chunk_size = 16384; /* chunk size */ + int fill = 2; /* Fill value */ + hsize_t max_size[1]; /* data space maximum size */ + size_t nslots = 521 * 2; + size_t nbytes = 1048576 * 10; + double w0 = 0.5f; + unsigned max_compact; + unsigned min_dense; + const char* c_to_f = "x+32"; + int little_endian; + H5AC_cache_config_t my_cache_config = { + H5AC__CURR_CACHE_CONFIG_VERSION, + 1 /*TRUE*/, + 0 /*FALSE*/, + 0 /*FALSE*/, + "temp", + 1 /*TRUE*/, + 0 /*FALSE*/, + ( 2 * 2048 * 1024), + 0.3f, + (64 * 1024 * 1024), + (4 * 1024 * 1024), + 60000, + H5C_incr__threshold, + 0.8f, + 3.0f, + 1 /*TRUE*/, + (8 * 1024 * 1024), + H5C_flash_incr__add_space, + 2.0f, + 0.25f, + H5C_decr__age_out_with_threshold, + 0.997f, + 0.8f, + 1 /*TRUE*/, + (3 * 1024 * 1024), + 3, + 0 /*FALSE*/, + 0.2f, + (256 * 2048), + H5AC_METADATA_WRITE_STRATEGY__PROCESS_0_ONLY}; + + /* check endianess */ + { + short int word = 0x0001; + char *byte = (char *) &word; + + if(byte[0] == 1) + /* little endian */ + little_endian = 1; + else + /* big endian */ + little_endian = 0; + } + + /* Explicitly initialize the library, since we are including the private header file */ + H5open(); + + /******* ENCODE/DECODE DCPLS *****/ + if((dcpl1 = H5Pcreate(H5P_DATASET_CREATE)) < 0) + assert(dcpl1 > 0); + + if((ret = H5Pset_chunk(dcpl1, 1, &chunk_size)) < 0) + assert(ret > 0); + + if((ret = H5Pset_alloc_time(dcpl1, H5D_ALLOC_TIME_LATE)) < 0) + assert(ret > 0); + + ret = H5Tconvert(H5T_NATIVE_INT, H5T_STD_I32BE, (size_t)1, &fill, NULL, H5P_DEFAULT); + assert(ret >= 0); + if((ret = H5Pset_fill_value(dcpl1, H5T_STD_I32BE, &fill)) < 0) + assert(ret > 0); + + max_size[0] = 100; + if((ret = H5Pset_external(dcpl1, "ext1.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + assert(ret > 0); + if((ret = H5Pset_external(dcpl1, "ext2.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + assert(ret > 0); + if((ret = H5Pset_external(dcpl1, "ext3.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + assert(ret > 0); + if((ret = H5Pset_external(dcpl1, "ext4.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4))) < 0) + assert(ret > 0); + + if((ret = encode_plist(dcpl1, little_endian, "testfiles/plist_files/dcpl_le", "testfiles/plist_files/dcpl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(dcpl1)) < 0) + assert(ret > 0); + + + /******* ENCODE/DECODE DAPLS *****/ + if((dapl1 = H5Pcreate(H5P_DATASET_ACCESS)) < 0) + assert(dapl1 > 0); + + if((ret = H5Pset_chunk_cache(dapl1, nslots, nbytes, w0)) < 0) + assert(ret > 0); + + if((ret = encode_plist(dapl1, little_endian, "testfiles/plist_files/dapl_le", "testfiles/plist_files/dapl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(dapl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE DXPLS *****/ + if((dxpl1 = H5Pcreate(H5P_DATASET_XFER)) < 0) + assert(dxpl1 > 0); + if((ret = H5Pset_btree_ratios(dxpl1, 0.2f, 0.6f, 0.2f)) < 0) + assert(ret > 0); + if((ret = H5Pset_hyper_vector_size(dxpl1, 5)) < 0) + assert(ret > 0); +#ifdef H5_HAVE_PARALLEL + if((ret = H5Pset_dxpl_mpio(dxpl1, H5FD_MPIO_COLLECTIVE)) < 0) + assert(ret > 0); + if((ret = H5Pset_dxpl_mpio_collective_opt(dxpl1, H5FD_MPIO_INDIVIDUAL_IO)) < 0) + assert(ret > 0); + if((ret = H5Pset_dxpl_mpio_chunk_opt(dxpl1, H5FD_MPIO_CHUNK_MULTI_IO)) < 0) + assert(ret > 0); + if((ret = H5Pset_dxpl_mpio_chunk_opt_ratio(dxpl1, 30)) < 0) + assert(ret > 0); + if((ret = H5Pset_dxpl_mpio_chunk_opt_num(dxpl1, 40)) < 0) + assert(ret > 0); +#endif/* H5_HAVE_PARALLEL */ + if((ret = H5Pset_edc_check(dxpl1, H5Z_DISABLE_EDC)) < 0) + assert(ret > 0); + if((ret = H5Pset_data_transform(dxpl1, c_to_f)) < 0) + assert(ret > 0); + + if((ret = encode_plist(dxpl1, little_endian, "testfiles/plist_files/dxpl_le", "testfiles/plist_files/dxpl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(dxpl1)) < 0) + assert(ret > 0); + + + /******* ENCODE/DECODE GCPLS *****/ + if((gcpl1 = H5Pcreate(H5P_GROUP_CREATE)) < 0) + assert(gcpl1 > 0); + + if((ret = H5Pset_local_heap_size_hint(gcpl1, 256)) < 0) + assert(ret > 0); + + if((ret = H5Pset_link_phase_change(gcpl1, 2, 2)) < 0) + assert(ret > 0); + + /* Query the group creation properties */ + if((ret = H5Pget_link_phase_change(gcpl1, &max_compact, &min_dense)) < 0) + assert(ret > 0); + + if((ret = H5Pset_est_link_info(gcpl1, 3, 9)) < 0) + assert(ret > 0); + + if((ret = H5Pset_link_creation_order(gcpl1, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED))) < 0) + assert(ret > 0); + + if((ret = encode_plist(gcpl1, little_endian, "testfiles/plist_files/gcpl_le", "testfiles/plist_files/gcpl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(gcpl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE LCPLS *****/ + if((lcpl1 = H5Pcreate(H5P_LINK_CREATE)) < 0) + assert(lcpl1 > 0); + + if((ret = H5Pset_create_intermediate_group(lcpl1, 1 /*TRUE*/)) < 0) + assert(ret > 0); + + if((ret = encode_plist(lcpl1, little_endian, "testfiles/plist_files/lcpl_le", "testfiles/plist_files/lcpl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(lcpl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE OCPYLS *****/ + if((ocpypl1 = H5Pcreate(H5P_OBJECT_COPY)) < 0) + assert(ocpypl1 > 0); + + ret = H5Pset_copy_object(ocpypl1, H5O_COPY_EXPAND_EXT_LINK_FLAG); + assert(ret >= 0); + + ret = H5Padd_merge_committed_dtype_path(ocpypl1, "foo"); + assert(ret >= 0); + + ret = H5Padd_merge_committed_dtype_path(ocpypl1, "bar"); + assert(ret >= 0); + + if((ret = encode_plist(ocpypl1, little_endian, "testfiles/plist_files/ocpypl_le", "testfiles/plist_files/ocpypl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(ocpypl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE OCPLS *****/ + if((ocpl1 = H5Pcreate(H5P_OBJECT_CREATE)) < 0) + assert(ocpl1 > 0); + + if((ret = H5Pset_attr_creation_order(ocpl1, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED))) < 0) + assert(ret > 0); + + if((ret = H5Pset_attr_phase_change (ocpl1, 110, 105)) < 0) + assert(ret > 0); + + if((ret = H5Pset_filter (ocpl1, H5Z_FILTER_FLETCHER32, 0, (size_t)0, NULL)) < 0) + assert(ret > 0); + + if((ret = encode_plist(ocpl1, little_endian, "testfiles/plist_files/ocpl_le", "testfiles/plist_files/ocpl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(ocpl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE LAPLS *****/ + if((lapl1 = H5Pcreate(H5P_LINK_ACCESS)) < 0) + assert(lapl1 > 0); + + if((ret = H5Pset_nlinks(lapl1, (size_t)134)) < 0) + assert(ret > 0); + + if((ret = H5Pset_elink_acc_flags(lapl1, H5F_ACC_RDONLY)) < 0) + assert(ret > 0); + + if((ret = H5Pset_elink_prefix(lapl1, "/tmpasodiasod")) < 0) + assert(ret > 0); + + /* Create FAPL for the elink FAPL */ + if((fapl1 = ret = H5Pcreate(ret = H5P_FILE_ACCESS)) < 0) + assert(ret > 0); + if((ret = H5Pset_alignment(fapl1, 2, 1024)) < 0) + assert(ret > 0); + + if((ret = H5Pset_elink_fapl(lapl1, fapl1)) < 0) + assert(ret > 0); + + /* Close the elink's FAPL */ + if((ret = H5Pclose(fapl1)) < 0) + assert(ret > 0); + + if((ret = encode_plist(lapl1, little_endian, "testfiles/plist_files/lapl_le", "testfiles/plist_files/lapl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(lapl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE FAPLS *****/ + if((fapl1 = H5Pcreate(H5P_FILE_ACCESS)) < 0) + assert(fapl1 > 0); + + if((ret = H5Pset_family_offset(fapl1, 1024)) < 0) + assert(ret > 0); + if((ret = H5Pset_meta_block_size(fapl1, 2098452)) < 0) + assert(ret > 0); + if((ret = H5Pset_sieve_buf_size(fapl1, 1048576)) < 0) + assert(ret > 0); + if((ret = H5Pset_alignment(fapl1, 2, 1024)) < 0) + assert(ret > 0); + if((ret = H5Pset_cache(fapl1, 1024, 128, 10485760, 0.3f)) < 0) + assert(ret > 0); + if((ret = H5Pset_elink_file_cache_size(fapl1, 10485760)) < 0) + assert(ret > 0); + if((ret = H5Pset_gc_references(fapl1, 1)) < 0) + assert(ret > 0); + if((ret = H5Pset_small_data_block_size(fapl1, 2048)) < 0) + assert(ret > 0); + if((ret = H5Pset_libver_bounds(fapl1, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST)) < 0) + assert(ret > 0); + if((ret = H5Pset_fclose_degree(fapl1, H5F_CLOSE_WEAK)) < 0) + assert(ret > 0); + if((ret = H5Pset_multi_type(fapl1, H5FD_MEM_GHEAP)) < 0) + assert(ret > 0); + if((ret = H5Pset_mdc_config(fapl1, &my_cache_config)) < 0) + assert(ret > 0); + + if((ret = encode_plist(fapl1, little_endian, "testfiles/plist_files/fapl_le", "testfiles/plist_files/fapl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(fapl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE FCPLS *****/ + if((fcpl1 = H5Pcreate(H5P_FILE_CREATE)) < 0) + assert(fcpl1 > 0); + + if((ret = H5Pset_userblock(fcpl1, 1024) < 0)) + assert(ret > 0); + + if((ret = H5Pset_istore_k(fcpl1, 3) < 0)) + assert(ret > 0); + + if((ret = H5Pset_sym_k(fcpl1, 4, 5) < 0)) + assert(ret > 0); + + if((ret = H5Pset_shared_mesg_nindexes(fcpl1, 8) < 0)) + assert(ret > 0); + + if((ret = H5Pset_shared_mesg_index(fcpl1, 1, H5O_SHMESG_SDSPACE_FLAG, 32) < 0)) + assert(ret > 0); + + if((ret = H5Pset_shared_mesg_phase_change(fcpl1, 60, 20) < 0)) + assert(ret > 0); + + if((ret = H5Pset_sizes(fcpl1, 8, 4) < 0)) + assert(ret > 0); + + if((ret = encode_plist(fcpl1, little_endian, "testfiles/plist_files/fcpl_le", "testfiles/plist_files/fcpl_be")) < 0) + assert(ret > 0); + + /* release resource */ + if((ret = H5Pclose(fcpl1)) < 0) + assert(ret > 0); + + /******* ENCODE/DECODE STRCPLS *****/ + strcpl1 = H5Pcreate(H5P_STRING_CREATE); + assert(strcpl1 > 0); + + ret = H5Pset_char_encoding(strcpl1, H5T_CSET_UTF8); + assert(ret >= 0); + + ret = encode_plist(strcpl1, little_endian, "testfiles/plist_files/strcpl_le", "testfiles/plist_files/strcpl_be"); + assert(ret > 0); + + /* release resource */ + ret = H5Pclose(strcpl1); + assert(ret >= 0); + + /******* ENCODE/DECODE ACPLS *****/ + acpl1 = H5Pcreate(H5P_ATTRIBUTE_CREATE); + assert(acpl1 > 0); + + ret = H5Pset_char_encoding(acpl1, H5T_CSET_UTF8); + assert(ret >= 0); + + ret = encode_plist(acpl1, little_endian, "testfiles/plist_files/acpl_le", "testfiles/plist_files/acpl_be"); + assert(ret > 0); + + /* release resource */ + ret = H5Pclose(acpl1); + assert(ret >= 0); + + return 0; +} + +static int +encode_plist(hid_t plist_id, int little_endian, const char *filename_le, const char *filename_be) +{ + int fd = 0; /* file descriptor */ + herr_t ret = 0; + void *temp_buf = NULL; + size_t temp_size = 0; + ssize_t write_size; + + /* first call to encode returns only the size of the buffer needed */ + if((ret = H5Pencode(plist_id, NULL, &temp_size)) < 0) + assert(ret > 0); + + temp_buf = (void *)HDmalloc(temp_size); + assert(temp_buf); + + if((ret = H5Pencode(plist_id, temp_buf, &temp_size)) < 0) + assert(ret > 0); + + if(little_endian) + fd = HDopen(filename_le, O_RDWR | O_CREAT | O_TRUNC, 0666); + else + fd = HDopen(filename_be, O_RDWR | O_CREAT | O_TRUNC, 0666); + assert(fd > 0); + + write_size = HDwrite(fd, temp_buf, temp_size); + assert(write_size == (ssize_t)temp_size); + + HDclose(fd); + + HDfree(temp_buf); + + return 1; +} + diff --git a/test/h5test.c b/test/h5test.c index ea30fad..91497e3 100644 --- a/test/h5test.c +++ b/test/h5test.c @@ -408,7 +408,7 @@ h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size) if (!fullname[0]) /* We didn't append the prefix yet */ - HDstrncpy(fullname, prefix, MIN(strlen(prefix), size)); + HDstrncpy(fullname, prefix, MIN(HDstrlen(prefix), size)); if (HDstrlen(fullname) + HDstrlen(base_name) + 1 < size) { /* @@ -751,7 +751,7 @@ h5_set_info_object(void) /* copy key/value pair into temporary buffer */ len = strcspn(valp, ";"); next = &valp[len]; - key_val = calloc(1, len + 1); + key_val = (char *)calloc(1, len + 1); /* increment the next pointer past the terminating semicolon */ if (*next == ';') @@ -766,7 +766,7 @@ h5_set_info_object(void) if (!*namep) continue; /* was all white space, so move to next k/v pair */ /* eat up any ending white spaces */ - endp = &namep[strlen(namep) - 1]; + endp = &namep[HDstrlen(namep) - 1]; while (endp && (*endp == ' ' || *endp == '\t')) *endp-- = '\0'; @@ -1061,7 +1061,7 @@ getenv_all(MPI_Comm comm, int root, const char* name) if(mpi_rank == root) { env = HDgetenv(name); if(env) { - len = HDstrlen(env); + len = (int)HDstrlen(env); MPI_Bcast(&len, 1, MPI_INT, root, comm); MPI_Bcast(env, len, MPI_CHAR, root, comm); } @@ -1075,9 +1075,9 @@ getenv_all(MPI_Comm comm, int root, const char* name) MPI_Bcast(&len, 1, MPI_INT, root, comm); if(len >= 0) { if(env == NULL) - env = (char*) HDmalloc(len+1); - else if(strlen(env) < len) - env = (char*) HDrealloc(env, len+1); + env = (char*) HDmalloc((size_t)len+1); + else if(HDstrlen(env) < (size_t)len) + env = (char*) HDrealloc(env, (size_t)len+1); MPI_Bcast(env, len, MPI_CHAR, root, comm); env[len] = '\0'; @@ -1129,7 +1129,11 @@ h5_make_local_copy(const char *origfilename, const char *local_copy_name) #ifdef H5_VMS HDstrcat(filename, origfilename); #else - char * srcdir = HDgetenv("srcdir"); /* The source directory */ + const char * srcdir = HDgetenv("srcdir"); /* The source directory */ + + /* Check for using the srcdir from configure time */ + if(NULL == srcdir) + srcdir = config_srcdir; if(srcdir && ((HDstrlen(srcdir) + HDstrlen(origfilename) + 6) < FILENAME_BUF_SIZE)) { diff --git a/test/h5test.h b/test/h5test.h index dd38546..7813b51 100644 --- a/test/h5test.h +++ b/test/h5test.h @@ -104,6 +104,7 @@ H5TEST_DLLVAR MPI_Info h5_io_info_g; /* MPI INFO object for IO */ #define H5_FAILED() {puts("*FAILED*");fflush(stdout);} #define H5_WARNING() {puts("*WARNING*");fflush(stdout);} #define SKIPPED() {puts(" -SKIP-");fflush(stdout);} +#define PUTS_ERROR(s) {puts(s); AT(); goto error;} #define TEST_ERROR {H5_FAILED(); AT(); goto error;} #define STACK_ERROR {H5Eprint2(H5E_DEFAULT, stdout); goto error;} #define FAIL_STACK_ERROR {H5_FAILED(); AT(); H5Eprint2(H5E_DEFAULT, stdout); \ @@ -175,7 +176,7 @@ H5TEST_DLL void ParseTestVerbosity(char *argv); H5TEST_DLL int GetTestNumErrs(void); H5TEST_DLL void IncTestNumErrs(void); H5TEST_DLL const void *GetTestParameters(void); -H5TEST_DLL int TestErrPrintf(const char *format, ...); +H5TEST_DLL int TestErrPrintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))); H5TEST_DLL void SetTest(const char *testname, int action); H5TEST_DLL void TestAlarmOn(void); H5TEST_DLL void TestAlarmOff(void); diff --git a/test/links.c b/test/links.c index 966802a..d77b371 100644 --- a/test/links.c +++ b/test/links.c @@ -1884,7 +1884,7 @@ external_link_root(hid_t fapl, hbool_t new_format) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) TEST_ERROR + H5F_sfile_assert_num(0); /* Open first file again with read-only access and check on objects created */ if((fid = H5Fopen(filename1, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR @@ -1908,7 +1908,7 @@ external_link_root(hid_t fapl, hbool_t new_format) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) TEST_ERROR + H5F_sfile_assert_num(0); /* Verify that new objects can't be created through a read-only external * link. @@ -1925,7 +1925,7 @@ external_link_root(hid_t fapl, hbool_t new_format) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -6754,8 +6754,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that only 1 file is open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Open and close the target of the external link */ if((oid = H5Oopen(fid1, "link_to_2", H5P_DEFAULT)) < 0) @@ -6764,16 +6763,14 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that both files are now open */ - if(H5F_sfile_assert_num(2) < 0) - TEST_ERROR + H5F_sfile_assert_num(2); /* Close file 1 */ if(H5Fclose(fid1) < 0) TEST_ERROR /* Verify that both files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -6795,8 +6792,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that only 1 file is open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Open and close the target of the external link */ if((oid = H5Oopen(fid1, "link_to_2", H5P_DEFAULT)) < 0) @@ -6805,24 +6801,21 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that both files are now open */ - if(H5F_sfile_assert_num(2) < 0) - TEST_ERROR + H5F_sfile_assert_num(2); /* Release file 1's EFC */ if(H5Fclear_elink_file_cache(fid1) < 0) TEST_ERROR /* Verify that only the parent file is now open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Close file 1 */ if(H5Fclose(fid1) < 0) TEST_ERROR /* Verify that both files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -6858,8 +6851,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that only 1 file is open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Open and close one branch of the tree */ if((oid = H5Oopen(fid1, "link_to_2/link_to_3", H5P_DEFAULT)) < 0) @@ -6868,8 +6860,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that files 2 and 3 are now open */ - if(H5F_sfile_assert_num(3) < 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Open and close the other branch of the tree */ if((oid = H5Oopen(fid1, "link_to_2/link_to_4", H5P_DEFAULT)) < 0) @@ -6878,16 +6869,14 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that all files are now open */ - if(H5F_sfile_assert_num(4) < 0) - TEST_ERROR + H5F_sfile_assert_num(4); /* Close file 1 */ if(H5Fclose(fid1) < 0) TEST_ERROR /* Verify that all files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -6923,8 +6912,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that only 1 file is open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Open and close one branch of the tree */ if((oid = H5Oopen(fid1, "link_to_2/link_to_3", H5P_DEFAULT)) < 0) @@ -6933,8 +6921,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that files 2 and 3 are now open */ - if(H5F_sfile_assert_num(3) < 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Open and close the other branch of the tree */ if((oid = H5Oopen(fid1, "link_to_2/link_to_4", H5P_DEFAULT)) < 0) @@ -6943,24 +6930,21 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that all files are now open */ - if(H5F_sfile_assert_num(4) < 0) - TEST_ERROR + H5F_sfile_assert_num(4); /* Release file 1's EFC */ if(H5Fclear_elink_file_cache(fid1) < 0) TEST_ERROR /* Verify that only file 1 is now open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Close file 1 */ if(H5Fclose(fid1) < 0) TEST_ERROR /* Verify that all files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); #ifndef H5_CANNOT_OPEN_TWICE /* @@ -6992,8 +6976,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that only 1 file is open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Open and close one complete cycle */ if((oid = H5Oopen(fid1, "link_to_2/link_to_3/link_to_1", H5P_DEFAULT)) < 0) @@ -7002,16 +6985,14 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that all files are now open */ - if(H5F_sfile_assert_num(3) < 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Close file 1 */ if(H5Fclose(fid1) < 0) TEST_ERROR /* Verify that all files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -7043,8 +7024,7 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that only 1 file is open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Open and close one complete cycle */ if((oid = H5Oopen(fid1, "link_to_2/link_to_3/link_to_1", H5P_DEFAULT)) < 0) @@ -7053,24 +7033,21 @@ external_file_cache(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that all files are now open */ - if(H5F_sfile_assert_num(3) < 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Release file 1's EFC */ if(H5Fclear_elink_file_cache(fid1) < 0) TEST_ERROR /* Verify that only file 1 is now open */ - if(H5F_sfile_assert_num(1) < 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Close file 1 */ if(H5Fclose(fid1) < 0) TEST_ERROR /* Verify that all files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); #endif /* H5_CANNOT_OPEN_TWICE */ /* Close fapl */ @@ -7165,8 +7142,7 @@ external_open_twice(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that both files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -7212,8 +7188,7 @@ external_open_twice(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that both files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -7263,8 +7238,7 @@ external_open_twice(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that both files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* @@ -7312,8 +7286,7 @@ external_open_twice(hid_t fapl, hbool_t new_format) TEST_ERROR /* Verify that both files are now closed */ - if(H5F_sfile_assert_num(0) < 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); diff --git a/test/mount.c b/test/mount.c index b7180fa..2502bbe 100644 --- a/test/mount.c +++ b/test/mount.c @@ -1181,7 +1181,7 @@ test_close(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) TEST_ERROR + H5F_sfile_assert_num(0); /* Build the virtual file again */ if((file1 = H5Fopen(filename1, H5F_ACC_RDWR, fapl)) < 0 || @@ -1198,7 +1198,7 @@ test_close(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) TEST_ERROR + H5F_sfile_assert_num(0); /* Shut down */ PASSED(); @@ -1810,8 +1810,7 @@ test_missing_unmount(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -1946,8 +1945,7 @@ test_hold_open_file(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -2103,8 +2101,7 @@ test_hold_open_group(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -2249,8 +2246,7 @@ test_fcdegree_same(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -2391,8 +2387,7 @@ test_fcdegree_semi(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -2530,8 +2525,7 @@ test_fcdegree_strong(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -2733,8 +2727,7 @@ test_acc_perm(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -2957,8 +2950,7 @@ test_mult_mount(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -3179,8 +3171,7 @@ test_nested_survive(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -3295,8 +3286,7 @@ test_close_parent(hid_t fapl) TEST_ERROR /* Both underlying shared files should be open still */ - if(H5F_sfile_assert_num(2) != 0) - TEST_ERROR + H5F_sfile_assert_num(2); /* Check the name of "M" is still defined */ *name = '\0'; @@ -3317,16 +3307,14 @@ test_close_parent(hid_t fapl) TEST_ERROR /* Just file #2's underlying shared file should be open still */ - if(H5F_sfile_assert_num(1) != 0) - TEST_ERROR + H5F_sfile_assert_num(1); /* Close group in file #2, letting file #2 close */ if(H5Gclose(gidM) < 0) TEST_ERROR /* All underlying shared file structs should be closed */ - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -3703,16 +3691,14 @@ test_cut_graph(hid_t fapl) TEST_ERROR /* Check that all seven underlying files are still opened */ - if(H5F_sfile_assert_num(7) != 0) - TEST_ERROR + H5F_sfile_assert_num(7); /* Close "M" in file #5, which should close files 2, 4 & 5 */ if(H5Gclose(gidM) < 0) TEST_ERROR /* Check that only four underlying files are still opened */ - if(H5F_sfile_assert_num(4) != 0) - TEST_ERROR + H5F_sfile_assert_num(4); /* Unmount file #3 from file #1, cutting the graph */ if(H5Funmount(gidQ, "/B") < 0) @@ -3720,8 +3706,7 @@ test_cut_graph(hid_t fapl) /* Check that only three underlying files are still opened */ /* (File #1 should close after being cut off from the graph) */ - if(H5F_sfile_assert_num(3) != 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Check the name of "Q" is defined in its file */ *name = '\0'; @@ -3749,8 +3734,7 @@ test_cut_graph(hid_t fapl) TEST_ERROR /* Verify that all underlying shared files have been closed now */ - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -3917,16 +3901,14 @@ test_symlink(hid_t fapl) TEST_ERROR /* Verify that all 3 underlying shared files are still open */ - if(H5F_sfile_assert_num(3) != 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Close object opened through soft link */ if(H5Gclose(gidL) < 0) TEST_ERROR /* Verify that all underlying shared files have been closed now */ - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -4036,8 +4018,7 @@ test_sharedacc(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -4129,16 +4110,14 @@ test_sharedclose(hid_t fapl) TEST_ERROR /* Check that file #3 is still open */ - if(H5F_sfile_assert_num(3) != 0) - TEST_ERROR + H5F_sfile_assert_num(3); /* Close group B/C in file #1b. This should close file #1b and #3. */ if(H5Gclose(gid3) < 0) TEST_ERROR /* Check that file #3 has been closed */ - if(H5F_sfile_assert_num(2) != 0) - TEST_ERROR + H5F_sfile_assert_num(2); /* Unmount file 2 and close the rest of the handles */ if(H5Funmount(fid1a, "A") < 0) @@ -4153,8 +4132,7 @@ test_sharedclose(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); /* Create file #1 & its group */ if((fid1a = H5Fcreate(filename1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) @@ -4197,8 +4175,7 @@ test_sharedclose(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) != 0) - TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; @@ -4324,7 +4301,7 @@ test_multisharedclose(hid_t fapl) /* Check that all file IDs have been closed */ if(H5I_nmembers(H5I_FILE) != 0) TEST_ERROR - if(H5F_sfile_assert_num(0) < 0) TEST_ERROR + H5F_sfile_assert_num(0); PASSED(); return 0; diff --git a/test/testfiles/plist_files/acpl_be b/test/testfiles/plist_files/acpl_be new file mode 100644 index 0000000..ba342d9 Binary files /dev/null and b/test/testfiles/plist_files/acpl_be differ diff --git a/test/testfiles/plist_files/acpl_le b/test/testfiles/plist_files/acpl_le new file mode 100644 index 0000000..ba342d9 Binary files /dev/null and b/test/testfiles/plist_files/acpl_le differ diff --git a/test/testfiles/plist_files/dapl_be b/test/testfiles/plist_files/dapl_be new file mode 100644 index 0000000..4df4e7f Binary files /dev/null and b/test/testfiles/plist_files/dapl_be differ diff --git a/test/testfiles/plist_files/dapl_le b/test/testfiles/plist_files/dapl_le new file mode 100644 index 0000000..4df4e7f Binary files /dev/null and b/test/testfiles/plist_files/dapl_le differ diff --git a/test/testfiles/plist_files/dcpl_be b/test/testfiles/plist_files/dcpl_be new file mode 100644 index 0000000..667c67f Binary files /dev/null and b/test/testfiles/plist_files/dcpl_be differ diff --git a/test/testfiles/plist_files/dcpl_le b/test/testfiles/plist_files/dcpl_le new file mode 100644 index 0000000..667c67f Binary files /dev/null and b/test/testfiles/plist_files/dcpl_le differ diff --git a/test/testfiles/plist_files/dxpl_be b/test/testfiles/plist_files/dxpl_be new file mode 100644 index 0000000..5ff2ea0 Binary files /dev/null and b/test/testfiles/plist_files/dxpl_be differ diff --git a/test/testfiles/plist_files/dxpl_le b/test/testfiles/plist_files/dxpl_le new file mode 100644 index 0000000..5ff2ea0 Binary files /dev/null and b/test/testfiles/plist_files/dxpl_le differ diff --git a/test/testfiles/plist_files/fapl_be b/test/testfiles/plist_files/fapl_be new file mode 100644 index 0000000..8fcefa2 Binary files /dev/null and b/test/testfiles/plist_files/fapl_be differ diff --git a/test/testfiles/plist_files/fapl_le b/test/testfiles/plist_files/fapl_le new file mode 100644 index 0000000..8fcefa2 Binary files /dev/null and b/test/testfiles/plist_files/fapl_le differ diff --git a/test/testfiles/plist_files/fcpl_be b/test/testfiles/plist_files/fcpl_be new file mode 100644 index 0000000..ffa5242 Binary files /dev/null and b/test/testfiles/plist_files/fcpl_be differ diff --git a/test/testfiles/plist_files/fcpl_le b/test/testfiles/plist_files/fcpl_le new file mode 100644 index 0000000..ffa5242 Binary files /dev/null and b/test/testfiles/plist_files/fcpl_le differ diff --git a/test/testfiles/plist_files/gcpl_be b/test/testfiles/plist_files/gcpl_be new file mode 100644 index 0000000..1eec32c Binary files /dev/null and b/test/testfiles/plist_files/gcpl_be differ diff --git a/test/testfiles/plist_files/gcpl_le b/test/testfiles/plist_files/gcpl_le new file mode 100644 index 0000000..1eec32c Binary files /dev/null and b/test/testfiles/plist_files/gcpl_le differ diff --git a/test/testfiles/plist_files/lapl_be b/test/testfiles/plist_files/lapl_be new file mode 100644 index 0000000..30f52a4 Binary files /dev/null and b/test/testfiles/plist_files/lapl_be differ diff --git a/test/testfiles/plist_files/lapl_le b/test/testfiles/plist_files/lapl_le new file mode 100644 index 0000000..30f52a4 Binary files /dev/null and b/test/testfiles/plist_files/lapl_le differ diff --git a/test/testfiles/plist_files/lcpl_be b/test/testfiles/plist_files/lcpl_be new file mode 100644 index 0000000..4584e5c Binary files /dev/null and b/test/testfiles/plist_files/lcpl_be differ diff --git a/test/testfiles/plist_files/lcpl_le b/test/testfiles/plist_files/lcpl_le new file mode 100644 index 0000000..4584e5c Binary files /dev/null and b/test/testfiles/plist_files/lcpl_le differ diff --git a/test/testfiles/plist_files/ocpl_be b/test/testfiles/plist_files/ocpl_be new file mode 100644 index 0000000..bc46636 Binary files /dev/null and b/test/testfiles/plist_files/ocpl_be differ diff --git a/test/testfiles/plist_files/ocpl_le b/test/testfiles/plist_files/ocpl_le new file mode 100644 index 0000000..bc46636 Binary files /dev/null and b/test/testfiles/plist_files/ocpl_le differ diff --git a/test/testfiles/plist_files/ocpypl_be b/test/testfiles/plist_files/ocpypl_be new file mode 100644 index 0000000..a0d826d Binary files /dev/null and b/test/testfiles/plist_files/ocpypl_be differ diff --git a/test/testfiles/plist_files/ocpypl_le b/test/testfiles/plist_files/ocpypl_le new file mode 100644 index 0000000..a0d826d Binary files /dev/null and b/test/testfiles/plist_files/ocpypl_le differ diff --git a/test/testfiles/plist_files/strcpl_be b/test/testfiles/plist_files/strcpl_be new file mode 100644 index 0000000..4190a63 Binary files /dev/null and b/test/testfiles/plist_files/strcpl_be differ diff --git a/test/testfiles/plist_files/strcpl_le b/test/testfiles/plist_files/strcpl_le new file mode 100644 index 0000000..4190a63 Binary files /dev/null and b/test/testfiles/plist_files/strcpl_le differ diff --git a/test/testframe.c b/test/testframe.c index 6fbace1..5835b73 100644 --- a/test/testframe.c +++ b/test/testframe.c @@ -124,12 +124,6 @@ AddTest(const char *TheName, void (*TheCall) (void), void (*Cleanup) (void), con */ void TestInit(const char *ProgName, void (*private_usage)(void), int (*private_parser)(int ac, char *av[])) { -#if !(defined MAC) - /* Un-buffer the stdout and stderr */ - setbuf(stderr, NULL); - setbuf(stdout, NULL); -#endif - /* * Turn off automatic error reporting since we do it ourselves. Besides, * half the functions this test calls are private, so automatic error diff --git a/test/testhdf5.h b/test/testhdf5.h index 149b4c8..c92c0f0 100644 --- a/test/testhdf5.h +++ b/test/testhdf5.h @@ -125,7 +125,17 @@ } while(0) /* Used to document process through a test */ -#define MESSAGE(V,A) {if (HDGetTestVerbosity()>(V)) print_func A;} +#if defined(H5_HAVE_PARALLEL) && defined(H5_PARALLEL_TEST) +#define MESSAGE(V,A) { \ + int mpi_rank; \ + \ + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); \ + if(mpi_rank == 0 && HDGetTestVerbosity() > (V)) \ + print_func A ; \ +} +#else /* H5_HAVE_PARALLEL */ +#define MESSAGE(V,A) {if (HDGetTestVerbosity() > (V)) print_func A;} +#endif /* H5_HAVE_PARALLEL */ /* Used to indicate an error that is complex to check for */ #define ERROR(where) do { \ diff --git a/test/tgenprop.c b/test/tgenprop.c index 3dbaa14..f304f11 100644 --- a/test/tgenprop.c +++ b/test/tgenprop.c @@ -743,11 +743,11 @@ test_genprop_basic_list_prop(void) /* Add temporary properties */ - /* Insert first temporary property into class (with no callbacks) */ + /* Insert first temporary property into list (with no callbacks) */ ret = H5Pinsert2(lid1, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, NULL, NULL, NULL, NULL, NULL, NULL); CHECK_I(ret, "H5Pinsert2"); - /* Insert second temporary property into class (with no callbacks) */ + /* Insert second temporary property into list (with no callbacks) */ ret = H5Pinsert2(lid1, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, NULL, NULL, NULL, NULL, NULL, NULL); CHECK_I(ret, "H5Pinsert2"); @@ -1215,10 +1215,10 @@ test_genprop_list_callback(void) /* The compare callback should have been called once on property 1 (to check * if the create callback modified the value) */ - VERIFY(prop1_cb_info.cmp_count, 1, "H5Pequal"); + VERIFY(prop1_cb_info.cmp_count, 1, "H5Pcreate"); /* The compare callback should not have been called on property 3, as there * is no create callback */ - VERIFY(prop3_cb_info.cmp_count, 0, "H5Pequal"); + VERIFY(prop3_cb_info.cmp_count, 0, "H5Pcreate"); /* Verify creation callback information for properties tracked */ VERIFY(prop1_cb_info.crt_count, 1, "H5Pcreate"); @@ -1233,7 +1233,7 @@ test_genprop_list_callback(void) VERIFY(prop1_value, *PROP1_DEF_VALUE, "H5Pget"); /* The compare callback should have been called once (to check if the get * callback modified the value) */ - VERIFY(prop1_cb_info.cmp_count, 2, "H5Pequal"); + VERIFY(prop1_cb_info.cmp_count, 2, "H5Pget"); ret = H5Pget(lid1, PROP2_NAME,&prop2_value); CHECK_I(ret, "H5Pget"); /* Verify the floating-poing value in this way to avoid compiler warning. */ @@ -1248,7 +1248,7 @@ test_genprop_list_callback(void) TestErrPrintf("Property #3 doesn't match!, line=%d\n",__LINE__); /* The compare callback should not have been called, as there is no get * callback for this property */ - VERIFY(prop3_cb_info.cmp_count, 0, "H5Pequal"); + VERIFY(prop3_cb_info.cmp_count, 0, "H5Pget"); ret = H5Pget(lid1, PROP4_NAME,&prop4_value); CHECK_I(ret, "H5Pget"); /* Verify the floating-poing value in this way to avoid compiler warning. */ @@ -1278,7 +1278,7 @@ test_genprop_list_callback(void) /* The compare callback should have been called once (to check if the new * value needed to be copied onto the property list) */ - VERIFY(prop1_cb_info.cmp_count, 3, "H5Pequal"); + VERIFY(prop1_cb_info.cmp_count, 3, "H5Pset"); /* Set value of property #3 to different value */ ret = H5Pset(lid1, PROP3_NAME,prop3_new_value); @@ -1286,7 +1286,7 @@ test_genprop_list_callback(void) /* The compare callback should have been called once (to check if the new * value needed to be copied onto the property list) */ - VERIFY(prop3_cb_info.cmp_count, 1, "H5Pequal"); + VERIFY(prop3_cb_info.cmp_count, 1, "H5Pset"); /* Check new value of tracked properties */ ret = H5Pget(lid1, PROP1_NAME,&prop1_value); @@ -1625,6 +1625,7 @@ test_genprop_equal(void) hid_t cid1; /* Generic Property class ID */ hid_t lid1; /* Generic Property list ID */ hid_t lid2; /* Generic Property list ID */ + int prop1_new_value = 20; /* Property #1 new value */ herr_t ret; /* Generic return value */ /* Output message about test being performed */ @@ -1651,13 +1652,114 @@ test_genprop_equal(void) CHECK_I(lid2, "H5Pcopy"); /* Check that the lists are equal */ - ret = H5Pequal(lid1,lid2); + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 1, "H5Pequal"); + + /* Set property in first list to another value */ + ret = H5Pset(lid1, PROP1_NAME, &prop1_new_value); + CHECK_I(ret, "H5Pset"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Set property in first list back to default */ + ret = H5Pset(lid1, PROP1_NAME, PROP1_DEF_VALUE); + CHECK_I(ret, "H5Pset"); + + /* Check that the lists are still equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 1, "H5Pequal"); + + /* Insert first temporary property into first list (with no callbacks) */ + ret = H5Pinsert2(lid1, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, NULL, NULL, NULL, NULL, NULL, NULL); + CHECK_I(ret, "H5Pinsert2"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Insert first temporary property into second list (with no callbacks) */ + ret = H5Pinsert2(lid2, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, NULL, NULL, NULL, NULL, NULL, NULL); + CHECK_I(ret, "H5Pinsert2"); + + /* Check that the lists are equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 1, "H5Pequal"); + + /* Insert second temporary property into second list (with no callbacks) */ + ret = H5Pinsert2(lid2, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, NULL, NULL, NULL, NULL, NULL, NULL); + CHECK_I(ret, "H5Pinsert2"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Insert second temporary property into first list (with no callbacks) */ + ret = H5Pinsert2(lid1, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, NULL, NULL, NULL, NULL, NULL, NULL); + CHECK_I(ret, "H5Pinsert2"); + + /* Check that the lists are equal */ + ret = H5Pequal(lid1, lid2); VERIFY(ret, 1, "H5Pequal"); + /* Remove first temporary property from first list */ + ret = H5Premove(lid1, PROP3_NAME); + CHECK_I(ret, "H5Premove"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Remove second temporary property from second list */ + ret = H5Premove(lid2, PROP4_NAME); + CHECK_I(ret, "H5Premove"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Remove first temporary property from second list */ + ret = H5Premove(lid2, PROP3_NAME); + CHECK_I(ret, "H5Premove"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Remove first permanent property from first list */ + ret = H5Premove(lid1, PROP1_NAME); + CHECK_I(ret, "H5Premove"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Remove second temporary property from first list */ + ret = H5Premove(lid1, PROP4_NAME); + CHECK_I(ret, "H5Premove"); + + /* Check that the lists are not equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 0, "H5Pequal"); + + /* Remove first permanent property from second list */ + ret = H5Premove(lid2, PROP1_NAME); + CHECK_I(ret, "H5Premove"); + + /* Check that the lists are equal */ + ret = H5Pequal(lid1, lid2); + VERIFY(ret, 1, "H5Pequal"); + + /* Close property lists */ + ret = H5Pclose(lid1); + CHECK_I(ret, "H5Pclose"); + ret = H5Pclose(lid2); + CHECK_I(ret, "H5Pclose"); + /* Close class */ ret = H5Pclose_class(cid1); CHECK_I(ret, "H5Pclose_class"); - } /* ent test_genprop_equal() */ /**************************************************************** diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt index f42af9f..88c47f5 100644 --- a/testpar/CMakeLists.txt +++ b/testpar/CMakeLists.txt @@ -1,6 +1,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_TEST_PAR) +#----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR}) INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib ) #----------------------------------------------------------------------------- @@ -18,6 +23,7 @@ SET (testphdf5_SRCS ${HDF5_TEST_PAR_SOURCE_DIR}/t_span_tree.c ${HDF5_TEST_PAR_SOURCE_DIR}/t_chunk_alloc.c ${HDF5_TEST_PAR_SOURCE_DIR}/t_filter_read.c + ${HDF5_TEST_PAR_SOURCE_DIR}/t_prop.c ) #-- Adding test for testhdf5 diff --git a/testpar/Makefile.am b/testpar/Makefile.am index b2fb97c..e934f08 100644 --- a/testpar/Makefile.am +++ b/testpar/Makefile.am @@ -32,7 +32,8 @@ check_PROGRAMS = $(TEST_PROG_PARA) check_SCRIPTS= $(TEST_SCRIPT) testphdf5_SOURCES=testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \ - t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c + t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c \ + t_prop.c # The tests all depend on the hdf5 library and the test library LDADD = $(LIBH5TEST) $(LIBHDF5) diff --git a/testpar/Makefile.in b/testpar/Makefile.in index 5b44e6e..394b3b1 100644 --- a/testpar/Makefile.in +++ b/testpar/Makefile.in @@ -117,7 +117,7 @@ am_testphdf5_OBJECTS = testphdf5.$(OBJEXT) t_dset.$(OBJEXT) \ t_file.$(OBJEXT) t_file_image.$(OBJEXT) t_mdset.$(OBJEXT) \ t_ph5basic.$(OBJEXT) t_coll_chunk.$(OBJEXT) \ t_span_tree.$(OBJEXT) t_chunk_alloc.$(OBJEXT) \ - t_filter_read.$(OBJEXT) + t_filter_read.$(OBJEXT) t_prop.$(OBJEXT) testphdf5_OBJECTS = $(am_testphdf5_OBJECTS) testphdf5_LDADD = $(LDADD) testphdf5_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) @@ -463,7 +463,8 @@ TEST_PROG_PARA = t_mpi t_posix_compliant testphdf5 t_cache t_pflush1 t_pflush2 t TEST_SCRIPT_PARA = testph5.sh check_SCRIPTS = $(TEST_SCRIPT) testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \ - t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c + t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c \ + t_prop.c # The tests all depend on the hdf5 library and the test library @@ -576,6 +577,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_pflush2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_ph5basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_posix_compliant.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_prop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_shapesame.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t_span_tree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testphdf5.Po@am__quote@ diff --git a/testpar/t_dset.c b/testpar/t_dset.c index d9139d3..22eefbc 100644 --- a/testpar/t_dset.c +++ b/testpar/t_dset.c @@ -3107,12 +3107,12 @@ actual_io_mode_tests(void) { static void test_no_collective_cause_mode(int selection_mode) { - int no_collective_cause_local_write = 0; - int no_collective_cause_local_read = 0; - int no_collective_cause_local_expected = 0; - int no_collective_cause_global_write = 0; - int no_collective_cause_global_read = 0; - int no_collective_cause_global_expected = 0; + uint32_t no_collective_cause_local_write = 0; + uint32_t no_collective_cause_local_read = 0; + uint32_t no_collective_cause_local_expected = 0; + uint32_t no_collective_cause_global_write = 0; + uint32_t no_collective_cause_global_read = 0; + uint32_t no_collective_cause_global_expected = 0; hsize_t coord[NELM][RANK]; const char * filename; @@ -3145,6 +3145,18 @@ test_no_collective_cause_mode(int selection_mode) #endif /* set to global value as default */ int l_facc_type = facc_type; + char message[256]; + + /* Set up MPI parameters */ + MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); + + MPI_Barrier(MPI_COMM_WORLD); + + HDassert(mpi_size >= 1); + + mpi_comm = MPI_COMM_WORLD; + mpi_info = MPI_INFO_NULL; /* Create the dataset creation plist */ dcpl = H5Pcreate(H5P_DATASET_CREATE); @@ -3193,15 +3205,6 @@ test_no_collective_cause_mode(int selection_mode) VRFY((sid >= 0), "H5Screate_simple succeeded"); } - /* Set up MPI parameters */ - MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); - MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); - - - HDassert(mpi_size >= 1); - - mpi_comm = MPI_COMM_WORLD; - mpi_info = MPI_INFO_NULL; filename = (const char *)GetTestParameters(); HDassert(filename != NULL); @@ -3399,17 +3402,12 @@ test_no_collective_cause_mode(int selection_mode) "reading and writing are the same for global cause of Broken Collective I/O"); /* Test values */ - if(no_collective_cause_local_expected != (unsigned) -1 && no_collective_cause_global_expected != (unsigned) -1) { - char message[100]; - sprintf(message, "Local cause of Broken Collective I/O has the correct value for %s.\n",test_name); - VRFY((no_collective_cause_local_write == no_collective_cause_local_expected), message); - sprintf(message, "Global cause of Broken Collective I/O has the correct value for %s.\n",test_name); - VRFY((no_collective_cause_global_write == no_collective_cause_global_expected), message); - } else { - HDfprintf(stderr, "%s %d -> (%d,%d)\n", test_name, mpi_rank, - test_no_collective_cause_mode, no_collective_cause_local_write); - } - + memset (message, 0, sizeof (message)); + sprintf(message, "Local cause of Broken Collective I/O has the correct value for %s.\n",test_name); + VRFY((no_collective_cause_local_write == no_collective_cause_local_expected), message); + memset (message, 0, sizeof (message)); + sprintf(message, "Global cause of Broken Collective I/O has the correct value for %s.\n",test_name); + VRFY((no_collective_cause_global_write == no_collective_cause_global_expected), message); /* Release some resources */ if (sid) @@ -3463,10 +3461,10 @@ test_no_collective_cause_mode(int selection_mode) static void test_no_collective_cause_mode_filter(int selection_mode) { - int no_collective_cause_local_read = 0; - int no_collective_cause_local_expected = 0; - int no_collective_cause_global_read = 0; - int no_collective_cause_global_expected = 0; + uint32_t no_collective_cause_local_read = 0; + uint32_t no_collective_cause_local_expected = 0; + uint32_t no_collective_cause_global_read = 0; + uint32_t no_collective_cause_global_expected = 0; const char * filename; const char * test_name; @@ -3495,7 +3493,18 @@ test_no_collective_cause_mode_filter(int selection_mode) #ifdef H5_HAVE_FILTER_FLETCHER32 H5Z_filter_t filter_info; #endif + char message[256]; + + /* Set up MPI parameters */ + MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); + + MPI_Barrier(MPI_COMM_WORLD); + + HDassert(mpi_size >= 1); + mpi_comm = MPI_COMM_WORLD; + mpi_info = MPI_INFO_NULL; /* Create the dataset creation plist */ dcpl = H5Pcreate(H5P_DATASET_CREATE); @@ -3523,15 +3532,6 @@ test_no_collective_cause_mode_filter(int selection_mode) sid = H5Screate_simple (RANK, dims, NULL); VRFY((sid >= 0), "H5Screate_simple succeeded"); - /* Set up MPI parameters */ - MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); - MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); - - - HDassert(mpi_size >= 1); - - mpi_comm = MPI_COMM_WORLD; - mpi_info = MPI_INFO_NULL; filename = (const char *)GetTestParameters(); HDassert(filename != NULL); @@ -3651,16 +3651,12 @@ test_no_collective_cause_mode_filter(int selection_mode) VRFY((ret >= 0), "retriving no collective cause succeeded" ); /* Test values */ - if(no_collective_cause_local_expected != (unsigned) -1 && no_collective_cause_global_expected != (unsigned) -1) { - char message[100]; - sprintf(message, "Local cause of Broken Collective I/O has the correct value for %s.\n",test_name); - VRFY((no_collective_cause_local_read == no_collective_cause_local_expected), message); - sprintf(message, "Global cause of Broken Collective I/O has the correct value for %s.\n",test_name); - VRFY((no_collective_cause_global_read == no_collective_cause_global_expected), message); - } else { - HDfprintf(stderr, "%s %d -> (%d,%d)\n", test_name, mpi_rank, - test_no_collective_cause_mode_filter, no_collective_cause_local_read); - } + memset (message, 0, sizeof (message)); + sprintf(message, "Local cause of Broken Collective I/O has the correct value for %s.\n",test_name); + VRFY((no_collective_cause_local_read == (uint32_t)no_collective_cause_local_expected), message); + memset (message, 0, sizeof (message)); + sprintf(message, "Global cause of Broken Collective I/O has the correct value for %s.\n",test_name); + VRFY((no_collective_cause_global_read == (uint32_t)no_collective_cause_global_expected), message); /* Release some resources */ if (sid) diff --git a/testpar/t_prop.c b/testpar/t_prop.c new file mode 100644 index 0000000..4601316 --- /dev/null +++ b/testpar/t_prop.c @@ -0,0 +1,452 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Parallel tests for encoding/decoding plists sent between processes + */ + +#include "testphdf5.h" +#include "H5Pprivate.h" + +static int +test_encode_decode(hid_t orig_pl, int mpi_rank, int recv_proc) +{ + MPI_Request req[2]; + MPI_Status status; + hid_t pl; /* Decoded property list */ + void *buf = NULL; + size_t buf_size = 0; + herr_t ret; /* Generic return value */ + + if(mpi_rank == 0) { + /* first call to encode returns only the size of the buffer needed */ + ret = H5Pencode(orig_pl, NULL, &buf_size); + VRFY((ret >= 0), "H5Pencode succeeded"); + + buf = (uint8_t *)HDmalloc(buf_size); + + ret = H5Pencode(orig_pl, buf, &buf_size); + VRFY((ret >= 0), "H5Pencode succeeded"); + + MPI_Isend(&buf_size, 1, MPI_INT, recv_proc, 123, MPI_COMM_WORLD, &req[0]); + MPI_Isend(buf, (int)buf_size, MPI_BYTE, recv_proc, 124, MPI_COMM_WORLD, &req[1]); + } /* end if */ + if(mpi_rank == recv_proc) { + MPI_Recv(&buf_size, 1, MPI_INT, 0, 123, MPI_COMM_WORLD, &status); + buf = (uint8_t *)HDmalloc(buf_size); + MPI_Recv(buf, (int)buf_size, MPI_BYTE, 0, 124, MPI_COMM_WORLD, &status); + + pl = H5Pdecode(buf); + VRFY((pl >= 0), "H5Pdecode succeeded"); + + VRFY(H5Pequal(orig_pl, pl), "Property List Equal Succeeded"); + + ret = H5Pclose(pl); + VRFY((ret >= 0), "H5Pclose succeeded"); + } /* end if */ + + if(0 == mpi_rank) + MPI_Waitall(2, req, MPI_STATUSES_IGNORE); + + if(NULL != buf) + HDfree(buf); + + MPI_Barrier(MPI_COMM_WORLD); + + return(0); +} + + + +void +test_plist_ed(void) +{ + hid_t dcpl; /* dataset create prop. list */ + hid_t dapl; /* dataset access prop. list */ + hid_t dxpl; /* dataset transfer prop. list */ + hid_t gcpl; /* group create prop. list */ + hid_t lcpl; /* link create prop. list */ + hid_t lapl; /* link access prop. list */ + hid_t ocpypl; /* object copy prop. list */ + hid_t ocpl; /* object create prop. list */ + hid_t fapl; /* file access prop. list */ + hid_t fcpl; /* file create prop. list */ + hid_t strcpl; /* string create prop. list */ + hid_t acpl; /* attribute create prop. list */ + + int mpi_size, mpi_rank, recv_proc; + + hsize_t chunk_size = 16384; /* chunk size */ + double fill = 2.7f; /* Fill value */ + size_t nslots = 521*2; + size_t nbytes = 1048576 * 10; + double w0 = 0.5f; + unsigned max_compact; + unsigned min_dense; + hsize_t max_size[1]; /*data space maximum size */ + const char* c_to_f = "x+32"; + H5AC_cache_config_t my_cache_config = { + H5AC__CURR_CACHE_CONFIG_VERSION, + TRUE, + FALSE, + FALSE, + "temp", + TRUE, + FALSE, + ( 2 * 2048 * 1024), + 0.3f, + (64 * 1024 * 1024), + (4 * 1024 * 1024), + 60000, + H5C_incr__threshold, + 0.8f, + 3.0f, + TRUE, + (8 * 1024 * 1024), + H5C_flash_incr__add_space, + 2.0f, + 0.25f, + H5C_decr__age_out_with_threshold, + 0.997f, + 0.8f, + TRUE, + (3 * 1024 * 1024), + 3, + FALSE, + 0.2f, + (256 * 2048), + H5AC__DEFAULT_METADATA_WRITE_STRATEGY}; + + herr_t ret; /* Generic return value */ + + + if(VERBOSE_MED) + printf("Encode/Decode DCPLs\n"); + + /* set up MPI parameters */ + MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); + + if(mpi_size == 1) + recv_proc = 0; + else + recv_proc = 1; + + dcpl = H5Pcreate(H5P_DATASET_CREATE); + VRFY((dcpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_chunk(dcpl, 1, &chunk_size); + VRFY((ret >= 0), "H5Pset_chunk succeeded"); + + ret = H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_LATE); + VRFY((ret >= 0), "H5Pset_alloc_time succeeded"); + + ret = H5Pset_fill_value(dcpl, H5T_NATIVE_DOUBLE, &fill); + VRFY((ret>=0), "set fill-value succeeded"); + + max_size[0] = 100; + ret = H5Pset_external(dcpl, "ext1.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4)); + VRFY((ret>=0), "set external succeeded"); + ret = H5Pset_external(dcpl, "ext2.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4)); + VRFY((ret>=0), "set external succeeded"); + ret = H5Pset_external(dcpl, "ext3.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4)); + VRFY((ret>=0), "set external succeeded"); + ret = H5Pset_external(dcpl, "ext4.data", (off_t)0, + (hsize_t)(max_size[0] * sizeof(int)/4)); + VRFY((ret>=0), "set external succeeded"); + + ret = test_encode_decode(dcpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(dcpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE DAPLS *****/ + dapl = H5Pcreate(H5P_DATASET_ACCESS); + VRFY((dapl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_chunk_cache(dapl, nslots, nbytes, w0); + VRFY((ret >= 0), "H5Pset_chunk_cache succeeded"); + + ret = test_encode_decode(dapl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(dapl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE OCPLS *****/ + ocpl = H5Pcreate(H5P_OBJECT_CREATE); + VRFY((ocpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_attr_creation_order(ocpl, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)); + VRFY((ret >= 0), "H5Pset_attr_creation_order succeeded"); + + ret = H5Pset_attr_phase_change(ocpl, 110, 105); + VRFY((ret >= 0), "H5Pset_attr_phase_change succeeded"); + + ret = H5Pset_filter(ocpl, H5Z_FILTER_FLETCHER32, 0, (size_t)0, NULL); + VRFY((ret >= 0), "H5Pset_filter succeeded"); + + ret = test_encode_decode(ocpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(ocpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE DXPLS *****/ + dxpl = H5Pcreate(H5P_DATASET_XFER); + VRFY((dxpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_btree_ratios(dxpl, 0.2f, 0.6f, 0.2f); + VRFY((ret >= 0), "H5Pset_btree_ratios succeeded"); + + ret = H5Pset_hyper_vector_size(dxpl, 5); + VRFY((ret >= 0), "H5Pset_hyper_vector_size succeeded"); + + ret = H5Pset_dxpl_mpio(dxpl, H5FD_MPIO_COLLECTIVE); + VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded"); + + ret = H5Pset_dxpl_mpio_collective_opt(dxpl, H5FD_MPIO_INDIVIDUAL_IO); + VRFY((ret >= 0), "H5Pset_dxpl_mpio_collective_opt succeeded"); + + ret = H5Pset_dxpl_mpio_chunk_opt(dxpl, H5FD_MPIO_CHUNK_MULTI_IO); + VRFY((ret >= 0), "H5Pset_dxpl_mpio_chunk_opt succeeded"); + + ret = H5Pset_dxpl_mpio_chunk_opt_ratio(dxpl, 30); + VRFY((ret >= 0), "H5Pset_dxpl_mpio_chunk_opt_ratio succeeded"); + + ret = H5Pset_dxpl_mpio_chunk_opt_num(dxpl, 40); + VRFY((ret >= 0), "H5Pset_dxpl_mpio_chunk_opt_num succeeded"); + + ret = H5Pset_edc_check(dxpl, H5Z_DISABLE_EDC); + VRFY((ret >= 0), "H5Pset_edc_check succeeded"); + + ret = H5Pset_data_transform(dxpl, c_to_f); + VRFY((ret >= 0), "H5Pset_data_transform succeeded"); + + ret = test_encode_decode(dxpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(dxpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE GCPLS *****/ + gcpl = H5Pcreate(H5P_GROUP_CREATE); + VRFY((gcpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_local_heap_size_hint(gcpl, 256); + VRFY((ret >= 0), "H5Pset_local_heap_size_hint succeeded"); + + ret = H5Pset_link_phase_change(gcpl, 2, 2); + VRFY((ret >= 0), "H5Pset_link_phase_change succeeded"); + + /* Query the group creation properties */ + ret = H5Pget_link_phase_change(gcpl, &max_compact, &min_dense); + VRFY((ret >= 0), "H5Pget_est_link_info succeeded"); + + ret = H5Pset_est_link_info(gcpl, 3, 9); + VRFY((ret >= 0), "H5Pset_est_link_info succeeded"); + + ret = H5Pset_link_creation_order(gcpl, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)); + VRFY((ret >= 0), "H5Pset_link_creation_order succeeded"); + + ret = test_encode_decode(gcpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(gcpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE LCPLS *****/ + lcpl = H5Pcreate(H5P_LINK_CREATE); + VRFY((lcpl >= 0), "H5Pcreate succeeded"); + + ret= H5Pset_create_intermediate_group(lcpl, TRUE); + VRFY((ret >= 0), "H5Pset_create_intermediate_group succeeded"); + + ret = test_encode_decode(lcpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(lcpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE LAPLS *****/ + lapl = H5Pcreate(H5P_LINK_ACCESS); + VRFY((lapl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_nlinks(lapl, (size_t)134); + VRFY((ret >= 0), "H5Pset_nlinks succeeded"); + + ret = H5Pset_elink_acc_flags(lapl, H5F_ACC_RDONLY); + VRFY((ret >= 0), "H5Pset_elink_acc_flags succeeded"); + + ret = H5Pset_elink_prefix(lapl, "/tmpasodiasod"); + VRFY((ret >= 0), "H5Pset_nlinks succeeded"); + + /* Create FAPL for the elink FAPL */ + fapl = H5Pcreate(H5P_FILE_ACCESS); + VRFY((fapl >= 0), "H5Pcreate succeeded"); + ret = H5Pset_alignment(fapl, 2, 1024); + VRFY((ret >= 0), "H5Pset_alignment succeeded"); + + ret = H5Pset_elink_fapl(lapl, fapl); + VRFY((ret >= 0), "H5Pset_elink_fapl succeeded"); + + /* Close the elink's FAPL */ + ret = H5Pclose(fapl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + ret = test_encode_decode(lapl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(lapl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE OCPYPLS *****/ + ocpypl = H5Pcreate(H5P_OBJECT_COPY); + VRFY((ocpypl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_copy_object(ocpypl, H5O_COPY_EXPAND_EXT_LINK_FLAG); + VRFY((ret >= 0), "H5Pset_copy_object succeeded"); + + ret = H5Padd_merge_committed_dtype_path(ocpypl, "foo"); + VRFY((ret >= 0), "H5Padd_merge_committed_dtype_path succeeded"); + + ret = H5Padd_merge_committed_dtype_path(ocpypl, "bar"); + VRFY((ret >= 0), "H5Padd_merge_committed_dtype_path succeeded"); + + ret = test_encode_decode(ocpypl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(ocpypl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE FAPLS *****/ + fapl = H5Pcreate(H5P_FILE_ACCESS); + VRFY((fapl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_family_offset(fapl, 1024); + VRFY((ret >= 0), "H5Pset_family_offset succeeded"); + + ret = H5Pset_meta_block_size(fapl, 2098452); + VRFY((ret >= 0), "H5Pset_meta_block_size succeeded"); + + ret = H5Pset_sieve_buf_size(fapl, 1048576); + VRFY((ret >= 0), "H5Pset_sieve_buf_size succeeded"); + + ret = H5Pset_alignment(fapl, 2, 1024); + VRFY((ret >= 0), "H5Pset_alignment succeeded"); + + ret = H5Pset_cache(fapl, 1024, 128, 10485760, 0.3f); + VRFY((ret >= 0), "H5Pset_cache succeeded"); + + ret = H5Pset_elink_file_cache_size(fapl, 10485760); + VRFY((ret >= 0), "H5Pset_elink_file_cache_size succeeded"); + + ret = H5Pset_gc_references(fapl, 1); + VRFY((ret >= 0), "H5Pset_gc_references succeeded"); + + ret = H5Pset_small_data_block_size(fapl, 2048); + VRFY((ret >= 0), "H5Pset_small_data_block_size succeeded"); + + ret = H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST); + VRFY((ret >= 0), "H5Pset_libver_bounds succeeded"); + + ret = H5Pset_fclose_degree(fapl, H5F_CLOSE_WEAK); + VRFY((ret >= 0), "H5Pset_fclose_degree succeeded"); + + ret = H5Pset_multi_type(fapl, H5FD_MEM_GHEAP); + VRFY((ret >= 0), "H5Pset_multi_type succeeded"); + + ret = H5Pset_mdc_config(fapl, &my_cache_config); + VRFY((ret >= 0), "H5Pset_mdc_config succeeded"); + + ret = test_encode_decode(fapl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(fapl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE FCPLS *****/ + fcpl = H5Pcreate(H5P_FILE_CREATE); + VRFY((fcpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_userblock(fcpl, 1024); + VRFY((ret >= 0), "H5Pset_userblock succeeded"); + + ret = H5Pset_istore_k(fcpl, 3); + VRFY((ret >= 0), "H5Pset_istore_k succeeded"); + + ret = H5Pset_sym_k(fcpl, 4, 5); + VRFY((ret >= 0), "H5Pset_sym_k succeeded"); + + ret = H5Pset_shared_mesg_nindexes(fcpl, 8); + VRFY((ret >= 0), "H5Pset_shared_mesg_nindexes succeeded"); + + ret = H5Pset_shared_mesg_index(fcpl, 1, H5O_SHMESG_SDSPACE_FLAG, 32); + VRFY((ret >= 0), "H5Pset_shared_mesg_index succeeded"); + + ret = H5Pset_shared_mesg_phase_change(fcpl, 60, 20); + VRFY((ret >= 0), "H5Pset_shared_mesg_phase_change succeeded"); + + ret = H5Pset_sizes(fcpl, 8, 4); + VRFY((ret >= 0), "H5Pset_sizes succeeded"); + + ret = test_encode_decode(fcpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(fcpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE STRCPLS *****/ + strcpl = H5Pcreate(H5P_STRING_CREATE); + VRFY((strcpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_char_encoding(strcpl, H5T_CSET_UTF8); + VRFY((ret >= 0), "H5Pset_char_encoding succeeded"); + + ret = test_encode_decode(strcpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(strcpl); + VRFY((ret >= 0), "H5Pclose succeeded"); + + + /******* ENCODE/DECODE ACPLS *****/ + acpl = H5Pcreate(H5P_ATTRIBUTE_CREATE); + VRFY((acpl >= 0), "H5Pcreate succeeded"); + + ret = H5Pset_char_encoding(acpl, H5T_CSET_UTF8); + VRFY((ret >= 0), "H5Pset_char_encoding succeeded"); + + ret = test_encode_decode(acpl, mpi_rank, recv_proc); + VRFY((ret >= 0), "test_encode_decode succeeded"); + + ret = H5Pclose(acpl); + VRFY((ret >= 0), "H5Pclose succeeded"); +} + diff --git a/testpar/testpar.h b/testpar/testpar.h index ce11204..2c99103 100644 --- a/testpar/testpar.h +++ b/testpar/testpar.h @@ -18,6 +18,9 @@ #ifndef TESTPAR_H #define TESTPAR_H +/* Indicate that these are parallel tests, for the testing framework */ +#define H5_PARALLEL_TEST + #include "h5test.h" /* Constants definitions */ diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c index a4df46e..97a377e 100644 --- a/testpar/testphdf5.c +++ b/testpar/testphdf5.c @@ -510,6 +510,9 @@ int main(int argc, char **argv) "test cause for broken collective io", PARATESTFILE); + AddTest("edpl", test_plist_ed, NULL, + "encode/decode Property Lists", NULL); + if((mpi_size < 2) && MAINPROCESS) { printf("File Image Ops daisy chain test needs at least 2 processes.\n"); printf("File Image Ops daisy chain test will be skipped \n"); diff --git a/testpar/testphdf5.h b/testpar/testphdf5.h index 29ad411..2219dc9 100644 --- a/testpar/testphdf5.h +++ b/testpar/testphdf5.h @@ -234,6 +234,7 @@ extern int facc_type; /*Test file access type */ extern int dxfer_coll_type; /* Test program prototypes */ +void test_plist_ed(void); void multiple_dset_write(void); void multiple_group_write(void); void multiple_group_read(void); diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 6cdfcac..b48a1b9 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_TOOLS) #----------------------------------------------------------------------------- +# Apply Definitions to compiler in this directory and below +#----------------------------------------------------------------------------- +ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) + +#----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- INCLUDE_DIRECTORIES (${HDF5_TOOLS_SOURCE_DIR}/lib) diff --git a/tools/h5copy/h5copygentest.c b/tools/h5copy/h5copygentest.c index e658e92..e45d24a 100644 --- a/tools/h5copy/h5copygentest.c +++ b/tools/h5copy/h5copygentest.c @@ -284,14 +284,14 @@ static void gent_nested_vl(hid_t loc_id) /* allocate and initialize VL dataset to write */ buf[0].len = 1; buf[0].p = malloc( 1 * sizeof(hvl_t)); - tvl = buf[0].p; + tvl = (hvl_t *)buf[0].p; tvl->p = malloc( 1 * sizeof(int) ); tvl->len = 1; ((int *)tvl->p)[0]=1; buf[1].len = 1; buf[1].p = malloc( 1 * sizeof(hvl_t)); - tvl = buf[1].p; + tvl = (hvl_t *)buf[1].p; tvl->p = malloc( 2 * sizeof(int) ); tvl->len = 2; ((int *)tvl->p)[0]=2; @@ -642,7 +642,7 @@ out: * Purpose: Testing with various objects * *------------------------------------------------------------------------*/ -static void Test_Obj_Copy() +static void Test_Obj_Copy(void) { hid_t fid=0; @@ -673,7 +673,7 @@ out: * Purpose: Testing with various references * *------------------------------------------------------------------------*/ -static void Test_Ref_Copy() +static void Test_Ref_Copy(void) { hid_t fid=0; herr_t status; @@ -839,7 +839,7 @@ out: * Purpose: gerenate external link files * *------------------------------------------------------------------------*/ -static void Test_Extlink_Copy() +static void Test_Extlink_Copy(void) { hid_t fid1=0; hid_t fid2=0; diff --git a/tools/h5diff/testfiles/h5diff_220.txt b/tools/h5diff/testfiles/h5diff_220.txt index cadbb6d..0092fc1 100644 --- a/tools/h5diff/testfiles/h5diff_220.txt +++ b/tools/h5diff/testfiles/h5diff_220.txt @@ -1,8 +1,6 @@ Not comparable: is of class H5T_INTEGER and is of class H5T_STRING attribute: > and > 3 differences found -dataset: and -3 differences found dataset: and 3 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_221.txt b/tools/h5diff/testfiles/h5diff_221.txt index 621f5c3..5f10860 100644 --- a/tools/h5diff/testfiles/h5diff_221.txt +++ b/tools/h5diff/testfiles/h5diff_221.txt @@ -1,3 +1,5 @@ +dataset: and +3 differences found Not comparable: is of class H5T_INTEGER and is of class H5T_STRING Not comparable: has rank 1, dimensions [3], max dimensions [3] and has rank 1, dimensions [4], max dimensions [4] @@ -5,8 +7,6 @@ Not comparable: has rank 1, dimensions [3], max dimensions [3] and has rank 2, dimensions [3x1], max dimensions [3x1] attribute: > and > 3 differences found -dataset: and -6 differences found dataset: and 3 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_222.txt b/tools/h5diff/testfiles/h5diff_222.txt index 53c9464..77447da 100644 --- a/tools/h5diff/testfiles/h5diff_222.txt +++ b/tools/h5diff/testfiles/h5diff_222.txt @@ -4,10 +4,10 @@ Not comparable: is of type H5G_TYPE and is of class H5T_INTEGER and is of class H5T_STRING attribute: > and > 3 differences found -dataset: and -3 differences found dataset: and 3 differences found +dataset: and +3 differences found Not comparable: is of class H5T_INTEGER and is of class H5T_STRING Not comparable: has rank 1, dimensions [3], max dimensions [3] and has rank 1, dimensions [4], max dimensions [4] @@ -15,8 +15,6 @@ Not comparable: has rank 1, dimensions [3], max dimensions [3] and has rank 2, dimensions [3x1], max dimensions [3x1] attribute: > and > 3 differences found -dataset: and -6 differences found dataset: and 3 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_59.txt b/tools/h5diff/testfiles/h5diff_59.txt index aeefa3a..996a7b2 100644 --- a/tools/h5diff/testfiles/h5diff_59.txt +++ b/tools/h5diff/testfiles/h5diff_59.txt @@ -2,10 +2,10 @@ dataset: and Warning: different storage datatype has file datatype H5T_STD_U16LE has file datatype H5T_STD_U32LE +0 differences found Warning: different storage datatype has file datatype H5T_STD_U16LE has file datatype H5T_STD_U32LE attribute: > and > 0 differences found -0 differences found EXIT CODE: 0 diff --git a/tools/h5diff/testfiles/h5diff_70.txt b/tools/h5diff/testfiles/h5diff_70.txt index 47b057c..0a6b0c0 100644 --- a/tools/h5diff/testfiles/h5diff_70.txt +++ b/tools/h5diff/testfiles/h5diff_70.txt @@ -678,6 +678,7 @@ position vlen3D of vlen3D of difference 59 differences found dataset: and Not comparable: or is an empty dataset +0 differences found attribute: > and > size: [2] [2] position VLstring of VLstring of difference @@ -1353,7 +1354,6 @@ position vlen3D of vlen3D of difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : and 0 differences found attribute: > and > diff --git a/tools/h5diff/testfiles/h5diff_700.txt b/tools/h5diff/testfiles/h5diff_700.txt index 00c5b07..1cf71dd 100644 --- a/tools/h5diff/testfiles/h5diff_700.txt +++ b/tools/h5diff/testfiles/h5diff_700.txt @@ -681,6 +681,7 @@ position vlen3D of vlen3D of difference dataset: and Not comparable: or is an empty dataset +0 differences found Attributes status: 33 common, 0 only in obj1, 0 only in obj2 attribute: > and > size: [2] [2] @@ -1357,7 +1358,6 @@ position vlen3D of vlen3D of difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : and 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_701.txt b/tools/h5diff/testfiles/h5diff_701.txt index a4b436f..405ab2f 100644 --- a/tools/h5diff/testfiles/h5diff_701.txt +++ b/tools/h5diff/testfiles/h5diff_701.txt @@ -713,6 +713,7 @@ position vlen3D of vlen3D of difference dataset: and Not comparable: or is an empty dataset +0 differences found obj1 obj2 -------------------------------------- x x VLstring @@ -1424,7 +1425,6 @@ position vlen3D of vlen3D of difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : and 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_702.txt b/tools/h5diff/testfiles/h5diff_702.txt index 00c5b07..1cf71dd 100644 --- a/tools/h5diff/testfiles/h5diff_702.txt +++ b/tools/h5diff/testfiles/h5diff_702.txt @@ -681,6 +681,7 @@ position vlen3D of vlen3D of difference dataset: and Not comparable: or is an empty dataset +0 differences found Attributes status: 33 common, 0 only in obj1, 0 only in obj2 attribute: > and > size: [2] [2] @@ -1357,7 +1358,6 @@ position vlen3D of vlen3D of difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : and 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_703.txt b/tools/h5diff/testfiles/h5diff_703.txt index a4b436f..405ab2f 100644 --- a/tools/h5diff/testfiles/h5diff_703.txt +++ b/tools/h5diff/testfiles/h5diff_703.txt @@ -713,6 +713,7 @@ position vlen3D of vlen3D of difference dataset: and Not comparable: or is an empty dataset +0 differences found obj1 obj2 -------------------------------------- x x VLstring @@ -1424,7 +1425,6 @@ position vlen3D of vlen3D of difference [ 3 2 1 ] 58 0 58 [ 3 2 1 ] 59 0 59 59 differences found -519 differences found group : and 0 differences found diff --git a/tools/h5diff/testfiles/h5diff_705.txt b/tools/h5diff/testfiles/h5diff_705.txt index 1609189..2e52f18 100644 --- a/tools/h5diff/testfiles/h5diff_705.txt +++ b/tools/h5diff/testfiles/h5diff_705.txt @@ -1,5 +1,6 @@ dataset: and +0 differences found obj1 obj2 -------------------------------------- x float2 @@ -13,5 +14,4 @@ position integer1 of integer1 of difference [ 0 ] 1 2 1 [ 1 ] 2 3 1 2 differences found -2 differences found EXIT CODE: 1 diff --git a/tools/h5diff/testfiles/h5diff_710.txt b/tools/h5diff/testfiles/h5diff_710.txt index 862c062..10a8501 100644 --- a/tools/h5diff/testfiles/h5diff_710.txt +++ b/tools/h5diff/testfiles/h5diff_710.txt @@ -17,6 +17,7 @@ group : and Attributes status: 0 common, 0 only in obj1, 0 only in obj2 dataset: and +0 differences found obj1 obj2 -------------------------------------- x float2 @@ -30,7 +31,6 @@ position integer1 of integer1 of difference [ 0 ] 1 2 1 [ 1 ] 2 3 1 2 differences found -2 differences found group : and 0 differences found diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index 0327949..8766eb6 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -159,6 +159,8 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/tperror.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/treference.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarintsize.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarattrintsize.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tscaleoffset.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tshuffle.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tslink-1.ddl @@ -260,6 +262,8 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/torderattr.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tordergr.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.h5 + ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarintsize.h5 + ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarattrintsize.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tslink.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tsplit_file-m.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tsplit_file-r.h5 @@ -1016,6 +1020,10 @@ IF (BUILD_TESTING) treference.out.err tsaf.out tsaf.out.err + tscalarintsize.out + tscalarintsize.out.err + tscalarattrintsize.out + tscalarattrintsize.out.err tscaleoffset.out tscaleoffset.out.err tshuffle.out @@ -1079,10 +1087,16 @@ IF (BUILD_TESTING) ADD_H5_TEST (packedbits 0 --enable-error-stack packedbits.h5) # test for compound signed/unsigned datasets ADD_H5_TEST (tcmpdintsize 0 --enable-error-stack tcmpdintsize.h5) + # test for signed/unsigned scalar datasets + # TODO: failed on mac with intel compiler. (Allen will work on it) + #ADD_H5_TEST (tscalarintsize 0 --enable-error-stack tscalarintsize.h5) # test for signed/unsigned attributes ADD_H5_TEST (tattrintsize 0 --enable-error-stack tattrintsize.h5) # test for compound signed/unsigned attributes ADD_H5_TEST (tcmpdattrintsize 0 --enable-error-stack tcmpdattrintsize.h5) + # test for signed/unsigned scalar attributes + # TODO: failed on mac with intel compiler. (Allen will work on it) + #ADD_H5_TEST (tscalarattrintsize 0 --enable-error-stack tscalarattrintsize.h5) # test for displaying groups ADD_H5_TEST (tgroup-1 0 --enable-error-stack tgroup.h5) # test for displaying the selected groups diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index 2921fb9..34b8bc4 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -932,7 +932,7 @@ parse_mask_list(const char *h_list) static void free_handler(struct handler_t *hand, int len) { - register int i; + int i; if(hand) { for (i = 0; i < len; i++) { @@ -997,7 +997,7 @@ parse_command_line(int argc, const char *argv[]) /* this will be plenty big enough to hold the info */ if((hand = (struct handler_t *)HDcalloc((size_t)argc, sizeof(struct handler_t)))==NULL) { - goto error; + goto error; } /* parse command line options */ @@ -1054,7 +1054,7 @@ parse_start: break; case 'w': h5tools_nCols = HDatoi(opt_arg); - if (h5tools_nCols==0) { + if (h5tools_nCols <= 0) { h5tools_nCols = 65535; } last_was_dset = FALSE; @@ -1293,7 +1293,7 @@ parse_start: if (s->count.data) { HDfree(s->count.data); s->count.data = NULL; - } + } parse_hsize_list(opt_arg, &s->count); break; case 'k': @@ -1356,6 +1356,7 @@ error: return hand; } + /*------------------------------------------------------------------------- * Function: main @@ -1423,6 +1424,7 @@ main(int argc, const char *argv[]) /* Initialize h5tools lib */ h5tools_init(); + /* Disable tools error reporting */ H5Eget_auto2(H5tools_ERR_STACK_g, &tools_func, &tools_edata); H5Eset_auto2(H5tools_ERR_STACK_g, NULL, NULL); @@ -1449,28 +1451,28 @@ main(int argc, const char *argv[]) "to display selected objects"); h5tools_setstatus(EXIT_FAILURE); goto done; - } + } else if (display_bb) { error_msg("option \"%s\" not available for XML\n", "--boot-block"); h5tools_setstatus(EXIT_FAILURE); goto done; - } + } else if (display_oid == 1) { error_msg("option \"%s\" not available for XML\n", "--object-ids"); h5tools_setstatus(EXIT_FAILURE); goto done; - } + } else if (display_char == TRUE) { error_msg("option \"%s\" not available for XML\n", "--string"); h5tools_setstatus(EXIT_FAILURE); goto done; - } + } else if (usingdasho) { error_msg("option \"%s\" not available for XML\n", "--output"); h5tools_setstatus(EXIT_FAILURE); goto done; } - } + } else { if (xml_dtd_uri) { warn_msg("option \"%s\" only applies with XML: %s\n", "--xml-dtd", xml_dtd_uri); diff --git a/tools/h5dump/h5dump_xml.c b/tools/h5dump/h5dump_xml.c index 1a29659..28264e7 100644 --- a/tools/h5dump/h5dump_xml.c +++ b/tools/h5dump/h5dump_xml.c @@ -3761,7 +3761,8 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset) /* Print information about storage layout */ if (H5D_CHUNKED == H5Pget_layout(dcpl)) { maxdims = H5Sget_simple_extent_ndims(space); - chsize = (hsize_t *) HDmalloc(maxdims * sizeof(hsize_t)); + HDassert(maxdims >= 0); + chsize = (hsize_t *)HDmalloc((size_t)maxdims * sizeof(hsize_t)); ctx.indent_level++; dump_indent += COL; diff --git a/tools/h5dump/h5dump_xml.h b/tools/h5dump/h5dump_xml.h index 28485f8..258fd38 100644 --- a/tools/h5dump/h5dump_xml.h +++ b/tools/h5dump/h5dump_xml.h @@ -102,14 +102,6 @@ static h5tool_format_t xml_dataformat = { extern "C" { #endif -/* internal functions used by XML option */ -static void xml_print_datatype(hid_t, unsigned); -static void xml_print_enum(hid_t); -static int xml_print_refs(hid_t, int); -static int xml_print_strs(hid_t, int); -static char *xml_escape_the_string(const char *, int); -static char *xml_escape_the_name(const char *); - /* The dump functions of the dump_function_table */ /* XML format: same interface, alternative output */ diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index 63329f4..1bbb9f9 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -102,6 +102,8 @@ #define FILE70 "tcmpdintsize.h5" #define FILE71 "tcmpdattrintsize.h5" #define FILE72 "tnestedcmpddt.h5" +#define FILE73 "tscalarintsize.h5" +#define FILE74 "tscalarattrintsize.h5" /*------------------------------------------------------------------------- * prototypes @@ -301,6 +303,23 @@ typedef struct s1_t { /* Name of dataset to create in datafile */ #define F71_DATASETNAME "CompoundAttrIntSize" +/* "FILE73" macros and for FILE69 */ +#define F73_ARRAY_RANK 2 +#define F73_XDIM 8 +#define F73_DATASETU08 "DU08BITS" +#define F73_DATASETS08 "DS08BITS" +#define F73_YDIM8 8 +#define F73_DATASETU16 "DU16BITS" +#define F73_DATASETS16 "DS16BITS" +#define F73_YDIM16 16 +#define F73_DATASETU32 "DU32BITS" +#define F73_DATASETS32 "DS32BITS" +#define F73_YDIM32 32 +#define F73_DATASETU64 "DU64BITS" +#define F73_DATASETS64 "DS64BITS" +#define F73_YDIM64 64 +#define F73_DUMMYDBL "DummyDBL" + static void gent_group(void) { @@ -8097,6 +8116,404 @@ static void gent_nested_compound_dt(void) { /* test nested data type */ } /*------------------------------------------------------------------------- + * Function: gent_intscalars + * + * Purpose: Generate a file to be used in the h5dump tests. + * Four datasets of 1, 2, 4 and 8 bytes of unsigned int types are created. + * Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created. + * Fill them with raw data such that no bit will be all zero in a dataset. + * A dummy dataset of double type is created for failure test. + *------------------------------------------------------------------------- + */ +static void +gent_intscalars(void) +{ + hid_t fid, dataset, space, tid; + hsize_t dims[2]; + uint8_t dsetu8[F73_XDIM][F73_YDIM8], valu8bits; + uint16_t dsetu16[F73_XDIM][F73_YDIM16], valu16bits; + uint32_t dsetu32[F73_XDIM][F73_YDIM32], valu32bits; + uint64_t dsetu64[F73_XDIM][F73_YDIM64], valu64bits; + int8_t dset8[F73_XDIM][F73_YDIM8], val8bits; + int16_t dset16[F73_XDIM][F73_YDIM16], val16bits; + int32_t dset32[F73_XDIM][F73_YDIM32], val32bits; + int64_t dset64[F73_XDIM][F73_YDIM64], val64bits; + double dsetdbl[F73_XDIM][F73_YDIM8]; + unsigned int i, j; + + fid = H5Fcreate(FILE73, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + /* Dataset of 8 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U8LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETU08, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + valu8bits = (uint8_t) ~0u; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu8[i][0] = valu8bits; + for(j = 1; j < dims[1]; j++) { + dsetu8[i][j] = dsetu8[i][j-1] << 1; + } + valu8bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu8); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 16 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM16; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U16LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETU16, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + valu16bits = (uint16_t) ~0u; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu16[i][0] = valu16bits; + for(j = 1; j < dims[1]; j++) { + dsetu16[i][j] = dsetu16[i][j-1] << 1; + } + valu16bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu16); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 32 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM32; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U32LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETU32, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + valu32bits = (uint32_t) ~0u; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu32[i][0] = valu32bits; + for(j = 1; j < dims[1]; j++) { + dsetu32[i][j] = dsetu32[i][j-1] << 1; + } + valu32bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu32); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 64 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM64; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U64LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETU64, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + valu64bits = (uint64_t) ~0Lu; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu64[i][0] = valu64bits; + for(j = 1; j < dims[1]; j++) { + dsetu64[i][j] = dsetu64[i][j-1] << 1; + } + valu64bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu64); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 8 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I8LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETS08, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + val8bits = (int8_t) ~0; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset8[i][0] = val8bits; + for(j = 1; j < dims[1]; j++) { + dset8[i][j] = dset8[i][j-1] << 1; + } + val8bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset8); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 16 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM16; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I16LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETS16, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + val16bits = (int16_t) ~0; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset16[i][0] = val16bits; + for(j = 1; j < dims[1]; j++) { + dset16[i][j] = dset16[i][j-1] << 1; + } + val16bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset16); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 32 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM32; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I32LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETS32, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + val32bits = (int32_t) ~0; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset32[i][0] = val32bits; + for(j = 1; j < dims[1]; j++) { + dset32[i][j] = dset32[i][j-1] << 1; + } + val32bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset32); + H5Sclose(space); + H5Dclose(dataset); + + /* Dataset of 64 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM64; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I64LE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DATASETS64, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + val64bits = (int64_t) ~0L; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset64[i][0] = val64bits; + for(j = 1; j < dims[1]; j++) { + dset64[i][j] = dset64[i][j-1] << 1; + } + val64bits <<= 1; + } + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset64); + H5Sclose(space); + H5Dclose(dataset); + + /* Double Dummy set for failure tests */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F73_ARRAY_RANK, dims); + dataset = H5Dcreate2(fid, F73_DUMMYDBL, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + for(i = 0; i < dims[0]; i++) + for(j = 0; j < dims[1]; j++) + dsetdbl[i][j] = 0.0001 * j + i; + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl); + + H5Sclose(space); + H5Dclose(dataset); + H5Fclose(fid); +} + +/*------------------------------------------------------------------------- + * Function: gent_attr_packedbits + * + * Purpose: Generate a file to be used in the h5dump packed bits tests. + * Four attributes of 1, 2, 4 and 8 bytes of unsigned int types are created. + * Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created. + * Fill them with raw data such that no bit will be all zero in a dataset. + * A dummy dataset of double type is created for failure test. + * Use file to test Signed/Unsigned datatypes and keep in sync with gent_packedbits() + *------------------------------------------------------------------------- + */ +static void +gent_attr_intscalars(void) +{ + hid_t fid, attr, space, root, tid; + hsize_t dims[2]; + uint8_t dsetu8[F73_XDIM][F73_YDIM8], valu8bits; + uint16_t dsetu16[F73_XDIM][F73_YDIM16], valu16bits; + uint32_t dsetu32[F73_XDIM][F73_YDIM32], valu32bits; + uint64_t dsetu64[F73_XDIM][F73_YDIM64], valu64bits; + int8_t dset8[F73_XDIM][F73_YDIM8], val8bits; + int16_t dset16[F73_XDIM][F73_YDIM16], val16bits; + int32_t dset32[F73_XDIM][F73_YDIM32], val32bits; + int64_t dset64[F73_XDIM][F73_YDIM64], val64bits; + double dsetdbl[F73_XDIM][F73_YDIM8]; + unsigned int i, j; + + fid = H5Fcreate(FILE74, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + root = H5Gopen2(fid, "/", H5P_DEFAULT); + + /* Attribute of 8 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U8LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETU08, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + valu8bits = (uint8_t) ~0u; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu8[i][0] = valu8bits; + for(j = 1; j < dims[1]; j++) { + dsetu8[i][j] = dsetu8[i][j-1] << 1; + } + valu8bits <<= 1; + } + + H5Awrite(attr, tid, dsetu8); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 16 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM16; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U16LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETU16, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + valu16bits = (uint16_t) ~0u; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu16[i][0] = valu16bits; + for(j = 1; j < dims[1]; j++) { + dsetu16[i][j] = dsetu16[i][j-1] << 1; + } + valu16bits <<= 1; + } + + H5Awrite(attr, tid, dsetu16); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 32 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM32; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U32LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETU32, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + valu32bits = (uint32_t) ~0u; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu32[i][0] = valu32bits; + for(j = 1; j < dims[1]; j++) { + dsetu32[i][j] = dsetu32[i][j-1] << 1; + } + valu32bits <<= 1; + } + + H5Awrite(attr, tid, dsetu32); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 64 bits unsigned int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM64; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_U64LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETU64, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + valu64bits = (uint64_t) ~0Lu; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dsetu64[i][0] = valu64bits; + for(j = 1; j < dims[1]; j++) { + dsetu64[i][j] = dsetu64[i][j-1] << 1; + } + valu64bits <<= 1; + } + + H5Awrite(attr, tid, dsetu64); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 8 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I8LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETS08, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + val8bits = (int8_t) ~0; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset8[i][0] = val8bits; + for(j = 1; j < dims[1]; j++) { + dset8[i][j] = dset8[i][j-1] << 1; + } + val8bits <<= 1; + } + + H5Awrite(attr, tid, dset8); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 16 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM16; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I16LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETS16, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + val16bits = (int16_t) ~0; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset16[i][0] = val16bits; + for(j = 1; j < dims[1]; j++) { + dset16[i][j] = dset16[i][j-1] << 1; + } + val16bits <<= 1; + } + + H5Awrite(attr, tid, dset16); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 32 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM32; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I32LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETS32, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + val32bits = (int32_t) ~0; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset32[i][0] = val32bits; + for(j = 1; j < dims[1]; j++) { + dset32[i][j] = dset32[i][j-1] << 1; + } + val32bits <<= 1; + } + + H5Awrite(attr, tid, dset32); + H5Sclose(space); + H5Aclose(attr); + + /* Attribute of 64 bits signed int */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM64; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_STD_I64LE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DATASETS64, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + val64bits = (int64_t) ~0L; /* all 1s */ + for(i = 0; i < dims[0]; i++){ + dset64[i][0] = val64bits; + for(j = 1; j < dims[1]; j++) { + dset64[i][j] = dset64[i][j-1] << 1; + } + val64bits <<= 1; + } + + H5Awrite(attr, tid, dset64); + H5Sclose(space); + H5Aclose(attr); + + /* Double Dummy set for failure tests */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F73_ARRAY_RANK, dims); + attr = H5Acreate2(root, F73_DUMMYDBL, tid, space, H5P_DEFAULT, H5P_DEFAULT); + + for(i = 0; i < dims[0]; i++) + for(j = 0; j < dims[1]; j++) + dsetdbl[i][j] = 0.0001 * j + i; + + H5Awrite(attr, tid, dsetdbl); + + H5Sclose(space); + H5Aclose(attr); + + H5Gclose(root); + H5Fclose(fid); +} + +/*------------------------------------------------------------------------- * Function: main * *------------------------------------------------------------------------- @@ -8178,6 +8595,8 @@ int main(void) gent_compound_attr_intsizes(); gent_nested_compound_dt(); + gent_intscalars(); + gent_attr_intscalars(); return 0; } diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 2373f6f..c90c364 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -143,6 +143,8 @@ $SRC_H5DUMP_TESTFILES/zerodim.h5 $SRC_H5DUMP_TESTFILES/torderattr.h5 $SRC_H5DUMP_TESTFILES/tordergr.h5 $SRC_H5DUMP_TESTFILES/tsaf.h5 +$SRC_H5DUMP_TESTFILES/tscalarintsize.h5 +$SRC_H5DUMP_TESTFILES/tscalarattrintsize.h5 $SRC_H5DUMP_TESTFILES/tslink.h5 $SRC_H5DUMP_TESTFILES/tsplit_file-m.h5 $SRC_H5DUMP_TESTFILES/tsplit_file-r.h5 @@ -277,6 +279,8 @@ $SRC_H5DUMP_TESTFILES/torderlinks2.ddl $SRC_H5DUMP_TESTFILES/tperror.ddl $SRC_H5DUMP_TESTFILES/treference.ddl $SRC_H5DUMP_TESTFILES/tsaf.ddl +$SRC_H5DUMP_TESTFILES/tscalarintsize.ddl +$SRC_H5DUMP_TESTFILES/tscalarattrintsize.ddl $SRC_H5DUMP_TESTFILES/tscaleoffset.ddl $SRC_H5DUMP_TESTFILES/tshuffle.ddl $SRC_H5DUMP_TESTFILES/tslink-1.ddl @@ -678,10 +682,14 @@ TOOLTEST twidedisplay.ddl --enable-error-stack -w0 packedbits.h5 TOOLTEST packedbits.ddl --enable-error-stack packedbits.h5 # test for compound signed/unsigned datasets TOOLTEST tcmpdintsize.ddl --enable-error-stack tcmpdintsize.h5 +# test for signed/unsigned scalar datasets +TOOLTEST tscalarintsize.ddl --enable-error-stack tscalarintsize.h5 # test for signed/unsigned attributes TOOLTEST tattrintsize.ddl --enable-error-stack tattrintsize.h5 # test for compound signed/unsigned attributes TOOLTEST tcmpdattrintsize.ddl --enable-error-stack tcmpdattrintsize.h5 +# test for signed/unsigned scalar attributes +TOOLTEST tscalarattrintsize.ddl --enable-error-stack tscalarattrintsize.h5 # test for displaying groups TOOLTEST tgroup-1.ddl --enable-error-stack tgroup.h5 # test for displaying the selected groups diff --git a/tools/h5import/h5import.c b/tools/h5import/h5import.c index 34870fb..9497e58 100644 --- a/tools/h5import/h5import.c +++ b/tools/h5import/h5import.c @@ -32,6 +32,43 @@ #define READ_OPEN_FLAGS "r" #endif +/* Local function declarations */ +static int gtoken(char *s); +static int process(struct Options *opt); +static int processConfigurationFile(char *infile, struct Input *in); +static int mapKeywordToIndex(char *key); +static int parsePathInfo(struct path_info *path, char *strm); +static int parseDimensions(struct Input *in, char *strm); +static int getInputSize(struct Input *in, int ival); +static int getInputClass(struct Input *in, char * strm); +static int getInputClassType(struct Input *in, char * strm); +static int InputClassStrToInt(char *temp); +static int getRank(struct Input *in, FILE *strm); +static int getDimensionSizes(struct Input *in, FILE *strm); +static int getOutputSize(struct Input *in, FILE *strm); +static int getOutputClass(struct Input *in, FILE *strm); +static int OutputClassStrToInt(char *temp); +static int getOutputArchitecture(struct Input *in, FILE *strm); +static int OutputArchStrToInt(const char *temp); +static int getOutputByteOrder(struct Input *in, FILE *strm); +static int OutputByteOrderStrToInt(const char *temp); +static int getChunkedDimensionSizes(struct Input *in, FILE *strm); +static int getCompressionType(struct Input *in, FILE *strm); +static int CompressionTypeStrToInt(char *temp); +static int getCompressionParameter(struct Input *in, FILE *strm); +static int getExternalFilename(struct Input *in, FILE *strm); +static int getMaximumDimensionSizes(struct Input *in, FILE *strm); +static int processDataFile(char *infile, struct Input *in, hid_t file_id); +static int readIntegerData(FILE *strm, struct Input *in); +static int readFloatData(FILE *strm, struct Input *in); +static int allocateIntegerStorage(struct Input *in); +static int allocateFloatStorage(struct Input *in); +static int readUIntegerData(FILE *strm, struct Input *in); +static int allocateUIntegerStorage(struct Input *in); +static int validateConfigurationParameters(struct Input *in); +static int processStrData(FILE *strm, struct Input *in, hid_t file_id); +static int processStrHDFData(FILE *strm, struct Input *in, hid_t file_id); + int main(int argc, char *argv[]) { struct Options opt; @@ -301,7 +338,7 @@ static int gtoken(char *s) static int processDataFile(char *infile, struct Input *in, hid_t file_id) { - FILE *strm; + FILE *strm = NULL; const char *err1 = "Unable to open the input file %s for reading.\n"; const char *err2 = "Error in allocating integer data storage.\n"; const char *err3 = "Error in allocating floating-point data storage.\n"; @@ -311,6 +348,7 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) const char *err7 = "Error in reading unsigned integer data.\n"; const char *err10 = "Unrecognized input class type.\n"; const char *err11 = "Error in reading string data.\n"; + int retval = -1; /*------------------------------------------------------------------------- * special case for opening binary classes in H5_HAVE_WIN32_API @@ -323,7 +361,7 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) if ((strm = HDfopen(infile, READ_OPEN_FLAGS)) == NULL) { (void) HDfprintf(stderr, err1, infile); - return (-1); + goto error; } } /*------------------------------------------------------------------------- @@ -333,7 +371,7 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) else { if ((strm = HDfopen(infile, "r")) == NULL) { (void) HDfprintf(stderr, err1, infile); - return (-1); + goto error; } } @@ -342,14 +380,12 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) case 4: /* IN */ if (allocateIntegerStorage(in) == -1) { (void) HDfprintf(stderr, err2, infile); - HDfclose(strm); - return (-1); + goto error; } if (readIntegerData(strm, in) == -1) { (void) HDfprintf(stderr, err4, infile); - HDfclose(strm); - return (-1); + goto error; } break; @@ -358,15 +394,13 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) case 3: /* FP */ if (allocateFloatStorage(in) == -1) { (void) HDfprintf(stderr, err3, infile); - HDfclose(strm); - return (-1); + goto error; } if (readFloatData(strm, in) == -1) { (void) HDfprintf(stderr, err5, infile); - HDfclose(strm); - return (-1); + goto error; } break; @@ -374,15 +408,13 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) if (in->h5dumpInput) { if (processStrHDFData(strm, in, file_id) == -1) { (void) HDfprintf(stderr, err11, infile); - HDfclose(strm); - return (-1); + goto error; } } else { if (processStrData(strm, in, file_id) == -1) { (void) HDfprintf(stderr, err11, infile); - HDfclose(strm); - return (-1); + goto error; } } @@ -392,23 +424,26 @@ static int processDataFile(char *infile, struct Input *in, hid_t file_id) case 7: /* UIN */ if (allocateUIntegerStorage(in) == -1) { (void) HDfprintf(stderr, err6, infile); - HDfclose(strm); - return (-1); + goto error; } if (readUIntegerData(strm, in) == -1) { (void) HDfprintf(stderr, err7, infile); - HDfclose(strm); - return (-1); + goto error; } break; default: (void) HDfprintf(stderr, "%s", err10); - HDfclose(strm); - return (-1); + goto error; } - HDfclose(strm); - return (0); + + /* Set success return value */ + retval = 0; + +error: + if(strm) + HDfclose(strm); + return(retval); } static int readIntegerData(FILE *strm, struct Input *in) @@ -1251,12 +1286,13 @@ static int allocateFloatStorage(struct Input *in) static int processConfigurationFile(char *infile, struct Input *in) { - FILE *strm; + FILE *strm = NULL; char key[255]; int kindex; char temp[255]; int ival; int scanret; + int retval = -1; const char *err1 = "Unable to open the configuration file: %s for reading.\n"; const char *err2 = "Unknown keyword in configuration file: %s\n"; @@ -1303,7 +1339,7 @@ static int processConfigurationFile(char *infile, struct Input *in) if ((strm = HDfopen(infile, "r")) == NULL) { (void) HDfprintf(stderr, err1, infile); - return (-1); + goto error; } scanret = fscanf(strm, "%s", key); @@ -1323,21 +1359,18 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (in->configOptionVector[PATH] == 1) { (void) HDfprintf(stderr, err3a, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASET %s found\n", temp); #endif if (parsePathInfo(&in->path, temp) == -1) { (void) HDfprintf(stderr, err3b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[PATH] = 1; scanret = fscanf(strm, "%s", temp); /* start bracket */ @@ -1351,22 +1384,19 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (in->configOptionVector[INPUT_CLASS] == 1) { (void) HDfprintf(stderr, err4a, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE %s found\n", temp); #endif if ((kindex = getInputClassType(in, temp)) == -1) { (void) HDfprintf(stderr, err4b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE type %d inputClass\n", in->inputClass); @@ -1396,23 +1426,20 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { /* start bracket */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING %s found\n", temp); #endif if (fscanf(strm, "%s", temp) != 1) { /* string properties */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } while (get_next_prop) { if(!HDstrcmp("STRSIZE", temp)) { /* STRSIZE */ if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err19); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING STRSIZE %s found\n", temp); @@ -1422,8 +1449,7 @@ static int processConfigurationFile(char *infile, struct Input *in) ival = HDstrtol(more, &more, 10); if (getInputSize(in, ival) == -1) { (void) HDfprintf(stderr, err5b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING %d InputSize\n", in->inputSize); @@ -1433,8 +1459,7 @@ static int processConfigurationFile(char *infile, struct Input *in) else if(!HDstrcmp("STRPAD", temp)) { /* STRPAD */ if (fscanf(strm, "%s", temp) != 1) { /* STRPAD type */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING STRPAD %s found\n", temp); @@ -1443,8 +1468,7 @@ static int processConfigurationFile(char *infile, struct Input *in) else if(!HDstrcmp("CSET", key)) { /* CSET */ if (fscanf(strm, "%s", temp) != 1) { /* CSET type */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING CSET %s found\n", temp); @@ -1454,8 +1478,7 @@ static int processConfigurationFile(char *infile, struct Input *in) else if(!HDstrcmp("CTYPE", temp)) { /* CTYPE */ if (fscanf(strm, "%s", temp) != 1) { /* CTYPE type */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING CTYPE %s found\n", temp); @@ -1463,8 +1486,7 @@ static int processConfigurationFile(char *infile, struct Input *in) } /* if(!HDstrcmp("CSET", key)) */ if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATATYPE STRING %s found\n", temp); @@ -1483,16 +1505,14 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } if(!HDstrcmp("SCALAR", temp)) { /* SCALAR */ in->rank = 0; } /* if(!HDstrcmp("SCALAR", key)) */ else if(!HDstrcmp("NULL", temp)) { /* NULL */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } /* else if(!HDstrcmp("NULL", key)) */ else if(!HDstrcmp("SIMPLE", temp)) { /* SIMPLE */ int icount = 0; @@ -1501,16 +1521,14 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { /* start bracket */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); #endif if (fscanf(strm, "%s", temp) != 1) { /* start paren */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); @@ -1521,8 +1539,7 @@ static int processConfigurationFile(char *infile, struct Input *in) if (fscanf(strm, "%s", temp) != 1) { /* Dimension with optional comma */ (void) HDfprintf(stderr, err16c, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); @@ -1532,8 +1549,7 @@ static int processConfigurationFile(char *infile, struct Input *in) temp_dims[icount] = HDstrtoull(more, &more, 10); if (fscanf(strm, "%s", temp) != 1) { /* Dimension or end paren */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); @@ -1547,15 +1563,13 @@ static int processConfigurationFile(char *infile, struct Input *in) icount++; if (icount > MAX_NUM_DIMENSION) { (void) HDfprintf(stderr, "Invalid value for rank.\n"); - HDfclose(strm); - return (-1); + goto error; } } } /* while (get_next_dim) */ if ((in->sizeOfDimension = (hsize_t *) HDmalloc ((size_t) in->rank * sizeof(hsize_t))) == NULL) { - (void) HDfprintf(stderr, "Unable to allocate dynamic memory.\n"); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %d rank\n", in->rank); @@ -1574,26 +1588,22 @@ static int processConfigurationFile(char *infile, struct Input *in) } /* if(!HDstrcmp("(", key)) start paren */ else { (void) HDfprintf(stderr, err5b, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); #endif if(!HDstrcmp("/", temp)) { /* / max dims */ if ((in->maxsizeOfDimension = (hsize_t *) HDmalloc ((size_t) in->rank * sizeof(hsize_t))) == NULL) { - (void) HDfprintf(stderr, "Unable to allocate dynamic memory.\n"); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { /* start paren */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); @@ -1607,8 +1617,7 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { /* max dim with optional comma */ (void) HDfprintf(stderr, err16c, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); @@ -1627,8 +1636,7 @@ static int processConfigurationFile(char *infile, struct Input *in) } if (fscanf(strm, "%s", temp) != 1) { /* max dim or end paren */ (void) HDfprintf(stderr, err16c, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump DATASPACE SIMPLE %s found\n", temp); @@ -1640,8 +1648,7 @@ static int processConfigurationFile(char *infile, struct Input *in) i++; if (i > MAX_NUM_DIMENSION) { (void) HDfprintf(stderr, "Invalid value for rank.\n"); - HDfclose(strm); - return (-1); + goto error; } } } /* while (get_next_dim) */ @@ -1656,8 +1663,7 @@ static int processConfigurationFile(char *infile, struct Input *in) } /* if(!HDstrcmp("(", key)) start paren */ else { (void) HDfprintf(stderr, err16c, infile); - HDfclose(strm); - return (-1); + goto error; } scanret = fscanf(strm, "%s", temp); /* end bracket */ #ifdef H5DEBUGIMPORT @@ -1667,8 +1673,7 @@ static int processConfigurationFile(char *infile, struct Input *in) } /* else if(!HDstrcmp("SIMPLE", key)) */ else { (void) HDfprintf(stderr, err5b, infile); - HDfclose(strm); - return (-1); + goto error; } } /* else if(!HDstrcmp("DATASPACE", key)) RANK and DIMENSIONS */ else if(!HDstrcmp("STORAGE_LAYOUT", key)) { /* CHUNKED-DIMENSION-SIZES */ @@ -1677,16 +1682,14 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { /* start bracket */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT %s found\n", temp); #endif if (fscanf(strm, "%s", temp) != 1) { /* CHUNKED */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT %s found\n", temp); @@ -1694,12 +1697,11 @@ static int processConfigurationFile(char *infile, struct Input *in) if(!HDstrcmp("CHUNKED", temp)) { /* CHUNKED */ if ((in->sizeOfChunk = (hsize_t *) HDmalloc ((size_t) in->rank * sizeof(hsize_t))) == NULL) { (void) HDfprintf(stderr, "Unable to allocate dynamic memory.\n"); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { /* start paren */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT CHUNKED %s found\n", temp); @@ -1710,8 +1712,7 @@ static int processConfigurationFile(char *infile, struct Input *in) if (fscanf(strm, "%s", temp) != 1) { /* Dimension with optional comma */ (void) HDfprintf(stderr, err16c, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT CHUNKED %s found\n", temp); @@ -1721,8 +1722,7 @@ static int processConfigurationFile(char *infile, struct Input *in) in->sizeOfChunk[icount] = HDstrtoull(more, &more, 10); if (fscanf(strm, "%s", temp) != 1) { /* Dimension or end paren */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT CHUNKED %s found\n", temp); @@ -1735,8 +1735,7 @@ static int processConfigurationFile(char *infile, struct Input *in) icount++; if (icount > MAX_NUM_DIMENSION) { (void) HDfprintf(stderr, "Invalid value for rank.\n"); - HDfclose(strm); - return (-1); + goto error; } } } /* while (get_next_dim) */ @@ -1751,13 +1750,11 @@ static int processConfigurationFile(char *infile, struct Input *in) } /* if(!HDstrcmp("(", key)) start paren */ else { (void) HDfprintf(stderr, err5b, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { /* SIZE */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT CHUNKED %s found\n", temp); @@ -1765,8 +1762,7 @@ static int processConfigurationFile(char *infile, struct Input *in) if(!HDstrcmp("SIZE", temp)) { /* SIZE */ if (fscanf(strm, "%d", (&ival)) != 1) { (void) HDfprintf(stderr, "%s", err19); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT CHUNKED SIZE %d found\n", ival); @@ -1775,8 +1771,7 @@ static int processConfigurationFile(char *infile, struct Input *in) while (HDstrcmp("}", temp)) { if (fscanf(strm, "%s", temp) != 1) { /* end bracket */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump STORAGE_LAYOUT CHUNKED %s found\n", temp); @@ -1791,16 +1786,14 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { /* start bracket */ (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS %s found\n", temp); #endif if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS %s found\n", temp); @@ -1811,32 +1804,28 @@ static int processConfigurationFile(char *infile, struct Input *in) #endif if (fscanf(strm, "%s", temp) != 1) { /* DEFLATE */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS COMPRESSION %s found\n", temp); #endif if (fscanf(strm, "%s", temp) != 1) { /* bgin bracket */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS COMPRESSION %s found\n", temp); #endif if (fscanf(strm, "%s", temp) != 1) { /* LEVEL */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS COMPRESSION %s found\n", temp); #endif if (fscanf(strm, "%d", (&ival)) != 1) { (void) HDfprintf(stderr, "%s", err19); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS COMPRESSION LEVEL %d found\n", ival); @@ -1844,8 +1833,7 @@ static int processConfigurationFile(char *infile, struct Input *in) in->compressionParam = ival; if (fscanf(strm, "%s", temp) != 1) { /* end bracket */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS COMPRESSION %s found\n", temp); @@ -1867,8 +1855,7 @@ static int processConfigurationFile(char *infile, struct Input *in) } if (fscanf(strm, "%s", temp) != 1) { /* end bracket */ (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } #ifdef H5DEBUGIMPORT printf("h5dump FILTERS %s found\n", temp); @@ -1909,25 +1896,21 @@ static int processConfigurationFile(char *infile, struct Input *in) while (scanret == 1) { if ((kindex = mapKeywordToIndex(key)) == -1) { (void) HDfprintf(stderr, err2, infile); - HDfclose(strm); - return (-1); + goto error; } switch (kindex) { case 0: /* PATH */ if (in->configOptionVector[PATH] == 1) { (void) HDfprintf(stderr, err3a, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } if (parsePathInfo(&in->path, temp) == -1) { (void) HDfprintf(stderr, err3b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[PATH] = 1; break; @@ -1935,19 +1918,16 @@ static int processConfigurationFile(char *infile, struct Input *in) case 1: /* INPUT-CLASS */ if (in->configOptionVector[INPUT_CLASS] == 1) { (void) HDfprintf(stderr, err4a, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%s", temp) != 1) { (void) HDfprintf(stderr, "%s", err18); - HDfclose(strm); - return (-1); + goto error; } if (getInputClass(in, temp) == -1) { (void) HDfprintf(stderr, err4b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[INPUT_CLASS] = 1; @@ -1967,18 +1947,15 @@ static int processConfigurationFile(char *infile, struct Input *in) case 2: /* INPUT-SIZE */ if (in->configOptionVector[INPUT_SIZE] == 1) { (void) HDfprintf(stderr, err5a, infile); - HDfclose(strm); - return (-1); + goto error; } if (fscanf(strm, "%d", (&ival)) != 1) { (void) HDfprintf(stderr, "%s", err19); - HDfclose(strm); - return (-1); + goto error; } if (getInputSize(in, ival) == -1) { (void) HDfprintf(stderr, err5b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[INPUT_SIZE] = 1; @@ -1990,14 +1967,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 3: /* RANK */ if (in->configOptionVector[RANK] == 1) { (void) HDfprintf(stderr, err6a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getRank(in, strm) == -1) { (void) HDfprintf(stderr, err6b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[RANK] = 1; break; @@ -2005,19 +1980,16 @@ static int processConfigurationFile(char *infile, struct Input *in) case 4: /* DIMENSION-SIZES */ if (in->configOptionVector[DIM] == 1) { (void) HDfprintf(stderr, err7a, infile); - HDfclose(strm); - return (-1); + goto error; } if (in->configOptionVector[RANK] == 0) { (void) HDfprintf(stderr, err7b, infile); - HDfclose(strm); - return (-1); + goto error; } if (getDimensionSizes(in, strm) == -1) { (void) HDfprintf(stderr, err7c, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[DIM] = 1; break; @@ -2025,14 +1997,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 5: /* OUTPUT-CLASS */ if (in->configOptionVector[OUTPUT_CLASS] == 1) { (void) HDfprintf(stderr, err8a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getOutputClass(in, strm) == -1) { (void) HDfprintf(stderr, err8b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[OUTPUT_CLASS] = 1; break; @@ -2040,14 +2010,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 6: /* OUTPUT-SIZE */ if (in->configOptionVector[OUTPUT_SIZE] == 1) { (void) HDfprintf(stderr, err9a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getOutputSize(in, strm) == -1) { (void) HDfprintf(stderr, err9b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[OUTPUT_SIZE] = 1; break; @@ -2055,14 +2023,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 7: /* OUTPUT-ARCHITECTURE */ if (in->configOptionVector[OUTPUT_ARCH] == 1) { (void) HDfprintf(stderr, err10a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getOutputArchitecture(in, strm) == -1) { (void) HDfprintf(stderr, err10b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[OUTPUT_ARCH] = 1; break; @@ -2070,14 +2036,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 8: /* OUTPUT-BYTE-ORDER */ if (in->configOptionVector[OUTPUT_B_ORDER] == 1) { (void) HDfprintf(stderr, err11a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getOutputByteOrder(in, strm) == -1) { (void) HDfprintf(stderr, err11b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[OUTPUT_B_ORDER] = 1; break; @@ -2085,20 +2049,17 @@ static int processConfigurationFile(char *infile, struct Input *in) case 9: /* CHUNKED-DIMENSION-SIZES */ if (in->configOptionVector[CHUNK] == 1) { (void) HDfprintf(stderr, err12a, infile); - HDfclose(strm); - return (-1); + goto error; } /* cant appear before dimension sizes have been provided */ if (in->configOptionVector[DIM] == 0) { (void) HDfprintf(stderr, err12b, infile); - HDfclose(strm); - return (-1); + goto error; } if (getChunkedDimensionSizes(in, strm) == -1) { (void) HDfprintf(stderr, err12c, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[CHUNK] = 1; break; @@ -2106,14 +2067,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 10: /* COMPRESSION-TYPE */ if (in->configOptionVector[COMPRESS] == 1) { (void) HDfprintf(stderr, err13a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getCompressionType(in, strm) == -1) { (void) HDfprintf(stderr, err13b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[COMPRESS] = 1; @@ -2126,14 +2085,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 11: /* COMPRESSION-PARAM */ if (in->configOptionVector[COMPRESS_PARAM] == 1) { (void) HDfprintf(stderr, err14a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getCompressionParameter(in, strm) == -1) { (void) HDfprintf(stderr, err14b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[COMPRESS_PARAM] = 1; @@ -2146,14 +2103,12 @@ static int processConfigurationFile(char *infile, struct Input *in) case 12: /* EXTERNAL-STORAGE */ if (in->configOptionVector[EXTERNALSTORE] == 1) { (void) HDfprintf(stderr, err15a, infile); - HDfclose(strm); - return (-1); + goto error; } if (getExternalFilename(in, strm) == -1) { (void) HDfprintf(stderr, err15b, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[EXTERNALSTORE] = 1; break; @@ -2161,19 +2116,16 @@ static int processConfigurationFile(char *infile, struct Input *in) case 13: /* MAXIMUM-DIMENSIONS */ if (in->configOptionVector[EXTEND] == 1) { (void) HDfprintf(stderr, err16a, infile); - HDfclose(strm); - return (-1); + goto error; } /* cant appear before dimension sizes have been provided */ if (in->configOptionVector[DIM] == 0) { (void) HDfprintf(stderr, err16b, infile); - HDfclose(strm); - return (-1); + goto error; } if (getMaximumDimensionSizes(in, strm) == -1) { (void) HDfprintf(stderr, err16c, infile); - HDfclose(strm); - return (-1); + goto error; } in->configOptionVector[EXTEND] = 1; break; @@ -2192,11 +2144,16 @@ static int processConfigurationFile(char *infile, struct Input *in) if (validateConfigurationParameters(in) == -1) { (void) HDfprintf(stderr, err17, infile); - HDfclose(strm); - return (-1); + goto error; } - HDfclose(strm); - return (0); + + /* Set success return value */ + retval = 0; + +error: + if(strm) + HDfclose(strm); + return(retval); } static int validateConfigurationParameters(struct Input *in) @@ -3279,7 +3236,7 @@ static int getOutputArchitecture(struct Input *in, FILE *strm) return (0); } -static int OutputArchStrToInt(char *temp) +static int OutputArchStrToInt(const char *temp) { int i; char outputArchKeywordTable[8][15] = { "NATIVE", "STD", "IEEE", "INTEL", @@ -3311,7 +3268,7 @@ static int getOutputByteOrder(struct Input *in, FILE *strm) return (0); } -static int OutputByteOrderStrToInt(char *temp) +static int OutputByteOrderStrToInt(const char *temp) { int i; char outputByteOrderKeywordTable[2][15] = { "BE", "LE" }; @@ -3716,6 +3673,10 @@ hid_t createInputDataType(struct Input *in) case 64: new_type = H5Tcopy(H5T_NATIVE_LLONG); break; + + default: + (void) HDfprintf(stderr, "%s", err1); + return (-1); } break; @@ -3730,6 +3691,10 @@ hid_t createInputDataType(struct Input *in) case 64: new_type = H5Tcopy(H5T_NATIVE_DOUBLE); break; + + default: + (void) HDfprintf(stderr, "%s", err1); + return (-1); } break; @@ -3754,6 +3719,10 @@ hid_t createInputDataType(struct Input *in) case 64: new_type = H5Tcopy(H5T_NATIVE_ULLONG); break; + + default: + (void) HDfprintf(stderr, "%s", err1); + return (-1); } break; diff --git a/tools/h5import/h5import.h b/tools/h5import/h5import.h index c686624..c242483 100644 --- a/tools/h5import/h5import.h +++ b/tools/h5import/h5import.h @@ -191,43 +191,8 @@ void usage(char *); void setDefaultValues(struct Input *in, int count); void help(char *); -static int gtoken(char *s); -static int process(struct Options *opt); -static int processConfigurationFile(char *infile, struct Input *in); -static int mapKeywordToIndex(char *key); -static int parsePathInfo(struct path_info *path, char *strm); -static int parseDimensions(struct Input *in, char *strm); -static int getInputSize(struct Input *in, int ival); -static int getInputClass(struct Input *in, char * strm); -static int getInputClassType(struct Input *in, char * strm); -static int InputClassStrToInt(char *temp); -static int getRank(struct Input *in, FILE *strm); -static int getDimensionSizes(struct Input *in, FILE *strm); -static int getOutputSize(struct Input *in, FILE *strm); -static int getOutputClass(struct Input *in, FILE *strm); -static int OutputClassStrToInt(char *temp); -static int getOutputArchitecture(struct Input *in, FILE *strm); -static int OutputArchStrToInt(char *temp); -static int getOutputByteOrder(struct Input *in, FILE *strm); -static int OutputByteOrderStrToInt(char *temp); -static int getChunkedDimensionSizes(struct Input *in, FILE *strm); -static int getCompressionType(struct Input *in, FILE *strm); -static int CompressionTypeStrToInt(char *temp); -static int getCompressionParameter(struct Input *in, FILE *strm); -static int getExternalFilename(struct Input *in, FILE *strm); -static int getMaximumDimensionSizes(struct Input *in, FILE *strm); -static int processDataFile(char *infile, struct Input *in, hid_t file_id); -static int readIntegerData(FILE *strm, struct Input *in); -static int readFloatData(FILE *strm, struct Input *in); -static int allocateIntegerStorage(struct Input *in); -static int allocateFloatStorage(struct Input *in); hid_t createOutputDataType(struct Input *in); hid_t createInputDataType(struct Input *in); -static int readUIntegerData(FILE *strm, struct Input *in); -static int allocateUIntegerStorage(struct Input *in); -static int validateConfigurationParameters(struct Input *in); -static int processStrData(FILE *strm, struct Input *in, hid_t file_id); -static int processStrHDFData(FILE *strm, struct Input *in, hid_t file_id); #endif /* H5IMPORT_H__ */ diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt index 3ee1cba..7351fd5 100644 --- a/tools/h5repack/CMakeLists.txt +++ b/tools/h5repack/CMakeLists.txt @@ -800,6 +800,28 @@ ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONT ADD_H5_TEST (chunk2compa "TEST" h5repack_layout3.h5 -l chunk_unlimit1:COMPA) ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK) +#-------------------------------------------------------------------------- +# Test -f for some specific cases. Chunked dataset with unlimited max dims. +# (HDFFV-8012) +#-------------------------------------------------------------------------- +# - should not fail +# - should not change max dims from unlimit + +# chunk dim is bigger than dataset dim. ( dset size < 64k ) +ADD_H5_TEST (error1 "TEST" h5repack_layout3.h5 -f chunk_unlimit1:NONE) +ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED) + +# chunk dim is bigger than dataset dim. ( dset size > 64k ) +ADD_H5_TEST (error2 "TEST" h5repack_layout3.h5 -f chunk_unlimit2:NONE) +ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED) + +# chunk dims are smaller than dataset dims. ( dset size < 64k ) +ADD_H5_TEST (error3 "TEST" h5repack_layout3.h5 -f chunk_unlimit3:NONE) +ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED) + +# file input - should not fail +ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE) + # Native option # Do not use FILE1, as the named dtype will be converted to native, and h5diff will # report a difference. diff --git a/tools/h5repack/h5repack.c b/tools/h5repack/h5repack.c index 292f4ec..38a000a 100644 --- a/tools/h5repack/h5repack.c +++ b/tools/h5repack/h5repack.c @@ -95,6 +95,7 @@ h5repack_init(pack_opt_t *options, int verbose, H5F_file_space_type_t strategy, HDmemset(options, 0, sizeof(pack_opt_t)); options->min_comp = 1024; options->verbose = verbose; + options->layout_g = H5D_LAYOUT_ERROR; for ( n = 0; n < H5_REPACK_MAX_NFILTERS; n++) { diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in index 2614dd6..a732ffb 100644 --- a/tools/h5repack/h5repack.sh.in +++ b/tools/h5repack/h5repack.sh.in @@ -818,6 +818,27 @@ VERIFY_LAYOUT_DSET h5repack_layout3.h5 chunk_unlimit1 CONTI TOOLTEST_MAIN h5repack_layout3.h5 -l chunk_unlimit1:COMPA VERIFY_LAYOUT_DSET h5repack_layout3.h5 chunk_unlimit1 CHUNK +#-------------------------------------------------------------------------- +# Test -f for some specific cases. Chunked dataset with unlimited max dims. +# (HDFFV-8012) +#-------------------------------------------------------------------------- +# - should not fail +# - should not change max dims from unlimit + +# chunk dim is bigger than dataset dim. ( dset size < 64k ) +TOOLTEST_MAIN h5repack_layout3.h5 -f chunk_unlimit1:NONE +VERIFY_LAYOUT_DSET h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED +# chunk dim is bigger than dataset dim. ( dset size > 64k ) +TOOLTEST_MAIN h5repack_layout3.h5 -f chunk_unlimit2:NONE +VERIFY_LAYOUT_DSET h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED + +# chunk dims are smaller than dataset dims. ( dset size < 64k ) +TOOLTEST_MAIN h5repack_layout3.h5 -f chunk_unlimit3:NONE +VERIFY_LAYOUT_DSET h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED + +# file input - should not fail +TOOLTEST h5repack_layout3.h5 -f NONE + # Native option # Do not use FILE1, as the named dtype will be converted to native, and h5diff will # report a difference. diff --git a/tools/h5repack/h5repack_copy.c b/tools/h5repack/h5repack_copy.c index cf55d7f..02337fd 100644 --- a/tools/h5repack/h5repack_copy.c +++ b/tools/h5repack/h5repack_copy.c @@ -773,6 +773,7 @@ int do_copy_objects(hid_t fidin, void *hslab_buf=NULL; /* hyperslab buffer for raw data */ int has_filter; /* current object has a filter */ int req_filter; /* there was a request for a filter */ + int req_obj_layout=0; /* request layout to current object */ unsigned crt_order_flags; /* group creation order flag */ unsigned i; unsigned u; @@ -904,6 +905,22 @@ int do_copy_objects(hid_t fidin, } } + /* check if layout change requested individual object */ + if (options->layout_g != H5D_LAYOUT_ERROR) + { + pack_info_t *pckinfo; + /* any dataset is specified */ + if (options->op_tbl->nelems > 0) + { + /* check if object exist */ + pckinfo = options_get_object (travt->objs[i].name, options->op_tbl); + if (pckinfo) + { + req_obj_layout = 1; + } + } + } + /* early detection of references */ if((dset_in = H5Dopen2(fidin, travt->objs[i].name, H5P_DEFAULT)) < 0) goto error; @@ -1023,6 +1040,9 @@ int do_copy_objects(hid_t fidin, goto error; } + /* only if layout change requested for entire file or + * individual obj */ + if (options->all_layout > 0 || req_obj_layout == 1) /*------------------------------------------------- * Unset the unlimited max dims if convert to other * than chunk layouts, because unlimited max dims diff --git a/tools/h5repack/h5repacktst.c b/tools/h5repack/h5repacktst.c index 4f1707b..791e268 100644 --- a/tools/h5repack/h5repacktst.c +++ b/tools/h5repack/h5repacktst.c @@ -3104,65 +3104,119 @@ out: */ #define DIM1_L3 300 #define DIM2_L3 200 +/* small size */ +#define SDIM1_L3 4 +#define SDIM2_L3 50 static int make_layout3(hid_t loc_id) { - hid_t dcpl=-1; /* dataset creation property list */ - hid_t sid=-1; /* dataspace ID */ - hsize_t dims[RANK]={DIM1_L3,DIM2_L3}; + hid_t dcpl1=-1; /* dataset creation property list */ + hid_t dcpl2=-1; /* dataset creation property list */ + hid_t dcpl3=-1; /* dataset creation property list */ + hid_t sid1=-1; /* dataspace ID */ + hid_t sid2=-1; /* dataspace ID */ + hsize_t dims1[RANK]={DIM1_L3,DIM2_L3}; + hsize_t dims2[RANK]={SDIM1_L3,SDIM2_L3}; hsize_t maxdims[RANK]={H5S_UNLIMITED, H5S_UNLIMITED}; - hsize_t chunk_dims[RANK]={DIM1_L3*2,5}; - int buf[DIM1_L3][DIM2_L3]; + hsize_t chunk_dims1[RANK]={DIM1_L3*2,5}; + hsize_t chunk_dims2[RANK]={SDIM1_L3 + 2, SDIM2_L3/2}; + hsize_t chunk_dims3[RANK]={SDIM1_L3 - 2, SDIM2_L3/2}; + int buf1[DIM1_L3][DIM2_L3]; + int buf2[SDIM1_L3][SDIM2_L3]; int i, j, n; + /* init buf1 */ for (i=n=0; im_verbose || options->m_report) { @@ -1737,6 +1743,22 @@ hsize_t diff(hid_t file1_id, print_found(nfound); } } + + + /*--------------------------------------------------------- + * compare attributes + * if condition refers to cases when the dataset is a + * referenced object + *--------------------------------------------------------- + */ + if(path1) + nfound += diff_attr(dset1_id, dset2_id, path1, path2, options); + + + if(H5Dclose(dset1_id) < 0) + goto out; + if(H5Dclose(dset2_id) < 0) + goto out; break; /*---------------------------------------------------------------------- diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index 144159a..130a0d8 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -207,6 +207,12 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t table_lp->nattrs_only2++; curr2++; } + + /* close for next turn */ + H5Aclose(attr1_id); + attr1_id = -1; + H5Aclose(attr2_id); + attr2_id = -1; } /* end while */ /* list1 did not end */ @@ -225,6 +231,10 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t table_attr_mark_exist(infile, name1, table_lp); table_lp->nattrs_only1++; curr1++; + + /* close for next turn */ + H5Aclose(attr1_id); + attr1_id = -1; } /* list2 did not end */ @@ -243,6 +253,9 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t table_attr_mark_exist(infile, name2, table_lp); table_lp->nattrs_only2++; curr2++; + + /* close for next turn */ + H5Aclose(attr2_id); } /*------------------------------------------------------ @@ -272,6 +285,11 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t return 0; error: + if (0 < attr1_id) + H5Aclose(attr1_id); + if (0 < attr2_id) + H5Aclose(attr2_id); + return -1; } diff --git a/tools/lib/h5diff_dset.c b/tools/lib/h5diff_dset.c index f9c7d1c..f6e6329 100644 --- a/tools/lib/h5diff_dset.c +++ b/tools/lib/h5diff_dset.c @@ -507,14 +507,6 @@ hsize_t diff_datasetid( hid_t did1, } /* hyperslab read */ } /*can_compare*/ - /*------------------------------------------------------------------------- - * compare attributes - * the if condition refers to cases when the dataset is a referenced object - *------------------------------------------------------------------------- - */ - h5difftrace("compare attributes?\n"); - if(obj1_name) - nfound += diff_attr(did1,did2,obj1_name,obj2_name,options); /*------------------------------------------------------------------------- * close diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h index 3e3a4cf..4fbd84f 100644 --- a/tools/lib/h5tools.h +++ b/tools/lib/h5tools.h @@ -435,7 +435,7 @@ typedef struct h5tool_format_t { * indentlevel: a string that shows how far to indent if extra spacing * is needed. dumper uses it. */ - int line_ncols; /*columns of output */ + unsigned line_ncols; /*columns of output */ size_t line_per_line; /*max elements per line */ const char *line_pre; /*prefix at front of each line */ const char *line_1st; /*alternate pre. on first line */ diff --git a/tools/misc/talign.c b/tools/misc/talign.c index b77d846..017eb55 100644 --- a/tools/misc/talign.c +++ b/tools/misc/talign.c @@ -23,6 +23,7 @@ #include "hdf5.h" #include "H5private.h" +#include "h5tools.h" const char *fname = "talign.h5"; const char *setname = "align"; @@ -46,8 +47,8 @@ int main(void) hsize_t cdim[4]; char string5[5]; - float fok[2] = {1234., 2341.}; - float fnok[2] = {5678., 6785.}; + float fok[2] = {1234.0f, 2341.0f}; + float fnok[2] = {5678.0f, 6785.0f}; float *fptr; char *data = NULL; @@ -125,7 +126,7 @@ int main(void) H5Dclose(set); /* Now open the set, and read it back in */ - data = malloc(H5Tget_size(fix)); + data = (char *)malloc(H5Tget_size(fix)); if(!data) { perror("malloc() failed"); @@ -159,8 +160,8 @@ out: "%14s (%2d) %6f = %f\n" " %6f = %f\n", mname ? mname : "(null)", (int)H5Tget_member_offset(fix,1), - fok[0], fptr[0], - fok[1], fptr[1]); + (double)fok[0], (double)fptr[0], + (double)fok[1], (double)fptr[1]); if(mname) free(mname); @@ -169,8 +170,8 @@ out: printf("%14s (%2d) %6f = %f\n" " %6f = %6f\n", mname ? mname : "(null)", (int)H5Tget_member_offset(fix,2), - fnok[0], fptr[0], - fnok[1], fptr[1]); + (double)fnok[0], (double)fptr[0], + (double)fnok[1], (double)fptr[1]); if(mname) free(mname); @@ -181,10 +182,10 @@ out: " %6f = %f\n" " %6f = %f\n" " %6f = %f\n", - fok[0], fptr[0], - fok[1], fptr[1], - fnok[0], fptr[2], - fnok[1], fptr[3]); + (double)fok[0], (double)fptr[0], + (double)fok[1], (double)fptr[1], + (double)fnok[0], (double)fptr[2], + (double)fnok[1], (double)fptr[3]); puts("*FAILED - compound type alignmnent problem*"); } else { puts(" PASSED"); diff --git a/tools/testfiles/tscalarattrintsize.ddl b/tools/testfiles/tscalarattrintsize.ddl new file mode 100644 index 0000000..46f3cef --- /dev/null +++ b/tools/testfiles/tscalarattrintsize.ddl @@ -0,0 +1,130 @@ +HDF5 "tscalarattrintsize.h5" { +GROUP "/" { + ATTRIBUTE "DS08BITS" { + DATATYPE H5T_ARRAY { [8][8] H5T_STD_I8LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, + -2, -4, -8, -16, -32, -64, -128, 0, + -4, -8, -16, -32, -64, -128, 0, 0, + -8, -16, -32, -64, -128, 0, 0, 0, + -16, -32, -64, -128, 0, 0, 0, 0, + -32, -64, -128, 0, 0, 0, 0, 0, + -64, -128, 0, 0, 0, 0, 0, 0, + -128, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DS16BITS" { + DATATYPE H5T_ARRAY { [8][16] H5T_STD_I16LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, + -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, + -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, + -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, + -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, + -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, + -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0, + -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DS32BITS" { + DATATYPE H5T_ARRAY { [8][32] H5T_STD_I32LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, + -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, + -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, + -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, + -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, + -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, + -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, + -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DS64BITS" { + DATATYPE H5T_ARRAY { [8][64] H5T_STD_I64LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, + -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, + -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, + -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, + -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, + -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, + -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, + -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DU08BITS" { + DATATYPE H5T_ARRAY { [8][8] H5T_STD_U8LE } + DATASPACE SCALAR + DATA { + (0): [ 255, 254, 252, 248, 240, 224, 192, 128, + 254, 252, 248, 240, 224, 192, 128, 0, + 252, 248, 240, 224, 192, 128, 0, 0, + 248, 240, 224, 192, 128, 0, 0, 0, + 240, 224, 192, 128, 0, 0, 0, 0, + 224, 192, 128, 0, 0, 0, 0, 0, + 192, 128, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DU16BITS" { + DATATYPE H5T_ARRAY { [8][16] H5T_STD_U16LE } + DATASPACE SCALAR + DATA { + (0): [ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, + 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, + 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, + 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, + 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, + 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, + 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, + 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DU32BITS" { + DATATYPE H5T_ARRAY { [8][32] H5T_STD_U32LE } + DATASPACE SCALAR + DATA { + (0): [ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, + 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, + 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, + 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, + 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, + 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, + 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, + 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DU64BITS" { + DATATYPE H5T_ARRAY { [8][64] H5T_STD_U64LE } + DATASPACE SCALAR + DATA { + (0): [ 18446744073709551615, 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, + 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, + 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, + 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, + 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, + 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, + 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0, + 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ] + } + } + ATTRIBUTE "DummyDBL" { + DATATYPE H5T_ARRAY { [8][8] H5T_IEEE_F64LE } + DATASPACE SCALAR + DATA { + (0): [ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007, + 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007, + 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007, + 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007, + 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007, + 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007, + 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007, + 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 ] + } + } +} +} diff --git a/tools/testfiles/tscalarattrintsize.h5 b/tools/testfiles/tscalarattrintsize.h5 new file mode 100644 index 0000000..df91f54 Binary files /dev/null and b/tools/testfiles/tscalarattrintsize.h5 differ diff --git a/tools/testfiles/tscalarintsize.ddl b/tools/testfiles/tscalarintsize.ddl new file mode 100644 index 0000000..4b06a74 --- /dev/null +++ b/tools/testfiles/tscalarintsize.ddl @@ -0,0 +1,130 @@ +HDF5 "tscalarintsize.h5" { +GROUP "/" { + DATASET "DS08BITS" { + DATATYPE H5T_ARRAY { [8][8] H5T_STD_I8LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, + -2, -4, -8, -16, -32, -64, -128, 0, + -4, -8, -16, -32, -64, -128, 0, 0, + -8, -16, -32, -64, -128, 0, 0, 0, + -16, -32, -64, -128, 0, 0, 0, 0, + -32, -64, -128, 0, 0, 0, 0, 0, + -64, -128, 0, 0, 0, 0, 0, 0, + -128, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DS16BITS" { + DATATYPE H5T_ARRAY { [8][16] H5T_STD_I16LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, + -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, + -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, + -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, + -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, + -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, + -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0, + -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DS32BITS" { + DATATYPE H5T_ARRAY { [8][32] H5T_STD_I32LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, + -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, + -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, + -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, + -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, + -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, + -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, + -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DS64BITS" { + DATATYPE H5T_ARRAY { [8][64] H5T_STD_I64LE } + DATASPACE SCALAR + DATA { + (0): [ -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, + -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, + -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, + -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, + -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, + -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, + -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, + -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304, -8388608, -16777216, -33554432, -67108864, -134217728, -268435456, -536870912, -1073741824, -2147483648, -4294967296, -8589934592, -17179869184, -34359738368, -68719476736, -137438953472, -274877906944, -549755813888, -1099511627776, -2199023255552, -4398046511104, -8796093022208, -17592186044416, -35184372088832, -70368744177664, -140737488355328, -281474976710656, -562949953421312, -1125899906842624, -2251799813685248, -4503599627370496, -9007199254740992, -18014398509481984, -36028797018963968, -72057594037927936, -144115188075855872, -288230376151711744, -576460752303423488, -1152921504606846976, -2305843009213693952, -4611686018427387904, -9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DU08BITS" { + DATATYPE H5T_ARRAY { [8][8] H5T_STD_U8LE } + DATASPACE SCALAR + DATA { + (0): [ 255, 254, 252, 248, 240, 224, 192, 128, + 254, 252, 248, 240, 224, 192, 128, 0, + 252, 248, 240, 224, 192, 128, 0, 0, + 248, 240, 224, 192, 128, 0, 0, 0, + 240, 224, 192, 128, 0, 0, 0, 0, + 224, 192, 128, 0, 0, 0, 0, 0, + 192, 128, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DU16BITS" { + DATATYPE H5T_ARRAY { [8][16] H5T_STD_U16LE } + DATASPACE SCALAR + DATA { + (0): [ 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, + 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, + 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, + 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, + 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, + 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, + 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, + 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DU32BITS" { + DATATYPE H5T_ARRAY { [8][32] H5T_STD_U32LE } + DATASPACE SCALAR + DATA { + (0): [ 4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, + 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, + 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, + 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, + 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, + 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, + 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, + 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528, 4294901760, 4294836224, 4294705152, 4294443008, 4293918720, 4292870144, 4290772992, 4286578688, 4278190080, 4261412864, 4227858432, 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DU64BITS" { + DATATYPE H5T_ARRAY { [8][64] H5T_STD_U64LE } + DATASPACE SCALAR + DATA { + (0): [ 18446744073709551615, 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, + 18446744073709551614, 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, + 18446744073709551612, 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, + 18446744073709551608, 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, + 18446744073709551600, 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, + 18446744073709551584, 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, + 18446744073709551552, 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0, + 18446744073709551488, 18446744073709551360, 18446744073709551104, 18446744073709550592, 18446744073709549568, 18446744073709547520, 18446744073709543424, 18446744073709535232, 18446744073709518848, 18446744073709486080, 18446744073709420544, 18446744073709289472, 18446744073709027328, 18446744073708503040, 18446744073707454464, 18446744073705357312, 18446744073701163008, 18446744073692774400, 18446744073675997184, 18446744073642442752, 18446744073575333888, 18446744073441116160, 18446744073172680704, 18446744072635809792, 18446744071562067968, 18446744069414584320, 18446744065119617024, 18446744056529682432, 18446744039349813248, 18446744004990074880, 18446743936270598144, 18446743798831644672, 18446743523953737728, 18446742974197923840, 18446741874686296064, 18446739675663040512, 18446735277616529408, 18446726481523507200, 18446708889337462784, 18446673704965373952, 18446603336221196288, 18446462598732840960, 18446181123756130304, 18445618173802708992, 18444492273895866368, 18442240474082181120, 18437736874454810624, 18428729675200069632, 18410715276690587648, 18374686479671623680, 18302628885633695744, 18158513697557839872, 17870283321406128128, 17293822569102704640, 16140901064495857664, 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0, 0, 0 ] + } + } + DATASET "DummyDBL" { + DATATYPE H5T_ARRAY { [8][8] H5T_IEEE_F64LE } + DATASPACE SCALAR + DATA { + (0): [ 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007, + 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007, + 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007, + 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007, + 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007, + 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007, + 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007, + 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007 ] + } + } +} +} diff --git a/tools/testfiles/tscalarintsize.h5 b/tools/testfiles/tscalarintsize.h5 new file mode 100644 index 0000000..5a82378 Binary files /dev/null and b/tools/testfiles/tscalarintsize.h5 differ diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index 0427ab6..a4053df 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -502,7 +502,7 @@ #define H5_PACKAGE_NAME "HDF5" /* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.128" +#define H5_PACKAGE_STRING "HDF5 1.9.132" /* Define to the one symbol short name of this package. */ #define H5_PACKAGE_TARNAME "hdf5" @@ -511,7 +511,7 @@ #define H5_PACKAGE_URL "" /* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.128" +#define H5_PACKAGE_VERSION "1.9.132" /* Width for printf() for type `long long' or `__int64', use `ll' */ #define H5_PRINTF_LL_WIDTH "ll" @@ -674,7 +674,7 @@ /* #undef H5_USING_MEMCHECKER */ /* Version number of package */ -#define H5_VERSION "1.9.128" +#define H5_VERSION "1.9.132" /* Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed */ diff --git a/windows/COPYING b/windows/COPYING deleted file mode 100644 index 6903daf..0000000 --- a/windows/COPYING +++ /dev/null @@ -1,16 +0,0 @@ - - Copyright by The HDF Group and - The Board of Trustees of the University of Illinois. - All rights reserved. - - The files and subdirectories in this directory are part of HDF5. - The full HDF5 copyright notice, including terms governing use, - modification, and redistribution, is contained in the files COPYING - and Copyright.html. COPYING can be found at the root of the source - code distribution tree; Copyright.html can be found at the root - level of an installed copy of the electronic HDF5 document set and - is linked from the top-level documents page. It can also be found - at http://www.hdfgroup.org/HDF5/doc/Copyright.html. If you do not - have access to either file, you may request a copy from - help@hdfgroup.org. - diff --git a/windows/InstallExamples.bat b/windows/InstallExamples.bat deleted file mode 100755 index 5316f5d..0000000 --- a/windows/InstallExamples.bat +++ /dev/null @@ -1,99 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - - -@ECHO OFF -REM This batch file is used to install HDF5 C examples' -REM executable files. -REM By Xuan Bai -REM Created on: 9/20/2004 -REM Last Modified: 10/27/2004 - -cd examples - -mkdir examplesREL -mkdir examplesRELDLL - -cd attributetest -copy release\attributetest.exe ..\examplesREL\ -cd .. - -cd attributetestdll -opy release\attributetestdll.exe ..\examplesRELDLL\ -cd .. - -cd chunkread -copy release\chunkread.exe ..\examplesREL\ -cd .. - -cd chunkreaddll -copy release\chunkreaddll.exe ..\examplesRELDLL\ -cd .. - -cd compoundtest -copy release\compoundtest.exe ..\examplesREL\ -cd .. - -cd compoundtestdll -copy release\compoundtestdll.exe ..\examplesRELDLL\ -cd .. - -cd extendwritetest -copy release\extendwritetest.exe ..\examplesREL\ -cd .. - -cd extendwritetestdll -copy release\extendwritetestdll.exe ..\examplesRELDLL\ -cd .. - -cd grouptest -copy release\grouptest.exe ..\examplesREL\ -cd .. - -cd grouptestdll -copy release\grouptestdll.exe ..\examplesRELDLL\ -cd .. - -cd intermgrouptest -copy release\intermgrouptest.exe ..\examplesREL\ -cd .. - -cd intermgrouptestdll -copy release\intermgrouptestdll.exe ..\examplesRELDLL\ -cd .. - -cd readtest -copy release\readtest.exe ..\examplesREL\ -cd .. - -cd readtestdll -copy release\readtestdll.exe ..\examplesRELDLL\ -cd .. - -cd selectest -copy release\selectest.exe ..\examplesREL\ -cd .. - -cd selectestdll -copy release\selectestdll.exe ..\examplesRELDLL\ -cd .. - -cd writetest -copy release\writetest.exe ..\examplesREL\ -cd .. - -cd writetestdll -copy release\writetestdll.exe ..\examplesRELDLL\ -cd .. - -cd .. \ No newline at end of file diff --git a/windows/InstallcppExamples.BAT b/windows/InstallcppExamples.BAT deleted file mode 100755 index fb0f800..0000000 --- a/windows/InstallcppExamples.BAT +++ /dev/null @@ -1,83 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - - -@ECHO OFF -REM This batch file is used to install HDF5 C++ examples' -REM executable files. -REM By Xuan Bai -REM Created on: 10/20/2004 -REM Last Modified: 10/27/2004 - -cd c++\examples - -mkdir cppexamplesREL -mkdir cppexamplesRELDLL - -cd chunkstest -copy release\chunkstest.exe ..\cppexamplesREL\ -cd .. - -cd chunkstestdll -copy release\chunkstestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd compoundtest -copy release\compoundtest.exe ..\cppexamplesREL\ -cd .. - -cd compoundtestdll -copy release\compoundtestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd createtest -copy release\createtest.exe ..\cppexamplesREL\ -cd .. - -cd createtestdll -copy release\createtestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd extend_dstest -copy release\extend_dstest.exe ..\cppexamplesREL\ -cd .. - -cd extend_dstestdll -copy release\extend_dstestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd h5grouptest -copy release\h5grouptest.exe ..\cppexamplesREL\ -cd .. - -cd h5grouptestdll -copy release\h5grouptestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd readdatatest -copy release\readdatatest.exe ..\cppexamplesREL\ -cd .. - -cd readdatatestdll -copy release\readdatatestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd writedatatest -copy release\writedatatest.exe ..\cppexamplesREL\ -cd .. - -cd writedatatestdll -copy release\writedatatestdll.exe ..\cppexamplesRELDLL\ -cd .. - -cd ..\.. diff --git a/windows/Installf90Examples.BAT b/windows/Installf90Examples.BAT deleted file mode 100755 index 535cec1..0000000 --- a/windows/Installf90Examples.BAT +++ /dev/null @@ -1,140 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - - - -@ECHO OFF -REM This batch file is used to install HDF5 Fortran examples' -REM executable files. -REM By Xuan Bai -REM Created on: 10/20/2004 -REM Last Modified: 10/28/2004 - -cd fortran\examples - -mkdir f90examplesREL -mkdir f90examplesRELDLL - -cd attreexampletest -copy release\attreexampletest.exe ..\f90examplesREL\ -cd .. - -cd attreexampletestdll -copy release\attreexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd compoundtest -copy release\compoundtest.exe ..\f90examplesREL\ -cd .. - -cd compoundtestdll -copy release\compoundtestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd dsetexampletest -copy release\dsetexampletest.exe ..\f90examplesREL\ -cd .. - -cd dsetexampletestdll -copy release\dsetexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd fileexampletest -copy release\fileexampletest.exe ..\f90examplesREL\ -cd .. - -cd fileexampletestdll -copy release\fileexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd groupexampletest -copy release\groupexampletest.exe ..\f90examplesREL\ -cd .. - -cd groupexampletestdll -copy release\groupexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd grpdsetexampletest -copy release\grpdsetexampletest.exe ..\f90examplesREL\ -cd .. - -cd grpdsetexampletestdll -copy release\grpdsetexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd grpittest -copy release\grpittest.exe ..\f90examplesREL\ -cd .. - -cd grpittestdll -copy release\grpittestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd grpsexampletest -copy release\grpsexampletest.exe ..\f90examplesREL\ -cd .. - -cd grpsexampletestdll -copy release\grpsexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd hyperslabtest -copy release\hyperslabtest.exe ..\f90examplesREL\ -cd .. - -cd hyperslabtestdll -copy release\hyperslabtestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd mountexampletest -copy release\mountexampletest.exe ..\f90examplesREL\ -cd .. - -cd mountexampletestdll -copy release\mountexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd refobjexampletest -copy release\refobjexampletest.exe ..\f90examplesREL\ -cd .. - -cd refobjexampletestdll -copy release\refobjexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd refregexampletest -copy release\refregexampletest.exe ..\f90examplesREL\ -cd .. - -cd refregexampletestdll -copy release\refregexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd rwdsetexampletest -copy release\rwdsetexampletest.exe ..\f90examplesREL\ -cd .. - -cd rwdsetexampletestdll -copy release\rwdsetexampletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd selecteletest -copy release\selecteletest.exe ..\f90examplesREL\ -cd .. - -cd selecteletestdll -copy release\selecteletestdll.exe ..\f90examplesRELDLL\ -cd .. - -cd ..\.. \ No newline at end of file diff --git a/windows/c++/examples/allcppexamples/allcppexamples.sln b/windows/c++/examples/allcppexamples/allcppexamples.sln deleted file mode 100644 index ff05007..0000000 --- a/windows/c++/examples/allcppexamples/allcppexamples.sln +++ /dev/null @@ -1,181 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "allcppexamples", "allcppexamples.vcproj", "{27E3886B-0BAC-4E00-8F89-163208E03462}" - ProjectSection(ProjectDependencies) = postProject - {7AABEE0C-3749-49C6-B951-5081BE817897} = {7AABEE0C-3749-49C6-B951-5081BE817897} - {562DA812-6FD9-424A-BC3E-044362DC93C1} = {562DA812-6FD9-424A-BC3E-044362DC93C1} - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC} = {9C900514-5BB2-4BA2-B5DF-5FD8572982DC} - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309} = {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309} - {798DE42A-5B27-4B33-B54A-58D45EFD600B} = {798DE42A-5B27-4B33-B54A-58D45EFD600B} - {F144F936-D02D-4859-9FAA-FED36AC8A0C4} = {F144F936-D02D-4859-9FAA-FED36AC8A0C4} - {1D870142-6627-41ED-95C3-31CF9783FE70} = {1D870142-6627-41ED-95C3-31CF9783FE70} - {B187A146-D60D-4587-90F5-A501E4B826A6} = {B187A146-D60D-4587-90F5-A501E4B826A6} - {C75DC585-7E3D-472D-AB77-EAE48876FA8C} = {C75DC585-7E3D-472D-AB77-EAE48876FA8C} - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C} = {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C} - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD} = {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD} - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411} = {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411} - {051AA0B9-BC9B-4732-BE21-F3949C6A179B} = {051AA0B9-BC9B-4732-BE21-F3949C6A179B} - {1F74A3E0-276B-4A85-BBB0-3421434D5946} = {1F74A3E0-276B-4A85-BBB0-3421434D5946} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunkstest", "..\chunkstest\chunkstest.vcproj", "{9C900514-5BB2-4BA2-B5DF-5FD8572982DC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunkstestdll", "..\chunkstestdll\chunkstestdll.vcproj", "{1D870142-6627-41ED-95C3-31CF9783FE70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compoundtest", "..\compoundtest\compoundtest.vcproj", "{8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compoundtestdll", "..\compoundtestdll\compoundtestdll.vcproj", "{F144F936-D02D-4859-9FAA-FED36AC8A0C4}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "createtest", "..\createtest\createtest.vcproj", "{B187A146-D60D-4587-90F5-A501E4B826A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "createtestdll", "..\createtestdll\createtestdll.vcproj", "{AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extend_dstest", "..\extend_dstest\extend_dstest.vcproj", "{1F74A3E0-276B-4A85-BBB0-3421434D5946}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extend_dstestdll", "..\extend_dstestdll\extend_dstestdll.vcproj", "{DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5grouptest", "..\h5grouptest\h5grouptest.vcproj", "{798DE42A-5B27-4B33-B54A-58D45EFD600B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5grouptestdll", "..\h5grouptestdll\h5grouptestdll.vcproj", "{7AABEE0C-3749-49C6-B951-5081BE817897}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readdatatest", "..\readdatatest\readdatatest.vcproj", "{C75DC585-7E3D-472D-AB77-EAE48876FA8C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readdatatestdll", "..\readdatatestdll\readdatatestdll.vcproj", "{051AA0B9-BC9B-4732-BE21-F3949C6A179B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "writedatatest", "..\writedatatest\writedatatest.vcproj", "{8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "writedatatestdll", "..\writedatatestdll\writedatatestdll.vcproj", "{562DA812-6FD9-424A-BC3E-044362DC93C1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {27E3886B-0BAC-4E00-8F89-163208E03462}.Debug|Win32.ActiveCfg = Debug|Win32 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Debug|Win32.Build.0 = Debug|Win32 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Debug|x64.ActiveCfg = Debug|x64 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Debug|x64.Build.0 = Debug|x64 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Release|Win32.ActiveCfg = Release|Win32 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Release|Win32.Build.0 = Release|Win32 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Release|x64.ActiveCfg = Release|x64 - {27E3886B-0BAC-4E00-8F89-163208E03462}.Release|x64.Build.0 = Release|x64 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Debug|Win32.ActiveCfg = Debug|Win32 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Debug|Win32.Build.0 = Debug|Win32 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Debug|x64.ActiveCfg = Debug|x64 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Debug|x64.Build.0 = Debug|x64 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Release|Win32.ActiveCfg = Release|Win32 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Release|Win32.Build.0 = Release|Win32 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Release|x64.ActiveCfg = Release|x64 - {9C900514-5BB2-4BA2-B5DF-5FD8572982DC}.Release|x64.Build.0 = Release|x64 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Debug|Win32.ActiveCfg = Debug|Win32 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Debug|Win32.Build.0 = Debug|Win32 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Debug|x64.ActiveCfg = Debug|x64 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Debug|x64.Build.0 = Debug|x64 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Release|Win32.ActiveCfg = Release|Win32 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Release|Win32.Build.0 = Release|Win32 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Release|x64.ActiveCfg = Release|x64 - {1D870142-6627-41ED-95C3-31CF9783FE70}.Release|x64.Build.0 = Release|x64 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Debug|Win32.ActiveCfg = Debug|Win32 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Debug|Win32.Build.0 = Debug|Win32 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Debug|x64.ActiveCfg = Debug|x64 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Debug|x64.Build.0 = Debug|x64 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Release|Win32.ActiveCfg = Release|Win32 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Release|Win32.Build.0 = Release|Win32 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Release|x64.ActiveCfg = Release|x64 - {8CD35A8A-1D59-4ACE-B684-A7FD9952A45C}.Release|x64.Build.0 = Release|x64 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Debug|Win32.ActiveCfg = Debug|Win32 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Debug|Win32.Build.0 = Debug|Win32 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Debug|x64.ActiveCfg = Debug|x64 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Debug|x64.Build.0 = Debug|x64 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Release|Win32.ActiveCfg = Release|Win32 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Release|Win32.Build.0 = Release|Win32 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Release|x64.ActiveCfg = Release|x64 - {F144F936-D02D-4859-9FAA-FED36AC8A0C4}.Release|x64.Build.0 = Release|x64 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Debug|Win32.Build.0 = Debug|Win32 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Debug|x64.ActiveCfg = Debug|x64 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Debug|x64.Build.0 = Debug|x64 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Release|Win32.ActiveCfg = Release|Win32 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Release|Win32.Build.0 = Release|Win32 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Release|x64.ActiveCfg = Release|x64 - {B187A146-D60D-4587-90F5-A501E4B826A6}.Release|x64.Build.0 = Release|x64 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Debug|Win32.ActiveCfg = Debug|Win32 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Debug|Win32.Build.0 = Debug|Win32 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Debug|x64.ActiveCfg = Debug|x64 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Debug|x64.Build.0 = Debug|x64 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Release|Win32.ActiveCfg = Release|Win32 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Release|Win32.Build.0 = Release|Win32 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Release|x64.ActiveCfg = Release|x64 - {AC1F5EA5-2256-4E27-8D56-D9A5AA71F411}.Release|x64.Build.0 = Release|x64 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Debug|Win32.ActiveCfg = Debug|Win32 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Debug|Win32.Build.0 = Debug|Win32 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Debug|x64.ActiveCfg = Debug|x64 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Debug|x64.Build.0 = Debug|x64 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Release|Win32.ActiveCfg = Release|Win32 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Release|Win32.Build.0 = Release|Win32 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Release|x64.ActiveCfg = Release|x64 - {1F74A3E0-276B-4A85-BBB0-3421434D5946}.Release|x64.Build.0 = Release|x64 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Debug|Win32.ActiveCfg = Debug|Win32 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Debug|Win32.Build.0 = Debug|Win32 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Debug|x64.ActiveCfg = Debug|x64 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Debug|x64.Build.0 = Debug|x64 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Release|Win32.ActiveCfg = Release|Win32 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Release|Win32.Build.0 = Release|Win32 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Release|x64.ActiveCfg = Release|x64 - {DA72AC9E-B53E-43B4-A9C1-A1E94F3733CD}.Release|x64.Build.0 = Release|x64 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Debug|Win32.ActiveCfg = Debug|Win32 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Debug|Win32.Build.0 = Debug|Win32 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Debug|x64.ActiveCfg = Debug|x64 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Debug|x64.Build.0 = Debug|x64 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Release|Win32.ActiveCfg = Release|Win32 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Release|Win32.Build.0 = Release|Win32 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Release|x64.ActiveCfg = Release|x64 - {798DE42A-5B27-4B33-B54A-58D45EFD600B}.Release|x64.Build.0 = Release|x64 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Debug|Win32.ActiveCfg = Debug|Win32 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Debug|Win32.Build.0 = Debug|Win32 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Debug|x64.ActiveCfg = Debug|x64 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Debug|x64.Build.0 = Debug|x64 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Release|Win32.ActiveCfg = Release|Win32 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Release|Win32.Build.0 = Release|Win32 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Release|x64.ActiveCfg = Release|x64 - {7AABEE0C-3749-49C6-B951-5081BE817897}.Release|x64.Build.0 = Release|x64 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Debug|Win32.ActiveCfg = Debug|Win32 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Debug|Win32.Build.0 = Debug|Win32 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Debug|x64.ActiveCfg = Debug|x64 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Debug|x64.Build.0 = Debug|x64 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Release|Win32.ActiveCfg = Release|Win32 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Release|Win32.Build.0 = Release|Win32 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Release|x64.ActiveCfg = Release|x64 - {C75DC585-7E3D-472D-AB77-EAE48876FA8C}.Release|x64.Build.0 = Release|x64 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Debug|Win32.ActiveCfg = Debug|Win32 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Debug|Win32.Build.0 = Debug|Win32 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Debug|x64.ActiveCfg = Debug|x64 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Debug|x64.Build.0 = Debug|x64 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Release|Win32.ActiveCfg = Release|Win32 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Release|Win32.Build.0 = Release|Win32 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Release|x64.ActiveCfg = Release|x64 - {051AA0B9-BC9B-4732-BE21-F3949C6A179B}.Release|x64.Build.0 = Release|x64 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Debug|Win32.ActiveCfg = Debug|Win32 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Debug|Win32.Build.0 = Debug|Win32 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Debug|x64.ActiveCfg = Debug|x64 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Debug|x64.Build.0 = Debug|x64 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Release|Win32.ActiveCfg = Release|Win32 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Release|Win32.Build.0 = Release|Win32 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Release|x64.ActiveCfg = Release|x64 - {8A70FD1D-7E7E-448B-8F5F-7CF2A414F309}.Release|x64.Build.0 = Release|x64 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Debug|Win32.ActiveCfg = Debug|Win32 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Debug|Win32.Build.0 = Debug|Win32 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Debug|x64.ActiveCfg = Debug|x64 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Debug|x64.Build.0 = Debug|x64 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Release|Win32.ActiveCfg = Release|Win32 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Release|Win32.Build.0 = Release|Win32 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Release|x64.ActiveCfg = Release|x64 - {562DA812-6FD9-424A-BC3E-044362DC93C1}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/c++/examples/allcppexamples/allcppexamples.vcproj b/windows/c++/examples/allcppexamples/allcppexamples.vcproj deleted file mode 100644 index 6a6d348..0000000 --- a/windows/c++/examples/allcppexamples/allcppexamples.vcproj +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/chunkstest/chunkstest.vcproj b/windows/c++/examples/chunkstest/chunkstest.vcproj deleted file mode 100644 index 7a59a0a..0000000 --- a/windows/c++/examples/chunkstest/chunkstest.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj b/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj deleted file mode 100644 index fa32f33..0000000 --- a/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/compoundtest/compoundtest.vcproj b/windows/c++/examples/compoundtest/compoundtest.vcproj deleted file mode 100644 index 418bfd9..0000000 --- a/windows/c++/examples/compoundtest/compoundtest.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj b/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj deleted file mode 100644 index a9e524e..0000000 --- a/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/createtest/createtest.vcproj b/windows/c++/examples/createtest/createtest.vcproj deleted file mode 100644 index 422872a..0000000 --- a/windows/c++/examples/createtest/createtest.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/createtestdll/createtestdll.vcproj b/windows/c++/examples/createtestdll/createtestdll.vcproj deleted file mode 100644 index 1ec1669..0000000 --- a/windows/c++/examples/createtestdll/createtestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/extend_dstest/extend_dstest.vcproj b/windows/c++/examples/extend_dstest/extend_dstest.vcproj deleted file mode 100644 index ac72191..0000000 --- a/windows/c++/examples/extend_dstest/extend_dstest.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj b/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj deleted file mode 100644 index 7862d48..0000000 --- a/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/h5grouptest/h5grouptest.vcproj b/windows/c++/examples/h5grouptest/h5grouptest.vcproj deleted file mode 100644 index 39a19b6..0000000 --- a/windows/c++/examples/h5grouptest/h5grouptest.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj b/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj deleted file mode 100644 index ceb3f4f..0000000 --- a/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/readdatatest/readdatatest.vcproj b/windows/c++/examples/readdatatest/readdatatest.vcproj deleted file mode 100644 index 950a176..0000000 --- a/windows/c++/examples/readdatatest/readdatatest.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj b/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj deleted file mode 100644 index d8db725..0000000 --- a/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/testcppExamples.BAT b/windows/c++/examples/testcppExamples.BAT deleted file mode 100755 index a6a83ed..0000000 --- a/windows/c++/examples/testcppExamples.BAT +++ /dev/null @@ -1,59 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - -@ECHO OFF -REM This batch file is used to test HDF5 C++ examples. -REM By Xuan Bai -REM Created on: 10/20/2004 -REM Last Modified: 10/20/2004 - -if %1.==. GOTO WRONG -if "%1"=="/?" GOTO HELP - -type nul > %1.txt -createtest%2\%1\createtest%2 >> %1.txt -readdatatest%2\%1\readdatatest%2 >> %1.txt -writedatatest%2\%1\writedatatest%2 >> %1.txt -compoundtest%2\%1\compoundtest%2 >> %1.txt -extend_dstest%2\%1\extend_dstest%2 >> %1.txt -chunkstest%2\%1\chunkstest%2 >> %1.txt -h5grouptest%2\%1\h5grouptest%2 >> %1.txt -fc %1.txt expected.out >temp.txt -if %ERRORLEVEL%==0 ( - echo All HDF5 C++ examples tests passed. -) else ( - echo HDF5 C++ examples tests failed. - more temp.txt -) -del temp.txt -GOTO END - -:WRONG -echo The syntax of the command is incorrect. -echo. - -:HELP -echo Tests HDF5 C++ examples. -echo. -echo testcppExamples [OPTION] -echo. -echo Please use one of the following options! -echo. -echo testcppExamples release test HDF5 C++ examples -- release version -echo testcppExamples release dll test HDF5 C++ examples -- release dll version -echo testcppExamples debug test HDF5 C++ examples -- debug version -echo testcppExamples debug dll test HDF5 C++ examples -- debug dll version -echo testcppExamples /? Help information -echo. - -:END diff --git a/windows/c++/examples/writedatatest/writedatatest.vcproj b/windows/c++/examples/writedatatest/writedatatest.vcproj deleted file mode 100644 index 7c6c79f..0000000 --- a/windows/c++/examples/writedatatest/writedatatest.vcproj +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj b/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj deleted file mode 100644 index f398eca..0000000 --- a/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/test/H5srcdir_str.h b/windows/c++/test/H5srcdir_str.h deleted file mode 100644 index 4d32264..0000000 --- a/windows/c++/test/H5srcdir_str.h +++ /dev/null @@ -1,22 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* If you are reading this file and it has a '.h' suffix, it was automatically - * generated from the '.in' version. Make changes there. - */ - -/* Set the 'srcdir' path from configure time */ -static const char *config_srcdir = "."; - diff --git a/windows/c++/test/checkcpptests.bat b/windows/c++/test/checkcpptests.bat deleted file mode 100644 index 828de6d..0000000 --- a/windows/c++/test/checkcpptests.bat +++ /dev/null @@ -1,98 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 c++ library -rem -rem Created: Scott Wegner, 9/4/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_CPPTEST_", as we use these for our -rem tests. Also clear "HDF5_CPPTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_cpptest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_cpptest_') do set %%a= -set hdf5_cpptest_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the cpptest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_cpptest_tests=%hdf5_cpptest_tests% %1 - set hdf5_cpptest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_cpptest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_cpptest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test testhdf5_cpp%2 .\testhdf5_cpp%2\%1 - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All C++ library tests passed. - ) else ( - echo.** FAILED C++ library tests. - ) - - popd - endlocal & exit /b %nerrors% diff --git a/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj b/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj deleted file mode 100644 index 48dda8f..0000000 --- a/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj +++ /dev/null @@ -1,465 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/test/testhdf5_cppdll/testhdf5_cppdll.vcproj b/windows/c++/test/testhdf5_cppdll/testhdf5_cppdll.vcproj deleted file mode 100644 index 183229d..0000000 --- a/windows/c++/test/testhdf5_cppdll/testhdf5_cppdll.vcproj +++ /dev/null @@ -1,465 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/copy_hdf.bat b/windows/copy_hdf.bat deleted file mode 100755 index a6dc153..0000000 --- a/windows/copy_hdf.bat +++ /dev/null @@ -1,29 +0,0 @@ -@echo off -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. - -rem File Name : copy_hdf.bat -rem Purpose : Copy all Files in the following formats from Windows to -rem approapriate directory: .bat .c .f90 .h .txt .js -rem : -rem Written By : Muqun Yang -rem Last Update : 2/18/08 by Scott Wegner - -pushd %~dp0 - -copy /y fortran\src\H5fortran_types.f90 ..\fortran\src > nul -xcopy /s /i /y *.bat ..\ > nul -xcopy /s /i /y *.h ..\ > nul -copy /y examples\testExamples_exp_output.txt ..\examples > nul - -popd diff --git a/windows/examples/allexamples/allexamples.sln b/windows/examples/allexamples/allexamples.sln deleted file mode 100644 index 725f39d..0000000 --- a/windows/examples/allexamples/allexamples.sln +++ /dev/null @@ -1,225 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "allexamples", "allexamples.vcproj", "{DF83A474-3C92-4797-A23F-E02645ABD405}" - ProjectSection(ProjectDependencies) = postProject - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F} = {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F} - {57FFDE11-87C0-4931-A50A-335D9E1DF83A} = {57FFDE11-87C0-4931-A50A-335D9E1DF83A} - {92029C16-379F-4B73-B332-F8D70CBE3D0D} = {92029C16-379F-4B73-B332-F8D70CBE3D0D} - {7822C216-A7EA-44FC-8830-45D19920AC7C} = {7822C216-A7EA-44FC-8830-45D19920AC7C} - {C33F0932-BEC6-445F-9EFC-CEB4C764B606} = {C33F0932-BEC6-445F-9EFC-CEB4C764B606} - {30B47942-9B38-4C2B-982D-2067812F02B9} = {30B47942-9B38-4C2B-982D-2067812F02B9} - {40120B5A-5E0D-4043-BB78-522C7F18F4C4} = {40120B5A-5E0D-4043-BB78-522C7F18F4C4} - {2528A578-BAB7-468E-BF5D-9105932C16DC} = {2528A578-BAB7-468E-BF5D-9105932C16DC} - {B8923279-9E37-43D2-8ECF-5225BFB3356A} = {B8923279-9E37-43D2-8ECF-5225BFB3356A} - {56960BA0-94F9-4DFD-940D-C78DAC8FC878} = {56960BA0-94F9-4DFD-940D-C78DAC8FC878} - {005B93AE-384F-4408-B087-19032C4EBD72} = {005B93AE-384F-4408-B087-19032C4EBD72} - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2} = {BD29B9B3-D875-4BE4-BAE6-992AD87208E2} - {2F494AB8-FF88-4C5A-921F-FE26623A28BD} = {2F494AB8-FF88-4C5A-921F-FE26623A28BD} - {E76380C7-4A22-41DC-A35E-718906DCB9EC} = {E76380C7-4A22-41DC-A35E-718906DCB9EC} - {0862B9C9-8042-48E3-95EA-60D1A82DC37A} = {0862B9C9-8042-48E3-95EA-60D1A82DC37A} - {E59609D2-5DA9-4E2A-B052-8A69B5735F16} = {E59609D2-5DA9-4E2A-B052-8A69B5735F16} - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021} = {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021} - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245} = {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "attributetest", "..\attributetest\attributetest.vcproj", "{30B47942-9B38-4C2B-982D-2067812F02B9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "attributetestdll", "..\attributetestdll\attributetestdll.vcproj", "{005B93AE-384F-4408-B087-19032C4EBD72}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunkread", "..\chunkread\chunkread.vcproj", "{2528A578-BAB7-468E-BF5D-9105932C16DC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunkreaddll", "..\chunkreaddll\chunkreaddll.vcproj", "{E76380C7-4A22-41DC-A35E-718906DCB9EC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compoundtest", "..\compoundtest\compoundtest.vcproj", "{2F494AB8-FF88-4C5A-921F-FE26623A28BD}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compoundtestdll", "..\compoundtestdll\compoundtestdll.vcproj", "{E59609D2-5DA9-4E2A-B052-8A69B5735F16}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extendwritetest", "..\extendwritetest\extendwritetest.vcproj", "{9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extendwritetestdll", "..\extendwritetestdll\extendwritetestdll.vcproj", "{52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grouptest", "..\grouptest\grouptest.vcproj", "{BD29B9B3-D875-4BE4-BAE6-992AD87208E2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grouptestdll", "..\grouptestdll\grouptestdll.vcproj", "{7822C216-A7EA-44FC-8830-45D19920AC7C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "intermgrouptest", "..\intermgrouptest\intermgrouptest.vcproj", "{40120B5A-5E0D-4043-BB78-522C7F18F4C4}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "intermgrouptestdll", "..\intermgrouptestdll\intermgrouptestdll.vcproj", "{92029C16-379F-4B73-B332-F8D70CBE3D0D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readtest", "..\readtest\readtest.vcproj", "{B8923279-9E37-43D2-8ECF-5225BFB3356A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readtestdll", "..\readtestdll\readtestdll.vcproj", "{6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selectest", "..\selectest\selectest.vcproj", "{0862B9C9-8042-48E3-95EA-60D1A82DC37A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selectestdll", "..\selectestdll\selectestdll.vcproj", "{57FFDE11-87C0-4931-A50A-335D9E1DF83A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "writetest", "..\writetest\writetest.vcproj", "{56960BA0-94F9-4DFD-940D-C78DAC8FC878}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "writetestdll", "..\writetestdll\writetestdll.vcproj", "{C33F0932-BEC6-445F-9EFC-CEB4C764B606}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DF83A474-3C92-4797-A23F-E02645ABD405}.Debug|Win32.ActiveCfg = Debug|Win32 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Debug|Win32.Build.0 = Debug|Win32 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Debug|x64.ActiveCfg = Debug|x64 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Debug|x64.Build.0 = Debug|x64 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Release|Win32.ActiveCfg = Release|Win32 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Release|Win32.Build.0 = Release|Win32 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Release|x64.ActiveCfg = Release|x64 - {DF83A474-3C92-4797-A23F-E02645ABD405}.Release|x64.Build.0 = Release|x64 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Debug|Win32.ActiveCfg = Debug|Win32 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Debug|Win32.Build.0 = Debug|Win32 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Debug|x64.ActiveCfg = Debug|x64 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Debug|x64.Build.0 = Debug|x64 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Release|Win32.ActiveCfg = Release|Win32 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Release|Win32.Build.0 = Release|Win32 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Release|x64.ActiveCfg = Release|x64 - {30B47942-9B38-4C2B-982D-2067812F02B9}.Release|x64.Build.0 = Release|x64 - {005B93AE-384F-4408-B087-19032C4EBD72}.Debug|Win32.ActiveCfg = Debug|Win32 - {005B93AE-384F-4408-B087-19032C4EBD72}.Debug|Win32.Build.0 = Debug|Win32 - {005B93AE-384F-4408-B087-19032C4EBD72}.Debug|x64.ActiveCfg = Debug|x64 - {005B93AE-384F-4408-B087-19032C4EBD72}.Debug|x64.Build.0 = Debug|x64 - {005B93AE-384F-4408-B087-19032C4EBD72}.Release|Win32.ActiveCfg = Release|Win32 - {005B93AE-384F-4408-B087-19032C4EBD72}.Release|Win32.Build.0 = Release|Win32 - {005B93AE-384F-4408-B087-19032C4EBD72}.Release|x64.ActiveCfg = Release|x64 - {005B93AE-384F-4408-B087-19032C4EBD72}.Release|x64.Build.0 = Release|x64 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Debug|Win32.ActiveCfg = Debug|Win32 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Debug|Win32.Build.0 = Debug|Win32 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Debug|x64.ActiveCfg = Debug|x64 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Debug|x64.Build.0 = Debug|x64 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Release|Win32.ActiveCfg = Release|Win32 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Release|Win32.Build.0 = Release|Win32 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Release|x64.ActiveCfg = Release|x64 - {2528A578-BAB7-468E-BF5D-9105932C16DC}.Release|x64.Build.0 = Release|x64 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Debug|Win32.ActiveCfg = Debug|Win32 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Debug|Win32.Build.0 = Debug|Win32 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Debug|x64.ActiveCfg = Debug|x64 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Debug|x64.Build.0 = Debug|x64 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Release|Win32.ActiveCfg = Release|Win32 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Release|Win32.Build.0 = Release|Win32 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Release|x64.ActiveCfg = Release|x64 - {E76380C7-4A22-41DC-A35E-718906DCB9EC}.Release|x64.Build.0 = Release|x64 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Debug|Win32.ActiveCfg = Debug|Win32 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Debug|Win32.Build.0 = Debug|Win32 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Debug|x64.ActiveCfg = Debug|x64 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Debug|x64.Build.0 = Debug|x64 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Release|Win32.ActiveCfg = Release|Win32 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Release|Win32.Build.0 = Release|Win32 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Release|x64.ActiveCfg = Release|x64 - {2F494AB8-FF88-4C5A-921F-FE26623A28BD}.Release|x64.Build.0 = Release|x64 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Debug|Win32.ActiveCfg = Debug|Win32 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Debug|Win32.Build.0 = Debug|Win32 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Debug|x64.ActiveCfg = Debug|x64 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Debug|x64.Build.0 = Debug|x64 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Release|Win32.ActiveCfg = Release|Win32 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Release|Win32.Build.0 = Release|Win32 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Release|x64.ActiveCfg = Release|x64 - {E59609D2-5DA9-4E2A-B052-8A69B5735F16}.Release|x64.Build.0 = Release|x64 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Debug|Win32.ActiveCfg = Debug|Win32 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Debug|Win32.Build.0 = Debug|Win32 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Debug|x64.ActiveCfg = Debug|x64 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Debug|x64.Build.0 = Debug|x64 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Release|Win32.ActiveCfg = Release|Win32 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Release|Win32.Build.0 = Release|Win32 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Release|x64.ActiveCfg = Release|x64 - {9EA9FED2-DDCD-404E-ABEA-7D2CC43EB021}.Release|x64.Build.0 = Release|x64 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Debug|Win32.ActiveCfg = Debug|Win32 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Debug|Win32.Build.0 = Debug|Win32 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Debug|x64.ActiveCfg = Debug|x64 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Debug|x64.Build.0 = Debug|x64 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Release|Win32.ActiveCfg = Release|Win32 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Release|Win32.Build.0 = Release|Win32 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Release|x64.ActiveCfg = Release|x64 - {52C50A0D-21CB-48DE-AB3C-1E67B18BCC1F}.Release|x64.Build.0 = Release|x64 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Debug|Win32.ActiveCfg = Debug|Win32 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Debug|Win32.Build.0 = Debug|Win32 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Debug|x64.ActiveCfg = Debug|x64 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Debug|x64.Build.0 = Debug|x64 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Release|Win32.ActiveCfg = Release|Win32 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Release|Win32.Build.0 = Release|Win32 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Release|x64.ActiveCfg = Release|x64 - {BD29B9B3-D875-4BE4-BAE6-992AD87208E2}.Release|x64.Build.0 = Release|x64 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Debug|Win32.ActiveCfg = Debug|Win32 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Debug|Win32.Build.0 = Debug|Win32 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Debug|x64.ActiveCfg = Debug|x64 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Debug|x64.Build.0 = Debug|x64 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Release|Win32.ActiveCfg = Release|Win32 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Release|Win32.Build.0 = Release|Win32 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Release|x64.ActiveCfg = Release|x64 - {7822C216-A7EA-44FC-8830-45D19920AC7C}.Release|x64.Build.0 = Release|x64 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Debug|Win32.ActiveCfg = Debug|Win32 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Debug|Win32.Build.0 = Debug|Win32 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Debug|x64.ActiveCfg = Debug|x64 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Debug|x64.Build.0 = Debug|x64 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Release|Win32.ActiveCfg = Release|Win32 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Release|Win32.Build.0 = Release|Win32 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Release|x64.ActiveCfg = Release|x64 - {40120B5A-5E0D-4043-BB78-522C7F18F4C4}.Release|x64.Build.0 = Release|x64 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Debug|Win32.ActiveCfg = Debug|Win32 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Debug|Win32.Build.0 = Debug|Win32 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Debug|x64.ActiveCfg = Debug|x64 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Debug|x64.Build.0 = Debug|x64 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Release|Win32.ActiveCfg = Release|Win32 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Release|Win32.Build.0 = Release|Win32 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Release|x64.ActiveCfg = Release|x64 - {92029C16-379F-4B73-B332-F8D70CBE3D0D}.Release|x64.Build.0 = Release|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|Win32.ActiveCfg = Debug|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|Win32.Build.0 = Debug|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|x64.ActiveCfg = Debug|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|x64.Build.0 = Debug|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|Win32.ActiveCfg = Release|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|Win32.Build.0 = Release|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|x64.ActiveCfg = Release|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|x64.Build.0 = Release|x64 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Debug|Win32.ActiveCfg = Debug|Win32 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Debug|Win32.Build.0 = Debug|Win32 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Debug|x64.ActiveCfg = Debug|x64 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Debug|x64.Build.0 = Debug|x64 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Release|Win32.ActiveCfg = Release|Win32 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Release|Win32.Build.0 = Release|Win32 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Release|x64.ActiveCfg = Release|x64 - {6EC3ABD7-48E1-4FBF-921F-FFA0D150A245}.Release|x64.Build.0 = Release|x64 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Debug|Win32.ActiveCfg = Debug|Win32 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Debug|Win32.Build.0 = Debug|Win32 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Debug|x64.ActiveCfg = Debug|x64 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Debug|x64.Build.0 = Debug|x64 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Release|Win32.ActiveCfg = Release|Win32 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Release|Win32.Build.0 = Release|Win32 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Release|x64.ActiveCfg = Release|x64 - {0862B9C9-8042-48E3-95EA-60D1A82DC37A}.Release|x64.Build.0 = Release|x64 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Debug|Win32.ActiveCfg = Debug|Win32 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Debug|Win32.Build.0 = Debug|Win32 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Debug|x64.ActiveCfg = Debug|x64 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Debug|x64.Build.0 = Debug|x64 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Release|Win32.ActiveCfg = Release|Win32 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Release|Win32.Build.0 = Release|Win32 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Release|x64.ActiveCfg = Release|x64 - {57FFDE11-87C0-4931-A50A-335D9E1DF83A}.Release|x64.Build.0 = Release|x64 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Debug|Win32.ActiveCfg = Debug|Win32 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Debug|Win32.Build.0 = Debug|Win32 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Debug|x64.ActiveCfg = Debug|x64 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Debug|x64.Build.0 = Debug|x64 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Release|Win32.ActiveCfg = Release|Win32 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Release|Win32.Build.0 = Release|Win32 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Release|x64.ActiveCfg = Release|x64 - {56960BA0-94F9-4DFD-940D-C78DAC8FC878}.Release|x64.Build.0 = Release|x64 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Debug|Win32.ActiveCfg = Debug|Win32 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Debug|Win32.Build.0 = Debug|Win32 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Debug|x64.ActiveCfg = Debug|x64 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Debug|x64.Build.0 = Debug|x64 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Release|Win32.ActiveCfg = Release|Win32 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Release|Win32.Build.0 = Release|Win32 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Release|x64.ActiveCfg = Release|x64 - {C33F0932-BEC6-445F-9EFC-CEB4C764B606}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/examples/allexamples/allexamples.vcproj b/windows/examples/allexamples/allexamples.vcproj deleted file mode 100644 index 71d0a29..0000000 --- a/windows/examples/allexamples/allexamples.vcproj +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/attributetest/attributetest.vcproj b/windows/examples/attributetest/attributetest.vcproj deleted file mode 100644 index ea4c49d..0000000 --- a/windows/examples/attributetest/attributetest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/attributetestdll/attributetestdll.vcproj b/windows/examples/attributetestdll/attributetestdll.vcproj deleted file mode 100644 index 8724c2f..0000000 --- a/windows/examples/attributetestdll/attributetestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/chunkread/chunkread.vcproj b/windows/examples/chunkread/chunkread.vcproj deleted file mode 100644 index 634a5cf..0000000 --- a/windows/examples/chunkread/chunkread.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/chunkreaddll/chunkreaddll.vcproj b/windows/examples/chunkreaddll/chunkreaddll.vcproj deleted file mode 100644 index e507074..0000000 --- a/windows/examples/chunkreaddll/chunkreaddll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/compoundtest/compoundtest.vcproj b/windows/examples/compoundtest/compoundtest.vcproj deleted file mode 100644 index c60684f..0000000 --- a/windows/examples/compoundtest/compoundtest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/compoundtestdll/compoundtestdll.vcproj b/windows/examples/compoundtestdll/compoundtestdll.vcproj deleted file mode 100644 index dcafba2..0000000 --- a/windows/examples/compoundtestdll/compoundtestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/extendwritetest/extendwritetest.vcproj b/windows/examples/extendwritetest/extendwritetest.vcproj deleted file mode 100644 index e162798..0000000 --- a/windows/examples/extendwritetest/extendwritetest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/extendwritetestdll/extendwritetestdll.vcproj b/windows/examples/extendwritetestdll/extendwritetestdll.vcproj deleted file mode 100644 index d33b44c..0000000 --- a/windows/examples/extendwritetestdll/extendwritetestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/grouptest/grouptest.vcproj b/windows/examples/grouptest/grouptest.vcproj deleted file mode 100644 index c6c48a3..0000000 --- a/windows/examples/grouptest/grouptest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/grouptestdll/grouptestdll.vcproj b/windows/examples/grouptestdll/grouptestdll.vcproj deleted file mode 100644 index 12fd581..0000000 --- a/windows/examples/grouptestdll/grouptestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/intermgrouptest/intermgrouptest.vcproj b/windows/examples/intermgrouptest/intermgrouptest.vcproj deleted file mode 100644 index b79063c..0000000 --- a/windows/examples/intermgrouptest/intermgrouptest.vcproj +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/intermgrouptestdll/intermgrouptestdll.vcproj b/windows/examples/intermgrouptestdll/intermgrouptestdll.vcproj deleted file mode 100644 index 1874cd8..0000000 --- a/windows/examples/intermgrouptestdll/intermgrouptestdll.vcproj +++ /dev/null @@ -1,412 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/readtest/readtest.vcproj b/windows/examples/readtest/readtest.vcproj deleted file mode 100644 index 3d6e620..0000000 --- a/windows/examples/readtest/readtest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/readtestdll/readtestdll.vcproj b/windows/examples/readtestdll/readtestdll.vcproj deleted file mode 100644 index 4cabe25..0000000 --- a/windows/examples/readtestdll/readtestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/selectest/selectest.vcproj b/windows/examples/selectest/selectest.vcproj deleted file mode 100644 index 4c3f504..0000000 --- a/windows/examples/selectest/selectest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/selectestdll/selectestdll.vcproj b/windows/examples/selectestdll/selectestdll.vcproj deleted file mode 100644 index 2264a36..0000000 --- a/windows/examples/selectestdll/selectestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/testExamples.bat b/windows/examples/testExamples.bat deleted file mode 100755 index e6367ac..0000000 --- a/windows/examples/testExamples.bat +++ /dev/null @@ -1,64 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - -@ECHO OFF -REM This batch file is used to test HDF5 C examples. -REM by Xuan Bai -REM Created: 09/09/2004 -REM Last Modified: 10/16/2004 - -if %1.==. GOTO WRONG -if "%1"=="/?" GOTO HELP - -type nul > %1.txt -attributetest%2\%1\attributetest%2 >> %1.txt -compoundtest%2\%1\compoundtest%2 >> %1.txt -extendwritetest%2\%1\extendwritetest%2 >> %1.txt -grouptest%2\%1\grouptest%2 >> %1.txt -intermgrouptest%2\%1\intermgrouptest%2 >> %1.txt -selectest%2\%1\selectest%2 >> %1.txt -writetest%2\%1\writetest%2 >> %1.txt -chunkread%2\%1\chunkread%2 >> %1.txt -readtest%2\%1\readtest%2 >> %1.txt -more /e +3 testExamples_exp_output.txt > output.txt -fc %1.txt output.txt >temp.txt -if %ERRORLEVEL%==0 ( - echo All HDF5 C examples tests passed. -) else ( - echo HDF5 C examples tests failed. - echo. - more temp.txt -) -del output.txt -del temp.txt -GOTO END - -:WRONG -echo The syntax of the command is incorrect. -echo. - -:HELP -echo Tests HDF5 C examples. -echo. -echo testExamples [OPTION] -echo. -echo Please use one of the following options! -echo. -echo testExamples release test HDF5 C examples -- release version -echo testExamples release dll test HDF5 C examples -- release dll version -echo testExamples debug test HDF5 C examples -- debug version -echo testExamples debug dll test HDF5 C examples -- debug dll version -echo testExamples /? Help information -echo. - -:END diff --git a/windows/examples/testExamples_exp_output.txt b/windows/examples/testExamples_exp_output.txt deleted file mode 100644 index b57688f..0000000 --- a/windows/examples/testExamples_exp_output.txt +++ /dev/null @@ -1,92 +0,0 @@ -############################# -Expected output for HDF5 C examples tests -############################# -The value of the attribute "Integer attribute" is 1 -Found string attribute; its index is 2 , value = ABCD - -Name : Character attribute - -Name : Float attribute -Rank : 2 -Dimension sizes : 2 3 -Type : FLOAT -Values : -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 - -Name : Integer attribute - -Field c : -1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 - -Field a : -0 1 2 3 4 5 6 7 8 9 - -Field b : -0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 81.0000 -"/Data/Compressed_Data" dataset is open -"/Data_new/Compressed_Data" dataset is open - -Name : Data - -Name : Data_new -"Data" is unlinked - -Name : Data_new - -Name : Compressed_Data -chunk rank 2, dimensions 20 x 20 - -Name : Float_Data - Datatype is 'H5T_NATIVE_FLOAT'. - -Group /G1 exists in the file -Group /G1/G2 has 1 member(s) -Object's name is G3 - 10 0 11 12 0 0 0 0 0 - 18 0 19 20 0 21 22 0 0 - 0 59 0 61 0 0 0 0 0 - 0 0 27 28 0 29 30 0 0 - 0 0 35 36 67 37 38 0 0 - 0 0 43 44 0 45 46 0 0 - 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 -dataset rank 2, dimensions 10 x 5 - -Dataset: -1 1 1 3 3 -1 1 1 3 3 -1 1 1 0 0 -2 0 0 0 0 -2 0 0 0 0 -2 0 0 0 0 -2 0 0 0 0 -2 0 0 0 0 -2 0 0 0 0 -2 0 0 0 0 - -Third column: -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -chunk rank 2, dimensions 2 x 5 - -Chunk: -1 1 1 0 0 -2 0 0 0 0 -Data set has INTEGER type -Little endian order - Data size is 4 -rank 2, dimensions 5 x 6 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -3 4 5 6 0 0 0 -4 5 6 7 0 0 0 -5 6 7 8 0 0 0 -0 0 0 0 0 0 0 diff --git a/windows/examples/writetest/writetest.vcproj b/windows/examples/writetest/writetest.vcproj deleted file mode 100644 index 20194f6..0000000 --- a/windows/examples/writetest/writetest.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/writetestdll/writetestdll.vcproj b/windows/examples/writetestdll/writetestdll.vcproj deleted file mode 100644 index 3661a12..0000000 --- a/windows/examples/writetestdll/writetestdll.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/allf90examples/allf90examples.sln b/windows/fortran/examples/allf90examples/allf90examples.sln deleted file mode 100644 index e488eae..0000000 --- a/windows/fortran/examples/allf90examples/allf90examples.sln +++ /dev/null @@ -1,335 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "allf90examples", "allf90examples.vcproj", "{D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}" - ProjectSection(ProjectDependencies) = postProject - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA} = {4F759F00-49B0-4D26-8BC7-D5D8F46449DA} - {1C947503-FBCF-497C-8187-06753D98310E} = {1C947503-FBCF-497C-8187-06753D98310E} - {61326004-1964-4AF8-BDAA-72E5B60D9461} = {61326004-1964-4AF8-BDAA-72E5B60D9461} - {88C33906-49D8-4935-AEBE-ED7914F5A560} = {88C33906-49D8-4935-AEBE-ED7914F5A560} - {8E77A110-6979-4EC2-8F51-0C5A39D1E252} = {8E77A110-6979-4EC2-8F51-0C5A39D1E252} - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2} = {CEB17C16-6EB8-41BB-9106-DE347F93E4C2} - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA} = {7FF39A16-7267-4F9D-9FD4-B4210C6765CA} - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E} = {B91A6B1D-9D91-4A87-BF65-38A06CBB617E} - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F} = {713B7E1F-E427-4C2A-AD4E-94333DAEF40F} - {ADB89924-2596-461A-B292-1DDF3B4C4886} = {ADB89924-2596-461A-B292-1DDF3B4C4886} - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB} = {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB} - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570} = {9A618A3F-C1C0-4CCD-8E15-55AFB0739570} - {E1DB2E47-2349-446B-9900-7D03216A0D40} = {E1DB2E47-2349-446B-9900-7D03216A0D40} - {01B14851-65CA-46C7-8C70-C2D5B206A734} = {01B14851-65CA-46C7-8C70-C2D5B206A734} - {D582215A-A02A-4C07-87FB-952AA84C7079} = {D582215A-A02A-4C07-87FB-952AA84C7079} - {0FBBFD67-446A-4284-A311-9EA88AF40F28} = {0FBBFD67-446A-4284-A311-9EA88AF40F28} - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B} = {0010346D-C44B-4BD1-BFC2-6C2D2514D28B} - {A3B71170-1FA4-414F-9836-0F219462D70F} = {A3B71170-1FA4-414F-9836-0F219462D70F} - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D} = {1E502386-5469-4FE2-AFD0-9E5B162A9E2D} - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A} = {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A} - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C} = {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C} - {548239C5-BBC2-4823-9CF4-E8C16587D634} = {548239C5-BBC2-4823-9CF4-E8C16587D634} - {BAE94BC5-4FC8-4C43-A626-17AC800527C5} = {BAE94BC5-4FC8-4C43-A626-17AC800527C5} - {98622AD2-2BAD-402B-8D7D-75D95A4085C7} = {98622AD2-2BAD-402B-8D7D-75D95A4085C7} - {235C71DB-BFFC-4EEB-B586-CADFE873E786} = {235C71DB-BFFC-4EEB-B586-CADFE873E786} - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E} = {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E} - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520} = {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520} - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9} = {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "attreexampletest", "..\attreexampletest\attreexampletest.vfproj", "{8E77A110-6979-4EC2-8F51-0C5A39D1E252}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "attreexampletestdll", "..\attreexampletestdll\attreexampletestdll.vfproj", "{D582215A-A02A-4C07-87FB-952AA84C7079}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "compoundtest", "..\compoundtest\compoundtest.vfproj", "{CEB17C16-6EB8-41BB-9106-DE347F93E4C2}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "compoundtestdll", "..\compoundtestdll\compoundtestdll.vfproj", "{BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "dsetexampletest", "..\dsetexampletest\dsetexampletest.vfproj", "{D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "dsetexampletestdll", "..\dsetexampletestdll\dsetexampletestdll.vfproj", "{9A618A3F-C1C0-4CCD-8E15-55AFB0739570}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "fileexampletest", "..\fileexampletest\fileexampletest.vfproj", "{1C947503-FBCF-497C-8187-06753D98310E}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "fileexampletestdll", "..\fileexampletestdll\fileexampletestdll.vfproj", "{ADB89924-2596-461A-B292-1DDF3B4C4886}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "groupexampletest", "..\groupexampletest\groupexampletest.vfproj", "{98622AD2-2BAD-402B-8D7D-75D95A4085C7}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "groupexampletestdll", "..\groupexampletestdll\groupexampletestdll.vfproj", "{713B7E1F-E427-4C2A-AD4E-94333DAEF40F}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "grpdsetexampletest", "..\grpdsetexampletest\grpdsetexampletest.vfproj", "{548239C5-BBC2-4823-9CF4-E8C16587D634}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "grpdsetexampletestdll", "..\grpdsetexampletestdll\grpdsetexampletestdll.vfproj", "{235C71DB-BFFC-4EEB-B586-CADFE873E786}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "grpittest", "..\grpittest\grpittest.vfproj", "{4F759F00-49B0-4D26-8BC7-D5D8F46449DA}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "grpittestdll", "..\grpittestdll\grpittestdll.vfproj", "{7FF39A16-7267-4F9D-9FD4-B4210C6765CA}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "grpsexampletest", "..\grpsexampletest\grpsexampletest.vfproj", "{61326004-1964-4AF8-BDAA-72E5B60D9461}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "grpsexampletestdll", "..\grpsexampletestdll\grpsexampletestdll.vfproj", "{A3B71170-1FA4-414F-9836-0F219462D70F}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hyperslabtest", "..\hyperslabtest\hyperslabtest.vfproj", "{BAE94BC5-4FC8-4C43-A626-17AC800527C5}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hyperslabtestdll", "..\hyperslabtestdll\hyperslabtestdll.vfproj", "{3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "mountexampletest", "..\mountexampletest\mountexampletest.vfproj", "{B91A6B1D-9D91-4A87-BF65-38A06CBB617E}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "mountexampletestdll", "..\mountexampletestdll\mountexampletestdll.vfproj", "{01B14851-65CA-46C7-8C70-C2D5B206A734}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "refobjexampletest", "..\refobjexampletest\refobjexampletest.vfproj", "{E1DB2E47-2349-446B-9900-7D03216A0D40}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "refobjexampletestdll", "..\refobjexampletestdll\refobjexampletestdll.vfproj", "{1E502386-5469-4FE2-AFD0-9E5B162A9E2D}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "refregexampletest", "..\refregexampletest\refregexampletest.vfproj", "{7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "refregexampletestdll", "..\refregexampletestdll\refregexampletestdll.vfproj", "{0FBBFD67-446A-4284-A311-9EA88AF40F28}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "rwdsetexampletest", "..\rwdsetexampletest\rwdsetexampletest.vfproj", "{89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "rwdsetexampletestdll", "..\rwdsetexampletestdll\rwdsetexampletestdll.vfproj", "{88C33906-49D8-4935-AEBE-ED7914F5A560}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "selecteletest", "..\selecteletest\selecteletest.vfproj", "{0010346D-C44B-4BD1-BFC2-6C2D2514D28B}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "selecteletestdll", "..\selecteletestdll\selecteletestdll.vfproj", "{ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Debug|Win32.ActiveCfg = Debug|Win32 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Debug|Win32.Build.0 = Debug|Win32 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Debug|x64.ActiveCfg = Debug|x64 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Debug|x64.Build.0 = Debug|x64 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Release|Win32.ActiveCfg = Release|Win32 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Release|Win32.Build.0 = Release|Win32 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Release|x64.ActiveCfg = Release|x64 - {D493CF06-423A-4FA5-8B3F-416C2EDAFF2B}.Release|x64.Build.0 = Release|x64 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Debug|Win32.ActiveCfg = Debug|Win32 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Debug|Win32.Build.0 = Debug|Win32 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Debug|x64.ActiveCfg = Debug|x64 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Debug|x64.Build.0 = Debug|x64 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Release|Win32.ActiveCfg = Release|Win32 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Release|Win32.Build.0 = Release|Win32 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Release|x64.ActiveCfg = Release|x64 - {8E77A110-6979-4EC2-8F51-0C5A39D1E252}.Release|x64.Build.0 = Release|x64 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Debug|Win32.ActiveCfg = Debug|Win32 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Debug|Win32.Build.0 = Debug|Win32 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Debug|x64.ActiveCfg = Debug|x64 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Debug|x64.Build.0 = Debug|x64 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Release|Win32.ActiveCfg = Release|Win32 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Release|Win32.Build.0 = Release|Win32 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Release|x64.ActiveCfg = Release|x64 - {D582215A-A02A-4C07-87FB-952AA84C7079}.Release|x64.Build.0 = Release|x64 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Debug|Win32.ActiveCfg = Debug|Win32 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Debug|Win32.Build.0 = Debug|Win32 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Debug|x64.ActiveCfg = Debug|x64 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Debug|x64.Build.0 = Debug|x64 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Release|Win32.ActiveCfg = Release|Win32 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Release|Win32.Build.0 = Release|Win32 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Release|x64.ActiveCfg = Release|x64 - {CEB17C16-6EB8-41BB-9106-DE347F93E4C2}.Release|x64.Build.0 = Release|x64 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Debug|Win32.ActiveCfg = Debug|Win32 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Debug|Win32.Build.0 = Debug|Win32 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Debug|x64.ActiveCfg = Debug|x64 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Debug|x64.Build.0 = Debug|x64 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Release|Win32.ActiveCfg = Release|Win32 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Release|Win32.Build.0 = Release|Win32 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Release|x64.ActiveCfg = Release|x64 - {BEBA82E0-3BE9-4BE6-8BD4-B9378FAD5520}.Release|x64.Build.0 = Release|x64 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Debug|Win32.ActiveCfg = Debug|Win32 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Debug|Win32.Build.0 = Debug|Win32 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Debug|x64.ActiveCfg = Debug|x64 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Debug|x64.Build.0 = Debug|x64 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Release|Win32.ActiveCfg = Release|Win32 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Release|Win32.Build.0 = Release|Win32 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Release|x64.ActiveCfg = Release|x64 - {D8D98ADF-8DC6-49F2-91AC-ECBAAAB1BB0E}.Release|x64.Build.0 = Release|x64 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Debug|Win32.Build.0 = Debug|Win32 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Debug|x64.ActiveCfg = Debug|x64 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Debug|x64.Build.0 = Debug|x64 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Release|Win32.ActiveCfg = Release|Win32 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Release|Win32.Build.0 = Release|Win32 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Release|x64.ActiveCfg = Release|x64 - {9A618A3F-C1C0-4CCD-8E15-55AFB0739570}.Release|x64.Build.0 = Release|x64 - {1C947503-FBCF-497C-8187-06753D98310E}.Debug|Win32.ActiveCfg = Debug|Win32 - {1C947503-FBCF-497C-8187-06753D98310E}.Debug|Win32.Build.0 = Debug|Win32 - {1C947503-FBCF-497C-8187-06753D98310E}.Debug|x64.ActiveCfg = Debug|x64 - {1C947503-FBCF-497C-8187-06753D98310E}.Debug|x64.Build.0 = Debug|x64 - {1C947503-FBCF-497C-8187-06753D98310E}.Release|Win32.ActiveCfg = Release|Win32 - {1C947503-FBCF-497C-8187-06753D98310E}.Release|Win32.Build.0 = Release|Win32 - {1C947503-FBCF-497C-8187-06753D98310E}.Release|x64.ActiveCfg = Release|x64 - {1C947503-FBCF-497C-8187-06753D98310E}.Release|x64.Build.0 = Release|x64 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Debug|Win32.ActiveCfg = Debug|Win32 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Debug|Win32.Build.0 = Debug|Win32 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Debug|x64.ActiveCfg = Debug|x64 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Debug|x64.Build.0 = Debug|x64 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Release|Win32.ActiveCfg = Release|Win32 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Release|Win32.Build.0 = Release|Win32 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Release|x64.ActiveCfg = Release|x64 - {ADB89924-2596-461A-B292-1DDF3B4C4886}.Release|x64.Build.0 = Release|x64 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Debug|Win32.Build.0 = Debug|Win32 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Debug|x64.ActiveCfg = Debug|x64 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Debug|x64.Build.0 = Debug|x64 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Release|Win32.ActiveCfg = Release|Win32 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Release|Win32.Build.0 = Release|Win32 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Release|x64.ActiveCfg = Release|x64 - {98622AD2-2BAD-402B-8D7D-75D95A4085C7}.Release|x64.Build.0 = Release|x64 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Debug|Win32.ActiveCfg = Debug|Win32 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Debug|Win32.Build.0 = Debug|Win32 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Debug|x64.ActiveCfg = Debug|x64 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Debug|x64.Build.0 = Debug|x64 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Release|Win32.ActiveCfg = Release|Win32 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Release|Win32.Build.0 = Release|Win32 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Release|x64.ActiveCfg = Release|x64 - {713B7E1F-E427-4C2A-AD4E-94333DAEF40F}.Release|x64.Build.0 = Release|x64 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Debug|Win32.ActiveCfg = Debug|Win32 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Debug|Win32.Build.0 = Debug|Win32 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Debug|x64.ActiveCfg = Debug|x64 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Debug|x64.Build.0 = Debug|x64 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Release|Win32.ActiveCfg = Release|Win32 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Release|Win32.Build.0 = Release|Win32 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Release|x64.ActiveCfg = Release|x64 - {548239C5-BBC2-4823-9CF4-E8C16587D634}.Release|x64.Build.0 = Release|x64 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Debug|Win32.ActiveCfg = Debug|Win32 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Debug|Win32.Build.0 = Debug|Win32 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Debug|x64.ActiveCfg = Debug|x64 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Debug|x64.Build.0 = Debug|x64 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Release|Win32.ActiveCfg = Release|Win32 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Release|Win32.Build.0 = Release|Win32 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Release|x64.ActiveCfg = Release|x64 - {235C71DB-BFFC-4EEB-B586-CADFE873E786}.Release|x64.Build.0 = Release|x64 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Debug|Win32.ActiveCfg = Debug|Win32 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Debug|Win32.Build.0 = Debug|Win32 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Debug|x64.ActiveCfg = Debug|x64 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Debug|x64.Build.0 = Debug|x64 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Release|Win32.ActiveCfg = Release|Win32 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Release|Win32.Build.0 = Release|Win32 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Release|x64.ActiveCfg = Release|x64 - {4F759F00-49B0-4D26-8BC7-D5D8F46449DA}.Release|x64.Build.0 = Release|x64 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Debug|Win32.ActiveCfg = Debug|Win32 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Debug|Win32.Build.0 = Debug|Win32 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Debug|x64.ActiveCfg = Debug|x64 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Debug|x64.Build.0 = Debug|x64 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Release|Win32.ActiveCfg = Release|Win32 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Release|Win32.Build.0 = Release|Win32 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Release|x64.ActiveCfg = Release|x64 - {7FF39A16-7267-4F9D-9FD4-B4210C6765CA}.Release|x64.Build.0 = Release|x64 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Debug|Win32.ActiveCfg = Debug|Win32 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Debug|Win32.Build.0 = Debug|Win32 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Debug|x64.ActiveCfg = Debug|x64 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Debug|x64.Build.0 = Debug|x64 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Release|Win32.ActiveCfg = Release|Win32 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Release|Win32.Build.0 = Release|Win32 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Release|x64.ActiveCfg = Release|x64 - {61326004-1964-4AF8-BDAA-72E5B60D9461}.Release|x64.Build.0 = Release|x64 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Debug|Win32.ActiveCfg = Debug|Win32 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Debug|Win32.Build.0 = Debug|Win32 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Debug|x64.ActiveCfg = Debug|x64 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Debug|x64.Build.0 = Debug|x64 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Release|Win32.ActiveCfg = Release|Win32 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Release|Win32.Build.0 = Release|Win32 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Release|x64.ActiveCfg = Release|x64 - {A3B71170-1FA4-414F-9836-0F219462D70F}.Release|x64.Build.0 = Release|x64 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Debug|Win32.Build.0 = Debug|Win32 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Debug|x64.ActiveCfg = Debug|x64 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Debug|x64.Build.0 = Debug|x64 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Release|Win32.ActiveCfg = Release|Win32 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Release|Win32.Build.0 = Release|Win32 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Release|x64.ActiveCfg = Release|x64 - {BAE94BC5-4FC8-4C43-A626-17AC800527C5}.Release|x64.Build.0 = Release|x64 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Debug|Win32.ActiveCfg = Debug|Win32 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Debug|Win32.Build.0 = Debug|Win32 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Debug|x64.ActiveCfg = Debug|x64 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Debug|x64.Build.0 = Debug|x64 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Release|Win32.ActiveCfg = Release|Win32 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Release|Win32.Build.0 = Release|Win32 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Release|x64.ActiveCfg = Release|x64 - {3E1B6AF4-37F1-493D-9DA2-6BFCB1C2EFD9}.Release|x64.Build.0 = Release|x64 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Debug|Win32.ActiveCfg = Debug|Win32 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Debug|Win32.Build.0 = Debug|Win32 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Debug|x64.ActiveCfg = Debug|x64 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Debug|x64.Build.0 = Debug|x64 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Release|Win32.ActiveCfg = Release|Win32 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Release|Win32.Build.0 = Release|Win32 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Release|x64.ActiveCfg = Release|x64 - {B91A6B1D-9D91-4A87-BF65-38A06CBB617E}.Release|x64.Build.0 = Release|x64 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Debug|Win32.ActiveCfg = Debug|Win32 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Debug|Win32.Build.0 = Debug|Win32 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Debug|x64.ActiveCfg = Debug|x64 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Debug|x64.Build.0 = Debug|x64 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Release|Win32.ActiveCfg = Release|Win32 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Release|Win32.Build.0 = Release|Win32 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Release|x64.ActiveCfg = Release|x64 - {01B14851-65CA-46C7-8C70-C2D5B206A734}.Release|x64.Build.0 = Release|x64 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Debug|Win32.ActiveCfg = Debug|Win32 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Debug|Win32.Build.0 = Debug|Win32 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Debug|x64.ActiveCfg = Debug|x64 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Debug|x64.Build.0 = Debug|x64 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Release|Win32.ActiveCfg = Release|Win32 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Release|Win32.Build.0 = Release|Win32 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Release|x64.ActiveCfg = Release|x64 - {E1DB2E47-2349-446B-9900-7D03216A0D40}.Release|x64.Build.0 = Release|x64 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Debug|Win32.ActiveCfg = Debug|Win32 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Debug|Win32.Build.0 = Debug|Win32 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Debug|x64.ActiveCfg = Debug|x64 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Debug|x64.Build.0 = Debug|x64 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Release|Win32.ActiveCfg = Release|Win32 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Release|Win32.Build.0 = Release|Win32 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Release|x64.ActiveCfg = Release|x64 - {1E502386-5469-4FE2-AFD0-9E5B162A9E2D}.Release|x64.Build.0 = Release|x64 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Debug|Win32.ActiveCfg = Debug|Win32 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Debug|Win32.Build.0 = Debug|Win32 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Debug|x64.ActiveCfg = Debug|x64 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Debug|x64.Build.0 = Debug|x64 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Release|Win32.ActiveCfg = Release|Win32 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Release|Win32.Build.0 = Release|Win32 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Release|x64.ActiveCfg = Release|x64 - {7F95DFBC-E6B9-4619-A42E-D2964F79AD2C}.Release|x64.Build.0 = Release|x64 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Debug|Win32.ActiveCfg = Debug|Win32 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Debug|Win32.Build.0 = Debug|Win32 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Debug|x64.ActiveCfg = Debug|x64 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Debug|x64.Build.0 = Debug|x64 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Release|Win32.ActiveCfg = Release|Win32 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Release|Win32.Build.0 = Release|Win32 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Release|x64.ActiveCfg = Release|x64 - {0FBBFD67-446A-4284-A311-9EA88AF40F28}.Release|x64.Build.0 = Release|x64 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Debug|Win32.ActiveCfg = Debug|Win32 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Debug|Win32.Build.0 = Debug|Win32 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Debug|x64.ActiveCfg = Debug|x64 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Debug|x64.Build.0 = Debug|x64 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Release|Win32.ActiveCfg = Release|Win32 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Release|Win32.Build.0 = Release|Win32 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Release|x64.ActiveCfg = Release|x64 - {89ABA5B1-B1F0-4444-AB54-DE45BCE2F27A}.Release|x64.Build.0 = Release|x64 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Debug|Win32.ActiveCfg = Debug|Win32 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Debug|Win32.Build.0 = Debug|Win32 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Debug|x64.ActiveCfg = Debug|x64 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Debug|x64.Build.0 = Debug|x64 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Release|Win32.ActiveCfg = Release|Win32 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Release|Win32.Build.0 = Release|Win32 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Release|x64.ActiveCfg = Release|x64 - {88C33906-49D8-4935-AEBE-ED7914F5A560}.Release|x64.Build.0 = Release|x64 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Debug|Win32.ActiveCfg = Debug|Win32 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Debug|Win32.Build.0 = Debug|Win32 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Debug|x64.ActiveCfg = Debug|x64 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Debug|x64.Build.0 = Debug|x64 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Release|Win32.ActiveCfg = Release|Win32 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Release|Win32.Build.0 = Release|Win32 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Release|x64.ActiveCfg = Release|x64 - {0010346D-C44B-4BD1-BFC2-6C2D2514D28B}.Release|x64.Build.0 = Release|x64 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Debug|Win32.ActiveCfg = Debug|Win32 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Debug|Win32.Build.0 = Debug|Win32 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Debug|x64.ActiveCfg = Debug|x64 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Debug|x64.Build.0 = Debug|x64 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Release|Win32.ActiveCfg = Release|Win32 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Release|Win32.Build.0 = Release|Win32 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Release|x64.ActiveCfg = Release|x64 - {ACAB0626-1CB5-4875-A4EC-41E526A3ABDB}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/fortran/examples/allf90examples/allf90examples.vcproj b/windows/fortran/examples/allf90examples/allf90examples.vcproj deleted file mode 100644 index db9a621..0000000 --- a/windows/fortran/examples/allf90examples/allf90examples.vcproj +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/attreexampletest/attreexampletest.vfproj b/windows/fortran/examples/attreexampletest/attreexampletest.vfproj deleted file mode 100644 index 465d871..0000000 --- a/windows/fortran/examples/attreexampletest/attreexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/attreexampletestdll/attreexampletestdll.vfproj b/windows/fortran/examples/attreexampletestdll/attreexampletestdll.vfproj deleted file mode 100644 index 186e880..0000000 --- a/windows/fortran/examples/attreexampletestdll/attreexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/compoundtest/compoundtest.vfproj b/windows/fortran/examples/compoundtest/compoundtest.vfproj deleted file mode 100644 index 76b85bb..0000000 --- a/windows/fortran/examples/compoundtest/compoundtest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/compoundtestdll/compoundtestdll.vfproj b/windows/fortran/examples/compoundtestdll/compoundtestdll.vfproj deleted file mode 100644 index 0afe8ff..0000000 --- a/windows/fortran/examples/compoundtestdll/compoundtestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/dsetexampletest/dsetexampletest.vfproj b/windows/fortran/examples/dsetexampletest/dsetexampletest.vfproj deleted file mode 100644 index 0836929..0000000 --- a/windows/fortran/examples/dsetexampletest/dsetexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/dsetexampletestdll/dsetexampletestdll.vfproj b/windows/fortran/examples/dsetexampletestdll/dsetexampletestdll.vfproj deleted file mode 100644 index 3ad1b8d..0000000 --- a/windows/fortran/examples/dsetexampletestdll/dsetexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/fileexampletest/fileexampletest.vfproj b/windows/fortran/examples/fileexampletest/fileexampletest.vfproj deleted file mode 100644 index b17edf9..0000000 --- a/windows/fortran/examples/fileexampletest/fileexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/fileexampletestdll/fileexampletestdll.vfproj b/windows/fortran/examples/fileexampletestdll/fileexampletestdll.vfproj deleted file mode 100644 index ec59134..0000000 --- a/windows/fortran/examples/fileexampletestdll/fileexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/groupexampletest/groupexampletest.vfproj b/windows/fortran/examples/groupexampletest/groupexampletest.vfproj deleted file mode 100644 index b44fa7d..0000000 --- a/windows/fortran/examples/groupexampletest/groupexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/groupexampletestdll/groupexampletestdll.vfproj b/windows/fortran/examples/groupexampletestdll/groupexampletestdll.vfproj deleted file mode 100644 index b567ac2..0000000 --- a/windows/fortran/examples/groupexampletestdll/groupexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/grpdsetexampletest/grpdsetexampletest.vfproj b/windows/fortran/examples/grpdsetexampletest/grpdsetexampletest.vfproj deleted file mode 100644 index 5a91ca0..0000000 --- a/windows/fortran/examples/grpdsetexampletest/grpdsetexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/grpdsetexampletestdll/grpdsetexampletestdll.vfproj b/windows/fortran/examples/grpdsetexampletestdll/grpdsetexampletestdll.vfproj deleted file mode 100644 index 4aa60f5..0000000 --- a/windows/fortran/examples/grpdsetexampletestdll/grpdsetexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/grpittest/grpittest.vfproj b/windows/fortran/examples/grpittest/grpittest.vfproj deleted file mode 100644 index 0ffe0c6..0000000 --- a/windows/fortran/examples/grpittest/grpittest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/grpittestdll/grpittestdll.vfproj b/windows/fortran/examples/grpittestdll/grpittestdll.vfproj deleted file mode 100644 index ceaea49..0000000 --- a/windows/fortran/examples/grpittestdll/grpittestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/grpsexampletest/grpsexampletest.vfproj b/windows/fortran/examples/grpsexampletest/grpsexampletest.vfproj deleted file mode 100644 index 517201a..0000000 --- a/windows/fortran/examples/grpsexampletest/grpsexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/grpsexampletestdll/grpsexampletestdll.vfproj b/windows/fortran/examples/grpsexampletestdll/grpsexampletestdll.vfproj deleted file mode 100644 index 7bcd3de..0000000 --- a/windows/fortran/examples/grpsexampletestdll/grpsexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/hyperslabtest/hyperslabtest.vfproj b/windows/fortran/examples/hyperslabtest/hyperslabtest.vfproj deleted file mode 100644 index cb33779..0000000 --- a/windows/fortran/examples/hyperslabtest/hyperslabtest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/hyperslabtestdll/hyperslabtestdll.vfproj b/windows/fortran/examples/hyperslabtestdll/hyperslabtestdll.vfproj deleted file mode 100644 index bd71275..0000000 --- a/windows/fortran/examples/hyperslabtestdll/hyperslabtestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/mountexampletest/mountexampletest.vfproj b/windows/fortran/examples/mountexampletest/mountexampletest.vfproj deleted file mode 100644 index f3b8133..0000000 --- a/windows/fortran/examples/mountexampletest/mountexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/mountexampletestdll/mountexampletestdll.vfproj b/windows/fortran/examples/mountexampletestdll/mountexampletestdll.vfproj deleted file mode 100644 index f80531b..0000000 --- a/windows/fortran/examples/mountexampletestdll/mountexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/refobjexampletest/refobjexampletest.vfproj b/windows/fortran/examples/refobjexampletest/refobjexampletest.vfproj deleted file mode 100644 index 02cc63f..0000000 --- a/windows/fortran/examples/refobjexampletest/refobjexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/refobjexampletestdll/refobjexampletestdll.vfproj b/windows/fortran/examples/refobjexampletestdll/refobjexampletestdll.vfproj deleted file mode 100644 index b0d7517..0000000 --- a/windows/fortran/examples/refobjexampletestdll/refobjexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/refregexampletest/refregexampletest.vfproj b/windows/fortran/examples/refregexampletest/refregexampletest.vfproj deleted file mode 100644 index 9251a9c..0000000 --- a/windows/fortran/examples/refregexampletest/refregexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/refregexampletestdll/refregexampletestdll.vfproj b/windows/fortran/examples/refregexampletestdll/refregexampletestdll.vfproj deleted file mode 100644 index 4672135..0000000 --- a/windows/fortran/examples/refregexampletestdll/refregexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/rwdsetexampletest/rwdsetexampletest.vfproj b/windows/fortran/examples/rwdsetexampletest/rwdsetexampletest.vfproj deleted file mode 100644 index 436f40d..0000000 --- a/windows/fortran/examples/rwdsetexampletest/rwdsetexampletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/rwdsetexampletestdll/rwdsetexampletestdll.vfproj b/windows/fortran/examples/rwdsetexampletestdll/rwdsetexampletestdll.vfproj deleted file mode 100644 index ee22d56..0000000 --- a/windows/fortran/examples/rwdsetexampletestdll/rwdsetexampletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/selecteletest/selecteletest.vfproj b/windows/fortran/examples/selecteletest/selecteletest.vfproj deleted file mode 100644 index d1001e0..0000000 --- a/windows/fortran/examples/selecteletest/selecteletest.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/examples/selecteletestdll/selecteletestdll.vfproj b/windows/fortran/examples/selecteletestdll/selecteletestdll.vfproj deleted file mode 100644 index d7d92aa..0000000 --- a/windows/fortran/examples/selecteletestdll/selecteletestdll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/checkfortrantests.bat b/windows/fortran/test/checkfortrantests.bat deleted file mode 100644 index d806e7e..0000000 --- a/windows/fortran/test/checkfortrantests.bat +++ /dev/null @@ -1,102 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 fortran library -rem -rem Created: Scott Wegner, 9/6/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_FORTTEST_", as we use these for our -rem tests. Also clear "HDF5_FORTTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_forttest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_forttest_') do set %%a= -set hdf5_forttest_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the forttest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_forttest_tests=%hdf5_forttest_tests% %1 - set hdf5_forttest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_forttest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_forttest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test testhdf5_fortran%2 .\testhdf5_fortran%2\%1 - call :add_test flush1_fortran%2 .\flush1_fortran%2\%1 - call :add_test flush2_fortran%2 .\flush2_fortran%2\%1 - call :add_test testhdf5_fortran_1_8%2 .\testhdf5_fortran_1_8%2\%1 - - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All Fortran library tests passed. - ) else ( - echo.** FAILED Fortran library tests. - ) - - popd - endlocal & exit /b %nerrors% diff --git a/windows/fortran/test/flush1_fortran/flush1_fortran.vfproj b/windows/fortran/test/flush1_fortran/flush1_fortran.vfproj deleted file mode 100644 index 0505d4c..0000000 --- a/windows/fortran/test/flush1_fortran/flush1_fortran.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/flush1_fortrandll/flush1_fortrandll.vfproj b/windows/fortran/test/flush1_fortrandll/flush1_fortrandll.vfproj deleted file mode 100644 index 188fe9a..0000000 --- a/windows/fortran/test/flush1_fortrandll/flush1_fortrandll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/flush2_fortran/flush2_fortran.vfproj b/windows/fortran/test/flush2_fortran/flush2_fortran.vfproj deleted file mode 100644 index 9f0daff..0000000 --- a/windows/fortran/test/flush2_fortran/flush2_fortran.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/flush2_fortrandll/flush2_fortrandll.vfproj b/windows/fortran/test/flush2_fortrandll/flush2_fortrandll.vfproj deleted file mode 100644 index da8211d..0000000 --- a/windows/fortran/test/flush2_fortrandll/flush2_fortrandll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj b/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj deleted file mode 100644 index 2fdf67e..0000000 --- a/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj +++ /dev/null @@ -1,412 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/libtest_fortran/libtest_cstub.vcproj b/windows/fortran/test/libtest_fortran/libtest_cstub.vcproj deleted file mode 100644 index 7517148..0000000 --- a/windows/fortran/test/libtest_fortran/libtest_cstub.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/libtest_fortran/libtest_fortran.vfproj b/windows/fortran/test/libtest_fortran/libtest_fortran.vfproj deleted file mode 100644 index a87cb98..0000000 --- a/windows/fortran/test/libtest_fortran/libtest_fortran.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/libtest_fortrandll/libtest_fortrandll.vfproj b/windows/fortran/test/libtest_fortrandll/libtest_fortrandll.vfproj deleted file mode 100644 index 8786586..0000000 --- a/windows/fortran/test/libtest_fortrandll/libtest_fortrandll.vfproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/testhdf5_fortran/testhdf5_fortran.vfproj b/windows/fortran/test/testhdf5_fortran/testhdf5_fortran.vfproj deleted file mode 100644 index dc23098..0000000 --- a/windows/fortran/test/testhdf5_fortran/testhdf5_fortran.vfproj +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/testhdf5_fortran_1_8/testhdf5_fortran_1_8.vfproj b/windows/fortran/test/testhdf5_fortran_1_8/testhdf5_fortran_1_8.vfproj deleted file mode 100644 index 52bf6fd..0000000 --- a/windows/fortran/test/testhdf5_fortran_1_8/testhdf5_fortran_1_8.vfproj +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/testhdf5_fortran_1_8dll/testhdf5_fortran_1_8dll.vfproj b/windows/fortran/test/testhdf5_fortran_1_8dll/testhdf5_fortran_1_8dll.vfproj deleted file mode 100644 index 441e17d..0000000 --- a/windows/fortran/test/testhdf5_fortran_1_8dll/testhdf5_fortran_1_8dll.vfproj +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/fortran/test/testhdf5_fortrandll/testhdf5_fortrandll.vfproj b/windows/fortran/test/testhdf5_fortrandll/testhdf5_fortrandll.vfproj deleted file mode 100644 index b432134..0000000 --- a/windows/fortran/test/testhdf5_fortrandll/testhdf5_fortrandll.vfproj +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hdf5bt.BAT b/windows/hdf5bt.BAT deleted file mode 100755 index 2f75286..0000000 --- a/windows/hdf5bt.BAT +++ /dev/null @@ -1,240 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. - - -rem File Name: hdf5bt.bat -rem This batch file is used to build and test HDF5 Libraries and Tools. -rem This batch file takes the following options: -rem . /vs9 Build HDF5 using Visual Studio 2008 -rem . /fort Build and test HDF5 with Fortran libraries -rem . /useenv Build HDF5 using compiler settings defined -rem . in the environment, rather than the IDE. -rem . /ivf101 Build HDF5 Fortran using Intel Visual Fortran 10.1 -rem . /log Log the build and test results in files defined by -rem . environment variables HDF5BUILD_LOG and -rem . HDF5CHECK_LOG -rem . /? Help information - -rem This batch file makes the following assumptions: -rem - The appropriate version of Visual Studio is installed and setup -rem - The directory structure is setup from a fresh source copy -rem - copy_hdf.bat has already been run from the ./windows directory -rem - Visual Studio already contains the required paths for external libraries -rem - szip and zlib DLLs are already placed in an accessible directory -rem - hdf5_ext_szip or hdf5_ext_zlib have been set accordingly -rem - if building with the /useenv option, szip and zlib paths have been added -rem to %include% and %libpath% as necessary. -rem - if using the /log option, hdf5build_log and hdf5_check log should be defined -rem - in the environment. -rem - The target platform architecture is specified in the environment -rem variable PROCESSOR_ARCHITECTURE - -rem By default, only C and C++ libraries are built and tested. - -setlocal enabledelayedexpansion -pushd %~dp0 - -set nerrors=0 -if "%1"=="/?" goto help -goto main - -rem Print a help message -:help - - echo.Builds and tests HDF5 Libraries and Tools. - echo. - echo Usage: %~nx0 [OPTION] - echo. - echo. /vs9 Build HDF5 using Visual Studio 2008 - echo. /fort Build and test HDF5 with Fortran libraries - echo. /ivf101 Build HDF5 Fortran using Intel Visual Fortran 10.1 - echo. /useenv Build HDF5 using compiler settings defined - echo. in the environment, rather than the IDE. - echo. /? Help information - - exit /b 0 - - -rem Parse through the parameters sent to file, and set appropriate variables -:parse_params - - for %%a in (%*) do ( - if "%%a"=="/vs9" ( - rem Use Visual Studio 2008 to build - set hdf5_vs2008=true - - ) else if "%%a"=="/fort" ( - rem Enable Fortran - set hdf5_enablefortran=true - - ) else if "%%a"=="/ivf101" ( - rem Enable Fortran - set hdf5_ivf101=true - - ) else if "%%a"=="/useenv" ( - rem Pass /useenv flag to devenv - set hdf5_useenv=true - - ) else if "%%a"=="/log" ( - rem Log our results to files defined in environment - set hdf5_logresults=true - - ) else if "%%a"=="/?" ( - rem Set errorlevel 1 and send to help - call :help - exit /b 1 - - ) else ( - rem Set errorlevel 2 to send to help if we receive a bad parameter - echo.Unknown option: %%a - call :help - exit /b 2 - ) - ) - - exit /b 0 - - -rem Setup our environment -:setup - - rem All we need to do here is setup the parameters that will be sent to - rem hdf5build and hdf5check. - set hdf5build_params= - set hdf5check_params=enablecpp - - if defined hdf5_vs2008 ( - set hdf5build_params=%hdf5build_params% /vs9 - ) - - if defined hdf5_enablefortran ( - set hdf5build_params=%hdf5build_params% /fort - set hdf5check_params=enableall - ) - - if defined hdf5_ivf101 ( - set hdf5build_params=%hdf5build_params% /ivf101 - ) - - if defined hdf5_useenv ( - set hdf5build_params=%hdf5build_params% /useenv - ) - - rem Clear out our log files if they will be used - if defined hdf5_logresults ( - if not defined hdf5build_log ( - echo.Error: HDF5BUILD_LOG not defined in environment! - exit /b 1 - ) else ( - type nul > !hdf5build_log! - ) - - if not defined hdf5check_log ( - echo.Error: HDF5CHECK_LOG not defined in environment! - exit /b 1 - ) else ( - type nul > !hdf5check_log! - ) - ) - - exit /b 0 - - -rem Build HDF5 libraries and tools -:build - - if defined hdf5_logresults ( - echo.Calling hdf5bbuild.bat %hdf5build_params% - echo.Results logged in %hdf5build_log% - call hdf5build.bat %hdf5build_params% > !hdf5build_log! 2>&1 - ) else ( - call hdf5build.bat %hdf5build_params% - ) - - exit /b - - -rem Test our libraries and tools -:test - if defined hdf5_logresults ( - echo.Calling hdf5check.bat %hdf5check_params% - echo.Results logged in %hdf5check_log% - call hdf5check %hdf5check_params% > !hdf5check_log! 2>&1 - ) else ( - call hdf5check %hdf5check_params% - ) - - exit /b - - -rem Handle errors -:error - - rem For now, our error handling consists of setting nerrors and quitting - echo.HDF5 build-test failed. - set /a nerrors=%nerrors%+1 - goto end - - rem We'll never really get here, but we keep this line for consistency. - exit /b - - -rem This is where the magic happens -:main - - call :parse_params %* - if not errorlevel 0 ( - if errorlevel 1 ( - rem This isn't an error case-- this means /? was specified. Simply - rem quit. - goto end - - ) else ( - rem Error case. - echo.Error parsing parameters! - goto error - ) - ) - - call :setup - if not errorlevel 0 ( - echo.Error setting up hdf5bt environment! - goto error - ) - - echo.***************************************************************************** - echo. Build and Test HDF5 Library and Tools - echo.***************************************************************************** - echo. - - call :build - if not errorlevel 0 ( - echo.Error building HDF5 libraries! - goto error - ) - - call :test - if not errorlevel 0 ( - echo.Error testing HDF5 libraries! - goto error - ) - - if "%nerrors%"=="0" ( - echo. All HDF5 libraries and tools build and tested successfully! - ) - rem Fall through to end - -:end - popd - endlocal & exit /b %nerrors% diff --git a/windows/hdf5build.BAT b/windows/hdf5build.BAT deleted file mode 100755 index 651ecfb..0000000 --- a/windows/hdf5build.BAT +++ /dev/null @@ -1,303 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from helphdfgroup.org. - - -rem File Name: hdf5build.bat -rem This batch file is used to build HDF5 Libraries and Tools. -rem This batch file takes the following options: -rem . /vs9 Build HDF5 using Visual Studio 2008 -rem . /fort Build HDF5 with Fortran libraries -rem . /ivf101 Build HDF5 Fortran using Intel Visual Fortran 10.1 -rem . /nodebug Note: Default is to build debug and release versions -rem . /useenv Build HDF5 using compiler settings defined -rem . in the environment, rather than the IDE. -rem . /? Help information - -rem This batch file makes the following assumptions: -rem - The appropriate version of Visual Studio is installed and setup -rem - The directory structure is setup from a fresh source copy -rem - copy_hdf.bat has already been run from the ./windows directory -rem - Visual Studio already contains the required paths for external libraries -rem - szip and zlib DLLs are already placed in an accessible directory -rem - hdf5_ext_szip or hdf5_ext_zlib have been set accordingly -rem - if building with the /useenv option, szip and zlib paths have been added -rem to %include% and %libpath% as necessary. -rem - The target platform architecture is specified in the environment -rem variable PROCESSOR_ARCHITECTURE - -rem By default, only C and C++ libraries are built. - -setlocal enabledelayedexpansion -pushd %~dp0 - -set nerrors=0 -if "%1"=="/?" goto help -set blddebug=debug -set bldrelease=release -goto main - -rem Print a help message -:help - - echo.Builds HDF5 Libraries and Tools. - echo. - echo.Usage: %~nx0 [OPTION] - echo. - echo. /vs9 Build HDF5 using Visual Studio 2008 - echo. /fort Build HDF5 with Fortran libraries - echo. /ivf101 Build HDF5 Fortran using Intel Visual Fortran 10.1 - echo. /nodebug Note: Default is to build debug and release versions - echo. /useenv Build HDF5 using compiler settings defined - echo. in the environment, rather than the IDE. - echo. /? Help information - - exit /b 0 - - -rem Parse through the parameters sent to file, and set appropriate variables -:parse_params - - for %%a in (%*) do ( - if "%%a"=="/vs9" ( - rem Use Visual Studio .NET 2003 - set hdf5_vs2008=true - - ) else if "%%a"=="/fort" ( - rem Enable Fortran - set hdf5_enablefortran=true - - ) else if "%%a"=="/ivf101" ( - rem Enable Fortran - set hdf5_ivf101=true - - ) else if "%%a"=="/nodebug" ( - rem Enable Fortran - set blddebug= - - ) else if "%%a"=="/useenv" ( - rem Pass /useenv flag to devenv - set hdf5_useenv=true - - ) else if "%%a"=="/?" ( - rem Set errorlevel 1 and send to help - call :help - exit /b 1 - - ) else ( - rem Set errorlevel 2 to send to help if we receive a bad parameter - echo.Unknown option: %%a - call :help - exit /b 2 - ) - ) - - exit /b 0 - - -rem Setup our environment -:setup - - rem Constants - - echo.Setting up environment - - rem Make sure /vs10 and /vs9 weren't specified together - rem if "%hdf5_vs2010%%hdf5_vs2008%"=="truetrue" ( - rem echo.Error: /vs10 and /vs9 should not be specified together. - rem exit /b 1 - rem ) - - rem Figure out which solution file to use based on configuration - if defined hdf5_vs2008 ( - echo.Using Visual Studio 2008 - if defined hdf5_enablefortran ( - echo.Building Fortran projects enabled - set hdf5_sln="%CD%\windows\proj\all_fortran\all_fortran.sln" - ) else ( - set hdf5_sln="%CD%\windows\proj\all\all.sln" - ) - - ) - - - rem Make sure PROCESSOR_ARCHITECURE is set to either x86 or AMD64 - if "%PROCESSOR_ARCHITECTURE%"=="x86" ( - set hdf5_platform=Win32 - ) else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( - set hdf5_platform=x64 - ) else ( - echo.Error: Environment variable PROCESSOR_ARCHITECTURE should contain - echo.either x86 or AMD64 - exit /b 1 - ) - - rem Setup Visual Studio environment. By default, use the Visual Studio - rem 2005 environment. - - set ccflags= - - if defined hdf5_vs2008 ( - if not defined hdf5_enablefortran ( - if defined vs90comntools ( - rem This sets the Visual Studio 2008 path and environment variables - if %hdf5_platform%==Win32 ( - call "%vs90comntools%\..\..\VC\vcvarsall.bat" x86 - ) else ( - call "%vs90comntools%\..\..\VC\vcvarsall.bat" x86_amd64 - ) - - ) else ( - echo.Error: Cannot setup Visual Studio 2008 environment. Please - echo.make sure VS90COMNTOOLS is defined in the environment. - exit /b 1 - ) - - ) else ( - echo.with Intel Visual Fortran 10.1 - - if defined ifort_compiler10 ( - rem This sets the Intel Fortran 10.1 environment, as well as - rem setting the appropriate Visual Studio environment - - if %hdf5_platform%==Win32 ( - call "%ifort_compiler10%\IA32\Bin\ifortvars.bat" - ) else ( - call "%ifort_compiler10%\em64t\Bin\ifortvars.bat" - ) - ) else ( - echo.Error: Cannot setup Intel Fortran 10.1 environment. Please - echo.make sure IFORT_COMPILER10 is defined in the environment. - exit /b 1 - ) - ) - - ) - - if defined hdf5_useenv ( - rem This will tell Visual Studio to use include, library, etc. paths - rem defined by %INCLUDE% %LIBPATH%, etc. Assume the user has already - rem added external library paths to these variables. - set ccflags=%ccflags% /useenv - ) - - exit /b 0 - - -rem Upgrade the project files to the latest format for Visual Studio -:upgrade - - echo.Upgrading project files - devenv %hdf5_sln% /Upgrade /NoLogo - - exit /b - - -rem Build the HDF5 libraries. By default, C and C++ libraries are built. -:all - - echo.Building HDF5 - - echo.***************************************************************************** - echo. Build HDF5 Library and Tools - echo.***************************************************************************** - echo. - - rem Build both debug and release versions - for %%a in (%blddebug% %bldrelease%) DO ( - echo.Building %hdf5_platform% %%a libraries... - devenv %hdf5_sln% %ccflags% /rebuild "%%a|%hdf5_platform%" - if not errorlevel 0 ( - set /a nerrors=!nerrors!+1 - echo. Building %%a FAILED - exit /b 1 - ) else if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. Building %%a FAILED - exit /b 1 - ) - ) - - exit /b - - -rem Handle errors -:error - - rem For now, our error handling consists of setting nerrors and quitting - echo.HDF5 build failed. - set /a nerrors=%nerrors%+1 - goto end - - rem We'll never really get here, but we keep this line for consistency. - exit /b - - -rem This is where the magic happens -:main - - call :parse_params %* - if not errorlevel 0 ( - if errorlevel 1 ( - rem This isn't an error case-- this means /? was specified. Simply - rem quit. - goto end - - ) else ( - rem Error case. - echo.Error parsing parameters! - goto error - ) - ) - - call :setup - if not errorlevel 0 ( - echo.Error setting up build environment. - goto error - ) - - rem Upgrade the project files if needed - if defined hdf5_vs2008 ( - call :upgrade - if not errorlevel 0 ( - echo.Error upgrading project files! - goto error - ) - ) - - echo.Building HDF5 Libraries and Tools - echo. - - echo.***************************************************************************** - echo. Build HDF5 Libraries and Tools - echo.***************************************************************************** - echo. - - - call :all - if not errorlevel 0 ( - echo.Error building HDF5 libraries! - goto error - ) else if errorlevel 1 ( - echo.Error building HDF5 libraries! - goto error - ) - - if "%nerrors%"=="0" ( - echo. All HDF5 libraries and tools build successfully! - ) - rem Fall through to end - -:end - popd - endlocal & exit /b %nerrors% diff --git a/windows/hdf5build_examples.BAT b/windows/hdf5build_examples.BAT deleted file mode 100644 index aa198b3..0000000 --- a/windows/hdf5build_examples.BAT +++ /dev/null @@ -1,248 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from helphdfgroup.org. - - -rem File Name: hdf5build_examples.bat -rem This batch file is used to build HDF5 C/C++/Fortran examples. -rem This batch file takes the following options: -rem . /fort Build HDF5 examples, including Fortran -rem . /useenv Build HDF5 examples using compiler settings defined -rem . /nodebug Note: Default is to build debug and release versions -rem . in the environment, rather than the IDE. -rem . /? Help information -rem By Scott Wegner -rem Created: April 1st, 2008 -rem Last Updated: April 14, 2008 - -rem This batch file makes the following assumptions: -rem - The appropriate version of Visual Studio is installed and setup -rem - The directory structure is setup from a fresh source copy -rem - copy_hdf.bat has already been run from the ./windows directory -rem - HDF5 has already been built using standard settings -rem - Visual Studio already contains the required paths for external libraries -rem - szip and zlib DLLs are already placed in an accessible directory -rem - hdf5_ext_szip or hdf5_ext_zlib have been set accordingly -rem - if building with the /useenv option, szip and zlib paths have been added -rem to %include% and %libpath% as necessary. - -rem By default, only C and C++ examples are built. - -setlocal enabledelayedexpansion -pushd %~dp0 - -set nerrors=0 -if "%1"=="/?" goto help -set blddebug= -set bldrelease=release -goto main - -rem Print a help message -:help - - echo.Builds HDF5 example projects. - echo. - echo.Usage: %~nx0 [OPTION] - echo. - echo. /fort Build HDF5 examples, including Fortran - echo. /debug Note: Default is to build release only versions - echo. /useenv Build HDF5 examples using compiler settings defined - echo. in the environment, rather than the IDE. - echo. /? Help information - - exit /b 0 - - -rem Parse through the parameters sent to file, and set appropriate variables -:parse_params - - for %%a in (%*) do ( - if "%%a"=="/fort" ( - rem Enable Fortran - set hdf5_enablefortran=true - - ) else if "%%a"=="/debug" ( - rem Enable Fortran - set blddebug=debug - - ) else if "%%a"=="/useenv" ( - rem Pass /useenv flag to devenv - set hdf5_useenv=true - - ) else ( - rem Set errorlevel 2 to send to help if we receive a bad parameter - echo.Unknown option: %%a - call :help - exit /b 1 - ) - ) - - exit /b 0 - - -rem Setup our environment -:setup - - rem Constants - - echo.Setting up environment - - rem Setup Visual Studio environment. By default, use the Visual Studio - rem 2008 environment. - - rem Make sure PROCESSOR_ARCHITECURE is set to either x86 or AMD64 - if "%PROCESSOR_ARCHITECTURE%"=="x86" ( - set hdf5_platform=Win32 - ) else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( - set hdf5_platform=x64 - ) else ( - echo.Error: Environment variable PROCESSOR_ARCHITECTURE should contain - echo.either x86 or AMD64 - exit /b 1 - ) - - set ccflags= - - rem Currently VS2008 is the only compiler supported. - echo.Using Visual Studio 2008 - - if not defined hdf5_enablefortran ( - if defined vs90comntools ( - rem This sets the Visual Studio 2008 path and environment variables - if %hdf5_platform%==Win32 ( - call "%vs90comntools%\..\..\VC\vcvarsall.bat" x86 - ) else ( - call "%vs90comntools%\..\..\VC\vcvarsall.bat" x86_amd64 - ) - - ) else ( - echo.Error: Cannot setup Visual Studio 2008 environment. Please - echo.make sure VS90COMNTOOLS is defined in the environment. - exit /b 1 - ) - - ) else ( - echo.with Intel Visual Fortran 10.1 - - if defined ifort_compiler10 ( - rem This sets the Intel Fortran 10.1 environment, as well as - rem setting the appropriate Visual Studio environment - - if %hdf5_platform%==Win32 ( - call "%ifort_compiler10%\IA32\Bin\ifortvars.bat" - ) else ( - call "%ifort_compiler10%\em64t\Bin\ifortvars.bat" - ) - ) else ( - echo.Error: Cannot setup Intel Fortran 10.1 environment. Please - echo.make sure IFORT_COMPILER10 is defined in the environment. - exit /b 1 - ) - ) - - rem Setup variables for our SLN files - set C_SLN=%CD%\windows\examples\allexamples\allexamples.sln - set CPP_SLN=%CD%\windows\c++\examples\allcppexamples\allcppexamples.sln - set HL_SLN=%CD%\windows\hl\examples\allhlcexamples\allhlcexamples.sln - rem We currently don't have HL C++ project files - if defined hdf5_enablefortran ( - set FORT_SLN=%CD%\windows\fortran\examples\allf90examples\allf90examples.sln - set HLFORT_SLN=%CD%\windows\hl\fortran\examples\allhlf90examples\allhlf90examples.sln - ) else ( - set FORT_SLN= - set HLFORT_SLN= - ) - - if defined hdf5_useenv ( - rem This will tell Visual Studio to use include, library, etc. paths - rem defined by %INCLUDE% %LIBPATH%, etc. Assume the user has already - rem added external library paths to these variables. - set ccflags=%ccflags% /useenv - ) - - exit /b 0 - - -rem Build the HDF5 libraries. By default, C and C++ libraries are built. -:build - - echo.Building HDF5 - - echo.***************************************************************************** - echo. Build HDF5 Examples - echo.***************************************************************************** - echo. - - rem TODO: Write code for each of these example sets - rem Build both debug and release versions - for %%a in (C CPP HL FORT HLFORT) do ( - if defined %%a_SLN ( - echo.************************** - echo. Building %%a Examples - echo.************************** - for %%b in (%blddebug% %bldrelease%) do ( - echo.Building %%a %%b examples... - devenv !%%a_SLN! %ccflags% /rebuild %%b - if !errorlevel! neq 0 ( - echo.HDF5 %%b %%a examples build failed - exit /b - ) - ) - ) - ) - - exit /b - - -rem Handle errors -:error - - rem For now, our error handling consists of setting nerrors and quitting - echo.HDF5 examples build failed. - set /a nerrors=%nerrors%+1 - goto end - - rem We'll never really get here, but we keep this line for consistency. - exit /b - - -rem This is where the magic happens -:main - - call :parse_params %* - if %errorlevel% neq 0 ( - rem Error case. - echo.Error parsing parameters! - goto error - ) - - call :setup - if %errorlevel% neq 0 ( - echo.Error setting up examples build environment. - goto error - ) - - call :build - if %errorlevel% neq 0 ( - echo.Error building HDF5 examples! - goto error - ) - - if "%nerrors%"=="0" ( - echo. All HDF5 example projects built successfully! - ) - rem Fall through to end - -:end - popd - endlocal & exit /b %nerrors% diff --git a/windows/hdf5check.BAT b/windows/hdf5check.BAT deleted file mode 100755 index 07319ca..0000000 --- a/windows/hdf5check.BAT +++ /dev/null @@ -1,157 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem File Name: hdf5check.bat -rem This batch file is used to test HDF5 Libraries and Tools. -rem There are 4 options for this batch file: -rem 1. hdf5check -- HDF5 tools and c library tests -rem 2. hdf5check enablecpp -- HDF5 tools and c/c++ library tests -rem 3. hdf5check enablefortran -- HDF5 tools and c/fortran library tests -rem 4. hdf5check enableall -- HDF5 tools and c/c++/fortran library tests -rem nodebug -- can be added to any of the above to not test debug versions - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem Clean any variables starting with "HDF5_TEST_", as we use these for our -rem tests. Also clear "HDF5_TEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_test_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_test_') do set %%a= -set hdf5_test_tests= -set chkdebug=debug -set chkrelease=release - -rem Put built DLLs in the system folder for testing -call install_dll.BAT - -set nerrors=0 - -rem See if we have built the HL C++ / Fortran libraries, and set -rem BUILD_*_CONDITIONAL appropriately -if /i "%1" equ "enablecpp" ( - set build_cpp_conditional=true -) else if /i "%1" equ "enablefortran" ( - set build_fortran_conditional=true -) else if /i "%1" equ "enableall" ( - set build_cpp_conditional=true - set build_fortran_conditional=true -) else if /i "%1" equ "nodebug" ( - set chkdebug= -) -if /i "%2" equ "nodebug" ( - set chkdebug= -) - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the test being tested -rem %2 - Relative path of script -:add_test - - set hdf5_test_tests=%hdf5_test_tests% %1 - set hdf5_test_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_test_tests%) do ( - echo. - echo.**==**==**==**==**==**==**==**==**==** - echo. Testing %%a ^(%1 %2^) - echo.**==**==**==**==**==**==**==**==**==** - - rem Only add our parameters for batch scripts. - call !hdf5_test_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if not errorlevel 0 ( - set /a nerrors=!nerrors!+1 - echo. Testing %%a ^(%1 %2^) FAILED - echo.**==**==**==**==**==**==**==**==**==** - exit /b 1 - ) else if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. Testing %%a ^(%1 %2^) FAILED - echo.**==**==**==**==**==**==**==**==**==** - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - echo.All HDF5 %* tests passed. - - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test checktests.bat .\test - call :add_test checktools.bat .\tools - - rem Only check C++/Fortran if they are set to build. - if defined build_cpp_conditional ( - call :add_test checkcpptests.bat .\c++\test - ) - if defined build_fortran_conditional ( - call :add_test checkfortrantests.bat .\fortran\test - ) - - rem Assume HL libraries are built. This should be commented out if the - rem default is changed. - call :add_test checkhltests.bat .\hl\test - call :add_test checkperformtests.bat .\perform - - - rem Run the tests for each version of HDF5 - rem We use "nodll" here because we cannot simply leave it blank. Filter - rem it out below. --SJW 9/10/07 - for %%b in (nodll dll) do ( - echo.====================================== - for %%a in (%chkdebug% %chkrelease%) do ( - set hdf5_config=%%a %%b - call :run_tests !hdf5_config:nodll=! - if not errorlevel 0 ( - set /a nerrors=!nerrors!+1 - ) else if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - ) - ) - echo.====================================== - ) - - if "%nerrors%"=="0" ( - echo.HDF5 Tests passed for all configurations! - ) else ( - echo.** FAILED HDF5 Tests! - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/hl/c++/test/checkhlcpptests.bat b/windows/hl/c++/test/checkhlcpptests.bat deleted file mode 100644 index aaa8fe2..0000000 --- a/windows/hl/c++/test/checkhlcpptests.bat +++ /dev/null @@ -1,99 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 hl c++ library -rem -rem Created: Scott Wegner, 9/7/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_HLCPPTEST_", as we use these for our -rem tests. Also clear "HDF5_HLCPPTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_hlcpptest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_hlcpptest_') do set %%a= -set hdf5_hlcpptest_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the hlcpptest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_hlcpptest_tests=%hdf5_hlcpptest_tests% %1 - set hdf5_hlcpptest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_hlcpptest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_hlcpptest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test hl_test_table_cpp%2 .\hl_test_table_cpp%2\%1 - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All HL C++ library tests passed. - ) else ( - echo.** FAILED HL C++ Library tests. - ) - - popd - endlocal & exit /b %nerrors% - \ No newline at end of file diff --git a/windows/hl/c++/test/hl_test_table_cpp/hl_test_table_cpp.vcproj b/windows/hl/c++/test/hl_test_table_cpp/hl_test_table_cpp.vcproj deleted file mode 100644 index 6be4342..0000000 --- a/windows/hl/c++/test/hl_test_table_cpp/hl_test_table_cpp.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj b/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj deleted file mode 100644 index 3175649..0000000 --- a/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/allhlcexamples/allhlcexamples.sln b/windows/hl/examples/allhlcexamples/allhlcexamples.sln deleted file mode 100644 index 90b0ab5..0000000 --- a/windows/hl/examples/allhlcexamples/allhlcexamples.sln +++ /dev/null @@ -1,437 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "allhlcexamples", "allhlcexamples.vcproj", "{5CAEEA27-2611-4398-8E10-BF58CA42F3F3}" - ProjectSection(ProjectDependencies) = postProject - {25DC2207-299D-4272-9530-B126539BE0E9} = {25DC2207-299D-4272-9530-B126539BE0E9} - {47753B08-F9F5-409B-9EC2-9135B4508BAF} = {47753B08-F9F5-409B-9EC2-9135B4508BAF} - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0} = {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0} - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F} = {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F} - {4116EF37-EBA5-424F-A01B-2D80DB5807E3} = {4116EF37-EBA5-424F-A01B-2D80DB5807E3} - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D} = {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D} - {B4DE42B5-0032-4175-BEEE-F65875360A45} = {B4DE42B5-0032-4175-BEEE-F65875360A45} - {DB7330C6-D009-4BF7-B85D-656185825950} = {DB7330C6-D009-4BF7-B85D-656185825950} - {334E19CF-8B74-4067-8303-A398E3F22593} = {334E19CF-8B74-4067-8303-A398E3F22593} - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618} = {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_ds1", "..\ex_ds1\ex_ds1.vcproj", "{70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_ds1dll", "..\ex_ds1dll\ex_ds1dll.vcproj", "{C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_image1", "..\ex_image1\ex_image1.vcproj", "{B4DE42B5-0032-4175-BEEE-F65875360A45}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_image1dll", "..\ex_image1dll\ex_image1dll.vcproj", "{E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_lite1", "..\ex_lite1\ex_lite1.vcproj", "{4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_lite1dll", "..\ex_lite1dll\ex_lite1dll.vcproj", "{DB7330C6-D009-4BF7-B85D-656185825950}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ptExampleFL", "..\ptExampleFL\ptExampleFL.vcproj", "{47753B08-F9F5-409B-9EC2-9135B4508BAF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ptExampleFLdll", "..\ptExampleFLdll\ptExampleFLdll.vcproj", "{25DC2207-299D-4272-9530-B126539BE0E9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table01", "..\ex_table01\ex_table01.vcproj", "{334E19CF-8B74-4067-8303-A398E3F22593}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table01dll", "..\ex_table01dll\ex_table01dll.vcproj", "{4116EF37-EBA5-424F-A01B-2D80DB5807E3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_lite2", "..\ex_lite2\ex_lite2.vcproj", "{47A5C65E-8669-4AF7-AC7F-ABD572567243}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_lite2dll", "..\ex_lite2dll\ex_lite2dll.vcproj", "{95515861-DE06-4542-AA50-6E4780597720}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_lite3", "..\ex_lite3\ex_lite3.vcproj", "{E5A24019-F635-4D4E-8A60-2D757F05C906}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_lite3dll", "..\ex_lite3dll\ex_lite3dll.vcproj", "{8431432A-6535-4599-9D76-008C4420CF1D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ptExampleVL", "..\ptExampleVL\ptExampleVL.vcproj", "{CD526D51-176A-4AC1-B2C9-B2155FAF59FB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ptExampleVLdll", "..\ptExampleVLdll\ptExampleVLdll.vcproj", "{0A6C0B51-23EF-40E7-A086-BACF2171B02F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_image2", "..\ex_image2\ex_image2.vcproj", "{66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_image2dll", "..\ex_image2dll\ex_image2dll.vcproj", "{CADD763A-7F15-453F-A922-79C5FC9FDAED}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table02", "..\ex_table02\ex_table02.vcproj", "{B28B170D-0C78-484C-B398-A6F2FA2C1B26}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table02dll", "..\ex_table02dll\ex_table02dll.vcproj", "{D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table03", "..\ex_table03\ex_table03.vcproj", "{7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table03dll", "..\ex_table03dll\ex_table03dll.vcproj", "{D72AE740-D901-41E7-8A85-04A41EA31EB5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table04", "..\ex_table04\ex_table04.vcproj", "{A840E983-177E-4218-916F-37391939E32D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table04dll", "..\ex_table04dll\ex_table04dll.vcproj", "{33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table05", "..\ex_table05\ex_table05.vcproj", "{B0C2EB18-6469-4350-AC72-983E3D0B5F3C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table05dll", "..\ex_table05dll\ex_table05dll.vcproj", "{86418725-0244-46CC-A4E1-D7D21CAC620B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table06", "..\ex_table06\ex_table06.vcproj", "{8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table06dll", "..\ex_table06dll\ex_table06dll.vcproj", "{DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table07", "..\ex_table07\ex_table07.vcproj", "{2FBE4820-120C-478D-8DF2-39E53C885830}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table07dll", "..\ex_table07dll\ex_table07dll.vcproj", "{9CD7FB43-AEAA-4380-AB53-9DC8487D553F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table08", "..\ex_table08\ex_table08.vcproj", "{58988CC8-3154-45C1-A05E-9AF4FE45D7FE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table08dll", "..\ex_table08dll\ex_table08dll.vcproj", "{A800762F-F9D8-494B-AFCE-AFE75053A9C8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table09", "..\ex_table09\ex_table09.vcproj", "{5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table09dll", "..\ex_table09dll\ex_table09dll.vcproj", "{D3FAA3AB-9A66-4911-85CE-73B674B683EC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table10", "..\ex_table10\ex_table10.vcproj", "{31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table10dll", "..\ex_table10dll\ex_table10dll.vcproj", "{EBA97261-BA06-4889-8568-0488E791F9A3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table11", "..\ex_table11\ex_table11.vcproj", "{BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table11dll", "..\ex_table11dll\ex_table11dll.vcproj", "{93EA2B92-DF8B-4D30-9788-99D63D779756}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table12", "..\ex_table12\ex_table12.vcproj", "{F8D2C124-2238-47AB-8A51-4A42D8F10BF5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ex_table12dll", "..\ex_table12dll\ex_table12dll.vcproj", "{447B9176-2551-4BE1-BBFF-D74C1723D6E0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Debug|Win32.ActiveCfg = Debug|Win32 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Debug|Win32.Build.0 = Debug|Win32 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Debug|x64.ActiveCfg = Debug|x64 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Debug|x64.Build.0 = Debug|x64 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Release|Win32.ActiveCfg = Release|Win32 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Release|Win32.Build.0 = Release|Win32 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Release|x64.ActiveCfg = Release|x64 - {5CAEEA27-2611-4398-8E10-BF58CA42F3F3}.Release|x64.Build.0 = Release|x64 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Debug|Win32.ActiveCfg = Debug|Win32 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Debug|Win32.Build.0 = Debug|Win32 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Debug|x64.ActiveCfg = Debug|x64 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Debug|x64.Build.0 = Debug|x64 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Release|Win32.ActiveCfg = Release|Win32 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Release|Win32.Build.0 = Release|Win32 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Release|x64.ActiveCfg = Release|x64 - {70E7B820-4AEB-49EF-93C5-A6BBDF69B76F}.Release|x64.Build.0 = Release|x64 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Debug|Win32.ActiveCfg = Debug|Win32 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Debug|Win32.Build.0 = Debug|Win32 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Debug|x64.ActiveCfg = Debug|x64 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Debug|x64.Build.0 = Debug|x64 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Release|Win32.ActiveCfg = Release|Win32 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Release|Win32.Build.0 = Release|Win32 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Release|x64.ActiveCfg = Release|x64 - {C17AAC18-2DFC-46DE-AF5F-749F6F043DE0}.Release|x64.Build.0 = Release|x64 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Debug|Win32.ActiveCfg = Debug|Win32 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Debug|Win32.Build.0 = Debug|Win32 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Debug|x64.ActiveCfg = Debug|x64 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Debug|x64.Build.0 = Debug|x64 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Release|Win32.ActiveCfg = Release|Win32 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Release|Win32.Build.0 = Release|Win32 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Release|x64.ActiveCfg = Release|x64 - {B4DE42B5-0032-4175-BEEE-F65875360A45}.Release|x64.Build.0 = Release|x64 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Debug|Win32.ActiveCfg = Debug|Win32 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Debug|Win32.Build.0 = Debug|Win32 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Debug|x64.ActiveCfg = Debug|x64 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Debug|x64.Build.0 = Debug|x64 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Release|Win32.ActiveCfg = Release|Win32 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Release|Win32.Build.0 = Release|Win32 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Release|x64.ActiveCfg = Release|x64 - {E424C58A-BEA8-4801-8A9C-5E976A3FAA5D}.Release|x64.Build.0 = Release|x64 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Debug|Win32.ActiveCfg = Debug|Win32 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Debug|Win32.Build.0 = Debug|Win32 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Debug|x64.ActiveCfg = Debug|x64 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Debug|x64.Build.0 = Debug|x64 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Release|Win32.ActiveCfg = Release|Win32 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Release|Win32.Build.0 = Release|Win32 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Release|x64.ActiveCfg = Release|x64 - {4B6CC6F6-C64D-4A1A-BF78-1304AA91D618}.Release|x64.Build.0 = Release|x64 - {DB7330C6-D009-4BF7-B85D-656185825950}.Debug|Win32.ActiveCfg = Debug|Win32 - {DB7330C6-D009-4BF7-B85D-656185825950}.Debug|Win32.Build.0 = Debug|Win32 - {DB7330C6-D009-4BF7-B85D-656185825950}.Debug|x64.ActiveCfg = Debug|x64 - {DB7330C6-D009-4BF7-B85D-656185825950}.Debug|x64.Build.0 = Debug|x64 - {DB7330C6-D009-4BF7-B85D-656185825950}.Release|Win32.ActiveCfg = Release|Win32 - {DB7330C6-D009-4BF7-B85D-656185825950}.Release|Win32.Build.0 = Release|Win32 - {DB7330C6-D009-4BF7-B85D-656185825950}.Release|x64.ActiveCfg = Release|x64 - {DB7330C6-D009-4BF7-B85D-656185825950}.Release|x64.Build.0 = Release|x64 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Debug|Win32.ActiveCfg = Debug|Win32 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Debug|Win32.Build.0 = Debug|Win32 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Debug|x64.ActiveCfg = Debug|x64 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Debug|x64.Build.0 = Debug|x64 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Release|Win32.ActiveCfg = Release|Win32 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Release|Win32.Build.0 = Release|Win32 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Release|x64.ActiveCfg = Release|x64 - {47753B08-F9F5-409B-9EC2-9135B4508BAF}.Release|x64.Build.0 = Release|x64 - {25DC2207-299D-4272-9530-B126539BE0E9}.Debug|Win32.ActiveCfg = Debug|Win32 - {25DC2207-299D-4272-9530-B126539BE0E9}.Debug|Win32.Build.0 = Debug|Win32 - {25DC2207-299D-4272-9530-B126539BE0E9}.Debug|x64.ActiveCfg = Debug|x64 - {25DC2207-299D-4272-9530-B126539BE0E9}.Debug|x64.Build.0 = Debug|x64 - {25DC2207-299D-4272-9530-B126539BE0E9}.Release|Win32.ActiveCfg = Release|Win32 - {25DC2207-299D-4272-9530-B126539BE0E9}.Release|Win32.Build.0 = Release|Win32 - {25DC2207-299D-4272-9530-B126539BE0E9}.Release|x64.ActiveCfg = Release|x64 - {25DC2207-299D-4272-9530-B126539BE0E9}.Release|x64.Build.0 = Release|x64 - {334E19CF-8B74-4067-8303-A398E3F22593}.Debug|Win32.ActiveCfg = Debug|Win32 - {334E19CF-8B74-4067-8303-A398E3F22593}.Debug|Win32.Build.0 = Debug|Win32 - {334E19CF-8B74-4067-8303-A398E3F22593}.Debug|x64.ActiveCfg = Debug|x64 - {334E19CF-8B74-4067-8303-A398E3F22593}.Debug|x64.Build.0 = Debug|x64 - {334E19CF-8B74-4067-8303-A398E3F22593}.Release|Win32.ActiveCfg = Release|Win32 - {334E19CF-8B74-4067-8303-A398E3F22593}.Release|Win32.Build.0 = Release|Win32 - {334E19CF-8B74-4067-8303-A398E3F22593}.Release|x64.ActiveCfg = Release|x64 - {334E19CF-8B74-4067-8303-A398E3F22593}.Release|x64.Build.0 = Release|x64 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Debug|Win32.Build.0 = Debug|Win32 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Debug|x64.ActiveCfg = Debug|x64 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Debug|x64.Build.0 = Debug|x64 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Release|Win32.ActiveCfg = Release|Win32 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Release|Win32.Build.0 = Release|Win32 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Release|x64.ActiveCfg = Release|x64 - {4116EF37-EBA5-424F-A01B-2D80DB5807E3}.Release|x64.Build.0 = Release|x64 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Debug|Win32.ActiveCfg = Debug|Win32 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Debug|Win32.Build.0 = Debug|Win32 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Debug|x64.ActiveCfg = Debug|x64 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Debug|x64.Build.0 = Debug|x64 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Release|Win32.ActiveCfg = Release|Win32 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Release|Win32.Build.0 = Release|Win32 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Release|x64.ActiveCfg = Release|x64 - {47A5C65E-8669-4AF7-AC7F-ABD572567243}.Release|x64.Build.0 = Release|x64 - {95515861-DE06-4542-AA50-6E4780597720}.Debug|Win32.ActiveCfg = Debug|Win32 - {95515861-DE06-4542-AA50-6E4780597720}.Debug|Win32.Build.0 = Debug|Win32 - {95515861-DE06-4542-AA50-6E4780597720}.Debug|x64.ActiveCfg = Debug|x64 - {95515861-DE06-4542-AA50-6E4780597720}.Debug|x64.Build.0 = Debug|x64 - {95515861-DE06-4542-AA50-6E4780597720}.Release|Win32.ActiveCfg = Release|Win32 - {95515861-DE06-4542-AA50-6E4780597720}.Release|Win32.Build.0 = Release|Win32 - {95515861-DE06-4542-AA50-6E4780597720}.Release|x64.ActiveCfg = Release|x64 - {95515861-DE06-4542-AA50-6E4780597720}.Release|x64.Build.0 = Release|x64 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Debug|Win32.ActiveCfg = Debug|Win32 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Debug|Win32.Build.0 = Debug|Win32 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Debug|x64.ActiveCfg = Debug|x64 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Debug|x64.Build.0 = Debug|x64 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Release|Win32.ActiveCfg = Release|Win32 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Release|Win32.Build.0 = Release|Win32 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Release|x64.ActiveCfg = Release|x64 - {E5A24019-F635-4D4E-8A60-2D757F05C906}.Release|x64.Build.0 = Release|x64 - {8431432A-6535-4599-9D76-008C4420CF1D}.Debug|Win32.ActiveCfg = Debug|Win32 - {8431432A-6535-4599-9D76-008C4420CF1D}.Debug|Win32.Build.0 = Debug|Win32 - {8431432A-6535-4599-9D76-008C4420CF1D}.Debug|x64.ActiveCfg = Debug|x64 - {8431432A-6535-4599-9D76-008C4420CF1D}.Debug|x64.Build.0 = Debug|x64 - {8431432A-6535-4599-9D76-008C4420CF1D}.Release|Win32.ActiveCfg = Release|Win32 - {8431432A-6535-4599-9D76-008C4420CF1D}.Release|Win32.Build.0 = Release|Win32 - {8431432A-6535-4599-9D76-008C4420CF1D}.Release|x64.ActiveCfg = Release|x64 - {8431432A-6535-4599-9D76-008C4420CF1D}.Release|x64.Build.0 = Release|x64 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Debug|Win32.Build.0 = Debug|Win32 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Debug|x64.ActiveCfg = Debug|x64 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Debug|x64.Build.0 = Debug|x64 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Release|Win32.ActiveCfg = Release|Win32 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Release|Win32.Build.0 = Release|Win32 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Release|x64.ActiveCfg = Release|x64 - {CD526D51-176A-4AC1-B2C9-B2155FAF59FB}.Release|x64.Build.0 = Release|x64 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Debug|Win32.Build.0 = Debug|Win32 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Debug|x64.ActiveCfg = Debug|x64 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Debug|x64.Build.0 = Debug|x64 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Release|Win32.ActiveCfg = Release|Win32 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Release|Win32.Build.0 = Release|Win32 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Release|x64.ActiveCfg = Release|x64 - {0A6C0B51-23EF-40E7-A086-BACF2171B02F}.Release|x64.Build.0 = Release|x64 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Debug|Win32.ActiveCfg = Debug|Win32 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Debug|Win32.Build.0 = Debug|Win32 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Debug|x64.ActiveCfg = Debug|x64 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Debug|x64.Build.0 = Debug|x64 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Release|Win32.ActiveCfg = Release|Win32 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Release|Win32.Build.0 = Release|Win32 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Release|x64.ActiveCfg = Release|x64 - {66106B22-4C8B-4B4A-A8DE-0C1ADEF0A219}.Release|x64.Build.0 = Release|x64 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Debug|Win32.ActiveCfg = Debug|Win32 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Debug|Win32.Build.0 = Debug|Win32 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Debug|x64.ActiveCfg = Debug|x64 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Debug|x64.Build.0 = Debug|x64 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Release|Win32.ActiveCfg = Release|Win32 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Release|Win32.Build.0 = Release|Win32 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Release|x64.ActiveCfg = Release|x64 - {CADD763A-7F15-453F-A922-79C5FC9FDAED}.Release|x64.Build.0 = Release|x64 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Debug|Win32.ActiveCfg = Debug|Win32 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Debug|Win32.Build.0 = Debug|Win32 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Debug|x64.ActiveCfg = Debug|x64 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Debug|x64.Build.0 = Debug|x64 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Release|Win32.ActiveCfg = Release|Win32 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Release|Win32.Build.0 = Release|Win32 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Release|x64.ActiveCfg = Release|x64 - {B28B170D-0C78-484C-B398-A6F2FA2C1B26}.Release|x64.Build.0 = Release|x64 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Debug|Win32.ActiveCfg = Debug|Win32 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Debug|Win32.Build.0 = Debug|Win32 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Debug|x64.ActiveCfg = Debug|x64 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Debug|x64.Build.0 = Debug|x64 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Release|Win32.ActiveCfg = Release|Win32 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Release|Win32.Build.0 = Release|Win32 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Release|x64.ActiveCfg = Release|x64 - {D29B5F9D-CA5C-4F2F-AB16-8FE0189E520C}.Release|x64.Build.0 = Release|x64 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Debug|Win32.ActiveCfg = Debug|Win32 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Debug|Win32.Build.0 = Debug|Win32 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Debug|x64.ActiveCfg = Debug|x64 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Debug|x64.Build.0 = Debug|x64 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Release|Win32.ActiveCfg = Release|Win32 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Release|Win32.Build.0 = Release|Win32 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Release|x64.ActiveCfg = Release|x64 - {7E46D3EA-E3AA-458B-ACA8-A585F62B24A9}.Release|x64.Build.0 = Release|x64 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Debug|Win32.ActiveCfg = Debug|Win32 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Debug|Win32.Build.0 = Debug|Win32 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Debug|x64.ActiveCfg = Debug|x64 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Debug|x64.Build.0 = Debug|x64 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Release|Win32.ActiveCfg = Release|Win32 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Release|Win32.Build.0 = Release|Win32 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Release|x64.ActiveCfg = Release|x64 - {D72AE740-D901-41E7-8A85-04A41EA31EB5}.Release|x64.Build.0 = Release|x64 - {A840E983-177E-4218-916F-37391939E32D}.Debug|Win32.ActiveCfg = Debug|Win32 - {A840E983-177E-4218-916F-37391939E32D}.Debug|Win32.Build.0 = Debug|Win32 - {A840E983-177E-4218-916F-37391939E32D}.Debug|x64.ActiveCfg = Debug|x64 - {A840E983-177E-4218-916F-37391939E32D}.Debug|x64.Build.0 = Debug|x64 - {A840E983-177E-4218-916F-37391939E32D}.Release|Win32.ActiveCfg = Release|Win32 - {A840E983-177E-4218-916F-37391939E32D}.Release|Win32.Build.0 = Release|Win32 - {A840E983-177E-4218-916F-37391939E32D}.Release|x64.ActiveCfg = Release|x64 - {A840E983-177E-4218-916F-37391939E32D}.Release|x64.Build.0 = Release|x64 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Debug|Win32.ActiveCfg = Debug|Win32 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Debug|Win32.Build.0 = Debug|Win32 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Debug|x64.ActiveCfg = Debug|x64 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Debug|x64.Build.0 = Debug|x64 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Release|Win32.ActiveCfg = Release|Win32 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Release|Win32.Build.0 = Release|Win32 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Release|x64.ActiveCfg = Release|x64 - {33FCABE9-BCC4-4894-9BD5-C3AD8FB0E18A}.Release|x64.Build.0 = Release|x64 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Debug|Win32.ActiveCfg = Debug|Win32 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Debug|Win32.Build.0 = Debug|Win32 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Debug|x64.ActiveCfg = Debug|x64 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Debug|x64.Build.0 = Debug|x64 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Release|Win32.ActiveCfg = Release|Win32 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Release|Win32.Build.0 = Release|Win32 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Release|x64.ActiveCfg = Release|x64 - {B0C2EB18-6469-4350-AC72-983E3D0B5F3C}.Release|x64.Build.0 = Release|x64 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Debug|Win32.ActiveCfg = Debug|Win32 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Debug|Win32.Build.0 = Debug|Win32 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Debug|x64.ActiveCfg = Debug|x64 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Debug|x64.Build.0 = Debug|x64 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Release|Win32.ActiveCfg = Release|Win32 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Release|Win32.Build.0 = Release|Win32 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Release|x64.ActiveCfg = Release|x64 - {86418725-0244-46CC-A4E1-D7D21CAC620B}.Release|x64.Build.0 = Release|x64 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Debug|Win32.ActiveCfg = Debug|Win32 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Debug|Win32.Build.0 = Debug|Win32 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Debug|x64.ActiveCfg = Debug|x64 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Debug|x64.Build.0 = Debug|x64 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Release|Win32.ActiveCfg = Release|Win32 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Release|Win32.Build.0 = Release|Win32 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Release|x64.ActiveCfg = Release|x64 - {8E92B4DB-65AD-4CF7-B806-3AA6D17F3F5C}.Release|x64.Build.0 = Release|x64 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Debug|Win32.ActiveCfg = Debug|Win32 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Debug|Win32.Build.0 = Debug|Win32 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Debug|x64.ActiveCfg = Debug|x64 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Debug|x64.Build.0 = Debug|x64 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Release|Win32.ActiveCfg = Release|Win32 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Release|Win32.Build.0 = Release|Win32 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Release|x64.ActiveCfg = Release|x64 - {DC9562D3-A5A4-4BB0-98C3-7863AACFF1C8}.Release|x64.Build.0 = Release|x64 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Debug|Win32.ActiveCfg = Debug|Win32 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Debug|Win32.Build.0 = Debug|Win32 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Debug|x64.ActiveCfg = Debug|x64 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Debug|x64.Build.0 = Debug|x64 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Release|Win32.ActiveCfg = Release|Win32 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Release|Win32.Build.0 = Release|Win32 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Release|x64.ActiveCfg = Release|x64 - {2FBE4820-120C-478D-8DF2-39E53C885830}.Release|x64.Build.0 = Release|x64 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Debug|Win32.Build.0 = Debug|Win32 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Debug|x64.ActiveCfg = Debug|x64 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Debug|x64.Build.0 = Debug|x64 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Release|Win32.ActiveCfg = Release|Win32 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Release|Win32.Build.0 = Release|Win32 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Release|x64.ActiveCfg = Release|x64 - {9CD7FB43-AEAA-4380-AB53-9DC8487D553F}.Release|x64.Build.0 = Release|x64 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Debug|Win32.ActiveCfg = Debug|Win32 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Debug|Win32.Build.0 = Debug|Win32 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Debug|x64.ActiveCfg = Debug|x64 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Debug|x64.Build.0 = Debug|x64 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Release|Win32.ActiveCfg = Release|Win32 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Release|Win32.Build.0 = Release|Win32 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Release|x64.ActiveCfg = Release|x64 - {58988CC8-3154-45C1-A05E-9AF4FE45D7FE}.Release|x64.Build.0 = Release|x64 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Debug|Win32.ActiveCfg = Debug|Win32 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Debug|Win32.Build.0 = Debug|Win32 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Debug|x64.ActiveCfg = Debug|x64 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Debug|x64.Build.0 = Debug|x64 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Release|Win32.ActiveCfg = Release|Win32 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Release|Win32.Build.0 = Release|Win32 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Release|x64.ActiveCfg = Release|x64 - {A800762F-F9D8-494B-AFCE-AFE75053A9C8}.Release|x64.Build.0 = Release|x64 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Debug|Win32.ActiveCfg = Debug|Win32 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Debug|Win32.Build.0 = Debug|Win32 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Debug|x64.ActiveCfg = Debug|x64 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Debug|x64.Build.0 = Debug|x64 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Release|Win32.ActiveCfg = Release|Win32 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Release|Win32.Build.0 = Release|Win32 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Release|x64.ActiveCfg = Release|x64 - {5FC6935E-35DE-4A68-87FE-8ADCDEED2B48}.Release|x64.Build.0 = Release|x64 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Debug|Win32.ActiveCfg = Debug|Win32 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Debug|Win32.Build.0 = Debug|Win32 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Debug|x64.ActiveCfg = Debug|x64 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Debug|x64.Build.0 = Debug|x64 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Release|Win32.ActiveCfg = Release|Win32 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Release|Win32.Build.0 = Release|Win32 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Release|x64.ActiveCfg = Release|x64 - {D3FAA3AB-9A66-4911-85CE-73B674B683EC}.Release|x64.Build.0 = Release|x64 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Debug|Win32.ActiveCfg = Debug|Win32 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Debug|Win32.Build.0 = Debug|Win32 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Debug|x64.ActiveCfg = Debug|x64 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Debug|x64.Build.0 = Debug|x64 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Release|Win32.ActiveCfg = Release|Win32 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Release|Win32.Build.0 = Release|Win32 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Release|x64.ActiveCfg = Release|x64 - {31BA8F80-0A8C-4CFC-AD63-D947F1ABAC8C}.Release|x64.Build.0 = Release|x64 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Debug|Win32.ActiveCfg = Debug|Win32 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Debug|Win32.Build.0 = Debug|Win32 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Debug|x64.ActiveCfg = Debug|x64 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Debug|x64.Build.0 = Debug|x64 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Release|Win32.ActiveCfg = Release|Win32 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Release|Win32.Build.0 = Release|Win32 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Release|x64.ActiveCfg = Release|x64 - {EBA97261-BA06-4889-8568-0488E791F9A3}.Release|x64.Build.0 = Release|x64 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Debug|Win32.ActiveCfg = Debug|Win32 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Debug|Win32.Build.0 = Debug|Win32 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Debug|x64.ActiveCfg = Debug|x64 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Debug|x64.Build.0 = Debug|x64 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Release|Win32.ActiveCfg = Release|Win32 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Release|Win32.Build.0 = Release|Win32 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Release|x64.ActiveCfg = Release|x64 - {BB90C9EC-7C4F-4AEA-A64E-95A2EA9C2F06}.Release|x64.Build.0 = Release|x64 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Debug|Win32.ActiveCfg = Debug|Win32 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Debug|Win32.Build.0 = Debug|Win32 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Debug|x64.ActiveCfg = Debug|x64 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Debug|x64.Build.0 = Debug|x64 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Release|Win32.ActiveCfg = Release|Win32 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Release|Win32.Build.0 = Release|Win32 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Release|x64.ActiveCfg = Release|x64 - {93EA2B92-DF8B-4D30-9788-99D63D779756}.Release|x64.Build.0 = Release|x64 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Debug|Win32.ActiveCfg = Debug|Win32 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Debug|Win32.Build.0 = Debug|Win32 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Debug|x64.ActiveCfg = Debug|x64 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Debug|x64.Build.0 = Debug|x64 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Release|Win32.ActiveCfg = Release|Win32 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Release|Win32.Build.0 = Release|Win32 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Release|x64.ActiveCfg = Release|x64 - {F8D2C124-2238-47AB-8A51-4A42D8F10BF5}.Release|x64.Build.0 = Release|x64 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Debug|Win32.ActiveCfg = Debug|Win32 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Debug|Win32.Build.0 = Debug|Win32 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Debug|x64.ActiveCfg = Debug|x64 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Debug|x64.Build.0 = Debug|x64 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Release|Win32.ActiveCfg = Release|Win32 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Release|Win32.Build.0 = Release|Win32 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Release|x64.ActiveCfg = Release|x64 - {447B9176-2551-4BE1-BBFF-D74C1723D6E0}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/hl/examples/allhlcexamples/allhlcexamples.vcproj b/windows/hl/examples/allhlcexamples/allhlcexamples.vcproj deleted file mode 100644 index da0459e..0000000 --- a/windows/hl/examples/allhlcexamples/allhlcexamples.vcproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_ds1/ex_ds1.vcproj b/windows/hl/examples/ex_ds1/ex_ds1.vcproj deleted file mode 100644 index b63bcf5..0000000 --- a/windows/hl/examples/ex_ds1/ex_ds1.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj b/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj deleted file mode 100644 index d728554..0000000 --- a/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_image1/ex_image1.vcproj b/windows/hl/examples/ex_image1/ex_image1.vcproj deleted file mode 100644 index d253b3d..0000000 --- a/windows/hl/examples/ex_image1/ex_image1.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj b/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj deleted file mode 100644 index cfcf29a..0000000 --- a/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_image2/ex_image2.vcproj b/windows/hl/examples/ex_image2/ex_image2.vcproj deleted file mode 100644 index c69971f..0000000 --- a/windows/hl/examples/ex_image2/ex_image2.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_image2dll/ex_image2dll.vcproj b/windows/hl/examples/ex_image2dll/ex_image2dll.vcproj deleted file mode 100644 index b17d36f..0000000 --- a/windows/hl/examples/ex_image2dll/ex_image2dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite1/ex_lite1.vcproj b/windows/hl/examples/ex_lite1/ex_lite1.vcproj deleted file mode 100644 index 26864e4..0000000 --- a/windows/hl/examples/ex_lite1/ex_lite1.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj b/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj deleted file mode 100644 index 4b6b00f..0000000 --- a/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite2/ex_lite2.vcproj b/windows/hl/examples/ex_lite2/ex_lite2.vcproj deleted file mode 100644 index 8662fe8..0000000 --- a/windows/hl/examples/ex_lite2/ex_lite2.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite2dll/ex_lite2dll.vcproj b/windows/hl/examples/ex_lite2dll/ex_lite2dll.vcproj deleted file mode 100644 index cff4c29..0000000 --- a/windows/hl/examples/ex_lite2dll/ex_lite2dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite3/ex_lite3.vcproj b/windows/hl/examples/ex_lite3/ex_lite3.vcproj deleted file mode 100644 index 065dae2..0000000 --- a/windows/hl/examples/ex_lite3/ex_lite3.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite3dll/ex_lite3dll.vcproj b/windows/hl/examples/ex_lite3dll/ex_lite3dll.vcproj deleted file mode 100644 index 42b5a9b..0000000 --- a/windows/hl/examples/ex_lite3dll/ex_lite3dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table01/ex_table01.vcproj b/windows/hl/examples/ex_table01/ex_table01.vcproj deleted file mode 100644 index 71826e8..0000000 --- a/windows/hl/examples/ex_table01/ex_table01.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj b/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj deleted file mode 100644 index a7790f4..0000000 --- a/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table02/ex_table02.vcproj b/windows/hl/examples/ex_table02/ex_table02.vcproj deleted file mode 100644 index 6196b1a..0000000 --- a/windows/hl/examples/ex_table02/ex_table02.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table02dll/ex_table02dll.vcproj b/windows/hl/examples/ex_table02dll/ex_table02dll.vcproj deleted file mode 100644 index c9f185d..0000000 --- a/windows/hl/examples/ex_table02dll/ex_table02dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table03/ex_table03.vcproj b/windows/hl/examples/ex_table03/ex_table03.vcproj deleted file mode 100644 index 27654bf..0000000 --- a/windows/hl/examples/ex_table03/ex_table03.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table03dll/ex_table03dll.vcproj b/windows/hl/examples/ex_table03dll/ex_table03dll.vcproj deleted file mode 100644 index 127f16f..0000000 --- a/windows/hl/examples/ex_table03dll/ex_table03dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table04/ex_table04.vcproj b/windows/hl/examples/ex_table04/ex_table04.vcproj deleted file mode 100644 index 748aa82..0000000 --- a/windows/hl/examples/ex_table04/ex_table04.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table04dll/ex_table04dll.vcproj b/windows/hl/examples/ex_table04dll/ex_table04dll.vcproj deleted file mode 100644 index 575989a..0000000 --- a/windows/hl/examples/ex_table04dll/ex_table04dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table05/ex_table05.vcproj b/windows/hl/examples/ex_table05/ex_table05.vcproj deleted file mode 100644 index 55fe6a0..0000000 --- a/windows/hl/examples/ex_table05/ex_table05.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table05dll/ex_table05dll.vcproj b/windows/hl/examples/ex_table05dll/ex_table05dll.vcproj deleted file mode 100644 index 1104d4c..0000000 --- a/windows/hl/examples/ex_table05dll/ex_table05dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table06/ex_table06.vcproj b/windows/hl/examples/ex_table06/ex_table06.vcproj deleted file mode 100644 index c08a2f4..0000000 --- a/windows/hl/examples/ex_table06/ex_table06.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table06dll/ex_table06dll.vcproj b/windows/hl/examples/ex_table06dll/ex_table06dll.vcproj deleted file mode 100644 index a3a83a4..0000000 --- a/windows/hl/examples/ex_table06dll/ex_table06dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table07/ex_table07.vcproj b/windows/hl/examples/ex_table07/ex_table07.vcproj deleted file mode 100644 index 0c3cb2f..0000000 --- a/windows/hl/examples/ex_table07/ex_table07.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table07dll/ex_table07dll.vcproj b/windows/hl/examples/ex_table07dll/ex_table07dll.vcproj deleted file mode 100644 index 3554428..0000000 --- a/windows/hl/examples/ex_table07dll/ex_table07dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table08/ex_table08.vcproj b/windows/hl/examples/ex_table08/ex_table08.vcproj deleted file mode 100644 index f91a4d5..0000000 --- a/windows/hl/examples/ex_table08/ex_table08.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table08dll/ex_table08dll.vcproj b/windows/hl/examples/ex_table08dll/ex_table08dll.vcproj deleted file mode 100644 index 242a08c..0000000 --- a/windows/hl/examples/ex_table08dll/ex_table08dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table09/ex_table09.vcproj b/windows/hl/examples/ex_table09/ex_table09.vcproj deleted file mode 100644 index 61d1610..0000000 --- a/windows/hl/examples/ex_table09/ex_table09.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table09dll/ex_table09dll.vcproj b/windows/hl/examples/ex_table09dll/ex_table09dll.vcproj deleted file mode 100644 index 06205c7..0000000 --- a/windows/hl/examples/ex_table09dll/ex_table09dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table10/ex_table10.vcproj b/windows/hl/examples/ex_table10/ex_table10.vcproj deleted file mode 100644 index 2f89023..0000000 --- a/windows/hl/examples/ex_table10/ex_table10.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table10dll/ex_table10dll.vcproj b/windows/hl/examples/ex_table10dll/ex_table10dll.vcproj deleted file mode 100644 index d15647e..0000000 --- a/windows/hl/examples/ex_table10dll/ex_table10dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table11/ex_table11.vcproj b/windows/hl/examples/ex_table11/ex_table11.vcproj deleted file mode 100644 index 6b5bf6a..0000000 --- a/windows/hl/examples/ex_table11/ex_table11.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table11dll/ex_table11dll.vcproj b/windows/hl/examples/ex_table11dll/ex_table11dll.vcproj deleted file mode 100644 index a004218..0000000 --- a/windows/hl/examples/ex_table11dll/ex_table11dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table12/ex_table12.vcproj b/windows/hl/examples/ex_table12/ex_table12.vcproj deleted file mode 100644 index 14272d7..0000000 --- a/windows/hl/examples/ex_table12/ex_table12.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table12dll/ex_table12dll.vcproj b/windows/hl/examples/ex_table12dll/ex_table12dll.vcproj deleted file mode 100644 index 8107a40..0000000 --- a/windows/hl/examples/ex_table12dll/ex_table12dll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj b/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj deleted file mode 100644 index 2bb3d4f..0000000 --- a/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj b/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj deleted file mode 100644 index b783dca..0000000 --- a/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ptExampleVL/ptExampleVL.vcproj b/windows/hl/examples/ptExampleVL/ptExampleVL.vcproj deleted file mode 100644 index 8fc7b0d..0000000 --- a/windows/hl/examples/ptExampleVL/ptExampleVL.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ptExampleVLdll/ptExampleVLdll.vcproj b/windows/hl/examples/ptExampleVLdll/ptExampleVLdll.vcproj deleted file mode 100644 index 04277b9..0000000 --- a/windows/hl/examples/ptExampleVLdll/ptExampleVLdll.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/test_hl_cexamples.BAT b/windows/hl/examples/test_hl_cexamples.BAT deleted file mode 100644 index 652a602..0000000 --- a/windows/hl/examples/test_hl_cexamples.BAT +++ /dev/null @@ -1,100 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. - -rem This batch file is used to test HDF5 High Level C examples. -rem Written by : Fang GUO -rem Created : 07/26/2005 -rem Last Modified: 2/18/08 - -rem Use delayed expansion to track changes inside a loop -setlocal enabledelayedexpansion - -rem Track errors -set total_error=0 - -if %1.==. GOTO WRONG -if "%1"=="/?" GOTO HELP -if "%1"=="release" GOTO CONFIG -if "%1"=="debug" GOTO CONFIG - -GOTO WRONG - -:CONFIG - if "%2"=="dll" GOTO TEST - if %2.==. GOTO TEST - GOTO WRONG - -:TEST - echo Testing %1 %2 version of High Level examples - echo. - - ex_ds1%2\%1\ex_ds1%2.exe ex_ds1%1%2 - - for /l %%a in (1,1,2) do ( - ex_image%%a%2\%1\ex_image%%a%2.exe ex_image%%a%1%2 - if not !errorlevel!==0 set /A total_error=!total_error!+1 - ) - - for /l %%a in (1,1,3) do ( - ex_lite%%a%2\%1\ex_lite%%a%2.exe ex_lite%%a%1%2 - if not !errorlevel!==0 set /A total_error=!total_error!+1 - ) - - for /l %%a in (1,1,9) do ( - ex_table0%%a%2\%1\ex_table0%%a%2.exe ex_table0%%a%1%2 - if not !errorlevel!==0 set /A total_error=!total_error!+1 - ) - - for /l %%a in (10,1,12) do ( - ex_table%%a%2\%1\ex_table%%a%2.exe ex_table%%a%1%2 - if not !errorlevel!==0 set /A total_error=!total_error!+1 - ) - - for %%a in (FL VL) do ( - ptExample%%a%2\%1\ptExample%%a%2.exe ptExample%%a%1%2 - if not !errorlevel!==0 set /A total_error=!total_error!+1 - ) - - if %total_error%==0 ( - echo. - echo. All of the HL C Examples Passed! - ) else ( - echo. - echo. %total_error% HL C Examples Failed! - ) - - GOTO END - -:WRONG - echo The syntax of the command is incorrect. - echo Use test_hl_cexamples /? for usage information - echo. - GOTO END - -:HELP - echo Tests HDF5 High Level C examples. - echo. - echo test_hl_cexamples [OPTION] - echo. - echo Please use one of the following options! - echo. - echo test_hl_cexamples release test HDF5 HL C examples -- release version - echo test_hl_cexamples release dll test HDF5 HL C examples -- release dll version - echo test_hl_cexamples debug test HDF5 HL C examples -- debug version - echo test_hl_cexamples debug dll test HDF5 HL C examples -- debug dll version - echo test_hl_cexamples /? Help information - echo. - GOTO END - -:END diff --git a/windows/hl/fortran/examples/allhlf90examples/allhlf90examples.sln b/windows/hl/fortran/examples/allhlf90examples/allhlf90examples.sln deleted file mode 100644 index 139fb49..0000000 --- a/windows/hl/fortran/examples/allhlf90examples/allhlf90examples.sln +++ /dev/null @@ -1,49 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "allhlf90examples", "allhlf90examples.vcproj", "{64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}" - ProjectSection(ProjectDependencies) = postProject - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042} = {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042} - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB} = {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "ex_lite", "..\ex_lite\ex_lite.vfproj", "{7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "ex_litedll", "..\ex_litedll\ex_litedll.vfproj", "{3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Debug|Win32.Build.0 = Debug|Win32 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Debug|x64.ActiveCfg = Debug|x64 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Debug|x64.Build.0 = Debug|x64 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Release|Win32.ActiveCfg = Release|Win32 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Release|Win32.Build.0 = Release|Win32 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Release|x64.ActiveCfg = Release|x64 - {64F43EAB-0F7D-4D4F-B01D-52C698C97FDF}.Release|x64.Build.0 = Release|x64 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Debug|Win32.ActiveCfg = Debug|Win32 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Debug|Win32.Build.0 = Debug|Win32 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Debug|x64.ActiveCfg = Debug|x64 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Debug|x64.Build.0 = Debug|x64 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Release|Win32.ActiveCfg = Release|Win32 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Release|Win32.Build.0 = Release|Win32 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Release|x64.ActiveCfg = Release|x64 - {7B837653-CEF4-4B2D-8EB8-29ECC4A1F042}.Release|x64.Build.0 = Release|x64 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Debug|Win32.ActiveCfg = Debug|Win32 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Debug|Win32.Build.0 = Debug|Win32 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Debug|x64.ActiveCfg = Debug|x64 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Debug|x64.Build.0 = Debug|x64 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Release|Win32.ActiveCfg = Release|Win32 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Release|Win32.Build.0 = Release|Win32 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Release|x64.ActiveCfg = Release|x64 - {3EB0EFA7-69F8-4541-8565-EC7AD3603DBB}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/hl/fortran/examples/allhlf90examples/allhlf90examples.vcproj b/windows/hl/fortran/examples/allhlf90examples/allhlf90examples.vcproj deleted file mode 100644 index 60a4756..0000000 --- a/windows/hl/fortran/examples/allhlf90examples/allhlf90examples.vcproj +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/examples/ex_lite/ex_lite.vfproj b/windows/hl/fortran/examples/ex_lite/ex_lite.vfproj deleted file mode 100644 index 852e157..0000000 --- a/windows/hl/fortran/examples/ex_lite/ex_lite.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/examples/ex_litedll/ex_litedll.vfproj b/windows/hl/fortran/examples/ex_litedll/ex_litedll.vfproj deleted file mode 100644 index f5f38d8..0000000 --- a/windows/hl/fortran/examples/ex_litedll/ex_litedll.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/examples/test_hl_f90examples.BAT b/windows/hl/fortran/examples/test_hl_f90examples.BAT deleted file mode 100644 index 30a05d4..0000000 --- a/windows/hl/fortran/examples/test_hl_f90examples.BAT +++ /dev/null @@ -1,64 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - -@ECHO OFF -@:: This batch file is used to test HDF5 High Level Fortran examples. -@:: Written by : Fang GUO -@:: Created : 12/20/2005 -@:: Last Modified: - -if %1.==. GOTO WRONG -if "%1"=="/?" GOTO HELP -if "%1"=="release" GOTO CONFIG -if "%1"=="debug" GOTO CONFIG - -GOTO WRONG - -:CONFIG -if "%2"=="dll" GOTO TEST -if %2.==. GOTO TEST -GOTO WRONG - -:TEST -echo. -HLf90examples%1%2\ex_lite%2 -if ERRORLEVEL == 0 ( -echo. %1 %2 version of High Level Fortran examples PASSED -)else ( -echo. %1 %2 version of High Level Fortran examples FAILED -) -echo. -GOTO END - -:WRONG -echo The syntax of the command is incorrect. -echo Use test_hl_f90examples /? for usage informtaion -echo. -GOTO END - -:HELP -echo Tests HDF5 High Level Fortran examples. -echo. -echo test_hl_f90examples [OPTION] -echo. -echo Please use one of the following options! -echo. -echo test_hl_f90examples release test HDF5 HL Fortran examples -- release version -echo test_hl_f90examples release dll test HDF5 HL Fortran examples -- release dll version -echo test_hl_f90examples debug test HDF5 HL Fortran examples -- debug version -echo test_hl_f90examples debug dll test HDF5 HL Fortran examples -- debug dll version -echo test_hl_f90examples /? Help information -echo. -GOTO END - -:END diff --git a/windows/hl/fortran/test/checkhlfortrantests.bat b/windows/hl/fortran/test/checkhlfortrantests.bat deleted file mode 100644 index 28d4822..0000000 --- a/windows/hl/fortran/test/checkhlfortrantests.bat +++ /dev/null @@ -1,101 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 hl fortran library -rem -rem Created: Scott Wegner, 9/6/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_HLFORTTEST_", as we use these for our -rem tests. Also clear "HDF5_HLFORTTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_hlforttest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_hlforttest_') do set %%a= -set hdf5_hlforttest_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the hlforttest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_hlforttest_tests=%hdf5_hlforttest_tests% %1 - set hdf5_hlforttest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_hlforttest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_hlforttest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test hl_test_lite_fortran%2 .\hl_test_lite_fortran%2\%1 - call :add_test hl_test_image_fortran%2 .\hl_test_image_fortran%2\%1 - call :add_test hl_test_table_fortran%2 .\hl_test_table_fortran%2\%1 - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All HL Fortran library tests passed. - ) else ( - echo.** FAILED HL Fortran Library tests. - ) - - popd - endlocal & exit /b %nerrors% - \ No newline at end of file diff --git a/windows/hl/fortran/test/hl_test_image_fortran/hl_test_image_fortran.vfproj b/windows/hl/fortran/test/hl_test_image_fortran/hl_test_image_fortran.vfproj deleted file mode 100644 index c615f0c..0000000 --- a/windows/hl/fortran/test/hl_test_image_fortran/hl_test_image_fortran.vfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/test/hl_test_image_fortrandll/hl_test_image_fortrandll.vfproj b/windows/hl/fortran/test/hl_test_image_fortrandll/hl_test_image_fortrandll.vfproj deleted file mode 100644 index 2000f23..0000000 --- a/windows/hl/fortran/test/hl_test_image_fortrandll/hl_test_image_fortrandll.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/test/hl_test_lite_fortran/hl_test_lite_fortran.vfproj b/windows/hl/fortran/test/hl_test_lite_fortran/hl_test_lite_fortran.vfproj deleted file mode 100644 index adeb772..0000000 --- a/windows/hl/fortran/test/hl_test_lite_fortran/hl_test_lite_fortran.vfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/test/hl_test_lite_fortrandll/hl_test_lite_fortrandll.vfproj b/windows/hl/fortran/test/hl_test_lite_fortrandll/hl_test_lite_fortrandll.vfproj deleted file mode 100644 index 5e4125f..0000000 --- a/windows/hl/fortran/test/hl_test_lite_fortrandll/hl_test_lite_fortrandll.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/test/hl_test_table_fortran/hl_test_table_fortran.vfproj b/windows/hl/fortran/test/hl_test_table_fortran/hl_test_table_fortran.vfproj deleted file mode 100644 index f53f14a..0000000 --- a/windows/hl/fortran/test/hl_test_table_fortran/hl_test_table_fortran.vfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/fortran/test/hl_test_table_fortrandll/hl_test_table_fortrandll.vfproj b/windows/hl/fortran/test/hl_test_table_fortrandll/hl_test_table_fortrandll.vfproj deleted file mode 100644 index 1ae031f..0000000 --- a/windows/hl/fortran/test/hl_test_table_fortrandll/hl_test_table_fortrandll.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/H5srcdir_str.h b/windows/hl/test/H5srcdir_str.h deleted file mode 100644 index 4d32264..0000000 --- a/windows/hl/test/H5srcdir_str.h +++ /dev/null @@ -1,22 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* If you are reading this file and it has a '.h' suffix, it was automatically - * generated from the '.in' version. Make changes there. - */ - -/* Set the 'srcdir' path from configure time */ -static const char *config_srcdir = "."; - diff --git a/windows/hl/test/checkhltests.bat b/windows/hl/test/checkhltests.bat deleted file mode 100644 index 0804148..0000000 --- a/windows/hl/test/checkhltests.bat +++ /dev/null @@ -1,151 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 HL library -rem -rem Created: Scott Wegner, 9/10/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_HLTEST_", as we use these for our -rem tests. Also clear "HDF5_HLTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_hltest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_hltest_') do set %%a= -set hdf5_hltest_tests= - -rem See if we have built the HL C++ / Fortran libraries, and set -rem BUILD_*_CONDITIONAL appropriately -call :check_built fortran %* -call :check_built cxx %* - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the hltest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_hltest_tests=%hdf5_hltest_tests% %1 - set hdf5_hltest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_hltest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_hltest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem Check to see if one of our output files exist for the given parameter. If -rem it does, we can assume that that set of files were set to build, and we can -rem test them. In Linux, the corresponding variable is set by the Makefile. -rem Expects the following parameters: -rem %1 - fortran or cxx -rem %2 - debug or release -rem %3 - dll or nothing -:check_built - - rem diffuse early if the variable is already defined - if defined build_%1_conditional exit /b - - if /i "%1" equ "cxx" ( - if "%2"=="release" ( - set hdf5_hl_cpp=hdf5_hl_cpp%3.lib - ) else ( - set hdf5_hl_cpp=hdf5_hl_cppd%3.lib - ) - - if exist %CD%\..\..\proj\hdf5_hl_cpp%3\%2\!hdf5_hl_cpp! ( - set build_cxx_conditional=true - ) - ) else if /i "%1" equ "fortran" ( - if "%2"=="release" ( - set hdf5_hl_fortran=hdf5_hl_fortran%3.lib - ) else ( - set hdf5_hl_fortran=hdf5_hl_fortrand%3.lib - ) - - if exist %CD%\..\..\proj\hdf5_hl_fortran%3\%2\!hdf5_hl_fortran! ( - set build_fortran_conditional=true - ) - ) - - exit /b - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test hl_test_lite%2 .\hl_test_lite%2\%1 - call :add_test hl_test_image%2 .\hl_test_image%2\%1 - call :add_test hl_test_table%2 .\hl_test_table%2\%1 - call :add_test hl_test_ds%2 .\hl_test_ds%2\%1 - call :add_test hl_test_packet%2 .\hl_test_packet%2\%1 - - rem Only check HL C++/Fortran if they are set to build. - if defined build_cxx_conditional ( - call :add_test checkhlcpptests.bat ..\c++\test - ) - if defined build_fortran_conditional ( - call :add_test checkhlfortrantests.bat ..\fortran\test - ) - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All HL library tests passed. - ) else ( - echo.** FAILED HL Library tests. - ) - - popd - endlocal & exit /b %nerrors% - \ No newline at end of file diff --git a/windows/hl/test/hl_test_ds/hl_test_ds.vcproj b/windows/hl/test/hl_test_ds/hl_test_ds.vcproj deleted file mode 100644 index 1c8aa7b..0000000 --- a/windows/hl/test/hl_test_ds/hl_test_ds.vcproj +++ /dev/null @@ -1,415 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj b/windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj deleted file mode 100644 index 6093600..0000000 --- a/windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_image/hl_test_image.vcproj b/windows/hl/test/hl_test_image/hl_test_image.vcproj deleted file mode 100644 index 2f01f6c..0000000 --- a/windows/hl/test/hl_test_image/hl_test_image.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj b/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj deleted file mode 100644 index 111bc6d..0000000 --- a/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_lite/hl_test_lite.vcproj b/windows/hl/test/hl_test_lite/hl_test_lite.vcproj deleted file mode 100644 index 0de34b5..0000000 --- a/windows/hl/test/hl_test_lite/hl_test_lite.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj b/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj deleted file mode 100644 index 03425ff..0000000 --- a/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_packet/hl_test_packet.vcproj b/windows/hl/test/hl_test_packet/hl_test_packet.vcproj deleted file mode 100644 index b1103f0..0000000 --- a/windows/hl/test/hl_test_packet/hl_test_packet.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj b/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj deleted file mode 100644 index 9da2096..0000000 --- a/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_table/hl_test_table.vcproj b/windows/hl/test/hl_test_table/hl_test_table.vcproj deleted file mode 100644 index 342d13f..0000000 --- a/windows/hl/test/hl_test_table/hl_test_table.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj b/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj deleted file mode 100644 index 6a4cf58..0000000 --- a/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gif2h5/h52giftest.bat b/windows/hl/tools/gif2h5/h52giftest.bat deleted file mode 100644 index 742743b..0000000 --- a/windows/hl/tools/gif2h5/h52giftest.bat +++ /dev/null @@ -1,89 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem HDF Utilities Test script -rem -rem Created: Scott Wegner, 4/5/07 -rem Modified: Scott Wegner, 8/22/07 -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem h52gif name -set h52gif=h52gif%2 -rem The path to the h52gif binary -set h52gif_bin=%CD%\..\gifconv%2\%h52gif%\%1\%h52gif% -rem gif2h5 name -set gif2h5=gif2h5%2 -rem The path to the gif2h5 binary -set gif2h5_bin=%CD%\..\gifconv%2\%gif2h5%\%1\%gif2h5% - -set testfile1=%CD%\testfiles\h52giftst.h5 -set testfile2=%CD%\testfiles\image1.gif - -rem initialze errors variable -set errors=0 - -goto main - -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=%test_msg% - echo.%test_msg:~0,69% %1 - - exit /b - - - -:tooltest1 - %h52gif_bin% %* - - if %errorlevel% neq 0 ( - call :testing *FAILED* %h52gif_bin% %* - set /a errors=!errors!+1 - ) else ( - call :testing PASSED %h52gif_bin% %* - ) - - exit /b - - -:tooltest2 - %gif2h5_bin% %* - - if %errorlevel% neq 0 ( - call :testing *FAILED* %gif2h5_bin% %* - set /a errors=!errors!+1 - ) else ( - call :testing PASSED %gif2h5_bin% %* - ) - - exit /b - - -:main - call :tooltest1 %testfile1% image1.gif -i image - call :tooltest2 %testfile2% image1.h5 - - popd - endlocal & exit /b %errors% - \ No newline at end of file diff --git a/windows/hl/tools/gifconv/gif2h5.vcproj b/windows/hl/tools/gifconv/gif2h5.vcproj deleted file mode 100644 index 501e88d..0000000 --- a/windows/hl/tools/gifconv/gif2h5.vcproj +++ /dev/null @@ -1,419 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconv/h52gif.vcproj b/windows/hl/tools/gifconv/h52gif.vcproj deleted file mode 100644 index 5ca9eed..0000000 --- a/windows/hl/tools/gifconv/h52gif.vcproj +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconvdll/gif2h5dll.vcproj b/windows/hl/tools/gifconvdll/gif2h5dll.vcproj deleted file mode 100644 index 6075f68..0000000 --- a/windows/hl/tools/gifconvdll/gif2h5dll.vcproj +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconvdll/h52gifdll.vcproj b/windows/hl/tools/gifconvdll/h52gifdll.vcproj deleted file mode 100644 index e269244..0000000 --- a/windows/hl/tools/gifconvdll/h52gifdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/install_dll.BAT b/windows/install_dll.BAT deleted file mode 100755 index 089d169..0000000 --- a/windows/install_dll.BAT +++ /dev/null @@ -1,81 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from helphdfgroup.org. -rem -rem -rem File name: install_dll.bat -rem This batch file is used to copy ALL HDF5 DLLs into system folder. -rem By Xuan Bai -rem Created: Aug. 12, 2004 -rem Last Scott Wegner, 9/10/07 - -setlocal enabledelayedexpansion -pushd %~dp0 - -set install_dir=%systemroot%\system - -goto :main - -rem This function actally copies the DLL over, and prints a status message -rem Expected parameters: -rem %1 - name of DLL to copy -:copy_dll - - if exist %1 ( - echo.Installing %~nx1 - copy /y %1 %install_dir% > nul - ) - - exit /b - - -rem Add the DLLS to be copied here. -:main - - rem HDF5 Library - call :copy_dll proj\hdf5dll\debug\hdf5ddll.dll - call :copy_dll proj\hdf5dll\release\hdf5dll.dll - call :copy_dll test\libtestdll\debug\libtestddll.dll - call :copy_dll test\libtestdll\release\libtestdll.dll - - rem C++ - call :copy_dll proj\hdf5_cppdll\debug\hdf5_cppddll.dll - call :copy_dll proj\hdf5_cppdll\release\hdf5_cppdll.dll - - rem Fortran - call :copy_dll proj\hdf5_f90cstubdll\debug\hdf5_f90cstubddll.dll - call :copy_dll proj\hdf5_f90cstubdll\release\hdf5_f90cstubdll.dll - call :copy_dll proj\hdf5_fortrandll\debug\hdf5_fortranddll.dll - call :copy_dll proj\hdf5_fortrandll\release\hdf5_fortrandll.dll - call :copy_dll fortran\test\libtest_cstubdll\debug\libtest_cstubddll.dll - call :copy_dll fortran\test\libtest_cstubdll\release\libtest_cstubdll.dll - call :copy_dll fortran\test\libtest_fortrandll\debug\libtest_fortranddll.dll - call :copy_dll fortran\test\libtest_fortrandll\release\libtest_fortrandll.dll - - rem HL - call :copy_dll proj\hdf5_hldll\Debug\hdf5_hlddll.dll - call :copy_dll proj\hdf5_hldll\Release\hdf5_hldll.dll - - rem HL C++ - call :copy_dll proj\hdf5_hl_cppdll\Release\hdf5_hl_cppdll.dll - call :copy_dll proj\hdf5_hl_cppdll\Debug\hdf5_hl_cppddll.dll - - rem HL Fortran - call :copy_dll proj\hdf5_hl_fortrandll\Debug\hdf5_hl_fortranddll.dll - call :copy_dll proj\hdf5_hl_f90cstubdll\Debug\hdf5_hl_f90cstubddll.dll - call :copy_dll proj\hdf5_hl_fortrandll\Release\hdf5_hl_fortrandll.dll - call :copy_dll proj\hdf5_hl_f90cstubdll\Release\hdf5_hl_f90cstubdll.dll - - popd - endlocal & exit /b - diff --git a/windows/install_hlcexamples.BAT b/windows/install_hlcexamples.BAT deleted file mode 100755 index 043b7ee..0000000 --- a/windows/install_hlcexamples.BAT +++ /dev/null @@ -1,93 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. - - -rem This batch file is used to install HDF5 High Level C -rem Examples' executable files. -rem Written by : Fang GUO -rem Created on : 07/25/2005 -rem Last Modified: 2/18/2008 - -setlocal enabledelayedexpansion -pushd %~dp0 - -set exdir=hl\examples -set nerrors=0 -goto main - -rem Simply create the needed directories -:makedirs - mkdir %exdir%\HLCexamplesRELEASE - mkdir %exdir%\HLCexamplesRELEASEDLL - exit /b - -rem This function actally copies the file over, first making sure it exists. If not, we increment nerrors -rem and print an error message -rem Expected parameters: -rem %1 - name of file to copy -rem %2 - destination to copy to -:safe_copy - - if exist %exdir%\%1 ( - copy /y %exdir%\%1 %exdir%\%2 > nul - ) else ( - echo.Warning: Cannot find example file: %exdir%\%1 - set /a nerrors=%nerrors%+1 - ) - - exit /b %nerrors% - - -:main - if not exist %exdir% ( - echo.Error: Examples directory doesn't exist: %CD%\%exdir% - set /a nerrors=!nerrors!+1 - goto :end - ) - - call :makedirs - - rem copy the files - for %%a in (RELEASE) do ( - for %%b in (DLL static) do ( - set ver=%%b - set ver=!ver:static=! - - call :safe_copy ex_ds1!ver!\%%a\ex_ds1!ver!.exe HLCexamples%%a!ver! - - for /l %%c in (1,1,2) do ( - call :safe_copy ex_image%%c!ver!\%%a\ex_image%%c!ver!.exe HLCexamples%%a!ver! - ) - - for /l %%c in (1,1,3) do ( - call :safe_copy ex_lite%%c!ver!\%%a\ex_lite%%c!ver!.exe HLCexamples%%a!ver! - ) - - for /l %%c in (1,1,9) do ( - call :safe_copy ex_table0%%c!ver!\%%a\ex_table0%%c!ver!.exe HLCexamples%%a!ver! - ) - - for /l %%c in (10,1,12) do ( - call :safe_copy ex_table%%c!ver!\%%a\ex_table%%c!ver!.exe HLCexamples%%a!ver! - ) - - for %%c in (FL VL) do ( - call :safe_copy ptExample%%c!ver!\%%a\ptExample%%c!ver!.exe HLCexamples%%a!ver! - ) - ) - ) - -:end -popd -endlocal & exit /b %nerrors% \ No newline at end of file diff --git a/windows/install_hlf90examples.BAT b/windows/install_hlf90examples.BAT deleted file mode 100644 index 779acea..0000000 --- a/windows/install_hlf90examples.BAT +++ /dev/null @@ -1,34 +0,0 @@ -@REM Copyright by The HDF Group. -@REM Copyright by the Board of Trustees of the University of Illinois. -@REM All rights reserved. -@REM -@REM This file is part of HDF5. The full HDF5 copyright notice, including -@REM terms governing use, modification, and redistribution, is contained in -@REM the files COPYING and Copyright.html. COPYING can be found at the root -@REM of the source code distribution tree; Copyright.html can be found at the -@REM root level of an installed copy of the electronic HDF5 document set and -@REM is linked from the top-level documents page. It can also be found at -@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -@REM access to either file, you may request a copy from help@hdfgroup.org. - - -@ECHO OFF -@:: This batch file is used to install HDF5 High Level C -@:: Examples' executable files. -@:: Written by : Fang GUO -@:: Created on : 12/20/2005 -@:: Last Modified: - -cd hl/fortran/examples - -mkdir HLf90examplesRELEASE -mkdir HLf90examplesRELEASEDLL - -cd ex_lite -copy release\ex_lite.exe ..\HLf90examplesRELEASE\ -cd .. - -cd ex_litedll -copy release\ex_litedll.exe ..\HLf90examplesRELEASEDLL\ -cd .. - diff --git a/windows/installhdf5lib.bat b/windows/installhdf5lib.bat deleted file mode 100755 index 5c81f33..0000000 --- a/windows/installhdf5lib.bat +++ /dev/null @@ -1,334 +0,0 @@ -@echo OFF -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. - - -rem This batch file is used to install HDF5 libraries and tools -rem Last Updated: 3/3/08 - -setlocal enabledelayedexpansion -pushd %~dp0 - -set install_dir=%systemroot%\system - -goto main - -rem Create the directory structure that we'll need to install -:create_directories - - for %%a in (debug release) do ( - for %%b in (bin bindll dll lib include mods modsdll) do ( - if not exist hdf5lib\%%a\%%b ( - mkdir hdf5lib\%%a\%%b - ) - ) - ) - - exit /b - -rem This function actally copies the file over, first making sure it exists. If not, we increment nerrors -rem Expected parameters: -rem %1 - name of file to copy -rem %2 - destination to copy to -:safe_copy - - if exist %1 ( - copy /y %1 %2 > nul - ) else ( - set /a nerrors=%nerrors%+1 - ) - - exit /b - - -rem Only delete a file if it actually exists. Return the status of delete if it was called -rem Expected paramters: -rem %1 - name of file to delete -:safe_delete - if exist %1 ( - del /f %1 > nul - ) - - exit /b - - -rem Install C Libraries and Tools -:install_c - set nerrors=0 - - rem ===DEBUG=== - rem include - call :safe_copy src\*.h hdf5lib\debug\include - call :safe_delete hdf5lib\debug\include\*private.h - rem lib - call :safe_copy proj\hdf5\debug\hdf5d.lib hdf5lib\debug\lib - rem dll - call :safe_copy proj\hdf5dll\debug\hdf5ddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5dll\debug\hdf5ddll.dll hdf5lib\debug\dll - rem bin - call :safe_copy hl\tools\gifconv\gif2h5\debug\gif2h5.exe hdf5lib\debug\bin - call :safe_copy hl\tools\gifconv\h52gif\debug\h52gif.exe hdf5lib\debug\bin - call :safe_copy tools\h5copy\debug\h5copy.exe hdf5lib\debug\bin - call :safe_copy tools\h5debug\debug\h5debug.exe hdf5lib\debug\bin - call :safe_copy tools\h5diff\debug\h5diff.exe hdf5lib\debug\bin - call :safe_copy tools\h5dump\debug\h5dump.exe hdf5lib\debug\bin - call :safe_copy tools\h5import\debug\h5import.exe hdf5lib\debug\bin - call :safe_copy tools\h5jam\debug\h5jam.exe hdf5lib\debug\bin - call :safe_copy tools\h5ls\debug\h5ls.exe hdf5lib\debug\bin - call :safe_copy tools\h5mkgrp\debug\h5mkgrp.exe hdf5lib\debug\bin - call :safe_copy tools\h5repack\debug\h5repack.exe hdf5lib\debug\bin - call :safe_copy tools\h5repart\debug\h5repart.exe hdf5lib\debug\bin - call :safe_copy tools\h5stat\debug\h5stat.exe hdf5lib\debug\bin - call :safe_copy tools\h5unjam\debug\h5unjam.exe hdf5lib\debug\bin - rem bindll - call :safe_copy hl\tools\gifconvdll\h52gifdll\debug\h52gifdll.exe hdf5lib\debug\bindll - call :safe_copy hl\tools\gifconvdll\gif2h5dll\debug\gif2h5dll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5debugdll\debug\h5debugdll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5diffdll\debug\h5diffdll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5dumpdll\debug\h5dumpdll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5importdll\debug\h5importdll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5lsdll\debug\h5lsdll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5repackdll\debug\h5repackdll.exe hdf5lib\debug\bindll - call :safe_copy tools\h5repartdll\debug\h5repartdll.exe hdf5lib\debug\bindll - - rem ===RELEASE=== - rem include - call :safe_copy src\*.h hdf5lib\release\include - call :safe_delete hdf5lib\release\include\*private.h - rem lib - call :safe_copy proj\hdf5\release\hdf5.lib hdf5lib\release\lib - rem dll - call :safe_copy proj\hdf5dll\release\hdf5dll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5dll\release\hdf5dll.dll hdf5lib\release\dll - rem bin - call :safe_copy hl\tools\gifconv\gif2h5\release\gif2h5.exe hdf5lib\release\bin - call :safe_copy hl\tools\gifconv\h52gif\release\h52gif.exe hdf5lib\release\bin - call :safe_copy tools\h5copy\release\h5copy.exe hdf5lib\release\bin - call :safe_copy tools\h5debug\release\h5debug.exe hdf5lib\release\bin - call :safe_copy tools\h5diff\release\h5diff.exe hdf5lib\release\bin - call :safe_copy tools\h5dump\release\h5dump.exe hdf5lib\release\bin - call :safe_copy tools\h5import\release\h5import.exe hdf5lib\release\bin - call :safe_copy tools\h5jam\release\h5jam.exe hdf5lib\release\bin - call :safe_copy tools\h5ls\release\h5ls.exe hdf5lib\release\bin - call :safe_copy tools\h5mkgrp\release\h5mkgrp.exe hdf5lib\release\bin - call :safe_copy tools\h5repack\release\h5repack.exe hdf5lib\release\bin - call :safe_copy tools\h5repart\release\h5repart.exe hdf5lib\release\bin - call :safe_copy tools\h5stat\release\h5stat.exe hdf5lib\release\bin - call :safe_copy tools\h5unjam\release\h5unjam.exe hdf5lib\release\bin - rem bindll - call :safe_copy hl\tools\gifconvdll\h52gifdll\release\h52gifdll.exe hdf5lib\release\bindll - call :safe_copy hl\tools\gifconvdll\gif2h5dll\release\gif2h5dll.exe hdf5lib\release\bindll - call :safe_copy tools\h5debugdll\release\h5debugdll.exe hdf5lib\release\bindll - call :safe_copy tools\h5diffdll\release\h5diffdll.exe hdf5lib\release\bindll - call :safe_copy tools\h5dumpdll\release\h5dumpdll.exe hdf5lib\release\bindll - call :safe_copy tools\h5importdll\release\h5importdll.exe hdf5lib\release\bindll - call :safe_copy tools\h5lsdll\release\h5lsdll.exe hdf5lib\release\bindll - call :safe_copy tools\h5repackdll\release\h5repackdll.exe hdf5lib\release\bindll - call :safe_copy tools\h5repartdll\release\h5repartdll.exe hdf5lib\release\bindll - - exit /b %nerrors% - - -rem Install HL Libraries and Tools -:install_hl - set nerrors=0 - - rem ===DEBUG=== - rem include - call :safe_copy hl\src\*.h hdf5lib\debug\include - rem lib - call :safe_copy proj\hdf5_hl\debug\hdf5_hld.lib hdf5lib\debug\lib - rem dll - call :safe_copy proj\hdf5_hldll\debug\hdf5_hlddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_hldll\debug\hdf5_hlddll.dll hdf5lib\debug\dll - - rem ===RELEASE=== - rem include - call :safe_copy hl\src\*.h hdf5lib\release\include - rem lib - call :safe_copy proj\hdf5_hl\release\hdf5_hl.lib hdf5lib\release\lib - rem dll - call :safe_copy proj\hdf5_hldll\release\hdf5_hldll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_hldll\release\hdf5_hldll.dll hdf5lib\release\dll - - exit /b %nerrors% - - -rem Install C++ Libraries and Tools -:install_cpp - set nerrors=0 - - REM ===DEBUG=== - rem include - call :safe_copy "c++\src\*.h" hdf5lib\debug\include - rem lib - call :safe_copy proj\hdf5_cpp\debug\hdf5_cppd.lib hdf5lib\debug\lib - rem dll - call :safe_copy proj\hdf5_cppdll\debug\hdf5_cppddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_cppdll\debug\hdf5_cppddll.dll hdf5lib\debug\dll - - rem ===RELEASE=== - rem include - call :safe_copy "c++\src\*.h" hdf5lib\release\include - rem lib - call :safe_copy proj\hdf5_cpp\release\hdf5_cpp.lib hdf5lib\release\lib - rem dll - call :safe_copy proj\hdf5_cppdll\release\hdf5_cppdll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_cppdll\release\hdf5_cppdll.dll hdf5lib\release\dll - - exit /b %nerrors% - - -rem Install HL C++ Libraries and Tools -:install_hlcpp - set nerrors=0 - - rem ===DEBUG=== - rem include - call :safe_copy "hl\c++\src\*.h" hdf5lib\debug\include - rem lib - call :safe_copy proj\hdf5_hl_cpp\debug\hdf5_hl_cppd.lib hdf5lib\debug\lib - rem dll - call :safe_copy proj\hdf5_hl_cppdll\debug\hdf5_hl_cppddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_hl_cppdll\debug\hdf5_hl_cppddll.dll hdf5lib\debug\dll - - rem ===RELEASE=== - rem include - call :safe_copy "hl\c++\src\*.h" hdf5lib\release\include - rem lib - call :safe_copy proj\hdf5_hl_cpp\release\hdf5_hl_cpp.lib hdf5lib\release\lib - rem dll - call :safe_copy proj\hdf5_hl_cppdll\release\hdf5_hl_cppdll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_hl_cppdll\release\hdf5_hl_cppdll.dll hdf5lib\release\dll - - exit /b %nerrors% - - -rem Install Fortran Libraries and Tools -:install_fortran - set nerrors=0 - - rem ===DEBUG=== - rem include - call :safe_copy proj\hdf5_fortran\debug\*.mod hdf5lib\debug\mods - rem lib - call :safe_copy proj\hdf5_fortran\debug\hdf5_fortrand.lib hdf5lib\debug\lib - call :safe_copy proj\hdf5_f90cstub\debug\hdf5_f90cstubd.lib hdf5lib\debug\lib - rem modsdll - call :safe_copy proj\hdf5_fortrandll\debug\*.mod hdf5lib\debug\modsdll - rem dll - call :safe_copy proj\hdf5_fortrandll\debug\hdf5_fortranddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_fortrandll\debug\hdf5_fortranddll.dll hdf5lib\debug\dll - call :safe_copy proj\hdf5_f90cstubdll\debug\hdf5_f90cstubddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_f90cstubdll\debug\hdf5_f90cstubddll.dll hdf5lib\debug\dll - - rem ===RELEASE=== - rem include - call :safe_copy proj\hdf5_fortran\release\*.mod hdf5lib\release\mods - rem lib - call :safe_copy proj\hdf5_fortran\release\hdf5_fortran.lib hdf5lib\release\lib - call :safe_copy proj\hdf5_f90cstub\release\hdf5_f90cstub.lib hdf5lib\release\lib - rem modsdll - call :safe_copy proj\hdf5_fortrandll\release\*.mod hdf5lib\release\modsdll - rem dll - call :safe_copy proj\hdf5_fortrandll\release\hdf5_fortrandll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_fortrandll\release\hdf5_fortrandll.dll hdf5lib\release\dll - call :safe_copy proj\hdf5_f90cstubdll\release\hdf5_f90cstubdll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_f90cstubdll\release\hdf5_f90cstubdll.dll hdf5lib\release\dll - - exit /b %nerrors% - - -rem Install HL Fortran Libraries and Tools -:install_hlfortran - set nerrors=0 - - rem ===DEBUG=== - rem include - call :safe_copy proj\hdf5_hl_fortran\debug\*.mod hdf5lib\debug\mods - rem lib - call :safe_copy proj\hdf5_hl_fortran\debug\hdf5_hl_fortrand.lib hdf5lib\debug\lib - call :safe_copy proj\hdf5_hl_f90cstub\debug\hdf5_hl_f90cstubd.lib hdf5lib\debug\lib - rem modsdll - call :safe_copy proj\hdf5_hl_fortrandll\debug\*.mod hdf5lib\debug\modsdll - rem dll - call :safe_copy proj\hdf5_hl_fortrandll\debug\hdf5_hl_fortranddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_hl_fortrandll\debug\hdf5_hl_fortranddll.dll hdf5lib\debug\dll - call :safe_copy proj\hdf5_hl_f90cstubdll\debug\hdf5_hl_f90cstubddll.lib hdf5lib\debug\dll - call :safe_copy proj\hdf5_hl_f90cstubdll\debug\hdf5_hl_f90cstubddll.dll hdf5lib\debug\dll - - rem ===RELEASE=== - rem include - call :safe_copy proj\hdf5_hl_fortran\release\*.mod hdf5lib\release\mods - rem lib - call :safe_copy proj\hdf5_hl_fortran\release\hdf5_hl_fortran.lib hdf5lib\release\lib - call :safe_copy proj\hdf5_hl_f90cstub\release\hdf5_hl_f90cstub.lib hdf5lib\release\lib - rem modsdll - call :safe_copy proj\hdf5_hl_fortrandll\release\*.mod hdf5lib\release\modsdll - rem dll - call :safe_copy proj\hdf5_hl_fortrandll\release\hdf5_hl_fortrandll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_hl_fortrandll\release\hdf5_hl_fortrandll.dll hdf5lib\release\dll - call :safe_copy proj\hdf5_hl_f90cstubdll\release\hdf5_hl_f90cstubdll.lib hdf5lib\release\dll - call :safe_copy proj\hdf5_hl_f90cstubdll\release\hdf5_hl_f90cstubdll.dll hdf5lib\release\dll - - exit /b %nerrors% - - -:main - - call :create_directories - - call :install_c - if %errorlevel% equ 0 ( - echo.C libraries and tools installed - ) else ( - echo.C libraries and tools NOT installed - ) - - call :install_hl - if %errorlevel% equ 0 ( - echo.High Level C libraries and tools installed - ) else ( - echo.High Level C libraries and tools NOT installed - ) - - call :install_cpp - if %errorlevel% equ 0 ( - echo.C++ libraries and tools installed - ) else ( - echo.C++ libraries and tools NOT installed - ) - - call :install_hlcpp - if %errorlevel% equ 0 ( - echo.High Level C++ libraries and tools installed - ) else ( - echo.High Level C++ libraries and tools NOT installed - ) - - call :install_fortran - if %errorlevel% equ 0 ( - echo.Fortran libraries and tools installed - ) else ( - echo.Fortran libraries and tools NOT installed - ) - - call :install_hlfortran - if %errorlevel% equ 0 ( - echo.High Level Fortran libraries and tools installed - ) else ( - echo.High Level Fortran libraries and tools NOT installed - ) - - popd - endlocal & exit /b 0 diff --git a/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj b/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj deleted file mode 100644 index 22a4d18..0000000 --- a/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj b/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj deleted file mode 100644 index 624f155..0000000 --- a/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/misc/typegen/h5libsettings/h5libsettings.vcproj b/windows/misc/typegen/h5libsettings/h5libsettings.vcproj deleted file mode 100644 index 8a86079..0000000 --- a/windows/misc/typegen/h5libsettings/h5libsettings.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/misc/typegen/h5match_types/h5match_types.vcproj b/windows/misc/typegen/h5match_types/h5match_types.vcproj deleted file mode 100644 index 1bad059..0000000 --- a/windows/misc/typegen/h5match_types/h5match_types.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/misc/typegen/h5tinit/h5tinit.vcproj b/windows/misc/typegen/h5tinit/h5tinit.vcproj deleted file mode 100644 index 55cf356..0000000 --- a/windows/misc/typegen/h5tinit/h5tinit.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/perform/checkperformtests.bat b/windows/perform/checkperformtests.bat deleted file mode 100644 index 228dbe5..0000000 --- a/windows/perform/checkperformtests.bat +++ /dev/null @@ -1,102 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 performance tools -rem -rem Created: Scott Wegner, 9/10/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_PERFTEST_", as we use these for our -rem tests. Also clear "HDF5_PERFTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_perftest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_perftest_') do set %%a= -set hdf5_perftest_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the perftest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_perftest_tests=%hdf5_perftest_tests% %1 - set hdf5_perftest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_perftest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_perftest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test iopipe%2 ..\test\iopipe%2\%1 - call :add_test chunk%2 ..\test\chunk%2\%1 - call :add_test overhead%2 ..\test\overhead%2\%1 - call :add_test perf_serial%2 ..\perform\perf_serial%2\%1 - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All performance tests passed. - ) else ( - echo.** FAILED performance tests. - ) - - popd - endlocal & exit /b %nerrors% - \ No newline at end of file diff --git a/windows/perform/perf_serial/perf_serial.vcproj b/windows/perform/perf_serial/perf_serial.vcproj deleted file mode 100644 index c9302a7..0000000 --- a/windows/perform/perf_serial/perf_serial.vcproj +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/perform/perf_serialdll/perf_serialdll.vcproj b/windows/perform/perf_serialdll/perf_serialdll.vcproj deleted file mode 100644 index a657ab7..0000000 --- a/windows/perform/perf_serialdll/perf_serialdll.vcproj +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/all/all.sln b/windows/proj/all/all.sln deleted file mode 100755 index 1821f3c..0000000 --- a/windows/proj/all/all.sln +++ /dev/null @@ -1,2492 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "all", "all.vcproj", "{24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}" - ProjectSection(ProjectDependencies) = postProject - {8C6D9C00-44A9-432F-B695-F56439C1B288} = {8C6D9C00-44A9-432F-B695-F56439C1B288} - {0A049202-6533-413E-89D6-5D6866AAE703} = {0A049202-6533-413E-89D6-5D6866AAE703} - {6FFCE804-EF4A-468F-A174-561934C153A1} = {6FFCE804-EF4A-468F-A174-561934C153A1} - {4AC79406-D6E0-43B3-82B0-7A032FABB52A} = {4AC79406-D6E0-43B3-82B0-7A032FABB52A} - {E1F98D07-4724-46CB-B327-5677C1C9266D} = {E1F98D07-4724-46CB-B327-5677C1C9266D} - {364FF608-7969-4ED1-95B2-8592872F8264} = {364FF608-7969-4ED1-95B2-8592872F8264} - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {854F7E09-CEB5-44CD-B924-3FFAC7936323} = {854F7E09-CEB5-44CD-B924-3FFAC7936323} - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5} = {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5} - {89DA820B-7A3B-46FA-AE09-971A739BEEFD} = {89DA820B-7A3B-46FA-AE09-971A739BEEFD} - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4} = {0D18A50F-52B3-4322-AC0D-F15CD657CEC4} - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90} = {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90} - {B21CA611-6DAE-4051-8B4C-989E135711B1} = {B21CA611-6DAE-4051-8B4C-989E135711B1} - {9FCBE814-3818-4F1A-975D-05BAF6FF432F} = {9FCBE814-3818-4F1A-975D-05BAF6FF432F} - {52E83C17-2B68-44B5-881D-4F6338FB14C7} = {52E83C17-2B68-44B5-881D-4F6338FB14C7} - {E3B24219-DEB9-4ECB-809C-AD98EE51974E} = {E3B24219-DEB9-4ECB-809C-AD98EE51974E} - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0} = {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0} - {D279901A-8E21-47D3-B7EA-A572EE12F2E6} = {D279901A-8E21-47D3-B7EA-A572EE12F2E6} - {411D221C-9FA1-417E-8A2B-DF746F4C7E07} = {411D221C-9FA1-417E-8A2B-DF746F4C7E07} - {794B7E1E-E6AD-456D-9F33-FCE317325EC4} = {794B7E1E-E6AD-456D-9F33-FCE317325EC4} - {7D293021-0601-498B-91B8-C49580EFB08D} = {7D293021-0601-498B-91B8-C49580EFB08D} - {BE1A0022-708E-4CC2-B01C-26BD99AB6576} = {BE1A0022-708E-4CC2-B01C-26BD99AB6576} - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D} = {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D} - {C4811E26-A7DA-424D-8A44-F29DFD588533} = {C4811E26-A7DA-424D-8A44-F29DFD588533} - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5} = {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5} - {2248C52C-75DC-465B-A598-6E89CC93E00D} = {2248C52C-75DC-465B-A598-6E89CC93E00D} - {834DD32C-D078-441F-95F4-9CDE108B60AE} = {834DD32C-D078-441F-95F4-9CDE108B60AE} - {AF696934-5004-4C1D-90C3-B434E92AFB89} = {AF696934-5004-4C1D-90C3-B434E92AFB89} - {3EDEB434-F59E-4C50-8884-F0BB29845619} = {3EDEB434-F59E-4C50-8884-F0BB29845619} - {69952435-F01F-46A7-B907-A78EBC864ED7} = {69952435-F01F-46A7-B907-A78EBC864ED7} - {D4395435-B3B0-4937-9AC5-89BD73C47303} = {D4395435-B3B0-4937-9AC5-89BD73C47303} - {196F5935-2391-49A7-B6A2-410DF8149F0D} = {196F5935-2391-49A7-B6A2-410DF8149F0D} - {E5C9E235-E10F-4F46-A94F-A112CD8D867E} = {E5C9E235-E10F-4F46-A94F-A112CD8D867E} - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5} = {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5} - {0C5E3F36-3338-4B2C-A956-4D577B6119E7} = {0C5E3F36-3338-4B2C-A956-4D577B6119E7} - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF} = {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF} - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892} = {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892} - {80892339-F6CE-4E96-B61B-131095F2612D} = {80892339-F6CE-4E96-B61B-131095F2612D} - {9ADAE03A-2060-471E-A7B5-9D8F6995223A} = {9ADAE03A-2060-471E-A7B5-9D8F6995223A} - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF} = {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF} - {D8D53F43-41EE-486A-8DBD-956D8CD072E8} = {D8D53F43-41EE-486A-8DBD-956D8CD072E8} - {CEA44545-33C8-4C63-9F8C-85BA48F45637} = {CEA44545-33C8-4C63-9F8C-85BA48F45637} - {03359B45-E43D-44B3-BDE5-8B14D9F0D827} = {03359B45-E43D-44B3-BDE5-8B14D9F0D827} - {F5109F4B-5869-40A7-BC6A-8130CA4BB987} = {F5109F4B-5869-40A7-BC6A-8130CA4BB987} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - {3C224452-C71A-4B3E-937A-891144D1941D} = {3C224452-C71A-4B3E-937A-891144D1941D} - {37605955-FA00-41C9-9D39-D078CF270376} = {37605955-FA00-41C9-9D39-D078CF270376} - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {57A5C559-F1BD-49F1-9B5E-13591D22FD75} = {57A5C559-F1BD-49F1-9B5E-13591D22FD75} - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F} = {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - {5A90FD64-6EED-45E1-A147-D9FE72788570} = {5A90FD64-6EED-45E1-A147-D9FE72788570} - {68A52165-E0EF-4019-B658-1AC734649955} = {68A52165-E0EF-4019-B658-1AC734649955} - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB} = {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB} - {737F7A65-62E7-4707-B3DB-B9856131687D} = {737F7A65-62E7-4707-B3DB-B9856131687D} - {6312B365-AA53-43AA-BD00-848C1323CA8B} = {6312B365-AA53-43AA-BD00-848C1323CA8B} - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823} = {C4BA3E66-2310-43E7-B30A-ABDCCF44D823} - {AE5D4766-9668-4EB5-B801-5DF8F53363FC} = {AE5D4766-9668-4EB5-B801-5DF8F53363FC} - {C325E167-DBC3-4611-8AC8-2A118432E35B} = {C325E167-DBC3-4611-8AC8-2A118432E35B} - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03} = {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03} - {7E207F6A-DC28-4DEB-8454-7977092131DC} = {7E207F6A-DC28-4DEB-8454-7977092131DC} - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767} = {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767} - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0} = {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0} - {C2E6106F-1450-4F62-8D8E-17A93E986B26} = {C2E6106F-1450-4F62-8D8E-17A93E986B26} - {0DA16B6F-0156-417A-9093-589D55BB066C} = {0DA16B6F-0156-417A-9093-589D55BB066C} - {D1518671-CB9D-471F-8BCE-A03DE67F26B1} = {D1518671-CB9D-471F-8BCE-A03DE67F26B1} - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD} = {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {8792D377-8105-4C67-87F1-115E48D0178F} = {8792D377-8105-4C67-87F1-115E48D0178F} - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50} = {2DCDB978-79B7-4A3A-B24A-D908A49B7D50} - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7} = {9AAC897A-70FA-4E5E-BF48-F664C12B05C7} - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B} = {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B} - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35} = {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35} - {EBF7C380-5F58-462D-993D-75B53F83FA81} = {EBF7C380-5F58-462D-993D-75B53F83FA81} - {71A1C081-FF1C-452B-B938-95551D565302} = {71A1C081-FF1C-452B-B938-95551D565302} - {7693B383-C2CB-43FD-A428-598F73D214F7} = {7693B383-C2CB-43FD-A428-598F73D214F7} - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B} = {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B} - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0} = {DFE42486-47A2-487C-81B9-DDCDA9F07BF0} - {A90ADD88-DA1B-4642-A97B-37DF89433858} = {A90ADD88-DA1B-4642-A97B-37DF89433858} - {98AE818A-E887-414B-985F-85F8411916C9} = {98AE818A-E887-414B-985F-85F8411916C9} - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6} = {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6} - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF} = {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF} - {8708E58C-F990-4B6C-AD83-745CA9582E92} = {8708E58C-F990-4B6C-AD83-745CA9582E92} - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0} = {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0} - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169} = {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169} - {FD8B058E-F53A-4197-B75E-849904E5AA79} = {FD8B058E-F53A-4197-B75E-849904E5AA79} - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F} = {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F} - {EFA04391-B35B-44C0-AB27-1383D4C9E358} = {EFA04391-B35B-44C0-AB27-1383D4C9E358} - {9A226D92-9326-4907-A462-25997D5C9427} = {9A226D92-9326-4907-A462-25997D5C9427} - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F} = {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F} - {34EEE194-B77E-453E-9C59-252C0421188A} = {34EEE194-B77E-453E-9C59-252C0421188A} - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - {0E0F449A-7998-4113-BDD2-A74E0B6D3466} = {0E0F449A-7998-4113-BDD2-A74E0B6D3466} - {D15E5D9B-A1A6-4935-889C-D880FD0068CE} = {D15E5D9B-A1A6-4935-889C-D880FD0068CE} - {3E41969B-D69B-4235-B192-A94F7853D869} = {3E41969B-D69B-4235-B192-A94F7853D869} - {4941199C-EB11-460D-8EF7-9F68293AE202} = {4941199C-EB11-460D-8EF7-9F68293AE202} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC} = {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC} - {8CE6FF9D-8A14-4A45-971A-18972109AC9D} = {8CE6FF9D-8A14-4A45-971A-18972109AC9D} - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4} = {AA7A40A2-A837-4557-AB3D-D64980F6F8E4} - {0C618DA2-4097-46B9-83D0-144AEB774568} = {0C618DA2-4097-46B9-83D0-144AEB774568} - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8} = {7C30B2A4-A24D-4796-9754-CABBDB46D0F8} - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33} = {D1AADCA9-FB5A-4F44-8E11-8232941E2C33} - {E02CDAAC-05F4-436B-B245-2A402FFA131F} = {E02CDAAC-05F4-436B-B245-2A402FFA131F} - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160} = {EC6B5EAD-D938-4211-A7B1-01C9D2C15160} - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30} = {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30} - {265C41B2-30D7-4FF8-A08C-B997363DA763} = {265C41B2-30D7-4FF8-A08C-B997363DA763} - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3} = {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3} - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3} = {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3} - {DBA493BD-3AF1-4616-8A80-F6FD41B70392} = {DBA493BD-3AF1-4616-8A80-F6FD41B70392} - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D} = {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D} - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0} = {4F8B23C1-9832-4C3B-A836-2FBB53F628A0} - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850} = {18FBE8C2-CD20-4D99-9E0B-63B408CE4850} - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A} = {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A} - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14} = {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14} - {9321B2C5-74B3-4743-9D87-B0FDCB47373B} = {9321B2C5-74B3-4743-9D87-B0FDCB47373B} - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05} = {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05} - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF} = {1C5A9EC8-F882-4A8A-B773-E79CD46369AF} - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7} = {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7} - {F4386ECB-D688-4C18-A091-673F1F8A96E7} = {F4386ECB-D688-4C18-A091-673F1F8A96E7} - {E81413CC-046C-42B0-B862-0BB81AED2854} = {E81413CC-046C-42B0-B862-0BB81AED2854} - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B} = {5CC7FFCE-2612-41B6-AF83-C1B61F67949B} - {D10F67D0-8057-49C2-A62A-12D0C512288E} = {D10F67D0-8057-49C2-A62A-12D0C512288E} - {B36344D1-122C-4BC6-A292-CC82F74CBB0A} = {B36344D1-122C-4BC6-A292-CC82F74CBB0A} - {165195D1-B742-4030-8B12-3FE94B829D45} = {165195D1-B742-4030-8B12-3FE94B829D45} - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851} = {6410E6D2-EDBF-439D-8C43-1AB0C37AC851} - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A} = {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A} - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91} = {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91} - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF} = {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF} - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700} = {9E588AD8-14BD-4BA3-B4EA-16D1D882C700} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5} = {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5} - {55894CDC-C220-40FE-B403-D74EAC6EBACF} = {55894CDC-C220-40FE-B403-D74EAC6EBACF} - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2} = {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2} - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE} = {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE} - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8} = {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8} - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835} = {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835} - {E6A9BFE8-84DE-46C0-A372-72087598018E} = {E6A9BFE8-84DE-46C0-A372-72087598018E} - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098} = {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098} - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21} = {A26C50E9-D3FB-4490-9CD7-606EB2E77D21} - {1AB767EA-546C-4F72-BC1F-6AA0458512D8} = {1AB767EA-546C-4F72-BC1F-6AA0458512D8} - {1B298EEC-0B47-4145-88AA-C6558E0BD993} = {1B298EEC-0B47-4145-88AA-C6558E0BD993} - {685666ED-4640-47EE-AEA5-35B9602CA541} = {685666ED-4640-47EE-AEA5-35B9602CA541} - {E8896FEE-8601-4AFC-91EA-6F9698574174} = {E8896FEE-8601-4AFC-91EA-6F9698574174} - {4E8105F2-56D4-45D6-9017-706F804052E7} = {4E8105F2-56D4-45D6-9017-706F804052E7} - {0CB176F2-1FA9-467A-986D-512FAD8144B0} = {0CB176F2-1FA9-467A-986D-512FAD8144B0} - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7} = {C35122F6-49FF-4AAA-A2AA-482628E5E2A7} - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27} = {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27} - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4} = {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4} - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4} = {3BBA31F8-2679-4655-975D-52FDA5ABD5C4} - {D1FD44F8-8263-4B29-985D-21CE26F45A76} = {D1FD44F8-8263-4B29-985D-21CE26F45A76} - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC} = {309CE6F8-4658-44CB-8E99-0B86DCA77EFC} - {34C0FDFA-81D6-4652-B841-894BD1A15FB0} = {34C0FDFA-81D6-4652-B841-894BD1A15FB0} - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33} = {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33} - {BA86B1FE-8CA7-4A96-9FD0-11941F885589} = {BA86B1FE-8CA7-4A96-9FD0-11941F885589} - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED} = {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED} - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF} = {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "big", "..\..\test\big\big.vcproj", "{009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bigdll", "..\..\test\bigdll\bigdll.vcproj", "{8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "binread", "..\..\tools\testfiles\binread\binread.vcproj", "{BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bittests", "..\..\test\bittests\bittests.vcproj", "{958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bittestsdll", "..\..\test\bittestsdll\bittestsdll.vcproj", "{E5C9E235-E10F-4F46-A94F-A112CD8D867E}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "btree2", "..\..\test\btree2\btree2.vcproj", "{8CE6FF9D-8A14-4A45-971A-18972109AC9D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "btree2dll", "..\..\test\btree2dll\btree2dll.vcproj", "{34EEE194-B77E-453E-9C59-252C0421188A}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cache", "..\..\test\cache\cache.vcproj", "{4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cache_api", "..\..\test\cache_api\cache_api.vcproj", "{4F8B23C1-9832-4C3B-A836-2FBB53F628A0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cache_apidll", "..\..\test\cache_apidll\cache_apidll.vcproj", "{EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cachedll", "..\..\test\cachedll\cachedll.vcproj", "{D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunk", "..\..\test\chunk\chunk.vcproj", "{57A5C559-F1BD-49F1-9B5E-13591D22FD75}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunkdll", "..\..\test\chunkdll\chunkdll.vcproj", "{4941199C-EB11-460D-8EF7-9F68293AE202}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmpd_dset", "..\..\test\cmpd_dset\cmpd_dset.vcproj", "{BA86B1FE-8CA7-4A96-9FD0-11941F885589}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmpd_dsetdll", "..\..\test\cmpd_dsetdll\cmpd_dsetdll.vcproj", "{8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cross_read", "..\..\test\cross_read\cross_read.vcproj", "{68A52165-E0EF-4019-B658-1AC734649955}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cross_readdll", "..\..\test\cross_readdll\cross_readdll.vcproj", "{E1F98D07-4724-46CB-B327-5677C1C9266D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dangle", "..\..\test\dangle\dangle.vcproj", "{8C6D9C00-44A9-432F-B695-F56439C1B288}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dangledll", "..\..\test\dangledll\dangledll.vcproj", "{D15E5D9B-A1A6-4935-889C-D880FD0068CE}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsets", "..\..\test\dsets\dsets.vcproj", "{A90ADD88-DA1B-4642-A97B-37DF89433858}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsetsdll", "..\..\test\dsetsdll\dsetsdll.vcproj", "{1B298EEC-0B47-4145-88AA-C6558E0BD993}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dt_arith", "..\..\test\dt_arith\dt_arith.vcproj", "{AE5D4766-9668-4EB5-B801-5DF8F53363FC}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dt_arithdll", "..\..\test\dt_arithdll\dt_arithdll.vcproj", "{3E41969B-D69B-4235-B192-A94F7853D869}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtransform", "..\..\test\dtransform\dtransform.vcproj", "{F5109F4B-5869-40A7-BC6A-8130CA4BB987}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtransformdll", "..\..\test\dtransformdll\dtransformdll.vcproj", "{0E0F449A-7998-4113-BDD2-A74E0B6D3466}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtypes", "..\..\test\dtypes\dtypes.vcproj", "{4AC79406-D6E0-43B3-82B0-7A032FABB52A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtypesdll", "..\..\test\dtypesdll\dtypesdll.vcproj", "{AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enum", "..\..\test\enum\enum.vcproj", "{FD8B058E-F53A-4197-B75E-849904E5AA79}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enumdll", "..\..\test\enumdll\enumdll.vcproj", "{D8D53F43-41EE-486A-8DBD-956D8CD072E8}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "error_test", "..\..\test\error_test\error_test.vcproj", "{7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "error_testdll", "..\..\test\error_testdll\error_testdll.vcproj", "{55894CDC-C220-40FE-B403-D74EAC6EBACF}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "err_compat", "..\..\test\err_compat\err_compat.vcproj", "{265C41B2-30D7-4FF8-A08C-B997363DA763}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "err_compatdll", "..\..\test\err_compatdll\err_compatdll.vcproj", "{309CE6F8-4658-44CB-8E99-0B86DCA77EFC}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extend", "..\..\test\extend\extend.vcproj", "{8708E58C-F990-4B6C-AD83-745CA9582E92}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extenddll", "..\..\test\extenddll\extenddll.vcproj", "{76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "external", "..\..\test\external\external.vcproj", "{7D293021-0601-498B-91B8-C49580EFB08D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "externaldll", "..\..\test\externaldll\externaldll.vcproj", "{0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fheap", "..\..\test\fheap\fheap.vcproj", "{AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fheapdll", "..\..\test\fheapdll\fheapdll.vcproj", "{CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fillval", "..\..\test\fillval\fillval.vcproj", "{CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fillvaldll", "..\..\test\fillvaldll\fillvaldll.vcproj", "{0CB176F2-1FA9-467A-986D-512FAD8144B0}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush1", "..\..\test\flush1\flush1.vcproj", "{364FF608-7969-4ED1-95B2-8592872F8264}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush1dll", "..\..\test\flush1dll\flush1dll.vcproj", "{B36344D1-122C-4BC6-A292-CC82F74CBB0A}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush2", "..\..\test\flush2\flush2.vcproj", "{E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush2dll", "..\..\test\flush2dll\flush2dll.vcproj", "{F4386ECB-D688-4C18-A091-673F1F8A96E7}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getname", "..\..\test\getname\getname.vcproj", "{B21CA611-6DAE-4051-8B4C-989E135711B1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getnamedll", "..\..\test\getnamedll\getnamedll.vcproj", "{80892339-F6CE-4E96-B61B-131095F2612D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getub", "..\..\test\getub\getub.vcproj", "{2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gheap", "..\..\test\gheap\gheap.vcproj", "{9FCBE814-3818-4F1A-975D-05BAF6FF432F}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gheapdll", "..\..\test\gheapdll\gheapdll.vcproj", "{0DA16B6F-0156-417A-9093-589D55BB066C}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gif2h5", "..\..\hl\tools\gifconv\gif2h5.vcproj", "{7C30B2A4-A24D-4796-9754-CABBDB46D0F8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gif2h5dll", "..\..\hl\tools\gifconvdll\gif2h5dll.vcproj", "{C325E167-DBC3-4611-8AC8-2A118432E35B}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h52gif", "..\..\hl\tools\gifconv\h52gif.vcproj", "{AA7A40A2-A837-4557-AB3D-D64980F6F8E4}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h52gifdll", "..\..\hl\tools\gifconvdll\h52gifdll.vcproj", "{834DD32C-D078-441F-95F4-9CDE108B60AE}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5copy", "..\..\tools\h5copy\h5copy.vcproj", "{69952435-F01F-46A7-B907-A78EBC864ED7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5debug", "..\..\tools\h5debug\h5debug.vcproj", "{BE1A0022-708E-4CC2-B01C-26BD99AB6576}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5debugdll", "..\..\tools\h5debugdll\h5debugdll.vcproj", "{D10F67D0-8057-49C2-A62A-12D0C512288E}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5diff", "..\..\tools\h5diff\h5diff.vcproj", "{1C5A9EC8-F882-4A8A-B773-E79CD46369AF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5diffdll", "..\..\tools\h5diffdll\h5diffdll.vcproj", "{EC6B5EAD-D938-4211-A7B1-01C9D2C15160}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5difftst", "..\..\tools\TESTFILES\h5difftst\h5difftst.vcproj", "{1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5dump", "..\..\tools\h5dump\h5dump.vcproj", "{9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5dumpdll", "..\..\tools\h5dumpdll\h5dumpdll.vcproj", "{7E207F6A-DC28-4DEB-8454-7977092131DC}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5dumptst", "..\..\tools\testfiles\h5dumptst\h5dumptst.vcproj", "{0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5import", "..\..\tools\h5import\h5import.vcproj", "{9E588AD8-14BD-4BA3-B4EA-16D1D882C700}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5importdll", "..\..\tools\h5importdll\h5importdll.vcproj", "{2DCDB978-79B7-4A3A-B24A-D908A49B7D50}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5importtst", "..\..\tools\TESTFILES\h5importtst\h5importtst.vcproj", "{AF696934-5004-4C1D-90C3-B434E92AFB89}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5jam", "..\..\tools\h5jam\h5jam.vcproj", "{196F5935-2391-49A7-B6A2-410DF8149F0D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5jamtst", "..\..\tools\TESTFILES\h5jamtst\h5jamtst.vcproj", "{E8896FEE-8601-4AFC-91EA-6F9698574174}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5ls", "..\..\tools\h5ls\h5ls.vcproj", "{357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5lsdll", "..\..\tools\h5lsdll\h5lsdll.vcproj", "{18FBE8C2-CD20-4D99-9E0B-63B408CE4850}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5mkgrp", "..\..\tools\h5mkgrp\h5mkgrp.vcproj", "{ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repack", "..\..\tools\h5repack\h5repack.vcproj", "{411D221C-9FA1-417E-8A2B-DF746F4C7E07}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repackdll", "..\..\tools\h5repackdll\h5repackdll.vcproj", "{854F7E09-CEB5-44CD-B924-3FFAC7936323}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repacktst", "..\..\tools\testfiles\h5repacktst\h5repacktst.vcproj", "{AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repart", "..\..\tools\h5repart\h5repart.vcproj", "{F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repart_gentest", "..\..\tools\TESTFILES\h5repart_gentest\h5repart_gentest.vcproj", "{EBF7C380-5F58-462D-993D-75B53F83FA81}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repartdll", "..\..\tools\h5repartdll\h5repartdll.vcproj", "{89DA820B-7A3B-46FA-AE09-971A739BEEFD}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5reparttst", "..\..\tools\TESTFILES\h5reparttst\h5reparttst.vcproj", "{53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5stat", "..\..\tools\h5stat\h5stat.vcproj", "{405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5statdll", "..\..\tools\h5statdll\h5statdll.vcproj", "{165195D1-B742-4030-8B12-3FE94B829D45}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5unjam", "..\..\tools\h5unjam\h5unjam.vcproj", "{52E83C17-2B68-44B5-881D-4F6338FB14C7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5", "..\hdf5\hdf5.vcproj", "{26346A09-C500-49E7-963A-D22A8E09AAB7}" - ProjectSection(ProjectDependencies) = postProject - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757} = {50D207BC-2B27-4BD9-B5D4-FCF8358BE757} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_cpp", "..\hdf5_cpp\hdf5_cpp.vcproj", "{FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_cppdll", "..\hdf5_cppdll\hdf5_cppdll.vcproj", "{D279901A-8E21-47D3-B7EA-A572EE12F2E6}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl", "..\hdf5_hl\hdf5_hl.vcproj", "{9A124450-EC54-4813-B0B1-2CA96B695009}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl_cpp", "..\hdf5_hl_cpp\hdf5_hl_cpp.vcproj", "{7693B383-C2CB-43FD-A428-598F73D214F7}" - ProjectSection(ProjectDependencies) = postProject - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl_cppdll", "..\hdf5_hl_cppdll\hdf5_hl_cppdll.vcproj", "{3EDEB434-F59E-4C50-8884-F0BB29845619}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hldll", "..\hdf5_hldll\hdf5_hldll.vcproj", "{CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5dll", "..\hdf5dll\hdf5dll.vcproj", "{C9535AD9-C61D-4691-A5CE-52EF359892AF}" - ProjectSection(ProjectDependencies) = postProject - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_ds", "..\..\hl\test\hl_test_ds\hl_test_ds.vcproj", "{6410E6D2-EDBF-439D-8C43-1AB0C37AC851}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_dsdll", "..\..\hl\test\hl_test_dsdll\hl_test_dsdll.vcproj", "{3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_image", "..\..\hl\test\hl_test_image\hl_test_image.vcproj", "{03359B45-E43D-44B3-BDE5-8B14D9F0D827}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_imagedll", "..\..\hl\test\hl_test_imagedll\hl_test_imagedll.vcproj", "{9A226D92-9326-4907-A462-25997D5C9427}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_lite", "..\..\hl\test\hl_test_lite\hl_test_lite.vcproj", "{6FFCE804-EF4A-468F-A174-561934C153A1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_litedll", "..\..\hl\test\hl_test_litedll\hl_test_litedll.vcproj", "{98AE818A-E887-414B-985F-85F8411916C9}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_packet", "..\..\hl\test\hl_test_packet\hl_test_packet.vcproj", "{5CC7FFCE-2612-41B6-AF83-C1B61F67949B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_packetdll", "..\..\hl\test\hl_test_packetdll\hl_test_packetdll.vcproj", "{E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_table", "..\..\hl\test\hl_test_table\hl_test_table.vcproj", "{43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_table_cpp", "..\..\hl\c++\test\hl_test_table_cpp\hl_test_table_cpp.vcproj", "{6312B365-AA53-43AA-BD00-848C1323CA8B}" - ProjectSection(ProjectDependencies) = postProject - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - {7693B383-C2CB-43FD-A428-598F73D214F7} = {7693B383-C2CB-43FD-A428-598F73D214F7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_table_cppdll", "..\..\hl\c++\test\hl_test_table_cppdll\hl_test_table_cppdll.vcproj", "{0D18A50F-52B3-4322-AC0D-F15CD657CEC4}" - ProjectSection(ProjectDependencies) = postProject - {D279901A-8E21-47D3-B7EA-A572EE12F2E6} = {D279901A-8E21-47D3-B7EA-A572EE12F2E6} - {3EDEB434-F59E-4C50-8884-F0BB29845619} = {3EDEB434-F59E-4C50-8884-F0BB29845619} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_tabledll", "..\..\hl\test\hl_test_tabledll\hl_test_tabledll.vcproj", "{D1AADCA9-FB5A-4F44-8E11-8232941E2C33}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hyperslab", "..\..\test\hyperslab\hyperslab.vcproj", "{1AB767EA-546C-4F72-BC1F-6AA0458512D8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hyperslabdll", "..\..\test\hyperslabdll\hyperslabdll.vcproj", "{CEA44545-33C8-4C63-9F8C-85BA48F45637}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iopipe", "..\..\test\iopipe\iopipe.vcproj", "{73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iopipedll", "..\..\test\iopipedll\iopipedll.vcproj", "{4E8105F2-56D4-45D6-9017-706F804052E7}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "istore", "..\..\test\istore\istore.vcproj", "{C4BA3E66-2310-43E7-B30A-ABDCCF44D823}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "istoredll", "..\..\test\istoredll\istoredll.vcproj", "{BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lheap", "..\..\test\lheap\lheap.vcproj", "{5A90FD64-6EED-45E1-A147-D9FE72788570}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lheapdll", "..\..\test\lheapdll\lheapdll.vcproj", "{E02CDAAC-05F4-436B-B245-2A402FFA131F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtest", "..\..\test\libtest\libtest.vcproj", "{A80D439C-37B4-4619-A122-1C69F567733B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtestdll", "..\..\test\libtestdll\libtestdll.vcproj", "{54BDA057-C716-4807-A35E-73185DCB236D}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "links", "..\..\test\links\links.vcproj", "{8792D377-8105-4C67-87F1-115E48D0178F}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "linksdll", "..\..\test\linksdll\linksdll.vcproj", "{27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mount", "..\..\test\mount\mount.vcproj", "{4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mountdll", "..\..\test\mountdll\mountdll.vcproj", "{CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mtime", "..\..\test\mtime\mtime.vcproj", "{40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mtimedll", "..\..\test\mtimedll\mtimedll.vcproj", "{7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntypes", "..\..\test\ntypes\ntypes.vcproj", "{0A049202-6533-413E-89D6-5D6866AAE703}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntypesdll", "..\..\test\ntypesdll\ntypesdll.vcproj", "{9AAC897A-70FA-4E5E-BF48-F664C12B05C7}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "objcopy", "..\..\test\objcopy\objcopy.vcproj", "{34C0FDFA-81D6-4652-B841-894BD1A15FB0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "objcopydll", "..\..\test\objcopydll\objcopydll.vcproj", "{794B7E1E-E6AD-456D-9F33-FCE317325EC4}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ohdr", "..\..\test\ohdr\ohdr.vcproj", "{DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ohdrdll", "..\..\test\ohdrdll\ohdrdll.vcproj", "{37605955-FA00-41C9-9D39-D078CF270376}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "overhead", "..\..\test\overhead\overhead.vcproj", "{9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "overheaddll", "..\..\test\overheaddll\overheaddll.vcproj", "{71A1C081-FF1C-452B-B938-95551D565302}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pool", "..\..\test\pool\pool.vcproj", "{9ADAE03A-2060-471E-A7B5-9D8F6995223A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pooldll", "..\..\test\pooldll\pooldll.vcproj", "{DFE42486-47A2-487C-81B9-DDCDA9F07BF0}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reserved", "..\..\test\reserved\reserved.vcproj", "{2248C52C-75DC-465B-A598-6E89CC93E00D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reserveddll", "..\..\test\reserveddll\reserveddll.vcproj", "{C2E6106F-1450-4F62-8D8E-17A93E986B26}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_extent", "..\..\test\set_extent\set_extent.vcproj", "{E81413CC-046C-42B0-B862-0BB81AED2854}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_extentdll", "..\..\test\set_extentdll\set_extentdll.vcproj", "{14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stab", "..\..\test\stab\stab.vcproj", "{17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stabdll", "..\..\test\stabdll\stabdll.vcproj", "{7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "talign", "..\..\tools\talign\talign.vcproj", "{E6A9BFE8-84DE-46C0-A372-72087598018E}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taligndll", "..\..\tools\taligndll\taligndll.vcproj", "{3BBA31F8-2679-4655-975D-52FDA5ABD5C4}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tellub", "..\..\test\tellub\tellub.vcproj", "{A26C50E9-D3FB-4490-9CD7-606EB2E77D21}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testh5repack_detect_szip", "..\..\tools\TESTFILES\testh5repack_detect_szip\testh5repack_detect_szip.vcproj", "{5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testh5repack_detect_szipdll", "..\..\tools\TESTFILES\testh5repack_detect_szipdll\testh5repack_detect_szipdll.vcproj", "{E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5", "..\..\test\testhdf5\testhdf5.vcproj", "{D1518671-CB9D-471F-8BCE-A03DE67F26B1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5_cpp", "..\..\c++\test\testhdf5_cpp\testhdf5_cpp.vcproj", "{EFA04391-B35B-44C0-AB27-1383D4C9E358}" - ProjectSection(ProjectDependencies) = postProject - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5_cppdll", "..\..\c++\test\testhdf5_cppdll\testhdf5_cppdll.vcproj", "{DBA493BD-3AF1-4616-8A80-F6FD41B70392}" - ProjectSection(ProjectDependencies) = postProject - {D279901A-8E21-47D3-B7EA-A572EE12F2E6} = {D279901A-8E21-47D3-B7EA-A572EE12F2E6} - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5dll", "..\..\test\testhdf5dll\testhdf5dll.vcproj", "{D1FD44F8-8263-4B29-985D-21CE26F45A76}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolslib", "..\..\tools\toolslib\toolslib.vcproj", "{473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolslibdll", "..\..\tools\toolslibdll\toolslibdll.vcproj", "{832DD776-BC7F-40B5-90D0-E6448014CA5B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttsafedll", "..\..\test\ttsafedll\ttsafedll.vcproj", "{DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unlink", "..\..\test\unlink\unlink.vcproj", "{9321B2C5-74B3-4743-9D87-B0FDCB47373B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unlinkdll", "..\..\test\unlinkdll\unlinkdll.vcproj", "{685666ED-4640-47EE-AEA5-35B9602CA541}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vfd", "..\..\test\vfd\vfd.vcproj", "{744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vfddll", "..\..\test\vfddll\vfddll.vcproj", "{0C5E3F36-3338-4B2C-A956-4D577B6119E7}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5tinit", "..\..\misc\typegen\h5tinit\h5tinit.vcproj", "{B123D196-2F43-4FEB-80B5-990F06DED319}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunk_info", "..\..\test\chunk_info\chunk_info.vcproj", "{E3B24219-DEB9-4ECB-809C-AD98EE51974E}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunk_infodll", "..\..\test\chunk_infodll\chunk_infodll.vcproj", "{D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "app_ref", "..\..\test\app_ref\app_ref.vcproj", "{C35122F6-49FF-4AAA-A2AA-482628E5E2A7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "app_refdll", "..\..\test\app_refdll\app_refdll.vcproj", "{0C618DA2-4097-46B9-83D0-144AEB774568}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "earray", "..\..\test\earray\earray.vcproj", "{D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "earraydll", "..\..\test\earraydll\earraydll.vcproj", "{3C224452-C71A-4B3E-937A-891144D1941D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freespace", "..\..\test\freespace\freespace.vcproj", "{D4395435-B3B0-4937-9AC5-89BD73C47303}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freespacedll", "..\..\test\freespacedll\freespacedll.vcproj", "{737F7A65-62E7-4707-B3DB-B9856131687D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mf", "..\..\test\mf\mf.vcproj", "{4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mfdll", "..\..\test\mfdll\mfdll.vcproj", "{C4811E26-A7DA-424D-8A44-F29DFD588533}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perf_serial", "..\..\perform\perf_serial\perf_serial.vcproj", "{B8923279-9E37-43D2-8ECF-5225BFB3356A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perf_serialdll", "..\..\perform\perf_serialdll\perf_serialdll.vcproj", "{BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "farray", "..\..\test\farray\farray.vcproj", "{AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "farraydll", "..\..\test\farraydll\farraydll.vcproj", "{79FF58EE-7427-4732-AC25-370341859292}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcheckversion", "..\..\test\tcheckversion\tcheckversion.vcproj", "{DFB6DCC1-2E00-4566-B935-F32172FDA483}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcheckversiondll", "..\..\test\tcheckversiondll\tcheckversiondll.vcproj", "{7B3EB7A5-DA01-4488-A06B-63E2941EE078}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5libsettings", "..\..\misc\typegen\h5libsettings\h5libsettings.vcproj", "{50D207BC-2B27-4BD9-B5D4-FCF8358BE757}" - ProjectSection(ProjectDependencies) = postProject - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|Win32.ActiveCfg = Debug|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|Win32.Build.0 = Debug|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|x64.ActiveCfg = Debug|x64 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|x64.Build.0 = Debug|x64 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|Win32.ActiveCfg = Release|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|Win32.Build.0 = Release|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|x64.ActiveCfg = Release|x64 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|x64.Build.0 = Release|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|Win32.Build.0 = Debug|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|x64.ActiveCfg = Debug|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|x64.Build.0 = Debug|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|Win32.ActiveCfg = Release|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|Win32.Build.0 = Release|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|x64.ActiveCfg = Release|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|x64.Build.0 = Release|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|Win32.ActiveCfg = Debug|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|Win32.Build.0 = Debug|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|x64.ActiveCfg = Debug|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|x64.Build.0 = Debug|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|Win32.ActiveCfg = Release|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|Win32.Build.0 = Release|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|x64.ActiveCfg = Release|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|x64.Build.0 = Release|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|Win32.Build.0 = Debug|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|x64.ActiveCfg = Debug|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|x64.Build.0 = Debug|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|Win32.ActiveCfg = Release|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|Win32.Build.0 = Release|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|x64.ActiveCfg = Release|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|x64.Build.0 = Release|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|Win32.ActiveCfg = Debug|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|Win32.Build.0 = Debug|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|x64.ActiveCfg = Debug|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|x64.Build.0 = Debug|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|Win32.ActiveCfg = Release|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|Win32.Build.0 = Release|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|x64.ActiveCfg = Release|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|x64.Build.0 = Release|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|Win32.Build.0 = Debug|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|x64.ActiveCfg = Debug|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|x64.Build.0 = Debug|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|Win32.ActiveCfg = Release|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|Win32.Build.0 = Release|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|x64.ActiveCfg = Release|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|x64.Build.0 = Release|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|Win32.ActiveCfg = Debug|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|Win32.Build.0 = Debug|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|x64.ActiveCfg = Debug|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|x64.Build.0 = Debug|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|Win32.ActiveCfg = Release|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|Win32.Build.0 = Release|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|x64.ActiveCfg = Release|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|x64.Build.0 = Release|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|Win32.ActiveCfg = Debug|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|Win32.Build.0 = Debug|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|x64.ActiveCfg = Debug|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|x64.Build.0 = Debug|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|Win32.ActiveCfg = Release|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|Win32.Build.0 = Release|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|x64.ActiveCfg = Release|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|x64.Build.0 = Release|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|Win32.ActiveCfg = Debug|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|Win32.Build.0 = Debug|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|x64.ActiveCfg = Debug|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|x64.Build.0 = Debug|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|Win32.ActiveCfg = Release|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|Win32.Build.0 = Release|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|x64.ActiveCfg = Release|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|x64.Build.0 = Release|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|Win32.ActiveCfg = Debug|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|Win32.Build.0 = Debug|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|x64.ActiveCfg = Debug|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|x64.Build.0 = Debug|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|Win32.ActiveCfg = Release|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|Win32.Build.0 = Release|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|x64.ActiveCfg = Release|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|x64.Build.0 = Release|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|Win32.ActiveCfg = Debug|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|Win32.Build.0 = Debug|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|x64.ActiveCfg = Debug|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|x64.Build.0 = Debug|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|Win32.ActiveCfg = Release|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|Win32.Build.0 = Release|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|x64.ActiveCfg = Release|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|x64.Build.0 = Release|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|Win32.ActiveCfg = Debug|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|Win32.Build.0 = Debug|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|x64.ActiveCfg = Debug|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|x64.Build.0 = Debug|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|Win32.ActiveCfg = Release|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|Win32.Build.0 = Release|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|x64.ActiveCfg = Release|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|x64.Build.0 = Release|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|Win32.ActiveCfg = Debug|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|Win32.Build.0 = Debug|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|x64.ActiveCfg = Debug|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|x64.Build.0 = Debug|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|Win32.ActiveCfg = Release|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|Win32.Build.0 = Release|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|x64.ActiveCfg = Release|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|x64.Build.0 = Release|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|Win32.ActiveCfg = Debug|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|Win32.Build.0 = Debug|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|x64.ActiveCfg = Debug|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|x64.Build.0 = Debug|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|Win32.ActiveCfg = Release|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|Win32.Build.0 = Release|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|x64.ActiveCfg = Release|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|x64.Build.0 = Release|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|Win32.ActiveCfg = Debug|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|Win32.Build.0 = Debug|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|x64.ActiveCfg = Debug|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|x64.Build.0 = Debug|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|Win32.ActiveCfg = Release|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|Win32.Build.0 = Release|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|x64.ActiveCfg = Release|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|x64.Build.0 = Release|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|Win32.ActiveCfg = Debug|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|Win32.Build.0 = Debug|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|x64.ActiveCfg = Debug|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|x64.Build.0 = Debug|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|Win32.ActiveCfg = Release|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|Win32.Build.0 = Release|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|x64.ActiveCfg = Release|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|x64.Build.0 = Release|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|Win32.ActiveCfg = Debug|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|Win32.Build.0 = Debug|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|x64.ActiveCfg = Debug|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|x64.Build.0 = Debug|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|Win32.ActiveCfg = Release|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|Win32.Build.0 = Release|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|x64.ActiveCfg = Release|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|x64.Build.0 = Release|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|Win32.ActiveCfg = Debug|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|Win32.Build.0 = Debug|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|x64.ActiveCfg = Debug|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|x64.Build.0 = Debug|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|Win32.ActiveCfg = Release|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|Win32.Build.0 = Release|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|x64.ActiveCfg = Release|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|x64.Build.0 = Release|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|Win32.ActiveCfg = Debug|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|Win32.Build.0 = Debug|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|x64.ActiveCfg = Debug|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|x64.Build.0 = Debug|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|Win32.ActiveCfg = Release|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|Win32.Build.0 = Release|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|x64.ActiveCfg = Release|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|x64.Build.0 = Release|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|Win32.ActiveCfg = Debug|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|Win32.Build.0 = Debug|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|x64.ActiveCfg = Debug|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|x64.Build.0 = Debug|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|Win32.ActiveCfg = Release|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|Win32.Build.0 = Release|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|x64.ActiveCfg = Release|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|x64.Build.0 = Release|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|Win32.ActiveCfg = Debug|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|Win32.Build.0 = Debug|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|x64.ActiveCfg = Debug|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|x64.Build.0 = Debug|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|Win32.ActiveCfg = Release|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|Win32.Build.0 = Release|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|x64.ActiveCfg = Release|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|x64.Build.0 = Release|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|Win32.ActiveCfg = Debug|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|Win32.Build.0 = Debug|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|x64.ActiveCfg = Debug|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|x64.Build.0 = Debug|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|Win32.ActiveCfg = Release|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|Win32.Build.0 = Release|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|x64.ActiveCfg = Release|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|x64.Build.0 = Release|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|Win32.Build.0 = Debug|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|x64.ActiveCfg = Debug|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|x64.Build.0 = Debug|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|Win32.ActiveCfg = Release|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|Win32.Build.0 = Release|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|x64.ActiveCfg = Release|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|x64.Build.0 = Release|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|Win32.ActiveCfg = Debug|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|Win32.Build.0 = Debug|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|x64.ActiveCfg = Debug|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|x64.Build.0 = Debug|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|Win32.ActiveCfg = Release|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|Win32.Build.0 = Release|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|x64.ActiveCfg = Release|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|x64.Build.0 = Release|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|Win32.ActiveCfg = Debug|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|Win32.Build.0 = Debug|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|x64.ActiveCfg = Debug|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|x64.Build.0 = Debug|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|Win32.ActiveCfg = Release|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|Win32.Build.0 = Release|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|x64.ActiveCfg = Release|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|x64.Build.0 = Release|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|Win32.Build.0 = Debug|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|x64.ActiveCfg = Debug|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|x64.Build.0 = Debug|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|Win32.ActiveCfg = Release|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|Win32.Build.0 = Release|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|x64.ActiveCfg = Release|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|x64.Build.0 = Release|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|Win32.ActiveCfg = Debug|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|Win32.Build.0 = Debug|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|x64.ActiveCfg = Debug|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|x64.Build.0 = Debug|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|Win32.ActiveCfg = Release|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|Win32.Build.0 = Release|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|x64.ActiveCfg = Release|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|x64.Build.0 = Release|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|Win32.Build.0 = Debug|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|x64.ActiveCfg = Debug|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|x64.Build.0 = Debug|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|Win32.ActiveCfg = Release|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|Win32.Build.0 = Release|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|x64.ActiveCfg = Release|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|x64.Build.0 = Release|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|Win32.ActiveCfg = Debug|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|Win32.Build.0 = Debug|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|x64.ActiveCfg = Debug|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|x64.Build.0 = Debug|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|Win32.ActiveCfg = Release|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|Win32.Build.0 = Release|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|x64.ActiveCfg = Release|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|x64.Build.0 = Release|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|Win32.ActiveCfg = Debug|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|Win32.Build.0 = Debug|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|x64.ActiveCfg = Debug|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|x64.Build.0 = Debug|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|Win32.ActiveCfg = Release|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|Win32.Build.0 = Release|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|x64.ActiveCfg = Release|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|x64.Build.0 = Release|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|Win32.ActiveCfg = Debug|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|Win32.Build.0 = Debug|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|x64.ActiveCfg = Debug|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|x64.Build.0 = Debug|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|Win32.ActiveCfg = Release|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|Win32.Build.0 = Release|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|x64.ActiveCfg = Release|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|x64.Build.0 = Release|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|Win32.ActiveCfg = Debug|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|Win32.Build.0 = Debug|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|x64.ActiveCfg = Debug|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|x64.Build.0 = Debug|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|Win32.ActiveCfg = Release|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|Win32.Build.0 = Release|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|x64.ActiveCfg = Release|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|x64.Build.0 = Release|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|Win32.ActiveCfg = Debug|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|Win32.Build.0 = Debug|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|x64.ActiveCfg = Debug|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|x64.Build.0 = Debug|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|Win32.ActiveCfg = Release|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|Win32.Build.0 = Release|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|x64.ActiveCfg = Release|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|x64.Build.0 = Release|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|Win32.ActiveCfg = Debug|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|Win32.Build.0 = Debug|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|x64.ActiveCfg = Debug|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|x64.Build.0 = Debug|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|Win32.ActiveCfg = Release|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|Win32.Build.0 = Release|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|x64.ActiveCfg = Release|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|x64.Build.0 = Release|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|Win32.ActiveCfg = Debug|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|Win32.Build.0 = Debug|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|x64.ActiveCfg = Debug|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|x64.Build.0 = Debug|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|Win32.ActiveCfg = Release|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|Win32.Build.0 = Release|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|x64.ActiveCfg = Release|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|x64.Build.0 = Release|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|Win32.ActiveCfg = Debug|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|Win32.Build.0 = Debug|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|x64.ActiveCfg = Debug|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|x64.Build.0 = Debug|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|Win32.ActiveCfg = Release|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|Win32.Build.0 = Release|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|x64.ActiveCfg = Release|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|x64.Build.0 = Release|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|Win32.ActiveCfg = Debug|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|Win32.Build.0 = Debug|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|x64.ActiveCfg = Debug|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|x64.Build.0 = Debug|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|Win32.ActiveCfg = Release|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|Win32.Build.0 = Release|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|x64.ActiveCfg = Release|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|x64.Build.0 = Release|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|Win32.Build.0 = Debug|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|x64.ActiveCfg = Debug|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|x64.Build.0 = Debug|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|Win32.ActiveCfg = Release|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|Win32.Build.0 = Release|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|x64.ActiveCfg = Release|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|x64.Build.0 = Release|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|Win32.ActiveCfg = Debug|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|Win32.Build.0 = Debug|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|x64.ActiveCfg = Debug|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|x64.Build.0 = Debug|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|Win32.ActiveCfg = Release|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|Win32.Build.0 = Release|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|x64.ActiveCfg = Release|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|x64.Build.0 = Release|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|Win32.ActiveCfg = Debug|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|Win32.Build.0 = Debug|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|x64.ActiveCfg = Debug|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|x64.Build.0 = Debug|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|Win32.ActiveCfg = Release|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|Win32.Build.0 = Release|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|x64.ActiveCfg = Release|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|x64.Build.0 = Release|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|Win32.ActiveCfg = Debug|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|Win32.Build.0 = Debug|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|x64.ActiveCfg = Debug|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|x64.Build.0 = Debug|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|Win32.ActiveCfg = Release|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|Win32.Build.0 = Release|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|x64.ActiveCfg = Release|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|x64.Build.0 = Release|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|Win32.ActiveCfg = Debug|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|Win32.Build.0 = Debug|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|x64.ActiveCfg = Debug|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|x64.Build.0 = Debug|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|Win32.ActiveCfg = Release|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|Win32.Build.0 = Release|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|x64.ActiveCfg = Release|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|x64.Build.0 = Release|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|Win32.ActiveCfg = Debug|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|Win32.Build.0 = Debug|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|x64.ActiveCfg = Debug|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|x64.Build.0 = Debug|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|Win32.ActiveCfg = Release|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|Win32.Build.0 = Release|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|x64.ActiveCfg = Release|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|x64.Build.0 = Release|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|Win32.ActiveCfg = Debug|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|Win32.Build.0 = Debug|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|x64.ActiveCfg = Debug|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|x64.Build.0 = Debug|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|Win32.ActiveCfg = Release|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|Win32.Build.0 = Release|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|x64.ActiveCfg = Release|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|x64.Build.0 = Release|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|Win32.ActiveCfg = Debug|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|Win32.Build.0 = Debug|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|x64.ActiveCfg = Debug|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|x64.Build.0 = Debug|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|Win32.ActiveCfg = Release|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|Win32.Build.0 = Release|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|x64.ActiveCfg = Release|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|x64.Build.0 = Release|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|Win32.Build.0 = Debug|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|x64.ActiveCfg = Debug|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|x64.Build.0 = Debug|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|Win32.ActiveCfg = Release|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|Win32.Build.0 = Release|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|x64.ActiveCfg = Release|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|x64.Build.0 = Release|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|Win32.Build.0 = Debug|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|x64.ActiveCfg = Debug|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|x64.Build.0 = Debug|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|Win32.ActiveCfg = Release|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|Win32.Build.0 = Release|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|x64.ActiveCfg = Release|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|x64.Build.0 = Release|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|Win32.Build.0 = Debug|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|x64.ActiveCfg = Debug|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|x64.Build.0 = Debug|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|Win32.ActiveCfg = Release|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|Win32.Build.0 = Release|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|x64.ActiveCfg = Release|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|x64.Build.0 = Release|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|Win32.ActiveCfg = Debug|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|Win32.Build.0 = Debug|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|x64.ActiveCfg = Debug|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|x64.Build.0 = Debug|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|Win32.ActiveCfg = Release|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|Win32.Build.0 = Release|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|x64.ActiveCfg = Release|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|x64.Build.0 = Release|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|Win32.Build.0 = Debug|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|x64.ActiveCfg = Debug|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|x64.Build.0 = Debug|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|Win32.ActiveCfg = Release|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|Win32.Build.0 = Release|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|x64.ActiveCfg = Release|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|x64.Build.0 = Release|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|Win32.ActiveCfg = Debug|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|Win32.Build.0 = Debug|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|x64.ActiveCfg = Debug|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|x64.Build.0 = Debug|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|Win32.ActiveCfg = Release|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|Win32.Build.0 = Release|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|x64.ActiveCfg = Release|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|x64.Build.0 = Release|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|Win32.ActiveCfg = Debug|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|Win32.Build.0 = Debug|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|x64.ActiveCfg = Debug|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|x64.Build.0 = Debug|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|Win32.ActiveCfg = Release|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|Win32.Build.0 = Release|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|x64.ActiveCfg = Release|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|x64.Build.0 = Release|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|Win32.ActiveCfg = Debug|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|Win32.Build.0 = Debug|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|x64.ActiveCfg = Debug|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|x64.Build.0 = Debug|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|Win32.ActiveCfg = Release|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|Win32.Build.0 = Release|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|x64.ActiveCfg = Release|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|x64.Build.0 = Release|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|Win32.ActiveCfg = Debug|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|Win32.Build.0 = Debug|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|x64.ActiveCfg = Debug|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|x64.Build.0 = Debug|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|Win32.ActiveCfg = Release|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|Win32.Build.0 = Release|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|x64.ActiveCfg = Release|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|x64.Build.0 = Release|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|Win32.ActiveCfg = Debug|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|Win32.Build.0 = Debug|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|x64.ActiveCfg = Debug|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|x64.Build.0 = Debug|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|Win32.ActiveCfg = Release|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|Win32.Build.0 = Release|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|x64.ActiveCfg = Release|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|x64.Build.0 = Release|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|Win32.ActiveCfg = Debug|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|Win32.Build.0 = Debug|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|x64.ActiveCfg = Debug|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|x64.Build.0 = Debug|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|Win32.ActiveCfg = Release|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|Win32.Build.0 = Release|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|x64.ActiveCfg = Release|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|x64.Build.0 = Release|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|Win32.Build.0 = Debug|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|x64.ActiveCfg = Debug|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|x64.Build.0 = Debug|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|Win32.ActiveCfg = Release|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|Win32.Build.0 = Release|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|x64.ActiveCfg = Release|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|x64.Build.0 = Release|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|Win32.ActiveCfg = Debug|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|Win32.Build.0 = Debug|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|x64.ActiveCfg = Debug|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|x64.Build.0 = Debug|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|Win32.ActiveCfg = Release|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|Win32.Build.0 = Release|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|x64.ActiveCfg = Release|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|x64.Build.0 = Release|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|Win32.Build.0 = Debug|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|x64.ActiveCfg = Debug|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|x64.Build.0 = Debug|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|Win32.ActiveCfg = Release|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|Win32.Build.0 = Release|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|x64.ActiveCfg = Release|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|x64.Build.0 = Release|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|Win32.ActiveCfg = Debug|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|Win32.Build.0 = Debug|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|x64.ActiveCfg = Debug|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|x64.Build.0 = Debug|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|Win32.ActiveCfg = Release|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|Win32.Build.0 = Release|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|x64.ActiveCfg = Release|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|x64.Build.0 = Release|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|Win32.ActiveCfg = Debug|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|Win32.Build.0 = Debug|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|x64.ActiveCfg = Debug|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|x64.Build.0 = Debug|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|Win32.ActiveCfg = Release|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|Win32.Build.0 = Release|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|x64.ActiveCfg = Release|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|x64.Build.0 = Release|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|Win32.Build.0 = Debug|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|x64.ActiveCfg = Debug|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|x64.Build.0 = Debug|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|Win32.ActiveCfg = Release|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|Win32.Build.0 = Release|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|x64.ActiveCfg = Release|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|x64.Build.0 = Release|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|Win32.ActiveCfg = Debug|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|Win32.Build.0 = Debug|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|x64.ActiveCfg = Debug|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|x64.Build.0 = Debug|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|Win32.ActiveCfg = Release|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|Win32.Build.0 = Release|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|x64.ActiveCfg = Release|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|x64.Build.0 = Release|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|Win32.Build.0 = Debug|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|x64.ActiveCfg = Debug|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|x64.Build.0 = Debug|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|Win32.ActiveCfg = Release|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|Win32.Build.0 = Release|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|x64.ActiveCfg = Release|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|x64.Build.0 = Release|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|Win32.Build.0 = Debug|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|x64.ActiveCfg = Debug|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|x64.Build.0 = Debug|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|Win32.ActiveCfg = Release|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|Win32.Build.0 = Release|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|x64.ActiveCfg = Release|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|x64.Build.0 = Release|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|Win32.ActiveCfg = Debug|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|Win32.Build.0 = Debug|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|x64.ActiveCfg = Debug|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|x64.Build.0 = Debug|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|Win32.ActiveCfg = Release|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|Win32.Build.0 = Release|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|x64.ActiveCfg = Release|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|x64.Build.0 = Release|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|Win32.ActiveCfg = Debug|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|Win32.Build.0 = Debug|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|x64.ActiveCfg = Debug|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|x64.Build.0 = Debug|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|Win32.ActiveCfg = Release|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|Win32.Build.0 = Release|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|x64.ActiveCfg = Release|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|x64.Build.0 = Release|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|Win32.ActiveCfg = Debug|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|Win32.Build.0 = Debug|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|x64.ActiveCfg = Debug|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|x64.Build.0 = Debug|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|Win32.ActiveCfg = Release|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|Win32.Build.0 = Release|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|x64.ActiveCfg = Release|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|x64.Build.0 = Release|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|Win32.ActiveCfg = Debug|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|Win32.Build.0 = Debug|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|x64.ActiveCfg = Debug|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|x64.Build.0 = Debug|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|Win32.ActiveCfg = Release|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|Win32.Build.0 = Release|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|x64.ActiveCfg = Release|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|x64.Build.0 = Release|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|Win32.ActiveCfg = Debug|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|Win32.Build.0 = Debug|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|x64.ActiveCfg = Debug|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|x64.Build.0 = Debug|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|Win32.ActiveCfg = Release|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|Win32.Build.0 = Release|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|x64.ActiveCfg = Release|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|x64.Build.0 = Release|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|Win32.ActiveCfg = Debug|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|Win32.Build.0 = Debug|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|x64.ActiveCfg = Debug|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|x64.Build.0 = Debug|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|Win32.ActiveCfg = Release|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|Win32.Build.0 = Release|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|x64.ActiveCfg = Release|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|x64.Build.0 = Release|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|Win32.Build.0 = Debug|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|x64.ActiveCfg = Debug|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|x64.Build.0 = Debug|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|Win32.ActiveCfg = Release|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|Win32.Build.0 = Release|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|x64.ActiveCfg = Release|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|x64.Build.0 = Release|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|Win32.ActiveCfg = Debug|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|Win32.Build.0 = Debug|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|x64.ActiveCfg = Debug|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|x64.Build.0 = Debug|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|Win32.ActiveCfg = Release|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|Win32.Build.0 = Release|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|x64.ActiveCfg = Release|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|x64.Build.0 = Release|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|Win32.ActiveCfg = Debug|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|Win32.Build.0 = Debug|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|x64.ActiveCfg = Debug|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|x64.Build.0 = Debug|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|Win32.ActiveCfg = Release|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|Win32.Build.0 = Release|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|x64.ActiveCfg = Release|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|x64.Build.0 = Release|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|Win32.ActiveCfg = Debug|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|Win32.Build.0 = Debug|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|x64.ActiveCfg = Debug|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|x64.Build.0 = Debug|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|Win32.ActiveCfg = Release|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|Win32.Build.0 = Release|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|x64.ActiveCfg = Release|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|x64.Build.0 = Release|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|Win32.ActiveCfg = Debug|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|Win32.Build.0 = Debug|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|x64.ActiveCfg = Debug|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|x64.Build.0 = Debug|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|Win32.ActiveCfg = Release|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|Win32.Build.0 = Release|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|x64.ActiveCfg = Release|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|x64.Build.0 = Release|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|Win32.ActiveCfg = Debug|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|Win32.Build.0 = Debug|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|x64.ActiveCfg = Debug|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|x64.Build.0 = Debug|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|Win32.ActiveCfg = Release|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|Win32.Build.0 = Release|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|x64.ActiveCfg = Release|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|x64.Build.0 = Release|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|Win32.ActiveCfg = Debug|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|Win32.Build.0 = Debug|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|x64.ActiveCfg = Debug|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|x64.Build.0 = Debug|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|Win32.ActiveCfg = Release|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|Win32.Build.0 = Release|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|x64.ActiveCfg = Release|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|x64.Build.0 = Release|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|Win32.ActiveCfg = Debug|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|Win32.Build.0 = Debug|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|x64.ActiveCfg = Debug|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|x64.Build.0 = Debug|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|Win32.ActiveCfg = Release|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|Win32.Build.0 = Release|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|x64.ActiveCfg = Release|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|x64.Build.0 = Release|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|Win32.ActiveCfg = Debug|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|Win32.Build.0 = Debug|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|x64.ActiveCfg = Debug|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|x64.Build.0 = Debug|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|Win32.ActiveCfg = Release|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|Win32.Build.0 = Release|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|x64.ActiveCfg = Release|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|x64.Build.0 = Release|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|Win32.ActiveCfg = Debug|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|Win32.Build.0 = Debug|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|x64.ActiveCfg = Debug|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|x64.Build.0 = Debug|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|Win32.ActiveCfg = Release|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|Win32.Build.0 = Release|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|x64.ActiveCfg = Release|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|x64.Build.0 = Release|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|Win32.Build.0 = Debug|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|x64.ActiveCfg = Debug|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|x64.Build.0 = Debug|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|Win32.ActiveCfg = Release|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|Win32.Build.0 = Release|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|x64.ActiveCfg = Release|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|x64.Build.0 = Release|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|Win32.ActiveCfg = Debug|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|Win32.Build.0 = Debug|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|x64.ActiveCfg = Debug|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|x64.Build.0 = Debug|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|Win32.ActiveCfg = Release|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|Win32.Build.0 = Release|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|x64.ActiveCfg = Release|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|x64.Build.0 = Release|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|Win32.ActiveCfg = Debug|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|Win32.Build.0 = Debug|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|x64.ActiveCfg = Debug|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|x64.Build.0 = Debug|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|Win32.ActiveCfg = Release|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|Win32.Build.0 = Release|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|x64.ActiveCfg = Release|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|x64.Build.0 = Release|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|Win32.ActiveCfg = Debug|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|Win32.Build.0 = Debug|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|x64.ActiveCfg = Debug|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|x64.Build.0 = Debug|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|Win32.ActiveCfg = Release|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|Win32.Build.0 = Release|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|x64.ActiveCfg = Release|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|x64.Build.0 = Release|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|Win32.Build.0 = Debug|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|x64.ActiveCfg = Debug|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|x64.Build.0 = Debug|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|Win32.ActiveCfg = Release|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|Win32.Build.0 = Release|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|x64.ActiveCfg = Release|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|x64.Build.0 = Release|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|Win32.ActiveCfg = Debug|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|Win32.Build.0 = Debug|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|x64.ActiveCfg = Debug|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|x64.Build.0 = Debug|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|Win32.ActiveCfg = Release|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|Win32.Build.0 = Release|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|x64.ActiveCfg = Release|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|x64.Build.0 = Release|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|Win32.ActiveCfg = Debug|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|Win32.Build.0 = Debug|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|x64.ActiveCfg = Debug|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|x64.Build.0 = Debug|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|Win32.ActiveCfg = Release|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|Win32.Build.0 = Release|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|x64.ActiveCfg = Release|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|x64.Build.0 = Release|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|Win32.ActiveCfg = Debug|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|Win32.Build.0 = Debug|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|x64.ActiveCfg = Debug|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|x64.Build.0 = Debug|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|Win32.ActiveCfg = Release|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|Win32.Build.0 = Release|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|x64.ActiveCfg = Release|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|x64.Build.0 = Release|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|Win32.Build.0 = Debug|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|x64.ActiveCfg = Debug|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|x64.Build.0 = Debug|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|Win32.ActiveCfg = Release|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|Win32.Build.0 = Release|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|x64.ActiveCfg = Release|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|x64.Build.0 = Release|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|Win32.ActiveCfg = Debug|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|Win32.Build.0 = Debug|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|x64.ActiveCfg = Debug|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|x64.Build.0 = Debug|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|Win32.ActiveCfg = Release|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|Win32.Build.0 = Release|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|x64.ActiveCfg = Release|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|x64.Build.0 = Release|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|Win32.ActiveCfg = Debug|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|Win32.Build.0 = Debug|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|x64.ActiveCfg = Debug|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|x64.Build.0 = Debug|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|Win32.ActiveCfg = Release|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|Win32.Build.0 = Release|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|x64.ActiveCfg = Release|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|x64.Build.0 = Release|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|Win32.ActiveCfg = Debug|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|Win32.Build.0 = Debug|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|x64.ActiveCfg = Debug|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|x64.Build.0 = Debug|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|Win32.ActiveCfg = Release|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|Win32.Build.0 = Release|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|x64.ActiveCfg = Release|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|x64.Build.0 = Release|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|Win32.Build.0 = Debug|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|x64.ActiveCfg = Debug|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|x64.Build.0 = Debug|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|Win32.ActiveCfg = Release|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|Win32.Build.0 = Release|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|x64.ActiveCfg = Release|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|x64.Build.0 = Release|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|Win32.ActiveCfg = Debug|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|Win32.Build.0 = Debug|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|x64.ActiveCfg = Debug|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|x64.Build.0 = Debug|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|Win32.ActiveCfg = Release|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|Win32.Build.0 = Release|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|x64.ActiveCfg = Release|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|x64.Build.0 = Release|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|Win32.ActiveCfg = Debug|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|Win32.Build.0 = Debug|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|x64.ActiveCfg = Debug|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|x64.Build.0 = Debug|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|Win32.ActiveCfg = Release|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|Win32.Build.0 = Release|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|x64.ActiveCfg = Release|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|x64.Build.0 = Release|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|Win32.ActiveCfg = Debug|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|Win32.Build.0 = Debug|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|x64.ActiveCfg = Debug|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|x64.Build.0 = Debug|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|Win32.ActiveCfg = Release|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|Win32.Build.0 = Release|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|x64.ActiveCfg = Release|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|x64.Build.0 = Release|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|Win32.ActiveCfg = Debug|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|Win32.Build.0 = Debug|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|x64.ActiveCfg = Debug|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|x64.Build.0 = Debug|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|Win32.ActiveCfg = Release|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|Win32.Build.0 = Release|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|x64.ActiveCfg = Release|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|x64.Build.0 = Release|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|Win32.ActiveCfg = Debug|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|Win32.Build.0 = Debug|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|x64.ActiveCfg = Debug|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|x64.Build.0 = Debug|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|Win32.ActiveCfg = Release|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|Win32.Build.0 = Release|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|x64.ActiveCfg = Release|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|x64.Build.0 = Release|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|Win32.ActiveCfg = Debug|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|Win32.Build.0 = Debug|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|x64.ActiveCfg = Debug|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|x64.Build.0 = Debug|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|Win32.ActiveCfg = Release|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|Win32.Build.0 = Release|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|x64.ActiveCfg = Release|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|x64.Build.0 = Release|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|Win32.ActiveCfg = Debug|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|Win32.Build.0 = Debug|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|x64.ActiveCfg = Debug|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|x64.Build.0 = Debug|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|Win32.ActiveCfg = Release|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|Win32.Build.0 = Release|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|x64.ActiveCfg = Release|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|x64.Build.0 = Release|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|Win32.Build.0 = Debug|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|x64.ActiveCfg = Debug|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|x64.Build.0 = Debug|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|Win32.ActiveCfg = Release|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|Win32.Build.0 = Release|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|x64.ActiveCfg = Release|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|x64.Build.0 = Release|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|Win32.Build.0 = Debug|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|x64.ActiveCfg = Debug|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|x64.Build.0 = Debug|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|Win32.ActiveCfg = Release|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|Win32.Build.0 = Release|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|x64.ActiveCfg = Release|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|x64.Build.0 = Release|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|Win32.ActiveCfg = Debug|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|Win32.Build.0 = Debug|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|x64.ActiveCfg = Debug|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|x64.Build.0 = Debug|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|Win32.ActiveCfg = Release|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|Win32.Build.0 = Release|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|x64.ActiveCfg = Release|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|x64.Build.0 = Release|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|Win32.ActiveCfg = Debug|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|Win32.Build.0 = Debug|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|x64.ActiveCfg = Debug|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|x64.Build.0 = Debug|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|Win32.ActiveCfg = Release|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|Win32.Build.0 = Release|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|x64.ActiveCfg = Release|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|x64.Build.0 = Release|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|Win32.Build.0 = Debug|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|x64.ActiveCfg = Debug|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|x64.Build.0 = Debug|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|Win32.ActiveCfg = Release|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|Win32.Build.0 = Release|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|x64.ActiveCfg = Release|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|x64.Build.0 = Release|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|Win32.Build.0 = Debug|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|x64.ActiveCfg = Debug|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|x64.Build.0 = Debug|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|Win32.ActiveCfg = Release|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|Win32.Build.0 = Release|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|x64.ActiveCfg = Release|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|x64.Build.0 = Release|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|Win32.Build.0 = Debug|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|x64.ActiveCfg = Debug|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|x64.Build.0 = Debug|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|Win32.ActiveCfg = Release|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|Win32.Build.0 = Release|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|x64.ActiveCfg = Release|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|x64.Build.0 = Release|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|Win32.ActiveCfg = Debug|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|Win32.Build.0 = Debug|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|x64.ActiveCfg = Debug|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|x64.Build.0 = Debug|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|Win32.ActiveCfg = Release|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|Win32.Build.0 = Release|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|x64.ActiveCfg = Release|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|x64.Build.0 = Release|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|Win32.ActiveCfg = Debug|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|Win32.Build.0 = Debug|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|x64.ActiveCfg = Debug|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|x64.Build.0 = Debug|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|Win32.ActiveCfg = Release|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|Win32.Build.0 = Release|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|x64.ActiveCfg = Release|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|x64.Build.0 = Release|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|Win32.ActiveCfg = Debug|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|Win32.Build.0 = Debug|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|x64.ActiveCfg = Debug|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|x64.Build.0 = Debug|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|Win32.ActiveCfg = Release|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|Win32.Build.0 = Release|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|x64.ActiveCfg = Release|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|x64.Build.0 = Release|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|Win32.ActiveCfg = Debug|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|Win32.Build.0 = Debug|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|x64.ActiveCfg = Debug|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|x64.Build.0 = Debug|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|Win32.ActiveCfg = Release|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|Win32.Build.0 = Release|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|x64.ActiveCfg = Release|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|x64.Build.0 = Release|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|Win32.ActiveCfg = Debug|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|Win32.Build.0 = Debug|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|x64.ActiveCfg = Debug|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|x64.Build.0 = Debug|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|Win32.ActiveCfg = Release|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|Win32.Build.0 = Release|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|x64.ActiveCfg = Release|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|x64.Build.0 = Release|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|Win32.Build.0 = Debug|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|x64.ActiveCfg = Debug|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|x64.Build.0 = Debug|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|Win32.ActiveCfg = Release|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|Win32.Build.0 = Release|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|x64.ActiveCfg = Release|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|x64.Build.0 = Release|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|Win32.Build.0 = Debug|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|x64.ActiveCfg = Debug|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|x64.Build.0 = Debug|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|Win32.ActiveCfg = Release|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|Win32.Build.0 = Release|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|x64.ActiveCfg = Release|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|x64.Build.0 = Release|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|Win32.ActiveCfg = Debug|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|Win32.Build.0 = Debug|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|x64.ActiveCfg = Debug|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|x64.Build.0 = Debug|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|Win32.ActiveCfg = Release|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|Win32.Build.0 = Release|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|x64.ActiveCfg = Release|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|x64.Build.0 = Release|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|Win32.ActiveCfg = Debug|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|Win32.Build.0 = Debug|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|x64.ActiveCfg = Debug|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|x64.Build.0 = Debug|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|Win32.ActiveCfg = Release|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|Win32.Build.0 = Release|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|x64.ActiveCfg = Release|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|x64.Build.0 = Release|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|Win32.ActiveCfg = Debug|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|Win32.Build.0 = Debug|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|x64.ActiveCfg = Debug|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|x64.Build.0 = Debug|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|Win32.ActiveCfg = Release|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|Win32.Build.0 = Release|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|x64.ActiveCfg = Release|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|x64.Build.0 = Release|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|Win32.Build.0 = Debug|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|x64.ActiveCfg = Debug|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|x64.Build.0 = Debug|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|Win32.ActiveCfg = Release|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|Win32.Build.0 = Release|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|x64.ActiveCfg = Release|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|x64.Build.0 = Release|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|Win32.Build.0 = Debug|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|x64.ActiveCfg = Debug|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|x64.Build.0 = Debug|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|Win32.ActiveCfg = Release|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|Win32.Build.0 = Release|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|x64.ActiveCfg = Release|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|x64.Build.0 = Release|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|Win32.ActiveCfg = Debug|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|Win32.Build.0 = Debug|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|x64.ActiveCfg = Debug|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|x64.Build.0 = Debug|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|Win32.ActiveCfg = Release|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|Win32.Build.0 = Release|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|x64.ActiveCfg = Release|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|x64.Build.0 = Release|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|Win32.ActiveCfg = Debug|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|Win32.Build.0 = Debug|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|x64.ActiveCfg = Debug|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|x64.Build.0 = Debug|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|Win32.ActiveCfg = Release|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|Win32.Build.0 = Release|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|x64.ActiveCfg = Release|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|x64.Build.0 = Release|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|Win32.ActiveCfg = Debug|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|Win32.Build.0 = Debug|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|x64.ActiveCfg = Debug|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|x64.Build.0 = Debug|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|Win32.ActiveCfg = Release|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|Win32.Build.0 = Release|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|x64.ActiveCfg = Release|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|x64.Build.0 = Release|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|Win32.ActiveCfg = Debug|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|Win32.Build.0 = Debug|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|x64.ActiveCfg = Debug|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|x64.Build.0 = Debug|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|Win32.ActiveCfg = Release|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|Win32.Build.0 = Release|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|x64.ActiveCfg = Release|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|x64.Build.0 = Release|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|Win32.Build.0 = Debug|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|x64.ActiveCfg = Debug|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|x64.Build.0 = Debug|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|Win32.ActiveCfg = Release|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|Win32.Build.0 = Release|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|x64.ActiveCfg = Release|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|x64.Build.0 = Release|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|Win32.ActiveCfg = Debug|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|Win32.Build.0 = Debug|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|x64.ActiveCfg = Debug|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|x64.Build.0 = Debug|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|Win32.ActiveCfg = Release|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|Win32.Build.0 = Release|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|x64.ActiveCfg = Release|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|x64.Build.0 = Release|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|Win32.ActiveCfg = Debug|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|Win32.Build.0 = Debug|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|x64.ActiveCfg = Debug|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|x64.Build.0 = Debug|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|Win32.ActiveCfg = Release|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|Win32.Build.0 = Release|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|x64.ActiveCfg = Release|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|x64.Build.0 = Release|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|Win32.ActiveCfg = Debug|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|Win32.Build.0 = Debug|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|x64.ActiveCfg = Debug|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|x64.Build.0 = Debug|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|Win32.ActiveCfg = Release|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|Win32.Build.0 = Release|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|x64.ActiveCfg = Release|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|x64.Build.0 = Release|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|Win32.ActiveCfg = Debug|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|Win32.Build.0 = Debug|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|x64.ActiveCfg = Debug|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|x64.Build.0 = Debug|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|Win32.ActiveCfg = Release|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|Win32.Build.0 = Release|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|x64.ActiveCfg = Release|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|x64.Build.0 = Release|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|Win32.ActiveCfg = Debug|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|Win32.Build.0 = Debug|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|x64.ActiveCfg = Debug|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|x64.Build.0 = Debug|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|Win32.ActiveCfg = Release|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|Win32.Build.0 = Release|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|x64.ActiveCfg = Release|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|x64.Build.0 = Release|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|Win32.ActiveCfg = Debug|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|Win32.Build.0 = Debug|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|x64.ActiveCfg = Debug|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|x64.Build.0 = Debug|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|Win32.ActiveCfg = Release|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|Win32.Build.0 = Release|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|x64.ActiveCfg = Release|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|x64.Build.0 = Release|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|Win32.ActiveCfg = Debug|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|Win32.Build.0 = Debug|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|x64.ActiveCfg = Debug|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|x64.Build.0 = Debug|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|Win32.ActiveCfg = Release|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|Win32.Build.0 = Release|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|x64.ActiveCfg = Release|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|x64.Build.0 = Release|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|Win32.ActiveCfg = Debug|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|Win32.Build.0 = Debug|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|x64.ActiveCfg = Debug|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|x64.Build.0 = Debug|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|Win32.ActiveCfg = Release|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|Win32.Build.0 = Release|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|x64.ActiveCfg = Release|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|x64.Build.0 = Release|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|Win32.ActiveCfg = Debug|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|Win32.Build.0 = Debug|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|x64.ActiveCfg = Debug|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|x64.Build.0 = Debug|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|Win32.ActiveCfg = Release|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|Win32.Build.0 = Release|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|x64.ActiveCfg = Release|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|x64.Build.0 = Release|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|Win32.Build.0 = Debug|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|x64.ActiveCfg = Debug|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|x64.Build.0 = Debug|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|Win32.ActiveCfg = Release|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|Win32.Build.0 = Release|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|x64.ActiveCfg = Release|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|x64.Build.0 = Release|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|Win32.ActiveCfg = Debug|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|Win32.Build.0 = Debug|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|x64.ActiveCfg = Debug|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|x64.Build.0 = Debug|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|Win32.ActiveCfg = Release|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|Win32.Build.0 = Release|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|x64.ActiveCfg = Release|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|x64.Build.0 = Release|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|Win32.ActiveCfg = Debug|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|Win32.Build.0 = Debug|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|x64.ActiveCfg = Debug|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|x64.Build.0 = Debug|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|Win32.ActiveCfg = Release|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|Win32.Build.0 = Release|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|x64.ActiveCfg = Release|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|x64.Build.0 = Release|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|Win32.ActiveCfg = Debug|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|Win32.Build.0 = Debug|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|x64.ActiveCfg = Debug|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|x64.Build.0 = Debug|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|Win32.ActiveCfg = Release|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|Win32.Build.0 = Release|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|x64.ActiveCfg = Release|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|x64.Build.0 = Release|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|Win32.ActiveCfg = Debug|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|Win32.Build.0 = Debug|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|x64.ActiveCfg = Debug|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|x64.Build.0 = Debug|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|Win32.ActiveCfg = Release|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|Win32.Build.0 = Release|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|x64.ActiveCfg = Release|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|x64.Build.0 = Release|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|Win32.Build.0 = Debug|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|x64.ActiveCfg = Debug|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|x64.Build.0 = Debug|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|Win32.ActiveCfg = Release|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|Win32.Build.0 = Release|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|x64.ActiveCfg = Release|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|x64.Build.0 = Release|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|Win32.ActiveCfg = Debug|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|Win32.Build.0 = Debug|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|x64.ActiveCfg = Debug|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|x64.Build.0 = Debug|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|Win32.ActiveCfg = Release|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|Win32.Build.0 = Release|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|x64.ActiveCfg = Release|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|x64.Build.0 = Release|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|Win32.ActiveCfg = Debug|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|Win32.Build.0 = Debug|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|x64.ActiveCfg = Debug|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|x64.Build.0 = Debug|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|Win32.ActiveCfg = Release|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|Win32.Build.0 = Release|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|x64.ActiveCfg = Release|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|x64.Build.0 = Release|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|Win32.Build.0 = Debug|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|x64.ActiveCfg = Debug|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|x64.Build.0 = Debug|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|Win32.ActiveCfg = Release|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|Win32.Build.0 = Release|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|x64.ActiveCfg = Release|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|x64.Build.0 = Release|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|Win32.ActiveCfg = Debug|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|Win32.Build.0 = Debug|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|x64.ActiveCfg = Debug|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|x64.Build.0 = Debug|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|Win32.ActiveCfg = Release|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|Win32.Build.0 = Release|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|x64.ActiveCfg = Release|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|x64.Build.0 = Release|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|Win32.ActiveCfg = Debug|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|Win32.Build.0 = Debug|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|x64.ActiveCfg = Debug|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|x64.Build.0 = Debug|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|Win32.ActiveCfg = Release|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|Win32.Build.0 = Release|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|x64.ActiveCfg = Release|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|x64.Build.0 = Release|x64 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Debug|Win32.ActiveCfg = Debug|Win32 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Debug|x64.ActiveCfg = Debug|x64 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Release|Win32.ActiveCfg = Release|Win32 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Release|x64.ActiveCfg = Release|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|Win32.ActiveCfg = Debug|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|Win32.Build.0 = Debug|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|x64.ActiveCfg = Debug|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|x64.Build.0 = Debug|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|Win32.ActiveCfg = Release|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|Win32.Build.0 = Release|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|x64.ActiveCfg = Release|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|x64.Build.0 = Release|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|Win32.ActiveCfg = Debug|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|Win32.Build.0 = Debug|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|x64.ActiveCfg = Debug|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|x64.Build.0 = Debug|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|Win32.ActiveCfg = Release|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|Win32.Build.0 = Release|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|x64.ActiveCfg = Release|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|x64.Build.0 = Release|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|Win32.ActiveCfg = Debug|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|Win32.Build.0 = Debug|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|x64.ActiveCfg = Debug|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|x64.Build.0 = Debug|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|Win32.ActiveCfg = Release|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|Win32.Build.0 = Release|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|x64.ActiveCfg = Release|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|x64.Build.0 = Release|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|Win32.Build.0 = Debug|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|x64.ActiveCfg = Debug|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|x64.Build.0 = Debug|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|Win32.ActiveCfg = Release|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|Win32.Build.0 = Release|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|x64.ActiveCfg = Release|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|x64.Build.0 = Release|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|Win32.ActiveCfg = Debug|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|Win32.Build.0 = Debug|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|x64.ActiveCfg = Debug|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|x64.Build.0 = Debug|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|Win32.ActiveCfg = Release|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|Win32.Build.0 = Release|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|x64.ActiveCfg = Release|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|x64.Build.0 = Release|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|Win32.Build.0 = Debug|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|x64.ActiveCfg = Debug|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|x64.Build.0 = Debug|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|Win32.ActiveCfg = Release|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|Win32.Build.0 = Release|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|x64.ActiveCfg = Release|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|x64.Build.0 = Release|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|Win32.Build.0 = Debug|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|x64.ActiveCfg = Debug|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|x64.Build.0 = Debug|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|Win32.ActiveCfg = Release|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|Win32.Build.0 = Release|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|x64.ActiveCfg = Release|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|x64.Build.0 = Release|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|Win32.ActiveCfg = Debug|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|Win32.Build.0 = Debug|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|x64.ActiveCfg = Debug|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|x64.Build.0 = Debug|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|Win32.ActiveCfg = Release|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|Win32.Build.0 = Release|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|x64.ActiveCfg = Release|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|x64.Build.0 = Release|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|Win32.ActiveCfg = Debug|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|Win32.Build.0 = Debug|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|x64.ActiveCfg = Debug|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|x64.Build.0 = Debug|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|Win32.ActiveCfg = Release|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|Win32.Build.0 = Release|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|x64.ActiveCfg = Release|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|x64.Build.0 = Release|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|Win32.Build.0 = Debug|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|x64.ActiveCfg = Debug|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|x64.Build.0 = Debug|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|Win32.ActiveCfg = Release|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|Win32.Build.0 = Release|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|x64.ActiveCfg = Release|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|x64.Build.0 = Release|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|Win32.Build.0 = Debug|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|x64.ActiveCfg = Debug|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|x64.Build.0 = Debug|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|Win32.ActiveCfg = Release|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|Win32.Build.0 = Release|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|x64.ActiveCfg = Release|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|x64.Build.0 = Release|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|Win32.ActiveCfg = Debug|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|Win32.Build.0 = Debug|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|x64.ActiveCfg = Debug|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|x64.Build.0 = Debug|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|Win32.ActiveCfg = Release|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|Win32.Build.0 = Release|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|x64.ActiveCfg = Release|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|x64.Build.0 = Release|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|Win32.ActiveCfg = Debug|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|Win32.Build.0 = Debug|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|x64.ActiveCfg = Debug|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|x64.Build.0 = Debug|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|Win32.ActiveCfg = Release|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|Win32.Build.0 = Release|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|x64.ActiveCfg = Release|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|x64.Build.0 = Release|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|Win32.Build.0 = Debug|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|x64.ActiveCfg = Debug|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|x64.Build.0 = Debug|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|Win32.ActiveCfg = Release|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|Win32.Build.0 = Release|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|x64.ActiveCfg = Release|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|x64.Build.0 = Release|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|Win32.Build.0 = Debug|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|x64.ActiveCfg = Debug|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|x64.Build.0 = Debug|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|Win32.ActiveCfg = Release|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|Win32.Build.0 = Release|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|x64.ActiveCfg = Release|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|x64.Build.0 = Release|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|Win32.ActiveCfg = Debug|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|Win32.Build.0 = Debug|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|x64.ActiveCfg = Debug|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|x64.Build.0 = Debug|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|Win32.ActiveCfg = Release|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|Win32.Build.0 = Release|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|x64.ActiveCfg = Release|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|x64.Build.0 = Release|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|Win32.Build.0 = Debug|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|x64.ActiveCfg = Debug|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|x64.Build.0 = Debug|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|Win32.ActiveCfg = Release|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|Win32.Build.0 = Release|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|x64.ActiveCfg = Release|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|x64.Build.0 = Release|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|Win32.Build.0 = Debug|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|x64.ActiveCfg = Debug|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|x64.Build.0 = Debug|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|Win32.ActiveCfg = Release|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|Win32.Build.0 = Release|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|x64.ActiveCfg = Release|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|x64.Build.0 = Release|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|Win32.ActiveCfg = Debug|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|Win32.Build.0 = Debug|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|x64.ActiveCfg = Debug|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|x64.Build.0 = Debug|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Release|Win32.ActiveCfg = Release|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Release|Win32.Build.0 = Release|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Release|x64.ActiveCfg = Release|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Release|x64.Build.0 = Release|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|Win32.ActiveCfg = Debug|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|Win32.Build.0 = Debug|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|x64.ActiveCfg = Debug|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|x64.Build.0 = Debug|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|Win32.ActiveCfg = Release|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|Win32.Build.0 = Release|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|x64.ActiveCfg = Release|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|x64.Build.0 = Release|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|Win32.ActiveCfg = Debug|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|Win32.Build.0 = Debug|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|x64.ActiveCfg = Debug|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|x64.Build.0 = Debug|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|Win32.ActiveCfg = Release|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|Win32.Build.0 = Release|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|x64.ActiveCfg = Release|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|x64.Build.0 = Release|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|Win32.ActiveCfg = Debug|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|Win32.Build.0 = Debug|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|x64.ActiveCfg = Debug|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|x64.Build.0 = Debug|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|Win32.ActiveCfg = Release|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|Win32.Build.0 = Release|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|x64.ActiveCfg = Release|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/proj/all/all.vcproj b/windows/proj/all/all.vcproj deleted file mode 100644 index 659a54e..0000000 --- a/windows/proj/all/all.vcproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/all_fortran/all_fortran.sln b/windows/proj/all_fortran/all_fortran.sln deleted file mode 100644 index 1a5f8dc..0000000 --- a/windows/proj/all_fortran/all_fortran.sln +++ /dev/null @@ -1,2965 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "all_fortran", "all_fortran.vcproj", "{24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}" - ProjectSection(ProjectDependencies) = postProject - {8C6D9C00-44A9-432F-B695-F56439C1B288} = {8C6D9C00-44A9-432F-B695-F56439C1B288} - {0A049202-6533-413E-89D6-5D6866AAE703} = {0A049202-6533-413E-89D6-5D6866AAE703} - {6FFCE804-EF4A-468F-A174-561934C153A1} = {6FFCE804-EF4A-468F-A174-561934C153A1} - {4AC79406-D6E0-43B3-82B0-7A032FABB52A} = {4AC79406-D6E0-43B3-82B0-7A032FABB52A} - {E1F98D07-4724-46CB-B327-5677C1C9266D} = {E1F98D07-4724-46CB-B327-5677C1C9266D} - {364FF608-7969-4ED1-95B2-8592872F8264} = {364FF608-7969-4ED1-95B2-8592872F8264} - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {854F7E09-CEB5-44CD-B924-3FFAC7936323} = {854F7E09-CEB5-44CD-B924-3FFAC7936323} - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5} = {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5} - {89DA820B-7A3B-46FA-AE09-971A739BEEFD} = {89DA820B-7A3B-46FA-AE09-971A739BEEFD} - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4} = {0D18A50F-52B3-4322-AC0D-F15CD657CEC4} - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90} = {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90} - {B21CA611-6DAE-4051-8B4C-989E135711B1} = {B21CA611-6DAE-4051-8B4C-989E135711B1} - {F04E2D13-2096-4C67-AA4C-63C9015474B1} = {F04E2D13-2096-4C67-AA4C-63C9015474B1} - {9FCBE814-3818-4F1A-975D-05BAF6FF432F} = {9FCBE814-3818-4F1A-975D-05BAF6FF432F} - {52E83C17-2B68-44B5-881D-4F6338FB14C7} = {52E83C17-2B68-44B5-881D-4F6338FB14C7} - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} = {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} - {E3B24219-DEB9-4ECB-809C-AD98EE51974E} = {E3B24219-DEB9-4ECB-809C-AD98EE51974E} - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0} = {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0} - {D279901A-8E21-47D3-B7EA-A572EE12F2E6} = {D279901A-8E21-47D3-B7EA-A572EE12F2E6} - {411D221C-9FA1-417E-8A2B-DF746F4C7E07} = {411D221C-9FA1-417E-8A2B-DF746F4C7E07} - {794B7E1E-E6AD-456D-9F33-FCE317325EC4} = {794B7E1E-E6AD-456D-9F33-FCE317325EC4} - {7D293021-0601-498B-91B8-C49580EFB08D} = {7D293021-0601-498B-91B8-C49580EFB08D} - {BE1A0022-708E-4CC2-B01C-26BD99AB6576} = {BE1A0022-708E-4CC2-B01C-26BD99AB6576} - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} = {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D} = {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D} - {C4811E26-A7DA-424D-8A44-F29DFD588533} = {C4811E26-A7DA-424D-8A44-F29DFD588533} - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5} = {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5} - {2248C52C-75DC-465B-A598-6E89CC93E00D} = {2248C52C-75DC-465B-A598-6E89CC93E00D} - {834DD32C-D078-441F-95F4-9CDE108B60AE} = {834DD32C-D078-441F-95F4-9CDE108B60AE} - {AF696934-5004-4C1D-90C3-B434E92AFB89} = {AF696934-5004-4C1D-90C3-B434E92AFB89} - {3EDEB434-F59E-4C50-8884-F0BB29845619} = {3EDEB434-F59E-4C50-8884-F0BB29845619} - {69952435-F01F-46A7-B907-A78EBC864ED7} = {69952435-F01F-46A7-B907-A78EBC864ED7} - {D4395435-B3B0-4937-9AC5-89BD73C47303} = {D4395435-B3B0-4937-9AC5-89BD73C47303} - {196F5935-2391-49A7-B6A2-410DF8149F0D} = {196F5935-2391-49A7-B6A2-410DF8149F0D} - {E5C9E235-E10F-4F46-A94F-A112CD8D867E} = {E5C9E235-E10F-4F46-A94F-A112CD8D867E} - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5} = {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5} - {0C5E3F36-3338-4B2C-A956-4D577B6119E7} = {0C5E3F36-3338-4B2C-A956-4D577B6119E7} - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF} = {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF} - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892} = {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892} - {80892339-F6CE-4E96-B61B-131095F2612D} = {80892339-F6CE-4E96-B61B-131095F2612D} - {9ADAE03A-2060-471E-A7B5-9D8F6995223A} = {9ADAE03A-2060-471E-A7B5-9D8F6995223A} - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF} = {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF} - {D8D53F43-41EE-486A-8DBD-956D8CD072E8} = {D8D53F43-41EE-486A-8DBD-956D8CD072E8} - {CEA44545-33C8-4C63-9F8C-85BA48F45637} = {CEA44545-33C8-4C63-9F8C-85BA48F45637} - {03359B45-E43D-44B3-BDE5-8B14D9F0D827} = {03359B45-E43D-44B3-BDE5-8B14D9F0D827} - {F5109F4B-5869-40A7-BC6A-8130CA4BB987} = {F5109F4B-5869-40A7-BC6A-8130CA4BB987} - {71C6994C-3102-4A2A-B0AE-88A590CB36CE} = {71C6994C-3102-4A2A-B0AE-88A590CB36CE} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - {3C224452-C71A-4B3E-937A-891144D1941D} = {3C224452-C71A-4B3E-937A-891144D1941D} - {37605955-FA00-41C9-9D39-D078CF270376} = {37605955-FA00-41C9-9D39-D078CF270376} - {5E617A56-25B2-41E8-8D69-109600819716} = {5E617A56-25B2-41E8-8D69-109600819716} - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {57A5C559-F1BD-49F1-9B5E-13591D22FD75} = {57A5C559-F1BD-49F1-9B5E-13591D22FD75} - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} = {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F} = {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - {5A90FD64-6EED-45E1-A147-D9FE72788570} = {5A90FD64-6EED-45E1-A147-D9FE72788570} - {68A52165-E0EF-4019-B658-1AC734649955} = {68A52165-E0EF-4019-B658-1AC734649955} - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB} = {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB} - {737F7A65-62E7-4707-B3DB-B9856131687D} = {737F7A65-62E7-4707-B3DB-B9856131687D} - {6312B365-AA53-43AA-BD00-848C1323CA8B} = {6312B365-AA53-43AA-BD00-848C1323CA8B} - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823} = {C4BA3E66-2310-43E7-B30A-ABDCCF44D823} - {AE5D4766-9668-4EB5-B801-5DF8F53363FC} = {AE5D4766-9668-4EB5-B801-5DF8F53363FC} - {F9428466-5FA2-47C9-BB02-288EDE7016A4} = {F9428466-5FA2-47C9-BB02-288EDE7016A4} - {C325E167-DBC3-4611-8AC8-2A118432E35B} = {C325E167-DBC3-4611-8AC8-2A118432E35B} - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03} = {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03} - {7E207F6A-DC28-4DEB-8454-7977092131DC} = {7E207F6A-DC28-4DEB-8454-7977092131DC} - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767} = {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767} - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0} = {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0} - {C865016E-1FE1-4FD7-959D-62E795206E76} = {C865016E-1FE1-4FD7-959D-62E795206E76} - {C2E6106F-1450-4F62-8D8E-17A93E986B26} = {C2E6106F-1450-4F62-8D8E-17A93E986B26} - {0DA16B6F-0156-417A-9093-589D55BB066C} = {0DA16B6F-0156-417A-9093-589D55BB066C} - {6923D270-FB9F-4F40-8268-9C542ADABD88} = {6923D270-FB9F-4F40-8268-9C542ADABD88} - {487B4E71-1CB9-49A1-920C-1F505D8B76F8} = {487B4E71-1CB9-49A1-920C-1F505D8B76F8} - {D1518671-CB9D-471F-8BCE-A03DE67F26B1} = {D1518671-CB9D-471F-8BCE-A03DE67F26B1} - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD} = {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {F445FB75-3390-47BE-8179-6A9222A9ACD8} = {F445FB75-3390-47BE-8179-6A9222A9ACD8} - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {8792D377-8105-4C67-87F1-115E48D0178F} = {8792D377-8105-4C67-87F1-115E48D0178F} - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50} = {2DCDB978-79B7-4A3A-B24A-D908A49B7D50} - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7} = {9AAC897A-70FA-4E5E-BF48-F664C12B05C7} - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B} = {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B} - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35} = {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35} - {EBF7C380-5F58-462D-993D-75B53F83FA81} = {EBF7C380-5F58-462D-993D-75B53F83FA81} - {71A1C081-FF1C-452B-B938-95551D565302} = {71A1C081-FF1C-452B-B938-95551D565302} - {7693B383-C2CB-43FD-A428-598F73D214F7} = {7693B383-C2CB-43FD-A428-598F73D214F7} - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C} = {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C} - {C8202A85-1F3A-4B34-869C-B1E8CA829299} = {C8202A85-1F3A-4B34-869C-B1E8CA829299} - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B} = {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B} - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0} = {DFE42486-47A2-487C-81B9-DDCDA9F07BF0} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {A90ADD88-DA1B-4642-A97B-37DF89433858} = {A90ADD88-DA1B-4642-A97B-37DF89433858} - {98AE818A-E887-414B-985F-85F8411916C9} = {98AE818A-E887-414B-985F-85F8411916C9} - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6} = {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6} - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF} = {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF} - {8708E58C-F990-4B6C-AD83-745CA9582E92} = {8708E58C-F990-4B6C-AD83-745CA9582E92} - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0} = {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0} - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169} = {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169} - {2B93688D-D766-4295-ABFA-003CF905F8D8} = {2B93688D-D766-4295-ABFA-003CF905F8D8} - {FD8B058E-F53A-4197-B75E-849904E5AA79} = {FD8B058E-F53A-4197-B75E-849904E5AA79} - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F} = {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F} - {EFA04391-B35B-44C0-AB27-1383D4C9E358} = {EFA04391-B35B-44C0-AB27-1383D4C9E358} - {9A226D92-9326-4907-A462-25997D5C9427} = {9A226D92-9326-4907-A462-25997D5C9427} - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F} = {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F} - {34EEE194-B77E-453E-9C59-252C0421188A} = {34EEE194-B77E-453E-9C59-252C0421188A} - {0E0F449A-7998-4113-BDD2-A74E0B6D3466} = {0E0F449A-7998-4113-BDD2-A74E0B6D3466} - {D15E5D9B-A1A6-4935-889C-D880FD0068CE} = {D15E5D9B-A1A6-4935-889C-D880FD0068CE} - {3E41969B-D69B-4235-B192-A94F7853D869} = {3E41969B-D69B-4235-B192-A94F7853D869} - {4941199C-EB11-460D-8EF7-9F68293AE202} = {4941199C-EB11-460D-8EF7-9F68293AE202} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC} = {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC} - {8CE6FF9D-8A14-4A45-971A-18972109AC9D} = {8CE6FF9D-8A14-4A45-971A-18972109AC9D} - {531839A0-AFE6-482A-BF60-29890B89D4BF} = {531839A0-AFE6-482A-BF60-29890B89D4BF} - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4} = {AA7A40A2-A837-4557-AB3D-D64980F6F8E4} - {0C618DA2-4097-46B9-83D0-144AEB774568} = {0C618DA2-4097-46B9-83D0-144AEB774568} - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8} = {7C30B2A4-A24D-4796-9754-CABBDB46D0F8} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33} = {D1AADCA9-FB5A-4F44-8E11-8232941E2C33} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {E02CDAAC-05F4-436B-B245-2A402FFA131F} = {E02CDAAC-05F4-436B-B245-2A402FFA131F} - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160} = {EC6B5EAD-D938-4211-A7B1-01C9D2C15160} - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30} = {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30} - {265C41B2-30D7-4FF8-A08C-B997363DA763} = {265C41B2-30D7-4FF8-A08C-B997363DA763} - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB} = {1C2FF3B6-639A-4047-90DE-327B82BF3ACB} - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3} = {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3} - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3} = {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3} - {DBA493BD-3AF1-4616-8A80-F6FD41B70392} = {DBA493BD-3AF1-4616-8A80-F6FD41B70392} - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D} = {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D} - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0} = {4F8B23C1-9832-4C3B-A836-2FBB53F628A0} - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247} = {A4C4D9C2-DFB5-4A09-8C6D-968113C58247} - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850} = {18FBE8C2-CD20-4D99-9E0B-63B408CE4850} - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A} = {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A} - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14} = {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14} - {9321B2C5-74B3-4743-9D87-B0FDCB47373B} = {9321B2C5-74B3-4743-9D87-B0FDCB47373B} - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05} = {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05} - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF} = {1C5A9EC8-F882-4A8A-B773-E79CD46369AF} - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7} = {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7} - {F4386ECB-D688-4C18-A091-673F1F8A96E7} = {F4386ECB-D688-4C18-A091-673F1F8A96E7} - {3F8103CC-1DB2-4C23-9ABC-430434244D40} = {3F8103CC-1DB2-4C23-9ABC-430434244D40} - {E81413CC-046C-42B0-B862-0BB81AED2854} = {E81413CC-046C-42B0-B862-0BB81AED2854} - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E} = {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E} - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B} = {5CC7FFCE-2612-41B6-AF83-C1B61F67949B} - {D10F67D0-8057-49C2-A62A-12D0C512288E} = {D10F67D0-8057-49C2-A62A-12D0C512288E} - {B36344D1-122C-4BC6-A292-CC82F74CBB0A} = {B36344D1-122C-4BC6-A292-CC82F74CBB0A} - {165195D1-B742-4030-8B12-3FE94B829D45} = {165195D1-B742-4030-8B12-3FE94B829D45} - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851} = {6410E6D2-EDBF-439D-8C43-1AB0C37AC851} - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A} = {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A} - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91} = {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91} - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF} = {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF} - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700} = {9E588AD8-14BD-4BA3-B4EA-16D1D882C700} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5} = {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5} - {55894CDC-C220-40FE-B403-D74EAC6EBACF} = {55894CDC-C220-40FE-B403-D74EAC6EBACF} - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2} = {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2} - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE} = {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE} - {8659AEE0-2C9A-4666-B70F-C2B8280FD909} = {8659AEE0-2C9A-4666-B70F-C2B8280FD909} - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8} = {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8} - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} = {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835} = {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835} - {E6A9BFE8-84DE-46C0-A372-72087598018E} = {E6A9BFE8-84DE-46C0-A372-72087598018E} - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098} = {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098} - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21} = {A26C50E9-D3FB-4490-9CD7-606EB2E77D21} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - {1AB767EA-546C-4F72-BC1F-6AA0458512D8} = {1AB767EA-546C-4F72-BC1F-6AA0458512D8} - {1B298EEC-0B47-4145-88AA-C6558E0BD993} = {1B298EEC-0B47-4145-88AA-C6558E0BD993} - {685666ED-4640-47EE-AEA5-35B9602CA541} = {685666ED-4640-47EE-AEA5-35B9602CA541} - {E8896FEE-8601-4AFC-91EA-6F9698574174} = {E8896FEE-8601-4AFC-91EA-6F9698574174} - {4E8105F2-56D4-45D6-9017-706F804052E7} = {4E8105F2-56D4-45D6-9017-706F804052E7} - {0CB176F2-1FA9-467A-986D-512FAD8144B0} = {0CB176F2-1FA9-467A-986D-512FAD8144B0} - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7} = {C35122F6-49FF-4AAA-A2AA-482628E5E2A7} - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27} = {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27} - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4} = {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4} - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4} = {3BBA31F8-2679-4655-975D-52FDA5ABD5C4} - {D1FD44F8-8263-4B29-985D-21CE26F45A76} = {D1FD44F8-8263-4B29-985D-21CE26F45A76} - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC} = {309CE6F8-4658-44CB-8E99-0B86DCA77EFC} - {34C0FDFA-81D6-4652-B841-894BD1A15FB0} = {34C0FDFA-81D6-4652-B841-894BD1A15FB0} - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33} = {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33} - {BA86B1FE-8CA7-4A96-9FD0-11941F885589} = {BA86B1FE-8CA7-4A96-9FD0-11941F885589} - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED} = {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED} - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF} = {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF} - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7} = {3F645EFF-3A91-4CF3-9B60-76E0C33686A7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "big", "..\..\test\big\big.vcproj", "{009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bigdll", "..\..\test\bigdll\bigdll.vcproj", "{8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "binread", "..\..\tools\testfiles\binread\binread.vcproj", "{BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bittests", "..\..\test\bittests\bittests.vcproj", "{958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bittestsdll", "..\..\test\bittestsdll\bittestsdll.vcproj", "{E5C9E235-E10F-4F46-A94F-A112CD8D867E}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "btree2", "..\..\test\btree2\btree2.vcproj", "{8CE6FF9D-8A14-4A45-971A-18972109AC9D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "btree2dll", "..\..\test\btree2dll\btree2dll.vcproj", "{34EEE194-B77E-453E-9C59-252C0421188A}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cache", "..\..\test\cache\cache.vcproj", "{4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cache_api", "..\..\test\cache_api\cache_api.vcproj", "{4F8B23C1-9832-4C3B-A836-2FBB53F628A0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cache_apidll", "..\..\test\cache_apidll\cache_apidll.vcproj", "{EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cachedll", "..\..\test\cachedll\cachedll.vcproj", "{D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunk", "..\..\test\chunk\chunk.vcproj", "{57A5C559-F1BD-49F1-9B5E-13591D22FD75}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunkdll", "..\..\test\chunkdll\chunkdll.vcproj", "{4941199C-EB11-460D-8EF7-9F68293AE202}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmpd_dset", "..\..\test\cmpd_dset\cmpd_dset.vcproj", "{BA86B1FE-8CA7-4A96-9FD0-11941F885589}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmpd_dsetdll", "..\..\test\cmpd_dsetdll\cmpd_dsetdll.vcproj", "{8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cross_read", "..\..\test\cross_read\cross_read.vcproj", "{68A52165-E0EF-4019-B658-1AC734649955}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cross_readdll", "..\..\test\cross_readdll\cross_readdll.vcproj", "{E1F98D07-4724-46CB-B327-5677C1C9266D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dangle", "..\..\test\dangle\dangle.vcproj", "{8C6D9C00-44A9-432F-B695-F56439C1B288}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dangledll", "..\..\test\dangledll\dangledll.vcproj", "{D15E5D9B-A1A6-4935-889C-D880FD0068CE}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsets", "..\..\test\dsets\dsets.vcproj", "{A90ADD88-DA1B-4642-A97B-37DF89433858}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsetsdll", "..\..\test\dsetsdll\dsetsdll.vcproj", "{1B298EEC-0B47-4145-88AA-C6558E0BD993}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dt_arith", "..\..\test\dt_arith\dt_arith.vcproj", "{AE5D4766-9668-4EB5-B801-5DF8F53363FC}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dt_arithdll", "..\..\test\dt_arithdll\dt_arithdll.vcproj", "{3E41969B-D69B-4235-B192-A94F7853D869}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtransform", "..\..\test\dtransform\dtransform.vcproj", "{F5109F4B-5869-40A7-BC6A-8130CA4BB987}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtransformdll", "..\..\test\dtransformdll\dtransformdll.vcproj", "{0E0F449A-7998-4113-BDD2-A74E0B6D3466}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtypes", "..\..\test\dtypes\dtypes.vcproj", "{4AC79406-D6E0-43B3-82B0-7A032FABB52A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtypesdll", "..\..\test\dtypesdll\dtypesdll.vcproj", "{AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enum", "..\..\test\enum\enum.vcproj", "{FD8B058E-F53A-4197-B75E-849904E5AA79}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enumdll", "..\..\test\enumdll\enumdll.vcproj", "{D8D53F43-41EE-486A-8DBD-956D8CD072E8}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "error_test", "..\..\test\error_test\error_test.vcproj", "{7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "error_testdll", "..\..\test\error_testdll\error_testdll.vcproj", "{55894CDC-C220-40FE-B403-D74EAC6EBACF}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "err_compat", "..\..\test\err_compat\err_compat.vcproj", "{265C41B2-30D7-4FF8-A08C-B997363DA763}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "err_compatdll", "..\..\test\err_compatdll\err_compatdll.vcproj", "{309CE6F8-4658-44CB-8E99-0B86DCA77EFC}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extend", "..\..\test\extend\extend.vcproj", "{8708E58C-F990-4B6C-AD83-745CA9582E92}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extenddll", "..\..\test\extenddll\extenddll.vcproj", "{76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "external", "..\..\test\external\external.vcproj", "{7D293021-0601-498B-91B8-C49580EFB08D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "externaldll", "..\..\test\externaldll\externaldll.vcproj", "{0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fheap", "..\..\test\fheap\fheap.vcproj", "{AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fheapdll", "..\..\test\fheapdll\fheapdll.vcproj", "{CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fillval", "..\..\test\fillval\fillval.vcproj", "{CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fillvaldll", "..\..\test\fillvaldll\fillvaldll.vcproj", "{0CB176F2-1FA9-467A-986D-512FAD8144B0}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush1", "..\..\test\flush1\flush1.vcproj", "{364FF608-7969-4ED1-95B2-8592872F8264}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush1dll", "..\..\test\flush1dll\flush1dll.vcproj", "{B36344D1-122C-4BC6-A292-CC82F74CBB0A}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush2", "..\..\test\flush2\flush2.vcproj", "{E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flush2dll", "..\..\test\flush2dll\flush2dll.vcproj", "{F4386ECB-D688-4C18-A091-673F1F8A96E7}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getname", "..\..\test\getname\getname.vcproj", "{B21CA611-6DAE-4051-8B4C-989E135711B1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getnamedll", "..\..\test\getnamedll\getnamedll.vcproj", "{80892339-F6CE-4E96-B61B-131095F2612D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getub", "..\..\test\getub\getub.vcproj", "{2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gheap", "..\..\test\gheap\gheap.vcproj", "{9FCBE814-3818-4F1A-975D-05BAF6FF432F}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gheapdll", "..\..\test\gheapdll\gheapdll.vcproj", "{0DA16B6F-0156-417A-9093-589D55BB066C}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gif2h5", "..\..\hl\tools\gifconv\gif2h5.vcproj", "{7C30B2A4-A24D-4796-9754-CABBDB46D0F8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gif2h5dll", "..\..\hl\tools\gifconvdll\gif2h5dll.vcproj", "{C325E167-DBC3-4611-8AC8-2A118432E35B}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h52gif", "..\..\hl\tools\gifconv\h52gif.vcproj", "{AA7A40A2-A837-4557-AB3D-D64980F6F8E4}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h52gifdll", "..\..\hl\tools\gifconvdll\h52gifdll.vcproj", "{834DD32C-D078-441F-95F4-9CDE108B60AE}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5copy", "..\..\tools\h5copy\h5copy.vcproj", "{69952435-F01F-46A7-B907-A78EBC864ED7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5debug", "..\..\tools\h5debug\h5debug.vcproj", "{BE1A0022-708E-4CC2-B01C-26BD99AB6576}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5debugdll", "..\..\tools\h5debugdll\h5debugdll.vcproj", "{D10F67D0-8057-49C2-A62A-12D0C512288E}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5diff", "..\..\tools\h5diff\h5diff.vcproj", "{1C5A9EC8-F882-4A8A-B773-E79CD46369AF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5diffdll", "..\..\tools\h5diffdll\h5diffdll.vcproj", "{EC6B5EAD-D938-4211-A7B1-01C9D2C15160}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5difftst", "..\..\tools\TESTFILES\h5difftst\h5difftst.vcproj", "{1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5dump", "..\..\tools\h5dump\h5dump.vcproj", "{9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5dumpdll", "..\..\tools\h5dumpdll\h5dumpdll.vcproj", "{7E207F6A-DC28-4DEB-8454-7977092131DC}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5dumptst", "..\..\tools\testfiles\h5dumptst\h5dumptst.vcproj", "{0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5import", "..\..\tools\h5import\h5import.vcproj", "{9E588AD8-14BD-4BA3-B4EA-16D1D882C700}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5importdll", "..\..\tools\h5importdll\h5importdll.vcproj", "{2DCDB978-79B7-4A3A-B24A-D908A49B7D50}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5importtst", "..\..\tools\TESTFILES\h5importtst\h5importtst.vcproj", "{AF696934-5004-4C1D-90C3-B434E92AFB89}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5jam", "..\..\tools\h5jam\h5jam.vcproj", "{196F5935-2391-49A7-B6A2-410DF8149F0D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5jamtst", "..\..\tools\TESTFILES\h5jamtst\h5jamtst.vcproj", "{E8896FEE-8601-4AFC-91EA-6F9698574174}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5ls", "..\..\tools\h5ls\h5ls.vcproj", "{357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5lsdll", "..\..\tools\h5lsdll\h5lsdll.vcproj", "{18FBE8C2-CD20-4D99-9E0B-63B408CE4850}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5mkgrp", "..\..\tools\h5mkgrp\h5mkgrp.vcproj", "{ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repack", "..\..\tools\h5repack\h5repack.vcproj", "{411D221C-9FA1-417E-8A2B-DF746F4C7E07}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repackdll", "..\..\tools\h5repackdll\h5repackdll.vcproj", "{854F7E09-CEB5-44CD-B924-3FFAC7936323}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repacktst", "..\..\tools\testfiles\h5repacktst\h5repacktst.vcproj", "{AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repart", "..\..\tools\h5repart\h5repart.vcproj", "{F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repart_gentest", "..\..\tools\TESTFILES\h5repart_gentest\h5repart_gentest.vcproj", "{EBF7C380-5F58-462D-993D-75B53F83FA81}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5repartdll", "..\..\tools\h5repartdll\h5repartdll.vcproj", "{89DA820B-7A3B-46FA-AE09-971A739BEEFD}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5reparttst", "..\..\tools\TESTFILES\h5reparttst\h5reparttst.vcproj", "{53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5stat", "..\..\tools\h5stat\h5stat.vcproj", "{405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5statdll", "..\..\tools\h5statdll\h5statdll.vcproj", "{165195D1-B742-4030-8B12-3FE94B829D45}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5unjam", "..\..\tools\h5unjam\h5unjam.vcproj", "{52E83C17-2B68-44B5-881D-4F6338FB14C7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5", "..\hdf5\hdf5.vcproj", "{26346A09-C500-49E7-963A-D22A8E09AAB7}" - ProjectSection(ProjectDependencies) = postProject - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757} = {50D207BC-2B27-4BD9-B5D4-FCF8358BE757} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_cpp", "..\hdf5_cpp\hdf5_cpp.vcproj", "{FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_cppdll", "..\hdf5_cppdll\hdf5_cppdll.vcproj", "{D279901A-8E21-47D3-B7EA-A572EE12F2E6}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_f90cstub", "..\hdf5_f90cstub\hdf5_f90cstub.vcproj", "{CF055FEA-4433-439A-9688-BFD73D260706}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {B6430FB3-3BEF-48C3-84DD-98106C6F6113} = {B6430FB3-3BEF-48C3-84DD-98106C6F6113} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_f90cstubdll", "..\hdf5_f90cstubdll\hdf5_f90cstubdll.vcproj", "{668327AB-1F82-46EE-A157-CD79AB8BF323}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl", "..\hdf5_hl\hdf5_hl.vcproj", "{9A124450-EC54-4813-B0B1-2CA96B695009}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl_cpp", "..\hdf5_hl_cpp\hdf5_hl_cpp.vcproj", "{7693B383-C2CB-43FD-A428-598F73D214F7}" - ProjectSection(ProjectDependencies) = postProject - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl_cppdll", "..\hdf5_hl_cppdll\hdf5_hl_cppdll.vcproj", "{3EDEB434-F59E-4C50-8884-F0BB29845619}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl_f90cstubdll", "..\hdf5_hl_f90cstubdll\hdf5_hl_f90cstubdll.vcproj", "{DB6C7D17-28B1-4E5A-A61E-C53FEB545937}" - ProjectSection(ProjectDependencies) = postProject - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hl_f90cstub", "..\hdf5_hl_fortran\hdf5_hl_f90cstub.vcproj", "{01DA0D22-D220-4ACE-9EB0-EA3906098C0A}" - ProjectSection(ProjectDependencies) = postProject - {B6430FB3-3BEF-48C3-84DD-98106C6F6113} = {B6430FB3-3BEF-48C3-84DD-98106C6F6113} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5_hldll", "..\hdf5_hldll\hdf5_hldll.vcproj", "{CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdf5dll", "..\hdf5dll\hdf5dll.vcproj", "{C9535AD9-C61D-4691-A5CE-52EF359892AF}" - ProjectSection(ProjectDependencies) = postProject - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_ds", "..\..\hl\test\hl_test_ds\hl_test_ds.vcproj", "{6410E6D2-EDBF-439D-8C43-1AB0C37AC851}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_dsdll", "..\..\hl\test\hl_test_dsdll\hl_test_dsdll.vcproj", "{3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_image", "..\..\hl\test\hl_test_image\hl_test_image.vcproj", "{03359B45-E43D-44B3-BDE5-8B14D9F0D827}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_imagedll", "..\..\hl\test\hl_test_imagedll\hl_test_imagedll.vcproj", "{9A226D92-9326-4907-A462-25997D5C9427}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_lite", "..\..\hl\test\hl_test_lite\hl_test_lite.vcproj", "{6FFCE804-EF4A-468F-A174-561934C153A1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_litedll", "..\..\hl\test\hl_test_litedll\hl_test_litedll.vcproj", "{98AE818A-E887-414B-985F-85F8411916C9}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_packet", "..\..\hl\test\hl_test_packet\hl_test_packet.vcproj", "{5CC7FFCE-2612-41B6-AF83-C1B61F67949B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_packetdll", "..\..\hl\test\hl_test_packetdll\hl_test_packetdll.vcproj", "{E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_table", "..\..\hl\test\hl_test_table\hl_test_table.vcproj", "{43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_table_cpp", "..\..\hl\c++\test\hl_test_table_cpp\hl_test_table_cpp.vcproj", "{6312B365-AA53-43AA-BD00-848C1323CA8B}" - ProjectSection(ProjectDependencies) = postProject - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - {7693B383-C2CB-43FD-A428-598F73D214F7} = {7693B383-C2CB-43FD-A428-598F73D214F7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_table_cppdll", "..\..\hl\c++\test\hl_test_table_cppdll\hl_test_table_cppdll.vcproj", "{0D18A50F-52B3-4322-AC0D-F15CD657CEC4}" - ProjectSection(ProjectDependencies) = postProject - {D279901A-8E21-47D3-B7EA-A572EE12F2E6} = {D279901A-8E21-47D3-B7EA-A572EE12F2E6} - {3EDEB434-F59E-4C50-8884-F0BB29845619} = {3EDEB434-F59E-4C50-8884-F0BB29845619} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hl_test_tabledll", "..\..\hl\test\hl_test_tabledll\hl_test_tabledll.vcproj", "{D1AADCA9-FB5A-4F44-8E11-8232941E2C33}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hyperslab", "..\..\test\hyperslab\hyperslab.vcproj", "{1AB767EA-546C-4F72-BC1F-6AA0458512D8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hyperslabdll", "..\..\test\hyperslabdll\hyperslabdll.vcproj", "{CEA44545-33C8-4C63-9F8C-85BA48F45637}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iopipe", "..\..\test\iopipe\iopipe.vcproj", "{73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iopipedll", "..\..\test\iopipedll\iopipedll.vcproj", "{4E8105F2-56D4-45D6-9017-706F804052E7}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "istore", "..\..\test\istore\istore.vcproj", "{C4BA3E66-2310-43E7-B30A-ABDCCF44D823}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "istoredll", "..\..\test\istoredll\istoredll.vcproj", "{BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lheap", "..\..\test\lheap\lheap.vcproj", "{5A90FD64-6EED-45E1-A147-D9FE72788570}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lheapdll", "..\..\test\lheapdll\lheapdll.vcproj", "{E02CDAAC-05F4-436B-B245-2A402FFA131F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtest", "..\..\test\libtest\libtest.vcproj", "{A80D439C-37B4-4619-A122-1C69F567733B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtestdll", "..\..\test\libtestdll\libtestdll.vcproj", "{54BDA057-C716-4807-A35E-73185DCB236D}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtest_cstubdll", "..\..\fortran\test\libtest_cstubdll\libtest_cstubdll.vcproj", "{1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtest_cstub", "..\..\fortran\test\libtest_fortran\libtest_cstub.vcproj", "{2B93688D-D766-4295-ABFA-003CF905F8D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "links", "..\..\test\links\links.vcproj", "{8792D377-8105-4C67-87F1-115E48D0178F}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "linksdll", "..\..\test\linksdll\linksdll.vcproj", "{27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mount", "..\..\test\mount\mount.vcproj", "{4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mountdll", "..\..\test\mountdll\mountdll.vcproj", "{CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mtime", "..\..\test\mtime\mtime.vcproj", "{40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mtimedll", "..\..\test\mtimedll\mtimedll.vcproj", "{7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntypes", "..\..\test\ntypes\ntypes.vcproj", "{0A049202-6533-413E-89D6-5D6866AAE703}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntypesdll", "..\..\test\ntypesdll\ntypesdll.vcproj", "{9AAC897A-70FA-4E5E-BF48-F664C12B05C7}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "objcopy", "..\..\test\objcopy\objcopy.vcproj", "{34C0FDFA-81D6-4652-B841-894BD1A15FB0}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "objcopydll", "..\..\test\objcopydll\objcopydll.vcproj", "{794B7E1E-E6AD-456D-9F33-FCE317325EC4}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ohdr", "..\..\test\ohdr\ohdr.vcproj", "{DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ohdrdll", "..\..\test\ohdrdll\ohdrdll.vcproj", "{37605955-FA00-41C9-9D39-D078CF270376}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "overhead", "..\..\test\overhead\overhead.vcproj", "{9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "overheaddll", "..\..\test\overheaddll\overheaddll.vcproj", "{71A1C081-FF1C-452B-B938-95551D565302}" - ProjectSection(ProjectDependencies) = postProject - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pool", "..\..\test\pool\pool.vcproj", "{9ADAE03A-2060-471E-A7B5-9D8F6995223A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pooldll", "..\..\test\pooldll\pooldll.vcproj", "{DFE42486-47A2-487C-81B9-DDCDA9F07BF0}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reserved", "..\..\test\reserved\reserved.vcproj", "{2248C52C-75DC-465B-A598-6E89CC93E00D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reserveddll", "..\..\test\reserveddll\reserveddll.vcproj", "{C2E6106F-1450-4F62-8D8E-17A93E986B26}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_extent", "..\..\test\set_extent\set_extent.vcproj", "{E81413CC-046C-42B0-B862-0BB81AED2854}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_extentdll", "..\..\test\set_extentdll\set_extentdll.vcproj", "{14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stab", "..\..\test\stab\stab.vcproj", "{17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stabdll", "..\..\test\stabdll\stabdll.vcproj", "{7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "talign", "..\..\tools\talign\talign.vcproj", "{E6A9BFE8-84DE-46C0-A372-72087598018E}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taligndll", "..\..\tools\taligndll\taligndll.vcproj", "{3BBA31F8-2679-4655-975D-52FDA5ABD5C4}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tellub", "..\..\test\tellub\tellub.vcproj", "{A26C50E9-D3FB-4490-9CD7-606EB2E77D21}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testh5repack_detect_szip", "..\..\tools\TESTFILES\testh5repack_detect_szip\testh5repack_detect_szip.vcproj", "{5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testh5repack_detect_szipdll", "..\..\tools\TESTFILES\testh5repack_detect_szipdll\testh5repack_detect_szipdll.vcproj", "{E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5", "..\..\test\testhdf5\testhdf5.vcproj", "{D1518671-CB9D-471F-8BCE-A03DE67F26B1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5_cpp", "..\..\c++\test\testhdf5_cpp\testhdf5_cpp.vcproj", "{EFA04391-B35B-44C0-AB27-1383D4C9E358}" - ProjectSection(ProjectDependencies) = postProject - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} = {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5_cppdll", "..\..\c++\test\testhdf5_cppdll\testhdf5_cppdll.vcproj", "{DBA493BD-3AF1-4616-8A80-F6FD41B70392}" - ProjectSection(ProjectDependencies) = postProject - {D279901A-8E21-47D3-B7EA-A572EE12F2E6} = {D279901A-8E21-47D3-B7EA-A572EE12F2E6} - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhdf5dll", "..\..\test\testhdf5dll\testhdf5dll.vcproj", "{D1FD44F8-8263-4B29-985D-21CE26F45A76}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolslib", "..\..\tools\toolslib\toolslib.vcproj", "{473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolslibdll", "..\..\tools\toolslibdll\toolslibdll.vcproj", "{832DD776-BC7F-40B5-90D0-E6448014CA5B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ttsafedll", "..\..\test\ttsafedll\ttsafedll.vcproj", "{DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unlink", "..\..\test\unlink\unlink.vcproj", "{9321B2C5-74B3-4743-9D87-B0FDCB47373B}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unlinkdll", "..\..\test\unlinkdll\unlinkdll.vcproj", "{685666ED-4640-47EE-AEA5-35B9602CA541}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vfd", "..\..\test\vfd\vfd.vcproj", "{744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vfddll", "..\..\test\vfddll\vfddll.vcproj", "{0C5E3F36-3338-4B2C-A956-4D577B6119E7}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "flush1_fortran", "..\..\fortran\test\flush1_fortran\flush1_fortran.vfproj", "{F445FB75-3390-47BE-8179-6A9222A9ACD8}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} = {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} - {2B93688D-D766-4295-ABFA-003CF905F8D8} = {2B93688D-D766-4295-ABFA-003CF905F8D8} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "flush1_fortrandll", "..\..\fortran\test\flush1_fortrandll\flush1_fortrandll.vfproj", "{8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}" - ProjectSection(ProjectDependencies) = postProject - {71C6994C-3102-4A2A-B0AE-88A590CB36CE} = {71C6994C-3102-4A2A-B0AE-88A590CB36CE} - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} = {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "flush2_fortran", "..\..\fortran\test\flush2_fortran\flush2_fortran.vfproj", "{A4C4D9C2-DFB5-4A09-8C6D-968113C58247}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} = {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} - {2B93688D-D766-4295-ABFA-003CF905F8D8} = {2B93688D-D766-4295-ABFA-003CF905F8D8} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "flush2_fortrandll", "..\..\fortran\test\flush2_fortrandll\flush2_fortrandll.vfproj", "{C865016E-1FE1-4FD7-959D-62E795206E76}" - ProjectSection(ProjectDependencies) = postProject - {71C6994C-3102-4A2A-B0AE-88A590CB36CE} = {71C6994C-3102-4A2A-B0AE-88A590CB36CE} - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} = {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hdf5_fortran", "..\hdf5_fortran\hdf5_fortran.vfproj", "{26F2FDA4-17DC-4E1A-B9AC-124C460A4391}" - ProjectSection(ProjectDependencies) = postProject - {B6430FB3-3BEF-48C3-84DD-98106C6F6113} = {B6430FB3-3BEF-48C3-84DD-98106C6F6113} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hdf5_fortrandll", "..\hdf5_fortrandll\hdf5_fortrandll.vfproj", "{1063E387-0167-411C-85B9-96B043C4BDB3}" - ProjectSection(ProjectDependencies) = postProject - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {B6430FB3-3BEF-48C3-84DD-98106C6F6113} = {B6430FB3-3BEF-48C3-84DD-98106C6F6113} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hdf5_hl_fortran", "..\hdf5_hl_fortran\hdf5_hl_fortran.vfproj", "{F9428466-5FA2-47C9-BB02-288EDE7016A4}" - ProjectSection(ProjectDependencies) = postProject - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} = {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hdf5_hl_fortrandll", "..\hdf5_hl_fortrandll\hdf5_hl_fortrandll.vfproj", "{487B4E71-1CB9-49A1-920C-1F505D8B76F8}" - ProjectSection(ProjectDependencies) = postProject - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} = {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hl_test_image_fortran", "..\..\hl\fortran\test\hl_test_image_fortran\hl_test_image_fortran.vfproj", "{1C2FF3B6-639A-4047-90DE-327B82BF3ACB}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} = {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {F9428466-5FA2-47C9-BB02-288EDE7016A4} = {F9428466-5FA2-47C9-BB02-288EDE7016A4} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hl_test_image_fortrandll", "..\..\hl\fortran\test\hl_test_image_fortrandll\hl_test_image_fortrandll.vfproj", "{8659AEE0-2C9A-4666-B70F-C2B8280FD909}" - ProjectSection(ProjectDependencies) = postProject - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} = {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} - {487B4E71-1CB9-49A1-920C-1F505D8B76F8} = {487B4E71-1CB9-49A1-920C-1F505D8B76F8} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hl_test_lite_fortran", "..\..\hl\fortran\test\hl_test_lite_fortran\hl_test_lite_fortran.vfproj", "{3F8103CC-1DB2-4C23-9ABC-430434244D40}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} = {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {F9428466-5FA2-47C9-BB02-288EDE7016A4} = {F9428466-5FA2-47C9-BB02-288EDE7016A4} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hl_test_lite_fortrandll", "..\..\hl\fortran\test\hl_test_lite_fortrandll\hl_test_lite_fortrandll.vfproj", "{5E617A56-25B2-41E8-8D69-109600819716}" - ProjectSection(ProjectDependencies) = postProject - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} = {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} - {487B4E71-1CB9-49A1-920C-1F505D8B76F8} = {487B4E71-1CB9-49A1-920C-1F505D8B76F8} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hl_test_table_fortran", "..\..\hl\fortran\test\hl_test_table_fortran\hl_test_table_fortran.vfproj", "{C8202A85-1F3A-4B34-869C-B1E8CA829299}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} = {01DA0D22-D220-4ACE-9EB0-EA3906098C0A} - {9A124450-EC54-4813-B0B1-2CA96B695009} = {9A124450-EC54-4813-B0B1-2CA96B695009} - {F9428466-5FA2-47C9-BB02-288EDE7016A4} = {F9428466-5FA2-47C9-BB02-288EDE7016A4} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "hl_test_table_fortrandll", "..\..\hl\fortran\test\hl_test_table_fortrandll\hl_test_table_fortrandll.vfproj", "{3F645EFF-3A91-4CF3-9B60-76E0C33686A7}" - ProjectSection(ProjectDependencies) = postProject - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} = {DB6C7D17-28B1-4E5A-A61E-C53FEB545937} - {487B4E71-1CB9-49A1-920C-1F505D8B76F8} = {487B4E71-1CB9-49A1-920C-1F505D8B76F8} - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} = {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "libtest_fortran", "..\..\fortran\test\libtest_fortran\libtest_fortran.vfproj", "{84571A5E-D9A6-4672-9F86-3F8E32C93FDF}" - ProjectSection(ProjectDependencies) = postProject - {2B93688D-D766-4295-ABFA-003CF905F8D8} = {2B93688D-D766-4295-ABFA-003CF905F8D8} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "libtest_fortrandll", "..\..\fortran\test\libtest_fortrandll\libtest_fortrandll.vfproj", "{71C6994C-3102-4A2A-B0AE-88A590CB36CE}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} = {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "testhdf5_fortran", "..\..\fortran\test\testhdf5_fortran\testhdf5_fortran.vfproj", "{F04E2D13-2096-4C67-AA4C-63C9015474B1}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} = {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} - {2B93688D-D766-4295-ABFA-003CF905F8D8} = {2B93688D-D766-4295-ABFA-003CF905F8D8} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "testhdf5_fortrandll", "..\..\fortran\test\testhdf5_fortrandll\testhdf5_fortrandll.vfproj", "{6923D270-FB9F-4F40-8268-9C542ADABD88}" - ProjectSection(ProjectDependencies) = postProject - {71C6994C-3102-4A2A-B0AE-88A590CB36CE} = {71C6994C-3102-4A2A-B0AE-88A590CB36CE} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} = {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5tinit", "..\..\misc\typegen\h5tinit\h5tinit.vcproj", "{B123D196-2F43-4FEB-80B5-990F06DED319}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "h5fortran_detect", "..\..\misc\typegen\h5fortran_detect\h5fortran_detect.vfproj", "{4505FF13-2C16-4348-8989-BB10AF85FB95}" -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "h5fort_type_defines", "..\..\misc\typegen\h5fort_type_defines\h5fort_type_defines.vfproj", "{4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}" - ProjectSection(ProjectDependencies) = postProject - {4505FF13-2C16-4348-8989-BB10AF85FB95} = {4505FF13-2C16-4348-8989-BB10AF85FB95} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "H5match_types", "..\..\misc\typegen\h5match_types\h5match_types.vcproj", "{B6430FB3-3BEF-48C3-84DD-98106C6F6113}" - ProjectSection(ProjectDependencies) = postProject - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10} = {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunk_info", "..\..\test\chunk_info\chunk_info.vcproj", "{E3B24219-DEB9-4ECB-809C-AD98EE51974E}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chunk_infodll", "..\..\test\chunk_infodll\chunk_infodll.vcproj", "{D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "testhdf5_fortran_1_8", "..\..\fortran\test\testhdf5_fortran_1_8\testhdf5_fortran_1_8.vfproj", "{04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} = {84571A5E-D9A6-4672-9F86-3F8E32C93FDF} - {2B93688D-D766-4295-ABFA-003CF905F8D8} = {2B93688D-D766-4295-ABFA-003CF905F8D8} - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} = {26F2FDA4-17DC-4E1A-B9AC-124C460A4391} - {CF055FEA-4433-439A-9688-BFD73D260706} = {CF055FEA-4433-439A-9688-BFD73D260706} - EndProjectSection -EndProject -Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "testhdf5_fortran_1_8dll", "..\..\fortran\test\testhdf5_fortran_1_8dll\testhdf5_fortran_1_8dll.vfproj", "{531839A0-AFE6-482A-BF60-29890B89D4BF}" - ProjectSection(ProjectDependencies) = postProject - {71C6994C-3102-4A2A-B0AE-88A590CB36CE} = {71C6994C-3102-4A2A-B0AE-88A590CB36CE} - {1063E387-0167-411C-85B9-96B043C4BDB3} = {1063E387-0167-411C-85B9-96B043C4BDB3} - {668327AB-1F82-46EE-A157-CD79AB8BF323} = {668327AB-1F82-46EE-A157-CD79AB8BF323} - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} = {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "app_ref", "..\..\test\app_ref\app_ref.vcproj", "{C35122F6-49FF-4AAA-A2AA-482628E5E2A7}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "app_refdll", "..\..\test\app_refdll\app_refdll.vcproj", "{0C618DA2-4097-46B9-83D0-144AEB774568}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "earray", "..\..\test\earray\earray.vcproj", "{D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "earraydll", "..\..\test\earraydll\earraydll.vcproj", "{3C224452-C71A-4B3E-937A-891144D1941D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freespace", "..\..\test\freespace\freespace.vcproj", "{D4395435-B3B0-4937-9AC5-89BD73C47303}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freespacedll", "..\..\test\freespacedll\freespacedll.vcproj", "{737F7A65-62E7-4707-B3DB-B9856131687D}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mf", "..\..\test\mf\mf.vcproj", "{4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mfdll", "..\..\test\mfdll\mfdll.vcproj", "{C4811E26-A7DA-424D-8A44-F29DFD588533}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perf_serial", "..\..\perform\perf_serial\perf_serial.vcproj", "{B8923279-9E37-43D2-8ECF-5225BFB3356A}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perf_serialdll", "..\..\perform\perf_serialdll\perf_serialdll.vcproj", "{BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "farray", "..\..\test\farray\farray.vcproj", "{AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {A80D439C-37B4-4619-A122-1C69F567733B} = {A80D439C-37B4-4619-A122-1C69F567733B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "farraydll", "..\..\test\farraydll\farraydll.vcproj", "{79FF58EE-7427-4732-AC25-370341859292}" - ProjectSection(ProjectDependencies) = postProject - {54BDA057-C716-4807-A35E-73185DCB236D} = {54BDA057-C716-4807-A35E-73185DCB236D} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcheckversion", "..\..\test\tcheckversion\tcheckversion.vcproj", "{DFB6DCC1-2E00-4566-B935-F32172FDA483}" - ProjectSection(ProjectDependencies) = postProject - {26346A09-C500-49E7-963A-D22A8E09AAB7} = {26346A09-C500-49E7-963A-D22A8E09AAB7} - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} = {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcheckversiondll", "..\..\test\tcheckversiondll\tcheckversiondll.vcproj", "{7B3EB7A5-DA01-4488-A06B-63E2941EE078}" - ProjectSection(ProjectDependencies) = postProject - {832DD776-BC7F-40B5-90D0-E6448014CA5B} = {832DD776-BC7F-40B5-90D0-E6448014CA5B} - {C9535AD9-C61D-4691-A5CE-52EF359892AF} = {C9535AD9-C61D-4691-A5CE-52EF359892AF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h5libsettings", "..\..\misc\typegen\h5libsettings\h5libsettings.vcproj", "{50D207BC-2B27-4BD9-B5D4-FCF8358BE757}" - ProjectSection(ProjectDependencies) = postProject - {B123D196-2F43-4FEB-80B5-990F06DED319} = {B123D196-2F43-4FEB-80B5-990F06DED319} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|Win32.ActiveCfg = Debug|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|Win32.Build.0 = Debug|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|x64.ActiveCfg = Debug|x64 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Debug|x64.Build.0 = Debug|x64 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|Win32.ActiveCfg = Release|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|Win32.Build.0 = Release|Win32 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|x64.ActiveCfg = Release|x64 - {24E5C6DF-1FA4-49AD-AE75-1D9347966CC5}.Release|x64.Build.0 = Release|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|Win32.Build.0 = Debug|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|x64.ActiveCfg = Debug|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Debug|x64.Build.0 = Debug|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|Win32.ActiveCfg = Release|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|Win32.Build.0 = Release|Win32 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|x64.ActiveCfg = Release|x64 - {009F2CC9-B131-4C51-BCFD-CEBDEFCB32C7}.Release|x64.Build.0 = Release|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|Win32.ActiveCfg = Debug|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|Win32.Build.0 = Debug|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|x64.ActiveCfg = Debug|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Debug|x64.Build.0 = Debug|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|Win32.ActiveCfg = Release|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|Win32.Build.0 = Release|Win32 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|x64.ActiveCfg = Release|x64 - {8C97CA6D-2210-4D1F-AEF2-5D56FFBCE767}.Release|x64.Build.0 = Release|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|Win32.Build.0 = Debug|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|x64.ActiveCfg = Debug|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Debug|x64.Build.0 = Debug|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|Win32.ActiveCfg = Release|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|Win32.Build.0 = Release|Win32 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|x64.ActiveCfg = Release|x64 - {BE9A4A65-F25B-4DCF-8B55-06B3D0C685CB}.Release|x64.Build.0 = Release|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|Win32.ActiveCfg = Debug|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|Win32.Build.0 = Debug|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|x64.ActiveCfg = Debug|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Debug|x64.Build.0 = Debug|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|Win32.ActiveCfg = Release|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|Win32.Build.0 = Release|Win32 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|x64.ActiveCfg = Release|x64 - {958A5473-0E7C-4FA1-9C2F-AEA0925EF5AD}.Release|x64.Build.0 = Release|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|Win32.Build.0 = Debug|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|x64.ActiveCfg = Debug|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Debug|x64.Build.0 = Debug|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|Win32.ActiveCfg = Release|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|Win32.Build.0 = Release|Win32 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|x64.ActiveCfg = Release|x64 - {E5C9E235-E10F-4F46-A94F-A112CD8D867E}.Release|x64.Build.0 = Release|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|Win32.ActiveCfg = Debug|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|Win32.Build.0 = Debug|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|x64.ActiveCfg = Debug|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Debug|x64.Build.0 = Debug|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|Win32.ActiveCfg = Release|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|Win32.Build.0 = Release|Win32 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|x64.ActiveCfg = Release|x64 - {8CE6FF9D-8A14-4A45-971A-18972109AC9D}.Release|x64.Build.0 = Release|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|Win32.ActiveCfg = Debug|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|Win32.Build.0 = Debug|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|x64.ActiveCfg = Debug|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Debug|x64.Build.0 = Debug|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|Win32.ActiveCfg = Release|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|Win32.Build.0 = Release|Win32 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|x64.ActiveCfg = Release|x64 - {34EEE194-B77E-453E-9C59-252C0421188A}.Release|x64.Build.0 = Release|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|Win32.ActiveCfg = Debug|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|Win32.Build.0 = Debug|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|x64.ActiveCfg = Debug|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Debug|x64.Build.0 = Debug|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|Win32.ActiveCfg = Release|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|Win32.Build.0 = Release|Win32 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|x64.ActiveCfg = Release|x64 - {4BAFED6D-07B4-465D-8C93-81A1C2EF02E0}.Release|x64.Build.0 = Release|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|Win32.ActiveCfg = Debug|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|Win32.Build.0 = Debug|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|x64.ActiveCfg = Debug|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Debug|x64.Build.0 = Debug|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|Win32.ActiveCfg = Release|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|Win32.Build.0 = Release|Win32 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|x64.ActiveCfg = Release|x64 - {4F8B23C1-9832-4C3B-A836-2FBB53F628A0}.Release|x64.Build.0 = Release|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|Win32.ActiveCfg = Debug|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|Win32.Build.0 = Debug|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|x64.ActiveCfg = Debug|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Debug|x64.Build.0 = Debug|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|Win32.ActiveCfg = Release|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|Win32.Build.0 = Release|Win32 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|x64.ActiveCfg = Release|x64 - {EB5DE4FB-CC65-47BF-9D94-AC96B01B6A33}.Release|x64.Build.0 = Release|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|Win32.ActiveCfg = Debug|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|Win32.Build.0 = Debug|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|x64.ActiveCfg = Debug|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Debug|x64.Build.0 = Debug|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|Win32.ActiveCfg = Release|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|Win32.Build.0 = Release|Win32 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|x64.ActiveCfg = Release|x64 - {D0CEF98C-07B5-4A8A-9153-43FDF6B5F169}.Release|x64.Build.0 = Release|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|Win32.ActiveCfg = Debug|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|Win32.Build.0 = Debug|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|x64.ActiveCfg = Debug|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Debug|x64.Build.0 = Debug|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|Win32.ActiveCfg = Release|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|Win32.Build.0 = Release|Win32 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|x64.ActiveCfg = Release|x64 - {57A5C559-F1BD-49F1-9B5E-13591D22FD75}.Release|x64.Build.0 = Release|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|Win32.ActiveCfg = Debug|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|Win32.Build.0 = Debug|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|x64.ActiveCfg = Debug|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Debug|x64.Build.0 = Debug|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|Win32.ActiveCfg = Release|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|Win32.Build.0 = Release|Win32 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|x64.ActiveCfg = Release|x64 - {4941199C-EB11-460D-8EF7-9F68293AE202}.Release|x64.Build.0 = Release|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|Win32.ActiveCfg = Debug|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|Win32.Build.0 = Debug|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|x64.ActiveCfg = Debug|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Debug|x64.Build.0 = Debug|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|Win32.ActiveCfg = Release|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|Win32.Build.0 = Release|Win32 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|x64.ActiveCfg = Release|x64 - {BA86B1FE-8CA7-4A96-9FD0-11941F885589}.Release|x64.Build.0 = Release|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|Win32.ActiveCfg = Debug|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|Win32.Build.0 = Debug|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|x64.ActiveCfg = Debug|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Debug|x64.Build.0 = Debug|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|Win32.ActiveCfg = Release|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|Win32.Build.0 = Release|Win32 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|x64.ActiveCfg = Release|x64 - {8F4417C5-2F4A-4070-88F9-0AFDB0F8EA14}.Release|x64.Build.0 = Release|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|Win32.ActiveCfg = Debug|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|Win32.Build.0 = Debug|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|x64.ActiveCfg = Debug|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Debug|x64.Build.0 = Debug|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|Win32.ActiveCfg = Release|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|Win32.Build.0 = Release|Win32 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|x64.ActiveCfg = Release|x64 - {68A52165-E0EF-4019-B658-1AC734649955}.Release|x64.Build.0 = Release|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|Win32.ActiveCfg = Debug|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|Win32.Build.0 = Debug|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|x64.ActiveCfg = Debug|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Debug|x64.Build.0 = Debug|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|Win32.ActiveCfg = Release|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|Win32.Build.0 = Release|Win32 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|x64.ActiveCfg = Release|x64 - {E1F98D07-4724-46CB-B327-5677C1C9266D}.Release|x64.Build.0 = Release|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|Win32.ActiveCfg = Debug|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|Win32.Build.0 = Debug|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|x64.ActiveCfg = Debug|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Debug|x64.Build.0 = Debug|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|Win32.ActiveCfg = Release|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|Win32.Build.0 = Release|Win32 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|x64.ActiveCfg = Release|x64 - {8C6D9C00-44A9-432F-B695-F56439C1B288}.Release|x64.Build.0 = Release|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|Win32.ActiveCfg = Debug|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|Win32.Build.0 = Debug|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|x64.ActiveCfg = Debug|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Debug|x64.Build.0 = Debug|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|Win32.ActiveCfg = Release|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|Win32.Build.0 = Release|Win32 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|x64.ActiveCfg = Release|x64 - {D15E5D9B-A1A6-4935-889C-D880FD0068CE}.Release|x64.Build.0 = Release|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|Win32.ActiveCfg = Debug|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|Win32.Build.0 = Debug|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|x64.ActiveCfg = Debug|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Debug|x64.Build.0 = Debug|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|Win32.ActiveCfg = Release|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|Win32.Build.0 = Release|Win32 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|x64.ActiveCfg = Release|x64 - {A90ADD88-DA1B-4642-A97B-37DF89433858}.Release|x64.Build.0 = Release|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|Win32.ActiveCfg = Debug|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|Win32.Build.0 = Debug|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|x64.ActiveCfg = Debug|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Debug|x64.Build.0 = Debug|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|Win32.ActiveCfg = Release|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|Win32.Build.0 = Release|Win32 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|x64.ActiveCfg = Release|x64 - {1B298EEC-0B47-4145-88AA-C6558E0BD993}.Release|x64.Build.0 = Release|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|Win32.Build.0 = Debug|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|x64.ActiveCfg = Debug|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Debug|x64.Build.0 = Debug|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|Win32.ActiveCfg = Release|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|Win32.Build.0 = Release|Win32 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|x64.ActiveCfg = Release|x64 - {AE5D4766-9668-4EB5-B801-5DF8F53363FC}.Release|x64.Build.0 = Release|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|Win32.ActiveCfg = Debug|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|Win32.Build.0 = Debug|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|x64.ActiveCfg = Debug|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Debug|x64.Build.0 = Debug|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|Win32.ActiveCfg = Release|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|Win32.Build.0 = Release|Win32 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|x64.ActiveCfg = Release|x64 - {3E41969B-D69B-4235-B192-A94F7853D869}.Release|x64.Build.0 = Release|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|Win32.ActiveCfg = Debug|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|Win32.Build.0 = Debug|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|x64.ActiveCfg = Debug|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Debug|x64.Build.0 = Debug|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|Win32.ActiveCfg = Release|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|Win32.Build.0 = Release|Win32 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|x64.ActiveCfg = Release|x64 - {F5109F4B-5869-40A7-BC6A-8130CA4BB987}.Release|x64.Build.0 = Release|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|Win32.Build.0 = Debug|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|x64.ActiveCfg = Debug|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Debug|x64.Build.0 = Debug|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|Win32.ActiveCfg = Release|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|Win32.Build.0 = Release|Win32 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|x64.ActiveCfg = Release|x64 - {0E0F449A-7998-4113-BDD2-A74E0B6D3466}.Release|x64.Build.0 = Release|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|Win32.ActiveCfg = Debug|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|Win32.Build.0 = Debug|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|x64.ActiveCfg = Debug|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Debug|x64.Build.0 = Debug|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|Win32.ActiveCfg = Release|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|Win32.Build.0 = Release|Win32 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|x64.ActiveCfg = Release|x64 - {4AC79406-D6E0-43B3-82B0-7A032FABB52A}.Release|x64.Build.0 = Release|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|Win32.Build.0 = Debug|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|x64.ActiveCfg = Debug|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Debug|x64.Build.0 = Debug|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|Win32.ActiveCfg = Release|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|Win32.Build.0 = Release|Win32 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|x64.ActiveCfg = Release|x64 - {AE50F8BA-5FAC-47CC-A5A0-7F1E55C413E3}.Release|x64.Build.0 = Release|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|Win32.ActiveCfg = Debug|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|Win32.Build.0 = Debug|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|x64.ActiveCfg = Debug|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Debug|x64.Build.0 = Debug|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|Win32.ActiveCfg = Release|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|Win32.Build.0 = Release|Win32 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|x64.ActiveCfg = Release|x64 - {FD8B058E-F53A-4197-B75E-849904E5AA79}.Release|x64.Build.0 = Release|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|Win32.ActiveCfg = Debug|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|Win32.Build.0 = Debug|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|x64.ActiveCfg = Debug|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Debug|x64.Build.0 = Debug|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|Win32.ActiveCfg = Release|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|Win32.Build.0 = Release|Win32 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|x64.ActiveCfg = Release|x64 - {D8D53F43-41EE-486A-8DBD-956D8CD072E8}.Release|x64.Build.0 = Release|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|Win32.ActiveCfg = Debug|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|Win32.Build.0 = Debug|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|x64.ActiveCfg = Debug|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Debug|x64.Build.0 = Debug|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|Win32.ActiveCfg = Release|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|Win32.Build.0 = Release|Win32 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|x64.ActiveCfg = Release|x64 - {7ABA5DD5-77E7-42D3-9C29-84A13B0CAA91}.Release|x64.Build.0 = Release|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|Win32.ActiveCfg = Debug|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|Win32.Build.0 = Debug|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|x64.ActiveCfg = Debug|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Debug|x64.Build.0 = Debug|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|Win32.ActiveCfg = Release|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|Win32.Build.0 = Release|Win32 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|x64.ActiveCfg = Release|x64 - {55894CDC-C220-40FE-B403-D74EAC6EBACF}.Release|x64.Build.0 = Release|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|Win32.ActiveCfg = Debug|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|Win32.Build.0 = Debug|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|x64.ActiveCfg = Debug|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Debug|x64.Build.0 = Debug|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|Win32.ActiveCfg = Release|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|Win32.Build.0 = Release|Win32 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|x64.ActiveCfg = Release|x64 - {265C41B2-30D7-4FF8-A08C-B997363DA763}.Release|x64.Build.0 = Release|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|Win32.ActiveCfg = Debug|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|Win32.Build.0 = Debug|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|x64.ActiveCfg = Debug|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Debug|x64.Build.0 = Debug|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|Win32.ActiveCfg = Release|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|Win32.Build.0 = Release|Win32 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|x64.ActiveCfg = Release|x64 - {309CE6F8-4658-44CB-8E99-0B86DCA77EFC}.Release|x64.Build.0 = Release|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|Win32.ActiveCfg = Debug|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|Win32.Build.0 = Debug|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|x64.ActiveCfg = Debug|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Debug|x64.Build.0 = Debug|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|Win32.ActiveCfg = Release|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|Win32.Build.0 = Release|Win32 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|x64.ActiveCfg = Release|x64 - {8708E58C-F990-4B6C-AD83-745CA9582E92}.Release|x64.Build.0 = Release|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|Win32.ActiveCfg = Debug|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|Win32.Build.0 = Debug|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|x64.ActiveCfg = Debug|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Debug|x64.Build.0 = Debug|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|Win32.ActiveCfg = Release|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|Win32.Build.0 = Release|Win32 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|x64.ActiveCfg = Release|x64 - {76FFD0F6-3D5F-4826-A3BA-DEE92084FA27}.Release|x64.Build.0 = Release|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|Win32.ActiveCfg = Debug|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|Win32.Build.0 = Debug|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|x64.ActiveCfg = Debug|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Debug|x64.Build.0 = Debug|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|Win32.ActiveCfg = Release|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|Win32.Build.0 = Release|Win32 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|x64.ActiveCfg = Release|x64 - {7D293021-0601-498B-91B8-C49580EFB08D}.Release|x64.Build.0 = Release|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|Win32.Build.0 = Debug|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|x64.ActiveCfg = Debug|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Debug|x64.Build.0 = Debug|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|Win32.ActiveCfg = Release|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|Win32.Build.0 = Release|Win32 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|x64.ActiveCfg = Release|x64 - {0CB771D6-9CAB-4799-A7B1-5D89E436E6AF}.Release|x64.Build.0 = Release|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|Win32.ActiveCfg = Debug|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|Win32.Build.0 = Debug|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|x64.ActiveCfg = Debug|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Debug|x64.Build.0 = Debug|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|Win32.ActiveCfg = Release|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|Win32.Build.0 = Release|Win32 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|x64.ActiveCfg = Release|x64 - {AACD0537-E8F3-4F0F-A0E6-B99C0F4EF892}.Release|x64.Build.0 = Release|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|Win32.ActiveCfg = Debug|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|Win32.Build.0 = Debug|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|x64.ActiveCfg = Debug|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Debug|x64.Build.0 = Debug|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|Win32.ActiveCfg = Release|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|Win32.Build.0 = Release|Win32 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|x64.ActiveCfg = Release|x64 - {CEBB9980-4B77-4105-BFEB-4DCDBB1F5E35}.Release|x64.Build.0 = Release|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|Win32.ActiveCfg = Debug|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|Win32.Build.0 = Debug|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|x64.ActiveCfg = Debug|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Debug|x64.Build.0 = Debug|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|Win32.ActiveCfg = Release|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|Win32.Build.0 = Release|Win32 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|x64.ActiveCfg = Release|x64 - {CAC1F1E8-55D5-4CC6-857E-F01E59FB8098}.Release|x64.Build.0 = Release|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|Win32.ActiveCfg = Debug|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|Win32.Build.0 = Debug|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|x64.ActiveCfg = Debug|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Debug|x64.Build.0 = Debug|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|Win32.ActiveCfg = Release|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|Win32.Build.0 = Release|Win32 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|x64.ActiveCfg = Release|x64 - {0CB176F2-1FA9-467A-986D-512FAD8144B0}.Release|x64.Build.0 = Release|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|Win32.ActiveCfg = Debug|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|Win32.Build.0 = Debug|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|x64.ActiveCfg = Debug|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Debug|x64.Build.0 = Debug|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|Win32.ActiveCfg = Release|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|Win32.Build.0 = Release|Win32 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|x64.ActiveCfg = Release|x64 - {364FF608-7969-4ED1-95B2-8592872F8264}.Release|x64.Build.0 = Release|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|Win32.ActiveCfg = Debug|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|Win32.Build.0 = Debug|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|x64.ActiveCfg = Debug|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Debug|x64.Build.0 = Debug|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|Win32.ActiveCfg = Release|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|Win32.Build.0 = Release|Win32 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|x64.ActiveCfg = Release|x64 - {B36344D1-122C-4BC6-A292-CC82F74CBB0A}.Release|x64.Build.0 = Release|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|Win32.ActiveCfg = Debug|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|Win32.Build.0 = Debug|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|x64.ActiveCfg = Debug|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Debug|x64.Build.0 = Debug|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|Win32.ActiveCfg = Release|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|Win32.Build.0 = Release|Win32 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|x64.ActiveCfg = Release|x64 - {E9F8FC85-8508-4FE7-9BB0-C0494A71BA1B}.Release|x64.Build.0 = Release|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|Win32.Build.0 = Debug|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|x64.ActiveCfg = Debug|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Debug|x64.Build.0 = Debug|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|Win32.ActiveCfg = Release|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|Win32.Build.0 = Release|Win32 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|x64.ActiveCfg = Release|x64 - {F4386ECB-D688-4C18-A091-673F1F8A96E7}.Release|x64.Build.0 = Release|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|Win32.Build.0 = Debug|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|x64.ActiveCfg = Debug|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Debug|x64.Build.0 = Debug|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|Win32.ActiveCfg = Release|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|Win32.Build.0 = Release|Win32 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|x64.ActiveCfg = Release|x64 - {B21CA611-6DAE-4051-8B4C-989E135711B1}.Release|x64.Build.0 = Release|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|Win32.ActiveCfg = Debug|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|Win32.Build.0 = Debug|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|x64.ActiveCfg = Debug|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Debug|x64.Build.0 = Debug|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|Win32.ActiveCfg = Release|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|Win32.Build.0 = Release|Win32 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|x64.ActiveCfg = Release|x64 - {80892339-F6CE-4E96-B61B-131095F2612D}.Release|x64.Build.0 = Release|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|Win32.ActiveCfg = Debug|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|Win32.Build.0 = Debug|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|x64.ActiveCfg = Debug|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Debug|x64.Build.0 = Debug|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|Win32.ActiveCfg = Release|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|Win32.Build.0 = Release|Win32 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|x64.ActiveCfg = Release|x64 - {2FC5DAE1-36D6-4783-A0F9-96D0B37687A8}.Release|x64.Build.0 = Release|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|Win32.Build.0 = Debug|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|x64.ActiveCfg = Debug|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Debug|x64.Build.0 = Debug|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|Win32.ActiveCfg = Release|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|Win32.Build.0 = Release|Win32 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|x64.ActiveCfg = Release|x64 - {9FCBE814-3818-4F1A-975D-05BAF6FF432F}.Release|x64.Build.0 = Release|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|Win32.ActiveCfg = Debug|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|Win32.Build.0 = Debug|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|x64.ActiveCfg = Debug|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Debug|x64.Build.0 = Debug|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|Win32.ActiveCfg = Release|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|Win32.Build.0 = Release|Win32 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|x64.ActiveCfg = Release|x64 - {0DA16B6F-0156-417A-9093-589D55BB066C}.Release|x64.Build.0 = Release|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|Win32.ActiveCfg = Debug|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|Win32.Build.0 = Debug|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|x64.ActiveCfg = Debug|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Debug|x64.Build.0 = Debug|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|Win32.ActiveCfg = Release|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|Win32.Build.0 = Release|Win32 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|x64.ActiveCfg = Release|x64 - {7C30B2A4-A24D-4796-9754-CABBDB46D0F8}.Release|x64.Build.0 = Release|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|Win32.ActiveCfg = Debug|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|Win32.Build.0 = Debug|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|x64.ActiveCfg = Debug|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Debug|x64.Build.0 = Debug|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|Win32.ActiveCfg = Release|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|Win32.Build.0 = Release|Win32 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|x64.ActiveCfg = Release|x64 - {C325E167-DBC3-4611-8AC8-2A118432E35B}.Release|x64.Build.0 = Release|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|Win32.ActiveCfg = Debug|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|Win32.Build.0 = Debug|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|x64.ActiveCfg = Debug|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Debug|x64.Build.0 = Debug|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|Win32.ActiveCfg = Release|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|Win32.Build.0 = Release|Win32 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|x64.ActiveCfg = Release|x64 - {AA7A40A2-A837-4557-AB3D-D64980F6F8E4}.Release|x64.Build.0 = Release|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|Win32.ActiveCfg = Debug|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|Win32.Build.0 = Debug|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|x64.ActiveCfg = Debug|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Debug|x64.Build.0 = Debug|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|Win32.ActiveCfg = Release|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|Win32.Build.0 = Release|Win32 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|x64.ActiveCfg = Release|x64 - {834DD32C-D078-441F-95F4-9CDE108B60AE}.Release|x64.Build.0 = Release|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|Win32.ActiveCfg = Debug|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|Win32.Build.0 = Debug|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|x64.ActiveCfg = Debug|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Debug|x64.Build.0 = Debug|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|Win32.ActiveCfg = Release|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|Win32.Build.0 = Release|Win32 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|x64.ActiveCfg = Release|x64 - {69952435-F01F-46A7-B907-A78EBC864ED7}.Release|x64.Build.0 = Release|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|Win32.Build.0 = Debug|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|x64.ActiveCfg = Debug|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Debug|x64.Build.0 = Debug|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|Win32.ActiveCfg = Release|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|Win32.Build.0 = Release|Win32 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|x64.ActiveCfg = Release|x64 - {BE1A0022-708E-4CC2-B01C-26BD99AB6576}.Release|x64.Build.0 = Release|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|Win32.ActiveCfg = Debug|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|Win32.Build.0 = Debug|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|x64.ActiveCfg = Debug|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Debug|x64.Build.0 = Debug|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|Win32.ActiveCfg = Release|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|Win32.Build.0 = Release|Win32 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|x64.ActiveCfg = Release|x64 - {D10F67D0-8057-49C2-A62A-12D0C512288E}.Release|x64.Build.0 = Release|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|Win32.Build.0 = Debug|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|x64.ActiveCfg = Debug|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Debug|x64.Build.0 = Debug|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|Win32.ActiveCfg = Release|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|Win32.Build.0 = Release|Win32 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|x64.ActiveCfg = Release|x64 - {1C5A9EC8-F882-4A8A-B773-E79CD46369AF}.Release|x64.Build.0 = Release|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|Win32.ActiveCfg = Debug|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|Win32.Build.0 = Debug|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|x64.ActiveCfg = Debug|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Debug|x64.Build.0 = Debug|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|Win32.ActiveCfg = Release|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|Win32.Build.0 = Release|Win32 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|x64.ActiveCfg = Release|x64 - {EC6B5EAD-D938-4211-A7B1-01C9D2C15160}.Release|x64.Build.0 = Release|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|Win32.ActiveCfg = Debug|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|Win32.Build.0 = Debug|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|x64.ActiveCfg = Debug|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Debug|x64.Build.0 = Debug|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|Win32.ActiveCfg = Release|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|Win32.Build.0 = Release|Win32 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|x64.ActiveCfg = Release|x64 - {1F80CDF7-B1CB-4303-B282-A21EDC2BDCB4}.Release|x64.Build.0 = Release|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|Win32.Build.0 = Debug|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|x64.ActiveCfg = Debug|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Debug|x64.Build.0 = Debug|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|Win32.ActiveCfg = Release|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|Win32.Build.0 = Release|Win32 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|x64.ActiveCfg = Release|x64 - {9A8352DF-AA1E-4FE0-9494-F9D6B4E10CA2}.Release|x64.Build.0 = Release|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|Win32.ActiveCfg = Debug|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|Win32.Build.0 = Debug|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|x64.ActiveCfg = Debug|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Debug|x64.Build.0 = Debug|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|Win32.ActiveCfg = Release|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|Win32.Build.0 = Release|Win32 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|x64.ActiveCfg = Release|x64 - {7E207F6A-DC28-4DEB-8454-7977092131DC}.Release|x64.Build.0 = Release|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|Win32.Build.0 = Debug|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|x64.ActiveCfg = Debug|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Debug|x64.Build.0 = Debug|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|Win32.ActiveCfg = Release|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|Win32.Build.0 = Release|Win32 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|x64.ActiveCfg = Release|x64 - {0A33B4FE-A2C9-4B7F-ACEC-D251308182ED}.Release|x64.Build.0 = Release|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|Win32.Build.0 = Debug|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|x64.ActiveCfg = Debug|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Debug|x64.Build.0 = Debug|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|Win32.ActiveCfg = Release|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|Win32.Build.0 = Release|Win32 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|x64.ActiveCfg = Release|x64 - {9E588AD8-14BD-4BA3-B4EA-16D1D882C700}.Release|x64.Build.0 = Release|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|Win32.ActiveCfg = Debug|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|Win32.Build.0 = Debug|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|x64.ActiveCfg = Debug|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Debug|x64.Build.0 = Debug|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|Win32.ActiveCfg = Release|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|Win32.Build.0 = Release|Win32 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|x64.ActiveCfg = Release|x64 - {2DCDB978-79B7-4A3A-B24A-D908A49B7D50}.Release|x64.Build.0 = Release|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|Win32.ActiveCfg = Debug|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|Win32.Build.0 = Debug|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|x64.ActiveCfg = Debug|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Debug|x64.Build.0 = Debug|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|Win32.ActiveCfg = Release|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|Win32.Build.0 = Release|Win32 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|x64.ActiveCfg = Release|x64 - {AF696934-5004-4C1D-90C3-B434E92AFB89}.Release|x64.Build.0 = Release|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|Win32.ActiveCfg = Debug|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|Win32.Build.0 = Debug|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|x64.ActiveCfg = Debug|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Debug|x64.Build.0 = Debug|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|Win32.ActiveCfg = Release|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|Win32.Build.0 = Release|Win32 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|x64.ActiveCfg = Release|x64 - {196F5935-2391-49A7-B6A2-410DF8149F0D}.Release|x64.Build.0 = Release|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|Win32.ActiveCfg = Debug|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|Win32.Build.0 = Debug|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|x64.ActiveCfg = Debug|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Debug|x64.Build.0 = Debug|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|Win32.ActiveCfg = Release|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|Win32.Build.0 = Release|Win32 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|x64.ActiveCfg = Release|x64 - {E8896FEE-8601-4AFC-91EA-6F9698574174}.Release|x64.Build.0 = Release|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|Win32.ActiveCfg = Debug|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|Win32.Build.0 = Debug|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|x64.ActiveCfg = Debug|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Debug|x64.Build.0 = Debug|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|Win32.ActiveCfg = Release|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|Win32.Build.0 = Release|Win32 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|x64.ActiveCfg = Release|x64 - {357A1E1A-D5EA-42FB-B4B1-EEB8A4B2BBF0}.Release|x64.Build.0 = Release|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|Win32.ActiveCfg = Debug|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|Win32.Build.0 = Debug|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|x64.ActiveCfg = Debug|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Debug|x64.Build.0 = Debug|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|Win32.ActiveCfg = Release|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|Win32.Build.0 = Release|Win32 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|x64.ActiveCfg = Release|x64 - {18FBE8C2-CD20-4D99-9E0B-63B408CE4850}.Release|x64.Build.0 = Release|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|Win32.Build.0 = Debug|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|x64.ActiveCfg = Debug|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Debug|x64.Build.0 = Debug|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|Win32.ActiveCfg = Release|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|Win32.Build.0 = Release|Win32 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|x64.ActiveCfg = Release|x64 - {ABBF8F3E-F1B5-45FA-8FD0-50B167511EDF}.Release|x64.Build.0 = Release|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|Win32.ActiveCfg = Debug|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|Win32.Build.0 = Debug|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|x64.ActiveCfg = Debug|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Debug|x64.Build.0 = Debug|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|Win32.ActiveCfg = Release|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|Win32.Build.0 = Release|Win32 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|x64.ActiveCfg = Release|x64 - {411D221C-9FA1-417E-8A2B-DF746F4C7E07}.Release|x64.Build.0 = Release|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|Win32.ActiveCfg = Debug|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|Win32.Build.0 = Debug|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|x64.ActiveCfg = Debug|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Debug|x64.Build.0 = Debug|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|Win32.ActiveCfg = Release|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|Win32.Build.0 = Release|Win32 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|x64.ActiveCfg = Release|x64 - {854F7E09-CEB5-44CD-B924-3FFAC7936323}.Release|x64.Build.0 = Release|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|Win32.ActiveCfg = Debug|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|Win32.Build.0 = Debug|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|x64.ActiveCfg = Debug|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Debug|x64.Build.0 = Debug|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|Win32.ActiveCfg = Release|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|Win32.Build.0 = Release|Win32 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|x64.ActiveCfg = Release|x64 - {AC4C582B-B27D-4E57-A59F-6FF0E833C6E5}.Release|x64.Build.0 = Release|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|Win32.ActiveCfg = Debug|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|Win32.Build.0 = Debug|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|x64.ActiveCfg = Debug|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Debug|x64.Build.0 = Debug|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|Win32.ActiveCfg = Release|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|Win32.Build.0 = Release|Win32 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|x64.ActiveCfg = Release|x64 - {F2E38A8C-F3A3-4DA4-B9C2-11C753FF51BF}.Release|x64.Build.0 = Release|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|Win32.ActiveCfg = Debug|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|Win32.Build.0 = Debug|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|x64.ActiveCfg = Debug|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Debug|x64.Build.0 = Debug|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|Win32.ActiveCfg = Release|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|Win32.Build.0 = Release|Win32 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|x64.ActiveCfg = Release|x64 - {EBF7C380-5F58-462D-993D-75B53F83FA81}.Release|x64.Build.0 = Release|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|Win32.ActiveCfg = Debug|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|Win32.Build.0 = Debug|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|x64.ActiveCfg = Debug|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Debug|x64.Build.0 = Debug|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|Win32.ActiveCfg = Release|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|Win32.Build.0 = Release|Win32 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|x64.ActiveCfg = Release|x64 - {89DA820B-7A3B-46FA-AE09-971A739BEEFD}.Release|x64.Build.0 = Release|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|Win32.ActiveCfg = Debug|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|Win32.Build.0 = Debug|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|x64.ActiveCfg = Debug|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Debug|x64.Build.0 = Debug|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|Win32.ActiveCfg = Release|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|Win32.Build.0 = Release|Win32 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|x64.ActiveCfg = Release|x64 - {53022A9D-F5B2-407C-9A29-3AC71B3E6DDC}.Release|x64.Build.0 = Release|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|Win32.ActiveCfg = Debug|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|Win32.Build.0 = Debug|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|x64.ActiveCfg = Debug|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Debug|x64.Build.0 = Debug|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|Win32.ActiveCfg = Release|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|Win32.Build.0 = Release|Win32 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|x64.ActiveCfg = Release|x64 - {405F6F0A-DBE6-4A4E-AAE2-D4D514BA0CF5}.Release|x64.Build.0 = Release|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|Win32.ActiveCfg = Debug|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|Win32.Build.0 = Debug|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|x64.ActiveCfg = Debug|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Debug|x64.Build.0 = Debug|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|Win32.ActiveCfg = Release|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|Win32.Build.0 = Release|Win32 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|x64.ActiveCfg = Release|x64 - {165195D1-B742-4030-8B12-3FE94B829D45}.Release|x64.Build.0 = Release|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|Win32.Build.0 = Debug|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|x64.ActiveCfg = Debug|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Debug|x64.Build.0 = Debug|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|Win32.ActiveCfg = Release|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|Win32.Build.0 = Release|Win32 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|x64.ActiveCfg = Release|x64 - {52E83C17-2B68-44B5-881D-4F6338FB14C7}.Release|x64.Build.0 = Release|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|Win32.ActiveCfg = Debug|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|Win32.Build.0 = Debug|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|x64.ActiveCfg = Debug|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Debug|x64.Build.0 = Debug|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|Win32.ActiveCfg = Release|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|Win32.Build.0 = Release|Win32 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|x64.ActiveCfg = Release|x64 - {26346A09-C500-49E7-963A-D22A8E09AAB7}.Release|x64.Build.0 = Release|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|Win32.ActiveCfg = Debug|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|Win32.Build.0 = Debug|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|x64.ActiveCfg = Debug|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Debug|x64.Build.0 = Debug|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|Win32.ActiveCfg = Release|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|Win32.Build.0 = Release|Win32 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|x64.ActiveCfg = Release|x64 - {FB74E351-0C4E-4173-B0D3-10DD12F2DCA5}.Release|x64.Build.0 = Release|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|Win32.ActiveCfg = Debug|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|Win32.Build.0 = Debug|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|x64.ActiveCfg = Debug|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Debug|x64.Build.0 = Debug|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|Win32.ActiveCfg = Release|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|Win32.Build.0 = Release|Win32 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|x64.ActiveCfg = Release|x64 - {D279901A-8E21-47D3-B7EA-A572EE12F2E6}.Release|x64.Build.0 = Release|x64 - {CF055FEA-4433-439A-9688-BFD73D260706}.Debug|Win32.ActiveCfg = Debug|Win32 - {CF055FEA-4433-439A-9688-BFD73D260706}.Debug|Win32.Build.0 = Debug|Win32 - {CF055FEA-4433-439A-9688-BFD73D260706}.Debug|x64.ActiveCfg = Debug|x64 - {CF055FEA-4433-439A-9688-BFD73D260706}.Debug|x64.Build.0 = Debug|x64 - {CF055FEA-4433-439A-9688-BFD73D260706}.Release|Win32.ActiveCfg = Release|Win32 - {CF055FEA-4433-439A-9688-BFD73D260706}.Release|Win32.Build.0 = Release|Win32 - {CF055FEA-4433-439A-9688-BFD73D260706}.Release|x64.ActiveCfg = Release|x64 - {CF055FEA-4433-439A-9688-BFD73D260706}.Release|x64.Build.0 = Release|x64 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Debug|Win32.ActiveCfg = Debug|Win32 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Debug|Win32.Build.0 = Debug|Win32 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Debug|x64.ActiveCfg = Debug|x64 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Debug|x64.Build.0 = Debug|x64 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Release|Win32.ActiveCfg = Release|Win32 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Release|Win32.Build.0 = Release|Win32 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Release|x64.ActiveCfg = Release|x64 - {668327AB-1F82-46EE-A157-CD79AB8BF323}.Release|x64.Build.0 = Release|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|Win32.Build.0 = Debug|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|x64.ActiveCfg = Debug|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Debug|x64.Build.0 = Debug|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|Win32.ActiveCfg = Release|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|Win32.Build.0 = Release|Win32 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|x64.ActiveCfg = Release|x64 - {9A124450-EC54-4813-B0B1-2CA96B695009}.Release|x64.Build.0 = Release|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|Win32.ActiveCfg = Debug|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|Win32.Build.0 = Debug|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|x64.ActiveCfg = Debug|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Debug|x64.Build.0 = Debug|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|Win32.ActiveCfg = Release|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|Win32.Build.0 = Release|Win32 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|x64.ActiveCfg = Release|x64 - {7693B383-C2CB-43FD-A428-598F73D214F7}.Release|x64.Build.0 = Release|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|Win32.ActiveCfg = Debug|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|Win32.Build.0 = Debug|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|x64.ActiveCfg = Debug|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Debug|x64.Build.0 = Debug|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|Win32.ActiveCfg = Release|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|Win32.Build.0 = Release|Win32 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|x64.ActiveCfg = Release|x64 - {3EDEB434-F59E-4C50-8884-F0BB29845619}.Release|x64.Build.0 = Release|x64 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Debug|Win32.ActiveCfg = Debug|Win32 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Debug|Win32.Build.0 = Debug|Win32 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Debug|x64.ActiveCfg = Debug|x64 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Debug|x64.Build.0 = Debug|x64 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Release|Win32.ActiveCfg = Release|Win32 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Release|Win32.Build.0 = Release|Win32 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Release|x64.ActiveCfg = Release|x64 - {DB6C7D17-28B1-4E5A-A61E-C53FEB545937}.Release|x64.Build.0 = Release|x64 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Debug|Win32.ActiveCfg = Debug|Win32 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Debug|Win32.Build.0 = Debug|Win32 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Debug|x64.ActiveCfg = Debug|x64 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Debug|x64.Build.0 = Debug|x64 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Release|Win32.ActiveCfg = Release|Win32 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Release|Win32.Build.0 = Release|Win32 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Release|x64.ActiveCfg = Release|x64 - {01DA0D22-D220-4ACE-9EB0-EA3906098C0A}.Release|x64.Build.0 = Release|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|Win32.ActiveCfg = Debug|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|Win32.Build.0 = Debug|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|x64.ActiveCfg = Debug|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Debug|x64.Build.0 = Debug|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|Win32.ActiveCfg = Release|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|Win32.Build.0 = Release|Win32 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|x64.ActiveCfg = Release|x64 - {CFB2CC74-5F03-494A-84E9-6BB8D2FBC43C}.Release|x64.Build.0 = Release|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|Win32.Build.0 = Debug|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|x64.ActiveCfg = Debug|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Debug|x64.Build.0 = Debug|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|Win32.ActiveCfg = Release|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|Win32.Build.0 = Release|Win32 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|x64.ActiveCfg = Release|x64 - {C9535AD9-C61D-4691-A5CE-52EF359892AF}.Release|x64.Build.0 = Release|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|Win32.ActiveCfg = Debug|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|Win32.Build.0 = Debug|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|x64.ActiveCfg = Debug|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Debug|x64.Build.0 = Debug|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|Win32.ActiveCfg = Release|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|Win32.Build.0 = Release|Win32 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|x64.ActiveCfg = Release|x64 - {6410E6D2-EDBF-439D-8C43-1AB0C37AC851}.Release|x64.Build.0 = Release|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|Win32.ActiveCfg = Debug|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|Win32.Build.0 = Debug|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|x64.ActiveCfg = Debug|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Debug|x64.Build.0 = Debug|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|Win32.ActiveCfg = Release|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|Win32.Build.0 = Release|Win32 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|x64.ActiveCfg = Release|x64 - {3B4A4A62-FDAC-4219-98BD-80C4FE5D4B2F}.Release|x64.Build.0 = Release|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|Win32.ActiveCfg = Debug|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|Win32.Build.0 = Debug|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|x64.ActiveCfg = Debug|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Debug|x64.Build.0 = Debug|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|Win32.ActiveCfg = Release|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|Win32.Build.0 = Release|Win32 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|x64.ActiveCfg = Release|x64 - {03359B45-E43D-44B3-BDE5-8B14D9F0D827}.Release|x64.Build.0 = Release|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|Win32.Build.0 = Debug|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|x64.ActiveCfg = Debug|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Debug|x64.Build.0 = Debug|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|Win32.ActiveCfg = Release|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|Win32.Build.0 = Release|Win32 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|x64.ActiveCfg = Release|x64 - {9A226D92-9326-4907-A462-25997D5C9427}.Release|x64.Build.0 = Release|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|Win32.ActiveCfg = Debug|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|Win32.Build.0 = Debug|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|x64.ActiveCfg = Debug|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Debug|x64.Build.0 = Debug|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|Win32.ActiveCfg = Release|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|Win32.Build.0 = Release|Win32 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|x64.ActiveCfg = Release|x64 - {6FFCE804-EF4A-468F-A174-561934C153A1}.Release|x64.Build.0 = Release|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|Win32.ActiveCfg = Debug|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|Win32.Build.0 = Debug|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|x64.ActiveCfg = Debug|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Debug|x64.Build.0 = Debug|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|Win32.ActiveCfg = Release|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|Win32.Build.0 = Release|Win32 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|x64.ActiveCfg = Release|x64 - {98AE818A-E887-414B-985F-85F8411916C9}.Release|x64.Build.0 = Release|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|Win32.ActiveCfg = Debug|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|Win32.Build.0 = Debug|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|x64.ActiveCfg = Debug|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Debug|x64.Build.0 = Debug|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|Win32.ActiveCfg = Release|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|Win32.Build.0 = Release|Win32 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|x64.ActiveCfg = Release|x64 - {5CC7FFCE-2612-41B6-AF83-C1B61F67949B}.Release|x64.Build.0 = Release|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|Win32.ActiveCfg = Debug|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|Win32.Build.0 = Debug|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|x64.ActiveCfg = Debug|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Debug|x64.Build.0 = Debug|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|Win32.ActiveCfg = Release|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|Win32.Build.0 = Release|Win32 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|x64.ActiveCfg = Release|x64 - {E3B02B7C-6CF5-42C5-8AF5-48D2B6D8F94B}.Release|x64.Build.0 = Release|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|Win32.ActiveCfg = Debug|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|Win32.Build.0 = Debug|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|x64.ActiveCfg = Debug|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Debug|x64.Build.0 = Debug|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|Win32.ActiveCfg = Release|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|Win32.Build.0 = Release|Win32 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|x64.ActiveCfg = Release|x64 - {43069CE7-E7CB-4EBF-A6CC-31E7A06D3835}.Release|x64.Build.0 = Release|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|Win32.ActiveCfg = Debug|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|Win32.Build.0 = Debug|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|x64.ActiveCfg = Debug|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Debug|x64.Build.0 = Debug|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|Win32.ActiveCfg = Release|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|Win32.Build.0 = Release|Win32 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|x64.ActiveCfg = Release|x64 - {6312B365-AA53-43AA-BD00-848C1323CA8B}.Release|x64.Build.0 = Release|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|Win32.ActiveCfg = Debug|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|Win32.Build.0 = Debug|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|x64.ActiveCfg = Debug|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Debug|x64.Build.0 = Debug|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|Win32.ActiveCfg = Release|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|Win32.Build.0 = Release|Win32 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|x64.ActiveCfg = Release|x64 - {0D18A50F-52B3-4322-AC0D-F15CD657CEC4}.Release|x64.Build.0 = Release|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|Win32.Build.0 = Debug|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|x64.ActiveCfg = Debug|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Debug|x64.Build.0 = Debug|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|Win32.ActiveCfg = Release|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|Win32.Build.0 = Release|Win32 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|x64.ActiveCfg = Release|x64 - {D1AADCA9-FB5A-4F44-8E11-8232941E2C33}.Release|x64.Build.0 = Release|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|Win32.Build.0 = Debug|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|x64.ActiveCfg = Debug|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Debug|x64.Build.0 = Debug|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|Win32.ActiveCfg = Release|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|Win32.Build.0 = Release|Win32 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|x64.ActiveCfg = Release|x64 - {1AB767EA-546C-4F72-BC1F-6AA0458512D8}.Release|x64.Build.0 = Release|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|Win32.ActiveCfg = Debug|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|Win32.Build.0 = Debug|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|x64.ActiveCfg = Debug|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Debug|x64.Build.0 = Debug|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|Win32.ActiveCfg = Release|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|Win32.Build.0 = Release|Win32 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|x64.ActiveCfg = Release|x64 - {CEA44545-33C8-4C63-9F8C-85BA48F45637}.Release|x64.Build.0 = Release|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|Win32.ActiveCfg = Debug|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|Win32.Build.0 = Debug|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|x64.ActiveCfg = Debug|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Debug|x64.Build.0 = Debug|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|Win32.ActiveCfg = Release|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|Win32.Build.0 = Release|Win32 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|x64.ActiveCfg = Release|x64 - {73B78F11-3DCC-4A00-B4A6-E5A8FAE9DD90}.Release|x64.Build.0 = Release|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|Win32.Build.0 = Debug|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|x64.ActiveCfg = Debug|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Debug|x64.Build.0 = Debug|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|Win32.ActiveCfg = Release|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|Win32.Build.0 = Release|Win32 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|x64.ActiveCfg = Release|x64 - {4E8105F2-56D4-45D6-9017-706F804052E7}.Release|x64.Build.0 = Release|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|Win32.Build.0 = Debug|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|x64.ActiveCfg = Debug|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Debug|x64.Build.0 = Debug|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|Win32.ActiveCfg = Release|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|Win32.Build.0 = Release|Win32 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|x64.ActiveCfg = Release|x64 - {C4BA3E66-2310-43E7-B30A-ABDCCF44D823}.Release|x64.Build.0 = Release|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|Win32.Build.0 = Debug|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|x64.ActiveCfg = Debug|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Debug|x64.Build.0 = Debug|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|Win32.ActiveCfg = Release|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|Win32.Build.0 = Release|Win32 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|x64.ActiveCfg = Release|x64 - {BE4FFA8B-2988-4888-A9B9-DD108BCBA8A6}.Release|x64.Build.0 = Release|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|Win32.ActiveCfg = Debug|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|Win32.Build.0 = Debug|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|x64.ActiveCfg = Debug|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Debug|x64.Build.0 = Debug|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|Win32.ActiveCfg = Release|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|Win32.Build.0 = Release|Win32 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|x64.ActiveCfg = Release|x64 - {5A90FD64-6EED-45E1-A147-D9FE72788570}.Release|x64.Build.0 = Release|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|Win32.ActiveCfg = Debug|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|Win32.Build.0 = Debug|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|x64.ActiveCfg = Debug|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Debug|x64.Build.0 = Debug|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|Win32.ActiveCfg = Release|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|Win32.Build.0 = Release|Win32 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|x64.ActiveCfg = Release|x64 - {E02CDAAC-05F4-436B-B245-2A402FFA131F}.Release|x64.Build.0 = Release|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|Win32.ActiveCfg = Debug|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|Win32.Build.0 = Debug|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|x64.ActiveCfg = Debug|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Debug|x64.Build.0 = Debug|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|Win32.ActiveCfg = Release|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|Win32.Build.0 = Release|Win32 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|x64.ActiveCfg = Release|x64 - {A80D439C-37B4-4619-A122-1C69F567733B}.Release|x64.Build.0 = Release|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|Win32.ActiveCfg = Debug|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|Win32.Build.0 = Debug|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|x64.ActiveCfg = Debug|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Debug|x64.Build.0 = Debug|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|Win32.ActiveCfg = Release|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|Win32.Build.0 = Release|Win32 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|x64.ActiveCfg = Release|x64 - {54BDA057-C716-4807-A35E-73185DCB236D}.Release|x64.Build.0 = Release|x64 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Debug|Win32.ActiveCfg = Debug|Win32 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Debug|Win32.Build.0 = Debug|Win32 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Debug|x64.ActiveCfg = Debug|x64 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Debug|x64.Build.0 = Debug|x64 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Release|Win32.ActiveCfg = Release|Win32 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Release|Win32.Build.0 = Release|Win32 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Release|x64.ActiveCfg = Release|x64 - {1BFA0FE4-B924-4325-9EA1-3CB26BBAE31C}.Release|x64.Build.0 = Release|x64 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Debug|Win32.Build.0 = Debug|Win32 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Debug|x64.ActiveCfg = Debug|x64 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Debug|x64.Build.0 = Debug|x64 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Release|Win32.ActiveCfg = Release|Win32 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Release|Win32.Build.0 = Release|Win32 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Release|x64.ActiveCfg = Release|x64 - {2B93688D-D766-4295-ABFA-003CF905F8D8}.Release|x64.Build.0 = Release|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|Win32.ActiveCfg = Debug|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|Win32.Build.0 = Debug|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|x64.ActiveCfg = Debug|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Debug|x64.Build.0 = Debug|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|Win32.ActiveCfg = Release|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|Win32.Build.0 = Release|Win32 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|x64.ActiveCfg = Release|x64 - {8792D377-8105-4C67-87F1-115E48D0178F}.Release|x64.Build.0 = Release|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|Win32.Build.0 = Debug|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|x64.ActiveCfg = Debug|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Debug|x64.Build.0 = Debug|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|Win32.ActiveCfg = Release|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|Win32.Build.0 = Release|Win32 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|x64.ActiveCfg = Release|x64 - {27CCFE35-61A5-434F-8B83-9A40AE2AE8C5}.Release|x64.Build.0 = Release|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|Win32.Build.0 = Debug|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|x64.ActiveCfg = Debug|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Debug|x64.Build.0 = Debug|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|Win32.ActiveCfg = Release|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|Win32.Build.0 = Release|Win32 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|x64.ActiveCfg = Release|x64 - {4EE91AD5-8332-4FD3-A5E3-BF4C145BB53A}.Release|x64.Build.0 = Release|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|Win32.ActiveCfg = Debug|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|Win32.Build.0 = Debug|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|x64.ActiveCfg = Debug|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Debug|x64.Build.0 = Debug|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|Win32.ActiveCfg = Release|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|Win32.Build.0 = Release|Win32 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|x64.ActiveCfg = Release|x64 - {CE7C4168-68A6-43B2-BAE7-B2CF857C8F03}.Release|x64.Build.0 = Release|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|Win32.ActiveCfg = Debug|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|Win32.Build.0 = Debug|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|x64.ActiveCfg = Debug|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Debug|x64.Build.0 = Debug|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|Win32.ActiveCfg = Release|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|Win32.Build.0 = Release|Win32 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|x64.ActiveCfg = Release|x64 - {40EBF7DB-330C-4F56-AE68-9FC7D75CB5D5}.Release|x64.Build.0 = Release|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|Win32.ActiveCfg = Debug|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|Win32.Build.0 = Debug|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|x64.ActiveCfg = Debug|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Debug|x64.Build.0 = Debug|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|Win32.ActiveCfg = Release|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|Win32.Build.0 = Release|Win32 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|x64.ActiveCfg = Release|x64 - {7F1AFE93-97E7-4905-A2CF-5C845D7FDD4F}.Release|x64.Build.0 = Release|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|Win32.Build.0 = Debug|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|x64.ActiveCfg = Debug|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Debug|x64.Build.0 = Debug|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|Win32.ActiveCfg = Release|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|Win32.Build.0 = Release|Win32 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|x64.ActiveCfg = Release|x64 - {0A049202-6533-413E-89D6-5D6866AAE703}.Release|x64.Build.0 = Release|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|Win32.ActiveCfg = Debug|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|Win32.Build.0 = Debug|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|x64.ActiveCfg = Debug|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Debug|x64.Build.0 = Debug|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|Win32.ActiveCfg = Release|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|Win32.Build.0 = Release|Win32 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|x64.ActiveCfg = Release|x64 - {9AAC897A-70FA-4E5E-BF48-F664C12B05C7}.Release|x64.Build.0 = Release|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|Win32.ActiveCfg = Debug|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|Win32.Build.0 = Debug|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|x64.ActiveCfg = Debug|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Debug|x64.Build.0 = Debug|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|Win32.ActiveCfg = Release|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|Win32.Build.0 = Release|Win32 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|x64.ActiveCfg = Release|x64 - {34C0FDFA-81D6-4652-B841-894BD1A15FB0}.Release|x64.Build.0 = Release|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|Win32.ActiveCfg = Debug|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|Win32.Build.0 = Debug|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|x64.ActiveCfg = Debug|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Debug|x64.Build.0 = Debug|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|Win32.ActiveCfg = Release|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|Win32.Build.0 = Release|Win32 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|x64.ActiveCfg = Release|x64 - {794B7E1E-E6AD-456D-9F33-FCE317325EC4}.Release|x64.Build.0 = Release|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|Win32.ActiveCfg = Debug|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|Win32.Build.0 = Debug|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|x64.ActiveCfg = Debug|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Debug|x64.Build.0 = Debug|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|Win32.ActiveCfg = Release|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|Win32.Build.0 = Release|Win32 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|x64.ActiveCfg = Release|x64 - {DB97D6C6-2E60-47DC-AED7-4691A1D6DC05}.Release|x64.Build.0 = Release|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|Win32.ActiveCfg = Debug|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|Win32.Build.0 = Debug|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|x64.ActiveCfg = Debug|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Debug|x64.Build.0 = Debug|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|Win32.ActiveCfg = Release|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|Win32.Build.0 = Release|Win32 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|x64.ActiveCfg = Release|x64 - {37605955-FA00-41C9-9D39-D078CF270376}.Release|x64.Build.0 = Release|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|Win32.Build.0 = Debug|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|x64.ActiveCfg = Debug|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Debug|x64.Build.0 = Debug|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|Win32.ActiveCfg = Release|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|Win32.Build.0 = Release|Win32 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|x64.ActiveCfg = Release|x64 - {9A9D7ABC-ED3A-462E-9ED1-CB55F14174F3}.Release|x64.Build.0 = Release|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|Win32.ActiveCfg = Debug|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|Win32.Build.0 = Debug|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|x64.ActiveCfg = Debug|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Debug|x64.Build.0 = Debug|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|Win32.ActiveCfg = Release|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|Win32.Build.0 = Release|Win32 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|x64.ActiveCfg = Release|x64 - {71A1C081-FF1C-452B-B938-95551D565302}.Release|x64.Build.0 = Release|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|Win32.ActiveCfg = Debug|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|Win32.Build.0 = Debug|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|x64.ActiveCfg = Debug|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Debug|x64.Build.0 = Debug|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|Win32.ActiveCfg = Release|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|Win32.Build.0 = Release|Win32 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|x64.ActiveCfg = Release|x64 - {9ADAE03A-2060-471E-A7B5-9D8F6995223A}.Release|x64.Build.0 = Release|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|Win32.ActiveCfg = Debug|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|Win32.Build.0 = Debug|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|x64.ActiveCfg = Debug|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Debug|x64.Build.0 = Debug|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|Win32.ActiveCfg = Release|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|Win32.Build.0 = Release|Win32 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|x64.ActiveCfg = Release|x64 - {DFE42486-47A2-487C-81B9-DDCDA9F07BF0}.Release|x64.Build.0 = Release|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|Win32.ActiveCfg = Debug|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|Win32.Build.0 = Debug|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|x64.ActiveCfg = Debug|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Debug|x64.Build.0 = Debug|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|Win32.ActiveCfg = Release|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|Win32.Build.0 = Release|Win32 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|x64.ActiveCfg = Release|x64 - {2248C52C-75DC-465B-A598-6E89CC93E00D}.Release|x64.Build.0 = Release|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|Win32.ActiveCfg = Debug|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|Win32.Build.0 = Debug|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|x64.ActiveCfg = Debug|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Debug|x64.Build.0 = Debug|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|Win32.ActiveCfg = Release|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|Win32.Build.0 = Release|Win32 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|x64.ActiveCfg = Release|x64 - {C2E6106F-1450-4F62-8D8E-17A93E986B26}.Release|x64.Build.0 = Release|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|Win32.ActiveCfg = Debug|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|Win32.Build.0 = Debug|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|x64.ActiveCfg = Debug|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Debug|x64.Build.0 = Debug|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|Win32.ActiveCfg = Release|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|Win32.Build.0 = Release|Win32 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|x64.ActiveCfg = Release|x64 - {E81413CC-046C-42B0-B862-0BB81AED2854}.Release|x64.Build.0 = Release|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|Win32.ActiveCfg = Debug|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|Win32.Build.0 = Debug|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|x64.ActiveCfg = Debug|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Debug|x64.Build.0 = Debug|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|Win32.ActiveCfg = Release|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|Win32.Build.0 = Release|Win32 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|x64.ActiveCfg = Release|x64 - {14DB1F8E-0BF6-4E9D-8372-5EA9ED48347F}.Release|x64.Build.0 = Release|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|Win32.ActiveCfg = Debug|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|Win32.Build.0 = Debug|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|x64.ActiveCfg = Debug|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Debug|x64.Build.0 = Debug|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|Win32.ActiveCfg = Release|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|Win32.Build.0 = Release|Win32 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|x64.ActiveCfg = Release|x64 - {17DC13C3-78E0-4EF5-B7B1-87EB1A379D2A}.Release|x64.Build.0 = Release|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|Win32.ActiveCfg = Debug|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|Win32.Build.0 = Debug|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|x64.ActiveCfg = Debug|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Debug|x64.Build.0 = Debug|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|Win32.ActiveCfg = Release|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|Win32.Build.0 = Release|Win32 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|x64.ActiveCfg = Release|x64 - {7CF4F18C-3C74-4EBB-AD76-F41575D7A5A0}.Release|x64.Build.0 = Release|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|Win32.Build.0 = Debug|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|x64.ActiveCfg = Debug|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Debug|x64.Build.0 = Debug|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|Win32.ActiveCfg = Release|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|Win32.Build.0 = Release|Win32 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|x64.ActiveCfg = Release|x64 - {E6A9BFE8-84DE-46C0-A372-72087598018E}.Release|x64.Build.0 = Release|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|Win32.ActiveCfg = Debug|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|Win32.Build.0 = Debug|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|x64.ActiveCfg = Debug|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Debug|x64.Build.0 = Debug|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|Win32.ActiveCfg = Release|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|Win32.Build.0 = Release|Win32 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|x64.ActiveCfg = Release|x64 - {3BBA31F8-2679-4655-975D-52FDA5ABD5C4}.Release|x64.Build.0 = Release|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|Win32.ActiveCfg = Debug|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|Win32.Build.0 = Debug|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|x64.ActiveCfg = Debug|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Debug|x64.Build.0 = Debug|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|Win32.ActiveCfg = Release|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|Win32.Build.0 = Release|Win32 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|x64.ActiveCfg = Release|x64 - {A26C50E9-D3FB-4490-9CD7-606EB2E77D21}.Release|x64.Build.0 = Release|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|Win32.ActiveCfg = Debug|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|Win32.Build.0 = Debug|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|x64.ActiveCfg = Debug|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Debug|x64.Build.0 = Debug|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|Win32.ActiveCfg = Release|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|Win32.Build.0 = Release|Win32 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|x64.ActiveCfg = Release|x64 - {5EA5BDAD-3AE9-4BCA-AC1A-93B3B8499C30}.Release|x64.Build.0 = Release|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|Win32.ActiveCfg = Debug|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|Win32.Build.0 = Debug|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|x64.ActiveCfg = Debug|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Debug|x64.Build.0 = Debug|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|Win32.ActiveCfg = Release|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|Win32.Build.0 = Release|Win32 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|x64.ActiveCfg = Release|x64 - {E75602FF-F4E6-4F45-AD0D-EA49C0C66DEF}.Release|x64.Build.0 = Release|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|Win32.Build.0 = Debug|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|x64.ActiveCfg = Debug|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Debug|x64.Build.0 = Debug|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|Win32.ActiveCfg = Release|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|Win32.Build.0 = Release|Win32 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|x64.ActiveCfg = Release|x64 - {D1518671-CB9D-471F-8BCE-A03DE67F26B1}.Release|x64.Build.0 = Release|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|Win32.ActiveCfg = Debug|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|Win32.Build.0 = Debug|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|x64.ActiveCfg = Debug|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Debug|x64.Build.0 = Debug|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|Win32.ActiveCfg = Release|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|Win32.Build.0 = Release|Win32 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|x64.ActiveCfg = Release|x64 - {EFA04391-B35B-44C0-AB27-1383D4C9E358}.Release|x64.Build.0 = Release|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|Win32.ActiveCfg = Debug|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|Win32.Build.0 = Debug|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|x64.ActiveCfg = Debug|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Debug|x64.Build.0 = Debug|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|Win32.ActiveCfg = Release|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|Win32.Build.0 = Release|Win32 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|x64.ActiveCfg = Release|x64 - {DBA493BD-3AF1-4616-8A80-F6FD41B70392}.Release|x64.Build.0 = Release|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|Win32.Build.0 = Debug|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|x64.ActiveCfg = Debug|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Debug|x64.Build.0 = Debug|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|Win32.ActiveCfg = Release|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|Win32.Build.0 = Release|Win32 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|x64.ActiveCfg = Release|x64 - {D1FD44F8-8263-4B29-985D-21CE26F45A76}.Release|x64.Build.0 = Release|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|Win32.ActiveCfg = Debug|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|Win32.Build.0 = Debug|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|x64.ActiveCfg = Debug|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Debug|x64.Build.0 = Debug|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|Win32.ActiveCfg = Release|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|Win32.Build.0 = Release|Win32 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|x64.ActiveCfg = Release|x64 - {473ABB63-E5C6-4D8E-9380-5DC76E1EAB4A}.Release|x64.Build.0 = Release|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|Win32.ActiveCfg = Debug|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|Win32.Build.0 = Debug|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|x64.ActiveCfg = Debug|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Debug|x64.Build.0 = Debug|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|Win32.ActiveCfg = Release|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|Win32.Build.0 = Release|Win32 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|x64.ActiveCfg = Release|x64 - {832DD776-BC7F-40B5-90D0-E6448014CA5B}.Release|x64.Build.0 = Release|x64 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Debug|Win32.ActiveCfg = Debug|Win32 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Debug|x64.ActiveCfg = Debug|x64 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Release|Win32.ActiveCfg = Release|Win32 - {DDDFC0AC-2ECB-4930-9C83-788AC7C1343E}.Release|x64.ActiveCfg = Release|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|Win32.ActiveCfg = Debug|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|Win32.Build.0 = Debug|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|x64.ActiveCfg = Debug|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Debug|x64.Build.0 = Debug|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|Win32.ActiveCfg = Release|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|Win32.Build.0 = Release|Win32 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|x64.ActiveCfg = Release|x64 - {9321B2C5-74B3-4743-9D87-B0FDCB47373B}.Release|x64.Build.0 = Release|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|Win32.ActiveCfg = Debug|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|Win32.Build.0 = Debug|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|x64.ActiveCfg = Debug|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Debug|x64.Build.0 = Debug|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|Win32.ActiveCfg = Release|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|Win32.Build.0 = Release|Win32 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|x64.ActiveCfg = Release|x64 - {685666ED-4640-47EE-AEA5-35B9602CA541}.Release|x64.Build.0 = Release|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|Win32.ActiveCfg = Debug|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|Win32.Build.0 = Debug|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|x64.ActiveCfg = Debug|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Debug|x64.Build.0 = Debug|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|Win32.ActiveCfg = Release|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|Win32.Build.0 = Release|Win32 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|x64.ActiveCfg = Release|x64 - {744EA5E0-18C8-4757-82DE-2D0CF11DBDDE}.Release|x64.Build.0 = Release|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|Win32.Build.0 = Debug|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|x64.ActiveCfg = Debug|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Debug|x64.Build.0 = Debug|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|Win32.ActiveCfg = Release|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|Win32.Build.0 = Release|Win32 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|x64.ActiveCfg = Release|x64 - {0C5E3F36-3338-4B2C-A956-4D577B6119E7}.Release|x64.Build.0 = Release|x64 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Debug|Win32.ActiveCfg = Debug|Win32 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Debug|Win32.Build.0 = Debug|Win32 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Debug|x64.ActiveCfg = Debug|x64 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Debug|x64.Build.0 = Debug|x64 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Release|Win32.ActiveCfg = Release|Win32 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Release|Win32.Build.0 = Release|Win32 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Release|x64.ActiveCfg = Release|x64 - {F445FB75-3390-47BE-8179-6A9222A9ACD8}.Release|x64.Build.0 = Release|x64 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Debug|Win32.ActiveCfg = Debug|Win32 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Debug|Win32.Build.0 = Debug|Win32 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Debug|x64.ActiveCfg = Debug|x64 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Debug|x64.Build.0 = Debug|x64 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Release|Win32.ActiveCfg = Release|Win32 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Release|Win32.Build.0 = Release|Win32 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Release|x64.ActiveCfg = Release|x64 - {8D4599CD-B4B1-4ABB-9AB0-45002AAFEA7E}.Release|x64.Build.0 = Release|x64 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Debug|Win32.ActiveCfg = Debug|Win32 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Debug|Win32.Build.0 = Debug|Win32 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Debug|x64.ActiveCfg = Debug|x64 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Debug|x64.Build.0 = Debug|x64 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Release|Win32.ActiveCfg = Release|Win32 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Release|Win32.Build.0 = Release|Win32 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Release|x64.ActiveCfg = Release|x64 - {A4C4D9C2-DFB5-4A09-8C6D-968113C58247}.Release|x64.Build.0 = Release|x64 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Debug|Win32.ActiveCfg = Debug|Win32 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Debug|Win32.Build.0 = Debug|Win32 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Debug|x64.ActiveCfg = Debug|x64 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Debug|x64.Build.0 = Debug|x64 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Release|Win32.ActiveCfg = Release|Win32 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Release|Win32.Build.0 = Release|Win32 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Release|x64.ActiveCfg = Release|x64 - {C865016E-1FE1-4FD7-959D-62E795206E76}.Release|x64.Build.0 = Release|x64 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Debug|Win32.ActiveCfg = Debug|Win32 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Debug|Win32.Build.0 = Debug|Win32 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Debug|x64.ActiveCfg = Debug|x64 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Debug|x64.Build.0 = Debug|x64 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Release|Win32.ActiveCfg = Release|Win32 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Release|Win32.Build.0 = Release|Win32 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Release|x64.ActiveCfg = Release|x64 - {26F2FDA4-17DC-4E1A-B9AC-124C460A4391}.Release|x64.Build.0 = Release|x64 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Debug|Win32.ActiveCfg = Debug|Win32 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Debug|Win32.Build.0 = Debug|Win32 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Debug|x64.ActiveCfg = Debug|x64 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Debug|x64.Build.0 = Debug|x64 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Release|Win32.ActiveCfg = Release|Win32 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Release|Win32.Build.0 = Release|Win32 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Release|x64.ActiveCfg = Release|x64 - {1063E387-0167-411C-85B9-96B043C4BDB3}.Release|x64.Build.0 = Release|x64 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Debug|Win32.ActiveCfg = Debug|Win32 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Debug|Win32.Build.0 = Debug|Win32 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Debug|x64.ActiveCfg = Debug|x64 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Debug|x64.Build.0 = Debug|x64 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Release|Win32.ActiveCfg = Release|Win32 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Release|Win32.Build.0 = Release|Win32 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Release|x64.ActiveCfg = Release|x64 - {F9428466-5FA2-47C9-BB02-288EDE7016A4}.Release|x64.Build.0 = Release|x64 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Debug|Win32.ActiveCfg = Debug|Win32 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Debug|Win32.Build.0 = Debug|Win32 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Debug|x64.ActiveCfg = Debug|x64 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Debug|x64.Build.0 = Debug|x64 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Release|Win32.ActiveCfg = Release|Win32 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Release|Win32.Build.0 = Release|Win32 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Release|x64.ActiveCfg = Release|x64 - {487B4E71-1CB9-49A1-920C-1F505D8B76F8}.Release|x64.Build.0 = Release|x64 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Debug|Win32.ActiveCfg = Debug|Win32 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Debug|Win32.Build.0 = Debug|Win32 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Debug|x64.ActiveCfg = Debug|x64 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Debug|x64.Build.0 = Debug|x64 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Release|Win32.ActiveCfg = Release|Win32 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Release|Win32.Build.0 = Release|Win32 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Release|x64.ActiveCfg = Release|x64 - {1C2FF3B6-639A-4047-90DE-327B82BF3ACB}.Release|x64.Build.0 = Release|x64 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Debug|Win32.ActiveCfg = Debug|Win32 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Debug|Win32.Build.0 = Debug|Win32 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Debug|x64.ActiveCfg = Debug|x64 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Debug|x64.Build.0 = Debug|x64 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Release|Win32.ActiveCfg = Release|Win32 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Release|Win32.Build.0 = Release|Win32 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Release|x64.ActiveCfg = Release|x64 - {8659AEE0-2C9A-4666-B70F-C2B8280FD909}.Release|x64.Build.0 = Release|x64 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Debug|Win32.ActiveCfg = Debug|Win32 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Debug|Win32.Build.0 = Debug|Win32 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Debug|x64.ActiveCfg = Debug|x64 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Debug|x64.Build.0 = Debug|x64 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Release|Win32.ActiveCfg = Release|Win32 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Release|Win32.Build.0 = Release|Win32 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Release|x64.ActiveCfg = Release|x64 - {3F8103CC-1DB2-4C23-9ABC-430434244D40}.Release|x64.Build.0 = Release|x64 - {5E617A56-25B2-41E8-8D69-109600819716}.Debug|Win32.ActiveCfg = Debug|Win32 - {5E617A56-25B2-41E8-8D69-109600819716}.Debug|Win32.Build.0 = Debug|Win32 - {5E617A56-25B2-41E8-8D69-109600819716}.Debug|x64.ActiveCfg = Debug|x64 - {5E617A56-25B2-41E8-8D69-109600819716}.Debug|x64.Build.0 = Debug|x64 - {5E617A56-25B2-41E8-8D69-109600819716}.Release|Win32.ActiveCfg = Release|Win32 - {5E617A56-25B2-41E8-8D69-109600819716}.Release|Win32.Build.0 = Release|Win32 - {5E617A56-25B2-41E8-8D69-109600819716}.Release|x64.ActiveCfg = Release|x64 - {5E617A56-25B2-41E8-8D69-109600819716}.Release|x64.Build.0 = Release|x64 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Debug|Win32.ActiveCfg = Debug|Win32 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Debug|Win32.Build.0 = Debug|Win32 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Debug|x64.ActiveCfg = Debug|x64 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Debug|x64.Build.0 = Debug|x64 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Release|Win32.ActiveCfg = Release|Win32 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Release|Win32.Build.0 = Release|Win32 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Release|x64.ActiveCfg = Release|x64 - {C8202A85-1F3A-4B34-869C-B1E8CA829299}.Release|x64.Build.0 = Release|x64 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Debug|Win32.ActiveCfg = Debug|Win32 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Debug|Win32.Build.0 = Debug|Win32 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Debug|x64.ActiveCfg = Debug|x64 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Debug|x64.Build.0 = Debug|x64 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Release|Win32.ActiveCfg = Release|Win32 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Release|Win32.Build.0 = Release|Win32 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Release|x64.ActiveCfg = Release|x64 - {3F645EFF-3A91-4CF3-9B60-76E0C33686A7}.Release|x64.Build.0 = Release|x64 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Debug|Win32.Build.0 = Debug|Win32 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Debug|x64.ActiveCfg = Debug|x64 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Debug|x64.Build.0 = Debug|x64 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Release|Win32.ActiveCfg = Release|Win32 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Release|Win32.Build.0 = Release|Win32 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Release|x64.ActiveCfg = Release|x64 - {84571A5E-D9A6-4672-9F86-3F8E32C93FDF}.Release|x64.Build.0 = Release|x64 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Debug|Win32.ActiveCfg = Debug|Win32 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Debug|Win32.Build.0 = Debug|Win32 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Debug|x64.ActiveCfg = Debug|x64 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Debug|x64.Build.0 = Debug|x64 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Release|Win32.ActiveCfg = Release|Win32 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Release|Win32.Build.0 = Release|Win32 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Release|x64.ActiveCfg = Release|x64 - {71C6994C-3102-4A2A-B0AE-88A590CB36CE}.Release|x64.Build.0 = Release|x64 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Debug|Win32.Build.0 = Debug|Win32 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Debug|x64.ActiveCfg = Debug|x64 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Debug|x64.Build.0 = Debug|x64 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Release|Win32.ActiveCfg = Release|Win32 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Release|Win32.Build.0 = Release|Win32 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Release|x64.ActiveCfg = Release|x64 - {F04E2D13-2096-4C67-AA4C-63C9015474B1}.Release|x64.Build.0 = Release|x64 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Debug|Win32.ActiveCfg = Debug|Win32 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Debug|Win32.Build.0 = Debug|Win32 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Debug|x64.ActiveCfg = Debug|x64 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Debug|x64.Build.0 = Debug|x64 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Release|Win32.ActiveCfg = Release|Win32 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Release|Win32.Build.0 = Release|Win32 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Release|x64.ActiveCfg = Release|x64 - {6923D270-FB9F-4F40-8268-9C542ADABD88}.Release|x64.Build.0 = Release|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|Win32.ActiveCfg = Debug|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|Win32.Build.0 = Debug|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|x64.ActiveCfg = Debug|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Debug|x64.Build.0 = Debug|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|Win32.ActiveCfg = Release|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|Win32.Build.0 = Release|Win32 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|x64.ActiveCfg = Release|x64 - {B123D196-2F43-4FEB-80B5-990F06DED319}.Release|x64.Build.0 = Release|x64 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Debug|Win32.ActiveCfg = Debug|Win32 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Debug|Win32.Build.0 = Debug|Win32 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Debug|x64.ActiveCfg = Debug|x64 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Debug|x64.Build.0 = Debug|x64 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Release|Win32.ActiveCfg = Release|Win32 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Release|Win32.Build.0 = Release|Win32 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Release|x64.ActiveCfg = Release|x64 - {4505FF13-2C16-4348-8989-BB10AF85FB95}.Release|x64.Build.0 = Release|x64 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Debug|Win32.ActiveCfg = Debug|Win32 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Debug|Win32.Build.0 = Debug|Win32 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Debug|x64.ActiveCfg = Debug|x64 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Debug|x64.Build.0 = Debug|x64 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Release|Win32.ActiveCfg = Release|Win32 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Release|Win32.Build.0 = Release|Win32 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Release|x64.ActiveCfg = Release|x64 - {4D3CE514-F22D-4FBC-82FF-7A3BE15DAE10}.Release|x64.Build.0 = Release|x64 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Debug|Win32.ActiveCfg = Debug|Win32 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Debug|Win32.Build.0 = Debug|Win32 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Debug|x64.ActiveCfg = Debug|x64 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Debug|x64.Build.0 = Debug|x64 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Release|Win32.ActiveCfg = Release|Win32 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Release|Win32.Build.0 = Release|Win32 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Release|x64.ActiveCfg = Release|x64 - {B6430FB3-3BEF-48C3-84DD-98106C6F6113}.Release|x64.Build.0 = Release|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|Win32.Build.0 = Debug|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|x64.ActiveCfg = Debug|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Debug|x64.Build.0 = Debug|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|Win32.ActiveCfg = Release|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|Win32.Build.0 = Release|Win32 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|x64.ActiveCfg = Release|x64 - {E3B24219-DEB9-4ECB-809C-AD98EE51974E}.Release|x64.Build.0 = Release|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|Win32.Build.0 = Debug|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|x64.ActiveCfg = Debug|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Debug|x64.Build.0 = Debug|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|Win32.ActiveCfg = Release|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|Win32.Build.0 = Release|Win32 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|x64.ActiveCfg = Release|x64 - {D6FB6925-671E-47C1-97AD-DFC6F2E3F72D}.Release|x64.Build.0 = Release|x64 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Debug|Win32.ActiveCfg = Debug|Win32 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Debug|Win32.Build.0 = Debug|Win32 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Debug|x64.ActiveCfg = Debug|x64 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Debug|x64.Build.0 = Debug|x64 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Release|Win32.ActiveCfg = Release|Win32 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Release|Win32.Build.0 = Release|Win32 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Release|x64.ActiveCfg = Release|x64 - {04B72E84-6A91-4AF1-BFCD-110CD4F67E2C}.Release|x64.Build.0 = Release|x64 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Debug|Win32.ActiveCfg = Debug|Win32 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Debug|Win32.Build.0 = Debug|Win32 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Debug|x64.ActiveCfg = Debug|x64 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Debug|x64.Build.0 = Debug|x64 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Release|Win32.ActiveCfg = Release|Win32 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Release|Win32.Build.0 = Release|Win32 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Release|x64.ActiveCfg = Release|x64 - {531839A0-AFE6-482A-BF60-29890B89D4BF}.Release|x64.Build.0 = Release|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|Win32.ActiveCfg = Debug|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|Win32.Build.0 = Debug|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|x64.ActiveCfg = Debug|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Debug|x64.Build.0 = Debug|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|Win32.ActiveCfg = Release|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|Win32.Build.0 = Release|Win32 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|x64.ActiveCfg = Release|x64 - {C35122F6-49FF-4AAA-A2AA-482628E5E2A7}.Release|x64.Build.0 = Release|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|Win32.ActiveCfg = Debug|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|Win32.Build.0 = Debug|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|x64.ActiveCfg = Debug|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Debug|x64.Build.0 = Debug|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|Win32.ActiveCfg = Release|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|Win32.Build.0 = Release|Win32 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|x64.ActiveCfg = Release|x64 - {0C618DA2-4097-46B9-83D0-144AEB774568}.Release|x64.Build.0 = Release|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|Win32.Build.0 = Debug|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|x64.ActiveCfg = Debug|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Debug|x64.Build.0 = Debug|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|Win32.ActiveCfg = Release|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|Win32.Build.0 = Release|Win32 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|x64.ActiveCfg = Release|x64 - {D6FBD436-D8B4-4FEB-A8F8-EB097CAF55CF}.Release|x64.Build.0 = Release|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|Win32.ActiveCfg = Debug|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|Win32.Build.0 = Debug|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|x64.ActiveCfg = Debug|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Debug|x64.Build.0 = Debug|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|Win32.ActiveCfg = Release|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|Win32.Build.0 = Release|Win32 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|x64.ActiveCfg = Release|x64 - {3C224452-C71A-4B3E-937A-891144D1941D}.Release|x64.Build.0 = Release|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|Win32.ActiveCfg = Debug|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|Win32.Build.0 = Debug|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|x64.ActiveCfg = Debug|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Debug|x64.Build.0 = Debug|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|Win32.ActiveCfg = Release|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|Win32.Build.0 = Release|Win32 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|x64.ActiveCfg = Release|x64 - {D4395435-B3B0-4937-9AC5-89BD73C47303}.Release|x64.Build.0 = Release|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|Win32.ActiveCfg = Debug|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|Win32.Build.0 = Debug|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|x64.ActiveCfg = Debug|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Debug|x64.Build.0 = Debug|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|Win32.ActiveCfg = Release|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|Win32.Build.0 = Release|Win32 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|x64.ActiveCfg = Release|x64 - {737F7A65-62E7-4707-B3DB-B9856131687D}.Release|x64.Build.0 = Release|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|Win32.ActiveCfg = Debug|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|Win32.Build.0 = Debug|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|x64.ActiveCfg = Debug|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Debug|x64.Build.0 = Debug|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|Win32.ActiveCfg = Release|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|Win32.Build.0 = Release|Win32 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|x64.ActiveCfg = Release|x64 - {4EF0B5BE-E79D-4A79-BDE8-F383BC6C371D}.Release|x64.Build.0 = Release|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|Win32.Build.0 = Debug|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|x64.ActiveCfg = Debug|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Debug|x64.Build.0 = Debug|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|Win32.ActiveCfg = Release|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|Win32.Build.0 = Release|Win32 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|x64.ActiveCfg = Release|x64 - {C4811E26-A7DA-424D-8A44-F29DFD588533}.Release|x64.Build.0 = Release|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|Win32.ActiveCfg = Debug|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|Win32.Build.0 = Debug|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|x64.ActiveCfg = Debug|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Debug|x64.Build.0 = Debug|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|Win32.ActiveCfg = Release|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|Win32.Build.0 = Release|Win32 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|x64.ActiveCfg = Release|x64 - {B8923279-9E37-43D2-8ECF-5225BFB3356A}.Release|x64.Build.0 = Release|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|Win32.Build.0 = Debug|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|x64.ActiveCfg = Debug|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Debug|x64.Build.0 = Debug|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|Win32.ActiveCfg = Release|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|Win32.Build.0 = Release|Win32 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|x64.ActiveCfg = Release|x64 - {BF8C769D-BC11-4AB4-B928-5FD1ADCB1234}.Release|x64.Build.0 = Release|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|Win32.Build.0 = Debug|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|x64.ActiveCfg = Debug|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Debug|x64.Build.0 = Debug|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|Win32.ActiveCfg = Release|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|Win32.Build.0 = Release|Win32 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|x64.ActiveCfg = Release|x64 - {AE3E8414-FE68-4BF5-AFAA-77EBFCB706C5}.Release|x64.Build.0 = Release|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|Win32.ActiveCfg = Debug|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|Win32.Build.0 = Debug|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|x64.ActiveCfg = Debug|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Debug|x64.Build.0 = Debug|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Release|Win32.ActiveCfg = Release|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Release|Win32.Build.0 = Release|Win32 - {79FF58EE-7427-4732-AC25-370341859292}.Release|x64.ActiveCfg = Release|x64 - {79FF58EE-7427-4732-AC25-370341859292}.Release|x64.Build.0 = Release|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|Win32.ActiveCfg = Debug|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|Win32.Build.0 = Debug|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|x64.ActiveCfg = Debug|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Debug|x64.Build.0 = Debug|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|Win32.ActiveCfg = Release|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|Win32.Build.0 = Release|Win32 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|x64.ActiveCfg = Release|x64 - {DFB6DCC1-2E00-4566-B935-F32172FDA483}.Release|x64.Build.0 = Release|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|Win32.ActiveCfg = Debug|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|Win32.Build.0 = Debug|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|x64.ActiveCfg = Debug|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Debug|x64.Build.0 = Debug|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|Win32.ActiveCfg = Release|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|Win32.Build.0 = Release|Win32 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|x64.ActiveCfg = Release|x64 - {7B3EB7A5-DA01-4488-A06B-63E2941EE078}.Release|x64.Build.0 = Release|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|Win32.ActiveCfg = Debug|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|Win32.Build.0 = Debug|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|x64.ActiveCfg = Debug|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Debug|x64.Build.0 = Debug|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|Win32.ActiveCfg = Release|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|Win32.Build.0 = Release|Win32 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|x64.ActiveCfg = Release|x64 - {50D207BC-2B27-4BD9-B5D4-FCF8358BE757}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/windows/proj/all_fortran/all_fortran.vcproj b/windows/proj/all_fortran/all_fortran.vcproj deleted file mode 100644 index 3192d23..0000000 --- a/windows/proj/all_fortran/all_fortran.vcproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5/hdf5.vcproj b/windows/proj/hdf5/hdf5.vcproj deleted file mode 100644 index 35f00b9..0000000 --- a/windows/proj/hdf5/hdf5.vcproj +++ /dev/null @@ -1,1589 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_cpp/hdf5_cpp.vcproj b/windows/proj/hdf5_cpp/hdf5_cpp.vcproj deleted file mode 100644 index d244e50..0000000 --- a/windows/proj/hdf5_cpp/hdf5_cpp.vcproj +++ /dev/null @@ -1,561 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj b/windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj deleted file mode 100644 index a96c098..0000000 --- a/windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj +++ /dev/null @@ -1,643 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj b/windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj deleted file mode 100644 index b71dab1..0000000 --- a/windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj b/windows/proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj deleted file mode 100644 index 22cffbc..0000000 --- a/windows/proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj +++ /dev/null @@ -1,487 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_fortran/hdf5_fortran.vfproj b/windows/proj/hdf5_fortran/hdf5_fortran.vfproj deleted file mode 100644 index 9dd53e0..0000000 --- a/windows/proj/hdf5_fortran/hdf5_fortran.vfproj +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj b/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj deleted file mode 100644 index 89939d2..0000000 --- a/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl/hdf5_hl.vcproj b/windows/proj/hdf5_hl/hdf5_hl.vcproj deleted file mode 100644 index dea33ab..0000000 --- a/windows/proj/hdf5_hl/hdf5_hl.vcproj +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj b/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj deleted file mode 100644 index 2d1bbea..0000000 --- a/windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj b/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj deleted file mode 100644 index cc485aa..0000000 --- a/windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj b/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj deleted file mode 100644 index 9ae1c76..0000000 --- a/windows/proj/hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj +++ /dev/null @@ -1,425 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl_fortran/hdf5_hl_f90cstub.vcproj b/windows/proj/hdf5_hl_fortran/hdf5_hl_f90cstub.vcproj deleted file mode 100644 index ca15a9c..0000000 --- a/windows/proj/hdf5_hl_fortran/hdf5_hl_f90cstub.vcproj +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl_fortran/hdf5_hl_fortran.vfproj b/windows/proj/hdf5_hl_fortran/hdf5_hl_fortran.vfproj deleted file mode 100644 index 4d0a627..0000000 --- a/windows/proj/hdf5_hl_fortran/hdf5_hl_fortran.vfproj +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hl_fortrandll/hdf5_hl_fortrandll.vfproj b/windows/proj/hdf5_hl_fortrandll/hdf5_hl_fortrandll.vfproj deleted file mode 100644 index 630eb08..0000000 --- a/windows/proj/hdf5_hl_fortrandll/hdf5_hl_fortrandll.vfproj +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5_hldll/hdf5_hldll.vcproj b/windows/proj/hdf5_hldll/hdf5_hldll.vcproj deleted file mode 100644 index c42533f..0000000 --- a/windows/proj/hdf5_hldll/hdf5_hldll.vcproj +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5dll/hdf5dll.vcproj b/windows/proj/hdf5dll/hdf5dll.vcproj deleted file mode 100644 index 60afacd..0000000 --- a/windows/proj/hdf5dll/hdf5dll.vcproj +++ /dev/null @@ -1,1676 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/property_sheets/remove-posix-warnings.vsprops b/windows/proj/property_sheets/remove-posix-warnings.vsprops deleted file mode 100644 index 68a9f3e..0000000 --- a/windows/proj/property_sheets/remove-posix-warnings.vsprops +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/windows/src/H5pubconf.h b/windows/src/H5pubconf.h deleted file mode 100644 index dea052b..0000000 --- a/windows/src/H5pubconf.h +++ /dev/null @@ -1,755 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* NOTE: This file is created by hand from the Linux src/H5pubconf.h file. - * Most Windows builds are handled by CMake which generates its own - * H5pubconf.h file so this file can easily get out of date. Please notify - * Dana Robinson if the settings here have issues. - */ - -/******************************** - * Windows Specific Definitions * - ********************************/ - -/* Define if the Windows virtual file driver should be compiled */ -#define H5_HAVE_WINDOWS 1 - -/* Define if on the Windows platform */ -#define H5_HAVE_WIN32_API 1 - -/* Define if using a Windows compiler (i.e. Visual Studio) */ -#define H5_HAVE_VISUAL_STUDIO 1 - -/*************************************** - * End of Windows Specific Definitions * - ***************************************/ - -/* Define if building universal (internal helper macro) */ -/* #undef H5_AC_APPLE_UNIVERSAL_BUILD */ - -/* Define if your system generates wrong code for log2 routine. */ -/* #undef H5_BAD_LOG2_CODE_GENERATED */ - -/* Define if the memory buffers being written to disk should be cleared before - writing. */ -#define H5_CLEAR_MEMORY 1 - -/* Define if your system can handle converting denormalized floating-point - values. */ -#define H5_CONVERT_DENORMAL_FLOAT 1 - -/* Define if C++ compiler recognizes offsetof */ -#define H5_CXX_HAVE_OFFSETOF 1 - -/* Define the default virtual file driver to compile */ -#define H5_DEFAULT_VFD H5FD_SEC2 - -/* Define if `dev_t' is a scalar */ -#define H5_DEV_T_IS_SCALAR 1 - -/* Define to dummy `main' function (if any) required to link to the Fortran - libraries. */ -/* #undef H5_FC_DUMMY_MAIN */ - -/* Define if F77 and FC dummy `main' functions are identical. */ -/* #undef H5_FC_DUMMY_MAIN_EQ_F77 */ - -/* Define to a macro mangling the given C identifier (in lower and upper - case), which must not contain underscores, for linking with Fortran. */ -#define H5_FC_FUNC(name,NAME) NAME - -/* As FC_FUNC, but for C identifiers containing underscores. */ -#define H5_FC_FUNC_(name,NAME) NAME - -/* LAHEY compiler for C identifiers containing underscores. */ -/* #define H5_FC_FUNC(name,NAME) name ## _ */ -/* #define H5_FC_FUNC_(name,NAME) name ## _ */ - -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#define H5_FP_TO_INTEGER_OVERFLOW_WORKS 1 - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#define H5_FP_TO_ULLONG_ACCURATE 1 - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -/* #undef H5_FP_TO_ULLONG_RIGHT_MAXIMUM */ - -/* Define if gettimeofday() populates the tz pointer passed in */ -#define H5_GETTIMEOFDAY_GIVES_TZ 1 - -/* Define to 1 if you have the `alarm' function. */ -/* #undef H5_HAVE_ALARM */ - -/* Define if the __attribute__(()) extension is present */ -/* #undef H5_HAVE_ATTRIBUTE */ - -/* Define to 1 if you have the `BSDgettimeofday' function. */ -/* #undef H5_HAVE_BSDGETTIMEOFDAY */ - -/* Define if the compiler understands C99 designated initialization of structs - and unions */ -/* #undef H5_HAVE_C99_DESIGNATED_INITIALIZER */ - -/* Define if the compiler understand the __func__ keyword */ -/* #undef H5_HAVE_C99_FUNC */ - -/* Define to 1 if you have the `clock_gettime' function. */ -/* #undef H5_HAVE_CLOCK_GETTIME */ - -/* Define if the function stack tracing code is to be compiled in */ -/* #undef H5_HAVE_CODESTACK */ - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#define H5_HAVE_DECL_TZNAME 1 - -/* Define to 1 if you have the `difftime' function. */ -#define H5_HAVE_DIFFTIME 1 - -/* Define if the direct I/O virtual file driver should be compiled */ -/* #undef H5_HAVE_DIRECT */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_DLFCN_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_DMALLOC_H */ - -/* Define if library information should be embedded in the executables */ -/* #undef H5_HAVE_EMBEDDED_LIBINFO */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_FEATURES_H */ - -/* Define if support for deflate (zlib) filter is enabled */ -#define H5_HAVE_FILTER_DEFLATE 1 - -/* Define if support for Fletcher32 checksum is enabled */ -#define H5_HAVE_FILTER_FLETCHER32 1 - -/* Define if support for nbit filter is enabled */ -#define H5_HAVE_FILTER_NBIT 1 - -/* Define if support for scaleoffset filter is enabled */ -#define H5_HAVE_FILTER_SCALEOFFSET 1 - -/* Define if support for shuffle filter is enabled */ -#define H5_HAVE_FILTER_SHUFFLE 1 - -/* Define if support for szip filter is enabled */ -#define H5_HAVE_FILTER_SZIP 1 - -/* Define to 1 if you have the `fork' function. */ -/* #undef H5_HAVE_FORK */ - -/* Define to 1 if you have the `frexpf' function. */ -/* #undef H5_HAVE_FREXPF */ - -/* Define to 1 if you have the `frexpl' function. */ -/* #undef H5_HAVE_FREXPL */ - -/* Define to 1 if you have the `fseeko' function. */ -/* #undef H5_HAVE_FSEEKO */ - -/* Define to 1 if you have the `fseek64' function. */ -/* #undef H5_HAVE_FSEEKO64 */ - -/* Define to 1 if you have the `fstat64' function. */ -/* #undef H5_HAVE_FSTAT64 */ - -/* Define to 1 if you have the `ftello' function. */ -/* #undef H5_HAVE_FTELLO */ - -/* Define to 1 if you have the `ftello64' function. */ -/* #undef H5_HAVE_FTELLO64 */ - -/* Define to 1 if you have the `ftruncate64' function. */ -/* #undef H5_HAVE_FTRUNCATE64 */ - -/* Define if the compiler understand the __FUNCTION__ keyword */ -#define H5_HAVE_FUNCTION 1 - -/* Define to 1 if you have the `GetConsoleScreenBufferInfo' function. */ -#define H5_HAVE_GETCONSOLESCREENBUFFERINFO 1 - -/* Define to 1 if you have the `gethostname' function. */ -#define H5_HAVE_GETHOSTNAME 1 - -/* Define to 1 if you have the `getpwuid' function. */ -/* #undef H5_HAVE_GETPWUID */ - -/* Define to 1 if you have the `getrusage' function. */ -/* #undef H5_HAVE_GETRUSAGE */ - -/* Define to 1 if you have the `gettextinfo' function. */ -/* #undef H5_HAVE_GETTEXTINFO */ - -/* Define to 1 if you have the `gettimeofday' function. */ -#define H5_HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the `get_fpc_csr' function. */ -/* #undef H5_HAVE_GET_FPC_CSR */ - -/* Define if we have GPFS support */ -/* #undef H5_HAVE_GPFS */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_GPFS_H */ - -/* Define if library will contain instrumentation to detect correct - optimization operation */ -/* #undef H5_HAVE_INSTRUMENTED_LIBRARY */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_INTTYPES_H */ - -/* Define to 1 if you have the `ioctl' function. */ -/* #undef H5_HAVE_IOCTL */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_IO_H - -/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ -/* #undef H5_HAVE_LIBDMALLOC */ - -/* Define to 1 if you have the `lmpe' library (-llmpe). */ -/* #undef H5_HAVE_LIBLMPE */ - -/* Define to 1 if you have the `m' library (-lm). */ -/* #undef H5_HAVE_LIBM */ - -/* Define to 1 if you have the `mpe' library (-lmpe). */ -/* #undef H5_HAVE_LIBMPE */ - -/* Define to 1 if you have the `mpi' library (-lmpi). */ -/* #undef H5_HAVE_LIBMPI */ - -/* Define to 1 if you have the `mpich' library (-lmpich). */ -/* #undef H5_HAVE_LIBMPICH */ - -/* Define to 1 if you have the `mpio' library (-lmpio). */ -/* #undef H5_HAVE_LIBMPIO */ - -/* Define to 1 if you have the `nsl' library (-lnsl). */ -/* #undef H5_HAVE_LIBNSL */ - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -/* #undef H5_HAVE_LIBPTHREAD */ - -/* Define to 1 if you have the `socket' library (-lsocket). */ -/* #undef H5_HAVE_LIBSOCKET */ - -/* Define to 1 if you have the `sz' library (-lsz). */ -#define H5_HAVE_LIBSZ 1 - -/* Define to 1 if you have the `z' library (-lz). */ -#define H5_HAVE_LIBZ 1 - -/* Define to 1 if you have the `longjmp' function. */ -#define H5_HAVE_LONGJMP 1 - -/* Define to 1 if you have the `lseek64' function. */ -/* #undef H5_HAVE_LSEEK64 */ - -/* Define to 1 if you have the `lstat' function. */ -/* #undef H5_HAVE_LSTAT */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_MACH_MACH_TIME_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_MEMORY_H */ - -/* Define if we have MPE support */ -/* #undef H5_HAVE_MPE */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_MPE_H */ - -/* Define if MPI_File_get_size works correctly */ -#define H5_HAVE_MPI_GET_SIZE 1 - -/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */ -/* #undef H5_HAVE_MPI_MULTI_LANG_Comm */ - -/* Define if `MPI_Info_c2f' and `MPI_Info_f2c' exists */ -/* #undef H5_HAVE_MPI_MULTI_LANG_Info */ - -/* Define if we have parallel support */ -/* #undef H5_HAVE_PARALLEL */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_PTHREAD_H */ - -/* Define to 1 if you have the `random' function. */ -/* #undef H5_HAVE_RANDOM */ - -/* Define to 1 if you have the `rand_r' function. */ -/* #undef H5_HAVE_RAND_R */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SETJMP_H 1 - -/* Define to 1 if you have the `setsysinfo' function. */ -/* #undef H5_HAVE_SETSYSINFO */ - -/* Define to 1 if you have the `siglongjmp' function. */ -/* #undef H5_HAVE_SIGLONGJMP */ - -/* Define to 1 if you have the `signal' function. */ -#define H5_HAVE_SIGNAL 1 - -/* Define to 1 if you have the `sigprocmask' function. */ -/* #undef H5_HAVE_SIGPROCMASK */ - -/* Define to 1 if you have the `sigsetjmp' function. */ -/* #undef H5_HAVE_SIGSETJMP */ - -/* Define to 1 if you have the `snprintf' function. */ -/* #undef H5_HAVE_SNPRINTF */ - -/* Define to 1 if you have the `srandom' function. */ -/* #undef H5_HAVE_SRANDOM */ - -/* Define to 1 if you have the `stat64' function. */ -/* #undef H5_HAVE_STAT64 */ - -/* Define if `struct stat' has the `st_blocks' field */ -/* #undef H5_HAVE_STAT_ST_BLOCKS */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_STDDEF_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_STDINT_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strdup' function. */ -#define H5_HAVE_STRDUP 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_STRINGS_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_STRING_H 1 - -/* Define if `struct text_info' is defined */ -/* #undef H5_HAVE_STRUCT_TEXT_INFO */ - -/* Define if `struct timezone' is defined */ -#define H5_HAVE_STRUCT_TIMEZONE 1 - -/* Define to 1 if `tm_zone' is member of `struct tm'. */ -/* #undef H5_HAVE_STRUCT_TM_TM_ZONE */ - -/* Define if `struct videoconfig' is defined */ -/* #undef H5_HAVE_STRUCT_VIDEOCONFIG */ - -/* Define to 1 if you have the `symlink' function. */ -/* #undef H5_HAVE_SYMLINK */ - -/* Define to 1 if you have the `system' function. */ -#define H5_HAVE_SYSTEM 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_FPU_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_IOCTL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_PROC_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_RESOURCE_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_SOCKET_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_SYSINFO_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SYS_TIMEB_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_TIME_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SZLIB_H 1 - -/* Define if we have thread safe support */ -/* #undef H5_HAVE_THREADSAFE */ - -/* Define if `timezone' is a global variable */ -#define H5_HAVE_TIMEZONE 1 - -/* Define if the ioctl TIOCGETD is defined */ -/* #undef H5_HAVE_TIOCGETD */ - -/* Define if the ioctl TIOGWINSZ is defined */ -/* #undef H5_HAVE_TIOCGWINSZ */ - -/* Define to 1 if you have the `tmpfile' function. */ -#define H5_HAVE_TMPFILE 1 - -/* Define if `tm_gmtoff' is a member of `struct tm' */ -/* #undef H5_HAVE_TM_GMTOFF */ - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -/* #undef H5_HAVE_TM_ZONE */ - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#define H5_HAVE_TZNAME 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_UNISTD_H */ - -/* Define to 1 if you have the `vasprintf' function. */ -/* #undef H5_HAVE_VASPRINTF */ - -/* Define to 1 if you have the `vsnprintf' function. */ -/* #undef H5_HAVE_VSNPRINTF */ - -/* Define to 1 if you have the `waitpid' function. */ -/* #undef H5_HAVE_WAITPID */ - -/* Define if your system has window style path name. */ -#define H5_HAVE_WINDOW_PATH 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_WINSOCK2_H 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_ZLIB_H 1 - -/* Define to 1 if you have the `_getvideoconfig' function. */ -/* #undef H5_HAVE__GETVIDEOCONFIG */ - -/* Define to 1 if you have the `_scrsize' function. */ -/* #undef H5_HAVE__SCRSIZE */ - -/* Define if `__tm_gmtoff' is a member of `struct tm' */ -/* #undef H5_HAVE___TM_GMTOFF */ - -/* Define if your system can't handle converting floating-point values to long - long. */ -/* #undef H5_HW_FP_TO_LLONG_NOT_WORKS */ - -/* Define if HDF5's high-level library headers should be included in hdf5.h */ -#define H5_INCLUDE_HL 1 - -/* Define if your system can accurately convert from integers to long double - values. */ -#define H5_INTEGER_TO_LDOUBLE_ACCURATE 1 - -/* Define if your system can convert long double to integers accurately. */ -#define H5_LDOUBLE_TO_INTEGER_ACCURATE 1 - -/* Define if your system can convert from long double to integer values. */ -#define H5_LDOUBLE_TO_INTEGER_WORKS 1 - -/* Define if your system can convert long double to (unsigned) long long - values correctly. */ -#define H5_LDOUBLE_TO_LLONG_ACCURATE 1 - -/* Define if your system converts long double to (unsigned) long values with - special algorithm. */ -/* #undef H5_LDOUBLE_TO_LONG_SPECIAL */ - -/* Define if your system can convert long double to unsigned int values - correctly. */ -#define H5_LDOUBLE_TO_UINT_ACCURATE 1 - -/* Define if your system can compile long long to floating-point casts. */ -#define H5_LLONG_TO_FP_CAST_WORKS 1 - -/* Define if your system can convert (unsigned) long long to long double - values correctly. */ -#define H5_LLONG_TO_LDOUBLE_CORRECT 1 - -/* Define if your system can convert (unsigned) long to long double values - with special algorithm. */ -/* #undef H5_LONG_TO_LDOUBLE_SPECIAL */ - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#define H5_LT_OBJDIR ".libs/" - -/* Define if the metadata trace file code is to be compiled in */ -/* #undef H5_METADATA_TRACE_FILE */ - -/* Define if your system's `MPI_File_set_size' function works for files over - 2GB. */ -#define H5_MPI_FILE_SET_SIZE_BIG 1 - -/* Define if we can violate pointer alignment restrictions */ -#define H5_NO_ALIGNMENT_RESTRICTIONS 1 - -/* Define if deprecated public API symbols are disabled */ -/* #undef H5_NO_DEPRECATED_SYMBOLS */ - -/* Define if shared writing must be disabled (CodeWarrior only) */ -/* #undef H5_NO_SHARED_WRITING */ - -/* Name of package */ -#define H5_PACKAGE "hdf5" - -/* Define to the address where bug reports for this package should be sent. */ -#define H5_PACKAGE_BUGREPORT "help@hdfgroup.org" - -/* Define to the full name of this package. */ -#define H5_PACKAGE_NAME "HDF5" - -/* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.128" - -/* Define to the one symbol short name of this package. */ -#define H5_PACKAGE_TARNAME "hdf5" - -/* Define to the home page for this package. */ -#define H5_PACKAGE_URL "" - -/* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.128" - -/* Width for printf() for type `long long' or `__int64', use `ll' */ -#define H5_PRINTF_LL_WIDTH "I64" - -/* The size of `char', as computed by sizeof. */ -#define H5_SIZEOF_CHAR 1 - -/* The size of `double', as computed by sizeof. */ -#define H5_SIZEOF_DOUBLE 8 - -/* The size of `float', as computed by sizeof. */ -#define H5_SIZEOF_FLOAT 4 - -/* The size of `int', as computed by sizeof. */ -#define H5_SIZEOF_INT 4 - -/* The size of `int16_t', as computed by sizeof. */ -#define H5_SIZEOF_INT16_T 0 - -/* The size of `int32_t', as computed by sizeof. */ -#define H5_SIZEOF_INT32_T 0 - -/* The size of `int64_t', as computed by sizeof. */ -#define H5_SIZEOF_INT64_T 0 - -/* The size of `int8_t', as computed by sizeof. */ -#define H5_SIZEOF_INT8_T 0 - -/* The size of `int_fast16_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_FAST16_T 0 - -/* The size of `int_fast32_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_FAST32_T 0 - -/* The size of `int_fast64_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_FAST64_T 0 - -/* The size of `int_fast8_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_FAST8_T 0 - -/* The size of `int_least16_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_LEAST16_T 0 - -/* The size of `int_least32_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_LEAST32_T 0 - -/* The size of `int_least64_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_LEAST64_T 0 - -/* The size of `int_least8_t', as computed by sizeof. */ -#define H5_SIZEOF_INT_LEAST8_T 0 - -/* The size of `long', as computed by sizeof. */ -#define H5_SIZEOF_LONG 4 - -/* The size of `long double', as computed by sizeof. */ -#define H5_SIZEOF_LONG_DOUBLE 8 - -/* The size of `long long', as computed by sizeof. */ -#define H5_SIZEOF_LONG_LONG 8 - -/* The size of `off64_t', as computed by sizeof. */ -#define H5_SIZEOF_OFF64_T 0 - -/* The size of `off_t', as computed by sizeof. */ -#define H5_SIZEOF_OFF_T 4 - -/* The size of `ptrdiff_t', as computed by sizeof. */ -#ifndef _WIN64 -#define H5_SIZEOF_PTRDIFF_T 4 -#else -#define H5_SIZEOF_PTRDIFF_T 8 -#endif /* _WIN64 */ - -/* The size of `short', as computed by sizeof. */ -#define H5_SIZEOF_SHORT 2 - -/* The size of `size_t', as computed by sizeof. */ -#ifndef _WIN64 -#define H5_SIZEOF_SIZE_T 4 -#else -#define H5_SIZEOF_SIZE_T 8 -#endif /* _WIN64 */ - -/* The size of `ssize_t', as computed by sizeof. */ -#define H5_SIZEOF_SSIZE_T 0 - -/* The size of `uint16_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT16_T 0 - -/* The size of `uint32_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT32_T 0 - -/* The size of `uint64_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT64_T 0 - -/* The size of `uint8_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT8_T 0 - -/* The size of `uint_fast16_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_FAST16_T 0 - -/* The size of `uint_fast32_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_FAST32_T 0 - -/* The size of `uint_fast64_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_FAST64_T 0 - -/* The size of `uint_fast8_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_FAST8_T 0 - -/* The size of `uint_least16_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_LEAST16_T 0 - -/* The size of `uint_least32_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_LEAST32_T 0 - -/* The size of `uint_least64_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_LEAST64_T 0 - -/* The size of `uint_least8_t', as computed by sizeof. */ -#define H5_SIZEOF_UINT_LEAST8_T 0 - -/* The size of `unsigned', as computed by sizeof. */ -#define H5_SIZEOF_UNSIGNED 4 - -/* The size of `__int64', as computed by sizeof. */ -#define H5_SIZEOF___INT64 8 - -/* Define to 1 if you have the ANSI C header files. */ -#define H5_STDC_HEADERS 1 - -/* Define if strict file format checks are enabled */ -/* #undef H5_STRICT_FORMAT_CHECKS */ - -/* Define if your system supports pthread_attr_setscope(&attribute, - PTHREAD_SCOPE_SYSTEM) call. */ -#define H5_SYSTEM_SCOPE_THREADS 1 - -/* Define to 1 if you can safely include both and . */ -/* #undef H5_TIME_WITH_SYS_TIME */ - -/* Define to 1 if your declares `struct tm'. */ -/* #undef H5_TM_IN_SYS_TIME */ - -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#define H5_ULLONG_TO_FP_CAST_WORKS 1 - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -#define H5_ULLONG_TO_LDOUBLE_PRECISION 1 - -/* Define if your system accurately converting unsigned long to float values. - */ -/* #undef H5_ULONG_TO_FLOAT_ACCURATE */ - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -/* #undef H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE */ - -/* Define using v1.6 public API symbols by default */ -/* #undef H5_USE_16_API_DEFAULT */ - -/* Define if a memory checking tool will be used on the library, to cause - library to be very picky about memory operations and also disable the - internal free list manager code. */ -/* #undef H5_USING_MEMCHECKER */ - -/* Version number of package */ -#define H5_VERSION "1.9.128" - -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -/* #undef H5_VSNPRINTF_WORKS */ - -/* Data accuracy is prefered to speed during data conversions */ -#define H5_WANT_DATA_ACCURACY 1 - -/* Check exception handling functions during data conversions */ -#define H5_WANT_DCONV_EXCEPTION 1 - -/* Define to 1 if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef H5_WORDS_BIGENDIAN */ - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef H5__FILE_OFFSET_BITS */ - -/* Define for large files, on AIX-style hosts. */ -/* #undef H5__LARGE_FILES */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef H5_const */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#define H5_inline __inline -#endif - -/* Define to `long int' if does not define. */ -/* #undef H5_off_t */ - -/* Define to `long' if does not define. */ -/* #undef H5_ptrdiff_t */ - -/* Define to `unsigned long' if does not define. */ -/* #undef H5_size_t */ - -/* Define to `long' if does not define. */ -#ifndef _WIN64 -#define H5_ssize_t long -#else -#define H5_ssize_t long long -#endif /* _WIN64 */ diff --git a/windows/test/H5srcdir_str.h b/windows/test/H5srcdir_str.h deleted file mode 100644 index 4d32264..0000000 --- a/windows/test/H5srcdir_str.h +++ /dev/null @@ -1,22 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* If you are reading this file and it has a '.h' suffix, it was automatically - * generated from the '.in' version. Make changes there. - */ - -/* Set the 'srcdir' path from configure time */ -static const char *config_srcdir = "."; - diff --git a/windows/test/app_ref/app_ref.vcproj b/windows/test/app_ref/app_ref.vcproj deleted file mode 100644 index a26fbe7..0000000 --- a/windows/test/app_ref/app_ref.vcproj +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/app_refdll/app_refdll.vcproj b/windows/test/app_refdll/app_refdll.vcproj deleted file mode 100644 index 436722e..0000000 --- a/windows/test/app_refdll/app_refdll.vcproj +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/big/big.vcproj b/windows/test/big/big.vcproj deleted file mode 100644 index 81f9aaa..0000000 --- a/windows/test/big/big.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/bigdll/bigdll.vcproj b/windows/test/bigdll/bigdll.vcproj deleted file mode 100644 index a788652..0000000 --- a/windows/test/bigdll/bigdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/bittests/bittests.vcproj b/windows/test/bittests/bittests.vcproj deleted file mode 100644 index 72a5059..0000000 --- a/windows/test/bittests/bittests.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/bittestsdll/bittestsdll.vcproj b/windows/test/bittestsdll/bittestsdll.vcproj deleted file mode 100644 index 4288e03..0000000 --- a/windows/test/bittestsdll/bittestsdll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/btree2/btree2.vcproj b/windows/test/btree2/btree2.vcproj deleted file mode 100644 index 27f4d66..0000000 --- a/windows/test/btree2/btree2.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/btree2dll/btree2dll.vcproj b/windows/test/btree2dll/btree2dll.vcproj deleted file mode 100644 index 0658779..0000000 --- a/windows/test/btree2dll/btree2dll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cache/cache.vcproj b/windows/test/cache/cache.vcproj deleted file mode 100644 index d23d7ff..0000000 --- a/windows/test/cache/cache.vcproj +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cache_api/cache_api.vcproj b/windows/test/cache_api/cache_api.vcproj deleted file mode 100644 index 2e53ce9..0000000 --- a/windows/test/cache_api/cache_api.vcproj +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cache_apidll/cache_apidll.vcproj b/windows/test/cache_apidll/cache_apidll.vcproj deleted file mode 100644 index 0e0e50c..0000000 --- a/windows/test/cache_apidll/cache_apidll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cachedll/cachedll.vcproj b/windows/test/cachedll/cachedll.vcproj deleted file mode 100644 index 8593090..0000000 --- a/windows/test/cachedll/cachedll.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/checktests.bat b/windows/test/checktests.bat deleted file mode 100644 index e76ba01..0000000 --- a/windows/test/checktests.bat +++ /dev/null @@ -1,147 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 library -rem -rem Created: Scott Wegner, 9/4/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_LIBTEST_", as we use these for our -rem tests. Also clear "HDF5_LIBTEST_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_libtest_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_libtest_') do set %%a= -set hdf5_libtest_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the libtest being tested -rem %2 - Relative path of script -:add_test - - set hdf5_libtest_tests=%hdf5_libtest_tests% %1 - set hdf5_libtest_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_libtest_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_libtest_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - call :add_test testerror.bat . - call :add_test testhdf5%2 .\testhdf5%2\%1 - call :add_test lheap%2 .\lheap%2\%1 - call :add_test ohdr%2 .\ohdr%2\%1 - call :add_test stab%2 .\stab%2\%1 - call :add_test gheap%2 .\gheap%2\%1 - call :add_test cache%2 .\cache%2\%1 - call :add_test cache_api%2 .\cache_api%2\%1 - call :add_test pool%2 .\pool%2\%1 - call :add_test hyperslab%2 .\hyperslab%2\%1 - call :add_test istore%2 .\istore%2\%1 - call :add_test bittests%2 .\bittests%2\%1 - call :add_test dt_arith%2 .\dt_arith%2\%1 - call :add_test dtypes%2 .\dtypes%2\%1 - call :add_test dsets%2 .\dsets%2\%1 - call :add_test cmpd_dset%2 .\cmpd_dset%2\%1 - call :add_test extend%2 .\extend%2\%1 - call :add_test external%2 .\external%2\%1 - call :add_test objcopy%2 .\objcopy%2\%1 - call :add_test links%2 .\links%2\%1 - call :add_test unlink%2 .\unlink%2\%1 - call :add_test big%2 .\big%2\%1 - call :add_test mtime%2 .\mtime%2\%1 - call :add_test fillval%2 .\fillval%2\%1 - call :add_test mount%2 .\mount%2\%1 - call :add_test flush1%2 .\flush1%2\%1 - call :add_test flush2%2 .\flush2%2\%1 - call :add_test app_ref%2 .\app_ref%2\%1 - call :add_test enum%2 .\enum%2\%1 - call :add_test set_extent%2 .\set_extent%2\%1 - rem Test commented because threadsafe is not built by default on Windows. - rem --SJW 9/5/07 - rem call :add_test ttsafe%2 .\ttsafe%2\%1 - rem Test commented because stream driver is not supported on Windows. - rem --SJW 9/5/07 - rem call :add_test stream_test%2 .\stream_test%2\%1 - call :add_test getname%2 .\getname%2\%1 - call :add_test vfd%2 .\vfd%2\%1 - call :add_test ntypes%2 .\ntypes%2\%1 - call :add_test dangle%2 .\dangle%2\%1 - call :add_test reserved%2 .\reserved%2\%1 - call :add_test cross_read%2 .\cross_read%2\%1 - call :add_test freespace%2 .\freespace%2\%1 - call :add_test mf%2 .\mf%2\%1 - call :add_test btree2%2 .\btree2%2\%1 - call :add_test fheap%2 .\fheap%2\%1 - call :add_test earray%2 .\earray%2\%1 - call :add_test farray%2 .\farray%2\%1 - - call :add_test tcheckversion%2 .\tcheckversion%2\%1 - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All library tests passed. - ) else ( - echo.** FAILED Library tests. - ) - - popd - endlocal & exit /b %nerrors% diff --git a/windows/test/chunk/chunk.vcproj b/windows/test/chunk/chunk.vcproj deleted file mode 100644 index 66776b6..0000000 --- a/windows/test/chunk/chunk.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/chunk_info/chunk_info.vcproj b/windows/test/chunk_info/chunk_info.vcproj deleted file mode 100644 index ffb1268..0000000 --- a/windows/test/chunk_info/chunk_info.vcproj +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/chunk_infodll/chunk_infodll.vcproj b/windows/test/chunk_infodll/chunk_infodll.vcproj deleted file mode 100644 index 6637c77..0000000 --- a/windows/test/chunk_infodll/chunk_infodll.vcproj +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/chunkdll/chunkdll.vcproj b/windows/test/chunkdll/chunkdll.vcproj deleted file mode 100644 index 2332665..0000000 --- a/windows/test/chunkdll/chunkdll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cmpd_dset/cmpd_dset.vcproj b/windows/test/cmpd_dset/cmpd_dset.vcproj deleted file mode 100644 index 9edb3c6..0000000 --- a/windows/test/cmpd_dset/cmpd_dset.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj b/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj deleted file mode 100644 index df44712..0000000 --- a/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cross_read/cross_read.vcproj b/windows/test/cross_read/cross_read.vcproj deleted file mode 100644 index 69ba14d..0000000 --- a/windows/test/cross_read/cross_read.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cross_readdll/cross_readdll.vcproj b/windows/test/cross_readdll/cross_readdll.vcproj deleted file mode 100644 index a8f76bf..0000000 --- a/windows/test/cross_readdll/cross_readdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dangle/dangle.vcproj b/windows/test/dangle/dangle.vcproj deleted file mode 100644 index 12f6ed3..0000000 --- a/windows/test/dangle/dangle.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dangledll/dangledll.vcproj b/windows/test/dangledll/dangledll.vcproj deleted file mode 100644 index 5b27d30..0000000 --- a/windows/test/dangledll/dangledll.vcproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dsets/dsets.vcproj b/windows/test/dsets/dsets.vcproj deleted file mode 100644 index 5e0777a..0000000 --- a/windows/test/dsets/dsets.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dsetsdll/dsetsdll.vcproj b/windows/test/dsetsdll/dsetsdll.vcproj deleted file mode 100644 index afad0af..0000000 --- a/windows/test/dsetsdll/dsetsdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dt_arith/dt_arith.vcproj b/windows/test/dt_arith/dt_arith.vcproj deleted file mode 100644 index eee94f8..0000000 --- a/windows/test/dt_arith/dt_arith.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dt_arithdll/dt_arithdll.vcproj b/windows/test/dt_arithdll/dt_arithdll.vcproj deleted file mode 100644 index ab8e6c5..0000000 --- a/windows/test/dt_arithdll/dt_arithdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dtransform/dtransform.vcproj b/windows/test/dtransform/dtransform.vcproj deleted file mode 100644 index 70c3e54..0000000 --- a/windows/test/dtransform/dtransform.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dtransformdll/dtransformdll.vcproj b/windows/test/dtransformdll/dtransformdll.vcproj deleted file mode 100644 index 93591a6..0000000 --- a/windows/test/dtransformdll/dtransformdll.vcproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dtypes/dtypes.vcproj b/windows/test/dtypes/dtypes.vcproj deleted file mode 100644 index 522603d..0000000 --- a/windows/test/dtypes/dtypes.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/dtypesdll/dtypesdll.vcproj b/windows/test/dtypesdll/dtypesdll.vcproj deleted file mode 100644 index 5e76dc0..0000000 --- a/windows/test/dtypesdll/dtypesdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/earray/earray.vcproj b/windows/test/earray/earray.vcproj deleted file mode 100644 index fa78f39..0000000 --- a/windows/test/earray/earray.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/earraydll/earraydll.vcproj b/windows/test/earraydll/earraydll.vcproj deleted file mode 100644 index bbee158..0000000 --- a/windows/test/earraydll/earraydll.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/efc/efc.vcproj b/windows/test/efc/efc.vcproj deleted file mode 100644 index 8668e64..0000000 --- a/windows/test/efc/efc.vcproj +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/efcdll/efcdll.vcproj b/windows/test/efcdll/efcdll.vcproj deleted file mode 100644 index 384977f..0000000 --- a/windows/test/efcdll/efcdll.vcproj +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/enum/enum.vcproj b/windows/test/enum/enum.vcproj deleted file mode 100644 index cfb4a95..0000000 --- a/windows/test/enum/enum.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/enumdll/enumdll.vcproj b/windows/test/enumdll/enumdll.vcproj deleted file mode 100644 index 7cfd34e..0000000 --- a/windows/test/enumdll/enumdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/err_compat/err_compat.vcproj b/windows/test/err_compat/err_compat.vcproj deleted file mode 100644 index ab17d5c..0000000 --- a/windows/test/err_compat/err_compat.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/err_compatdll/err_compatdll.vcproj b/windows/test/err_compatdll/err_compatdll.vcproj deleted file mode 100644 index eb2933c..0000000 --- a/windows/test/err_compatdll/err_compatdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/error_test/error_test.vcproj b/windows/test/error_test/error_test.vcproj deleted file mode 100644 index cc00f2c..0000000 --- a/windows/test/error_test/error_test.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/error_testdll/error_testdll.vcproj b/windows/test/error_testdll/error_testdll.vcproj deleted file mode 100644 index 86a3792..0000000 --- a/windows/test/error_testdll/error_testdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/extend/extend.vcproj b/windows/test/extend/extend.vcproj deleted file mode 100644 index bf9e712..0000000 --- a/windows/test/extend/extend.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/extenddll/extenddll.vcproj b/windows/test/extenddll/extenddll.vcproj deleted file mode 100644 index 791ff61..0000000 --- a/windows/test/extenddll/extenddll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/external/external.vcproj b/windows/test/external/external.vcproj deleted file mode 100644 index 7e2e96a..0000000 --- a/windows/test/external/external.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/externaldll/externaldll.vcproj b/windows/test/externaldll/externaldll.vcproj deleted file mode 100644 index a8716b4..0000000 --- a/windows/test/externaldll/externaldll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/farray/farray.vcproj b/windows/test/farray/farray.vcproj deleted file mode 100644 index 376340d..0000000 --- a/windows/test/farray/farray.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/farraydll/farraydll.vcproj b/windows/test/farraydll/farraydll.vcproj deleted file mode 100644 index 2f7eac7..0000000 --- a/windows/test/farraydll/farraydll.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/fheap/fheap.vcproj b/windows/test/fheap/fheap.vcproj deleted file mode 100644 index ec0decb..0000000 --- a/windows/test/fheap/fheap.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/fheapdll/fheapdll.vcproj b/windows/test/fheapdll/fheapdll.vcproj deleted file mode 100644 index 3690c49..0000000 --- a/windows/test/fheapdll/fheapdll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/fillval/fillval.vcproj b/windows/test/fillval/fillval.vcproj deleted file mode 100644 index 1e02965..0000000 --- a/windows/test/fillval/fillval.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/fillvaldll/fillvaldll.vcproj b/windows/test/fillvaldll/fillvaldll.vcproj deleted file mode 100644 index c130d54..0000000 --- a/windows/test/fillvaldll/fillvaldll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/flush1/flush1.vcproj b/windows/test/flush1/flush1.vcproj deleted file mode 100644 index a9fdc83..0000000 --- a/windows/test/flush1/flush1.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/flush1dll/flush1dll.vcproj b/windows/test/flush1dll/flush1dll.vcproj deleted file mode 100644 index 4fe9b97..0000000 --- a/windows/test/flush1dll/flush1dll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/flush2/flush2.vcproj b/windows/test/flush2/flush2.vcproj deleted file mode 100644 index bc24074..0000000 --- a/windows/test/flush2/flush2.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/flush2dll/flush2dll.vcproj b/windows/test/flush2dll/flush2dll.vcproj deleted file mode 100644 index ca945a0..0000000 --- a/windows/test/flush2dll/flush2dll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/freespace/freespace.vcproj b/windows/test/freespace/freespace.vcproj deleted file mode 100644 index 2ec5194..0000000 --- a/windows/test/freespace/freespace.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/freespacedll/freespacedll.vcproj b/windows/test/freespacedll/freespacedll.vcproj deleted file mode 100644 index 18fdea4..0000000 --- a/windows/test/freespacedll/freespacedll.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/getname/getname.vcproj b/windows/test/getname/getname.vcproj deleted file mode 100644 index 9ae3d1e..0000000 --- a/windows/test/getname/getname.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/getnamedll/getnamedll.vcproj b/windows/test/getnamedll/getnamedll.vcproj deleted file mode 100644 index 82ebfcd..0000000 --- a/windows/test/getnamedll/getnamedll.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/getub/getub.vcproj b/windows/test/getub/getub.vcproj deleted file mode 100644 index 60cb6d3..0000000 --- a/windows/test/getub/getub.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/gheap/gheap.vcproj b/windows/test/gheap/gheap.vcproj deleted file mode 100644 index ebea71f..0000000 --- a/windows/test/gheap/gheap.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/gheapdll/gheapdll.vcproj b/windows/test/gheapdll/gheapdll.vcproj deleted file mode 100644 index 3d5b8a6..0000000 --- a/windows/test/gheapdll/gheapdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/hyperslab/hyperslab.vcproj b/windows/test/hyperslab/hyperslab.vcproj deleted file mode 100644 index 6e4a929..0000000 --- a/windows/test/hyperslab/hyperslab.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/hyperslabdll/hyperslabdll.vcproj b/windows/test/hyperslabdll/hyperslabdll.vcproj deleted file mode 100644 index 9143be6..0000000 --- a/windows/test/hyperslabdll/hyperslabdll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/iopipe/iopipe.vcproj b/windows/test/iopipe/iopipe.vcproj deleted file mode 100644 index e8b62a2..0000000 --- a/windows/test/iopipe/iopipe.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/iopipedll/iopipedll.vcproj b/windows/test/iopipedll/iopipedll.vcproj deleted file mode 100644 index 6fd0524..0000000 --- a/windows/test/iopipedll/iopipedll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/istore/istore.vcproj b/windows/test/istore/istore.vcproj deleted file mode 100644 index 9972e26..0000000 --- a/windows/test/istore/istore.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/istoredll/istoredll.vcproj b/windows/test/istoredll/istoredll.vcproj deleted file mode 100644 index 6c44f99..0000000 --- a/windows/test/istoredll/istoredll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/lheap/lheap.vcproj b/windows/test/lheap/lheap.vcproj deleted file mode 100644 index fd368c1..0000000 --- a/windows/test/lheap/lheap.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/lheapdll/lheapdll.vcproj b/windows/test/lheapdll/lheapdll.vcproj deleted file mode 100644 index 72cbfc8..0000000 --- a/windows/test/lheapdll/lheapdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/libtest/libtest.vcproj b/windows/test/libtest/libtest.vcproj deleted file mode 100644 index 4b0a007..0000000 --- a/windows/test/libtest/libtest.vcproj +++ /dev/null @@ -1,340 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/libtestdll/libtestdll.vcproj b/windows/test/libtestdll/libtestdll.vcproj deleted file mode 100644 index 45c2538..0000000 --- a/windows/test/libtestdll/libtestdll.vcproj +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/links/links.vcproj b/windows/test/links/links.vcproj deleted file mode 100644 index 95be919..0000000 --- a/windows/test/links/links.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/linksdll/linksdll.vcproj b/windows/test/linksdll/linksdll.vcproj deleted file mode 100644 index 1b13968..0000000 --- a/windows/test/linksdll/linksdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/mf/mf.vcproj b/windows/test/mf/mf.vcproj deleted file mode 100644 index 541b53e..0000000 --- a/windows/test/mf/mf.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/mfdll/mfdll.vcproj b/windows/test/mfdll/mfdll.vcproj deleted file mode 100644 index fbca153..0000000 --- a/windows/test/mfdll/mfdll.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/mount/mount.vcproj b/windows/test/mount/mount.vcproj deleted file mode 100644 index a378e07..0000000 --- a/windows/test/mount/mount.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/mountdll/mountdll.vcproj b/windows/test/mountdll/mountdll.vcproj deleted file mode 100644 index 4babfc2..0000000 --- a/windows/test/mountdll/mountdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/mtime/mtime.vcproj b/windows/test/mtime/mtime.vcproj deleted file mode 100644 index 57a5b41..0000000 --- a/windows/test/mtime/mtime.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/mtimedll/mtimedll.vcproj b/windows/test/mtimedll/mtimedll.vcproj deleted file mode 100644 index dfe6c28..0000000 --- a/windows/test/mtimedll/mtimedll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/ntypes/ntypes.vcproj b/windows/test/ntypes/ntypes.vcproj deleted file mode 100644 index 6efa879..0000000 --- a/windows/test/ntypes/ntypes.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/ntypesdll/ntypesdll.vcproj b/windows/test/ntypesdll/ntypesdll.vcproj deleted file mode 100644 index d0eb962..0000000 --- a/windows/test/ntypesdll/ntypesdll.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/objcopy/objcopy.vcproj b/windows/test/objcopy/objcopy.vcproj deleted file mode 100644 index 489a850..0000000 --- a/windows/test/objcopy/objcopy.vcproj +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/objcopydll/objcopydll.vcproj b/windows/test/objcopydll/objcopydll.vcproj deleted file mode 100644 index 8d25dbf..0000000 --- a/windows/test/objcopydll/objcopydll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/ohdr/ohdr.vcproj b/windows/test/ohdr/ohdr.vcproj deleted file mode 100644 index 392ae00..0000000 --- a/windows/test/ohdr/ohdr.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/ohdrdll/ohdrdll.vcproj b/windows/test/ohdrdll/ohdrdll.vcproj deleted file mode 100644 index 4bf63c2..0000000 --- a/windows/test/ohdrdll/ohdrdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/overhead/overhead.vcproj b/windows/test/overhead/overhead.vcproj deleted file mode 100644 index cea89cb..0000000 --- a/windows/test/overhead/overhead.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/overheaddll/overheaddll.vcproj b/windows/test/overheaddll/overheaddll.vcproj deleted file mode 100644 index e9a0801..0000000 --- a/windows/test/overheaddll/overheaddll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/pool/pool.vcproj b/windows/test/pool/pool.vcproj deleted file mode 100644 index 464d240..0000000 --- a/windows/test/pool/pool.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/pooldll/pooldll.vcproj b/windows/test/pooldll/pooldll.vcproj deleted file mode 100644 index 5346552..0000000 --- a/windows/test/pooldll/pooldll.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/reserved/reserved.vcproj b/windows/test/reserved/reserved.vcproj deleted file mode 100644 index 2bbbd3d..0000000 --- a/windows/test/reserved/reserved.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/reserveddll/reserveddll.vcproj b/windows/test/reserveddll/reserveddll.vcproj deleted file mode 100644 index ca4d75c..0000000 --- a/windows/test/reserveddll/reserveddll.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/set_extent/set_extent.vcproj b/windows/test/set_extent/set_extent.vcproj deleted file mode 100644 index 9ae1a06..0000000 --- a/windows/test/set_extent/set_extent.vcproj +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/set_extentdll/set_extentdll.vcproj b/windows/test/set_extentdll/set_extentdll.vcproj deleted file mode 100644 index 98691a5..0000000 --- a/windows/test/set_extentdll/set_extentdll.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/stab/stab.vcproj b/windows/test/stab/stab.vcproj deleted file mode 100644 index e5bbfdc..0000000 --- a/windows/test/stab/stab.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/stabdll/stabdll.vcproj b/windows/test/stabdll/stabdll.vcproj deleted file mode 100644 index a954b4e..0000000 --- a/windows/test/stabdll/stabdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/tcheckversion/tcheckversion.vcproj b/windows/test/tcheckversion/tcheckversion.vcproj deleted file mode 100644 index 3f3c8c9..0000000 --- a/windows/test/tcheckversion/tcheckversion.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/tcheckversiondll/tcheckversiondll.vcproj b/windows/test/tcheckversiondll/tcheckversiondll.vcproj deleted file mode 100644 index 7fccf05..0000000 --- a/windows/test/tcheckversiondll/tcheckversiondll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/tellub/tellub.vcproj b/windows/test/tellub/tellub.vcproj deleted file mode 100644 index a8be4e3..0000000 --- a/windows/test/tellub/tellub.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/testerror.bat b/windows/test/testerror.bat deleted file mode 100644 index 24d39e0..0000000 --- a/windows/test/testerror.bat +++ /dev/null @@ -1,204 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for test_error and err_compat -rem -rem Created: Scott Wegner, 8/16/07 -rem Modified: - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem Determine backwards compatibility options enabled -rem set deprecated_symbols=%deprecated_symbols% - -set /a nerrors=0 -set verbose=yes - -if not exist .\testfiles mkdir testfiles - -goto main - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%a - ) ) - ) - set test_msg=%test_msg% - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. If a test fails then increment -rem the `nerrors' global variable and (if $verbose is set) display the -rem difference between the actual output and the expected output. The -rem expected output is given as the first argument to this function and -rem the actual output file is calculated by replacing the `.ddl' with -rem `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a -rem non-zero value. -rem -:test - rem The test name - set test_err=%1%3 - rem The path of the test binary - set test_err_bin=%cd%\%test_err%\%2\%test_err% - - set expect1=%cd%\testfiles\%~n1_1 - set expect2=%cd%\testfiles\%~n1_2 - set expect1_parsed=%~n1_1.parsed - set expect2_parsed=%~n1_2.parsed - set actual=%~n1.out - set actual_err=%~n1.err - set actual_ext=%~n1.ext - - rem Run test - ( - echo.############################# - echo.Expected output for %1 - echo.############################# - %test_err_bin% - ) >%actual% 2>%actual_err% - rem Extract file name, line number, version and thread IDs because they may - rem be different - - rem Also filter out lines starting with *****, because Windows treats these - rem as wildcards, and parses as filenames. -SJW, 8/16/07 - type nul > %actual_ext% - for /f "delims=" %%a in (%actual_err%) do ( - set line_tmp=%%a - if not "!line_tmp:~0,9!"=="*********" ( - set line= - set last_token= - set skip= - for %%b in (%%a) do ( - if not defined skip ( - if "!last_token!"=="thread" ( - set line=!line! ^(IDs^): - - ) else if "!last_token!"=="some" ( - if "%%b"=="thread:" ( - set line=!line! thread ^(IDs^): - set skip=yes - ) else ( - set line=!line! some %%b - ) - - ) else if "!last_token:~0,2!"=="#0" ( - set line=!line! ^(file name^) - - ) else if "!last_token!"=="HDF5" ( - rem Check if we wrap parenthesis around "version (number)" - set version_token=%%b - if "!version_token:~0,1!"=="(" ( - set line=!line! ^(version ^(number^)^) - ) else ( - set line=!line! version ^(number^). - ) - - ) else if "!last_token!"=="line" ( - set line=!line! ^(number^) - - ) else if not "%%b"=="some" ( - set line=!line! %%b - ) - set last_token=%%b - ) - ) - echo.!line!>>%actual_ext% - ) - ) - type %actual_ext% >> %actual% - - rem We parse through our expected output file in a similar way, because - rem Windows will parse out commas and other special characters as well. - rem -SJW, 8/16/07 - for %%a in (expect1 expect2) do ( - type nul > !%%a_parsed! - for /f "delims=" %%b in (!%%a!) do ( - set line_tmp=%%b - if not "!line_tmp:~0,9!"=="*********" ( - set line= - for %%c in (%%b) do ( - set line=!line! %%c - ) - echo.!line!>>!%%a_parsed! - ) - ) - ) - - fc /w %expect1_parsed% %actual% > nul - if errorlevel 0 ( - call :testing PASSED %test_err% - ) else ( - fc /w %expect2_parsed% %actual% > nul - if errorlevel 0 ( - call :testing PASSED %test_err% - ) else ( - call :testing *FAILED* %test_err% - echo. Expected result differs from actual result - set /a nerrors=%nerrors%+1 - if "yes"=="%verbose%" fc %expect1_parsed% %actual% - ) - ) - - rem Clean up output file - if not defined HDF5_NOCLEANUP ( - for %%a in (%actual% %actual_err% %actual_ext% %expect1_parsed% %expect2_parsed%) do del /f %%a - ) - - exit /b - - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %* - - exit /b - - -rem ############################################################################## -rem ############################################################################## -rem ### T H E T E S T S ### -rem ############################################################################## -rem ############################################################################## - -:main - - rem test for err_compat - if "%deprecated_symbols%"=="yes" ( - call :skip err_compat %1 %2 - ) else ( - call :test err_compat %1 %2 - ) - - rem test for error_test - call :test error_test %1 %2 - - if "%nerrors%"=="0" ( - echo.All Error API tests passed. - ) else ( - echo.** FAILED Error API tests - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/test/testhdf5/testhdf5.vcproj b/windows/test/testhdf5/testhdf5.vcproj deleted file mode 100644 index 326da30..0000000 --- a/windows/test/testhdf5/testhdf5.vcproj +++ /dev/null @@ -1,492 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/testhdf5dll/testhdf5dll.vcproj b/windows/test/testhdf5dll/testhdf5dll.vcproj deleted file mode 100644 index 21fdfd0..0000000 --- a/windows/test/testhdf5dll/testhdf5dll.vcproj +++ /dev/null @@ -1,484 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/ttsafedll/ttsafedll.vcproj b/windows/test/ttsafedll/ttsafedll.vcproj deleted file mode 100644 index a364040..0000000 --- a/windows/test/ttsafedll/ttsafedll.vcproj +++ /dev/null @@ -1,415 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/unlink/unlink.vcproj b/windows/test/unlink/unlink.vcproj deleted file mode 100644 index 65f6fa7..0000000 --- a/windows/test/unlink/unlink.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/unlinkdll/unlinkdll.vcproj b/windows/test/unlinkdll/unlinkdll.vcproj deleted file mode 100644 index 83d0e5f..0000000 --- a/windows/test/unlinkdll/unlinkdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/vfd/vfd.vcproj b/windows/test/vfd/vfd.vcproj deleted file mode 100644 index ec1e5ae..0000000 --- a/windows/test/vfd/vfd.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/vfddll/vfddll.vcproj b/windows/test/vfddll/vfddll.vcproj deleted file mode 100644 index 44508fe..0000000 --- a/windows/test/vfddll/vfddll.vcproj +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/checktools.bat b/windows/tools/checktools.bat deleted file mode 100644 index 87f30ca..0000000 --- a/windows/tools/checktools.bat +++ /dev/null @@ -1,164 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the hdf5 tools -rem -rem Created: Scott Wegner, 9/4/07 -rem Modified: Scott Wegner, 9/6/07 -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set /a nerrors=0 - -rem Clean any variables starting with "HDF5_TOOL_", as we use these for our -rem tests. Also clear "HDF5_TOOL_TESTS", as we will be addding all of our tests -rem to this variable. -rem Set at least one variable in set beforehand to avoid error message. -rem --SJW 9/5/07 -set hdf5_tool_=foo -for /f "tokens=1 delims==" %%a in ('set hdf5_tool_') do set %%a= -set hdf5_tool_tests= - -goto main - - -rem Function to add a test to the test suite. -rem Expects the following parameters: -rem %1 - Name of the tool being tested -rem %2 - Relative path of script -:add_test - - set hdf5_tool_tests=%hdf5_tool_tests% %1 - set hdf5_tool_%1_test=%CD%\%2\%1 - - exit /b - - -rem Run all of the tests that have been added to the suite. Print a header -rem at the beginning of each one. Short-circuit if a test fails. -rem Expects the following parameters: -rem %1 - release or debug version -rem %2 - "dll" or nothing -:run_tests - for %%a in (%hdf5_tool_tests%) do ( - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) - echo.************************************ - - rem Only add our parameters for batch scripts. - call !hdf5_tool_%%a_test:.bat= %1 %2! - rem Exit early if test fails. - if errorlevel 1 ( - set /a nerrors=!nerrors!+1 - echo. - echo.************************************ - echo. Testing %%a ^(%1 %2^) FAILED - exit /b 1 - ) - ) - - rem If we get here, that means all of our tests passed. - exit /b - - -rem This is where we add tests to the suite, and run them all at the end. -rem Make sure only to run dll versions of tests you build dll for. -rem Also make sure to add *.bat to batch scripts, as the above functions rely -rem on it for sending parameters. --SJW 9/6/07 -:main - - rem lib tests - call :add_test talign%2 talign%2\%1 - - rem h5dump tests - rem Test commented because it produces output in the wrong directory. - rem --SJW 9/5/07 - rem if not "%2"=="dll" ( - rem call :add_test h5dumptst .\testfiles\h5dumptst\%1 - rem ) - call :add_test testh5dump.bat .\h5dump - call :add_test testh5dumpxml.bat .\h5dump - - rem h5diff tests - rem Test commented because it produces output in the wrong directory. - rem --SJW 9/5/07 - rem if not "%2"=="dll" ( - rem call :add_test h5difftst .\testfiles\h5difftst\%1 - rem ) - call :add_test testh5diff.bat .\h5diff - - rem h5ls tests - call :add_test testh5ls.bat .\h5ls - - rem misc tests - rem Test commented because we don't built it on Windows - rem --SJW 9/5/07 - rem call :add_test h5stat_gentest .\testfiles\h5stat_gentest%2\%1 - call :add_test testh5repart.bat .\h5repart - if not "%2"=="dll" ( - call :add_test testh5mkgrp.bat .\h5mkgrp - ) - - rem h5import tests - rem Test commented because it produces output in the wrong directory. - rem --SJW 9/5/07 - rem if not "%2"=="dll" ( - rem call :add_test h5importtest .\testfiles\h5importtest\%1 - rem ) - call :add_test h5importtestutil.bat .\h5import - - rem h5repack tests - call :add_test h5repack.bat .\h5repack - if not "%2"=="dll" ( - call :add_test h5repacktst .\testfiles\h5repacktst\%1 - ) - - rem h5jam tests - if not "%2"=="dll" ( - call :add_test testh5jam.bat .\h5jam - ) - - rem h5copy tests - rem Test commented because we don't built it on Windows - rem --SJW 9/5/07 - rem call :add_test h5stat_gentest .\testfiles\h5stat_gentest%2\%1 - if not "%2"=="dll" ( - call :add_test testh5copy.bat .\h5copy - ) - - rem h5stat tests - rem Test commented because it produces output in the wrong directory. - rem --SJW 9/5/07 - rem if not "%2"=="dll" ( - rem call :add_test h5repart_gentest .\testfiles\h5repart_gentest\%1 - rem ) - call :add_test testh5stat.bat .\h5stat - - - rem Run the tests, passing in which version to run - call :run_tests %* - - if "%nerrors%"=="0" ( - echo.All tool tests passed. - ) else ( - echo.** FAILED tool tests. - ) - - popd - endlocal & exit /b %nerrors% - \ No newline at end of file diff --git a/windows/tools/h5copy/h5copy.vcproj b/windows/tools/h5copy/h5copy.vcproj deleted file mode 100644 index 3e5c9db..0000000 --- a/windows/tools/h5copy/h5copy.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5copy/testh5copy.bat b/windows/tools/h5copy/testh5copy.bat deleted file mode 100644 index c14b505..0000000 --- a/windows/tools/h5copy/testh5copy.bat +++ /dev/null @@ -1,448 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5copy tool -rem -rem Created: Scott Wegner, 8/16/07 -rem Modified: Scott Wegner, 8/22/07 -rem - - -rem We don't currently build DLL version of h5copy, but this test script is -rem setup to support it if we do in the future. --SJW 8/22/07 - -setlocal enabledelayedexpansion -pushd %~dp0 - -set EXIT_SUCCESS=0 -set EXIT_FAILURE=1 - -rem The tool name -set h5copy=h5copy%2 -rem The path of the tool binary -set h5copy_bin=%CD%\%1\%h5copy% -rem The h5diff tool name -set h5diff=h5diff%2 -rem The path of the h5diff too binary -set h5diff_bin=%CD%\..\%h5diff%\%1\%h5diff% -rem The h5ls tool name -set h5ls=h5ls%2 -rem Arguments to the h5ls tool -set h5ls_args=-Svr -rem The path of the h5ls tool binary -set h5ls_bin=%CD%\..\%h5ls%\%1\%h5ls% - -set /a nerrors=0 -set verbose=yes - -set srcfile1=h5copytst.h5 -set srcfile2=h5copy_ref.h5 -set hdf_ext_src_file=h5copy_extlinks_src.h5 -set hdf_ext_trg_file=h5copy_extlinks_trg.h5 - -set indir=%CD%\testfiles -set outdir=%CD%\..\testfiles - -if not exist %outdir% mkdir %outdir% - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=%test_msg% - echo.%test_msg:~0,69% %1 - - exit /b - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Verifying". -rem -:verify - set verify_msg=Verifying h5diff output - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set verify_msg=!verify_msg! %%~nxa - ) ) - ) - set verify_msg=%verify_msg% - echo.%verify_msg:~0,69% %1 - - exit /b - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Verifying". -rem -:verify_h5ls - set verifyh5ls_msg=Verifying h5ls file structure - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set verifyh5ls_msg=!verifyh5ls_msg! %%~nxa - ) ) - ) - set verifyh5ls_msg=%verifyh5ls_msg% - echo.%verifyh5ls_msg:~0,69% %1 - - exit /b - - - -rem Run a test and print PASS or *FAIL*. If h5copy can complete -rem with exit status 0, consider it pass. If a test fails then increment -rem the `nerrors' global variable. -rem Assumed arguments: -rem $1 is -i -rem $2 is input file -rem $3 is -o -rem $4 is output file -rem $* everything else arguments for h5copy. - -:tooltest - set runh5diff=yes - if "%1"=="-i" ( - set inputfile=%2 - ) else ( - set runh5diff=no - ) - if "%3"=="-o" ( - set outputfile=%4 - ) else ( - set runh5diff=no - ) - - ( - echo.############################# - echo. output for %h5copy% %* - echo.############################# - %h5copy_bin% %* - ) > output.out - - if %errorlevel% neq 0 ( - call :testing *FAILED* %h5copy% %* - echo.failed result is: - type output.out - set /a nerrors=!nerrors!+1 - ) else ( - call :testing PASSED %h5copy% %* - - rem Clean up output file - if not defined HDF5_NOCLEANUP ( - del /f output.out - ) - ) - - if %runh5diff% neq no ( - call :h5difftest %inputfile% %outputfile% %7 %9 - ) - - exit /b - - -:tooltest_fail - set runh5diff=yes - if "%1"=="-i" ( - set inputfile=%2 - ) else ( - set runh5diff=no - ) - if "%3"=="-o" ( - set outputfile=%4 - ) else ( - set runh5diff=no - ) - - ( - echo.############################# - echo. output for %h5copy% %* - echo.############################# - %h5copy_bin% %* - ) > output.out - - if %errorlevel% neq 0 ( - call :testing *FAILED* %h5copy% %* - echo.failed result is: - type output.out - set /a nerrors=!nerrors!+1 - ) else ( - call :testing PASSED %h5copy% %* - - rem Clean up output file - if not defined HDF5_NOCLEANUP ( - del /f output.out - ) - ) - - if %runh5diff% neq no ( - call :h5difftest_fail %inputfile% %outputfile% %7 %9 - ) - - exit /b - - -rem Call the h5diff tool -rem -:h5difftest - %h5diff_bin% -q %* - if %errorlevel% neq 0 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - - exit /b - - -rem Call the h5diff tool with a call that is expected to fail -rem -:h5difftest_fail - %h5diff_bin% -q %* - if %errorlevel% neq 1 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - - exit /b - - -rem Call the h5ls tool to verify the correct output data in the destination file -rem -:h5lstest - set expect=%indir%\%~n1.ls - set expect_parsed=%expect%.parsed - set actual=%outdir%\%~n1.out - set actual_parsed=%actual%.parsed - - rem Stderr is included in stdout so that the diff can detect - rem any unexpected output from that stream too. - rem - rem Note: The modification time and storage utilization are masked off - rem so that the output is more portable - ( - echo.############################# - echo.Expected output for %h5ls% %* - echo.############################# - %h5ls_bin% %h5ls_args% %* - ) > %actual% 2>&1 - - rem Windows doesn't have "sed" command, and parsing the files line-by-line - rem to emulate Unix takes a very long time. Instead, we simply remove lines - rem with "Modified" or "Storage". We also remove lines "Opened (filename) - rem with sec2 driver" and "Expected output for (h5ls test)", because Windows - rem paths differ from Linux. Do this for actual and expected otput. - rem If there is a better alternative in the future, we should use it instead. - rem --SJW 8/22/07 - for %%a in (expect actual) do ( - findstr /v /c:" Modified:" !%%a! > tmp.txt - findstr /v /c:" Storage:" tmp.txt > tmp2.txt - findstr /v /b /c:"Expected output for " tmp2.txt > tmp.txt - findstr /v /b /c:"Opened " tmp.txt > !%%a_parsed! - ) - del /f tmp.txt tmp2.txt - - rem Don't special case non-existing expected output as Linux does, because - rem we depend on it above to parse anyway. It should be an error if it - rem doesn't exist. --SJW 8/22/07 -rem if not exist %expect% ( -rem rem Create the expect file if it doesn't yet exist -rem call :verify_h5ls CREATED %* -rem copy %actual% %expect% -rem ) else ( - fc %expect_parsed% %actual_parsed% > nul - if %errorlevel% equ 0 ( - call :verify_h5ls PASSED %* - ) else ( - call :verify_h5ls *FAILED* %* - echo. Expected result ^(*.ls^) differs from actual result ^(*.out^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc %expect_parsed% %actual_parsed% - ) -rem ) - - rem Clean up output file - if not defined HDF5_NOCLEANUP ( - for %%a in (%actual% %actual_parsed% %expect_parsed%) do del /f %%a - ) - - exit /b - - - -rem Copy single datasets of various forms from one group to another, -rem adding object copied to the destination file each time -rem -rem Assumed arguments: -rem -:copyobjects - - set testfile=%indir%\%srcfile1% - set fileout=%outdir%\%srcfile1:.h5=.out.h5% - - rem Remove any output file left over from previous test run - del /f %fileout% 2> nul - - echo.Test copying various forms of datasets - call :tooltest -i %testfile% -o %fileout% -v -s simple -d simple - call :tooltest -i %testfile% -o %fileout% -v -s chunk -d chunk - call :tooltest -i %testfile% -o %fileout% -v -s compact -d compact - call :tooltest -i %testfile% -o %fileout% -v -s compound -d compound - call :tooltest -i %testfile% -o %fileout% -v -s compressed -d compressed - call :tooltest -i %testfile% -o %fileout% -v -s named_vl -d named_vl - call :tooltest -i %testfile% -o %fileout% -v -s nested_vl -d nested_vl - - echo.Test copying dataset within group in source file to root of destination - call :tooltest -i %testfile% -o %fileout% -v -s grp_dsets/simple -d simple_top - - echo.Test copying ^& renaming dataset. - call :tooltest -i %testfile% -o %fileout% -v -s compound -d rename - - echo.Test copying empty, 'full' ^& 'nested' groups - call :tooltest -i %testfile% -o %fileout% -v -s grp_empty -d grp_empty - call :tooltest -i %testfile% -o %fileout% -v -s grp_dsets -d grp_dsets - call :tooltest -i %testfile% -o %fileout% -v -s grp_nested -d grp_nested - - echo.Test copying dataset within group in source file to group in destination - call :tooltest -i %testfile% -o %fileout% -v -s /grp_dsets/simple -d /grp_dsets/simple_group - - echo.Test copying ^& renaming group - call :tooltest -i %testfile% -o %fileout% -v -s grp_dsets -d grp_rename - - echo.Test copying 'full' group hierarchy into group in destination file - call :tooltest -i %testfile% -o %fileout% -v -s grp_dsets -d /grp_rename/grp_dsets - - echo.Test copying objects into group hier. that doesn't exist yet in destination file - call :tooltest -i %testfile% -o %fileout% -vp -s simple -d /A/B1/simple - call :tooltest -i %testfile% -o %fileout% -vp -s simple -d /A/B2/simple2 - call :tooltest -i %testfile% -o %fileout% -vp -s /grp_dsets/simple -d /C/D/simple - call :tooltest -i %testfile% -o %fileout% -vp -s /grp_dsets -d /E/F/grp_dsets - call :tooltest -i %testfile% -o %fileout% -vp -s /grp_nested -d /G/H/grp_nested - - rem Verify that the file created above is correct - call :h5lstest %fileout% - - rem Remove output file created, if the "no cleanup" environment variable is - rem not defined - if not defined HDF5_NOCLEANUP ( - del /f %fileout% - ) - - exit /b - - -rem Copy references in various way. -rem adding to the destination file each time compare the result -rem -rem Assumed arguments: -rem -:copyreferences - - set testfile=%indir%\%srcfile2% - set fileout=%outdir%\%srcfile2:.h5=.out.h5% - - rem Remove any output file left over from previous test run - del /f %fileout% 2> nul - - echo.Test copying object and region references - rem echo.TOOLTEST -f ref -i $TESTFILE -o $FILEOUT -v -s / -d /COPY - call :tooltest -f ref -i %testfile% -o %fileout% -v -s / -d /COPY - - rem Verify that the file created above is correct - call :h5lstest %fileout% - - rem Remove output file created, if the "no cleanup" environment variable is - rem not defined - if not defined HDF5_NOCLEANUP ( - del /f %fileout% - ) - - exit /b - -rem Copy external links. -rem adding to the destination file each time compare the result -rem -rem Assumed arguments: -rem -:copy_ext_links - - set testfile=%indir%\%hdf_ext_src_file% - set fileout=%outdir%\%hdf_ext_src_file:.h5=.out.h5% - - rem Remove any output file left over from previous test run - del /f %fileout% 2> nul - - echo.Test copying external link directly without -f ext - call :tooltest -v -i %testfile% -o %fileout% -s /group_ext/extlink_dset -d /copy1_dset - - echo.Test copying external link directly with -f ext - call :tooltest -f ext -i %testfile% -o %fileout% -v -s /group_ext/extlink_dset -d /copy2_dset - - echo.Test copying dangling external link (no obj) directly without -f ext - call :tooltest -v -i %testfile% -o %fileout% -s /group_ext/extlink_notyet1 -d /copy_dangle1_1 - - echo.Test copying dangling external link (no obj) directly with -f ext - call :tooltest -f ext -i %testfile% -o %fileout% -v -s /group_ext/extlink_notyet1 -d /copy_dangle1_2 - - echo.Test copying dangling external link (no file) directly without -f ext - call :tooltest -v -i %testfile% -o %fileout% -s /group_ext/extlink_notyet2 -d /copy_dangle2_1 - - echo.Test copying dangling external link (no file) directly with -f ext - call :tooltest -f ext -i %testfile% -o %fileout% -v -s /group_ext/extlink_notyet2 -d /copy_dangle2_2 - - echo.Test copying a group contains external links without -f ext - call :tooltest -v -i %testfile% -o %fileout% -s /group_ext -d /copy1_group - - echo.Test copying a group contains external links with -f ext - call :tooltest -f ext -i %testfile% -o %fileout% -v -f ext -s /group_ext -d /copy2_group - - rem Verify that the file created above is correct - call :h5lstest %fileout% - - rem Remove output file created, if the "no cleanup" environment variable is - rem not defined - if not defined HDF5_NOCLEANUP ( - del /f %fileout% - ) - - exit /b - -rem ############################################################################## -rem ### T H E T E S T S ### -rem ############################################################################## - -:main - call :copyobjects - call :copyreferences - call :copy_ext_links - - if %nerrors% equ 0 ( - echo.All h5copy tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5debug/h5debug.vcproj b/windows/tools/h5debug/h5debug.vcproj deleted file mode 100644 index 82143a9..0000000 --- a/windows/tools/h5debug/h5debug.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5debugdll/h5debugdll.vcproj b/windows/tools/h5debugdll/h5debugdll.vcproj deleted file mode 100644 index 4c9131e..0000000 --- a/windows/tools/h5debugdll/h5debugdll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5diff/h5diff.vcproj b/windows/tools/h5diff/h5diff.vcproj deleted file mode 100644 index 5e8de50..0000000 --- a/windows/tools/h5diff/h5diff.vcproj +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5diff/testh5diff.bat b/windows/tools/h5diff/testh5diff.bat deleted file mode 100644 index 491332f..0000000 --- a/windows/tools/h5diff/testh5diff.bat +++ /dev/null @@ -1,980 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5diff tool -rem -rem Created: Scott Wegner, 8/22/07 -rem Modified: Allen Byrne, 2/23/10 -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem ############################################################################ -rem test file names -rem ############################################################################ - -set indir=%CD%\testfiles - -set srcfile1=h5diff_basic1.h5 -set srcfile2=h5diff_basic2.h5 -set srcfile3=h5diff_types.h5 -set srcfile4=h5diff_dtypes.h5 -set srcfile5=h5diff_attr1.h5 -set srcfile6=h5diff_attr2.h5 -set srcfile7=h5diff_dset1.h5 -set srcfile8=h5diff_dset2.h5 -set srcfile9=h5diff_hyper1.h5 -set srcfile10=h5diff_hyper2.h5 -set srcfile11=h5diff_empty.h5 -set srcfile12=h5diff_links.h5 -set srcfile13=h5diff_softlinks.h5 -set srcfile14=h5diff_linked_softlink.h5 -set srcfile15=h5diff_extlink_src.h5 -set srcfile16=h5diff_extlink_trg.h5 -set srcfile17=h5diff_ext2softlink_src.h5 -set srcfile18=h5diff_ext2softlink_trg.h5 -set srclnkfile1=h5diff_danglelinks1.h5 -set srclnkfile2=h5diff_danglelinks2.h5 -set src_grp_recurse1=h5diff_grp_recurse1.h5 -set src_grp_recurse2=h5diff_grp_recurse2.h5 -set src_grp_recurse1_ext=h5diff_grp_recurse_ext1.h5 -set src_grp_recurse2_ext1=h5diff_grp_recurse_ext2-1.h5 -set src_grp_recurse2_ext2=h5diff_grp_recurse_ext2-2.h5 -set src_grp_recurse2_ext3=h5diff_grp_recurse_ext2-3.h5 -set srcexclude1_1=h5diff_exclude1-1.h5 -set srcexclude1_2=h5diff_exclude1-2.h5 -set srcexclude2_1=h5diff_exclude2-1.h5 -set srcexclude2_2=h5diff_exclude2-2.h5 -set src_comp_vl_strs=h5diff_comp_vl_strs.h5 -set src_COMPS_ARRAY_VLEN1=compounds_array_vlen1.h5 -set src_COMPS_ARRAY_VLEN2=compounds_array_vlen2.h5 -set src_ATTR_VERBOSE_LEVEL_FILE1=h5diff_attr_v_level1.h5 -set src_ATTR_VERBOSE_LEVEL_FILE2=h5diff_attr_v_level2.h5 - -set file1=%indir%\h5diff_basic1.h5 -set file2=%indir%\h5diff_basic2.h5 -set file3=%indir%\h5diff_types.h5 -set file4=%indir%\h5diff_dtypes.h5 -set file5=%indir%\h5diff_attr1.h5 -set file6=%indir%\h5diff_attr2.h5 -set file7=%indir%\h5diff_dset1.h5 -set file8=%indir%\h5diff_dset2.h5 -set file9=%indir%\h5diff_hyper1.h5 -set file10=%indir%\h5diff_hyper2.h5 -set file11=%indir%\h5diff_empty.h5 -set file12=%indir%\h5diff_links.h5 -set file13=%indir%\h5diff_softlinks.h5 -set file14=%indir%\h5diff_linked_softlink.h5 -set file15=%indir%\h5diff_extlink_src.h5 -set file16=%indir%\h5diff_extlink_trg.h5 -set file17=%indir%\h5diff_ext2softlink_src.h5 -set file18=%indir%\h5diff_ext2softlink_trg.h5 -set lnkfile1=%indir%\h5diff_danglelinks1.h5 -set lnkfile2=%indir%\h5diff_danglelinks2.h5 -set grp_recurse1=%indir%\h5diff_grp_recurse1.h5 -set grp_recurse2=%indir%\h5diff_grp_recurse2.h5 -set grp_recurse1_ext=%indir%\h5diff_grp_recurse_ext1.h5 -set grp_recurse2_ext1=%indir%\h5diff_grp_recurse_ext2-1.h5 -set grp_recurse2_ext2=%indir%\h5diff_grp_recurse_ext2-2.h5 -set grp_recurse2_ext3=%indir%\h5diff_grp_recurse_ext2-3.h5 -set exclude1_1=%indir%\h5diff_exclude1-1.h5 -set exclude1_2=%indir%\h5diff_exclude1-2.h5 -set exclude2_1=%indir%\h5diff_exclude2-1.h5 -set exclude2_2=%indir%\h5diff_exclude2-2.h5 -set comp_vl_strs=%indir%\h5diff_comp_vl_strs.h5 -set COMPS_ARRAY_VLEN1=%indir%\compounds_array_vlen1.h5 -set COMPS_ARRAY_VLEN2=%indir%\compounds_array_vlen2.h5 -set ATTR_VERBOSE_LEVEL_FILE1=%indir%\h5diff_attr_v_level1.h5 -set ATTR_VERBOSE_LEVEL_FILE2=%indir%\h5diff_attr_v_level2.h5 - - -rem The tool name -set h5diff=h5diff%2 -rem The path of the tool binary -set h5diff_bin=%CD%\..\%h5diff%\%1\%h5diff% - -set EXIT_SUCCESS=0 -set EXIT_FAILURE=1 - -set /a nerrors=0 -set verbose=yes -rem default to run h5diff tests -set pmode= -rem following not needed for windows see #10 ADB 1/22/2009 -rem mydomainname=`domainname 2>/dev/null` - -if not exist .\testfiles mkdir .\testfiles - -rem Parse options -rem On Windows, we don't parse, because we only want to worry about -rem debug/release and dll --SJW 9/5/07 - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem On Windows, simply set up the test_msg variable, so it can be printed later -rem with the :results function. This is because Windows doesn't support -rem printing without a linefeed. --SJW 6/20/08 -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - set test_msg=!test_msg! %%~nxa - ) - set test_msg=%test_msg% - set test_msg=%test_msg:~0,69% - - exit /b - - -rem Print the testing results. Simply echo the contents of test_msg (set up -rem above), along with the passed parameter, generall PASSED, FAILED, or -SKIP- -:results - echo.%test_msg% %* - - exit /b - - - -rem Function STDOUT_FILTER isn't technically needed on Windows, because this -rem script will never run on platforms that require it. However, include empty -rem interface for consistency. --SJW 8/22/07 -:stdout_filter - exit /b - - -rem Function STDERR_FILTER isn't technically needed on Windows, because this -rem script will never run on platforms that require it. However, include empty -rem interface for consistency. --SJW 8/22/07 -:stderr_filter - exit /b - - - -rem Run a test and print PASS or *FAIL*. If a test fails then increment -rem the `nerrors' global variable and (if verbose is set) display the -rem difference between the actual output and the expected output. The -rem expected output is given as the first argument to this function and -rem the actual output file is calculated by replacing the `.ddl' with -rem `.out'. The actual output is not removed if HDF5_NOCLEANUP has a -rem non-zero value. -rem -:tooltest - set expect=%CD%\testfiles\%1 - set actual=%CD%\testfiles\%~n1.out - set actual_err=%CD%\testfiles\~n1.err - set actual_sav=%actual%-sav - set actual_err_sav=%actual_err%-sav - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/22/07 - set params= - for /f "tokens=2*" %%a in ("%*") do ( - if "%%b"=="" ( - set params=%%a - ) else ( - set params=%%a %%b - ) - ) - rem Parallel mode not actually supported, but included for consistency. - if defined pmode ( - rem do nothing - ) - - rem Run test. - ( - rem echo.############################# - rem rem Remove quotes here, because Linux 'echo' command strips them - rem echo.Expected output for 'h5diff %params:"=%' - rem echo.############################# - pushd testfiles - %h5diff_bin% %params% - popd - ) > %actual% 2> %actual_err% - set EXIT_CODE=!errorlevel! - rem save actual and actual_err in case they are needed later. - copy /y %actual% %actual_sav% > nul - call :stdout_filter %actual% - copy /y %actual_err% %actual_err_sav% > nul - call :stderr_filter %actual_err% - type %actual_err% >> %actual% - echo EXIT CODE: !EXIT_CODE! >> %actual% - - if not exist %expect% ( - rem Create the expect file if it doesn't yet exist. - call :results CREATED - copy /y %actual% %expect% > nul - ) else ( - fc /w %expect% %actual% > nul - if !errorlevel! equ 0 ( - call :results PASSED - ) else ( - call :results *FAILED* - echo. Expected result ^(%expect%^) differs from actual result ^(%actual%^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc /w %actual% %expect% - ) - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f %actual% %actual_err% %actual_sav% %actual_err_sav% - ) - - exit /b - - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %h5diff% %* - - exit /b - - -:main -rem ############################################################################ -rem The tests -rem To avoid the printing of the complete full path of the test file, that hides -rem all the other parameters for long paths, the printing of the command line -rem is done first in -rem TESTING with the name only of the test file $TOOL, not its full path $TESTFILE -rem ############################################################################ - -rem ############################################################################ -rem # Common usage -rem ############################################################################ - - - rem 1.0 - call :testing %h5diff% -h - call :tooltest h5diff_10.txt -h - - rem 1.1 normal mode - call :testing %h5diff% %srcfile1% %srcfile2% - call :tooltest h5diff_11.txt %file1% %file2% - - rem 1.2 normal mode with objects - call :testing %h5diff% %srcfile1% %srcfile2% g1/dset1 g1/dset2 - call :tooltest h5diff_12.txt %file1% %file2% g1/dset1 g1/dset2 - - rem 1.3 report mode - call :testing %h5diff% -r %srcfile1% %srcfile2% - call :tooltest h5diff_13.txt -r %file1% %file2% - - rem 1.4 report mode with objects - call :testing %h5diff% -r %srcfile1% %srcfile2% g1/dset1 g1/dset2 - call :tooltest h5diff_14.txt -r %file1% %file2% g1/dset1 g1/dset2 - - rem 1.5 with -d - call :testing %h5diff% --report --delta=5 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_15.txt --report --delta=5 %file1% %file2% g1/dset3 g1/dset4 - - rem 1.6.1 with -p (int) - call :testing %h5diff% -v -p 0.02 %srcfile1% %srcfile1% g1/dset5 g1/dset6 - call :tooltest h5diff_16_1.txt -v -p 0.02 %file1% %file1% g1/dset5 g1/dset6 - - rem 1.6.2 with -p (unsigned long_long) - call :testing %h5diff% --verbose --relative=0.02 %srcfile1% %srcfile1% g1/dset7 g1/dset8 - call :tooltest h5diff_16_2.txt --verbose --relative=0.02 %file1% %file1% g1/dset7 g1/dset8 - - rem 1.6.3 with -p (double) - call :testing %h5diff% -v -p 0.02 %srcfile1% %srcfile1% g1/dset9 g1/dset10 - call :tooltest h5diff_16_3.txt -v -p 0.02 %file1% %file1% g1/dset9 g1/dset10 - - rem 1.7 verbose mode - call :testing %h5diff% -v %srcfile1% %srcfile2% - call :tooltest h5diff_17.txt -v %file1% %file2% - - rem 1.71 test 32-bit INFINITY - call :testing %h5diff% -v %srcfile1% %srcfile1% /g1/fp19 /g1/fp19_COPY - call :tooltest h5diff_171.txt -v %file1% %file1% /g1/fp19 /g1/fp19_COPY - - rem 1.72 test 64-bit INFINITY - call :testing %h5diff% -v %srcfile1% %srcfile1% /g1/fp20 /g1/fp20_COPY - call :tooltest h5diff_172.txt -v %file1% %file1% /g1/fp20 /g1/fp20_COPY - - rem 1.8 quiet mode - call :testing %h5diff% -q %srcfile1% %srcfile2% - call :tooltest h5diff_18.txt -q %file1% %file2% - - rem ######################################################################## - rem # not comparable types - rem ######################################################################## - - rem 2.0 - call :testing %h5diff% -v %srcfile3% %srcfile3% dset g1 - call :tooltest h5diff_20.txt -v %file3% %file3% dset g1 - - rem 2.1 - call :testing %h5diff% -v %srcfile3% %srcfile3% dset l1 - call :tooltest h5diff_21.txt -v %file3% %file3% dset l1 - - rem 2.2 - call :testing %h5diff% -v %srcfile3% %srcfile3% dset t1 - call :tooltest h5diff_22.txt -v %file3% %file3% dset t1 - - rem ####################################################################### - rem # compare groups, types, links (no differences and differences) - rem ####################################################################### - - rem 2.3 - call :testing %h5diff% -v %srcfile3% %srcfile3% g1 g1 - call :tooltest h5diff_23.txt -v %file3% %file3% g1 g1 - - rem 2.4 - call :testing %h5diff% -v %srcfile3% %srcfile3% t1 t1 - call :tooltest h5diff_24.txt -v %file3% %file3% t1 t1 - - rem 2.5 - call :testing %h5diff% -v %srcfile3% %srcfile3% l1 l1 - call :tooltest h5diff_25.txt -v %file3% %file3% l1 l1 - - rem 2.6 - call :testing %h5diff% -v %srcfile3% %srcfile3% g1 g2 - call :tooltest h5diff_26.txt -v %file3% %file3% g1 g2 - - rem 2.7 - call :testing %h5diff% -v %srcfile3% %srcfile3% t1 t2 - call :tooltest h5diff_27.txt -v %file3% %file3% t1 t2 - - rem 2.8 - call :testing %h5diff% -v %srcfile3% %srcfile3% l1 l2 - call :tooltest h5diff_28.txt -v %file3% %file3% l1 l2 - - - - rem ######################################################################## - rem # Dataset datatypes - rem ######################################################################## - - rem 5.0 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset0a dset0b - call :tooltest h5diff_50.txt -v %file4% %file4% dset0a dset0b - - rem 5.1 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset1a dset1b - call :tooltest h5diff_51.txt -v %file4% %file4% dset1a dset1b - - rem 5.2 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset2a dset2b - call :tooltest h5diff_52.txt -v %file4% %file4% dset2a dset2b - - rem 5.3 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset3a dset4b - call :tooltest h5diff_53.txt -v %file4% %file4% dset3a dset4b - - rem 5.4 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset4a dset4b - call :tooltest h5diff_54.txt -v %file4% %file4% dset4a dset4b - - rem 5.5 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset5a dset5b - call :tooltest h5diff_55.txt -v %file4% %file4% dset5a dset5b - - rem 5.6 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset6a dset6b - call :tooltest h5diff_56.txt -v %file4% %file4% dset6a dset6b - - rem 5.7 - call :testing %h5diff% -v %srcfile4% %srcfile4% dset7a dset7b - call :tooltest h5diff_57.txt -v %file4% %file4% dset7a dset7b - - rem 5.8 (region reference) - call :testing %h5diff% -v %srcfile7% %srcfile8% refreg - call :tooltest h5diff_58.txt -v %file7% %file8% refreg - - rem ######################################################################## - rem # Error messages - rem ######################################################################## - - - rem 6.0: Check if the command line number of arguments is less than 3 - call :testing %h5diff% %srcfile1% - call :tooltest h5diff_600.txt %file1% - - rem 6.1: Check if non-exist object name is specified - call :testing %h5diff% %srcfile1% %srcfile1% nono_obj - rem SKIP this test as on Wondows legacy specific - rem call :tooltest h5diff_601.txt %file1% %file1% nono_obj - call :results -SKIP- - - - rem ######################################################################## - rem # -d - rem ######################################################################## - - - rem 6.3: negative value - call :testing %h5diff% -d -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_603.txt -d -4 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.4: zero - call :testing %h5diff% -d 0 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_604.txt -d 0 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.5: non number - call :testing %h5diff% -d u %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_605.txt -d u %file1% %file2% g1/dset3 g1/dset4 - - rem 6.6: hexadecimal - call :testing %h5diff% -d 0x1 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_606.txt -d 0x1 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.7: string - call :testing %h5diff% -d "1" %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_607.txt -d "1" %file1% %file2% g1/dset3 g1/dset4 - - rem 6.8: repeated option - call :testing %h5diff% --use-system-epsilon %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_608.txt --use-system-epsilon %file1% %file2% g1/dset3 g1/dset4 - - rem 6.9: number larger than biggest difference - call :testing %h5diff% -d 200 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_609.txt -d 200 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.10: number smaller than smallest difference - call :testing %h5diff% -d 1 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_610.txt -d 1 %file1% %file2% g1/dset3 g1/dset4 - - - rem ######################################################################## - rem # -p - rem ######################################################################## - - - - rem 6.12: negative value - call :testing %h5diff% -p -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_612.txt -p -4 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.13: zero - call :testing %h5diff% -p 0 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_613.txt -p 0 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.14: non number - call :testing %h5diff% -p u %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_614.txt -p u %file1% %file2% g1/dset3 g1/dset4 - - rem 6.15: hexadecimal - call :testing %h5diff% -p 0x1 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_615.txt -p 0x1 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.16: string - call :testing %h5diff% -p "0.21" %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_616.txt -p "0.21" %file1% %file2% g1/dset3 g1/dset4 - - rem 6.17: repeated option - call :testing %h5diff% -p 0.21 -p 0.22 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_617.txt -p 0.21 -p 0.22 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.18: number larger than biggest difference - call :testing %h5diff% -p 2 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_618.txt -p 2 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.19: number smaller than smallest difference - call :testing %h5diff% -p 0.005 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_619.txt -p 0.005 %file1% %file2% g1/dset3 g1/dset4 - - - rem ######################################################################## - rem # -n - rem ######################################################################## - - rem 6.21: negative value - call :testing %h5diff% -n -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_621.txt -n -4 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.22: zero - call :testing %h5diff% -n 0 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_622.txt -n 0 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.23: non number - call :testing %h5diff% -n u %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_623.txt -n u %file1% %file2% g1/dset3 g1/dset4 - - rem 6.24: hexadecimal - call :testing %h5diff% -n 0x1 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_624.txt -n 0x1 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.25: string - call :testing %h5diff% -n "2" %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_625.txt -n "2" %file1% %file2% g1/dset3 g1/dset4 - - rem 6.26: repeated option - call :testing %h5diff% -n 2 -n 3 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_626.txt -n 2 -n 3 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.27: number larger than biggest difference - call :testing %h5diff% --count=200 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_627.txt --count=200 %file1% %file2% g1/dset3 g1/dset4 - - rem 6.28: number smaller than smallest difference - call :testing %h5diff% -n 1 %srcfile1% %srcfile2% g1/dset3 g1/dset4 - call :tooltest h5diff_628.txt -n 1 %file1% %file2% g1/dset3 g1/dset4 - - rem This is disabled on *nix platforms - rem 6.29 non valid files - call :testing %h5diff% file1.h6 file2.h6 - call :tooltest h5diff_629.txt file1.h6 file2.h6 - - rem ###################################################################### - rem # NaN - rem ###################################################################### - rem 6.30: test (NaN == NaN) must be true based on our documentation -- XCAO - call :testing %h5diff% -v -d "0.0001" %srcfile1% %srcfile1% g1/fp18 g1/fp18_COPY - call :tooltest h5diff_630.txt -v -d "0.0001" %file1% %file1% g1/fp18 g1/fp18_COPY - call :testing %h5diff% -v --use-system-epsilon %srcfile1% %srcfile1% g1/fp18 g1/fp18_COPY - call :tooltest h5diff_631.txt -v --use-system-epsilon %file1% %file1% g1/fp18 g1/fp18_COPY - - - rem ######################################################################## - rem 7. attributes - rem ######################################################################## - call :testing %h5diff% -v %srcfile5% %srcfile6% - call :tooltest h5diff_70.txt -v %file5% %file6% - - rem ################################################## - rem attrs with verbose option level - rem ################################################## - call :testing %h5diff% -v1 %srcfile5% %srcfile6% - call :tooltest h5diff_700.txt -v1 %file5% %file6% - - call :testing %h5diff% -v2 %srcfile5% %srcfile6% - call :tooltest h5diff_701.txt -v2 %file5% %file6% - - call :testing %h5diff% --verbose=1 %srcfile5% %srcfile6% - call :tooltest h5diff_702.txt --verbose=1 %file5% %file6% - - call :testing %h5diff% --verbose=2 %srcfile5% %srcfile6% - call :tooltest h5diff_703.txt --verbose=2 %file5% %file6% - - rem same attr number , all same attr name - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g - call :tooltest h5diff_704.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g - - rem same attr number , some same attr name - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /dset - call :tooltest h5diff_705.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /dset - - rem same attr number , all different attr name - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /ntype - call :tooltest h5diff_706.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /ntype - - rem different attr number , same attr name (intersected) - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g2 - call :tooltest h5diff_707.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g2 - - rem different attr number , all different attr name - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g3 - call :tooltest h5diff_708.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g3 - - rem when no attributes exist in both objects - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% /g4 - call :tooltest h5diff_709.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% /g4 - - rem file vs file - call :testing %h5diff% -v2 %src_ATTR_VERBOSE_LEVEL_FILE1% %src_ATTR_VERBOSE_LEVEL_FILE2% - call :tooltest h5diff_710.txt -v2 %ATTR_VERBOSE_LEVEL_FILE1% %ATTR_VERBOSE_LEVEL_FILE2% - - - rem ####################################################################### - rem 8. all dataset datatypes - rem ####################################################################### - call :testing %h5diff% -v %srcfile7% %srcfile8% - call :tooltest h5diff_80.txt -v %file7% %file8% - - rem 9. compare a file with itself - call :testing %h5diff% -v %srcfile2% %srcfile2% - call :tooltest h5diff_90.txt -v %file2% %file2% - - rem 10. read by hyperslab, print indexes - rem ####################################################################### - rem Not skipped on windows as this has not been a problem - ADB 1/22/2009 - rem if test -n "$pmode" -a "$mydomainname" = hdfgroup.uiuc.edu; then - rem # skip this test which sometimes hangs in some THG machines - rem SKIP -v $SRCFILE9 $SRCFILE10 - rem else - rem ####################################################################### - call :testing %h5diff% -v %srcfile9% %srcfile10% - call :tooltest h5diff_100.txt -v %file9% %file10% - rem fi - - rem 11. floating point comparison - rem Not tested on Windows due to difference in formatting of scientific - rem notation (101, 102) --SJW 8/23/07 - call :testing %h5diff% -v %srcfile1% %srcfile1% g1/d1 g1/d2 - rem call :tooltest h5diff_101.txt -v %file1% %file1% g1/d1 g1/d2 - call :results -SKIP- - - call :testing %h5diff% -v %srcfile1% %srcfile1% g1/fp1 g1/fp2 - rem call :tooltest h5diff_102.txt -v %file1% %file1% g1/fp1 g1/fp2 - call :results -SKIP- - - rem Not tested on Windows due to difference in formatting of scientific - rem notation with other OS. printf("%g") (103, 104) - call :testing %h5diff% -v --use-system-epsilon %srcfile1% %srcfile1% g1/d1 g1/d2 - rem call :tooltest h5diff_103.txt -v --use-system-epsilon %file1% %file1% g1/d1 g1/d2 - call :results -SKIP- - - call :testing %h5diff% -v --use-system-epsilon %srcfile1% %srcfile1% g1/fp1 g1/fp2 - rem call :tooltest h5diff_102.txt -v --use-system-epsilon %file1% %file1% g1/fp1 g1/fp2 - call :results -SKIP- - - rem New option added #1368(E1) - ADB 2/5/2009 - rem not compable -c flag - call :testing %h5diff% %srcfile2% %srcfile2% g2/dset1 g2/dset2 - call :tooltest h5diff_200.txt %file2% %file2% g2/dset1 g2/dset2 - - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset1 g2/dset2 - call :tooltest h5diff_201.txt -c %file2% %file2% g2/dset1 g2/dset2 - - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset2 g2/dset3 - call :tooltest h5diff_202.txt -c %file2% %file2% g2/dset2 g2/dset3 - - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset3 g2/dset4 - call :tooltest h5diff_203.txt -c %file2% %file2% g2/dset3 g2/dset4 - - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset4 g2/dset5 - call :tooltest h5diff_204.txt -c %file2% %file2% g2/dset4 g2/dset5 - - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset5 g2/dset6 - call :tooltest h5diff_205.txt -c %file2% %file2% g2/dset5 g2/dset6 - - rem New option added - ADB 2/11/2009 - rem # not comparable in compound - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset7 g2/dset8 - call :tooltest h5diff_206.txt -c %file2% %file2% g2/dset7 g2/dset8 - - call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset8 g2/dset9 - call :tooltest h5diff_207.txt -c %file2% %file2% g2/dset8 g2/dset9 - - rem ####################################################################### - rem # Links compare without --follow-symlinks nor --no-dangling-links - rem ####################################################################### - rem test for bug1749 - call :testing %h5diff% -v %srcfile12% %srcfile12% /link_g1 /link_g2 - call :tooltest h5diff_300.txt -v %file12% %file12% /link_g1 /link_g2 - - rem ####################################################################### - rem # Links compare with --follow-symlinks Only - rem ####################################################################### - rem soft links file to file - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13% - call :tooltest h5diff_400.txt --follow-symlinks -v %file13% %file13% - - rem softlink vs dset" - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13% /softlink_dset1_1 /target_dset2 - call :tooltest h5diff_401.txt --follow-symlinks -v %file13% %file13% /softlink_dset1_1 /target_dset2 - - rem dset vs softlink" - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13% /target_dset2 /softlink_dset1_1 - call :tooltest h5diff_402.txt --follow-symlinks -v %file13% %file13% /target_dset2 /softlink_dset1_1 - - rem softlink vs softlink" - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13% /softlink_dset1_1 /softlink_dset2 - call :tooltest h5diff_403.txt --follow-symlinks -v %file13% %file13% /softlink_dset1_1 /softlink_dset2 - - rem extlink vs extlink (FILE)" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile15% - call :tooltest h5diff_404.txt --follow-symlinks -v %file15% %file15% - - rem extlink vs dset" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile16% /ext_link_dset1 /target_group2/x_dset - call :tooltest h5diff_405.txt --follow-symlinks -v %file15% %file16% /ext_link_dset1 /target_group2/x_dset - - rem dset vs extlink" - call :testing %h5diff% --follow-symlinks -v %srcfile16% %srcfile15% /target_group2/x_dset /ext_link_dset1 - call :tooltest h5diff_406.txt --follow-symlinks -v %file16% %file15% /target_group2/x_dset /ext_link_dset1 - - rem extlink vs extlink" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile15% /ext_link_dset1 /ext_link_dset2 - call :tooltest h5diff_407.txt --follow-symlinks -v %file15% %file15% /ext_link_dset1 /ext_link_dset2 - - rem softlink vs extlink" - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile15% /softlink_dset1_1 /ext_link_dset2 - call :tooltest h5diff_408.txt --follow-symlinks -v %file13% %file15% /softlink_dset1_1 /ext_link_dset2 - - rem extlink vs softlink " - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile13% /ext_link_dset2 /softlink_dset1_1 - call :tooltest h5diff_409.txt --follow-symlinks -v %file15% %file13% /ext_link_dset2 /softlink_dset1_1 - - rem linked_softlink vs linked_softlink (FILE)" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% - call :tooltest h5diff_410.txt --follow-symlinks -v %file14% %file14% - - rem dset2 vs linked_softlink_dset1" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% /target_dset2 /softlink1_to_slink2 - call :tooltest h5diff_411.txt --follow-symlinks -v %file14% %file14% /target_dset2 /softlink1_to_slink2 - - rem rem linked_softlink_dset1 vs dset2" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% /softlink1_to_slink2 /target_dset2 - call :tooltest h5diff_412.txt --follow-symlinks -v %file14% %file14% /softlink1_to_slink2 /target_dset2 - - rem linked_softlink_to_dset1 vs linked_softlink_to_dset2" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% /softlink1_to_slink2 /softlink2_to_slink2 - call :tooltest h5diff_413.txt --follow-symlinks -v %file14% %file14% /softlink1_to_slink2 /softlink2_to_slink2 - - rem group vs linked_softlink_group1" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% /target_group /softlink3_to_slink2 - call :tooltest h5diff_414.txt --follow-symlinks -v %file14% %file14% /target_group /softlink3_to_slink2 - - rem linked_softlink_group1 vs group" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% /softlink3_to_slink2 /target_group - call :tooltest h5diff_415.txt --follow-symlinks -v %file14% %file14% /softlink3_to_slink2 /target_group - - rem linked_softlink_to_group1 vs linked_softlink_to_group2" - call :testing %h5diff% --follow-symlinks -v %srcfile14% %srcfile14% /softlink3_to_slink2 /softlink4_to_slink2 - call :tooltest h5diff_416.txt --follow-symlinks -v %file14% %file14% /softlink3_to_slink2 /softlink4_to_slink2 - - rem non-exist-softlink vs softlink" - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13% /softlink_noexist /softlink_dset2 - call :tooltest h5diff_417.txt --follow-symlinks -v %file13% %file13% /softlink_noexist /softlink_dset2 - - rem softlink vs non-exist-softlink" - call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13% /softlink_dset2 /softlink_noexist - call :tooltest h5diff_418.txt --follow-symlinks -v %file13% %file13% /softlink_dset2 /softlink_noexist - - rem non-exist-extlink_file vs extlink" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile15% /ext_link_noexist2 /ext_link_dset2 - call :tooltest h5diff_419.txt --follow-symlinks -v %file15% %file15% /ext_link_noexist2 /ext_link_dset2 - - rem exlink vs non-exist-extlink_file" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile15% /ext_link_dset2 /ext_link_noexist2 - call :tooltest h5diff_420.txt --follow-symlinks -v %file15% %file15% /ext_link_dset2 /ext_link_noexist2 - - rem extlink vs non-exist-extlink_obj" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile15% /ext_link_dset2 /ext_link_noexist1 - call :tooltest h5diff_421.txt --follow-symlinks -v %file15% %file15% /ext_link_dset2 /ext_link_noexist1 - - rem non-exist-extlink_obj vs extlink" - call :testing %h5diff% --follow-symlinks -v %srcfile15% %srcfile15% /ext_link_noexist1 /ext_link_dset2 - call :tooltest h5diff_422.txt --follow-symlinks -v %file15% %file15% /ext_link_noexist1 /ext_link_dset2 - - rem extlink_to_softlink_to_dset1 vs dset2" - call :testing %h5diff% --follow-symlinks -v %srcfile17% %srcfile18% /ext_link_to_slink1 /dset2 - call :tooltest h5diff_423.txt --follow-symlinks -v %file17% %file18% /ext_link_to_slink1 /dset2 - - rem dset2 vs extlink_to_softlink_to_dset1" - call :testing %h5diff% --follow-symlinks -v %srcfile18% %srcfile17% /dset2 /ext_link_to_slink1 - call :tooltest h5diff_424.txt --follow-symlinks -v %file18% %file17% /dset2 /ext_link_to_slink1 - - rem extlink_to_softlink_to_dset1 vs extlink_to_softlink_to_dset2" - call :testing %h5diff% --follow-symlinks -v %srcfile17% %srcfile17% /ext_link_to_slink1 /ext_link_to_slink2 - call :tooltest h5diff_425.txt --follow-symlinks -v %file17% %file17% /ext_link_to_slink1 /ext_link_to_slink2 - - - rem ####################################################################### - rem # Dangling links compare (--follow-symlinks and --no-dangling-links) - rem ####################################################################### - rem dangling links --follow-symlinks (FILE to FILE) - call :testing %h5diff% --follow-symlinks -v %srclnkfile1% %srclnkfile2% - call :tooltest h5diff_450.txt --follow-symlinks -v %lnkfile1% %lnkfile2% - - rem dangling links --follow-symlinks and --no-dangling-links (FILE to FILE) - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srclnkfile1% %srclnkfile2% - call :tooltest h5diff_451.txt --follow-symlinks -v --no-dangling-links %lnkfile1% %lnkfile2% - - rem try --no-dangling-links without --follow-symlinks options - call :testing %h5diff% --no-dangling-links %srcfile13% %srcfile13% - call :tooltest h5diff_452.txt --no-dangling-links %file13% %file13% - - rem dangling link found for soft links (FILE to FILE) - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile13% %srcfile13% - call :tooltest h5diff_453.txt --follow-symlinks -v --no-dangling-links %file13% %file13% - - rem dangling link found for soft links (obj to obj) - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile13% %srcfile13% /softlink_dset2 /softlink_noexist - call :tooltest h5diff_454.txt --follow-symlinks -v --no-dangling-links %file13% %file13% /softlink_dset2 /softlink_noexist - - rem dangling link found for soft links (obj to obj) Both dangle links - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile13% %srcfile13% /softlink_noexist /softlink_noexist - call :tooltest h5diff_455.txt --follow-symlinks -v --no-dangling-links %file13% %file13% /softlink_noexist /softlink_noexist - - rem dangling link found for ext links (FILE to FILE) - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile15% %srcfile15% - call :tooltest h5diff_456.txt --follow-symlinks -v --no-dangling-links %file15% %file15% - - rem dangling link found for ext links (obj to obj). target file exist - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile15% %srcfile15% /ext_link_dset1 /ext_link_noexist1 - call :tooltest h5diff_457.txt --follow-symlinks -v --no-dangling-links %file15% %file15% /ext_link_dset1 /ext_link_noexist1 - - rem dangling link found for ext links (obj to obj). target file NOT exist - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile15% %srcfile15% /ext_link_dset1 /ext_link_noexist2 - call :tooltest h5diff_458.txt --follow-symlinks -v --no-dangling-links %file15% %file15% /ext_link_dset1 /ext_link_noexist2 - - rem dangling link found for ext links (obj to obj). Both dangle links - call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile15% %srcfile15% /ext_link_noexist1 /ext_link_noexist2 - call :tooltest h5diff_459.txt --follow-symlinks -v --no-dangling-links %file15% %file15% /ext_link_noexist1 /ext_link_noexist2 - - rem ######################################################################## - rem # test for group diff recursivly - rem ######################################################################## - rem root - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% / / - call :tooltest h5diff_500.txt -v %grp_recurse1% %grp_recurse2% / / - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% / / - call :tooltest h5diff_501.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% / / - - rem root vs group - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% / /grp1/grp2/grp3 - call :tooltest h5diff_502.txt -v %grp_recurse1% %grp_recurse2% / /grp1/grp2/grp3 - - rem group vs group (same name and structure) - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp1 /grp1 - call :tooltest h5diff_503.txt -v %grp_recurse1% %grp_recurse2% /grp1 /grp1 - - rem group vs group (different name and structure) - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp1/grp2 /grp1/grp2/grp3 - call :tooltest h5diff_504.txt -v %grp_recurse1% %grp_recurse2% /grp1/grp2 /grp1/grp2/grp3 - - rem groups vs soft-link - call :testing %h5diff% - call :tooltest h5diff_505.txt -v %grp_recurse1% %grp_recurse2% /grp1 /slink_grp1 - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /grp1/grp2 /slink_grp2 - call :tooltest h5diff_506.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /grp1/grp2 /slink_grp2 - - rem groups vs ext-link - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp1 /elink_grp1 - call :tooltest h5diff_507.txt -v %grp_recurse1% %grp_recurse2% /grp1 /elink_grp1 - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /grp1 /elink_grp1 - call :tooltest h5diff_508.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /grp1 /elink_grp1 - - rem soft-link vs ext-link - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /slink_grp1 /elink_grp1 - call :tooltest h5diff_509.txt -v %grp_recurse1% %grp_recurse2% /slink_grp1 /elink_grp1 - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /slink_grp1 /elink_grp1 - call :tooltest h5diff_510.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /slink_grp1 /elink_grp1 - - rem circled ext links - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp10 /grp11 - call :tooltest h5diff_511.txt -v %grp_recurse1% %grp_recurse2% /grp10 /grp11 - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /grp10 /grp11 - call :tooltest h5diff_512.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /grp10 /grp11 - - rem circled soft2ext-link vs soft2ext-link - call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /slink_grp10 /slink_grp11 - call :tooltest h5diff_513.txt -v %grp_recurse1% %grp_recurse2% /slink_grp10 /slink_grp11 - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /slink_grp10 /slink_grp11 - call :tooltest h5diff_514.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /slink_grp10 /slink_grp11 - - rem ###################################################################### - rem # Test for group recursive diff via multi-linked external links - rem # With follow-symlinks, file $GRP_RECURSE1_EXT and $GRP_RECURSE2_EXT1 - rem # should be same with the external links. - rem ###################################################################### - rem file vs file - call :testing %h5diff% -v %src_grp_recurse1_ext% %src_grp_recurse2_ext1% - call :tooltest h5diff_515.txt -v %grp_recurse1_ext% %grp_recurse2_ext1% - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1_ext% %src_grp_recurse2_ext1% - call :tooltest h5diff_516.txt -v --follow-symlinks %grp_recurse1_ext% %grp_recurse2_ext1% - - rem group vs group - call :testing %h5diff% -v %src_grp_recurse1_ext% %src_grp_recurse2_ext1% /g1 - call :tooltest h5diff_517.txt -v %grp_recurse1_ext% %grp_recurse2_ext1% /g1 - - call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1_ext% %src_grp_recurse2_ext1% /g1 - call :tooltest h5diff_518.txt -v --follow-symlinks %grp_recurse1_ext% %grp_recurse2_ext1% /g1 - - - rem ####################################################################### - rem # Exclude objects (--exclude-path) - rem ####################################################################### - rem #------------------------------------------------- - rem # Same structure, same names and different value. - - rem Exclude the object with different value. Expect return - same - call :testing %h5diff% -v --exclude-path /group1/dset3 %srcexclude1_1% %srcexclude1_2% - call :tooltest h5diff_480.txt -v --exclude-path /group1/dset3 %exclude1_1% %exclude1_2% - - rem Verify different by not excluding. Expect return - diff - call :testing %h5diff% -v %srcexclude1_1% %srcexclude1_2% - call :tooltest h5diff_481.txt -v %exclude1_1% %exclude1_2% - - rem #---------------------------------------- - rem # Different structure, different names. - - rem Exclude all the different objects. Expect return - same - call :testing %h5diff% -v --exclude-path "/group1" --exclude-path "/dset1" %srcexclude2_1% %srcexclude2_2% - call :tooltest h5diff_482.txt -v --exclude-path "/group1" --exclude-path "/dset1" %exclude2_1% %exclude2_2% - - rem Exclude only some different objects. Expect return - diff - call :testing %h5diff% -v --exclude-path "/group1" %srcexclude2_1% %srcexclude2_2% - call :tooltest h5diff_483.txt -v --exclude-path "/group1" %exclude2_1% %exclude2_2% - - rem Exclude from group compare - call :testing %h5diff% -v --exclude-path "/dset3" %srcexclude1_1% %srcexclude1_2% /group1 - call :tooltest h5diff_484.txt -v --exclude-path "/dset3" %exclude1_1% %exclude1_2% /group1 - - rem ####################################################################### - rem # diff various multiple vlen and fixed strings in a compound type dataset - rem ####################################################################### - call :testing %h5diff% -v %src_comp_vl_strs% %src_comp_vl_strs% /group /group_copy - call :tooltest h5diff_530.txt -v %comp_vl_strs% %comp_vl_strs% /group /group_copy - - rem # ##################################################################### - rem # # Test container types (array,vlen) with multiple nested compound types - rem # # Complex compound types in dataset and attribute - rem # ##################################################################### - call :testing %h5diff% -v %src_COMPS_ARRAY_VLEN1% %src_COMPS_ARRAY_VLEN2% - call :tooltest h5diff_540.txt -v %COMPS_ARRAY_VLEN1% %COMPS_ARRAY_VLEN2% - - rem ####################################################################### - rem # Test mutually exclusive options - rem ####################################################################### - - rem ------------------------------------------------------ - rem Test with -d , -p and --use-system-epsilon. - call :testing %h5diff% -v -d 5 -p 0.05 --use-system-epsilon %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_640.txt -v -d 5 -p 0.05 --use-system-epsilon %file1% %file2% /g1/dset3 /g1/dset4 - - call :testing %h5diff% -v -d 5 -p 0.05 %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_641.txt -v -d 5 -p 0.05 %file1% %file2% /g1/dset3 /g1/dset4 - - call :testing %h5diff% -v -p 0.05 -d 5 %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_642.txt -v -p 0.05 -d 5 %file1% %file2% /g1/dset3 /g1/dset4 - - call :testing %h5diff% -v -d 5 --use-system-epsilon %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_643.txt -v -d 5 --use-system-epsilon %file1% %file2% /g1/dset3 /g1/dset4 - - call :testing %h5diff% -v --use-system-epsilon -d 5 %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_644.txt -v --use-system-epsilon -d 5 %file1% %file2% /g1/dset3 /g1/dset4 - - call :testing %h5diff% -v -p 0.05 --use-system-epsilon %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_645.txt -v -p 0.05 --use-system-epsilon %file1% %file2% /g1/dset3 /g1/dset4 - - call :testing %h5diff% -v --use-system-epsilon -p 0.05 %srcfile1% %srcfile2% /g1/dset3 /g1/dset4 - call :tooltest h5diff_646.txt -v --use-system-epsilon -p 0.05 %file1% %file2% /g1/dset3 /g1/dset4 - - rem ####################################################################### - rem # END - rem ####################################################################### - - if %nerrors% equ 0 ( - echo.All %h5diff% tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5diffdll/h5diffdll.vcproj b/windows/tools/h5diffdll/h5diffdll.vcproj deleted file mode 100644 index bd153bd..0000000 --- a/windows/tools/h5diffdll/h5diffdll.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5dump/h5dump.vcproj b/windows/tools/h5dump/h5dump.vcproj deleted file mode 100644 index d3e6d71..0000000 --- a/windows/tools/h5dump/h5dump.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5dump/testh5dump.bat b/windows/tools/h5dump/testh5dump.bat deleted file mode 100644 index 307765c..0000000 --- a/windows/tools/h5dump/testh5dump.bat +++ /dev/null @@ -1,703 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5dump tool -rem -rem Created: Scott Wegner, 8/23/07 -rem Modified: Scott Wegner, 5/12/08 -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set h5pubconf=%CD%\..\..\src\h5pubconf.h - -rem Determine which filters are available -rem On Windows, the function :detect_filter sets these for us -call :detect_filter szip -call :detect_filter deflate -call :detect_filter shuffle -call :detect_filter fletcher32 -call :detect_filter nbit -call :detect_filter scaleoffset - -rem The tool name -set dumper=h5dump%2 -rem The path of the tool library -set dumper_bin=%CD%\..\%dumper%\%1\%dumper% -set testdir=%CD%\..\testfiles - -rem The h5diff tool name -set h5diff=..\h5diff%2\%1\h5diff%2 -rem The path of the h5diff tool binary -set h5diff_bin=%CD%\%h5diff% - -rem The h5import tool name -set h5import=..\h5import%2\%1\h5import%2 -rem The path of the h5import tool binary -set h5import_bin=%CD%\%h5import% - -set nerrors=0 -set verbose=yes - -set srcdir=%CD% - -if not exist %testdir% mkdir %testdir% - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing %dumper% - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT here with "%" for tests that use a percent - rem sign. --SJW 5/12/08 - set test_msg=!test_msg:PERCENT=%%! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. If a test fails then increment -rem the `nerrors' global variable and (if $verbose is set) display the -rem difference between the actual output and the expected output. The -rem expected output is given as the first argument to this function and -rem the actual output file is calculated by replacing the `.ddl' with -rem `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a -rem non-zero value. -rem -:tooltest - set expect=%CD%\..\testfiles\%1 - set actual=%CD%\..\testfiles\%~n1.out - set actual_err=%CD%\..\testfiles\%~n1.err - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/23/07 - set params=%* - rem If there is not 2nd parameter, that means we have no filename, which - rem implies that we are on the "tnofilename" test. Make sure we remove the - rem expected output from the params, and add a space. --SJW 8/27/07 - if "%2"=="" ( - set params= - ) else ( - set params=!params:* =! - ) - - rem Run test. - - ( - rem We need to replace PERCENT here with "%" for tests that use percents - rem Also remove quotes here, because Linux 'echo' command strips them. - rem --SJW 8/24/07 - set params_echo=!params:PERCENT=%%! - echo.############################# - echo.Expected output for 'h5dump !params_echo:"=!' - echo.############################# - pushd %CD%\..\testfiles - %dumper_bin% !params:PERCENT=%%! - popd - ) > %actual% 2> %actual_err% - type %actual_err% >> %actual% - - if not exist %expect% ( - rem Create the expect file if it doesn't yet exist. - call :testing CREATED %params% - copy /y %actual% %expect% > nul - ) else ( - fc /w %expect% %actual% > nul - if !errorlevel! equ 0 ( - call :testing PASSED %params% - ) else ( - call :testing *FAILED* %params% - echo. Expected results ^(*.ddl^) differs from actual results ^(*.out^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc /w %expect% %actual% - ) - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f %actual% %actual_err% - ) - - exit /b - - -rem same as TOOLTEST but does not print the header Expected output -rem use for the binary tests that expect a full path in -o -:tooltest1 - - set expect=%srcdir%\..\testfiles\%1 - set actual=%CD%\..\testfiles\%~n1.out - set actual_err=%CD%\..\testfiles\%~n1.err - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/23/07 - set params=%* - rem If there is not 2nd parameter, that means we have no filename, which - rem implies that we are on the "tnofilename" test. Make sure we remove the - rem expected output from the params, and add a space. --SJW 8/27/07 - if "%2"=="" ( - set params= - ) else ( - set params=!params:* =! - ) - - rem Run test. - ( - pushd %CD%\..\testfiles - %dumper_bin% !params:PERCENT=%%! - popd - ) > %actual% 2> %actual_err% - type %actual_err% >> %actual% - - if not exist %expect% ( - rem Create the expect file if it doesn't yet exist. - call :testing CREATED %params% - copy /y %actual% %expect% > nul - ) else ( - fc /w %expect% %actual% > nul - if !errorlevel! equ 0 ( - call :testing PASSED %params% - ) else ( - call :testing *FAILED* %params% - echo. Expected results ^(*.ddl^) differs from actual results ^(*.out^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc /w %expect% %actual% - ) - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f %actual% %actual_err% - ) - - exit /b - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %* - exit /b - - -rem Print a line-line message left justified in a field of 70 characters -rem -:print_h5diff - set test_msg=Running h5diff - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=%test_msg% - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Call the h5diff tool -rem -:difftest - ( - pushd %CD%\..\testfiles - %h5diff_bin% %* -q - popd - ) - if %errorlevel% neq 0 ( - call :print_h5diff *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :print_h5diff PASSED %* - ) - - exit /b - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Verifying". -rem -:print_h5import - set test_msg=Running h5import - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=%test_msg% - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Call the h5import tool -rem -:importtest - rem Remove the output hdf5 file if it exists - set hdf5_file=%CD%\..\testfiles\%5 - if exist %hdf5_file% ( - del /f %hdf5_file% - ) - - ( - pushd %CD%\..\testfiles - %h5import_bin% %* - popd - ) - if %errorlevel% neq 0 ( - call :print_h5import *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :print_h5import PASSED %* - ) - exit /b - - - -rem This is a Windows-specific function that detects if the filter passed -rem should be enabled for this test script. It searches H5pubconf.h for the -rem string "#define H5_HAVE_FILTER_%1" and sets the variable "use_filter_%1" -rem accordingly. On other platforms, this variable is set in the Makefile. -rem If we find a better way to test this in the future, we should use it. -rem --SJW 9/4/07 -:detect_filter - findstr /b /i /c:"#define H5_HAVE_FILTER_%1" %h5pubconf% > nul - if %errorlevel% equ 0 ( - set use_filter_%1=yes - ) else ( - set use_filter_%1=no - ) - - exit /b - - -rem ############################################################################ -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -rem ############################################################################ -:main - - rem test for signed/unsigned datasets - call :tooltest packedbits.ddl packedbits.h5 - - rem test for displaying groups - call :tooltest tgroup-1.ddl tgroup.h5 - rem test for displaying the selected groups - call :tooltest tgroup-2.ddl --group=/g2 --group / -g /y tgroup.h5 - - rem test for displaying simple space datasets - call :tooltest tdset-1.ddl tdset.h5 - rem test for displaying selected datasets - call :tooltest tdset-2.ddl -H -d dset1 -d /dset2 --dataset=dset3 tdset.h5 - - rem test for displaying attributes - call :tooltest tattr-1.ddl tattr.h5 - rem test for displaying the selected attributes of string type and scalar space - call :tooltest tattr-2.ddl -a /attr1 --attribute /attr4 --attribute=/attr5 tattr.h5 - rem test for header and error messages - call :tooltest tattr-3.ddl --header -a /attr2 --attribute=/attr tattr.h5 - rem test for displaying attributes in shared datatype (also in group and dataset) - call :tooltest tnamed_dtype_attr.ddl tnamed_dtype_attr.h5 - - rem test for displaying soft links and user-defined links - call :tooltest tslink-1.ddl tslink.h5 - call :tooltest tudlink-1.ddl tudlink.h5 - rem test for displaying the selected link - call :tooltest tslink-2.ddl -l slink2 tslink.h5 - call :tooltest tudlink-2.ddl -l udlink2 tudlink.h5 - - rem tests for hard links - call :tooltest thlink-1.ddl thlink.h5 - call :tooltest thlink-2.ddl -d /g1/dset2 --dataset /dset1 --dataset=/g1/g1.1/dset3 thlink.h5 - call :tooltest thlink-3.ddl -d /g1/g1.1/dset3 --dataset /g1/dset2 --dataset=/dset1 thlink.h5 - call :tooltest thlink-4.ddl -g /g1 thlink.h5 - call :tooltest thlink-5.ddl -d /dset1 -g /g2 -d /g1/dset2 thlink.h5 - - rem tests for compound data types - call :tooltest tcomp-1.ddl tcompound.h5 - rem test for named data types - call :tooltest tcomp-2.ddl -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5 - rem test for unamed type - call :tooltest tcomp-3.ddl -t /#6632 -g /group2 tcompound.h5 - rem test complicated compound datatype - call :tooltest tcomp-4.ddl tcompound_complex.h5 - - rem test for the nested compound type - call :tooltest tnestcomp-1.ddl tnestedcomp.h5 - - rem test for options - call :tooltest tall-1.ddl tall.h5 - call :tooltest tall-2.ddl --header -g /g1/g1.1 -a attr2 tall.h5 - call :tooltest tall-3.ddl -d /g2/dset2.1 -l /g1/g1.2/g1.2.1/slink tall.h5 - - rem test for loop detection - call :tooltest tloop-1.ddl tloop.h5 - - rem test for string - call :tooltest tstr-1.ddl tstr.h5 - call :tooltest tstr-2.ddl tstr2.h5 - - rem test for file created by Lib SAF team - call :tooltest tsaf.ddl tsaf.h5 - - rem test for file with variable length data - call :tooltest tvldtypes1.ddl tvldtypes1.h5 - call :tooltest tvldtypes2.ddl tvldtypes2.h5 - call :tooltest tvldtypes3.ddl tvldtypes3.h5 - call :tooltest tvldtypes4.ddl tvldtypes4.h5 - call :tooltest tvldtypes5.ddl tvldtypes5.h5 - - rem test for file with variable length string data - call :tooltest tvlstr.ddl tvlstr.h5 - - rem test for files with array data - call :tooltest tarray1.ddl tarray1.h5 - call :tooltest tarray1_big.ddl -R tarray1_big.h5 - call :tooltest tarray2.ddl tarray2.h5 - call :tooltest tarray3.ddl tarray3.h5 - call :tooltest tarray4.ddl tarray4.h5 - call :tooltest tarray5.ddl tarray5.h5 - call :tooltest tarray6.ddl tarray6.h5 - call :tooltest tarray7.ddl tarray7.h5 - call :tooltest tarray8.ddl tarray8.h5 - - rem test for files with empty data - call :tooltest tempty.ddl tempty.h5 - - rem test for files with groups that have comments - call :tooltest tgrp_comments.ddl tgrp_comments.h5 - - rem test the --filedriver flag - call :tooltest tsplit_file.ddl --filedriver=split tsplit_file - rem On Windows, we pass "PERCENT", and let other calls replace it with - rem the "%". We cannot pass "%" directly because Windows interprets it as - rem the name of the script. --SJW 8/24/07 - call :tooltest tfamily.ddl --filedriver=family tfamilyPERCENT05d.h5 - call :tooltest tmulti.ddl --filedriver=multi tmulti - - rem test for files with group names which reach > 1024 bytes in size - call :tooltest tlarge_objname.ddl -w157 tlarge_objname.h5 - - rem test '-A' to suppress data but print attr's - call :tooltest tall-2A.ddl -A tall.h5 - - rem test '-r' to print attributes in ASCII instead of decimal - call :tooltest tall-2B.ddl -A -r tall.h5 - - rem test Subsetting - call :tooltest tall-4s.ddl --dataset=/g1/g1.1/dset1.1.1 --start=1,1 --stride=2,3 --count=3,2 --block=1,1 tall.h5 - call :tooltest tall-5s.ddl -d "/g1/g1.1/dset1.1.2[0;2;10;]" tall.h5 - call :tooltest tdset-3s.ddl -d "/dset1[1,1;;;]" tdset.h5 - rem block - rem call :tooltest tdset2-1s.ddl -d "/dset1[;3,2;4,4;1,4]" tdset2.h5 - - rem test printing characters in ASCII instead of decimal - call :tooltest tchar1.ddl -r tchar.h5 - - rem test failure handling - rem Missing file name - call :tooltest tnofilename.ddl - - rem rev. 2004 - - rem tests for super block - call :tooltest tboot1.ddl -H -B -d dset tfcontents1.h5 - call :tooltest tboot2.ddl -B tfcontents2.h5 - - rem test -p with a non existing dataset - call :tooltest tperror.ddl -p -d bogus tfcontents1.h5 - - rem test for file contents - call :tooltest tcontents.ddl -n tfcontents1.h5 - - rem tests for storage layout - rem compact - call :tooltest tcompact.ddl -H -p -d compact tfilters.h5 - rem contiguous - call :tooltest tcontiguos.ddl -H -p -d contiguous tfilters.h5 - rem chunked - call :tooltest tchunked.ddl -H -p -d chunked tfilters.h5 - rem external - call :tooltest texternal.ddl -H -p -d external tfilters.h5 - - rem fill values - call :tooltest tfill.ddl -p tfvalues.h5 - - rem several datatype, with references , print path - call :tooltest treference.ddl tattr2.h5 - - rem escape/not escape non printable characters - call :tooltest tstringe.ddl -e tstr3.h5 - call :tooltest tstring.ddl tstr3.h5 - rem char data as ASCII with non escape - call :tooltest tstring2.ddl -r -d str4 tstr3.h5 - - rem array indices print/not print - call :tooltest tindicesyes.ddl taindices.h5 - call :tooltest tindicesno.ddl -y taindices.h5 - - rem ######### array indices with subsetting - rem 1D case - call :tooltest tindicessub1.ddl -d 1d -s 1 -S 10 -c 2 -k 3 taindices.h5 - - rem 2D case - call :tooltest tindicessub2.ddl -d 2d -s 1,2 -S 3,3 -c 3,2 -k 2,2 taindices.h5 - - rem 3D case - call :tooltest tindicessub3.ddl -d 3d -s 0,1,2 -S 1,3,3 -c 2,2,2 -k 1,2,2 taindices.h5 - - rem 4D case - call :tooltest tindicessub4.ddl -d 4d -s 0,0,1,2 -c 2,2,3,2 -S 1,1,3,3 -k 1,1,2,2 taindices.h5 - - - rem tests for filters - rem SZIP - set option=-H -p -d szip tfilters.h5 - if not "%use_filter_szip%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tszip.ddl %option% - ) - rem deflate - set option=-H -p -d deflate tfilters.h5 - if not "%use_filter_deflate%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tdeflate.ddl %option% - ) - rem shuffle - set option=-H -p -d shuffle tfilters.h5 - if not "%use_filter_shuffle%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tshuffle.ddl %option% - ) - rem fletcher32 - set option=-H -p -d fletcher32 tfilters.h5 - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tfletcher32.ddl %option% - ) - rem nbit - set option=-H -p -d nbit tfilters.h5 - if not "%use_filter_nbit%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tnbit.ddl %option% - ) - rem scaleoffset - set option=-H -p -d scaleoffset tfilters.h5 - if not "%use_filter_scaleoffset%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tscaleoffset.ddl %option% - ) - rem all - set option=-H -p -d all tfilters.h5 - rem Windows doesn't have "or" for compound conditional, so we must check - rem each one individually. --SJW 8/24/07 - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %option% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %option% - ) else if not "%use_filter_deflate%"=="yes" ( - call :skip %option% - ) else if not "%use_filter_shuffle%"=="yes" ( - call :skip %option% - ) else if not "%use_filter_nbit%"=="yes" ( - call :skip %option% - ) else if not "%use_filter_scaleoffset%"=="yes" ( - call :skip %option% - ) else ( - call :tooltest tallfilters.ddl %option% - ) - rem user defined - call :tooltest tuserfilter.ddl -H -p -d myfilter tfilters.h5 - - rem test for displaying objects with very long names - call :tooltest tlonglinks.ddl tlonglinks.h5 - - rem dimensions over 4GB, print boundary - call :tooltest tbigdims.ddl -d dset4gb -s 4294967284 -c 22 tbigdims.h5 - - rem hyperslab read - call :tooltest thyperslab.ddl thyperslab.h5 - - - rem - - rem test for displaying dataset and attribute of null space - call :tooltest tnullspace.ddl tnullspace.h5 - - rem test for long double (some systems do not have long double) - rem call :tooltest tldouble.ddl tldouble.h5 - - rem test for vms - call :tooltest tvms.ddl tvms.h5 - - rem test for binary output - rem Don't use %testdir% here, because we are already in the correct - rem directory, and using it only gets in the way of the output formatting. - rem --SJW 8/24/07 - call :tooltest1 tbin1.ddl -d integer -o out1.bin -b LE tbinary.h5 - - rem NATIVE default. the NATIVE test can be validated with h5import/h5diff - call :tooltest1 tbin1.ddl -d integer -o out1.bin -b MEMORY tbinary.h5 - call :importtest out1.bin -c out3.h5import -o out1.h5 - call :difftest tbinary.h5 out1.h5 /integer /integer - - call :tooltest1 tbin2.ddl -b BE -d float -o out2.bin tbinary.h5 - - rem the NATIVE test can be validated with h5import/h5diff - call :tooltest1 tbin3.ddl -d integer -o out3.bin -b NATIVE tbinary.h5 - call :importtest out3.bin -c out3.h5import -o out3.h5 - call :difftest tbinary.h5 out3.h5 /integer /integer - - call :tooltest1 tbin4.ddl -d double -b FILE -o out4.bin tbinary.h5 - - rem Clean up binary output files - if not defined hdf5_nocleanup ( - for /l %%a in (1,1,4) do del /f %testdir%\out%%a.bin - del /f %testdir%\out3.h5 - ) - - rem test for dataset region references - call :tooltest tdatareg.ddl tdatareg.h5 - call :tooltest tdataregR.ddl -R tdatareg.h5 - call :tooltest tattrreg.ddl tattrreg.h5 - call :tooltest tattrregR.ddl -R tattrreg.h5 - - rem tests for group creation order - rem "1" tracked, "2" name, root tracked - call :tooltest tordergr1.ddl --group=1 --sort_by=creation_order --sort_order=ascending tordergr.h5 - call :tooltest tordergr2.ddl --group=1 --sort_by=creation_order --sort_order=descending tordergr.h5 - call :tooltest tordergr3.ddl -g 2 -q name -z ascending tordergr.h5 - call :tooltest tordergr4.ddl -g 2 -q name -z descending tordergr.h5 - call :tooltest tordergr5.ddl -q creation_order tordergr.h5 - - rem tests for attribute order - call :tooltest torderattr1.ddl -H --sort_by=name --sort_order=ascending torderattr.h5 - call :tooltest torderattr2.ddl -H --sort_by=name --sort_order=descending torderattr.h5 - call :tooltest torderattr3.ddl -H --sort_by=creation_order --sort_order=ascending torderattr.h5 - call :tooltest torderattr4.ddl -H --sort_by=creation_order --sort_order=descending torderattr.h5 - - rem tests for floating point user defined printf format - rem Note: Make sure to use PERCENT rather than "%", because Windows needs - rem to handle it specially. --SJW 5/12/08 - call :tooltest tfpformat.ddl -m PERCENT.7f tfpformat.h5 - - rem tests for traversal of external links - call :tooltest textlinksrc.ddl textlinksrc.h5 - call :tooltest textlinkfar.ddl textlinkfar.h5 - - rem test for dangling external links - call :tooltest textlink.ddl textlink.h5 - - rem test for dataset packed bits - rem Set up xCMD to test or skip. - rem Limits: - rem Maximum number of packed bits is 8 (for now). - rem Maximum integer size is 64 (for now). - rem Maximun Offset is 63 (Maximum size - 1). - rem Maximum Offset+Length is 64 (Maximum size). - rem Tests: - rem Normal operation on both signed and unsigned int datasets. - rem Sanity check - rem Their rawdata output should be the same. - call :tooltest tpbitsSignedWhole.ddl -d /DS08BITS -M 0,8 packedbits.h5 - call :tooltest tpbitsUnsignedWhole.ddl -d /DU08BITS -M 0,8 packedbits.h5 - call :tooltest tpbitsSignedIntWhole.ddl -d /DS16BITS -M 0,16 packedbits.h5 - call :tooltest tpbitsUnsignedIntWhole.ddl -d /DU16BITS -M 0,16 packedbits.h5 - call :tooltest tpbitsSignedLongWhole.ddl -d /DS32BITS -M 0,32 packedbits.h5 - call :tooltest tpbitsUnsignedLongWhole.ddl -d /DU32BITS -M 0,32 packedbits.h5 - call :tooltest tpbitsSignedLongLongWhole.ddl -d /DS64BITS -M 0,64 packedbits.h5 - call :tooltest tpbitsUnsignedLongLongWhole.ddl -d /DU64BITS -M 0,64 packedbits.h5 - call :tooltest tpbitsSignedLongLongWhole63.ddl -d /DS64BITS -M 0,63 packedbits.h5 - call :tooltest tpbitsUnsignedLongLongWhole63.ddl -d /DU64BITS -M 0,63 packedbits.h5 - call :tooltest tpbitsSignedLongLongWhole1.ddl -d /DS64BITS -M 1,63 packedbits.h5 - call :tooltest tpbitsUnsignedLongLongWhole1.ddl -d /DU64BITS -M 1,63 packedbits.h5 - rem Half sections - call :tooltest tpbitsSigned4.ddl -d /DS08BITS -M 0,4,4,4 packedbits.h5 - call :tooltest tpbitsUnsigned4.ddl -d /DU08BITS -M 0,4,4,4 packedbits.h5 - call :tooltest tpbitsSignedInt8.ddl -d /DS16BITS -M 0,8,8,8 packedbits.h5 - call :tooltest tpbitsUnsignedInt8.ddl -d /DU16BITS -M 0,8,8,8 packedbits.h5 - call :tooltest tpbitsSignedLong16.ddl -d /DS32BITS -M 0,16,16,16 packedbits.h5 - call :tooltest tpbitsUnsignedLong16.ddl -d /DU32BITS -M 0,16,16,16 packedbits.h5 - call :tooltest tpbitsSignedLongLong32.ddl -d /DS64BITS -M 0,32,32,32 packedbits.h5 - call :tooltest tpbitsUnsignedLongLong32.ddl -d /DU64BITS -M 0,32,32,32 packedbits.h5 - rem Quarter sections - call :tooltest tpbitsSigned2.ddl -d /DS08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5 - call :tooltest tpbitsUnsigned2.ddl -d /DU08BITS -M 0,2,2,2,4,2,6,2 packedbits.h5 - call :tooltest tpbitsSignedInt4.ddl -d /DS16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5 - call :tooltest tpbitsUnsignedInt4.ddl -d /DU16BITS -M 0,4,4,4,8,4,12,4 packedbits.h5 - call :tooltest tpbitsSignedLong8.ddl -d /DS32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5 - call :tooltest tpbitsUnsignedLong8.ddl -d /DU32BITS -M 0,8,8,8,16,8,24,8 packedbits.h5 - call :tooltest tpbitsSignedLongLong16.ddl -d /DS64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5 - call :tooltest tpbitsUnsignedLongLong16.ddl -d /DU64BITS -M 0,16,16,16,32,16,48,16 packedbits.h5 - rem Begin and End - call :tooltest tpbitsSigned.ddl -d /DS08BITS -M 0,2,2,6 packedbits.h5 - call :tooltest tpbitsUnsigned.ddl -d /DU08BITS -M 0,2,2,6 packedbits.h5 - call :tooltest tpbitsSignedInt.ddl -d /DS16BITS -M 0,2,10,6 packedbits.h5 - call :tooltest tpbitsUnsignedInt.ddl -d /DU16BITS -M 0,2,10,6 packedbits.h5 - call :tooltest tpbitsSignedLong.ddl -d /DS32BITS -M 0,2,26,6 packedbits.h5 - call :tooltest tpbitsUnsignedLong.ddl -d /DU32BITS -M 0,2,26,6 packedbits.h5 - call :tooltest tpbitsSignedLongLong.ddl -d /DS64BITS -M 0,2,58,6 packedbits.h5 - call :tooltest tpbitsUnsignedLongLong.ddl -d /DU64BITS -M 0,2,58,6 packedbits.h5 - rem Overlapped packed bits. - call :tooltest tpbitsOverlapped.ddl -d /DS08BITS -M 0,1,1,1,2,1,0,3 packedbits.h5 - rem Maximum number of packed bits. - call :tooltest tpbitsMax.ddl -d /DS08BITS -M 0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5 - rem Compound type. - call :tooltest tpbitsCompound.ddl -d /dset1 -M 0,1,1,1 tcompound.h5 - rem Array type. - call :tooltest tpbitsArray.ddl -d /Dataset1 -M 0,1,1,1 tarray1.h5 - rem Test Error handling. - rem Too many packed bits requested. Max is 8 for now. - call :tooltest tpbitsMaxExceeded.ddl -d /DS08BITS -M 0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5 - rem Offset too large. Max is 7 (8-1) for now. - call :tooltest tpbitsOffsetExceeded.ddl -d /DS08BITS -M 64,1 packedbits.h5 - call :tooltest tpbitsCharOffsetExceeded.ddl -d /DS08BITS -M 8,1 packedbits.h5 - call :tooltest tpbitsIntOffsetExceeded.ddl -d /DS16BITS -M 16,1 packedbits.h5 - call :tooltest tpbitsLongOffsetExceeded.ddl -d /DS32BITS -M 32,1 packedbits.h5 - rem Bad offset, must not be negative. - call :tooltest tpbitsOffsetNegative.ddl -d /DS08BITS -M -1,1 packedbits.h5 - rem Bad length, must not be positive. - call :tooltest tpbitsLengthPositive.ddl -d /DS08BITS -M 4,0 packedbits.h5 - rem Offset+Length is too large. Max is 8 for now. - call :tooltest tpbitsLengthExceeded.ddl -d /DS08BITS -M 37,28 packedbits.h5 - call :tooltest tpbitsCharLengthExceeded.ddl -d /DS08BITS -M 2,7 packedbits.h5 - call :tooltest tpbitsIntLengthExceeded.ddl -d /DS16BITS -M 10,7 packedbits.h5 - call :tooltest tpbitsLongLengthExceeded.ddl -d /DS32BITS -M 26,7 packedbits.h5 - rem Incomplete pair of packed bits request. - call :tooltest tpbitsIncomplete.ddl -d /DS08BITS -M 0,2,2,1,0,2,2, packedbits.h5 - - if %nerrors% equ 0 ( - echo.All %dumper% tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5dump/testh5dumpxml.bat b/windows/tools/h5dump/testh5dumpxml.bat deleted file mode 100644 index 63356aa..0000000 --- a/windows/tools/h5dump/testh5dumpxml.bat +++ /dev/null @@ -1,224 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5dump tool -rem -rem Created: Scott Wegner, 8/27/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem set h5_lone_colon=%h5_lone_colon% - -rem The tool name -set dumper=h5dump%2 -rem The path of the tool library -set dumper_bin=%CD%\..\%dumper%\%1\%dumper% - -set nerrors=0 -set verbose=yes - -if not exist ..\testfiles mkdir ..\testfiles - -goto main - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing %dumper% - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=!test_msg! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. If a test fails then increment -rem the `nerrors' global variable and (if $verbose is set) display the -rem difference between the actual output and the expected output. The -rem expected output is given as the first argument to this function and -rem the actual output file is calculated by replacing the `.ddl' with -rem `.out'. The actual output is not removed if HDF5_NOCLEANUP has a -rem non-zero value. -rem -:tooltest - set expect=%CD%\..\testfiles\%1 - set expect_eol=%CD%\..\testfiles\%~n1.eol - set actual=%CD%\..\testfiles\%~n1.out - set actual_err=%CD%\..\testfiles\%~n1.err - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/23/07 - set params=%* - set params=%params:* =% - - rem Run test. - - ( - rem Remove quotes here, because Linux 'echo' command strips them. - rem --SJW 8/24/07 - echo.############################# - echo.Expected output for 'h5dump !params:"=!' - echo.############################# - pushd %CD%\..\testfiles - %dumper_bin% !params! - popd - ) > %actual% 2> %actual_err% - type %actual_err% >> %actual% - - if not exist %expect% ( - call :testing CREATED %params% - copy %actual% %expect% > nul - ) else ( - fc /w %expect% %actual% > nul - if !errorlevel! equ 0 ( - call :testing PASSED %params% - ) else ( - rem First, check if the error is caused by Unix-style EOL, because - rem FC can fail incorrectly when comparing them. --SJW 5/30/08 - more < %expect% > %expect_eol% - fc /w %expect_eol% %actual% > nul - if !errorlevel! equ 0 ( - call :testing PASSED %params% - ) else ( - call :testing *FAILED* %params% - echo. Expected results ^(*.ddl^) differs from actual results ^(*.out^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc /w %expect% %actual% - ) - ) - ) - - rem Clean up output file - if not defined HDF5_NOCLEANUP del /f %expect_eol% %actual% %actual_err% - - exit /b - - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %* - exit /b - - -rem ############################################################################ -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -rem ############################################################################ -:main - - rem test XML - call :tooltest tall.h5.xml --xml tall.h5 - call :tooltest tattr.h5.xml --xml tattr.h5 - call :tooltest tbitfields.h5.xml --xml tbitfields.h5 - call :tooltest tcompound.h5.xml --xml tcompound.h5 - call :tooltest tcompound2.h5.xml --xml tcompound2.h5 - call :tooltest tdatareg.h5.xml --xml tdatareg.h5 - call :tooltest tdset.h5.xml --xml tdset.h5 - call :tooltest tdset2.h5.xml --xml tdset2.h5 - call :tooltest tenum.h5.xml --xml tenum.h5 - call :tooltest tgroup.h5.xml --xml tgroup.h5 - call :tooltest thlink.h5.xml --xml thlink.h5 - call :tooltest tloop.h5.xml --xml tloop.h5 - call :tooltest tloop2.h5.xml --xml tloop2.h5 - call :tooltest tmany.h5.xml --xml tmany.h5 - call :tooltest tnestedcomp.h5.xml --xml tnestedcomp.h5 - call :tooltest tcompound_complex.h5.xml --xml tcompound_complex.h5 - call :tooltest tobjref.h5.xml --xml tobjref.h5 - call :tooltest topaque.h5.xml --xml topaque.h5 - call :tooltest tslink.h5.xml --xml tslink.h5 - call :tooltest tudlink.h5.xml --xml tudlink.h5 - call :tooltest textlink.h5.xml --xml textlink.h5 - call :tooltest tstr.h5.xml --xml tstr.h5 - call :tooltest tstr2.h5.xml --xml tstr2.h5 - call :tooltest tref.h5.xml --xml tref.h5 - call :tooltest tname-amp.h5.xml --xml tname-amp.h5 - call :tooltest tname-apos.h5.xml --xml tname-apos.h5 - call :tooltest tname-gt.h5.xml --xml tname-gt.h5 - call :tooltest tname-lt.h5.xml --xml tname-lt.h5 - call :tooltest tname-quot.h5.xml --xml tname-quot.h5 - call :tooltest tname-sp.h5.xml --xml tname-sp.h5 - call :tooltest tstring.h5.xml --xml tstring.h5 - call :tooltest tstring-at.h5.xml --xml tstring-at.h5 - call :tooltest tref-escapes.h5.xml --xml tref-escapes.h5 - call :tooltest tref-escapes-at.h5.xml --xml tref-escapes-at.h5 - call :tooltest tnodata.h5.xml --xml tnodata.h5 - call :tooltest tarray1.h5.xml --xml tarray1.h5 - call :tooltest tarray2.h5.xml --xml tarray2.h5 - call :tooltest tarray3.h5.xml --xml tarray3.h5 - call :tooltest tarray6.h5.xml --xml tarray6.h5 - call :tooltest tarray7.h5.xml --xml tarray7.h5 - call :tooltest tvldtypes1.h5.xml --xml tvldtypes1.h5 - call :tooltest tvldtypes2.h5.xml --xml tvldtypes2.h5 - call :tooltest tvldtypes3.h5.xml --xml tvldtypes3.h5 - call :tooltest tvldtypes4.h5.xml --xml tvldtypes4.h5 - call :tooltest tvldtypes5.h5.xml --xml tvldtypes5.h5 - call :tooltest tvlstr.h5.xml --xml tvlstr.h5 - call :tooltest tsaf.h5.xml --xml tsaf.h5 - call :tooltest tempty.h5.xml --xml tempty.h5 - call :tooltest tnamed_dtype_attr.h5.xml --xml tnamed_dtype_attr.h5 - rem Test dataset and attribute of null space. Commented out: - rem wait until the XML schema is updated for null space. - rem call :tooltest tnullspace.h5.xml --xml tnulspace.h5 - - rem other options for xml - - call :tooltest tempty-dtd.h5.xml --xml --use-dtd tempty.h5 - call :tooltest tempty-dtd-2.h5.xml --xml -u tempty.h5 - - rem The lone colon here confuses some systems (Cray X1). Skip - rem it if configure detects that this is a problem. - if not "X$H5_LONE_COLON"=="Xno" ( - call :tooltest tempty-nons.h5.xml --xml -X ":" tempty.h5 - ) else ( - call :skip tempty-nons.h5.xml --xml -X ":" tempty.h5 - ) - - call :tooltest tempty-nons-2.h5.xml --xml --xml-ns=":" tempty.h5 - - rem Some of these combinations are syntactically correct but - rem the URLs are dummies - call :tooltest tempty-ns.h5.xml --xml -X "thing:" tempty.h5 - call :tooltest tempty-ns-2.h5.xml --xml --xml-ns="thing:" tempty.h5 - call :tooltest tempty-nons-uri.h5.xml --xml --xml-ns=":" --xml-dtd="http://somewhere.net" tempty.h5 - call :tooltest tempty-dtd-uri.h5.xml --xml --use-dtd --xml-dtd="http://somewhere.net" tempty.h5 - - call :tooltest tall-2A.h5.xml --xml -A tall.h5 - - - rem tests for attribute order - call :tooltest torderattr1.h5.xml --xml -H --sort_by=name --sort_order=ascending torderattr.h5 - call :tooltest torderattr2.h5.xml --xml -H --sort_by=name --sort_order=descending torderattr.h5 - call :tooltest torderattr3.h5.xml --xml -H --sort_by=creation_order --sort_order=ascending torderattr.h5 - call :tooltest torderattr4.h5.xml --xml -H --sort_by=creation_order --sort_order=descending torderattr.h5 - - - - if %nerrors% equ 0 ( - echo.All %dumper% tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5dumpdll/h5dumpdll.vcproj b/windows/tools/h5dumpdll/h5dumpdll.vcproj deleted file mode 100644 index bbe33d0..0000000 --- a/windows/tools/h5dumpdll/h5dumpdll.vcproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5import/h5import.vcproj b/windows/tools/h5import/h5import.vcproj deleted file mode 100644 index 72cdb7b..0000000 --- a/windows/tools/h5import/h5import.vcproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5import/h5importtestutil.bat b/windows/tools/h5import/h5importtestutil.bat deleted file mode 100644 index 6ac8077..0000000 --- a/windows/tools/h5import/h5importtestutil.bat +++ /dev/null @@ -1,181 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem HDF Utilities Test script -rem -rem Created: Scott Wegner, 8/27/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem srcdir is used on Unix-- define as the current directory for Windows. -set srcdir=%CD% - -rem The tool name -set h5import=h5import%2 -rem The path of the tool binary -set h5import_bin=%CD%\..\%h5import%\%1\%h5import%.exe - -rem The h5importtest tool name -set h5importtest=..\testfiles\h5importtst\%1\h5importtst -rem The path of the h5importtst tool binary -set h5importtest_bin=%CD%\%h5importtest%.exe - -rem The h5dump tool name -set h5dump=..\h5dump%2\%1\h5dump%2 -rem The path of the h5dump tool binary -set h5dump_bin=%CD%\%h5dump% - -rem initialize errors variables -set errors=0 - -goto main - -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT-ZERO here with "%0" for the tfamily test. - rem --SJW 8/24/07 - set test_msg=!test_msg:PERCENT-ZERO=%%0! - echo.%test_msg:~0,69% %1 - - exit /b - - -:tooltest - set err=0 - %h5import_bin% %* - %h5dump_bin% %5 > log2 - - pushd tmp_testfiles - %h5dump_bin% %5 > log1 - popd - - fc /w tmp_testfiles\log1 log2 > nul - if %errorlevel% neq 0 set err=1 - del /f log2 tmp_testfiles\log1 - if "%err%"=="1" ( - set /a errors=!errors!+1 - call :testing *FAILED* %testing% - ) else ( - call :testing: PASSED %testing% - ) - - exit /b - - -:main - echo. - echo.============================== - echo.H5IMPORT tests started - echo.============================== - - if exist %h5import_bin% ( - if exist %h5importtest_bin% ( - rem echo.** Testing h5import *** - - del /f output.h5 log1 tx* b* *.dat 2> nul - - if not exist tmp_testfiles mkdir tmp_testfiles - copy /y testfiles\*.h5 tmp_testfiles > nul - - %h5importtest_bin% - - rem On Linux, they call TESTING here, and output pass/fail from TOOLTEST. - rem On Windows, echo gives a carriage return, so we store the TESTING params - rem and call TESTING from TOOLTEST. --SJW 8/27/07 - set testing=ASCII I32 rank 3 - Output BE - call :tooltest %srcdir%\testfiles\txtin16.txt -c %srcdir%\testfiles\txtin32.conf -o txtin32.h5 - - set testing=ASCII I16 rank 3 - Output LE - CHUNKED - extended - call :tooltest %srcdir%\testfiles\txtin16.txt -c %srcdir%\testfiles\txtin16.conf -o txtin16.h5 - - set testing=ASCII I8 - rank 3 - Output I16 LE-Chunked+Extended+Compressed - call :tooltest %srcdir%\testfiles\txtin16.txt -c %srcdir%\testfiles\txtin8.conf -o txtin8.h5 - - set testing=ASCII UI32 - rank 3 - Output BE - call :tooltest %srcdir%\testfiles\txtin32.txt -c %srcdir%\testfiles\txtuin32.conf -o txtuin32.h5 - - set testing=ASCII UI16 - rank 2 - Output LE+Chunked+Compressed - call :tooltest %srcdir%\testfiles\txtuin32.txt -c %srcdir%\testfiles\txtuin16.conf -o txtuin16.h5 - - set testing=ASCII F32 - rank 3 - Output LE - call :tooltest %srcdir%\testfiles\txtfp32.txt -c %srcdir%\testfiles\txtfp32.conf -o txtfp32.h5 - - set testing=ASCII F64 - rank 3 - Output BE + CHUNKED+Extended+Compressed - call :tooltest %srcdir%\testfiles\txtfp64.txt -c %srcdir%\testfiles\txtfp64.conf -o txtfp64.h5 - - set testing=BINARY F64 - rank 3 - Output LE+CHUNKED+Extended+Compressed - call :tooltest binfp64.bin -c %srcdir%\testfiles\binfp64.conf -o binfp64.h5 - - set testing=BINARY I16 - rank 3 - Output order LE + CHUNKED + extended - call :tooltest binin16.bin -c %srcdir%\testfiles\binin16.conf -o binin16.h5 - - set testing=BINARY I8 - rank 3 - Output I16LE + Chunked+Extended+Compressed - call :tooltest binin8.bin -c %srcdir%\testfiles\binin8.conf -o binin8.h5 - - set testing=BINARY I32 - rank 3 - Output BE + CHUNKED - call :tooltest binin32.bin -c %srcdir%\testfiles\binin32.conf -o binin32.h5 - - set testing=BINARY UI16 - rank 3 - Output byte BE + CHUNKED - call :tooltest binuin16.bin -c %srcdir%\testfiles\binuin16.conf -o binuin16.h5 - - set testing=BINARY UI32 - rank 3 - Output LE + CHUNKED - call :tooltest binuin32.bin -c %srcdir%\testfiles\binuin32.conf -o binuin32.h5 - - set testing=STR - call :tooltest %srcdir%\testfiles\txtstr.txt -c %srcdir%\testfiles\txtstr.conf -o txtstr.h5 - - set testing=BINARY I8 CR LF EOF - call :tooltest binin8w.bin -c %srcdir%\testfiles\binin8w.conf -o binin8w.h5 - - set testing=ASCII F64 - rank 1 - INPUT-CLASS TEXTFPE - call :tooltest %srcdir%\testfiles\textpfe64.txt -c %srcdir%\testfiles\textpfe.conf -o textpfe.h5 - - - del /f *.txt *.bin *.h5 - rmdir /s /q tmp_testfiles - - ) else ( - echo.** h5importtest not avaiable *** - set /a errors=!errors!+1 - ) - ) else ( - echo.** h5import not avaiable *** - set /a errors=!errors!+1 - ) - - rem - rem Check error results - if %errors% equ 0 ( - echo.====================================== - echo. H5IMPORT Utilities tests have passed. - echo.====================================== - ) else ( - echo.====================================== - echo. H5IMPORT Utilities tests encountered errors - echo.====================================== - ) - - popd - endlocal & exit /b %errors% - diff --git a/windows/tools/h5importdll/h5importdll.vcproj b/windows/tools/h5importdll/h5importdll.vcproj deleted file mode 100644 index 9960816..0000000 --- a/windows/tools/h5importdll/h5importdll.vcproj +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5jam/h5jam.vcproj b/windows/tools/h5jam/h5jam.vcproj deleted file mode 100644 index 37b1835..0000000 --- a/windows/tools/h5jam/h5jam.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5jam/testh5jam.bat b/windows/tools/h5jam/testh5jam.bat deleted file mode 100644 index aaefe23..0000000 --- a/windows/tools/h5jam/testh5jam.bat +++ /dev/null @@ -1,598 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5jam/h5unjam tools -rem -rem Created: Scott Wegner, 8/27/07 -rem Modified: -rem - -rem We currently don't build DLL version of h5jam / h5unjam, but the test script -rem is setup to handle it if we ever decide to. --SJW 8/27/07 - -setlocal enabledelayedexpansion -pushd %~dp0 - -set h5pubconf=%CD%\..\..\src\h5pubconf.h - -rem Determine which filters are available -rem On Windows, the function :detect_filter sets these for us -call :detect_filter szip -call :detect_filter deflate -call :detect_filter shuffle -call :detect_filter fletcher32 - -rem The dumper to use -set dumper=..\h5dump%2\%1\h5dump%2 -rem The path of the dumper binary -set dumper_bin=%CD%\%dumper% - -rem Tool to test -set jam=h5jam%2 -rem Tool to test -set unjam=h5unjam%2 -rem The path of the jam binary -set jam_bin=%CD%\..\%jam%\%1\%jam% -rem The path of the unjam binary -set unjam_bin=%CD%\..\%unjam%\%1\%unjam% - -rem The tellub to use -set tellub=..\..\test\tellub%2\%1\tellub%2 -rem The path of the tellub binary -set tellub_bin=%CD%\%tellub% - -rem The getub to use -set getub=..\..\test\getub%2\%1\getub%2 -rem The path of the getub binary -set getub_bin=%CD%\%getub% - -set nerrors=0 -set verbose=yes - -set testfiles=%CD%\testfiles - -goto main - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem Replace ARROW_RIGHT with the correct symbol. If it was passed directly, - rem our output would be incorrectly redirected. --SJW 8/27/07 - set test_msg=!test_msg:ARROW_RIGHT=^>! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Compare". -rem -:compare - set test_msg=Compare - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=!test_msg! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %* - exit /b - - -rem -rem COMPARE_FILES a.h5 b.h5 -rem Compare two files, skipping the first line. This is used to -rem compare the output of the dumper, skipping the file name which -rem is different. -rem The result is stored in 'compval'. -rem -:compare_files - rem The easiest way to compare 2 files on Windows and skip the first line - rem is to simply filter the first line differences from the output. If the - rem first line is different, FC will also display the second line. - rem --SJW 8/27/07 - fc %1 %2 | findstr /v /b /c:"Comparing files" | findstr /v /b /c:"*****" > cmp1 - findstr /v /b /c:" 1: " cmp1 | findstr /v /b /c:" 2: " > cmp2 - findstr /b /c:" " cmp2 > nul - if %errorlevel% neq 1 ( - set cmpval=1 - ) else ( - set cmpval=0 - ) - del /f cmp1 cmp2 - - exit /b - - -rem CLEANUP files -rem Clean up named files -:cleanup - if not defined hdf5_nocleanup ( - for %%a in (%*) do ( - del /f %%a 2> nul - ) - ) - exit /b - - -rem SETUP file tocopy -rem Clone a standard input file in the test directory -rem -:setup - copy /y %1 %2 > nul - exit /b - - -rem -rem CHECKFILE orig.h5 compar.h5 -rem Check that the test file is the same as an original. -rem The two files are dumped with the dumper, and the output -rem compared with COMPARE_FILES. -rem If the files are the same, the test reports " PASSED", -rem otherwise, it reports "*FAILED*" -:checkfile - set expected=%~dpn2.out - set expected_err=%~dpn2.err - set actual=%~n1.out - set actual_err=%~n1.err - %dumper_bin% %1 >%expected% 2>%expected_err% - type %expected_err% >> %expected% - - rem dump the test file - %dumper_bin% %2 >%actual% 2>%actual_err% - type %actual_err% >> %actual% - - rem compare the two files (ignore line 1) - call :compare_files %actual% %expected% - if "%cmpval%"=="0" ( - call :compare PASSED %2 to %1 - ) else ( - call :compare *FAILED* %2 to %1 - echo. Expected result ^(*.ddl^) differs from actual result ^(*.out^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc %expected% %actual% - ) - - rem Clean up output files - if not defined hdf5_nocleanup ( - del /f %actual% %actual_err% - del /f %expected% %expected_err% - ) - exit /b - - -rem -rem CHECK_UB file.h5 user_block_file origfile.h5 -rem -rem Check the user block in 'file.h5' is the same as -rem 'user_block' (allowing for padding). -rem -rem If the original file had a user block before the test -rem then 'compare.h5' is passed. The user block must be extracted -rem and the test file compared to: -rem cat compare_ub user_block_file. -rem -rem This test uses './getub' to extract the user block from -rem 'file.h5', which is compared to the file described above. -rem -rem The result is set in variable 'result1'. -rem -:check_ub_1 - set hfile=%1 - set ufile=%2 - - rem check for third argument (the original file) - set origfile= - if not "%3"=="" ( - set origfile="%3" - ) - - rem find the length of the user block to check - for /f "tokens=4" %%a in ('dir /-c %ufile% ^| findstr /v /b /c:" "') do ( - set s1=%%a - ) - if "%s1%"=="0" ( - echo.File %ufile% is empty - set result1=1 - ) - - rem Get the size of the original user block, if any - if defined origfile ( - rem 'tellub' calls H5Fget_user_block to get the size - rem of the user block - for /f %%a in ('%tellub_bin% %origfile%') do set s2=%%a - if "!s2!"=="0" ( - set size=%s1% - set cmpfile=%ufile% - ) else ( - set cmpfile=tt2 - set /a size=!s2!+%s1% - %getub_bin% -c !s2! %origfile% > !cmpfile! - type %ufile% >> !cmpfile! - ) - ) else ( - rem assume no user block - set s2=0 - set size=%s1% - set cmpfile=%ufile% - ) - - rem Extract 'size' bytes from the front of 'hfile' - rem Compare to 'cmpfile', result is set in result1 - set tfile=tt1 - %getub_bin% -c %size% %hfile% > %tfile% - fc /w %cmpfile% %tfile% > nul - if %errorlevel% neq 0 ( - fc /w %cmpfile% %file% - set result1=1 - ) else ( - set result1=0 - ) - - rem clean up - del /f %tfile% - if not "%s2%"=="0" ( - del /f %cmpfile% - ) - exit /b - - -rem CHECK_NOUB file.h5 -rem -rem Check that 'file.h5' has no user block. -rem Setst result2 to 1 if there is a user block (fail), 0 if none (pass) -:check_noub - set hfile=%1 - rem call `ubsize` to get the size of the user block - %tellub_bin% %hfile% > tmp.txt - if %errorlevel% neq 0 ( - rem error - set result2=1 - ) else ( - for /f %%a in (tmp.txt) do set ubsize=%%a - if "!ubsize!"=="0" ( - rem pass - set result2=0 - ) else ( - rem fail - set result2=1 - ) - ) - del /f tmp.txt 2> nul - - exit /b - - -rem JAMTEST user_block file.h5 [--clobber] [ofile.h5] -rem -rem Test the 'jam' tool: -rem 1. figure out the input and output, and the comparision -rem that will be done. -rem 2. call 'jam' with the appropriate arguments -rem 3. check the user block is correct in the output (Check_UB) -rem If the user block is correct, print "PASSED", else "*FAILED*" -:jamtest - set ufile=%1 - set ifile=%2 - rem the file to test - set compare_test= - rem the comparison to test against - set compare_orig= - set cleanup= - - rem sort out the arguments for the test and the check - set do_clobber=no - if "%3"=="--clobber" ( - rem clobber overwrites and existing user block - set do_clobber=yes - set clobber=--clobber - set compare_orig= - if "%4"=="" ( - rem output goes to infile, compare ubfile to infile - set ofile= - set compare_test=%ifile% - ) else ( - rem output goes to %4, compare ofile to ubfile - set ofile=%4 - set compare_test=!ofile! - ) - ) else ( - set clobber= - rem add user block to existing ub, if any - if "%3"=="" ( - rem output goes to infile, compare ubfile to infile - set ofile= - set compare_test=%ifile% - copy /y %ifile% xxofile.h5 > nul - set compare_orig=xxofile.h5 - set cleanup=%cleanup% !compare_orig! - ) else ( - rem output goes to %4, compare ofile to ubfile - set ofile=%3 - set compare_test=!ofile! - set compare_orig=%ifile% - ) - ) - - rem call 'jam' with the appropriate arguments - if defined ofile ( - %jam_bin% -u %ufile% -i %ifile% -o %ofile% %clobber% - ) else ( - %jam_bin% -u %ufile% -i %ifile% %clobber% - ) - - call :check_ub_1 %compare_test% %ufile% %compare_orig% - - if "%result1%"=="0" ( - if defined ofile ( - call :testing PASSED %jam% -u %ufile% -i %ifile% -o %ofile% %clobber% - ) else ( - call :testing PASSED %jam% -u %ufile% -i %ifile% %clobber% - ) - ) else ( - if defined ofile ( - call :testing *FAILED* %jam% -u %ufile% -i %ifile% -o %ofile% %clobber% - ) else ( - call :testing *FAILED* %jam% -u %ufile% -i %ifile% %clobber% - ) - set /a nerrors=%nerrors%+1 - ) - call :cleanup %cleanup% - - exit /b - - -rem UNJAMTEST file.h5 [- | --delete] ofile -rem -rem Test the 'unjam' tool -rem -rem ##fix the working directory here and in jamtest -:unjamtest - set infile=%1 - set ofile=%3 - if "%2%"=="-" ( - set uofile=uofile - %unjam_bin% -i %infile% -o %ofile% > !uofile! - ) else if "%2"=="--delete" ( - set uofile=none - %unjam_bin% -i %infile% -o %ofile% --delete - ) else ( - set uofile=%2 - %unjam_bin% -i %infile% -u !uofile! -o %ofile% - ) - - set result1=0 - set result2=0 - set cleanup= - if not "%uofile%"=="none" ( - rem sets results1 - call :check_ub_1 %infile% %uofile% - call :cleanup %uofile% - ) - - rem sets result2 - call :check_noub %ofile% - if "%result1% and %result2%"=="0 and 0" ( - if "%2%"=="-" ( - rem We use "ARROW_RIGHT" here and replace it in :testing because - rem Windows interprets it as a pipe. --SJW 8/27/07 - call :testing PASSED %unjam% -i %infile% -o %ofile% ARROW_RIGHT %uofile% - ) else if "%2"=="--delete" ( - call :testing PASSED %unjam% -i %infile% -o %ofile% --delete - ) else ( - call :testing PASSED %unjam% -i %infile% -u %uofile% -o %ofile% - ) - ) else ( - if "%2%"=="-" ( - rem We use "ARROW_RIGHT" here and replace it in :testing because - rem Windows interprets it as a pipe. --SJW 8/27/07 - call :testing *FAILED* %unjam% -i %infile% -o %ofile% ARROW_RIGHT %uofile% - ) else if "%2"=="--delete" ( - call :testing *FAILED* %unjam% -i %infile% -o %ofile% --delete - ) else ( - call :testing *FAILED* %unjam% -i %infile% -u %uofile% -o %ofile% - ) - set /a nerrors=%nerrors%+1 - ) - - exit /b - - -rem This is a Windows-specific function that detects if the filter passed -rem should be enabled for this test script. It searches H5pubconf.h for the -rem string "#define H5_HAVE_FILTER_%1" and sets the variable "use_filter_%1" -rem accordingly. On other platforms, this variable is set in the Makefile. -rem If we find a better way to test this in the future, we should use it. -rem --SJW 9/4/07 -:detect_filter - findstr /b /i /c:"#define H5_HAVE_FILTER_%1" %h5pubconf% > nul - if %errorlevel% equ 0 ( - set use_filter_%1=yes - ) else ( - set use_filter_%1=no - ) - - exit /b - - -rem ############################################################################ -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -rem ############################################################################ -:main - call :jamtest %testfiles%\u10.txt %testfiles%\tall.h5 ta2.h5 - call :checkfile %testfiles%\tall.h5 ta2.h5 - call :cleanup ta2.h5 - call :jamtest %testfiles%\u511.txt %testfiles%\tall.h5 ta3.h5 - call :checkfile %testfiles%\tall.h5 ta3.h5 - call :cleanup ta3.h5 - call :jamtest %testfiles%\u512.txt %testfiles%\tall.h5 ta4.h5 - call :checkfile %testfiles%\tall.h5 ta4.h5 - call :cleanup ta4.h5 - call :jamtest %testfiles%\u513.txt %testfiles%\tall.h5 ta5.h5 - call :checkfile %testfiles%\tall.h5 ta5.h5 - call :cleanup ta5.h5 - - call :setup %testfiles%\tall.h5 ta.h5 - call :jamtest %testfiles%\u10.txt ta.h5 - call :checkfile %testfiles%\tall.h5 ta.h5 - call :setup %testfiles%\tall.h5 ta.h5 - call :jamtest %testfiles%\u511.txt ta.h5 - call :checkfile %testfiles%\tall.h5 ta.h5 - call :setup %testfiles%\tall.h5 ta.h5 - call :jamtest %testfiles%\u512.txt ta.h5 - call :checkfile %testfiles%\tall.h5 ta.h5 - call :setup %testfiles%\tall.h5 ta.h5 - call :jamtest %testfiles%\u513.txt ta.h5 - call :checkfile %testfiles%\tall.h5 ta.h5 - call :cleanup ta.h5 - - call :jamtest %testfiles%\u10.txt %testfiles%\twithub.h5 tax2.h5 - call :checkfile %testfiles%\tall.h5 tax2.h5 - call :cleanup tax2.h5 - call :jamtest %testfiles%\u511.txt %testfiles%\twithub.h5 tax3.h5 - call :checkfile %testfiles%\tall.h5 tax3.h5 - call :cleanup tax3.h5 - call :jamtest %testfiles%\u512.txt %testfiles%\twithub.h5 tax4.h5 - call :checkfile %testfiles%\tall.h5 tax4.h5 - call :cleanup tax4.h5 - call :jamtest %testfiles%\u513.txt %testfiles%\twithub.h5 tax5.h5 - call :checkfile %testfiles%\tall.h5 tax5.h5 - call :cleanup tax5.h5 - - call :jamtest %testfiles%\u10.txt %testfiles%\twithub513.h5 tax6.h5 - call :checkfile %testfiles%\tall.h5 tax6.h5 - call :cleanup tax6.h5 - call :jamtest %testfiles%\u511.txt %testfiles%\twithub513.h5 tax7.h5 - call :checkfile %testfiles%\tall.h5 tax7.h5 - call :cleanup tax7.h5 - call :jamtest %testfiles%\u512.txt %testfiles%\twithub513.h5 tax8.h5 - call :checkfile %testfiles%\tall.h5 tax8.h5 - call :cleanup tax8.h5 - call :jamtest %testfiles%\u513.txt %testfiles%\twithub513.h5 tax9.h5 - call :checkfile %testfiles%\tall.h5 tax9.h5 - call :cleanup tax9.h5 - - call :jamtest %testfiles%\u10.txt %testfiles%\twithub.h5 --clobber taz2.h5 - call :checkfile %testfiles%\tall.h5 taz2.h5 - call :cleanup taz2.h5 - call :jamtest %testfiles%\u511.txt %testfiles%\twithub.h5 --clobber taz3.h5 - call :checkfile %testfiles%\tall.h5 taz3.h5 - call :cleanup taz3.h5 - call :jamtest %testfiles%\u512.txt %testfiles%\twithub.h5 --clobber taz4.h5 - call :checkfile %testfiles%\tall.h5 taz4.h5 - call :cleanup taz4.h5 - call :jamtest %testfiles%\u513.txt %testfiles%\twithub.h5 --clobber taz5.h5 - call :checkfile %testfiles%\tall.h5 taz5.h5 - call :cleanup taz5.h5 - - call :jamtest %testfiles%\u10.txt %testfiles%\twithub513.h5 --clobber taz6.h5 - call :checkfile %testfiles%\tall.h5 taz6.h5 - call :cleanup taz6.h5 - call :jamtest %testfiles%\u511.txt %testfiles%\twithub513.h5 --clobber taz7.h5 - call :checkfile %testfiles%\tall.h5 taz7.h5 - call :cleanup taz7.h5 - call :jamtest %testfiles%\u512.txt %testfiles%\twithub513.h5 --clobber taz8.h5 - call :checkfile %testfiles%\tall.h5 taz8.h5 - call :cleanup taz8.h5 - call :jamtest %testfiles%\u513.txt %testfiles%\twithub513.h5 --clobber taz9.h5 - call :checkfile %testfiles%\tall.h5 taz9.h5 - call :cleanup taz9.h5 - - call :setup %testfiles%\twithub.h5 tay2.h5 - call :jamtest %testfiles%\u10.txt tay2.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay2.h5 - call :cleanup tay2.h5 - call :setup %testfiles%\twithub.h5 tay3.h5 - call :jamtest %testfiles%\u511.txt tay3.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay3.h5 - call :cleanup tay3.h5 - call :setup %testfiles%\twithub.h5 tay4.h5 - call :jamtest %testfiles%\u512.txt tay4.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay4.h5 - call :cleanup tay4.h5 - call :setup %testfiles%\twithub.h5 tay5.h5 - call :jamtest %testfiles%\u513.txt tay5.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay5.h5 - call :cleanup tay5.h5 - - call :setup %testfiles%\twithub513.h5 tay6.h5 - call :jamtest %testfiles%\u10.txt tay6.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay6.h5 - call :cleanup tay6.h5 - call :setup %testfiles%\twithub513.h5 tay7.h5 - call :jamtest %testfiles%\u511.txt tay7.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay7.h5 - call :cleanup tay7.h5 - call :setup %testfiles%\twithub513.h5 tay8.h5 - call :jamtest %testfiles%\u512.txt tay8.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay8.h5 - call :cleanup tay8.h5 - call :setup %testfiles%\twithub513.h5 tay9.h5 - call :jamtest %testfiles%\u513.txt tay9.h5 --clobber - call :checkfile %testfiles%\tall.h5 tay9.h5 - call :cleanup tay9.h5 - - call :setup %testfiles%\twithub.h5 tai1.h5 - call :unjamtest tai1.h5 o10.txt taa1.h5 - call :checkfile %testfiles%\tall.h5 taa1.h5 - call :cleanup taa1.h5 tai1.h5 o10.txt - call :setup %testfiles%\twithub513.h5 tai2.h5 - call :unjamtest tai2.h5 o512.txt taa2.h5 - call :checkfile %testfiles%\tall.h5 taa2.h5 - call :cleanup taa2.h5 tai2.h5 o512.txt - - call :setup %testfiles%\twithub.h5 tai3.h5 - call :unjamtest tai3.h5 - taa3.h5 - call :checkfile %testfiles%\tall.h5 taa3.h5 - call :cleanup taa3.h5 tai3.h5 - call :setup %testfiles%\twithub513.h5 tai4.h5 - call :unjamtest tai4.h5 - taa4.h5 - call :checkfile %testfiles%\tall.h5 taa4.h5 - call :cleanup taa4.h5 tai4.h5 - - call :setup %testfiles%\twithub.h5 taj2.h5 - call :unjamtest taj2.h5 --delete tac2.h5 - call :checkfile %testfiles%\tall.h5 tac2.h5 - call :cleanup tac2.h5 taj2.h5 - call :setup %testfiles%\twithub513.h5 taj3.h5 - call :unjamtest taj3.h5 --delete tac3.h5 - call :checkfile %testfiles%\tall.h5 tac3.h5 - call :cleanup tac3.h5 taj3.h5 - - if %nerrors% equ 0 ( - echo.All %jam% tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5ls/h5ls.vcproj b/windows/tools/h5ls/h5ls.vcproj deleted file mode 100644 index e1001ef..0000000 --- a/windows/tools/h5ls/h5ls.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5ls/testh5ls.bat b/windows/tools/h5ls/testh5ls.bat deleted file mode 100644 index f15274c..0000000 --- a/windows/tools/h5ls/testh5ls.bat +++ /dev/null @@ -1,263 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5ls tool -rem -rem Created: Scott Wegner, 8/28/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem The tool name -set h5ls=h5ls%2 -rem The path of the tool binary -set h5ls_bin=%CD%\..\%h5ls%\%1\%h5ls% - -rem Max. lines of output to display if test fails -set nlines=20 - -set nerrors=0 -set verbose=yes - -if not exist ..\testfiles mkdir ..\testfiles - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing %h5ls% - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT-ZERO here with "%0" for the tfamily test. - rem --SJW 8/24/07 - set test_msg=!test_msg:PERCENT-ZERO=%%0! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. For now, if h5ls can complete -rem with exit status 0, consider it pass. If a test fails then increment -rem the `nerrors' global variable and (if $verbose is set) display up to %nlines% -rem lines of the actual output from the tool test. The actual output is not -rem removed if $HDF5_NOCLEANUP has a non-zero value. -rem Arguemnts: -rem %1 -- actual output filename to use -rem %2 and on -- argument for the h5ls tool -:tooltest - set expect=%CD%\..\testfiles\%1 - set actual=%CD%\..\testfiles\%~n1.out - set actual_err=%CD%\..\testfiles\%~n1.err - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/23/07 - set params=%* - set params=%params:* =% - - rem Target the first variable in params, retvalexpect - for %%a in (%params%) do ( - set retvalexpect=%%a - set params=%params:* =% - goto break1 - ) - :break1 - - rem Run test. - rem Stderr is included in stdout so that the diff can detect - rem any unexpected output from that stream too - ( - echo.############################# - rem We strip out the parentesis here because echo on Linux does. - rem --SJW 8/28/07 - echo. output for 'h5ls %params:"=%' - echo.############################# - pushd %CD%\..\testfiles - %h5ls_bin% %params% - popd - ) >%actual% 2>%actual_err% - - set exitcode=%errorlevel% - type %actual_err% >> %actual% - if "%exitcode%" neq "%retvalexpect%" ( - call :testing *FAILED* %params% - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" ( - echo.test returned with exit code !exitcode! - echo.test output: ^(up to %nlines% lines^) - rem Count lines echo'ed, and break out after 20. --SJW 8/28/07 - set line=0 - for /f "tokens=* delims=" %%a in (%actual%) do ( - if !line! geq %nlines% goto break2 - echo.%%a - set /a line=!line!+1 - ) - :break2 - echo.***end of test output*** - echo. - ) - rem Don't special case non-existing expected output as Linux does, because - rem we depend on it above to parse anyway. It should be an error if it - rem doesn't exist. --SJW 8/28/07 - rem ) else if not exist %expect% ( - rem rem Create the expect file if it doesn't yet exist - rem call :testing CREATED %params% - rem copy %actual% %expect% > nul - ) else ( - fc /w %expect% %actual% > nul - if !errorlevel! equ 0 ( - call :testing PASSED %params% - ) else ( - call :testing *FAILED* %params% - echo. Expected result differs from actual result - set nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc %expect% %actual% - ) - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f %actual% %actual_err% - ) - - exit /b - - -rem ############################################################################ -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -rem ############################################################################ -:main - - rem Toss in a bunch of tests. Not sure if they are the right kinds. - rem test the help syntax - call :tooltest help-1.ls 0 -w80 -h - call :tooltest help-2.ls 0 -w80 -help - call :tooltest help-3.ls 0 -w80 -? - - rem test simple command - call :tooltest tall-1.ls 0 -w80 tall.h5 - call :tooltest tall-2.ls 0 -w80 -r -d tall.h5 - call :tooltest tgroup.ls 0 -w80 tgroup.h5 - call :tooltest tgroup-3.ls 0 -w80 tgroup.h5/g1 - - rem test for displaying groups - call :tooltest tgroup-1.ls 1 -w80 -r -g tgroup.h5 - call :tooltest tgroup-2.ls 0 -w80 -g tgroup.h5/g1 - - rem test for displaying simple space datasets - call :tooltest tdset-1.ls 0 -w80 -r -d tdset.h5 - - rem test for displaying soft links - call :tooltest tslink-1.ls 0 -w80 -r tslink.h5 - - rem test for displaying more soft links with --follow-symlinks - call :tooltest tsoftlinks-1.ls 0 --follow-symlinks tsoftlinks.h5 - call :tooltest tsoftlinks-2.ls 0 --follow-symlinks -r tsoftlinks.h5 - call :tooltest tsoftlinks-3.ls 0 --follow-symlinks tsoftlinks.h5/group1 - call :tooltest tsoftlinks-4.ls 0 --follow-symlinks -r tsoftlinks.h5/group1 - call :tooltest tsoftlinks-5.ls 0 --follow-symlinks tsoftlinks.h5/soft_dset1 - - rem test for displaying external and user-defined links with - rem --follow-symlinks - call :tooltest textlink-1.ls 0 -w80 -r textlink.h5 - call :tooltest textlinksrc-1.ls 0 -w80 --follow-symlinks -r textlinksrc.h5 - call :tooltest textlinksrc-2.ls 0 -w80 --follow-symlinks -rv textlinksrc.h5/ext_link5 - call :tooltest textlinksrc-3.ls 0 -w80 --follow-symlinks -r textlinksrc.h5/ext_link1 - call :tooltest textlinksrc-4.ls 0 -w80 -r textlinksrc.h5 - call :tooltest textlinksrc-5.ls 0 -w80 -r textlinksrc.h5/ext_link1 - call :tooltest textlinksrc-6.ls 0 -w80 --follow-symlinks textlinksrc.h5 - call :tooltest textlinksrc-7.ls 0 -w80 --follow-symlinks textlinksrc.h5/ext_link1 - call :tooltest tudlink-1.ls 0 -w80 -r tudlink.h5 - - rem test for displaying external links with -E - rem the option -E will be depriciated but keep it for backward compatibility - call :tooltest textlinksrc-1-old.ls 0 -w80 -Er textlinksrc.h5 - call :tooltest textlinksrc-2-old.ls 0 -w80 -Erv textlinksrc.h5/ext_link5 - call :tooltest textlinksrc-3-old.ls 0 -w80 -Er textlinksrc.h5/ext_link1 - call :tooltest textlinksrc-6-old.ls 0 -w80 -E textlinksrc.h5 - call :tooltest textlinksrc-7-old.ls 0 -w80 -E textlinksrc.h5/ext_link1 - - rem tests for no-dangling-links - rem if this option is given on dangling link, h5ls should return exit code 1 - rem when used alone , expect to print out help and return exit code 1 - call :tooltest textlinksrc-nodangle-1.ls 1 -w80 --no-dangling-links textlinksrc.h5 - rem external dangling link - expected exit code 1 - call :tooltest textlinksrc-nodangle-2.ls 1 -w80 --follow-symlinks --no-dangling-links textlinksrc.h5 - rem soft dangling link - expected exit code 1 - call :tooltest tsoftlinks-nodangle-1.ls 1 -w80 --follow-symlinks --no-dangling-links tsoftlinks.h5 - rem when used file with no dangling links - expected exit code 0 - call :tooltest thlinks-nodangle-1.ls 0 -w80 --follow-symlinks --no-dangling-links thlink.h5 - - rem tests for hard links - call :tooltest thlink-1.ls 0 -w80 thlink.h5 - - rem tests for compound data types - call :tooltest tcomp-1.ls 0 -w80 -r -d tcompound.h5 - - rem test for the nested compound type - call :tooltest tnestcomp-1.ls 0 -w80 -r -d tnestedcomp.h5 - call :tooltest tnestcomp-2.ls 0 -w80 -r -d -S tnestedcomp.h5 - call :tooltest tnestcomp-3.ls 0 -w80 -r -d -l tnestedcomp.h5 - call :tooltest tnestcomp-4.ls 0 -w80 -r -d -l -S tnestedcomp.h5 - - rem test for loop detection - call :tooltest tloop-1.ls 0 -w80 -r -d tloop.h5 - - rem test for string - call :tooltest tstr-1.ls 0 -w80 -r -d tstr.h5 - - rem test test file created from lib SAF team - call :tooltest tsaf.ls 0 -w80 -r -d tsaf.h5 - - rem test for variable length data types - call :tooltest tvldtypes1.ls 0 -w80 -r -d tvldtypes1.h5 - - rem test for array data types - call :tooltest tarray1.ls 0 -w80 -r -d tarray1.h5 - - rem test for empty data - call :tooltest tempty.ls 0 -w80 -d tempty.h5 - - rem test for all dataset types written to attributes - rem enable -S for avoiding printing NATIVE types - call :tooltest tattr2.ls 0 -w80 -v -S tattr2.h5 - - rem tests for error handling. - rem test for non-existing file - call :tooltest nosuchfile.ls 1 nosuchfile.h5 - - rem test for variable length data types in verbose mode - call :tooltest tvldtypes2le.ls 0 -v tvldtypes1.h5 - - rem test for dataset region references data types in verbose mode - call :tooltest tdataregle.ls 0 -v tdatareg.h5 - - if %nerrors% equ 0 ( - echo.All h5ls tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5lsdll/h5lsdll.vcproj b/windows/tools/h5lsdll/h5lsdll.vcproj deleted file mode 100644 index 7d1dc0e..0000000 --- a/windows/tools/h5lsdll/h5lsdll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5mkgrp/h5mkgrp.vcproj b/windows/tools/h5mkgrp/h5mkgrp.vcproj deleted file mode 100644 index e6f8259..0000000 --- a/windows/tools/h5mkgrp/h5mkgrp.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5mkgrp/testh5mkgrp.bat b/windows/tools/h5mkgrp/testh5mkgrp.bat deleted file mode 100644 index 15de2cd..0000000 --- a/windows/tools/h5mkgrp/testh5mkgrp.bat +++ /dev/null @@ -1,254 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5mkgrp tool -rem -rem Created: Scott Wegner, 8/29/07 -rem Modified: -rem - -rem We currently only build static version of h5mkgrp, but this batch file is -rem setup for dll versions, in case we decide to build them in the future. -rem --SJW 8/29/07 - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem The tool name -set h5mkgrp=h5mkgrp%2 -rem The path of the tool binary -set h5mkgrp_bin=%CD%\..\%h5mkgrp%\%1\%h5mkgrp% -rem The h5ls tool name -set h5ls=h5ls%2 -rem Arguments to the h5ls tool -set h5ls_args=-vr -rem The path of the h5ls tool binary -set h5ls_bin=%CD%\..\%h5ls%\%1\%h5ls% - -set nerrors=0 -set verbose=yes - -set indir=%CD%\..\testfiles -set outdir=%CD%\..\testfiles - -if not exist %outdir% mkdir %outdir% - -goto main - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT-ZERO here with "%0" for the tfamily test. - rem --SJW 8/24/07 - set test_msg=!test_msg:PERCENT-ZERO=%%0! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Verifying". -rem -:verify_h5ls - set test_msg=Verifying h5ls file structure - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT-ZERO here with "%0" for the tfamily test. - rem --SJW 8/24/07 - set test_msg=!test_msg:PERCENT-ZERO=%%0! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. If h5mkgrp can complete -rem with exit status 0, consider it pass. If a test fails then increment -rem the `nerrors' global variable. -rem Assumed arguments: -rem %* arguments for h5mkgrp. -:tooltest - ( - echo.############################# - echo. output for 'h5mkgrp %*' - echo.############################# - %h5mkgrp_bin% %* - ) > output.out - - if %errorlevel% neq 0 ( - call :testing *FAILED* %* - echo.failed result is: - type output.out - set nerrors=!nerrors!+1 - ) else ( - call :testing PASSED %* - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f output.out - ) - - exit /b - - -rem Call the h5ls tool to verify the correct output data in the destination file -rem -:h5lstest - set expect=%indir%\%~n1.ls - set expect_parsed=%expect%.parsed - set actual=%outdir%\%~n1.out - set actual_parsed=%actual%.parsed - - rem Stderr is included in stdout so that the diff can detect - rem any unexpected output from that stream too - ( - echo.############################# - echo.Expected output from h5ls %* - echo.############################# - %h5ls_bin% %h5ls_args% %* - ) >%actual% 2>&1 - rem Windows doesn't have "sed" command, and parsing the files line-by-line - rem to emulate Unix takes a very long time. Instead, we simply remove lines - rem with "Modified". Do this for actual and expected otput. If there is a - rem better alternative in the future, we should use it instead. --SJW 8/29/07 - for %%a in (expect actual) do ( - findstr /v /c:" Modified:" !%%a! > tmp.txt - move /y tmp.txt !%%a_parsed! > nul - ) - - rem Don't special case non-existing expected output as Linux does, because - rem we depend on it above to parse anyway. It should be an error if it - rem doesn't exist. --SJW 8/29/07 - rem if not exist %expect% ( - rem call :verify_h5ls CREATED %* - rem copy %actual% %expect% - rem ) - - fc /w %expect_parsed% %expect_parsed% > nul - if %errorlevel% equ 0 ( - call :verify_h5ls PASSED %* - ) else ( - call :verify_h5ls *FAILED* %* - echo. Expected result ^(*.ls^) differs from actual result ^(*.out^) - set /a nerrors=!nerrors!+1 - if "%verbose%"=="yes" fc %epect% %actual% - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f %actual% %actual_parsed% %expect_parsed% - ) - - exit /b - - -rem Single run of tool -rem -rem Assumed arguments: -rem %1 is test file name -rem %2 is h5mkgrp options -rem %* are groups to create -:runtest - - set fileout=%outdir%\%1 - shift - set h5mkgrp_args=%1 - rem Filter out quotes - set h5mkgrp_args=%h5mkgrp_args:"=% - shift - - rem Remove any output file left over from previous test run - del /f %fileout% 2> nul - - rem On Windows, the shift command doesn't actually affect %*, so we must - rem manipulate a params variable. We need to be careful of how we iterate - rem through them, because the " " parameter is tricky on Windows. - rem --SJW 8/29/07 - set params= - if not "%1"=="" ( - set p_num=1 - for %%a in (%*) do ( - if !p_num! geq 3 ( - set params=!params! %%a - ) - set /a p_num=!p_num!+1 - ) - rem Remove leading space - set params=!params:* =! - ) - - rem Run test - call :tooltest %h5mkgrp_args% %fileout% %params% - - rem Verify that the file created above is correct - call :h5lstest %fileout% - - rem Remove output file created, if the "no cleanup" environment variable is - rem not defined. - rem Why do we echo FILEOUT on Linux? --SJW 8/29/07 - rem echo.FILEOUT= %fileout% - if not defined hdf5_nocleanup ( - del /f %fileout% 2> nul - ) - - exit /b - - -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -:main - rem Check that help & version is displayed properly - call :runtest h5mkgrp_help.h5 "-h" - call :runtest h5mkgrp_version.h5 "-V" - - rem Create single group at root level - call :runtest h5mkgrp_single.h5 " " single - call :runtest h5mkgrp_single.h5 "-v" single - call :runtest h5mkgrp_single.h5 "-p" single - call :runtest h5mkgrp_single_latest.h5 "-l" latest - - rem Create several groups at root level - call :runtest h5mkgrp_several.h5 " " one two - call :runtest h5mkgrp_several.h5 "-v" one two - call :runtest h5mkgrp_several.h5 "-p" one two - call :runtest h5mkgrp_several_latest.h5 "-l" one two - - rem Create various nested groups - call :runtest h5mkgrp_nested.h5 "-p" /one/two - call :runtest h5mkgrp_nested_latest.h5 "-lp" /one/two - call :runtest h5mkgrp_nested_mult.h5 "-p" /one/two /three/four - call :runtest h5mkgrp_nested_mult_latest.h5 "-lp" /one/two /three/four - - - if %nerrors% equ 0 ( - echo.All h5mkgrp tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5repack/h5repack.bat b/windows/tools/h5repack/h5repack.bat deleted file mode 100644 index 7fb426d..0000000 --- a/windows/tools/h5repack/h5repack.bat +++ /dev/null @@ -1,802 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5repack tool -rem -rem Created: Scott Wegner, 8/28/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set h5pubconf=%CD%\..\..\src\h5pubconf.h - -rem On Windows, the function :detect_filter sets these for us -call :detect_filter szip -call :detect_filter deflate -call :detect_filter shuffle -call :detect_filter fletcher32 -call :detect_filter nbit -call :detect_filter scaleoffset - -rem The tool name -set h5repack=h5repack%2 -rem The path of the tool binary -set h5repack_bin=%CD%\..\%h5repack%\%1\%h5repack% - -rem The h5diff tool name -set h5diff=..\h5diff%2\%1\h5diff%2 -rem The path of the h5diff tool binary -set h5diff_bin=%CD%\%h5diff% - -rem The h5dump tool name -set h5dump=..\h5dump%2\%1\h5dump%2 -rem The path of the h5dump tool binary -set h5dump_bin=%CD%\%h5dump% - -set h5detectszip=testh5repack_detect_szip%2 -set h5detectszip_bin=%CD%\..\testfiles\%h5detectszip%\%1\%h5detectszip% - - -set info_file=testfiles\h5repack.info - -set file0=h5repack_fill.h5 -set file1=h5repack_objs.h5 -set file2=h5repack_attr.h5 -set file3=h5repack_hlink.h5 -set file4=h5repack_layout.h5 -set file5=h5repack_early.h5 -set file7=h5repack_szip.h5 -set file8=h5repack_deflate.h5 -set file9=h5repack_shuffle.h5 -set file10=h5repack_fletcher.h5 -set file11=h5repack_filters.h5 -set file12=h5repack_nbit.h5 -set file13=h5repack_soffset.h5 -rem A file with an older version of the layout message (copy of test/tlayouto.h5) -set file14=h5repack_layouto.h5 -set file15=h5repack_named_dtypes.h5 -rem located in common testfiles folder -set file16=tfamilyPERCENT05d.h5 -set file18=h5repack_layout2.h5 - - -set nerrors=0 -set verbose=yes - - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT here with "%" for tests that use a percent - rem sign. --SJW 5/12/08 - set test_msg=!test_msg:PERCENT=%%! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Verifying". -rem -:verify - set test_msg=Verifying h5diff output - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT here with "%" for tests that use a percent - rem sign. --SJW 5/12/08 - set test_msg=!test_msg:PERCENT=%%! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Print a message that a test has been skipped (because a required filter -rem was unavailable) -:skip - call :testing -SKIP- %h5repack% %* - exit /b - - -rem Call the h5diff tool -rem -:difftest - set params=%* - %h5diff_bin% -q !params:PERCENT=%%! - if !errorlevel! neq 0 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - - exit /b - - -rem Call h5repack -rem - -rem call TOOLTEST_MAIN and delete $output file -:tooltest - - call :tooltest_main %* - set outfile=%CD%\out.%1 - del /f %outfile% - - exit /b - -rem TOOLTEST main function, doesn't delete $output file -:tooltest_main - - rem Run test. - set infile=%CD%\testfiles\%1 - rem Linux uses a $path variable here, but it is unneccessary, and will - rem corrupt our Windows PATH if we use it. --SJW 8/28/07 - rem set path=%CD% - rem set outfile=%path%\out.%1 - set outfile=%CD%\out.%1 - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/28/07 - if "%2"=="" ( - set params= - ) else ( - set params=%* - set params=!params:* =! - ) - %h5repack_bin% %params% %infile% %outfile% - - if !errorlevel! neq 0 ( - call :testing *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :testing PASSED %* - call :difftest %infile% %outfile% - ) - - exit /b - -rem ------------------------------------------ -rem Verifying layouts of a dataset -:verify_layout_dset - - rem Run test. - set outfile=%CD%\out.%1 - set layoutfile=%CD%\layout.%1 - set dset=%2 - set expectlayout=%3 - - rem --------------------------------- - rem check the layout from a dataset - %h5dump_bin% -d %dset% -pH %outfile% > %layoutfile% - findstr /c:"%expectlayout%" %layoutfile% > nul - if !errorlevel! neq 0 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - - rem clean up tmp files - del /f %outfile% - del /f %layoutfile% - - exit /b - -rem---------------------------------------- -rem Verifying layouts from entire file -:verify_layout_all - - rem Run test. - set outfile=%CD%\out.%1 - set layoutfile=%CD%\layout.%1 - set expectlayout=%2 - - rem --------------------------------- - rem check the layout from a dataset - rem check if the other layouts still exsit - rem if CONTIGUOUS - if "%expectlayout%"=="CONTIGUOUS" ( - %h5dump_bin% -pH %outfile% > %layoutfile% - findstr /c:"COMPACT" %layoutfile% > nul - if !errorlevel! neq 0 ( - findstr /c:"CHUNKED" %layoutfile% > nul - if !errorlevel! equ 0 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - ) else ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) - ) else ( - rem if COMPACT - if "%expectlayout%"=="COMPACT" ( - %h5dump_bin% -pH %outfile% > %layoutfile% - findstr /c:"CHUNKED" %layoutfile% > nul - if !errorlevel! neq 0 ( - findstr /c:"CONTIGUOUS" %layoutfile% > nul - if !errorlevel! equ 0 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - ) else ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) - ) else ( - rem if CHUNKED - if "%expectlayout%"=="CHUNKED" ( - %h5dump_bin% -pH %outfile% > %layoutfile% - findstr/c:"CONTIGUOUS" %layoutfile% > nul - if !errorlevel! neq 0 ( - findstr /c:"COMPACT" %layoutfile% > nul - if !errorlevel! equ 0 ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :verify PASSED %* - ) - ) else ( - call :verify *FAILED* %* - set /a nerrors=!nerrors!+1 - ) - ) - ) - ) - - rem clean up tmp files - del /f %outfile% - del /f %layoutfile% - - exit /b - -rem Call h5repack with old syntax -rem -:tooltest0 - - rem Run test. - set infile=%CD%\testfiles\%1 - rem Linux uses a $path variable here, but it is unneccessary, and will - rem corrupt our Windows PATH if we use it. --SJW 8/28/07 - rem set path=%CD% - rem set outfile=%path%\out.%1 - set outfile=%CD%\out.%1 - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/28/07 - if "%2"=="" ( - set params= - ) else ( - set params=%* - set params=!params:* =! - ) - %h5repack_bin% -i %infile% -o %outfile% %params% - - if !errorlevel! neq 0 ( - call :testing *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :testing PASSED %* - call :difftest %infile% %outfile% - ) - del /f %outfile% - - exit /b - -rem same as TOOLTEST, but it uses the common testfiles at $srcdir/../testfiles/ -rem used to test the family driver, where these files reside -rem -:tooltest1 - - rem Run test. - set infile=%CD%\..\testfiles\%1 - rem Linux uses a $path variable here, but it is unneccessary, and will - rem corrupt our Windows PATH if we use it. --SJW 8/28/07 - rem set path=%CD% - rem set outfile=%path%\out.%1 - set outfile=%CD%\out.%1 - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/28/07 - if "%2"=="" ( - set params= - ) else ( - set params=%* - set params=!params:* =! - ) - %h5repack_bin% %params% !infile:PERCENT=%%! !outfile:PERCENT=%%! - - if !errorlevel! neq 0 ( - call :testing *FAILED* %* - set /a nerrors=!nerrors!+1 - ) else ( - call :testing PASSED %* - call :difftest %infile% %outfile% - ) - del /f !outfile:PERCENT=%%! - - exit /b - - -rem This is a Windows-specific function that detects if the filter passed -rem should be enabled for this test script. It searches H5pubconf.h for the -rem string "#define H5_HAVE_FILTER_%1" and sets the variable "use_filter_%1" -rem accordingly. On other platforms, this variable is set in the Makefile. -rem If we find a better way to test this in the future, we should use it. -rem --SJW 9/4/07 -:detect_filter - findstr /b /i /c:"#define H5_HAVE_FILTER_%1" %h5pubconf% > nul - if !errorlevel! equ 0 ( - set use_filter_%1=yes - ) else ( - set use_filter_%1=no - ) - - exit /b - - -rem -rem The tests -rem We use the files generated by h5repacktst -rem Each run generates ".out.h5" and the tool h5diff is used to -rem compare the input and output files -rem -rem the tests are the same as the program h5repacktst, but run from the CLI -rem -:main - - rem See which filters are usable (and skip tests for filters we - rem don't have). Do this by searching H5pubconf.h to see which - rem filters are defined. - - rem detect whether the encoder is present. - set use_filter_szip_encoder=no - if "%use_filter_szip%"=="yes" ( - for /f %%a in ('%h5detectszip_bin%') do set use_filter_szip_encoder=%%a - ) - - rem copy files (these files have no filters) - call :tooltest %file0% - call :tooltest %file1% - call :tooltest %file2% - call :tooltest %file3% - call :tooltest %file4% - call :tooltest %file5% - - - rem use %file4% to write some filters (this file has no filters) - - rem gzip with individual object - set arg=%file4% -f dset1:GZIP=1 -l dset1:CHUNK=20x10 - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem gzip for all - set arg=%file4% -f GZIP=1 - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem szip with individual object - set arg=%file4% -f dset2:SZIP=8,EC -l dset2:CHUNK=20x10 - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem szip for all - set arg=%file4% -f SZIP=8,NN - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem shuffle with individual object - set arg=%file4% -f dset2:SHUF -l dset2:CHUNK=20x10 - if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - - rem shuffle for all - set arg=%file4% -f SHUF - if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem fletcher32 with individual object - set arg=%file4% -f dset2:FLET -l dset2:CHUNK=20x10 - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem fletcher32 for all - set arg=%file4% -f FLET - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem all filters - set arg=%file4% -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10 - rem On Windows we must check each filter individually, because we don't have - rem -o flag like Linux. --SJW 8/28/07 - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_fletcher32%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem ########################################################## - rem the following tests assume the input files have filters - rem ########################################################## - - rem szip copy - set arg=%file7% - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem szip remove - set arg=%file7% --filter=dset_szip:NONE - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem deflate copy - set arg=%file8% - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem deflate remove - set arg=%file8% -f dset_deflate:NONE - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem shuffle copy - set arg=%file9% - if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem shuffle remove - set arg=%file9% -f dset_shuffle:NONE - if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem fletcher32 copy - set arg=%file10% - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem fletcher32 remove - set arg=%file10% -f dset_fletcher32:NONE - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem nbit copy - set arg=%file12% - if not "%use_filter_nbit%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem nbit remove - set arg=%file12% -f dset_nbit:NONE - if not "%use_filter_nbit%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem nbit add - set arg=%file12% -f dset_int31:NBIT - if not "%use_filter_nbit%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem scaleoffset copy - set arg=%file13% - if not "%use_filter_scaleoffset%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem scaleoffset add - set arg=%file13% -f dset_none:SOFF=31,IN - if not "%use_filter_scaleoffset%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem scaleoffset remove - set arg=%file13% -f dset_scaleoffset:NONE - if not "%use_filter_scaleoffset%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem remove all filters - set arg=%file11% -f NONE - if not "%use_filter_fletcher32%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_nbit%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_scaleoffset%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem filter conversions - - set arg=%file8% -f dset_deflate:SZIP=8,NN - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - set arg=%file7% -f dset_szip:GZIP=1 - if not "%use_filter_szip_encoder%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_szip%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - - rem limit - set arg=%file4% -f GZIP=1 -m 1024 - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem file - set arg=%file4% -e %info_file% - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - - rem ######################################################## - rem layout options (these files have no filters) - rem ######################################################## - - call :tooltest_main %file4% --layout=dset2:CHUNK=20x10 - call :verify_layout_dset %file4% dset2 CHUNKED - call :tooltest_main %file4% -l CHUNK=20x10 - call :verify_layout_all %file4% CHUNKED - call :tooltest_main %file4% -l dset2:CONTI - call :verify_layout_dset %file4% dset2 CONTIGUOUS - call :tooltest_main %file4% -l CONTI - call :verify_layout_all %file4% CONTIGUOUS - call :tooltest_main %file4% -l dset2:COMPA - call :verify_layout_dset %file4% dset2 COMPACT - call :tooltest_main %file4% -l COMPA - call :verify_layout_all %file4% COMPACT - - - rem ############################################################### - rem layout conversions (file has no filters) - rem ############################################################## - - set arg1=%file4% -l dset_compact:CONTI - set arg2=%file4% -l dset_compact:CHUNK=2x5 - set arg3=%file4% -l dset_compact:COMPA - set arg4=%file4% -l dset_contiguous:COMPA - set arg5=%file4% -l dset_contiguous:CHUNK=3x6 - set arg6=%file4% -l dset_contiguous:CONTI - set arg7=%file4% -l dset_chunk:COMPA - set arg8=%file4% -l dset_chunk:CONTI - set arg9=%file4% -l dset_chunk:CHUNK=18x13 - call :tooltest_main %arg1% - call :verify_layout_dset %file4% dset_compact CONTIGUOUS - call :tooltest_main %arg2% - call :verify_layout_dset %file4% dset_compact CHUNKED - call :tooltest_main %arg3% - call :verify_layout_dset %file4% dset_compact COMPACT - call :tooltest_main %arg4% - call :verify_layout_dset %file4% dset_contiguous COMPACT - call :tooltest_main %arg5% - call :verify_layout_dset %file4% dset_contiguous CHUNKED - call :tooltest_main %arg6% - call :verify_layout_dset %file4% dset_contiguous CONTIGUOUS - call :tooltest_main %arg7% - call :verify_layout_dset %file4% dset_chunk COMPACT - call :tooltest_main %arg8% - call :verify_layout_dset %file4% dset_chunk CONTIGUOUS - call :tooltest_main %arg9% - call :verify_layout_dset %file4% dset_chunk CHUNKED - - rem test convert small size dataset ( < 1k) to compact layout without -m - call :tooltest_main %file18% -l contig_small:COMPA - call :verify_layout_dset %file18% contig_small COMPACT - - call :tooltest_main %file18% -l chunked_small_fixed:COMPA - call :verify_layout_dset %file18% chunked_small_fixed COMPACT - - rem Native option - rem Do not use FILE1, as the named dtype will be converted to native, and h5diff will - rem report a difference. - call :tooltest %file0% -n - call :tooltest %file2% -n - - - rem latest file format with long switches. use FILE4=h5repack_layout.h5 (no filters) - set arg=%file4% --layout CHUNK=20x10 --filter GZIP=1 --minimum=10 --native --latest --compact=8 --indexed=6 --ssize=8[:dtype] - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest_main %arg% - call :verify_layout_all %file4% CHUNKED - ) - - rem latest file format with short switches. use FILE4=h5repack_layout.h5 (no filters) - set arg=%file4% -l CHUNK=20x10 -f GZIP=1 -m 10 -n -L -c 8 -d 6 -s 8[:dtype] - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest_main %arg% - call :verify_layout_all %file4% CHUNKED - ) - - rem several global filters - - set arg=%file4% --filter GZIP=1 --filter SHUF - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else if not "%use_filter_shuffle%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest %arg% - ) - - rem syntax of -i infile -o outfile - rem latest file format with short switches. use FILE4=h5repack_layout.h5 (no filters) - set arg=%file4% -l CHUNK=20x10 -f GZIP=1 -m 10 -n -L -c 8 -d 6 -s 8[:dtype] - if not "%use_filter_deflate%"=="yes" ( - call :skip %arg% - ) else ( - call :tooltest0 %arg% - ) - - rem add a userblock to file - set arg=%file1% -u testfiles\ublock.bin -b 2048 - call :tooltest %arg% - - rem add alignment - set arg=%file1% -t 1 -a 1 - call :tooltest %arg% - - rem Check repacking file with old version of layout message (should get upgraded - rem to new version and be readable, etc.) - call :tooltest %file14% - - rem test for datum size > H5TOOLS_MALLOCSIZE - set arg=%file1% -f GZIP=1 - call :tooltest %arg% - - rem Check repacking file with committed datatypes in odd configurations - call :tooltest %file15% - - rem tests family driver (file is located in common testfiles folder, uses TOOLTEST1 - call :tooltest1 %file16% - - - if %nerrors% equ 0 ( - echo.All %h5repack% tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5repack/h5repack.vcproj b/windows/tools/h5repack/h5repack.vcproj deleted file mode 100644 index 5025431..0000000 --- a/windows/tools/h5repack/h5repack.vcproj +++ /dev/null @@ -1,444 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5repackdll/h5repackdll.vcproj b/windows/tools/h5repackdll/h5repackdll.vcproj deleted file mode 100644 index cde7ab3..0000000 --- a/windows/tools/h5repackdll/h5repackdll.vcproj +++ /dev/null @@ -1,432 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5repart/h5repart.vcproj b/windows/tools/h5repart/h5repart.vcproj deleted file mode 100644 index 19fb2c0..0000000 --- a/windows/tools/h5repart/h5repart.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5repart/testh5repart.bat b/windows/tools/h5repart/testh5repart.bat deleted file mode 100644 index 70ad229..0000000 --- a/windows/tools/h5repart/testh5repart.bat +++ /dev/null @@ -1,148 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5repart tool -rem -rem Created: Scott Wegner, 8/29/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -rem The tool name -set repart=h5repart%2 -rem The path of the tool library -set repart_bin=%CD%\..\%repart%\%1\%repart% - -rem The test name -set reparted_fam=h5reparttst -rem The path of the test binary -set reparted_fam_bin=%CD%\..\testfiles\%reparted_fam%\%1\%reparted_fam% - -set nerrors=0 -set verbose=yes - -if not exist ..\testfiles mkdir ..\testfiles - -set actual_dir=%CD%\..\testfiles - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing %dumper% - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - rem We need to replace PERCENT-ZERO here with "%0" for the tfamily test. - rem --SJW 9/4/07 - set test_msg=!test_msg:PERCENT-ZERO=%%0! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. If a test fails then increment -rem the `nerrors' global variable. -rem -:tooltest - rem Run tool test. - ( - rem We need to replace PERCENT-ZERO here with "%0" for the tfamily test. - rem --SJW 9/4/07 - set params=%* - set params=!params:PERCENT-ZERO=%%0! - pushd %CD%\..\testfiles - %repart_bin% !params! - popd - ) - - if %errorlevel% equ 0 ( - call :testing PASSED %repart% %* - ) else ( - call :testing *FAILED* %repart% %* - set /a nerrors=!nerrors!+1 - ) - - exit /b - - -:outputtest - rem Run test program - ( - pushd %actual_dir% - %reparted_fam_bin% %* - popd - ) - - if %errorlevel% equ 0 ( - call :testing PASSED %reparted_fam% %* - ) else ( - call :testing *FAILED* %reparted_fam% %* - set /a nerrors=!nerrors!+1 - ) - - exit /b - - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %* - exit /b - - -rem ############################################################################ -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -rem ############################################################################ -:main - - rem On Windows, we pass "PERCENT-ZERO", and let other calls replace it with - rem the "%0". We cannot pass "%0" directly because Windows interprets it as - rem the name of the script. --SJW 9/4/07 - - rem repartition family member size to 20,000 bytes. - call :tooltest -m 20000 family_filePERCENT-ZERO5d.h5 %actual_dir%\fst_familyPERCENT-ZERO5d.h5 - rem repartition family member size to 5 KB. - call :tooltest -m 5k family_filePERCENT-ZERO5d.h5 %actual_dir%\scd_familyPERCENT-ZERO5d.h5 - rem convert family file to sec2 file of 20,000 bytes - call :tooltest -m 20000 -family_to_sec2 family_filePERCENT-ZERO5d.h5 %actual_dir%\family_to_sec2.h5 - - rem test the output files repartitioned above. - call :outputtest - echo. - - if %nerrors% equ 0 ( - echo.All %repart% tests passed. - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - pushd %actual_dir% - del /f fst_family*.h5 scd_family*.h5 family_to_sec2.h5 - popd - ) - - popd - endlocal & exit /b %nerrors% - \ No newline at end of file diff --git a/windows/tools/h5repartdll/h5repartdll.vcproj b/windows/tools/h5repartdll/h5repartdll.vcproj deleted file mode 100644 index 498b38f..0000000 --- a/windows/tools/h5repartdll/h5repartdll.vcproj +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5stat/h5stat.vcproj b/windows/tools/h5stat/h5stat.vcproj deleted file mode 100644 index f9b5d12..0000000 --- a/windows/tools/h5stat/h5stat.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5stat/testh5stat.bat b/windows/tools/h5stat/testh5stat.bat deleted file mode 100644 index 3969c7e..0000000 --- a/windows/tools/h5stat/testh5stat.bat +++ /dev/null @@ -1,183 +0,0 @@ -@echo off -rem -rem Copyright by The HDF Group. -rem Copyright by the Board of Trustees of the University of Illinois. -rem All rights reserved. -rem -rem This file is part of HDF5. The full HDF5 copyright notice, including -rem terms governing use, modification, and redistribution, is contained in -rem the files COPYING and Copyright.html. COPYING can be found at the root -rem of the source code distribution tree; Copyright.html can be found at the -rem root level of an installed copy of the electronic HDF5 document set and -rem is linked from the top-level documents page. It can also be found at -rem http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have -rem access to either file, you may request a copy from help@hdfgroup.org. -rem -rem Tests for the h5stat tool -rem -rem Created: Scott Wegner, 8/28/07 -rem Modified: -rem - -setlocal enabledelayedexpansion -pushd %~dp0 - -set EXIT_SUCCESS=0 -set EXIT_FAILURE=1 - -set h5pubconf=%CD%\..\..\src\h5pubconf.h - -rem Determine which filters are available -rem On Windows, the function :detect_filter sets these for us -call :detect_filter szip -call :detect_filter deflate -call :detect_filter shuffle -call :detect_filter fletcher32 -call :detect_filter nbit -call :detect_filter scaleoffset - -rem The tool name -set stat=h5stat%2 -rem The path of the tool binary -set stat_bin=%CD%\..\%stat%\%1\%stat% - -set nerrors=0 -set verbose=yes - -if not exist .\testfiles mkdir .\testfiles - -goto main - - -rem Print a line-line message left justified in a field of 70 characters -rem beginning with the word "Testing". -rem -:testing - set test_msg=Testing - for %%a in (%*) do ( - if %%a neq PASSED ( - if %%a neq *FAILED* ( - set test_msg=!test_msg! %%~nxa - ) ) - ) - set test_msg=!test_msg! - echo.%test_msg:~0,69% %1 - - exit /b - - -rem Run a test and print PASS or *FAIL*. If a test fails then increment -rem the `nerrors' global variable and (if %verbose% is set) display the -rem difference between the actual output and the expected output. The -rem expected output is given as the first argument to this function and -rem the actual output file is calculated by replacing the `.ddl' with -rem `.out'. The actual output is not removed if %HDF5_NOCLEANUP% has a -rem non-zero value. -rem -:tooltest - set expect=%CD%\testfiles\%1 - set actual=%CD%\testfiles\%~n1.out - set actual_err=%CD%\testfiles\%~n1.err - - rem We define %params% here because Windows `shift` command doesn't affect - rem the %* variable. --SJW 8/28/07 - set params=%* - set params=%params:* =% - - rem Run test. - ( - echo.############################# - rem Filter out quotes because they do on Linux. --SJW 8/28/07 - echo.Expected output for 'h5stat %params:"=%' - echo.############################# - pushd %CD%\testfiles - %stat_bin% %params% - popd - ) > %actual% 2> %actual_err% - type %actual_err% >> %actual% - - - if not exist %expect% ( - rem Create the expect file if it doesn't yet exist - call :testing CREATED %stat% %params% - copy /y %actual% %expect% - ) else ( - fc /w %expect% %actual% > nul - if !errorlevel! equ 0 ( - call :testing PASSED %stat% %params% - ) else ( - call :testing *FAILED* %stat% %params% - echo. Expected results ^(*.ddl^) differs from actual result ^(*.out^) - set /a nerrors=!nerrors!+1 - if "yes"=="%verbose%" fc %expect% %actual% - ) - ) - - rem Clean up output file - if not defined hdf5_nocleanup ( - del /f %actual% %actual_err% - ) - - exit /b - - -rem This is a Windows-specific function that detects if the filter passed -rem should be enabled for this test script. It searches H5pubconf.h for the -rem string "#define H5_HAVE_FILTER_%1" and sets the variable "use_filter_%1" -rem accordingly. On other platforms, this variable is set in the Makefile. -rem If we find a better way to test this in the future, we should use it. -rem --SJW 9/4/07 -:detect_filter - findstr /b /i /c:"#define H5_HAVE_FILTER_%1" %h5pubconf% > nul - if %errorlevel% equ 0 ( - set use_filter_%1=yes - ) else ( - set use_filter_%1=no - ) - - exit /b - - -rem Print a "SKIP" message -:skip - call :testing -SKIP- %* - exit /b - - -rem ############################################################################ -rem ############################################################################ -rem # T H E T E S T S ### -rem ############################################################################ -rem ############################################################################ -:main - - rem Test for help flag - call :tooltest h5stat_help1.ddl -h - call :tooltest h5stat_help2.ddl --help - - rem Test file with groups, compressed datasets, user-applied fileters, etc. - rem h5stat_filters.h5 is a copy of ../../testfiles/tfilters.h5 as of release 1.8.0-alpha4 - call :tooltest h5stat_filters.ddl h5stat_filters.h5 - call :tooltest h5stat_filters-file.ddl -f h5stat_filters.h5 - call :tooltest h5stat_filters-F.ddl -F h5stat_filters.h5 - call :tooltest h5stat_filters-d.ddl -d h5stat_filters.h5 - call :tooltest h5stat_filters-g.ddl -g h5stat_filters.h5 - call :tooltest h5stat_filters-dT.ddl -dT h5stat_filters.h5 - call :tooltest h5stat_filters-UD.ddl -D h5stat_filters.h5 - call :tooltest h5stat_filters-UT.ddl -T h5stat_filters.h5 - rem h5stat_tsohm.h5 is a copy of ../../../test/tsohm.h5 generated by tsohm.c - rem as of release 1.8.0-alpha4 - call :tooltest h5stat_tsohm.ddl h5stat_tsohm.h5 - rem h5stat_newgrat.h5 is generated by h5stat_gentest.c - call :tooltest h5stat_newgrat.ddl h5stat_newgrat.h5 - call :tooltest h5stat_newgrat-UG.ddl -G h5stat_newgrat.h5 - call :tooltest h5stat_newgrat-UA.ddl -A h5stat_newgrat.h5 - echo. - - if %nerrors% equ 0 ( - echo.All %stat% tests passed. - ) - - popd - endlocal & exit /b %nerrors% - diff --git a/windows/tools/h5statdll/h5statdll.vcproj b/windows/tools/h5statdll/h5statdll.vcproj deleted file mode 100644 index 265de0e..0000000 --- a/windows/tools/h5statdll/h5statdll.vcproj +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5unjam/h5unjam.vcproj b/windows/tools/h5unjam/h5unjam.vcproj deleted file mode 100644 index c547869..0000000 --- a/windows/tools/h5unjam/h5unjam.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/talign/talign.vcproj b/windows/tools/talign/talign.vcproj deleted file mode 100644 index 48d7cce..0000000 --- a/windows/tools/talign/talign.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/taligndll/taligndll.vcproj b/windows/tools/taligndll/taligndll.vcproj deleted file mode 100644 index 479457d..0000000 --- a/windows/tools/taligndll/taligndll.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/binread/binread.vcproj b/windows/tools/testfiles/binread/binread.vcproj deleted file mode 100644 index 428e949..0000000 --- a/windows/tools/testfiles/binread/binread.vcproj +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5difftst/h5difftst.vcproj b/windows/tools/testfiles/h5difftst/h5difftst.vcproj deleted file mode 100644 index 6b0bc49..0000000 --- a/windows/tools/testfiles/h5difftst/h5difftst.vcproj +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj b/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj deleted file mode 100644 index 6fc9d0a..0000000 --- a/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5importtst/h5importtst.vcproj b/windows/tools/testfiles/h5importtst/h5importtst.vcproj deleted file mode 100644 index 81bc060..0000000 --- a/windows/tools/testfiles/h5importtst/h5importtst.vcproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj b/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj deleted file mode 100644 index 44284e1..0000000 --- a/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj b/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj deleted file mode 100644 index 8f65ad5..0000000 --- a/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj +++ /dev/null @@ -1,440 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj b/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj deleted file mode 100644 index dbcf62d..0000000 --- a/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj b/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj deleted file mode 100644 index a01dac7..0000000 --- a/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj b/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj deleted file mode 100644 index dc6c4ba..0000000 --- a/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj b/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj deleted file mode 100644 index 00c0808..0000000 --- a/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/toolslib/toolslib.vcproj b/windows/tools/toolslib/toolslib.vcproj deleted file mode 100644 index e459fbe..0000000 --- a/windows/tools/toolslib/toolslib.vcproj +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/toolslibdll/toolslibdll.vcproj b/windows/tools/toolslibdll/toolslibdll.vcproj deleted file mode 100644 index 0d163ab..0000000 --- a/windows/tools/toolslibdll/toolslibdll.vcproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v0.12 From b7041a91cd7b322007e87ee3b37729ce0319a56c Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 7 Nov 2012 12:08:46 -0500 Subject: [svn-r23017] I added a prototype function H5DOwrite_chunk in HL library for Dectris people to test performance. The library's API function H5PSIdirect_write is still in. I reorganized the internal library by adding H5D__pre_write function. Tested on koala. --- hl/src/Makefile.am | 4 +- hl/src/Makefile.in | 9 ++- hl/test/Makefile.am | 5 +- hl/test/Makefile.in | 24 ++++-- hl/test/test_lite.c | 4 - src/H5Dchunk.c | 2 +- src/H5Dio.c | 184 ++++++++++++++++++++++++++++++++++---------- src/H5Dprivate.h | 2 +- src/H5Dpublic.h | 8 +- src/H5Pdxpl.c | 34 +++++++- test/testfiles/err_compat_1 | 5 +- 11 files changed, 218 insertions(+), 63 deletions(-) diff --git a/hl/src/Makefile.am b/hl/src/Makefile.am index f3d09ab..1e781a9 100644 --- a/hl/src/Makefile.am +++ b/hl/src/Makefile.am @@ -31,12 +31,12 @@ lib_LTLIBRARIES=libhdf5_hl.la libhdf5_hl_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS) # List sources to include in the HDF5 HL Library. -libhdf5_hl_la_SOURCES=H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c +libhdf5_hl_la_SOURCES=H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c # HDF5 HL library depends on HDF5 Library. libhdf5_hl_la_LIBADD=$(LIBHDF5) # Public header files (to be installed) -include_HEADERS=hdf5_hl.h H5IMpublic.h H5LTpublic.h H5TBpublic.h H5DSpublic.h H5PTpublic.h +include_HEADERS=hdf5_hl.h H5DOpublic.h H5IMpublic.h H5LTpublic.h H5TBpublic.h H5DSpublic.h H5PTpublic.h include $(top_srcdir)/config/conclude.am diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index ba9c2ad..0dcbc55 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -114,8 +114,8 @@ am__uninstall_files_from_dir = { \ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libhdf5_hl_la_DEPENDENCIES = $(LIBHDF5) -am_libhdf5_hl_la_OBJECTS = H5DS.lo H5IM.lo H5LT.lo H5LTanalyze.lo \ - H5LTparse.lo H5PT.lo H5TB.lo +am_libhdf5_hl_la_OBJECTS = H5DO.lo H5DS.lo H5IM.lo H5LT.lo \ + H5LTanalyze.lo H5LTparse.lo H5PT.lo H5TB.lo libhdf5_hl_la_OBJECTS = $(am_libhdf5_hl_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -467,13 +467,13 @@ lib_LTLIBRARIES = libhdf5_hl.la libhdf5_hl_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS) # List sources to include in the HDF5 HL Library. -libhdf5_hl_la_SOURCES = H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c +libhdf5_hl_la_SOURCES = H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c # HDF5 HL library depends on HDF5 Library. libhdf5_hl_la_LIBADD = $(LIBHDF5) # Public header files (to be installed) -include_HEADERS = hdf5_hl.h H5IMpublic.h H5LTpublic.h H5TBpublic.h H5DSpublic.h H5PTpublic.h +include_HEADERS = hdf5_hl.h H5DOpublic.h H5IMpublic.h H5LTpublic.h H5TBpublic.h H5DSpublic.h H5PTpublic.h # Automake needs to be taught how to build lib, progs, and tests targets. # These will be filled in automatically for the most part (e.g., @@ -572,6 +572,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5DO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5DS.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5IM.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5LT.Plo@am__quote@ diff --git a/hl/test/Makefile.am b/hl/test/Makefile.am index 8893b93..0809deb 100644 --- a/hl/test/Makefile.am +++ b/hl/test/Makefile.am @@ -29,7 +29,7 @@ LDADD=$(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5) # Test programs. These are our main targets. They should be listed in the # order to be executed, generally most specific tests to least specific tests. -TEST_PROG=test_lite test_image test_file_image test_table test_ds test_packet +TEST_PROG=test_lite test_image test_file_image test_table test_ds test_packet test_dset_opt check_PROGRAMS=$(TEST_PROG) # These programs generate test files for the tests. They don't need to be @@ -46,6 +46,7 @@ endif # Temporary files. These files are the ones created by running `make test'. CHECK_CLEANFILES+=combine_tables[1-2].h5 test_ds[1-9].h5 test_ds10.h5 \ test_image[1-3].h5 file_img[1-2].h5 test_lite[1-4].h5 test_table.h5 \ - test_packet_table.h5 test_packet_compress.h5 test_detach.h5 + test_packet_table.h5 test_packet_compress.h5 test_detach.h5 \ + test_dectris.h5 include $(top_srcdir)/config/conclude.am diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in index f98b2bc..ad3f370 100644 --- a/hl/test/Makefile.in +++ b/hl/test/Makefile.in @@ -88,7 +88,7 @@ CONFIG_CLEAN_FILES = H5srcdir_str.h CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = test_lite$(EXEEXT) test_image$(EXEEXT) \ test_file_image$(EXEEXT) test_table$(EXEEXT) test_ds$(EXEEXT) \ - test_packet$(EXEEXT) + test_packet$(EXEEXT) test_dset_opt$(EXEEXT) am__EXEEXT_2 = gen_test_ds$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) gen_test_ds_SOURCES = gen_test_ds.c @@ -103,6 +103,10 @@ test_ds_SOURCES = test_ds.c test_ds_OBJECTS = test_ds.$(OBJEXT) test_ds_LDADD = $(LDADD) test_ds_DEPENDENCIES = $(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5) +test_dset_opt_SOURCES = test_dset_opt.c +test_dset_opt_OBJECTS = test_dset_opt.$(OBJEXT) +test_dset_opt_LDADD = $(LDADD) +test_dset_opt_DEPENDENCIES = $(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5) test_file_image_SOURCES = test_file_image.c test_file_image_OBJECTS = test_file_image.$(OBJEXT) test_file_image_LDADD = $(LDADD) @@ -157,10 +161,11 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = gen_test_ds.c test_ds.c test_file_image.c test_image.c \ - test_lite.c test_packet.c test_table.c -DIST_SOURCES = gen_test_ds.c test_ds.c test_file_image.c test_image.c \ - test_lite.c test_packet.c test_table.c +SOURCES = gen_test_ds.c test_ds.c test_dset_opt.c test_file_image.c \ + test_image.c test_lite.c test_packet.c test_table.c +DIST_SOURCES = gen_test_ds.c test_ds.c test_dset_opt.c \ + test_file_image.c test_image.c test_lite.c test_packet.c \ + test_table.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -460,14 +465,15 @@ TRACE = perl $(top_srcdir)/bin/trace CHECK_CLEANFILES = *.chkexe *.chklog *.clog combine_tables[1-2].h5 \ test_ds[1-9].h5 test_ds10.h5 test_image[1-3].h5 \ file_img[1-2].h5 test_lite[1-4].h5 test_table.h5 \ - test_packet_table.h5 test_packet_compress.h5 test_detach.h5 + test_packet_table.h5 test_packet_compress.h5 test_detach.h5 \ + test_dectris.h5 # The tests depend on the hdf5, hdf5 test, and hdf5_hl libraries LDADD = $(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5) # Test programs. These are our main targets. They should be listed in the # order to be executed, generally most specific tests to least specific tests. -TEST_PROG = test_lite test_image test_file_image test_table test_ds test_packet +TEST_PROG = test_lite test_image test_file_image test_table test_ds test_packet test_dset_opt # These programs generate test files for the tests. They don't need to be # compiled every time we want to test the library. However, putting @@ -556,6 +562,9 @@ gen_test_ds$(EXEEXT): $(gen_test_ds_OBJECTS) $(gen_test_ds_DEPENDENCIES) $(EXTRA test_ds$(EXEEXT): $(test_ds_OBJECTS) $(test_ds_DEPENDENCIES) $(EXTRA_test_ds_DEPENDENCIES) @rm -f test_ds$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ds_OBJECTS) $(test_ds_LDADD) $(LIBS) +test_dset_opt$(EXEEXT): $(test_dset_opt_OBJECTS) $(test_dset_opt_DEPENDENCIES) $(EXTRA_test_dset_opt_DEPENDENCIES) + @rm -f test_dset_opt$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_dset_opt_OBJECTS) $(test_dset_opt_LDADD) $(LIBS) test_file_image$(EXEEXT): $(test_file_image_OBJECTS) $(test_file_image_DEPENDENCIES) $(EXTRA_test_file_image_DEPENDENCIES) @rm -f test_file_image$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_file_image_OBJECTS) $(test_file_image_LDADD) $(LIBS) @@ -580,6 +589,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_test_ds.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ds.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dset_opt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_file_image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lite.Po@am__quote@ diff --git a/hl/test/test_lite.c b/hl/test/test_lite.c index a611088..282755e 100644 --- a/hl/test/test_lite.c +++ b/hl/test/test_lite.c @@ -51,7 +51,6 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name ); - /*------------------------------------------------------------------------- * test dataset functions *------------------------------------------------------------------------- @@ -2137,7 +2136,6 @@ static int test_valid_path(void) return -1; } - /*------------------------------------------------------------------------- * the main program *------------------------------------------------------------------------- @@ -2166,6 +2164,4 @@ int main( void ) error: return 1; - - } diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index da7d809..3b96fa0 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -296,7 +296,7 @@ H5FL_BLK_DEFINE_STATIC(chunk); *------------------------------------------------------------------------- */ herr_t -H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, unsigned filters, hsize_t *offset, +H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsize_t *offset, size_t data_size, const void *buf) { const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset layout */ diff --git a/src/H5Dio.c b/src/H5Dio.c index 7852b3e..e5a9ccc 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -58,6 +58,8 @@ static herr_t H5D__read(H5D_t *dataset, hid_t mem_type_id, static herr_t H5D__write(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space, const H5S_t *file_space, hid_t dset_xfer_plist, const void *buf); +static herr_t H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, + hid_t file_space_id, hid_t dxpl_id, const void *buf); /* Setup/teardown routines */ static herr_t H5D__ioinfo_init(H5D_t *dset, const H5D_dxpl_cache_t *dxpl_cache, @@ -215,37 +217,51 @@ herr_t H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, const void *buf) { - H5D_t *dset = NULL; - const H5S_t *mem_space = NULL; - const H5S_t *file_space = NULL; - char fake_char; herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) H5TRACE6("e", "iiiii*x", dset_id, mem_type_id, mem_space_id, file_space_id, dxpl_id, buf); + if(!dset_id) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") + + if(H5D__pre_write(dset_id, mem_type_id, mem_space_id, file_space_id, dxpl_id, buf) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't prepare for writing data") + +done: + FUNC_LEAVE_API(ret_value) +} /* end H5Dwrite() */ + + +/*------------------------------------------------------------------------- + * Function: H5D__pre_write + * + * Purpose: Preparation for writing data. + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Raymond Lu + * 2 November 2012 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, + hid_t file_space_id, hid_t dxpl_id, const void *buf) +{ + H5D_t *dset = NULL; + H5P_genplist_t *plist; /* Property list pointer */ + htri_t direct_write = FALSE; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI(FAIL) + /* check arguments */ if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") if(NULL == dset->oloc.file) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") - if(H5S_ALL != mem_space_id) { - if(NULL == (mem_space = (const H5S_t *)H5I_object_verify(mem_space_id, H5I_DATASPACE))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space") - - /* Check for valid selection */ - if(H5S_SELECT_VALID(mem_space) != TRUE) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "memory selection+offset not within extent") - } /* end if */ - if(H5S_ALL != file_space_id) { - if(NULL == (file_space = (const H5S_t *)H5I_object_verify(file_space_id, H5I_DATASPACE))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space") - - /* Check for valid selection */ - if(H5S_SELECT_VALID(file_space) != TRUE) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "file selection+offset not within extent") - } /* end if */ + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file") /* Get the default dataset transfer property list if the user didn't provide one */ if(H5P_DEFAULT == dxpl_id) @@ -253,23 +269,107 @@ H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, else if(TRUE != H5P_isa_class(dxpl_id, H5P_DATASET_XFER)) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not xfer parms") - if(!buf && (NULL == file_space || H5S_GET_SELECT_NPOINTS(file_space) != 0)) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer") - /* If the buffer is nil, and 0 element is selected, make a fake buffer. - * This is for some MPI package like ChaMPIon on NCSA's tungsten which - * doesn't support this feature. - */ - if(!buf) - buf = &fake_char; - - /* write raw data */ - if(H5D__write(dset, mem_type_id, mem_space, file_space, dxpl_id, buf) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") + /* Get the plist structure */ + if(NULL == (plist = H5P_object_verify(dxpl_id, H5P_DATASET_XFER))) + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID") + + if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &direct_write) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting flag for direct chunk write") + + /* Direct chunk write */ + if(direct_write) { + uint32_t direct_filters = 0; + hsize_t *direct_offset; + size_t direct_datasize = 0; + int ndims = 0; + hsize_t *dims = NULL; + hsize_t *internal_offset = NULL; + int i; + + if(H5D_CHUNKED != dset->shared->layout.type) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset") + + + if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME, &direct_filters) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting filter info for direct chunk write") + + if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME, &direct_offset) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting offset info for direct chunk write") + + if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME, &direct_datasize) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting data size for direct chunk write") + + /* The library's chunking code requires the offset terminates with a zero. So transfer the + * offset array to an internal offset array */ + ndims = (int)H5S_GET_EXTENT_NDIMS(dset->shared->space); + if(NULL == (dims = (hsize_t *)H5MM_malloc(ndims*sizeof(hsize_t)))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for dimensions") + + if(NULL == (internal_offset = (hsize_t *)H5MM_malloc((ndims+1)*sizeof(hsize_t)))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for offset") + + if(H5S_get_simple_extent_dims(dset->shared->space, dims, NULL) < 0) + HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") + + for(i=0; i dims[i]) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") + + /* Make sure the offset fall right on a chunk's boundary */ + if(direct_offset[i] % dset->shared->layout.u.chunk.dim[i]) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary") + + internal_offset[i] = direct_offset[i]; + } + + /* Terminate the offset with a zero */ + internal_offset[ndims] = 0; + + /* write raw data */ + if(H5D__chunk_direct_write(dset, dxpl_id, direct_filters, internal_offset, direct_datasize, buf) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write chunk directly") + } else { /* Normal write */ + const H5S_t *mem_space = NULL; + const H5S_t *file_space = NULL; + char fake_char; + + if(H5S_ALL != mem_space_id) { + if(NULL == (mem_space = (const H5S_t *)H5I_object_verify(mem_space_id, H5I_DATASPACE))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space") + + /* Check for valid selection */ + if(H5S_SELECT_VALID(mem_space) != TRUE) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "memory selection+offset not within extent") + } /* end if */ + if(H5S_ALL != file_space_id) { + if(NULL == (file_space = (const H5S_t *)H5I_object_verify(file_space_id, H5I_DATASPACE))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space") + + /* Check for valid selection */ + if(H5S_SELECT_VALID(file_space) != TRUE) + HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "file selection+offset not within extent") + } /* end if */ + + if(!buf && (NULL == file_space || H5S_GET_SELECT_NPOINTS(file_space) != 0)) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer") + + /* If the buffer is nil, and 0 element is selected, make a fake buffer. + * This is for some MPI package like ChaMPIon on NCSA's tungsten which + * doesn't support this feature. + */ + if(!buf) + buf = &fake_char; + + /* write raw data */ + if(H5D__write(dset, mem_type_id, mem_space, file_space, dxpl_id, buf) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") + } done: - FUNC_LEAVE_API(ret_value) -} /* end H5Dwrite() */ + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5D__pre_write() */ /*------------------------------------------------------------------------- @@ -286,7 +386,7 @@ done: *------------------------------------------------------------------------- */ herr_t -H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offset, +H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, uint32_t filters, hsize_t *offset, size_t data_size, const void *buf) { H5D_t *dset = NULL; @@ -302,7 +402,7 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offse if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") if(NULL == dset->oloc.file) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file") if(H5D_CHUNKED != dset->shared->layout.type) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset") @@ -314,8 +414,14 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offse if(TRUE != H5P_isa_class(dxpl_id, H5P_DATASET_XFER)) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not xfer parms") + if(!offset) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no offset") + + if(!data_size) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no data size") + if(!buf) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer") + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no data buffer") ndims = (int)H5S_GET_EXTENT_NDIMS(dset->shared->space); if(NULL == (dims = (hsize_t *)H5MM_malloc(ndims*sizeof(hsize_t)))) @@ -344,7 +450,7 @@ H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offse /* write raw data */ if(H5D__chunk_direct_write(dset, dxpl_id, filters, internal_offset, data_size, buf) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data") + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write chunk directly") done: if(dims) diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index af9931f..9adf6a5 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -176,7 +176,7 @@ H5_DLL herr_t H5D_chunk_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_ad H5_DLL herr_t H5D_btree_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent, int fwidth, unsigned ndims); -H5_DLL herr_t H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, unsigned filters, +H5_DLL herr_t H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsize_t *offset, size_t data_size, const void *buf); #endif /* _H5Dprivate_H */ diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h index 58c2a2b..7090af7 100644 --- a/src/H5Dpublic.h +++ b/src/H5Dpublic.h @@ -34,6 +34,12 @@ #define H5D_CHUNK_CACHE_NBYTES_DEFAULT ((size_t) -1) #define H5D_CHUNK_CACHE_W0_DEFAULT -1. +/* Property names for H5LTDdirect_chunk_write */ +#define H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME "direct_chunk_flag" +#define H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME "direct_chunk_filters" +#define H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME "direct_chunk_offset" +#define H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME "direct_chunk_datasize" + /*******************/ /* Public Typedefs */ /*******************/ @@ -118,7 +124,7 @@ H5_DLL herr_t H5Dread(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, void *buf/*out*/); H5_DLL herr_t H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, const void *buf); -H5_DLL herr_t H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, unsigned filters, hsize_t *offset, +H5_DLL herr_t H5PSIdirect_write(hid_t dset_id, hid_t dxpl_id, uint32_t filters, hsize_t *offset, size_t data_size, const void *buf); H5_DLL herr_t H5Diterate(void *buf, hid_t type_id, hid_t space_id, H5D_operator_t op, void *operator_data); diff --git a/src/H5Pdxpl.c b/src/H5Pdxpl.c index 04ff54a..d8f0c6f 100644 --- a/src/H5Pdxpl.c +++ b/src/H5Pdxpl.c @@ -158,6 +158,15 @@ #define H5D_XFER_XFORM_COPY H5P__dxfr_xform_copy #define H5D_XFER_XFORM_CMP H5P__dxfr_xform_cmp #define H5D_XFER_XFORM_CLOSE H5P__dxfr_xform_close +/* Definitions for properties of direct chunk write */ +#define H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_SIZE sizeof(htri_t) +#define H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_DEF FALSE +#define H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_SIZE sizeof(uint32_t) +#define H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_DEF 0 +#define H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_SIZE sizeof(hsize_t *) +#define H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_DEF NULL +#define H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_SIZE sizeof(size_t) +#define H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_DEF 0 /******************/ /* Local Typedefs */ @@ -255,7 +264,10 @@ static const H5Z_EDC_t H5D_def_enable_edc_g = H5D_XFER_EDC_DEF; /* De static const H5Z_cb_t H5D_def_filter_cb_g = H5D_XFER_FILTER_CB_DEF; /* Default value for filter callback */ static const H5T_conv_cb_t H5D_def_conv_cb_g = H5D_XFER_CONV_CB_DEF; /* Default value for datatype conversion callback */ static const void *H5D_def_xfer_xform_g = H5D_XFER_XFORM_DEF; /* Default value for data transform */ - +static const htri_t H5D_def_direct_chunk_flag_g = H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_DEF; /* Default value for the flag of direct chunk write */ +static const uint32_t H5D_def_direct_chunk_filters_g = H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_DEF; /* Default value for the filters of direct chunk write */ +static const hsize_t *H5D_def_direct_chunk_offset_g = H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_DEF; /* Default value for the offset of direct chunk write */ +static const size_t H5D_def_direct_chunk_datasize_g = H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_DEF; /* Default value for the datasize of direct chunk write */ /*------------------------------------------------------------------------- @@ -426,6 +438,26 @@ H5P__dxfr_reg_prop(H5P_genclass_t *pclass) H5D_XFER_XFORM_DEL, H5D_XFER_XFORM_COPY, H5D_XFER_XFORM_CMP, H5D_XFER_XFORM_CLOSE) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + /* Register the property of flag for direct chunk write */ + if(H5P_register_real(pclass, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_SIZE, &H5D_def_direct_chunk_flag_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + + /* Register the property of filter for direct chunk write */ + if(H5P_register_real(pclass, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_SIZE, &H5D_def_direct_chunk_filters_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + + /* Register the property of offset for direct chunk write */ + if(H5P_register_real(pclass, H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME, H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_SIZE, &H5D_def_direct_chunk_offset_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + + /* Register the property of datasize for direct chunk write */ + if(H5P_register_real(pclass, H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME, H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_SIZE, &H5D_def_direct_chunk_datasize_g, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class") + done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5P__dxfr_reg_prop() */ diff --git a/test/testfiles/err_compat_1 b/test/testfiles/err_compat_1 index e2b37ab..5f4fd47 100644 --- a/test/testfiles/err_compat_1 +++ b/test/testfiles/err_compat_1 @@ -57,6 +57,9 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs): #001: (file name) line (number) in test_error2(): H5Dwrite shouldn't succeed major: Error API minor: Write failed - #002: (file name) line (number) in H5Dwrite(): not a dataset + #002: (file name) line (number) in H5Dwrite(): can't prepare for writing data + major: Dataset + minor: Write failed + #003: (file name) line (number) in H5D__pre_write(): not a dataset major: Invalid arguments to routine minor: Inappropriate type -- cgit v0.12 From e9a9c23a6dbc1c3aa05a4dcb25702c49533517db Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 7 Nov 2012 12:11:22 -0500 Subject: [svn-r23018] I forgot to add these new files in previous commit. --- hl/src/H5DO.c | 111 +++++++++++++++++ hl/src/H5DOprivate.h | 37 ++++++ hl/src/H5DOpublic.h | 42 +++++++ hl/test/test_dset_opt.c | 318 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 508 insertions(+) create mode 100644 hl/src/H5DO.c create mode 100644 hl/src/H5DOprivate.h create mode 100644 hl/src/H5DOpublic.h create mode 100644 hl/test/test_dset_opt.c diff --git a/hl/src/H5DO.c b/hl/src/H5DO.c new file mode 100644 index 0000000..5b8041e --- /dev/null +++ b/hl/src/H5DO.c @@ -0,0 +1,111 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* Copyright by The HDF Group. * +* Copyright by the Board of Trustees of the University of Illinois. * +* All rights reserved. * +* * +* This file is part of HDF5. The full HDF5 copyright notice, including * +* terms governing use, modification, and redistribution, is contained in * +* the files COPYING and Copyright.html. COPYING can be found at the root * +* of the source code distribution tree; Copyright.html can be found at the * +* root level of an installed copy of the electronic HDF5 document set and * +* is linked from the top-level documents page. It can also be found at * +* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * +* access to either file, you may request a copy from help@hdfgroup.org. * +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include +#include +#include +#include + +#include "H5DOprivate.h" + +/*------------------------------------------------------------------------- + * Function: H5DOwrite_chunk + * + * Purpose: Writes an entire chunk to the file directly. + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Raymond Lu + * 30 July 2012 + * + * Modifications: + *------------------------------------------------------------------------- + */ +herr_t +H5DOwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, hsize_t *offset, + size_t data_size, const void *buf) +{ + htri_t created_dxpl = FALSE; + + if(dset_id < 0) + goto error; + + if(!buf) + goto error; + + if(!offset) + goto error; + + if(!data_size) + goto error; + + if(H5P_DEFAULT == dxpl_id) { + dxpl_id = H5Pcreate(H5P_DATASET_XFER); + created_dxpl = TRUE; + } + + if(H5DO_write_chunk(dset_id, dxpl_id, filters, offset, data_size, buf) < 0) + goto error; + + if(created_dxpl) { + if(H5Pclose(dxpl_id) < 0) + goto error; + } + +error: + return FAIL; +} + +/*------------------------------------------------------------------------- + * Function: H5DO_write_chunk + * + * Purpose: Private function for H5DOwrite_chunk + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Raymond Lu + * 30 July 2012 + * + * Modifications: + *------------------------------------------------------------------------- + */ +herr_t +H5DO_write_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, hsize_t *offset, + size_t data_size, const void *buf) +{ + htri_t do_direct_write = TRUE; + + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &do_direct_write) < 0) + goto error; + + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME, &filters) < 0) + goto error; + + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME, &offset) < 0) + goto error; + + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME, &data_size) < 0) + goto error; + + if(H5Dwrite(dset_id, 0, H5S_ALL, H5S_ALL, dxpl_id, buf) < 0) + goto error; + + do_direct_write = FALSE; + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &do_direct_write) < 0) + goto error; + +error: + return FAIL; +} diff --git a/hl/src/H5DOprivate.h b/hl/src/H5DOprivate.h new file mode 100644 index 0000000..8617567 --- /dev/null +++ b/hl/src/H5DOprivate.h @@ -0,0 +1,37 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef _H5DOprivate_H +#define _H5DOprivate_H + +/* High-level library internal header file */ +#include "H5HLprivate2.h" + +/* public LT prototypes */ +#include "H5DOpublic.h" + +/*------------------------------------------------------------------------- + * Private functions + *------------------------------------------------------------------------- + */ + +H5_HLDLL herr_t H5DO_write_chunk(hid_t dset_id, + hid_t dxpl_id, + uint32_t filters, + hsize_t *offset, + size_t data_size, + const void *buf); + +#endif diff --git a/hl/src/H5DOpublic.h b/hl/src/H5DOpublic.h new file mode 100644 index 0000000..b20de56 --- /dev/null +++ b/hl/src/H5DOpublic.h @@ -0,0 +1,42 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef _H5DOpublic_H +#define _H5DOpublic_H + +#ifdef __cplusplus +extern "C" { +#endif + +/*------------------------------------------------------------------------- + * + * Direct chunk write function + * + *------------------------------------------------------------------------- + */ + +H5_HLDLL herr_t H5DOwrite_chunk(hid_t dset_id, + hid_t dxpl_id, + uint32_t filters, + hsize_t *offset, + size_t data_size, + const void *buf); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c new file mode 100644 index 0000000..35dc73c --- /dev/null +++ b/hl/test/test_dset_opt.c @@ -0,0 +1,318 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* Copyright by The HDF Group. * +* Copyright by the Board of Trustees of the University of Illinois. * +* All rights reserved. * +* * +* This file is part of HDF5. The full HDF5 copyright notice, including * +* terms governing use, modification, and redistribution, is contained in * +* the files COPYING and Copyright.html. COPYING can be found at the root * +* of the source code distribution tree; Copyright.html can be found at the * +* root level of an installed copy of the electronic HDF5 document set and * +* is linked from the top-level documents page. It can also be found at * +* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * +* access to either file, you may request a copy from help@hdfgroup.org. * +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include +#include +#include "h5hltest.h" +#include "H5srcdir.h" +#include "H5DOpublic.h" +#include +#include + +#define FILE_NAME5 "test_dectris.h5" + +#define DATASETNAME "Array" +#define RANK 2 +#define NX 16 +#define NY 16 +#define CHUNK_NX 4 +#define CHUNK_NY 4 + +#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) + +static int +test_direct_chunk_write (void) +{ + char filename[1024]; + hid_t file; /* handles */ + hid_t fapl; + hid_t dataspace, dataset; + hid_t mem_space; + hid_t cparms, dxpl; + hsize_t dims[2] = {NX, NY}; + hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; + herr_t status; + int ret; + int data[NX][NY]; + int check[NX][NY]; + int i, j, n; + + unsigned filter_mask = 0; + int direct_buf[CHUNK_NX][CHUNK_NY]; + int check_chunk[CHUNK_NX][CHUNK_NY]; + hsize_t offset[2] = {0, 0}; + size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); + + const Bytef *z_src = (const Bytef*)(direct_buf); + Bytef *z_dst; /*destination buffer */ + uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + uLong z_src_nbytes = (uLong)buf_size; + int aggression = 9; /* Compression aggression setting */ + void *outbuf = NULL; /* Pointer to new buffer */ + + hsize_t start[2]; /* Start of hyperslab */ + hsize_t stride[2]; /* Stride of hyperslab */ + hsize_t count[2]; /* Block count */ + hsize_t block[2]; /* Block sizes */ + + TESTING("H5DOwrite_chunk"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, maxdims)) < 0) + goto error; + + if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) + goto error; + + /* + * Create a new file. If file exists its contents will be overwritten. + */ + if((file = H5Fcreate(FILE_NAME5, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto error; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + goto error; + + if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) + goto error; + + if((status = H5Pset_deflate( cparms, aggression)) < 0) + goto error; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DATASETNAME, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + goto error; + + /* Initialize the dataset */ + for(i = n = 0; i < NX; i++) + for(j = 0; j < NY; j++) + data[i][j] = n++; + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + goto error; + + /* + * Write the data for the dataset. It should stay in the chunk cache. + * It will be evicted from the cache by the H5DOwrite_chunk calls. + */ + if((status = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, + dxpl, data)) < 0) + goto error; + + /* Initialize data for one chunk */ + for(i = n = 0; i < CHUNK_NX; i++) + for(j = 0; j < CHUNK_NY; j++) + direct_buf[i][j] = n++; + + /* Allocate output (compressed) buffer */ + outbuf = malloc(z_dst_nbytes); + z_dst = (Bytef *)outbuf; + + /* Perform compression from the source to the destination buffer */ + ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); + + /* Check for various zlib errors */ + if(Z_BUF_ERROR == ret) { + fprintf(stderr, "overflow"); + goto error; + } else if(Z_MEM_ERROR == ret) { + fprintf(stderr, "deflate memory error"); + goto error; + } else if(Z_OK != ret) { + fprintf(stderr, "other deflate error"); + goto error; + } + + /* Write the compressed chunk data repeatedly to cover all the chunks in the + * dataset, using the direct writing function. */ + for(i=0; i Date: Wed, 7 Nov 2012 16:59:43 -0500 Subject: [svn-r23019] I added dectris_hl_perf.c for testing performance. Tested on koala. --- hl/test/dectris_hl_perf.c | 643 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 643 insertions(+) create mode 100644 hl/test/dectris_hl_perf.c diff --git a/hl/test/dectris_hl_perf.c b/hl/test/dectris_hl_perf.c new file mode 100644 index 0000000..1938410 --- /dev/null +++ b/hl/test/dectris_hl_perf.c @@ -0,0 +1,643 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This test is for the DECTRIS project to the H5DOwrite_chunk function + * + */ + +#include "hdf5.h" +#include "hdf5_hl.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const char *FILENAME[] = { + "dectris_perf", + "unix.raw", + NULL +}; + +/* + * Print the current location on the standard output stream. + */ +#define FUNC __func__ +#define AT() printf (" at %s:%d in %s()...\n", \ + __FILE__, __LINE__, FUNC); +#define H5_FAILED() {puts("*FAILED*");fflush(stdout);} +#define TEST_ERROR {H5_FAILED(); AT(); goto error;} +#define TESTING(WHAT) {printf("Testing %-62s",WHAT); fflush(stdout);} +#define PASSED() {puts(" PASSED");fflush(stdout);} + +#define DIRECT_UNCOMPRESSED_DSET "direct_uncompressed_dset" +#define DIRECT_COMPRESSED_DSET "direct_compressed_dset" +#define REG_COMPRESSED_DSET "reg_compressed_dset" +#define REG_NO_COMPRESS_DSET "reg_no_compress_dset" +#define RANK 3 +#define NX 100 +#define NY 1000 +#define NZ 250 +#define CHUNK_NX 1 +#define CHUNK_NY 1000 +#define CHUNK_NZ 250 + +#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) +char filename[1024]; +unsigned int *outbuf[NX]; +size_t data_size[NX]; +double total_size = 0.0; +unsigned int *direct_buf[NX]; +double MB = 1048576.0; + +/*-------------------------------------------------- + * Function to report IO rate + *-------------------------------------------------- + */ +void reportTime(struct timeval start, double mbytes) +{ + struct timeval timeval_stop,timeval_diff; + + /*end timing*/ + gettimeofday(&timeval_stop,NULL); + + /* Calculate the elapsed gettimeofday time */ + timeval_diff.tv_usec=timeval_stop.tv_usec-start.tv_usec; + timeval_diff.tv_sec=timeval_stop.tv_sec-start.tv_sec; + + if(timeval_diff.tv_usec<0) { + timeval_diff.tv_usec+=1000000; + timeval_diff.tv_sec--; + } /* end if */ + +/*printf("mbytes=%lf, sec=%lf, usec=%lf\n", mbytes, (double)timeval_diff.tv_sec, (double)timeval_diff.tv_usec);*/ + printf("MBytes/second: %lf\n", (double)mbytes/((double)timeval_diff.tv_sec+((double)timeval_diff.tv_usec/(double)1000000.0))); +} + +/*-------------------------------------------------- + * Create file, datasets, and initialize data + *-------------------------------------------------- + */ +int create_file(hid_t fapl_id) +{ + hid_t file; /* handles */ + hid_t fapl; + hid_t cparms; + hid_t dataspace, dataset; + hsize_t dims[RANK] = {NX, NY, NZ}; + hsize_t chunk_dims[RANK] ={CHUNK_NX, CHUNK_NY, CHUNK_NZ}; + unsigned int aggression = 9; /* Compression aggression setting */ + int ret; + int i, j, n; + + int flag; + int unix_file; + + unsigned int *p; + size_t buf_size = CHUNK_NY*CHUNK_NZ*sizeof(unsigned int); + + const Bytef *z_src; + Bytef *z_dst; /*destination buffer */ + uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + uLong z_src_nbytes = (uLong)buf_size; + + TESTING("Create a file and dataset"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, NULL)) < 0) + TEST_ERROR; + + /* + * Create a new file. If file exists its contents will be overwritten. + */ + if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) + TEST_ERROR; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + TEST_ERROR; + + if(H5Pset_chunk( cparms, RANK, chunk_dims) < 0) + TEST_ERROR; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DIRECT_UNCOMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + if((dataset = H5Dcreate2(file, REG_NO_COMPRESS_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + /* Set compression */ + if(H5Pset_deflate( cparms, aggression) < 0) + TEST_ERROR; + + if((dataset = H5Dcreate2(file, DIRECT_COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + + if((dataset = H5Dcreate2(file, REG_COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + TEST_ERROR; + + if(H5Dclose(dataset) < 0) + TEST_ERROR; + + if(H5Fclose(file) < 0) + TEST_ERROR; + + if(H5Sclose(dataspace) < 0) + TEST_ERROR; + + if(H5Pclose(cparms) < 0) + TEST_ERROR; + + /* create a unix file*/ + flag = O_CREAT|O_TRUNC|O_WRONLY; + + if ((unix_file=open(FILENAME[1],flag,S_IRWXU))== -1) + TEST_ERROR; + + if (close(unix_file) < 0) + { + printf(" unable to close the file\n"); + TEST_ERROR; + } + + + /* Initialize data for chunks */ + for(i = 0; i < NX; i++) { + p = direct_buf[i] = (unsigned int*)malloc(CHUNK_NY*CHUNK_NZ*sizeof(unsigned int)); + + for(j=0; j < CHUNK_NY*CHUNK_NZ; j++, p++) + *p = rand() % 65000; + + z_src = (const Bytef*)direct_buf[i]; + + z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); + /* Allocate output (compressed) buffer */ + outbuf[i] = (unsigned int*)malloc((size_t)z_dst_nbytes); + z_dst = (Bytef *)outbuf[i]; + + /* Perform compression from the source to the destination buffer */ + ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); + + data_size[i] = (size_t)z_dst_nbytes; + total_size += data_size[i]; + + /* Check for various zlib errors */ + if(Z_BUF_ERROR == ret) { + fprintf(stderr, "overflow"); + TEST_ERROR; + } else if(Z_MEM_ERROR == ret) { + fprintf(stderr, "deflate memory error"); + TEST_ERROR; + } else if(Z_OK != ret) { + fprintf(stderr, "other deflate error"); + TEST_ERROR; + } + } + + + PASSED(); + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Fclose(file); + } H5E_END_TRY; + return 1; +} + +/*-------------------------------------------------- + * Benchmark the performance of the new function + * with precompressed data. + *-------------------------------------------------- + */ +int +test_direct_write_uncompressed_data(hid_t fapl_id) +{ + hid_t file; /* handles */ + hid_t dataspace, dataset; + hid_t dxpl; + herr_t status; + int i; + + unsigned filter_mask = 0; + hsize_t offset[RANK] = {0, 0, 0}; + + struct timeval timeval_start; + + TESTING("H5DOwrite_chunk for uncompressed data"); + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + TEST_ERROR; + + /* Start the timer */ + gettimeofday(&timeval_start,NULL); + + /* Reopen the file and dataset */ + if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + TEST_ERROR; + + if((dataset = H5Dopen(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) + TEST_ERROR; + + + /* Write the compressed chunk data repeatedly to cover all the chunks in the + * dataset, using the direct writing function. */ + for(i=0; i Date: Tue, 4 Dec 2012 14:47:35 -0500 Subject: [svn-r23075] I revised the code and test according to Quincey's review. I also added more test cases. Tested on koala. --- hl/src/H5DO.c | 90 +++-- hl/src/H5DOprivate.h | 2 +- hl/src/H5DOpublic.h | 2 +- hl/test/test_dset_opt.c | 893 +++++++++++++++++++++++++++++++++++++++++++++--- perform/dectris_perf.c | 8 +- src/H5Dchunk.c | 4 +- src/H5Dio.c | 25 +- src/H5Pdxpl.c | 8 +- 8 files changed, 935 insertions(+), 97 deletions(-) diff --git a/hl/src/H5DO.c b/hl/src/H5DO.c index 5b8041e..9cfd8c1 100644 --- a/hl/src/H5DO.c +++ b/hl/src/H5DO.c @@ -34,38 +34,53 @@ *------------------------------------------------------------------------- */ herr_t -H5DOwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, hsize_t *offset, +H5DOwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, const hsize_t *offset, size_t data_size, const void *buf) { - htri_t created_dxpl = FALSE; + hbool_t created_dxpl = FALSE; + herr_t ret_value = SUCCEED; /* Return value */ + + if(dset_id < 0) { + ret_value = FAIL; + goto done; + } - if(dset_id < 0) - goto error; + if(!buf) { + ret_value = FAIL; + goto done; + } - if(!buf) - goto error; - - if(!offset) - goto error; + if(!offset) { + ret_value = FAIL; + goto done; + } - if(!data_size) - goto error; + if(!data_size) { + ret_value = FAIL; + goto done; + } if(H5P_DEFAULT == dxpl_id) { - dxpl_id = H5Pcreate(H5P_DATASET_XFER); + if((dxpl_id = H5Pcreate(H5P_DATASET_XFER)) < 0) { + ret_value = FAIL; + goto done; + } + created_dxpl = TRUE; } - if(H5DO_write_chunk(dset_id, dxpl_id, filters, offset, data_size, buf) < 0) - goto error; + if(H5DO_write_chunk(dset_id, dxpl_id, filters, offset, data_size, buf) < 0) { + ret_value = FAIL; + goto done; + } +done: if(created_dxpl) { if(H5Pclose(dxpl_id) < 0) - goto error; + ret_value = FAIL; } -error: - return FAIL; + return ret_value; } /*------------------------------------------------------------------------- @@ -82,30 +97,41 @@ error: *------------------------------------------------------------------------- */ herr_t -H5DO_write_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, hsize_t *offset, +H5DO_write_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, const hsize_t *offset, size_t data_size, const void *buf) { - htri_t do_direct_write = TRUE; + hbool_t do_direct_write = TRUE; + herr_t ret_value = SUCCEED; /* Return value */ - if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &do_direct_write) < 0) - goto error; + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &do_direct_write) < 0) { + ret_value = FAIL; + goto done; + } - if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME, &filters) < 0) - goto error; + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME, &filters) < 0) { + ret_value = FAIL; + goto done; + } - if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME, &offset) < 0) - goto error; + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME, &offset) < 0) { + ret_value = FAIL; + goto done; + } - if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME, &data_size) < 0) - goto error; + if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME, &data_size) < 0) { + ret_value = FAIL; + goto done; + } - if(H5Dwrite(dset_id, 0, H5S_ALL, H5S_ALL, dxpl_id, buf) < 0) - goto error; + if(H5Dwrite(dset_id, 0, H5S_ALL, H5S_ALL, dxpl_id, buf) < 0) { + ret_value = FAIL; + goto done; + } +done: do_direct_write = FALSE; if(H5Pset(dxpl_id, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &do_direct_write) < 0) - goto error; + ret_value = FAIL; -error: - return FAIL; + return ret_value; } diff --git a/hl/src/H5DOprivate.h b/hl/src/H5DOprivate.h index 8617567..fcea585 100644 --- a/hl/src/H5DOprivate.h +++ b/hl/src/H5DOprivate.h @@ -30,7 +30,7 @@ H5_HLDLL herr_t H5DO_write_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, - hsize_t *offset, + const hsize_t *offset, size_t data_size, const void *buf); diff --git a/hl/src/H5DOpublic.h b/hl/src/H5DOpublic.h index b20de56..774709e 100644 --- a/hl/src/H5DOpublic.h +++ b/hl/src/H5DOpublic.h @@ -30,7 +30,7 @@ extern "C" { H5_HLDLL herr_t H5DOwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, - hsize_t *offset, + const hsize_t *offset, size_t data_size, const void *buf); diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c index 35dc73c..ebe28cc 100644 --- a/hl/test/test_dset_opt.c +++ b/hl/test/test_dset_opt.c @@ -21,9 +21,14 @@ #include #include -#define FILE_NAME5 "test_dectris.h5" +#define FILE_NAME "test_dectris.h5" -#define DATASETNAME "Array" +#define DATASETNAME1 "direct_write" +#define DATASETNAME2 "skip_one_filter" +#define DATASETNAME3 "skip_two_filters" +#define DATASETNAME4 "data_conv" +#define DATASETNAME5 "contiguous_dset" +#define DATASETNAME6 "invalid_argue" #define RANK 2 #define NX 16 #define NY 16 @@ -32,22 +37,65 @@ #define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) +/* Temporary filter IDs used for testing */ +#define H5Z_FILTER_BOGUS1 305 +#define H5Z_FILTER_BOGUS2 306 +#define ADD_ON 7 +#define FACTOR 3 + +/* Local prototypes for filter functions */ +static size_t filter_bogus1(unsigned int flags, size_t cd_nelmts, + const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf); +static size_t filter_bogus2(unsigned int flags, size_t cd_nelmts, + const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf); + +/* This message derives from H5Z */ +const H5Z_class2_t H5Z_BOGUS1[1] = {{ + H5Z_CLASS_T_VERS, /* H5Z_class_t version */ + H5Z_FILTER_BOGUS1, /* Filter id number */ + 1, 1, /* Encoding and decoding enabled */ + "bogus1", /* Filter name for debugging */ + NULL, /* The "can apply" callback */ + NULL, /* The "set local" callback */ + filter_bogus1, /* The actual filter function */ +}}; + +const H5Z_class2_t H5Z_BOGUS2[1] = {{ + H5Z_CLASS_T_VERS, /* H5Z_class_t version */ + H5Z_FILTER_BOGUS2, /* Filter id number */ + 1, 1, /* Encoding and decoding enabled */ + "bogus2", /* Filter name for debugging */ + NULL, /* The "can apply" callback */ + NULL, /* The "set local" callback */ + filter_bogus2, /* The actual filter function */ +}}; + +/*------------------------------------------------------------------------- + * Function: test_direct_chunk_write + * + * Purpose: Test the basic functionality of H5DOwrite_chunk + * + * Return: Success: 0 + * + * Failure: 1 + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ static int -test_direct_chunk_write (void) +test_direct_chunk_write (hid_t file) { - char filename[1024]; - hid_t file; /* handles */ - hid_t fapl; - hid_t dataspace, dataset; - hid_t mem_space; - hid_t cparms, dxpl; + hid_t dataspace = -1, dataset = -1; + hid_t mem_space = -1; + hid_t cparms = -1, dxpl = -1; hsize_t dims[2] = {NX, NY}; hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; herr_t status; int ret; int data[NX][NY]; - int check[NX][NY]; int i, j, n; unsigned filter_mask = 0; @@ -68,7 +116,7 @@ test_direct_chunk_write (void) hsize_t count[2]; /* Block count */ hsize_t block[2]; /* Block sizes */ - TESTING("H5DOwrite_chunk"); + TESTING("basic functionality of H5DOwrite_chunk"); /* * Create the data space with unlimited dimensions. @@ -80,12 +128,6 @@ test_direct_chunk_write (void) goto error; /* - * Create a new file. If file exists its contents will be overwritten. - */ - if((file = H5Fcreate(FILE_NAME5, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) - goto error; - - /* * Modify dataset creation properties, i.e. enable chunking and compression */ if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) @@ -94,14 +136,14 @@ test_direct_chunk_write (void) if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) goto error; - if((status = H5Pset_deflate( cparms, aggression)) < 0) + if((status = H5Pset_deflate( cparms, (unsigned) aggression)) < 0) goto error; /* * Create a new dataset within the file using cparms * creation properties. */ - if((dataset = H5Dcreate2(file, DATASETNAME, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + if((dataset = H5Dcreate2(file, DATASETNAME1, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, cparms, H5P_DEFAULT)) < 0) goto error; @@ -159,17 +201,13 @@ test_direct_chunk_write (void) if(outbuf) free(outbuf); - if(H5Dclose(dataset) < 0) - goto error; - - if(H5Fclose(file) < 0) + if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) goto error; - /* Reopen the file and dataset */ - if((file = H5Fopen(FILE_NAME5, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) + if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen(file, DATASETNAME1, H5P_DEFAULT)) < 0) goto error; /* @@ -237,17 +275,13 @@ test_direct_chunk_write (void) if(outbuf) free(outbuf); - if(H5Dclose(dataset) < 0) + if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) goto error; - if(H5Fclose(file) < 0) - goto error; - - /* Reopen the file and dataset */ - if((file = H5Fopen(FILE_NAME5, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) + if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen(file, DATASETNAME1, H5P_DEFAULT)) < 0) goto error; /* Read the chunk back */ @@ -274,9 +308,7 @@ test_direct_chunk_write (void) H5Sclose(dataspace); H5Pclose(cparms); H5Pclose(dxpl); - H5Fclose(file); - /* h5_cleanup(FILE_NAME5, fapl); */ PASSED(); return 0; @@ -287,7 +319,6 @@ error: H5Sclose(dataspace); H5Pclose(cparms); H5Pclose(dxpl); - H5Fclose(file); } H5E_END_TRY; if(outbuf) @@ -297,15 +328,795 @@ error: } /*------------------------------------------------------------------------- -* the main program -*------------------------------------------------------------------------- -*/ + * Function: test_skip_compress_write1 + * + * Purpose: Test skipping compression filter when it is the only filter + * for the dataset + * + * Return: Success: 0 + * + * Failure: 1 + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ +static int +test_skip_compress_write1(hid_t file) +{ + hid_t dataspace = -1, dataset = -1; + hid_t mem_space = -1; + hid_t cparms = -1, dxpl = -1; + hsize_t dims[2] = {NX, NY}; + hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; + herr_t status; + int i, j, n; + + unsigned filter_mask = 0; + int direct_buf[CHUNK_NX][CHUNK_NY]; + int check_chunk[CHUNK_NX][CHUNK_NY]; + hsize_t offset[2] = {0, 0}; + size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); + int aggression = 9; /* Compression aggression setting */ + + hsize_t start[2]; /* Start of hyperslab */ + hsize_t stride[2]; /* Stride of hyperslab */ + hsize_t count[2]; /* Block count */ + hsize_t block[2]; /* Block sizes */ + + TESTING("skipping compression filter for H5DOwrite_chunk"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, maxdims)) < 0) + goto error; + + if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) + goto error; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + goto error; + + if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) + goto error; + + if((status = H5Pset_deflate( cparms, (unsigned ) aggression)) < 0) + goto error; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DATASETNAME2, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + goto error; + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + goto error; + + /* Initialize data for one chunk */ + for(i = n = 0; i < CHUNK_NX; i++) + for(j = 0; j < CHUNK_NY; j++) { + direct_buf[i][j] = n++; + } + + /* write the uncompressed chunk data repeatedly to dataset, using the direct writing function. + * Indicate skipping the compression filter. */ + offset[0] = CHUNK_NX; + offset[1] = CHUNK_NY; + + filter_mask = 0x00000001; + + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) < 0) + goto error; + + if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) + goto error; + + if(H5Dclose(dataset) < 0) + goto error; + + if((dataset = H5Dopen(file, DATASETNAME2, H5P_DEFAULT)) < 0) + goto error; + + /* + * Select hyperslab for the chunk just written in the file + */ + start[0] = CHUNK_NX; start[1] = CHUNK_NY; + stride[0] = 1; stride[1] = 1; + count[0] = 1; count[1] = 1; + block[0] = CHUNK_NX; block[1] = CHUNK_NY; + if((status = H5Sselect_hyperslab(dataspace, H5S_SELECT_SET, start, stride, count, block)) < 0) + goto error; + + /* Read the chunk back */ + if((status = H5Dread(dataset, H5T_NATIVE_INT, mem_space, dataspace, H5P_DEFAULT, check_chunk)) < 0) + goto error; + + /* Check that the values read are the same as the values written */ + for(i = 0; i < CHUNK_NX; i++) { + for(j = 0; j < CHUNK_NY; j++) { + if(direct_buf[i][j] != check_chunk[i][j]) { + printf(" 1. Read different values than written."); + printf(" At index %d,%d\n", i, j); + printf(" direct_buf=%d, check_chunk=%d\n", direct_buf[i][j], check_chunk[i][j]); + goto error; + } + } + } + + /* + * Close/release resources. + */ + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + + PASSED(); + return 0; + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + } H5E_END_TRY; + + return 1; +} + +/*------------------------------------------------------------------------- + * Function: filter_bogus1 + * + * Purpose: A bogus filte that adds ADD_ON to the original value + * + * Return: Success: Data chunk size + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ +static size_t +filter_bogus1(unsigned int flags, size_t UNUSED cd_nelmts, + const unsigned int UNUSED *cd_values, size_t nbytes, + size_t *buf_size, void **buf) +{ + int *int_ptr=(int *)*buf; /* Pointer to the data values */ + size_t buf_left=*buf_size; /* Amount of data buffer left to process */ + + if(flags & H5Z_FLAG_REVERSE) { /* read */ + /* Substract the "add on" value to all the data values */ + while(buf_left>0) { + *int_ptr++ -= (int)ADD_ON; + buf_left -= sizeof(int); + } /* end while */ + } /* end if */ + else { /* write */ + /* Add the "add on" value to all the data values */ + while(buf_left>0) { + *int_ptr++ += (int)ADD_ON; + buf_left -= sizeof(int); + } /* end while */ + } /* end else */ + + return nbytes; +} + +/*------------------------------------------------------------------------- + * Function: filter_bogus2 + * + * Purpose: A bogus filter that multiplies the original value by FACTOR. + * + * Return: Success: Data chunk size + * + * Programmer: Raymond Lu + * 30 November 2012 + *------------------------------------------------------------------------- + */ +static size_t +filter_bogus2(unsigned int flags, size_t UNUSED cd_nelmts, + const unsigned int UNUSED *cd_values, size_t nbytes, + size_t *buf_size, void **buf) +{ + int *int_ptr=(int *)*buf; /* Pointer to the data values */ + size_t buf_left=*buf_size; /* Amount of data buffer left to process */ + + if(flags & H5Z_FLAG_REVERSE) { /* read */ + /* Substract the "add on" value to all the data values */ + while(buf_left>0) { + *int_ptr++ /= (int)FACTOR; + buf_left -= sizeof(int); + } /* end while */ + } /* end if */ + else { /* write */ + /* Add the "add on" value to all the data values */ + while(buf_left>0) { + *int_ptr++ *= (int)FACTOR; + buf_left -= sizeof(int); + } /* end while */ + } /* end else */ + + return nbytes; +} + +/*------------------------------------------------------------------------- + * Function: test_skip_compress_write2 + * + * Purpose: Test skipping compression filter when there are three filters + * for the dataset + * + * Return: Success: 0 + * + * Failure: 1 + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ +static int +test_skip_compress_write2(hid_t file) +{ + hid_t dataspace = -1, dataset = -1; + hid_t mem_space = -1; + hid_t cparms = -1, dxpl = -1; + hsize_t dims[2] = {NX, NY}; + hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; + herr_t status; + int i, j, n; + + unsigned filter_mask = 0; + int origin_direct_buf[CHUNK_NX][CHUNK_NY]; + int direct_buf[CHUNK_NX][CHUNK_NY]; + int check_chunk[CHUNK_NX][CHUNK_NY]; + hsize_t offset[2] = {0, 0}; + size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); + int aggression = 9; /* Compression aggression setting */ + + hsize_t start[2]; /* Start of hyperslab */ + hsize_t stride[2]; /* Stride of hyperslab */ + hsize_t count[2]; /* Block count */ + hsize_t block[2]; /* Block sizes */ + + TESTING("skipping compression filters but keep two other filters"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, maxdims)) < 0) + goto error; + + if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) + goto error; + + /* + * Modify dataset creation properties, i.e. enable chunking and compression. + * The order of filters is bogus 1 + deflate + bogus 2. + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + goto error; + + if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) + goto error; + + /* Register and enable first bogus filter */ + if(H5Zregister (H5Z_BOGUS1) < 0) + goto error; + + if(H5Pset_filter(cparms, H5Z_FILTER_BOGUS1, 0, (size_t)0, NULL) < 0) + goto error; + + /* Enable compression filter */ + if((status = H5Pset_deflate( cparms, (unsigned) aggression)) < 0) + goto error; + + /* Register and enable second bogus filter */ + if(H5Zregister (H5Z_BOGUS2) < 0) + goto error; + + if(H5Pset_filter(cparms, H5Z_FILTER_BOGUS2, 0, (size_t)0, NULL) < 0) + goto error; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DATASETNAME3, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + goto error; + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + goto error; + + /* Initialize data for one chunk. Apply operations of two bogus filters to the chunk */ + for(i = n = 0; i < CHUNK_NX; i++) + for(j = 0; j < CHUNK_NY; j++) { + origin_direct_buf[i][j] = n++; + direct_buf[i][j] = (origin_direct_buf[i][j] + ADD_ON) * FACTOR; + } + + /* write the uncompressed chunk data repeatedly to dataset, using the direct writing function. + * Indicate skipping the compression filter but keep the other two bogus filters */ + offset[0] = CHUNK_NX; + offset[1] = CHUNK_NY; + + /* compression filter is the middle one to be skipped */ + filter_mask = 0x00000002; + + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) < 0) + goto error; + + if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) + goto error; + + if(H5Dclose(dataset) < 0) + goto error; + + if((dataset = H5Dopen(file, DATASETNAME3, H5P_DEFAULT)) < 0) + goto error; + + /* + * Select hyperslab for one chunk in the file + */ + start[0] = CHUNK_NX; start[1] = CHUNK_NY; + stride[0] = 1; stride[1] = 1; + count[0] = 1; count[1] = 1; + block[0] = CHUNK_NX; block[1] = CHUNK_NY; + if((status = H5Sselect_hyperslab(dataspace, H5S_SELECT_SET, start, stride, count, block)) < 0) + goto error; + + /* Read the chunk back */ + if((status = H5Dread(dataset, H5T_NATIVE_INT, mem_space, dataspace, H5P_DEFAULT, check_chunk)) < 0) + goto error; + + /* Check that the values read are the same as the values written */ + for(i = 0; i < CHUNK_NX; i++) { + for(j = 0; j < CHUNK_NY; j++) { + if(origin_direct_buf[i][j] != check_chunk[i][j]) { + printf(" 1. Read different values than written."); + printf(" At index %d,%d\n", i, j); + printf(" origin_direct_buf=%d, check_chunk=%d\n", origin_direct_buf[i][j], check_chunk[i][j]); + goto error; + } + } + } + + /* + * Close/release resources. + */ + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + + PASSED(); + return 0; + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + } H5E_END_TRY; + + return 1; +} + +/*------------------------------------------------------------------------- + * Function: test_data_conv + * + * Purpose: Test data conversion + * + * Return: Success: 0 + * + * Failure: 1 + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ +static int +test_data_conv(hid_t file) +{ + typedef struct { + int a, b, c[4], d, e; + } src_type_t; + typedef struct { + int a, c[4], e; + } dst_type_t; + + hid_t dataspace = -1, dataset = -1; + hid_t mem_space = -1; + hid_t cparms = -1, dxpl = -1; + hsize_t dims[2] = {NX, NY}; + hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; + hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; + herr_t status; + int i, j, n; + const hsize_t four = 4; + hid_t st=-1, dt=-1; + hid_t array_dt; + + unsigned filter_mask = 0; + src_type_t direct_buf[CHUNK_NX][CHUNK_NY]; + dst_type_t check_chunk[CHUNK_NX][CHUNK_NY]; + hsize_t offset[2] = {0, 0}; + size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(src_type_t); + + hsize_t start[2]; /* Start of hyperslab */ + hsize_t stride[2]; /* Stride of hyperslab */ + hsize_t count[2]; /* Block count */ + hsize_t block[2]; /* Block sizes */ + + TESTING("data conversion for H5DOwrite_chunk"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, maxdims)) < 0) + goto error; + + if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) + goto error; + + /* + * Modify dataset creation properties, i.e. enable chunking + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + goto error; + + if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) + goto error; + + /* Build hdf5 datatypes */ + array_dt = H5Tarray_create2(H5T_NATIVE_INT, 1, &four); + if((st = H5Tcreate(H5T_COMPOUND, sizeof(src_type_t))) < 0 || + H5Tinsert(st, "a", HOFFSET(src_type_t, a), H5T_NATIVE_INT) < 0 || + H5Tinsert(st, "b", HOFFSET(src_type_t, b), H5T_NATIVE_INT) < 0 || + H5Tinsert(st, "c", HOFFSET(src_type_t, c), array_dt) < 0 || + H5Tinsert(st, "d", HOFFSET(src_type_t, d), H5T_NATIVE_INT) < 0 || + H5Tinsert(st, "e", HOFFSET(src_type_t, e), H5T_NATIVE_INT) < 0) + goto error; + + if(H5Tclose(array_dt) < 0) + goto error; + + array_dt = H5Tarray_create2(H5T_NATIVE_INT, 1, &four); + if((dt = H5Tcreate(H5T_COMPOUND, sizeof(dst_type_t))) < 0 || + H5Tinsert(dt, "a", HOFFSET(dst_type_t, a), H5T_NATIVE_INT) < 0 || + H5Tinsert(dt, "c", HOFFSET(dst_type_t, c), array_dt) < 0 || + H5Tinsert(dt, "e", HOFFSET(dst_type_t, e), H5T_NATIVE_INT) < 0) + goto error; + + if(H5Tclose(array_dt) < 0) + goto error; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DATASETNAME4, st, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + goto error; + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + goto error; + + /* Initialize data for one chunk */ + for(i = n = 0; i < CHUNK_NX; i++) { + for(j = 0; j < CHUNK_NY; j++) { + (direct_buf[i][j]).a = i*j+0; + (direct_buf[i][j]).b = i*j+1; + (direct_buf[i][j]).c[0] = i*j+2; + (direct_buf[i][j]).c[1] = i*j+3; + (direct_buf[i][j]).c[2] = i*j+4; + (direct_buf[i][j]).c[3] = i*j+5; + (direct_buf[i][j]).d = i*j+6; + (direct_buf[i][j]).e = i*j+7; + } + } + + /* write the chunk data to dataset, using the direct writing function. + * There should be no data conversion involved. */ + offset[0] = CHUNK_NX; + offset[1] = CHUNK_NY; + + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) < 0) + goto error; + + if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) + goto error; + + if(H5Dclose(dataset) < 0) + goto error; + + if((dataset = H5Dopen(file, DATASETNAME4, H5P_DEFAULT)) < 0) + goto error; + + /* + * Select hyperslab for the chunk just written in the file + */ + start[0] = CHUNK_NX; start[1] = CHUNK_NY; + stride[0] = 1; stride[1] = 1; + count[0] = 1; count[1] = 1; + block[0] = CHUNK_NX; block[1] = CHUNK_NY; + if((status = H5Sselect_hyperslab(dataspace, H5S_SELECT_SET, start, stride, count, block)) < 0) + goto error; + + /* Read the chunk back. Data should be converted */ + if((status = H5Dread(dataset, dt, mem_space, dataspace, H5P_DEFAULT, check_chunk)) < 0) + goto error; + + /* Check that the values read are the same as the values written */ + for(i = 0; i < CHUNK_NX; i++) { + for(j = 0; j < CHUNK_NY; j++) { + if ((direct_buf[i][j]).a != (check_chunk[i][j]).a || + (direct_buf[i][j]).c[0] != (check_chunk[i][j]).c[0] || + (direct_buf[i][j]).c[1] != (check_chunk[i][j]).c[1] || + (direct_buf[i][j]).c[2] != (check_chunk[i][j]).c[2] || + (direct_buf[i][j]).c[3] != (check_chunk[i][j]).c[3] || + (direct_buf[i][j]).e != (check_chunk[i][j]).e) { + printf(" 1. Read different values than written."); + printf(" At index %d,%d\n", i, j); + printf(" src={a=%d, b=%d, c=[%d,%d,%d,%d], d=%d, e=%d\n", + (direct_buf[i][j]).a, (direct_buf[i][j]).b, (direct_buf[i][j]).c[0], (direct_buf[i][j]).c[1], + (direct_buf[i][j]).c[2], (direct_buf[i][j]).c[3], (direct_buf[i][j]).d, (direct_buf[i][j]).e); + printf(" dst={a=%d, c=[%d,%d,%d,%d], e=%d\n", + (check_chunk[i][j]).a, (check_chunk[i][j]).c[0], (check_chunk[i][j]).c[1], (check_chunk[i][j]).c[2], + (check_chunk[i][j]).c[3], (check_chunk[i][j]).e); + + goto error; + } + } + } + + /* + * Close/release resources. + */ + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + H5Tclose(st); + H5Tclose(dt); + + + PASSED(); + return 0; + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + H5Tclose(st); + H5Tclose(dt); + } H5E_END_TRY; + + return 1; +} + +/*------------------------------------------------------------------------- + * Function: test_invalid_parameters + * + * Purpose: Test invalid parameters for H5DOwrite_chunk + * + * Return: Success: 0 + * + * Failure: 1 + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ +static int +test_invalid_parameters(hid_t file) +{ + hid_t dataspace = -1, dataset = -1; + hid_t mem_space = -1; + hid_t cparms = -1, dxpl = -1; + hsize_t dims[2] = {NX, NY}; + hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; + herr_t status; + int i, j, n; + + unsigned filter_mask = 0; + int direct_buf[CHUNK_NX][CHUNK_NY]; + int check_chunk[CHUNK_NX][CHUNK_NY]; + hsize_t offset[2] = {0, 0}; + size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); + int aggression = 9; /* Compression aggression setting */ + + TESTING("invalid parameters for H5DOwrite_chunk"); + + /* + * Create the data space with unlimited dimensions. + */ + if((dataspace = H5Screate_simple(RANK, dims, NULL)) < 0) + goto error; + + if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) + goto error; + + /* + * Modify dataset creation properties + */ + if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) + goto error; + + /* + * Create a new contiguous dataset to verify H5DOwrite_chunk doesn't work + */ + if((dataset = H5Dcreate2(file, DATASETNAME5, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + goto error; + + if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) + goto error; + + /* Initialize data for one chunk */ + for(i = n = 0; i < CHUNK_NX; i++) + for(j = 0; j < CHUNK_NY; j++) { + direct_buf[i][j] = n++; + } + + /* Try to write the chunk data to contiguous dataset. It should fail */ + offset[0] = CHUNK_NX; + offset[1] = CHUNK_NY; + + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + if(H5Dclose(dataset) < 0) + goto error; + + /* Create a chunked dataset with compression filter */ + if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) + goto error; + + if((status = H5Pset_deflate( cparms, (unsigned ) aggression)) < 0) + goto error; + + /* + * Create a new dataset within the file using cparms + * creation properties. + */ + if((dataset = H5Dcreate2(file, DATASETNAME6, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, + cparms, H5P_DEFAULT)) < 0) + goto error; + + /* Check invalid dataset ID */ + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(-1, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + /* Check invalid DXPL ID */ + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, -1, filter_mask, offset, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + /* Check invalid OFFSET */ + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, NULL, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + /* Check when OFFSET is out of dataset range */ + offset[0] = NX + 1; + offset[1] = NY; + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + /* Check when OFFSET is not on chunk boundary */ + offset[0] = CHUNK_NX; + offset[1] = CHUNK_NY + 1; + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + /* Check invalid buffer size */ + offset[0] = CHUNK_NX; + offset[1] = CHUNK_NY; + buf_size = 0; + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL) + goto error; + } H5E_END_TRY; + + /* Check invalid data buffer */ + buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); + H5E_BEGIN_TRY { + if((status = H5DOwrite_chunk(dataset, dxpl, filter_mask, offset, buf_size, NULL)) != FAIL) + goto error; + } H5E_END_TRY; + + if(H5Dclose(dataset) < 0) + goto error; + + /* + * Close/release resources. + */ + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + + PASSED(); + return 0; + +error: + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(mem_space); + H5Sclose(dataspace); + H5Pclose(cparms); + H5Pclose(dxpl); + } H5E_END_TRY; + + return 1; +} + +/*------------------------------------------------------------------------- + * Function: Main function + * + * Purpose: Test direct chunk write function H5DOwrite_chunk + * + * Return: Success: 0 + * + * Failure: 1 + * + * Programmer: Raymond Lu + * 30 November 2012 + * + *------------------------------------------------------------------------- + */ int main( void ) { - int nerrors=0; + hid_t file_id; + int nerrors=0; + + /* + * Create a new file. If file exists its contents will be overwritten. + */ + if((file_id = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto error; /* Test direct chunk write */ - nerrors += test_direct_chunk_write(); + nerrors += test_direct_chunk_write(file_id); + nerrors += test_skip_compress_write1(file_id); + nerrors += test_skip_compress_write2(file_id); + nerrors += test_data_conv(file_id); + nerrors += test_invalid_parameters(file_id); + + if(H5Fclose(file_id) < 0) + goto error; /* check for errors */ if (nerrors) diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c index abaa92f..4d2284d 100644 --- a/perform/dectris_perf.c +++ b/perform/dectris_perf.c @@ -53,11 +53,11 @@ const char *FILENAME[] = { #define REG_NO_COMPRESS_DSET "reg_no_compress_dset" #define RANK 3 #define NX 100 -#define NY 1000 -#define NZ 250 +#define NY 2000 +#define NZ 3000 #define CHUNK_NX 1 -#define CHUNK_NY 1000 -#define CHUNK_NZ 250 +#define CHUNK_NY 2000 +#define CHUNK_NZ 3000 #define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) char filename[1024]; diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 3b96fa0..c307b8c 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -283,7 +283,7 @@ H5FL_BLK_DEFINE_STATIC(chunk); /*------------------------------------------------------------------------- - * Function: H5D__direct_write + * Function: H5D__chunk_direct_write * * Purpose: Internal routine for H5PSIdirect_write to write a chunk * directly into the file. @@ -310,7 +310,6 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz H5FD_t *lf; herr_t ret_value = SUCCEED; /* Return value */ - /*FUNC_ENTER_PACKAGE*/ FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) /* Allocate data space and initialize it if it hasn't been. */ @@ -382,7 +381,6 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz done: - /*FUNC_LEAVE_NOAPI(ret_value)*/ FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) } diff --git a/src/H5Dio.c b/src/H5Dio.c index e5a9ccc..095c8a5 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -140,6 +140,10 @@ H5Dread(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") if(NULL == dset->oloc.file) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset") + + if(mem_space_id < 0 || file_space_id < 0) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space") + if(H5S_ALL != mem_space_id) { if(NULL == (mem_space = (const H5S_t *)H5I_object_verify(mem_space_id, H5I_DATASPACE))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space") @@ -252,10 +256,10 @@ H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, { H5D_t *dset = NULL; H5P_genplist_t *plist; /* Property list pointer */ - htri_t direct_write = FALSE; + hbool_t direct_write = FALSE; herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(FAIL) + FUNC_ENTER_STATIC /* check arguments */ if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET))) @@ -283,14 +287,13 @@ H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hsize_t *direct_offset; size_t direct_datasize = 0; int ndims = 0; - hsize_t *dims = NULL; - hsize_t *internal_offset = NULL; + hsize_t dims[H5O_LAYOUT_NDIMS]; + hsize_t internal_offset[H5O_LAYOUT_NDIMS]; int i; if(H5D_CHUNKED != dset->shared->layout.type) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset") - if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME, &direct_filters) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting filter info for direct chunk write") @@ -302,14 +305,7 @@ H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, /* The library's chunking code requires the offset terminates with a zero. So transfer the * offset array to an internal offset array */ - ndims = (int)H5S_GET_EXTENT_NDIMS(dset->shared->space); - if(NULL == (dims = (hsize_t *)H5MM_malloc(ndims*sizeof(hsize_t)))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for dimensions") - - if(NULL == (internal_offset = (hsize_t *)H5MM_malloc((ndims+1)*sizeof(hsize_t)))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for offset") - - if(H5S_get_simple_extent_dims(dset->shared->space, dims, NULL) < 0) + if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dims, NULL)) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") for(i=0; i Date: Wed, 5 Dec 2012 11:57:30 -0500 Subject: [svn-r23077] I adjusted the dataset and chunk to smaller sizes. Tested on koala. --- perform/dectris_perf.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c index 4d2284d..34bfb9e 100644 --- a/perform/dectris_perf.c +++ b/perform/dectris_perf.c @@ -53,11 +53,11 @@ const char *FILENAME[] = { #define REG_NO_COMPRESS_DSET "reg_no_compress_dset" #define RANK 3 #define NX 100 -#define NY 2000 -#define NZ 3000 +#define NY 1000 +#define NZ 250 #define CHUNK_NX 1 -#define CHUNK_NY 2000 -#define CHUNK_NZ 3000 +#define CHUNK_NY 1000 +#define CHUNK_NZ 250 #define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) char filename[1024]; @@ -87,7 +87,6 @@ void reportTime(struct timeval start, double mbytes) timeval_diff.tv_sec--; } /* end if */ -/*printf("mbytes=%lf, sec=%lf, usec=%lf\n", mbytes, (double)timeval_diff.tv_sec, (double)timeval_diff.tv_usec);*/ printf("MBytes/second: %lf\n", (double)mbytes/((double)timeval_diff.tv_sec+((double)timeval_diff.tv_usec/(double)1000000.0))); } -- cgit v0.12 From 8f3a8710ca0df1a18bc200612b2e50acafd8da1a Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 5 Dec 2012 15:15:54 -0500 Subject: [svn-r23078] I took out O_SYNC flag from the code. I used it to do performance test. But we decided not to support it. Tested on koala. --- hl/test/dectris_hl_perf.c | 10 +++++----- perform/dectris_perf.c | 10 +++++----- src/H5F.c | 6 +++--- src/H5FDsec2.c | 2 -- src/H5Fpublic.h | 1 - 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/hl/test/dectris_hl_perf.c b/hl/test/dectris_hl_perf.c index 1938410..c18fe1c 100644 --- a/hl/test/dectris_hl_perf.c +++ b/hl/test/dectris_hl_perf.c @@ -275,7 +275,7 @@ test_direct_write_uncompressed_data(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) @@ -340,7 +340,7 @@ test_direct_write_compressed_data(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, DIRECT_COMPRESSED_DSET, H5P_DEFAULT)) < 0) @@ -411,7 +411,7 @@ test_compressed_write(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, REG_COMPRESSED_DSET, H5P_DEFAULT)) < 0) @@ -499,7 +499,7 @@ test_no_compress_write(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, REG_NO_COMPRESS_DSET, H5P_DEFAULT)) < 0) @@ -568,7 +568,7 @@ test_unix_write(void) TESTING("Write compressed data to a Unix file"); /* create file*/ - flag = O_WRONLY|O_SYNC; + flag = O_WRONLY; /* Start the timer */ gettimeofday(&timeval_start,NULL); diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c index 34bfb9e..0be1aa1 100644 --- a/perform/dectris_perf.c +++ b/perform/dectris_perf.c @@ -273,7 +273,7 @@ test_direct_write_uncompressed_data(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) @@ -338,7 +338,7 @@ test_direct_write_compressed_data(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, DIRECT_COMPRESSED_DSET, H5P_DEFAULT)) < 0) @@ -409,7 +409,7 @@ test_compressed_write(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, REG_COMPRESSED_DSET, H5P_DEFAULT)) < 0) @@ -497,7 +497,7 @@ test_no_compress_write(hid_t fapl_id) gettimeofday(&timeval_start,NULL); /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR|H5F_ACC_SYNC, fapl_id)) < 0) + if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; if((dataset = H5Dopen(file, REG_NO_COMPRESS_DSET, H5P_DEFAULT)) < 0) @@ -566,7 +566,7 @@ test_unix_write(void) TESTING("Write compressed data to a Unix file"); /* create file*/ - flag = O_WRONLY|O_SYNC; + flag = O_WRONLY; /* Start the timer */ gettimeofday(&timeval_start,NULL); diff --git a/src/H5F.c b/src/H5F.c index d864e88..12c25cd 100644 --- a/src/H5F.c +++ b/src/H5F.c @@ -1261,7 +1261,7 @@ H5F_open(const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id, * way for us to detect it here anyway). */ if(drvr->cmp) - tent_flags = flags & ~(H5F_ACC_CREAT|H5F_ACC_TRUNC|H5F_ACC_EXCL|H5F_ACC_SYNC); + tent_flags = flags & ~(H5F_ACC_CREAT|H5F_ACC_TRUNC|H5F_ACC_EXCL); else tent_flags = flags; @@ -1464,9 +1464,9 @@ H5Fcreate(const char *filename, unsigned flags, hid_t fcpl_id, hid_t fapl_id) if(!filename || !*filename) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file name") /* In this routine, we only accept the following flags: - * H5F_ACC_SYNC, H5F_ACC_EXCL, H5F_ACC_TRUNC and H5F_ACC_DEBUG + * H5F_ACC_EXCL, H5F_ACC_TRUNC and H5F_ACC_DEBUG */ - if(flags & ~(H5F_ACC_SYNC | H5F_ACC_EXCL | H5F_ACC_TRUNC | H5F_ACC_DEBUG)) + if(flags & ~(H5F_ACC_EXCL | H5F_ACC_TRUNC | H5F_ACC_DEBUG)) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid flags") /* The H5F_ACC_EXCL and H5F_ACC_TRUNC flags are mutually exclusive */ if((flags & H5F_ACC_EXCL) && (flags & H5F_ACC_TRUNC)) diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index b65fee9..241609d 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -357,8 +357,6 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) o_flags |= O_CREAT; if(H5F_ACC_EXCL & flags) o_flags |= O_EXCL; - if(H5F_ACC_SYNC & flags) - o_flags |= O_SYNC; /* Open the file */ if((fd = HDopen(name, o_flags, 0666)) < 0) { diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index 7b7acb4..f32b3e0 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -48,7 +48,6 @@ #define H5F_ACC_EXCL (H5CHECK 0x0004u) /*fail if file already exists*/ #define H5F_ACC_DEBUG (H5CHECK 0x0008u) /*print debug info */ #define H5F_ACC_CREAT (H5CHECK 0x0010u) /*create non-existing files */ -#define H5F_ACC_SYNC (H5CHECK 0x0020u) /*no filesystem caching */ /* Value passed to H5Pset_elink_acc_flags to cause flags to be taken from the * parent file. */ -- cgit v0.12 From 6b1ef6ad02dc941507a27722666dae9a09cc11cc Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 5 Dec 2012 16:11:49 -0500 Subject: [svn-r23079] I updated CMakefile for adding H5DO.c and H5DOpublic.h under hl/ directory. Not test. --- hl/src/CMakeLists.txt | 2 ++ hl/test/CMakeLists.txt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt index 2df2c23..36547f0 100644 --- a/hl/src/CMakeLists.txt +++ b/hl/src/CMakeLists.txt @@ -14,6 +14,7 @@ ENDIF (BUILD_SHARED_LIBS) INCLUDE_DIRECTORIES (${HDF5_HL_SRC_DIR}/src) SET (HL_SRCS + ${HDF5_HL_SRC_SOURCE_DIR}/H5DO.c ${HDF5_HL_SRC_SOURCE_DIR}/H5DS.c ${HDF5_HL_SRC_SOURCE_DIR}/H5IM.c ${HDF5_HL_SRC_SOURCE_DIR}/H5LT.c @@ -24,6 +25,7 @@ SET (HL_SRCS ) SET (HL_HEADERS + ${HDF5_HL_SRC_SOURCE_DIR}/H5DOpublic.h ${HDF5_HL_SRC_SOURCE_DIR}/H5DSpublic.h ${HDF5_HL_SRC_SOURCE_DIR}/H5IMpublic.h ${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.h diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt index 89baac4..2720348 100644 --- a/hl/test/CMakeLists.txt +++ b/hl/test/CMakeLists.txt @@ -65,6 +65,7 @@ ADD_TEST ( test_ds7.h5 test_ds8.h5 test_ds9.h5 + test_dset_opt.h5 test_image1.h5 test_image2.h5 test_image3.h5 @@ -76,6 +77,7 @@ ADD_TEST ( ) HL_ADD_TEST (test_ds "dsdata.txt;dslat.txt;dslon.txt;test_ds_be.h5;test_ds_le.h5") +HL_ADD_TEST (test_dset_opt "test_dectris.h5") HL_ADD_TEST (test_image "image8.txt;sepia.pal;earth.pal;image24pixel.txt;image24plane.txt;usa.wri") HL_ADD_TEST (test_lite "dtype_file.txt") HL_ADD_TEST (test_packet "") -- cgit v0.12 From b7e1b629e96727a4fe47ff3218d94aa274974b6a Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Thu, 6 Dec 2012 11:02:01 -0500 Subject: [svn-r23081] ported revisions 22987 to 23080 from the trunk --- CMakeLists.txt | 5 + MANIFEST | 6 +- README.txt | 2 +- c++/src/Makefile.in | 2 +- config/cmake/H5pubconf.h.in | 18 ++ config/cmake/prunTest.cmake | 24 +- config/cmake/runTest.cmake | 48 +++- config/lt_vers.am | 2 +- configure | 33 ++- configure.ac | 13 +- fortran/examples/CMakeLists.txt | 5 +- fortran/examples/Makefile.am | 5 +- fortran/examples/Makefile.in | 5 +- fortran/examples/grpit.f90 | 215 -------------- fortran/src/CMakeLists.txt | 28 +- fortran/src/Makefile.in | 2 +- fortran/src/hdf5_fortrandll.def | 544 ----------------------------------- fortran/src/hdf5_fortrandll.def.in | 570 +++++++++++++++++++++++++++++++++++++ fortran/src/phdf5_fortrandll.def | 552 ----------------------------------- fortran/test/CMakeLists.txt | 4 +- hl/c++/src/Makefile.in | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/src/Makefile.in | 2 +- release_docs/RELEASE.txt | 321 +++++++++++++-------- src/H5Dmpio.c | 302 ++++---------------- src/H5Dprivate.h | 2 - src/H5FDcore.c | 2 +- src/H5FDdirect.c | 9 +- src/H5FDfamily.c | 4 +- src/H5FDlog.c | 18 +- src/H5FDmpio.c | 4 +- src/H5FDmpiposix.c | 4 +- src/H5Pocpl.c | 5 +- src/H5Ppublic.h | 3 +- src/H5detect.c | 21 +- src/H5public.h | 4 +- src/H5trace.c | 4 - src/Makefile.in | 2 +- testpar/t_coll_chunk.c | 36 +-- testpar/t_dset.c | 104 +++---- testpar/testphdf5.c | 2 +- testpar/testphdf5.h | 9 +- tools/h5dump/CMakeLists.txt | 12 +- tools/h5dump/h5dumpgentest.c | 60 +++- tools/h5dump/testh5dump.sh.in | 4 + tools/h5stat/testh5stat.sh.in | 14 +- tools/lib/h5tools_dump.c | 50 ++-- tools/lib/h5tools_dump.h | 3 +- tools/testfiles/tscalarstring.ddl | 28 ++ tools/testfiles/tscalarstring.h5 | Bin 0 -> 2208 bytes vms/src/h5pubconf.h | 6 +- 51 files changed, 1221 insertions(+), 1901 deletions(-) delete mode 100644 fortran/examples/grpit.f90 delete mode 100644 fortran/src/hdf5_fortrandll.def create mode 100644 fortran/src/hdf5_fortrandll.def.in delete mode 100644 fortran/src/phdf5_fortrandll.def create mode 100644 tools/testfiles/tscalarstring.ddl create mode 100644 tools/testfiles/tscalarstring.h5 diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d2db1d..d86d29e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -759,6 +759,11 @@ IF (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for IF (HDF5_BUILD_FORTRAN) OPTION (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" OFF) INCLUDE (${HDF5_RESOURCES_DIR}/HDF5UseFortran.cmake) + IF (HDF5_ENABLE_F2003) + IF (NOT FORTRAN_HAVE_ISO_C_BINDING) + SET (HDF5_ENABLE_F2003 OFF) + ENDIF (NOT FORTRAN_HAVE_ISO_C_BINDING) + ENDIF (HDF5_ENABLE_F2003) # ----------------------------------------------------------------------- # wrapper script variables diff --git a/MANIFEST b/MANIFEST index 23a75fd..4eb48cf 100644 --- a/MANIFEST +++ b/MANIFEST @@ -246,7 +246,6 @@ ./fortran/examples/fileexample.f90 ./fortran/examples/groupexample.f90 ./fortran/examples/grpdsetexample.f90 -./fortran/examples/grpit.f90 ./fortran/examples/grpsexample.f90 ./fortran/examples/hyperslab.f90 ./fortran/examples/mountexample.f90 @@ -325,8 +324,7 @@ ./fortran/src/README ./fortran/src/README_DEVELOPEMENT _DO_NOT_DISTRIBUTE_ ./fortran/src/h5fc.in -./fortran/src/hdf5_fortrandll.def -./fortran/src/phdf5_fortrandll.def +./fortran/src/hdf5_fortrandll.def.in ./fortran/test/Makefile.am ./fortran/test/Makefile.in @@ -1481,6 +1479,8 @@ ./tools/testfiles/tscalarattrintsize.h5 ./tools/testfiles/tscalarintsize.ddl ./tools/testfiles/tscalarintsize.h5 +./tools/testfiles/tscalarstring.ddl +./tools/testfiles/tscalarstring.h5 ./tools/testfiles/tscaleoffset.ddl ./tools/testfiles/tslink-1.ddl ./tools/testfiles/tslink-2.ddl diff --git a/README.txt b/README.txt index 2a17830..40b5adb 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.132 currently under development +HDF5 version 1.9.136 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 7a4d3ee..52e32ff 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -467,7 +467,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 # Include src directory diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index 71e8c10..6fca1ae 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -15,6 +15,24 @@ /* Define if using a Windows compiler (i.e. Visual Studio) */ #cmakedefine H5_HAVE_VISUAL_STUDIO @H5_HAVE_VISUAL_STUDIO@ +/* Defined if HDF5 was built with CMake AND build as a shared library */ +#cmakedefine H5_BUILT_AS_DYNAMIC_LIB @H5_BUILT_AS_DYNAMIC_LIB@ + +/* Defined if HDF5 was built with CMake AND build as a static library */ +#cmakedefine H5_BUILT_AS_STATIC_LIB @H5_BUILT_AS_STATIC_LIB@ + +/* Defined if HDF5 CPP was built with CMake AND build as a shared library */ +#cmakedefine H5_CPP_BUILT_AS_DYNAMIC_LIB @H5_CPP_BUILT_AS_DYNAMIC_LIB@ + +/* Defined if HDF5 CPP was built with CMake AND build as a static library */ +#cmakedefine H5_CPP_BUILT_AS_STATIC_LIB @H5_CPP_BUILT_AS_STATIC_LIB@ + +/* Defined if HDF5 HL was built with CMake AND build as a shared library */ +#cmakedefine H5_HL_BUILT_AS_DYNAMIC_LIB @H5_HL_BUILT_AS_DYNAMIC_LIB@ + +/* Defined if HDF5 HL was built with CMake AND build as a static library */ +#cmakedefine H5_HL_BUILT_AS_STATIC_LIB @H5_HL_BUILT_AS_STATIC_LIB@ + /* Define if building universal (internal helper macro) */ #cmakedefine H5_AC_APPLE_UNIVERSAL_BUILD @H5_AC_APPLE_UNIVERSAL_BUILD@ diff --git a/config/cmake/prunTest.cmake b/config/cmake/prunTest.cmake index 8bcf729..261f8a4 100644 --- a/config/cmake/prunTest.cmake +++ b/config/cmake/prunTest.cmake @@ -103,16 +103,30 @@ IF (NOT TEST_SKIP_COMPARE) ENDIF (WIN32 AND NOT MINGW) # now compare the output with the reference - EXECUTE_PROCESS ( - COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/P_${TEST_REFERENCE} - RESULT_VARIABLE TEST_RESULT - ) + SET (TEST_RESULT 0) + FILE (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act) + LIST (LENGTH "${test_act}" len_act) + FILE (STRINGS ${TEST_FOLDER}/P_${TEST_REFERENCE} test_ref) + LIST (LENGTH "${test_ref}" len_ref) + MATH (EXPR _FP_LEN "${len_ref} - 1") + FOREACH (line RANGE 0 ${_FP_LEN}) + LIST (GET "${test_act}" ${line} str_act) + LIST (GET "${test_ref}" ${line} str_ref) + STRING (COMPARE NOTEQUAL ${str_act} ${str_ref} str_res) + IF (${str_res}) + SET (TEST_RESULT 1) + MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}") + ENDIF (${str_res}) + ENDFOREACH (line RANGE 0 ${_FP_LEN}) + IF (NOT ${len_act} STREQUAL ${len_ref}) + SET (TEST_RESULT 1) + ENDIF (NOT ${len_act} STREQUAL ${len_ref}) MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}") # again, if return value is !=0 scream and shout IF (NOT ${TEST_RESULT} STREQUAL 0) - MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not match P_${TEST_REFERENCE}") + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match P_${TEST_REFERENCE}") ENDIF (NOT ${TEST_RESULT} STREQUAL 0) ENDIF (NOT TEST_SKIP_COMPARE) diff --git a/config/cmake/runTest.cmake b/config/cmake/runTest.cmake index 4738523..78ccf9f 100644 --- a/config/cmake/runTest.cmake +++ b/config/cmake/runTest.cmake @@ -108,16 +108,30 @@ IF (NOT TEST_SKIP_COMPARE) ENDIF (WIN32 AND NOT MINGW) # now compare the output with the reference - EXECUTE_PROCESS ( - COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE} - RESULT_VARIABLE TEST_RESULT - ) + SET (TEST_RESULT 0) + FILE (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act) + LIST (LENGTH "${test_act}" len_act) + FILE (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref) + LIST (LENGTH "${test_ref}" len_ref) + MATH (EXPR _FP_LEN "${len_ref} - 1") + FOREACH (line RANGE 0 ${_FP_LEN}) + LIST (GET "${test_act}" ${line} str_act) + LIST (GET "${test_ref}" ${line} str_ref) + STRING (COMPARE NOTEQUAL ${str_act} ${str_ref} str_res) + IF (${str_res}) + SET (TEST_RESULT 1) + MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}") + ENDIF (${str_res}) + ENDFOREACH (line RANGE 0 ${_FP_LEN}) + IF (NOT ${len_act} STREQUAL ${len_ref}) + SET (TEST_RESULT 1) + ENDIF (NOT ${len_act} STREQUAL ${len_ref}) MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}") # again, if return value is !=0 scream and shout IF (NOT ${TEST_RESULT} STREQUAL 0) - MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not match ${TEST_REFERENCE}") + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}") ENDIF (NOT ${TEST_RESULT} STREQUAL 0) IF (TEST_ERRREF) @@ -127,16 +141,30 @@ IF (NOT TEST_SKIP_COMPARE) ENDIF (WIN32 AND NOT MINGW) # now compare the error output with the error reference - EXECUTE_PROCESS ( - COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT}.err ${TEST_FOLDER}/${TEST_ERRREF} - RESULT_VARIABLE TEST_RESULT - ) + SET (TEST_RESULT 0) + FILE (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT}.err test_act) + LIST (LENGTH "${test_act}" len_act) + FILE (STRINGS ${TEST_FOLDER}/${TEST_ERRREF} test_ref) + LIST (LENGTH "${test_ref}" len_ref) + MATH (EXPR _FP_LEN "${len_ref} - 1") + FOREACH (line RANGE 0 ${_FP_LEN}) + LIST (GET "${test_act}" ${line} str_act) + LIST (GET "${test_ref}" ${line} str_ref) + STRING (COMPARE NOTEQUAL ${str_act} ${str_ref} str_res) + IF (${str_res}) + SET (TEST_RESULT 1) + MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}") + ENDIF (${str_res}) + ENDFOREACH (line RANGE 0 ${_FP_LEN}) + IF (NOT ${len_act} STREQUAL ${len_ref}) + SET (TEST_RESULT 1) + ENDIF (NOT ${len_act} STREQUAL ${len_ref}) MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}") # again, if return value is !=0 scream and shout IF (NOT ${TEST_RESULT} STREQUAL 0) - MESSAGE (FATAL_ERROR "Failed: The error output of ${TEST_PROGRAM} did not match ${TEST_ERRREF}") + MESSAGE (FATAL_ERROR "Failed: The error output of ${TEST_OUTPUT}.err did not match ${TEST_ERRREF}") ENDIF (NOT ${TEST_RESULT} STREQUAL 0) ENDIF (TEST_ERRREF) ENDIF (NOT TEST_SKIP_COMPARE) diff --git a/config/lt_vers.am b/config/lt_vers.am index 53af6ed..d0944fa 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -17,7 +17,7 @@ # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index 1180d09..9b37513 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.132. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.136. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.132' -PACKAGE_STRING='HDF5 1.9.132' +PACKAGE_VERSION='1.9.136' +PACKAGE_STRING='HDF5 1.9.136' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1484,7 +1484,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.132 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.136 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1554,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.132:";; + short | recursive ) echo "Configuration of HDF5 1.9.136:";; esac cat <<\_ACEOF @@ -1750,7 +1750,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.132 +HDF5 configure 1.9.136 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2844,7 +2844,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.132, which was +It was created by HDF5 $as_me 1.9.136, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3676,7 +3676,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.132' + VERSION='1.9.136' cat >>confdefs.h <<_ACEOF @@ -27153,11 +27153,18 @@ else echo "int main(int argc, char * argv) {return 0;}" > conftest.c $CC $CFLAGS conftest.c > /dev/null 2> /dev/null - echo "./a.out :" > conftest.sh +case "`uname`" in + CYGWIN*) + echo "./a.exe :" > conftest.sh + ;; + *) + echo "./a.out :" > conftest.sh + ;; +esac chmod 700 conftest.sh ./conftest.sh 2> conftest.out - rm a.out + rm -f a.out a.exe TEST_OUTPUT=`cat conftest.out` if test "X$TEST_OUTPUT" = "X"; then @@ -31715,7 +31722,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.132, which was +This file was extended by HDF5 $as_me 1.9.136, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31781,7 +31788,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.132 +HDF5 config.status 1.9.136 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -34554,7 +34561,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.132 +HDF5 config.lt 1.9.136 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. diff --git a/configure.ac b/configure.ac index e40a1af..7b5cf92 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.132], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.136], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) @@ -2233,11 +2233,18 @@ AC_CACHE_CHECK([if lone colon can be used as an argument], [ echo "int main(int argc, char * argv[]) {return 0;}" > conftest.c $CC $CFLAGS conftest.c > /dev/null 2> /dev/null - echo "./a.out :" > conftest.sh +case "`uname`" in + CYGWIN*) + echo "./a.exe :" > conftest.sh + ;; + *) + echo "./a.out :" > conftest.sh + ;; +esac chmod 700 conftest.sh ./conftest.sh 2> conftest.out - rm a.out + rm -f a.out a.exe TEST_OUTPUT=`cat conftest.out` if test "X$TEST_OUTPUT" = "X"; then diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt index 814da48..0825f81 100644 --- a/fortran/examples/CMakeLists.txt +++ b/fortran/examples/CMakeLists.txt @@ -23,7 +23,6 @@ SET (examples grpdsetexample hyperslab selectele - grpit refobjexample refregexample mountexample @@ -64,7 +63,7 @@ FOREACH (example ${examples}) ENDFOREACH (example ${examples}) -IF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +IF (HDF5_ENABLE_F2003) FOREACH (example ${F2003_examples}) ADD_EXECUTABLE (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) TARGET_NAMING (f03_ex_${example} ${LIB_TYPE}) @@ -89,7 +88,7 @@ IF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) SET (last_test "f03_ex_${example}") ENDIF (BUILD_TESTING) ENDFOREACH (example ${F2003_examples}) -ENDIF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +ENDIF (HDF5_ENABLE_F2003) IF (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) ADD_EXECUTABLE (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90) diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am index 4fb4180..310c4e2 100644 --- a/fortran/examples/Makefile.am +++ b/fortran/examples/Makefile.am @@ -33,13 +33,13 @@ endif # compile them with the regular fortran compiler. EXAMPLE_PROG=dsetexample fileexample rwdsetexample attrexample groupexample \ - grpsexample grpdsetexample hyperslab selectele grpit refobjexample \ + grpsexample grpdsetexample hyperslab selectele refobjexample \ refregexample mountexample compound # List files to be installed here INSTALL_FILES=dsetexample.f90 fileexample.f90 rwdsetexample.f90 \ attrexample.f90 groupexample.f90 grpsexample.f90 grpdsetexample.f90 \ - hyperslab.f90 selectele.f90 grpit.f90 refobjexample.f90 \ + hyperslab.f90 selectele.f90 refobjexample.f90 \ refregexample.f90 mountexample.f90 compound.f90 ph5example.f90 INSTALL_SCRIPT_FILES = run-fortran-ex.sh @@ -93,7 +93,6 @@ grpsexample: grpsexample.f90 grpdsetexample: grpdsetexample.f90 hyperslab: hyperslab.f90 selectele: selectele.f90 -grpit: grpit.f90 refobjexample: refobjexample.f90 refregexample: refregexample.f90 mountexample: mountexample.f90 diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index 06c2632..21adf62 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -407,13 +407,13 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 # compile them with the regular fortran compiler. EXAMPLE_PROG = dsetexample fileexample rwdsetexample attrexample \ groupexample grpsexample grpdsetexample hyperslab selectele \ - grpit refobjexample refregexample mountexample compound \ + refobjexample refregexample mountexample compound \ $(am__append_1) # List files to be installed here INSTALL_FILES = dsetexample.f90 fileexample.f90 rwdsetexample.f90 \ attrexample.f90 groupexample.f90 grpsexample.f90 \ - grpdsetexample.f90 hyperslab.f90 selectele.f90 grpit.f90 \ + grpdsetexample.f90 hyperslab.f90 selectele.f90 \ refobjexample.f90 refregexample.f90 mountexample.f90 \ compound.f90 ph5example.f90 $(am__append_2) INSTALL_SCRIPT_FILES = run-fortran-ex.sh @@ -697,7 +697,6 @@ grpsexample: grpsexample.f90 grpdsetexample: grpdsetexample.f90 hyperslab: hyperslab.f90 selectele: selectele.f90 -grpit: grpit.f90 refobjexample: refobjexample.f90 refregexample: refregexample.f90 mountexample: mountexample.f90 diff --git a/fortran/examples/grpit.f90 b/fortran/examples/grpit.f90 deleted file mode 100644 index 9361b17..0000000 --- a/fortran/examples/grpit.f90 +++ /dev/null @@ -1,215 +0,0 @@ -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -! Copyright by The HDF Group. * -! Copyright by the Board of Trustees of the University of Illinois. * -! All rights reserved. * -! * -! This file is part of HDF5. The full HDF5 copyright notice, including * -! terms governing use, modification, and redistribution, is contained in * -! the files COPYING and Copyright.html. COPYING can be found at the root * -! of the source code distribution tree; Copyright.html can be found at the * -! root level of an installed copy of the electronic HDF5 document set and * -! is linked from the top-level documents page. It can also be found at * -! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * -! access to either file, you may request a copy from help@hdfgroup.org. * -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -! -! -! In this example we iterate through the members of the groups. -! - - - PROGRAM GRPITEXAMPLE - - USE HDF5 ! This module contains all necessary modules - - IMPLICIT NONE - - CHARACTER(LEN=11), PARAMETER :: filename = "iteratef.h5" ! File name - CHARACTER(LEN=7), PARAMETER :: groupname1 = "MyGroup" ! Group name - CHARACTER(LEN=15), PARAMETER :: groupname2 = "Group_A" ! Group name - CHARACTER(LEN=13), PARAMETER :: dsetname1 = "dset1" ! Dataset name - CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! - - CHARACTER(LEN=20) :: name_buffer ! Buffer to hold object's name - INTEGER :: type ! Type of the object - INTEGER :: nmembers ! Number of group members - - INTEGER(HID_T) :: file_id ! File identifier - INTEGER(HID_T) :: dataset1_id ! Dataset1 identifier - INTEGER(HID_T) :: dataset2_id ! Dataset2 identifier - INTEGER(HID_T) :: dataspace1_id ! Data space identifier - INTEGER(HID_T) :: dataspace2_id ! Data space identifier - INTEGER(HID_T) :: group1_id, group2_id ! Group identifiers - - INTEGER :: i, j - - INTEGER :: error ! Error flag - - INTEGER, DIMENSION(3,3) :: dset1_data ! Arrays to hold data - INTEGER, DIMENSION(2,10) :: dset2_data ! - - - INTEGER(HSIZE_T), DIMENSION(2) :: dims1 = (/3,3/) ! Dataset dimensions - INTEGER(HSIZE_T), DIMENSION(2) :: dims2 = (/2,10/)! - INTEGER :: rank = 2 ! Datasets rank - INTEGER(HSIZE_T), DIMENSION(2) :: data_dims - - ! - ! Initialize dset1_data array. - ! - do i = 1, 3 - do j = 1, 3 - dset1_data(i,j) = j; - end do - end do - - - ! - ! Initialize dset2_data array. - ! - do i = 1, 2 - do j = 1, 10 - dset2_data(i,j) = j; - end do - end do - - ! - ! Initialize FORTRAN interface. - ! - CALL h5open_f(error) - - ! - ! Create a new file using default properties. - ! - CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error) - - ! - ! Create group "MyGroup" in the root group using absolute name. - ! - CALL h5gcreate_f(file_id, groupname1, group1_id, error) - - ! - ! Create group "Group_A" in group "MyGroup" using relative name. - ! - CALL h5gcreate_f(group1_id, groupname2, group2_id, error) - - ! - ! Create the data space for the first dataset. - ! - CALL h5screate_simple_f(rank, dims1, dataspace1_id, error) - - ! - ! Create a dataset in group "MyGroup" with default properties. - ! - CALL h5dcreate_f(group1_id, dsetname1, H5T_NATIVE_INTEGER, dataspace1_id, & - dataset1_id, error) - - ! - ! Write the first dataset. - ! - data_dims(1) = 3 - data_dims(2) = 3 - CALL h5dwrite_f(dataset1_id, H5T_NATIVE_INTEGER, dset1_data, data_dims, error) - - ! - ! Create the data space for the second dataset. - ! - CALL h5screate_simple_f(rank, dims2, dataspace2_id, error) - - ! - ! Create the second dataset in group "Group_A" with default properties - ! - CALL h5dcreate_f(group2_id, dsetname2, H5T_NATIVE_INTEGER, dataspace2_id, & - dataset2_id, error) - - ! - ! Write the second dataset - ! - data_dims(1) = 2 - data_dims(2) = 10 - CALL h5dwrite_f(dataset2_id, H5T_NATIVE_INTEGER, dset2_data, data_dims, error) - - ! - ! Get number of members in the root group. - ! - CALL h5gn_members_f(file_id, "/", nmembers, error) - write(*,*) "Number of root group member is " , nmembers - - ! - ! Print each group member's name and type. - ! - do i = 0, nmembers - 1 - CALL h5gget_obj_info_idx_f(file_id, "/", i, name_buffer, type, & - error) - write(*,*) name_buffer, type - end do - - ! - ! Get number of members in MyGroup. - ! - CALL h5gn_members_f(file_id, "MyGroup", nmembers, error) - write(*,*) "Number of group MyGroup member is ", nmembers - - ! - ! Print each group member's name and type in "MyGroup" group. - ! - do i = 0, nmembers - 1 - CALL h5gget_obj_info_idx_f(file_id, groupname1, i, name_buffer, type, & - error) - write(*,*) name_buffer, type - end do - - - ! - ! Get number of members in MyGroup/Group_A. - ! - CALL h5gn_members_f(file_id, "MyGroup/Group_A", nmembers, error) - write(*,*) "Number of group MyGroup/Group_A member is ", nmembers - - ! - ! Print each group member's name and type in "MyGroup/Group_A" group. - ! - do i = 0, nmembers - 1 - CALL h5gget_obj_info_idx_f(file_id,"MyGroup/Group_A" , i, name_buffer, type, & - error) - write(*,*) name_buffer, type - end do - - ! - ! Close the dataspace for the first dataset. - ! - CALL h5sclose_f(dataspace1_id, error) - - ! - ! Close the first dataset. - ! - CALL h5dclose_f(dataset1_id, error) - - ! - ! Close the dataspace for the second dataset. - ! - CALL h5sclose_f(dataspace2_id, error) - - ! - ! Close the second dataset. - ! - CALL h5dclose_f(dataset2_id, error) - - ! - ! Close the groups. - ! - CALL h5gclose_f(group1_id, error) - - CALL h5gclose_f(group2_id, error) - - ! - ! Close the file. - ! - CALL h5fclose_f(file_id, error) - - ! - ! Close FORTRAN interface. - ! - CALL h5close_f(error) - - END PROGRAM GRPITEXAMPLE diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 25e14ba..374bc44 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -2,6 +2,22 @@ cmake_minimum_required (VERSION 2.8.6) PROJECT (HDF5_F90_SRC C CXX Fortran) #----------------------------------------------------------------------------- +# configure def file for shared libs on windows +IF (WIN32 AND NOT CYGWIN) + IF (BUILD_SHARED_LIBS) + IF (MSVC) + IF (NOT H5_HAVE_PARALLEL) + SET (H5_NOPAREXP ";") + ENDIF (NOT H5_HAVE_PARALLEL) + IF (NOT HDF5_ENABLE_F2003) + SET (H5_NOF03EXP ";") + ENDIF (NOT HDF5_ENABLE_F2003) + CONFIGURE_FILE (${HDF5_F90_SRC_SOURCE_DIR}/hdf5_fortrandll.def.in ${HDF5_F90_SRC_BINARY_DIR}/hdf5_fortrandll.def @ONLY) + ENDIF (MSVC) + ENDIF (BUILD_SHARED_LIBS) +ENDIF (WIN32 AND NOT CYGWIN) + +#----------------------------------------------------------------------------- # Setup the Fortran auto-detection utilities # H5test_kind(_SIZEOF).f90 used to generate H5fortran_detect.f90 # H5fortran_detect.f90 used to generate H5fort_type_defines.h @@ -126,13 +142,13 @@ SET_TARGET_PROPERTIES (${HDF5_F90_C_LIB_TARGET} PROPERTIES LINKER_LANGUAGE C) #----------------------------------------------------------------------------- # Fortran 2003 standard #----------------------------------------------------------------------------- -IF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +IF (HDF5_ENABLE_F2003) # default real is 4 bytes, so include double signatures SET (F_STATUS "_F03") -ELSE (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +ELSE (HDF5_ENABLE_F2003) # default real is 8 bytes, so exclude double signatures SET (F_STATUS "_F90") -ENDIF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +ENDIF (HDF5_ENABLE_F2003) #----------------------------------------------------------------------------- # Fortran Real Size @@ -208,11 +224,7 @@ IF (WIN32 AND NOT CYGWIN) BUILD_HDF5_DLL ) IF (MSVC) - IF (H5_HAVE_PARALLEL) - SET (SHARED_LINK_FLAGS "/DLL /DEF:${HDF5_F90_SRC_SOURCE_DIR}/phdf5_fortrandll.def") - ELSE (H5_HAVE_PARALLEL) - SET (SHARED_LINK_FLAGS "/DLL /DEF:${HDF5_F90_SRC_SOURCE_DIR}/hdf5_fortrandll.def") - ENDIF (H5_HAVE_PARALLEL) + SET (SHARED_LINK_FLAGS "/DLL /DEF:${HDF5_F90_SRC_BINARY_DIR}/hdf5_fortrandll.def") ENDIF (MSVC) ENDIF (BUILD_SHARED_LIBS) SET_PROPERTY (TARGET ${HDF5_F90_LIB_TARGET} diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 572f081..ced33d9 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -517,7 +517,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 # Include src directory in both Fortran and C flags (C compiler is used diff --git a/fortran/src/hdf5_fortrandll.def b/fortran/src/hdf5_fortrandll.def deleted file mode 100644 index d317476..0000000 --- a/fortran/src/hdf5_fortrandll.def +++ /dev/null @@ -1,544 +0,0 @@ -EXPORTS -; H5LIB -H5LIB_mp_H5OPEN_F -H5LIB_mp_H5CLOSE_F -H5LIB_mp_H5GET_LIBVERSION_F -H5LIB_mp_H5CHECK_VERSION_F -H5LIB_mp_H5GARBAGE_COLLECT_F -H5LIB_mp_H5DONT_ATEXIT_F -; H5_DBLE_INTERFACE -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE -H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE -H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE -H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE -H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE -H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE -; H5A -H5A_mp_H5ACREATE_F -H5A_mp_H5AOPEN_NAME_F -H5A_mp_H5AOPEN_IDX_F -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_SCALAR -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_1 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_2 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_3 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_4 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_5 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_6 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_7 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_SCALAR -H5A_PROVISIONAL_mp_H5AWRITE_REAL_1 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_2 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_3 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_4 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_5 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_6 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_7 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_SCALAR -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_1 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_2 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_3 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_4 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_5 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_6 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_7 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_SCALAR -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_1 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_2 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_3 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_4 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_5 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_6 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_7 -H5A_PROVISIONAL_mp_H5AREAD_REAL_SCALAR -H5A_PROVISIONAL_mp_H5AREAD_REAL_1 -H5A_PROVISIONAL_mp_H5AREAD_REAL_2 -H5A_PROVISIONAL_mp_H5AREAD_REAL_3 -H5A_PROVISIONAL_mp_H5AREAD_REAL_4 -H5A_PROVISIONAL_mp_H5AREAD_REAL_5 -H5A_PROVISIONAL_mp_H5AREAD_REAL_6 -H5A_PROVISIONAL_mp_H5AREAD_REAL_7 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_SCALAR -H5A_PROVISIONAL_mp_H5AREAD_CHAR_1 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_2 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_3 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_4 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_5 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_6 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_7 -H5A_mp_H5AGET_SPACE_F -H5A_mp_H5AGET_TYPE_F -H5A_mp_H5AGET_NAME_F -H5A_mp_H5AGET_NAME_BY_IDX_F -H5A_mp_H5AGET_NUM_ATTRS_F -H5A_mp_H5ADELETE_F -H5A_mp_H5ACLOSE_F -H5A_mp_H5AGET_STORAGE_SIZE_F -H5A_mp_H5AGET_CREATE_PLIST_F -H5A_mp_H5ARENAME_BY_NAME_F -H5A_mp_H5AOPEN_F -H5A_mp_H5ADELETE_BY_IDX_F -H5A_mp_H5ADELETE_BY_NAME_F -H5A_mp_H5AOPEN_BY_IDX_F -H5A_mp_H5AGET_INFO_F -H5A_mp_H5AGET_INFO_BY_IDX_F -H5A_mp_H5AGET_INFO_BY_NAME_F -H5A_mp_H5ACREATE_BY_NAME_F -H5A_mp_H5AEXISTS_F -H5A_mp_H5AEXISTS_BY_NAME_F -H5A_mp_H5AOPEN_BY_NAME_F -H5A_mp_H5ARENAME_F -; H5D -H5D_mp_H5DCREATE_F -H5D_mp_H5DOPEN_F -H5D_mp_H5DCLOSE_F -H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_OBJ -H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_DSETREG -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_SCALAR -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_1 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_2 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_3 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_4 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_5 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_6 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_7 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_SCALAR -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_1 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_2 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_3 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_4 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_5 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_6 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_7 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_SCALAR -H5D_PROVISIONAL_mp_H5DWRITE_REAL_1 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_2 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_3 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_4 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_5 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_6 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_7 -H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_OBJ -H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_DSETREG -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_SCALAR -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_1 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_2 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_3 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_4 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_5 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_6 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_7 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_SCALAR -H5D_PROVISIONAL_mp_H5DREAD_CHAR_1 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_2 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_3 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_4 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_5 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_6 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_7 -H5D_PROVISIONAL_mp_H5DREAD_REAL_SCALAR -H5D_PROVISIONAL_mp_H5DREAD_REAL_1 -H5D_PROVISIONAL_mp_H5DREAD_REAL_2 -H5D_PROVISIONAL_mp_H5DREAD_REAL_3 -H5D_PROVISIONAL_mp_H5DREAD_REAL_4 -H5D_PROVISIONAL_mp_H5DREAD_REAL_5 -H5D_PROVISIONAL_mp_H5DREAD_REAL_6 -H5D_PROVISIONAL_mp_H5DREAD_REAL_7 -H5D_mp_H5DGET_SPACE_F -H5D_mp_H5DGET_TYPE_F -H5D_mp_H5DSET_EXTENT_F -H5D_mp_H5DGET_CREATE_PLIST_F -H5D_mp_H5DGET_STORAGE_SIZE_F -H5D_mp_H5DVLEN_GET_MAX_LEN_F -H5D_mp_H5DWRITE_VL_INTEGER -H5D_mp_H5DREAD_VL_INTEGER -H5D_mp_H5DWRITE_VL_REAL -H5D_mp_H5DREAD_VL_REAL -H5D_mp_H5DWRITE_VL_STRING -H5D_mp_H5DREAD_VL_STRING -H5D_PROVISIONAL_mp_H5DFILL_INTEGER -H5D_PROVISIONAL_mp_H5DFILL_REAL -H5D_PROVISIONAL_mp_H5DFILL_CHAR -H5D_mp_H5DGET_SPACE_STATUS_F -H5D_mp_H5DCREATE_ANON_F -H5D_mp_H5DGET_SPACE_F -H5D_mp_H5DGET_TYPE_F -H5D_mp_H5DSET_EXTENT_F -H5D_mp_H5DGET_CREATE_PLIST_F -H5D_mp_H5DGET_STORAGE_SIZE_F -H5D_mp_H5DVLEN_GET_MAX_LEN_F -H5D_mp_H5DGET_ACCESS_PLIST_F -; H5E -H5E_mp_H5ECLEAR_F -H5E_mp_H5EPRINT_F -H5E_mp_H5EGET_MAJOR_F -H5E_mp_H5EGET_MINOR_F -H5E_PROVISIONAL_mp_H5ESET_AUTO_F -; H5F -H5F_mp_H5FCREATE_F -H5F_mp_H5FFLUSH_F -H5F_mp_H5FCLOSE_F -H5F_mp_H5FGET_OBJ_COUNT_F -H5F_mp_H5FGET_OBJ_IDS_F -H5F_mp_H5FGET_FREESPACE_F -H5F_mp_H5FMOUNT_F -H5F_mp_H5FUNMOUNT_F -H5F_mp_H5FOPEN_F -H5F_mp_H5FREOPEN_F -H5F_mp_H5FGET_CREATE_PLIST_F -H5F_mp_H5FGET_ACCESS_PLIST_F -H5F_mp_H5FIS_HDF5_F -H5F_mp_H5FGET_NAME_F -H5F_mp_H5FGET_FILESIZE_F -; H5G -H5G_mp_H5GOPEN_F -H5G_mp_H5GCREATE_F -H5G_mp_H5GCLOSE_F -H5G_mp_H5GGET_OBJ_INFO_IDX_F -H5G_mp_H5GN_MEMBERS_F -H5G_mp_H5GLINK_F -H5G_mp_H5GLINK2_F -H5G_mp_H5GUNLINK_F -H5G_mp_H5GMOVE_F -H5G_mp_H5GMOVE2_F -H5G_mp_H5GGET_LINKVAL_F -H5G_mp_H5GSET_COMMENT_F -H5G_mp_H5GGET_COMMENT_F -H5G_mp_H5GCREATE_ANON_F -H5G_mp_H5GGET_CREATE_PLIST_F -H5G_mp_H5GGET_INFO_F -H5G_mp_H5GGET_INFO_BY_IDX_F -H5G_mp_H5GGET_INFO_BY_NAME_F -H5G_mp_H5GGET_OBJ_INFO_IDX_F -; H5GLOBAL -; PREDEFINED_TYPES DATA -; FLOATING_TYPES DATA -; INTEGER_TYPES DATA -; H5F_FLAGS DATA -; H5GENERIC_FLAGS DATA -; H5G_FLAGS DATA -; H5D_FLAGS DATA -; H5FD_FLAGS DATA -; H5FD_HID_FLAGS DATA -; H5I_FLAGS DATA -; H5L_FLAGS DATA -; H5O_FLAGS DATA -; H5P_FLAGS DATA -; H5P_FLAGS_INT DATA -; H5R_FLAGS DATA -; H5S_FLAGS DATA -; H5T_FLAGS DATA -; H5Z_FLAGS DATA -; H5LIB_FLAGS DATA -; H5I -H5I_mp_H5IGET_TYPE_F -H5I_mp_H5IGET_NAME_F -H5I_mp_H5IINC_REF_F -H5I_mp_H5IDEC_REF_F -H5I_mp_H5IGET_REF_F -H5I_mp_H5IGET_FILE_ID_F -H5I_mp_H5IIS_VALID_F -; H5L -H5L_mp_H5LCOPY_F -H5L_mp_H5LDELETE_F -H5L_mp_H5LCREATE_SOFT_F -H5L_mp_H5LCREATE_HARD_F -H5L_mp_H5LCREATE_EXTERNAL_F -H5L_mp_H5LDELETE_BY_IDX_F -H5L_mp_H5LEXISTS_F -H5L_mp_H5LGET_INFO_F -H5L_mp_H5LGET_INFO_BY_IDX_F -H5L_mp_H5LIS_REGISTERED_F -H5L_mp_H5LMOVE_F -H5L_mp_H5LGET_NAME_BY_IDX_F -; H5O -H5O_mp_H5OCLOSE_F -H5O_mp_H5OCOPY_F -H5O_mp_H5ODECR_REFCOUNT_F -H5O_mp_H5OEXISTS_BY_NAME_F -H5O_mp_H5OGET_COMMENT_F -H5O_mp_H5OGET_COMMENT_BY_NAME_F -H5O_mp_H5OINCR_REFCOUNT_F -H5O_mp_H5OLINK_F -H5O_mp_H5OOPEN_BY_ADDR_F -H5O_mp_H5OOPEN_BY_IDX_F -H5O_mp_H5OOPEN_F -H5O_mp_H5OSET_COMMENT_F -H5O_mp_H5OSET_COMMENT_BY_NAME_F -; These should only get compiled with option --enable-fortran2003 -;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F -;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F -;H5O_PROVISIONAL_mp_H5OGET_INFO_F -;H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F -;H5O_PROVISIONAL_mp_H5OVISIT_F -; H5P -H5P_mp_H5PCREATE_F -H5P_mp_H5PSET_PRESERVE_F -H5P_mp_H5PGET_PRESERVE_F -H5P_mp_H5PGET_CLASS_F -H5P_mp_H5PCOPY_F -H5P_mp_H5PCLOSE_F -H5P_mp_H5PSET_CHUNK_F -H5P_mp_H5PGET_CHUNK_F -H5P_mp_H5PSET_DEFLATE_F -H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_INTEGER -H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_INTEGER -H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_REAL -H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_REAL -H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_CHAR -H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_CHAR -H5P_mp_H5PGET_VERSION_F -H5P_mp_H5PSET_USERBLOCK_F -H5P_mp_H5PGET_USERBLOCK_F -H5P_mp_H5PSET_SIZES_F -H5P_mp_H5PGET_SIZES_F -H5P_mp_H5PSET_SYM_K_F -H5P_mp_H5PGET_SYM_K_F -H5P_mp_H5PSET_ISTORE_K_F -H5P_mp_H5PGET_ISTORE_K_F -H5P_mp_H5PGET_DRIVER_F -H5P_mp_H5PSET_FAPL_STDIO_F -H5P_mp_H5PSET_FAPL_SEC2_F -H5P_mp_H5PSET_ALIGNMENT_F -H5P_mp_H5PGET_ALIGNMENT_F -H5P_mp_H5PSET_FAPL_CORE_F -H5P_mp_H5PGET_FAPL_CORE_F -H5P_mp_H5PSET_FAPL_FAMILY_F -H5P_mp_H5PGET_FAPL_FAMILY_F -H5P_mp_H5PSET_CACHE_F -H5P_mp_H5PGET_CACHE_F -H5P_mp_H5PSET_FAPL_SPLIT_F -H5P_mp_H5PSET_GC_REFERENCES_F -H5P_mp_H5PGET_GC_REFERENCES_F -H5P_mp_H5PSET_LAYOUT_F -H5P_mp_H5PGET_LAYOUT_F -H5P_mp_H5PSET_FILTER_F -H5P_mp_H5PGET_NFILTERS_F -H5P_mp_H5PGET_FILTER_F -H5P_mp_H5PSET_EXTERNAL_F -H5P_mp_H5PGET_EXTERNAL_COUNT_F -H5P_mp_H5PGET_EXTERNAL_F -H5P_mp_H5PSET_BTREE_RATIOS_F -H5P_mp_H5PGET_BTREE_RATIOS_F -H5P_mp_H5PGET_FCLOSE_DEGREE_F -H5P_mp_H5PSET_FCLOSE_DEGREE_F -H5P_mp_H5PEQUAL_F -H5P_mp_H5PSET_BUFFER_F -H5P_mp_H5PGET_BUFFER_F -H5P_mp_H5PFILL_VALUE_DEFINED_F -H5P_mp_H5PSET_ALLOC_TIME_F -H5P_mp_H5PGET_ALLOC_TIME_F -H5P_mp_H5PSET_FILL_TIME_F -H5P_mp_H5PGET_FILL_TIME_F -H5P_mp_H5PSET_META_BLOCK_SIZE_F -H5P_mp_H5PGET_META_BLOCK_SIZE_F -H5P_mp_H5PSET_SIEVE_BUF_SIZE_F -H5P_mp_H5PGET_SIEVE_BUF_SIZE_F -H5P_mp_H5PSET_SMALL_DATA_BLOCK_SIZE_F -H5P_mp_H5PGET_SMALL_DATA_BLOCK_SIZE_F -H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F -H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F -H5P_PROVISIONAL_mp_H5PSET_INTEGER -H5P_PROVISIONAL_mp_H5PSET_REAL -H5P_PROVISIONAL_mp_H5PSET_CHAR -H5P_PROVISIONAL_mp_H5PGET_INTEGER -H5P_PROVISIONAL_mp_H5PGET_REAL -H5P_PROVISIONAL_mp_H5PGET_CHAR -H5P_mp_H5PEXIST_F -H5P_mp_H5PGET_SIZE_F -H5P_mp_H5PGET_NPROPS_F -H5P_mp_H5PGET_CLASS_NAME_F -H5P_mp_H5PGET_CLASS_PARENT_F -H5P_mp_H5PISA_CLASS_F -H5P_mp_H5PCOPY_PROP_F -H5P_mp_H5PREMOVE_F -H5P_mp_H5PUNREGISTER_F -H5P_mp_H5PCLOSE_CLASS_F -H5P_PROVISIONAL_mp_H5PCREATE_CLASS_F -H5P_PROVISIONAL_mp_H5PREGISTER_INTEGER -H5P_PROVISIONAL_mp_H5PREGISTER_REAL -H5P_PROVISIONAL_mp_H5PREGISTER_CHAR -H5P_PROVISIONAL_mp_H5PINSERT_INTEGER -H5P_PROVISIONAL_mp_H5PINSERT_REAL -H5P_PROVISIONAL_mp_H5PINSERT_CHAR -H5P_mp_H5PSET_SHUFFLE_F -H5P_mp_H5PSET_EDC_CHECK_F -H5P_mp_H5PGET_EDC_CHECK_F -H5P_mp_H5PSET_FLETCHER32_F -H5P_mp_H5PSET_FAMILY_OFFSET_F -H5P_mp_H5PSET_FAPL_MULTI_L -H5P_mp_H5PSET_FAPL_MULTI_S -H5P_mp_H5PGET_FAPL_MULTI_F -H5P_mp_H5PSET_SZIP_F -H5P_mp_H5PALL_FILTERS_AVAIL_F -H5P_mp_H5PGET_FILTER_BY_ID_F -H5P_mp_H5PMODIFY_FILTER_F -H5P_mp_H5PREMOVE_FILTER_F -H5P_mp_H5PGET_ATTR_PHASE_CHANGE_F -H5P_mp_H5PSET_ATTR_CREATION_ORDER_F -H5P_mp_H5PSET_SHARED_MESG_NINDEXES_F -H5P_mp_H5PSET_SHARED_MESG_INDEX_F -H5P_mp_H5PGET_ATTR_CREATION_ORDER_F -H5P_mp_H5PSET_LIBVER_BOUNDS_F -H5P_mp_H5PSET_LINK_CREATION_ORDER_F -H5P_mp_H5PGET_LINK_PHASE_CHANGE_F -H5P_mp_H5PGET_OBJ_TRACK_TIMES_F -H5P_mp_H5PSET_OBJ_TRACK_TIMES_F -H5P_mp_H5PSET_CREATE_INTER_GROUP_F -H5P_mp_H5PGET_LINK_CREATION_ORDER_F -H5P_mp_H5PSET_CHAR_ENCODING_F -H5P_mp_H5PGET_CHAR_ENCODING_F -H5P_mp_H5PSET_COPY_OBJECT_F -H5P_mp_H5PGET_COPY_OBJECT_F -H5P_mp_H5PGET_DATA_TRANSFORM_F -H5P_mp_H5PSET_DATA_TRANSFORM_F -H5P_mp_H5PGET_LOCAL_HEAP_SIZE_HINT_F -H5P_mp_H5PGET_EST_LINK_INFO_F -H5P_mp_H5PSET_LOCAL_HEAP_SIZE_HINT_F -H5P_mp_H5PSET_EST_LINK_INFO_F -H5P_mp_H5PSET_LINK_PHASE_CHANGE_F -H5P_mp_H5PSET_FAPL_DIRECT_F -H5P_mp_H5PGET_FAPL_DIRECT_F -H5P_mp_H5PSET_ATTR_PHASE_CHANGE_F -H5P_mp_H5PSET_NBIT_F -H5P_mp_H5PSET_SCALEOFFSET_F -H5P_mp_H5PSET_NLINKS_F -H5P_mp_H5PGET_NLINKS_F -H5P_mp_H5PGET_CREATE_INTER_GROUP_F -H5P_mp_H5PSET_CHUNK_CACHE_F -H5P_mp_H5PGET_CHUNK_CACHE_F -; H5R -H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F -H5R_PROVISIONAL_mp_H5RCREATE_REGION_F -H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F -H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F -H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F - -H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F -H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F -H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F -; H5S -H5S_mp_H5SCREATE_SIMPLE_F -H5S_mp_H5SCLOSE_F -H5S_mp_H5SCREATE_F -H5S_mp_H5SCOPY_F -H5S_mp_H5SGET_SELECT_HYPER_NBLOCKS_F -H5S_mp_H5SGET_SELECT_HYPER_BLOCKLIST_F -H5S_mp_H5SGET_SELECT_BOUNDS_F -H5S_mp_H5SGET_SELECT_ELEM_NPOINTS_F -H5S_mp_H5SGET_SELECT_ELEM_POINTLIST_F -H5S_mp_H5SSELECT_ELEMENTS_F -H5S_mp_H5SSELECT_ALL_F -H5S_mp_H5SSELECT_NONE_F -H5S_mp_H5SSELECT_VALID_F -H5S_mp_H5SGET_SIMPLE_EXTENT_NPOINTS_F -H5S_mp_H5SGET_SELECT_NPOINTS_F -H5S_mp_H5SGET_SIMPLE_EXTENT_NDIMS_F -H5S_mp_H5SGET_SIMPLE_EXTENT_DIMS_F -H5S_mp_H5SGET_SIMPLE_EXTENT_TYPE_F -H5S_mp_H5SSET_EXTENT_SIMPLE_F -H5S_mp_H5SIS_SIMPLE_F -H5S_mp_H5SOFFSET_SIMPLE_F -H5S_mp_H5SEXTENT_COPY_F -H5S_mp_H5SSET_EXTENT_NONE_F -H5S_mp_H5SSELECT_HYPERSLAB_F -H5S_mp_H5SGET_SELECT_TYPE_F -H5S_mp_H5SDECODE_F -H5S_mp_H5SENCODE_F -H5S_mp_H5SEXTENT_EQUAL_F -; H5T -H5T_mp_H5TOPEN_F -H5T_mp_H5TCOMMIT_F -H5T_mp_H5TCOPY_F -H5T_mp_H5TEQUAL_F -H5T_mp_H5TCLOSE_F -H5T_mp_H5TGET_CLASS_F -H5T_mp_H5TGET_SIZE_F -H5T_mp_H5TSET_SIZE_F -H5T_mp_H5TGET_ORDER_F -H5T_mp_H5TSET_ORDER_F -H5T_mp_H5TGET_PRECISION_F -H5T_mp_H5TSET_PRECISION_F -H5T_mp_H5TGET_OFFSET_F -H5T_mp_H5TSET_OFFSET_F -H5T_mp_H5TGET_PAD_F -H5T_mp_H5TSET_PAD_F -H5T_mp_H5TGET_SIGN_F -H5T_mp_H5TSET_SIGN_F -H5T_mp_H5TGET_FIELDS_F -H5T_mp_H5TSET_FIELDS_F -H5T_mp_H5TGET_EBIAS_F -H5T_mp_H5TSET_EBIAS_F -H5T_mp_H5TGET_NORM_F -H5T_mp_H5TSET_NORM_F -H5T_mp_H5TGET_INPAD_F -H5T_mp_H5TSET_INPAD_F -H5T_mp_H5TGET_CSET_F -H5T_mp_H5TSET_CSET_F -H5T_mp_H5TGET_STRPAD_F -H5T_mp_H5TSET_STRPAD_F -H5T_mp_H5TGET_NMEMBERS_F -H5T_mp_H5TGET_MEMBER_NAME_F -H5T_mp_H5TGET_MEMBER_OFFSET_F -H5T_mp_H5TGET_MEMBER_INDEX_F -H5T_mp_H5TGET_ARRAY_DIMS_F -H5T_mp_H5TGET_ARRAY_NDIMS_F -H5T_mp_H5TGET_SUPER_F -H5T_mp_H5TGET_MEMBER_TYPE_F -H5T_mp_H5TCREATE_F -H5T_mp_H5TINSERT_F -H5T_mp_H5TPACK_F -H5T_mp_H5TARRAY_CREATE_F -H5T_mp_H5TENUM_CREATE_F -H5T_mp_H5TENUM_INSERT_F -H5T_mp_H5TENUM_NAMEOF_F -H5T_mp_H5TENUM_VALUEOF_F -H5T_mp_H5TGET_MEMBER_VALUE_F -H5T_mp_H5TSET_TAG_F -H5T_mp_H5TGET_TAG_F -H5T_mp_H5TVLEN_CREATE_F -H5T_mp_H5TIS_VARIABLE_STR_F -H5T_mp_H5TGET_MEMBER_CLASS_F -H5T_mp_H5TCOMMIT_ANON_F -H5T_mp_H5TCOMMITTED_F -H5T_mp_H5TDECODE_F -H5T_mp_H5TENCODE_F -H5T_mp_H5TGET_CREATE_PLIST_F -H5T_mp_H5TCOMPILER_CONV_F -H5T_mp_H5TGET_NATIVE_TYPE_F -; H5Z -H5Z_mp_H5ZUNREGISTER_F -H5Z_mp_H5ZFILTER_AVAIL_F -H5Z_mp_H5ZGET_FILTER_INFO_F diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in new file mode 100644 index 0000000..bf7596d --- /dev/null +++ b/fortran/src/hdf5_fortrandll.def.in @@ -0,0 +1,570 @@ +EXPORTS +; H5LIB +H5LIB_mp_H5OPEN_F +H5LIB_mp_H5CLOSE_F +H5LIB_mp_H5GET_LIBVERSION_F +H5LIB_mp_H5CHECK_VERSION_F +H5LIB_mp_H5GARBAGE_COLLECT_F +H5LIB_mp_H5DONT_ATEXIT_F +@H5_NOF03EXP@H5LIB_PROVISIONAL_mp_H5OFFSETOF +; H5_DBLE_INTERFACE +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE +H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE +H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE +H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE +H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE +H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE +; H5A +H5A_mp_H5ACREATE_F +H5A_mp_H5AOPEN_NAME_F +H5A_mp_H5AOPEN_IDX_F +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_SCALAR +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_1 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_2 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_3 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_4 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_5 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_6 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_7 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_SCALAR +H5A_PROVISIONAL_mp_H5AWRITE_REAL_1 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_2 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_3 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_4 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_5 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_6 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_7 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_SCALAR +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_1 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_2 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_3 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_4 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_5 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_6 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_7 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_SCALAR +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_1 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_2 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_3 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_4 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_5 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_6 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_7 +H5A_PROVISIONAL_mp_H5AREAD_REAL_SCALAR +H5A_PROVISIONAL_mp_H5AREAD_REAL_1 +H5A_PROVISIONAL_mp_H5AREAD_REAL_2 +H5A_PROVISIONAL_mp_H5AREAD_REAL_3 +H5A_PROVISIONAL_mp_H5AREAD_REAL_4 +H5A_PROVISIONAL_mp_H5AREAD_REAL_5 +H5A_PROVISIONAL_mp_H5AREAD_REAL_6 +H5A_PROVISIONAL_mp_H5AREAD_REAL_7 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_SCALAR +H5A_PROVISIONAL_mp_H5AREAD_CHAR_1 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_2 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_3 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_4 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_5 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_6 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_7 +H5A_mp_H5AGET_SPACE_F +H5A_mp_H5AGET_TYPE_F +H5A_mp_H5AGET_NAME_F +H5A_mp_H5AGET_NAME_BY_IDX_F +H5A_mp_H5AGET_NUM_ATTRS_F +H5A_mp_H5ADELETE_F +H5A_mp_H5ACLOSE_F +H5A_mp_H5AGET_STORAGE_SIZE_F +H5A_mp_H5AGET_CREATE_PLIST_F +H5A_mp_H5ARENAME_BY_NAME_F +H5A_mp_H5AOPEN_F +H5A_mp_H5ADELETE_BY_IDX_F +H5A_mp_H5ADELETE_BY_NAME_F +H5A_mp_H5AOPEN_BY_IDX_F +H5A_mp_H5AGET_INFO_F +H5A_mp_H5AGET_INFO_BY_IDX_F +H5A_mp_H5AGET_INFO_BY_NAME_F +H5A_mp_H5ACREATE_BY_NAME_F +H5A_mp_H5AEXISTS_F +H5A_mp_H5AEXISTS_BY_NAME_F +H5A_mp_H5AOPEN_BY_NAME_F +H5A_mp_H5ARENAME_F +@H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AWRITE_PTR +@H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AREAD_PTR +; H5D +H5D_mp_H5DCREATE_F +H5D_mp_H5DOPEN_F +H5D_mp_H5DCLOSE_F +H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_OBJ +H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_DSETREG +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_1 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_2 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_3 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_4 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_5 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_6 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_7 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_1 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_2 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_3 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_4 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_5 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_6 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_7 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_REAL_1 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_2 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_3 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_4 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_5 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_6 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_7 +H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_OBJ +H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_DSETREG +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_SCALAR +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_1 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_2 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_3 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_4 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_5 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_6 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_7 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_SCALAR +H5D_PROVISIONAL_mp_H5DREAD_CHAR_1 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_2 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_3 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_4 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_5 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_6 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_7 +H5D_PROVISIONAL_mp_H5DREAD_REAL_SCALAR +H5D_PROVISIONAL_mp_H5DREAD_REAL_1 +H5D_PROVISIONAL_mp_H5DREAD_REAL_2 +H5D_PROVISIONAL_mp_H5DREAD_REAL_3 +H5D_PROVISIONAL_mp_H5DREAD_REAL_4 +H5D_PROVISIONAL_mp_H5DREAD_REAL_5 +H5D_PROVISIONAL_mp_H5DREAD_REAL_6 +H5D_PROVISIONAL_mp_H5DREAD_REAL_7 +H5D_mp_H5DGET_SPACE_F +H5D_mp_H5DGET_TYPE_F +H5D_mp_H5DSET_EXTENT_F +H5D_mp_H5DGET_CREATE_PLIST_F +H5D_mp_H5DGET_STORAGE_SIZE_F +H5D_mp_H5DVLEN_GET_MAX_LEN_F +H5D_mp_H5DWRITE_VL_INTEGER +H5D_mp_H5DREAD_VL_INTEGER +H5D_mp_H5DWRITE_VL_REAL +H5D_mp_H5DREAD_VL_REAL +H5D_mp_H5DWRITE_VL_STRING +H5D_mp_H5DREAD_VL_STRING +H5D_PROVISIONAL_mp_H5DFILL_INTEGER +H5D_PROVISIONAL_mp_H5DFILL_REAL +H5D_PROVISIONAL_mp_H5DFILL_CHAR +H5D_mp_H5DGET_SPACE_STATUS_F +H5D_mp_H5DCREATE_ANON_F +H5D_mp_H5DGET_SPACE_F +H5D_mp_H5DGET_TYPE_F +H5D_mp_H5DSET_EXTENT_F +H5D_mp_H5DGET_CREATE_PLIST_F +H5D_mp_H5DGET_STORAGE_SIZE_F +H5D_mp_H5DVLEN_GET_MAX_LEN_F +H5D_mp_H5DGET_ACCESS_PLIST_F +@H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DWRITE_PTR +@H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DREAD_PTR +@H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DVLEN_RECLAIM_F +; H5E +H5E_mp_H5ECLEAR_F +H5E_mp_H5EPRINT_F +H5E_mp_H5EGET_MAJOR_F +H5E_mp_H5EGET_MINOR_F +H5E_PROVISIONAL_mp_H5ESET_AUTO_F +; H5F +H5F_mp_H5FCREATE_F +H5F_mp_H5FFLUSH_F +H5F_mp_H5FCLOSE_F +H5F_mp_H5FGET_OBJ_COUNT_F +H5F_mp_H5FGET_OBJ_IDS_F +H5F_mp_H5FGET_FREESPACE_F +H5F_mp_H5FMOUNT_F +H5F_mp_H5FUNMOUNT_F +H5F_mp_H5FOPEN_F +H5F_mp_H5FREOPEN_F +H5F_mp_H5FGET_CREATE_PLIST_F +H5F_mp_H5FGET_ACCESS_PLIST_F +H5F_mp_H5FIS_HDF5_F +H5F_mp_H5FGET_NAME_F +H5F_mp_H5FGET_FILESIZE_F +; H5G +H5G_mp_H5GOPEN_F +H5G_mp_H5GCREATE_F +H5G_mp_H5GCLOSE_F +H5G_mp_H5GGET_OBJ_INFO_IDX_F +H5G_mp_H5GN_MEMBERS_F +H5G_mp_H5GLINK_F +H5G_mp_H5GLINK2_F +H5G_mp_H5GUNLINK_F +H5G_mp_H5GMOVE_F +H5G_mp_H5GMOVE2_F +H5G_mp_H5GGET_LINKVAL_F +H5G_mp_H5GSET_COMMENT_F +H5G_mp_H5GGET_COMMENT_F +H5G_mp_H5GCREATE_ANON_F +H5G_mp_H5GGET_CREATE_PLIST_F +H5G_mp_H5GGET_INFO_F +H5G_mp_H5GGET_INFO_BY_IDX_F +H5G_mp_H5GGET_INFO_BY_NAME_F +H5G_mp_H5GGET_OBJ_INFO_IDX_F +; H5GLOBAL +; PREDEFINED_TYPES DATA +; FLOATING_TYPES DATA +; INTEGER_TYPES DATA +; H5F_FLAGS DATA +; H5GENERIC_FLAGS DATA +; H5G_FLAGS DATA +; H5D_FLAGS DATA +; H5FD_FLAGS DATA +; H5FD_HID_FLAGS DATA +; H5I_FLAGS DATA +; H5L_FLAGS DATA +; H5O_FLAGS DATA +; H5P_FLAGS DATA +; H5P_FLAGS_INT DATA +; H5R_FLAGS DATA +; H5S_FLAGS DATA +; H5T_FLAGS DATA +; H5Z_FLAGS DATA +; H5LIB_FLAGS DATA +; H5I +H5I_mp_H5IGET_TYPE_F +H5I_mp_H5IGET_NAME_F +H5I_mp_H5IINC_REF_F +H5I_mp_H5IDEC_REF_F +H5I_mp_H5IGET_REF_F +H5I_mp_H5IGET_FILE_ID_F +H5I_mp_H5IIS_VALID_F +; H5L +H5L_mp_H5LCOPY_F +H5L_mp_H5LDELETE_F +H5L_mp_H5LCREATE_SOFT_F +H5L_mp_H5LCREATE_HARD_F +H5L_mp_H5LCREATE_EXTERNAL_F +H5L_mp_H5LDELETE_BY_IDX_F +H5L_mp_H5LEXISTS_F +H5L_mp_H5LGET_INFO_F +H5L_mp_H5LGET_INFO_BY_IDX_F +H5L_mp_H5LIS_REGISTERED_F +H5L_mp_H5LMOVE_F +H5L_mp_H5LGET_NAME_BY_IDX_F +@H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_F +@H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_BY_NAME_F +; H5O +H5O_mp_H5OCLOSE_F +H5O_mp_H5OCOPY_F +H5O_mp_H5ODECR_REFCOUNT_F +H5O_mp_H5OEXISTS_BY_NAME_F +H5O_mp_H5OGET_COMMENT_F +H5O_mp_H5OGET_COMMENT_BY_NAME_F +H5O_mp_H5OINCR_REFCOUNT_F +H5O_mp_H5OLINK_F +H5O_mp_H5OOPEN_BY_ADDR_F +H5O_mp_H5OOPEN_BY_IDX_F +H5O_mp_H5OOPEN_F +H5O_mp_H5OSET_COMMENT_F +H5O_mp_H5OSET_COMMENT_BY_NAME_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_F +; H5P +H5P_mp_H5PCREATE_F +H5P_mp_H5PSET_PRESERVE_F +H5P_mp_H5PGET_PRESERVE_F +H5P_mp_H5PGET_CLASS_F +H5P_mp_H5PCOPY_F +H5P_mp_H5PCLOSE_F +H5P_mp_H5PSET_CHUNK_F +H5P_mp_H5PGET_CHUNK_F +H5P_mp_H5PSET_DEFLATE_F +H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_INTEGER +H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_INTEGER +H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_REAL +H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_REAL +H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_CHAR +H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_CHAR +H5P_mp_H5PGET_VERSION_F +H5P_mp_H5PSET_USERBLOCK_F +H5P_mp_H5PGET_USERBLOCK_F +H5P_mp_H5PSET_SIZES_F +H5P_mp_H5PGET_SIZES_F +H5P_mp_H5PSET_SYM_K_F +H5P_mp_H5PGET_SYM_K_F +H5P_mp_H5PSET_ISTORE_K_F +H5P_mp_H5PGET_ISTORE_K_F +H5P_mp_H5PGET_DRIVER_F +H5P_mp_H5PSET_FAPL_STDIO_F +H5P_mp_H5PSET_FAPL_SEC2_F +H5P_mp_H5PSET_ALIGNMENT_F +H5P_mp_H5PGET_ALIGNMENT_F +H5P_mp_H5PSET_FAPL_CORE_F +H5P_mp_H5PGET_FAPL_CORE_F +H5P_mp_H5PSET_FAPL_FAMILY_F +H5P_mp_H5PGET_FAPL_FAMILY_F +H5P_mp_H5PSET_CACHE_F +H5P_mp_H5PGET_CACHE_F +H5P_mp_H5PSET_FAPL_SPLIT_F +H5P_mp_H5PSET_GC_REFERENCES_F +H5P_mp_H5PGET_GC_REFERENCES_F +H5P_mp_H5PSET_LAYOUT_F +H5P_mp_H5PGET_LAYOUT_F +H5P_mp_H5PSET_FILTER_F +H5P_mp_H5PGET_NFILTERS_F +H5P_mp_H5PGET_FILTER_F +H5P_mp_H5PSET_EXTERNAL_F +H5P_mp_H5PGET_EXTERNAL_COUNT_F +H5P_mp_H5PGET_EXTERNAL_F +H5P_mp_H5PSET_BTREE_RATIOS_F +H5P_mp_H5PGET_BTREE_RATIOS_F +H5P_mp_H5PGET_FCLOSE_DEGREE_F +H5P_mp_H5PSET_FCLOSE_DEGREE_F +H5P_mp_H5PEQUAL_F +H5P_mp_H5PSET_BUFFER_F +H5P_mp_H5PGET_BUFFER_F +H5P_mp_H5PFILL_VALUE_DEFINED_F +H5P_mp_H5PSET_ALLOC_TIME_F +H5P_mp_H5PGET_ALLOC_TIME_F +H5P_mp_H5PSET_FILL_TIME_F +H5P_mp_H5PGET_FILL_TIME_F +H5P_mp_H5PSET_META_BLOCK_SIZE_F +H5P_mp_H5PGET_META_BLOCK_SIZE_F +H5P_mp_H5PSET_SIEVE_BUF_SIZE_F +H5P_mp_H5PGET_SIEVE_BUF_SIZE_F +H5P_mp_H5PSET_SMALL_DATA_BLOCK_SIZE_F +H5P_mp_H5PGET_SMALL_DATA_BLOCK_SIZE_F +H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F +H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F +H5P_PROVISIONAL_mp_H5PSET_INTEGER +H5P_PROVISIONAL_mp_H5PSET_REAL +H5P_PROVISIONAL_mp_H5PSET_CHAR +H5P_PROVISIONAL_mp_H5PGET_INTEGER +H5P_PROVISIONAL_mp_H5PGET_REAL +H5P_PROVISIONAL_mp_H5PGET_CHAR +H5P_mp_H5PEXIST_F +H5P_mp_H5PGET_SIZE_F +H5P_mp_H5PGET_NPROPS_F +H5P_mp_H5PGET_CLASS_NAME_F +H5P_mp_H5PGET_CLASS_PARENT_F +H5P_mp_H5PISA_CLASS_F +H5P_mp_H5PCOPY_PROP_F +H5P_mp_H5PREMOVE_F +H5P_mp_H5PUNREGISTER_F +H5P_mp_H5PCLOSE_CLASS_F +H5P_PROVISIONAL_mp_H5PCREATE_CLASS_F +H5P_PROVISIONAL_mp_H5PREGISTER_INTEGER +H5P_PROVISIONAL_mp_H5PREGISTER_REAL +H5P_PROVISIONAL_mp_H5PREGISTER_CHAR +H5P_PROVISIONAL_mp_H5PINSERT_INTEGER +H5P_PROVISIONAL_mp_H5PINSERT_REAL +H5P_PROVISIONAL_mp_H5PINSERT_CHAR +H5P_mp_H5PSET_SHUFFLE_F +H5P_mp_H5PSET_EDC_CHECK_F +H5P_mp_H5PGET_EDC_CHECK_F +H5P_mp_H5PSET_FLETCHER32_F +H5P_mp_H5PSET_FAMILY_OFFSET_F +H5P_mp_H5PSET_FAPL_MULTI_L +H5P_mp_H5PSET_FAPL_MULTI_S +H5P_mp_H5PGET_FAPL_MULTI_F +H5P_mp_H5PSET_SZIP_F +H5P_mp_H5PALL_FILTERS_AVAIL_F +H5P_mp_H5PGET_FILTER_BY_ID_F +H5P_mp_H5PMODIFY_FILTER_F +H5P_mp_H5PREMOVE_FILTER_F +H5P_mp_H5PGET_ATTR_PHASE_CHANGE_F +H5P_mp_H5PSET_ATTR_CREATION_ORDER_F +H5P_mp_H5PSET_SHARED_MESG_NINDEXES_F +H5P_mp_H5PSET_SHARED_MESG_INDEX_F +H5P_mp_H5PGET_ATTR_CREATION_ORDER_F +H5P_mp_H5PSET_LIBVER_BOUNDS_F +H5P_mp_H5PSET_LINK_CREATION_ORDER_F +H5P_mp_H5PGET_LINK_PHASE_CHANGE_F +H5P_mp_H5PGET_OBJ_TRACK_TIMES_F +H5P_mp_H5PSET_OBJ_TRACK_TIMES_F +H5P_mp_H5PSET_CREATE_INTER_GROUP_F +H5P_mp_H5PGET_LINK_CREATION_ORDER_F +H5P_mp_H5PSET_CHAR_ENCODING_F +H5P_mp_H5PGET_CHAR_ENCODING_F +H5P_mp_H5PSET_COPY_OBJECT_F +H5P_mp_H5PGET_COPY_OBJECT_F +H5P_mp_H5PGET_DATA_TRANSFORM_F +H5P_mp_H5PSET_DATA_TRANSFORM_F +H5P_mp_H5PGET_LOCAL_HEAP_SIZE_HINT_F +H5P_mp_H5PGET_EST_LINK_INFO_F +H5P_mp_H5PSET_LOCAL_HEAP_SIZE_HINT_F +H5P_mp_H5PSET_EST_LINK_INFO_F +H5P_mp_H5PSET_LINK_PHASE_CHANGE_F +H5P_mp_H5PSET_FAPL_DIRECT_F +H5P_mp_H5PGET_FAPL_DIRECT_F +H5P_mp_H5PSET_ATTR_PHASE_CHANGE_F +H5P_mp_H5PSET_NBIT_F +H5P_mp_H5PSET_SCALEOFFSET_F +H5P_mp_H5PSET_NLINKS_F +H5P_mp_H5PGET_NLINKS_F +H5P_mp_H5PGET_CREATE_INTER_GROUP_F +H5P_mp_H5PSET_CHUNK_CACHE_F +H5P_mp_H5PGET_CHUNK_CACHE_F +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PREGISTER_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PINSERT_PTR +; H5R +H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F +H5R_PROVISIONAL_mp_H5RCREATE_REGION_F +H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F +H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F +H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F +H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F +H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F +H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_REGION_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RCREATE_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RDEREFERENCE_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_NAME_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_OBJ_TYPE_F +; H5S +H5S_mp_H5SCREATE_SIMPLE_F +H5S_mp_H5SCLOSE_F +H5S_mp_H5SCREATE_F +H5S_mp_H5SCOPY_F +H5S_mp_H5SGET_SELECT_HYPER_NBLOCKS_F +H5S_mp_H5SGET_SELECT_HYPER_BLOCKLIST_F +H5S_mp_H5SGET_SELECT_BOUNDS_F +H5S_mp_H5SGET_SELECT_ELEM_NPOINTS_F +H5S_mp_H5SGET_SELECT_ELEM_POINTLIST_F +H5S_mp_H5SSELECT_ELEMENTS_F +H5S_mp_H5SSELECT_ALL_F +H5S_mp_H5SSELECT_NONE_F +H5S_mp_H5SSELECT_VALID_F +H5S_mp_H5SGET_SIMPLE_EXTENT_NPOINTS_F +H5S_mp_H5SGET_SELECT_NPOINTS_F +H5S_mp_H5SGET_SIMPLE_EXTENT_NDIMS_F +H5S_mp_H5SGET_SIMPLE_EXTENT_DIMS_F +H5S_mp_H5SGET_SIMPLE_EXTENT_TYPE_F +H5S_mp_H5SSET_EXTENT_SIMPLE_F +H5S_mp_H5SIS_SIMPLE_F +H5S_mp_H5SOFFSET_SIMPLE_F +H5S_mp_H5SEXTENT_COPY_F +H5S_mp_H5SSET_EXTENT_NONE_F +H5S_mp_H5SSELECT_HYPERSLAB_F +H5S_mp_H5SGET_SELECT_TYPE_F +H5S_mp_H5SDECODE_F +H5S_mp_H5SENCODE_F +H5S_mp_H5SEXTENT_EQUAL_F +; H5T +H5T_mp_H5TOPEN_F +H5T_mp_H5TCOMMIT_F +H5T_mp_H5TCOPY_F +H5T_mp_H5TEQUAL_F +H5T_mp_H5TCLOSE_F +H5T_mp_H5TGET_CLASS_F +H5T_mp_H5TGET_SIZE_F +H5T_mp_H5TSET_SIZE_F +H5T_mp_H5TGET_ORDER_F +H5T_mp_H5TSET_ORDER_F +H5T_mp_H5TGET_PRECISION_F +H5T_mp_H5TSET_PRECISION_F +H5T_mp_H5TGET_OFFSET_F +H5T_mp_H5TSET_OFFSET_F +H5T_mp_H5TGET_PAD_F +H5T_mp_H5TSET_PAD_F +H5T_mp_H5TGET_SIGN_F +H5T_mp_H5TSET_SIGN_F +H5T_mp_H5TGET_FIELDS_F +H5T_mp_H5TSET_FIELDS_F +H5T_mp_H5TGET_EBIAS_F +H5T_mp_H5TSET_EBIAS_F +H5T_mp_H5TGET_NORM_F +H5T_mp_H5TSET_NORM_F +H5T_mp_H5TGET_INPAD_F +H5T_mp_H5TSET_INPAD_F +H5T_mp_H5TGET_CSET_F +H5T_mp_H5TSET_CSET_F +H5T_mp_H5TGET_STRPAD_F +H5T_mp_H5TSET_STRPAD_F +H5T_mp_H5TGET_NMEMBERS_F +H5T_mp_H5TGET_MEMBER_NAME_F +H5T_mp_H5TGET_MEMBER_OFFSET_F +H5T_mp_H5TGET_MEMBER_INDEX_F +H5T_mp_H5TGET_ARRAY_DIMS_F +H5T_mp_H5TGET_ARRAY_NDIMS_F +H5T_mp_H5TGET_SUPER_F +H5T_mp_H5TGET_MEMBER_TYPE_F +H5T_mp_H5TCREATE_F +H5T_mp_H5TINSERT_F +H5T_mp_H5TPACK_F +H5T_mp_H5TARRAY_CREATE_F +H5T_mp_H5TENUM_CREATE_F +H5T_mp_H5TENUM_INSERT_F +H5T_mp_H5TENUM_NAMEOF_F +H5T_mp_H5TENUM_VALUEOF_F +H5T_mp_H5TGET_MEMBER_VALUE_F +H5T_mp_H5TSET_TAG_F +H5T_mp_H5TGET_TAG_F +H5T_mp_H5TVLEN_CREATE_F +H5T_mp_H5TIS_VARIABLE_STR_F +H5T_mp_H5TGET_MEMBER_CLASS_F +H5T_mp_H5TCOMMIT_ANON_F +H5T_mp_H5TCOMMITTED_F +H5T_mp_H5TDECODE_F +H5T_mp_H5TENCODE_F +H5T_mp_H5TGET_CREATE_PLIST_F +H5T_mp_H5TCOMPILER_CONV_F +H5T_mp_H5TGET_NATIVE_TYPE_F +@H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TCONVERT_F +; H5Z +H5Z_mp_H5ZUNREGISTER_F +H5Z_mp_H5ZFILTER_AVAIL_F +H5Z_mp_H5ZGET_FILTER_INFO_F +; Parallel +@H5_NOPAREXP@H5FDMPIO_mp_H5PSET_FAPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_FAPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PSET_DXPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_DXPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PSET_FAPL_MPIPOSIX_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_FAPL_MPIPOSIX_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F diff --git a/fortran/src/phdf5_fortrandll.def b/fortran/src/phdf5_fortrandll.def deleted file mode 100644 index df61860..0000000 --- a/fortran/src/phdf5_fortrandll.def +++ /dev/null @@ -1,552 +0,0 @@ -EXPORTS -; H5LIB -H5LIB_mp_H5OPEN_F -H5LIB_mp_H5CLOSE_F -H5LIB_mp_H5GET_LIBVERSION_F -H5LIB_mp_H5CHECK_VERSION_F -H5LIB_mp_H5GARBAGE_COLLECT_F -H5LIB_mp_H5DONT_ATEXIT_F -; H5_DBLE_INTERFACE -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6 -H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7 -H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE -H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE -H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE -H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE -H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE -H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE -; H5A -H5A_mp_H5ACREATE_F -H5A_mp_H5AOPEN_NAME_F -H5A_mp_H5AOPEN_IDX_F -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_SCALAR -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_1 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_2 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_3 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_4 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_5 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_6 -H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_7 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_SCALAR -H5A_PROVISIONAL_mp_H5AWRITE_REAL_1 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_2 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_3 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_4 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_5 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_6 -H5A_PROVISIONAL_mp_H5AWRITE_REAL_7 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_SCALAR -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_1 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_2 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_3 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_4 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_5 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_6 -H5A_PROVISIONAL_mp_H5AWRITE_CHAR_7 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_SCALAR -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_1 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_2 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_3 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_4 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_5 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_6 -H5A_PROVISIONAL_mp_H5AREAD_INTEGER_7 -H5A_PROVISIONAL_mp_H5AREAD_REAL_SCALAR -H5A_PROVISIONAL_mp_H5AREAD_REAL_1 -H5A_PROVISIONAL_mp_H5AREAD_REAL_2 -H5A_PROVISIONAL_mp_H5AREAD_REAL_3 -H5A_PROVISIONAL_mp_H5AREAD_REAL_4 -H5A_PROVISIONAL_mp_H5AREAD_REAL_5 -H5A_PROVISIONAL_mp_H5AREAD_REAL_6 -H5A_PROVISIONAL_mp_H5AREAD_REAL_7 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_SCALAR -H5A_PROVISIONAL_mp_H5AREAD_CHAR_1 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_2 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_3 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_4 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_5 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_6 -H5A_PROVISIONAL_mp_H5AREAD_CHAR_7 -H5A_mp_H5AGET_SPACE_F -H5A_mp_H5AGET_TYPE_F -H5A_mp_H5AGET_NAME_F -H5A_mp_H5AGET_NAME_BY_IDX_F -H5A_mp_H5AGET_NUM_ATTRS_F -H5A_mp_H5ADELETE_F -H5A_mp_H5ACLOSE_F -H5A_mp_H5AGET_STORAGE_SIZE_F -H5A_mp_H5AGET_CREATE_PLIST_F -H5A_mp_H5ARENAME_BY_NAME_F -H5A_mp_H5AOPEN_F -H5A_mp_H5ADELETE_BY_IDX_F -H5A_mp_H5ADELETE_BY_NAME_F -H5A_mp_H5AOPEN_BY_IDX_F -H5A_mp_H5AGET_INFO_F -H5A_mp_H5AGET_INFO_BY_IDX_F -H5A_mp_H5AGET_INFO_BY_NAME_F -H5A_mp_H5ACREATE_BY_NAME_F -H5A_mp_H5AEXISTS_F -H5A_mp_H5AEXISTS_BY_NAME_F -H5A_mp_H5AOPEN_BY_NAME_F -H5A_mp_H5ARENAME_F -; H5D -H5D_mp_H5DCREATE_F -H5D_mp_H5DOPEN_F -H5D_mp_H5DCLOSE_F -H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_OBJ -H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_DSETREG -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_SCALAR -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_1 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_2 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_3 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_4 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_5 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_6 -H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_7 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_SCALAR -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_1 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_2 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_3 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_4 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_5 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_6 -H5D_PROVISIONAL_mp_H5DWRITE_CHAR_7 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_SCALAR -H5D_PROVISIONAL_mp_H5DWRITE_REAL_1 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_2 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_3 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_4 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_5 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_6 -H5D_PROVISIONAL_mp_H5DWRITE_REAL_7 -H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_OBJ -H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_DSETREG -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_SCALAR -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_1 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_2 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_3 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_4 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_5 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_6 -H5D_PROVISIONAL_mp_H5DREAD_INTEGER_7 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_SCALAR -H5D_PROVISIONAL_mp_H5DREAD_CHAR_1 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_2 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_3 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_4 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_5 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_6 -H5D_PROVISIONAL_mp_H5DREAD_CHAR_7 -H5D_PROVISIONAL_mp_H5DREAD_REAL_SCALAR -H5D_PROVISIONAL_mp_H5DREAD_REAL_1 -H5D_PROVISIONAL_mp_H5DREAD_REAL_2 -H5D_PROVISIONAL_mp_H5DREAD_REAL_3 -H5D_PROVISIONAL_mp_H5DREAD_REAL_4 -H5D_PROVISIONAL_mp_H5DREAD_REAL_5 -H5D_PROVISIONAL_mp_H5DREAD_REAL_6 -H5D_PROVISIONAL_mp_H5DREAD_REAL_7 -H5D_mp_H5DGET_SPACE_F -H5D_mp_H5DGET_TYPE_F -H5D_mp_H5DSET_EXTENT_F -H5D_mp_H5DGET_CREATE_PLIST_F -H5D_mp_H5DGET_STORAGE_SIZE_F -H5D_mp_H5DVLEN_GET_MAX_LEN_F -H5D_mp_H5DWRITE_VL_INTEGER -H5D_mp_H5DREAD_VL_INTEGER -H5D_mp_H5DWRITE_VL_REAL -H5D_mp_H5DREAD_VL_REAL -H5D_mp_H5DWRITE_VL_STRING -H5D_mp_H5DREAD_VL_STRING -H5D_PROVISIONAL_mp_H5DFILL_INTEGER -H5D_PROVISIONAL_mp_H5DFILL_REAL -H5D_PROVISIONAL_mp_H5DFILL_CHAR -H5D_mp_H5DGET_SPACE_STATUS_F -H5D_mp_H5DCREATE_ANON_F -H5D_mp_H5DGET_SPACE_F -H5D_mp_H5DGET_TYPE_F -H5D_mp_H5DSET_EXTENT_F -H5D_mp_H5DGET_CREATE_PLIST_F -H5D_mp_H5DGET_STORAGE_SIZE_F -H5D_mp_H5DVLEN_GET_MAX_LEN_F -H5D_mp_H5DGET_ACCESS_PLIST_F -; H5E -H5E_mp_H5ECLEAR_F -H5E_mp_H5EPRINT_F -H5E_mp_H5EGET_MAJOR_F -H5E_mp_H5EGET_MINOR_F -H5E_PROVISIONAL_mp_H5ESET_AUTO_F -; H5F -H5F_mp_H5FCREATE_F -H5F_mp_H5FFLUSH_F -H5F_mp_H5FCLOSE_F -H5F_mp_H5FGET_OBJ_COUNT_F -H5F_mp_H5FGET_OBJ_IDS_F -H5F_mp_H5FGET_FREESPACE_F -H5F_mp_H5FMOUNT_F -H5F_mp_H5FUNMOUNT_F -H5F_mp_H5FOPEN_F -H5F_mp_H5FREOPEN_F -H5F_mp_H5FGET_CREATE_PLIST_F -H5F_mp_H5FGET_ACCESS_PLIST_F -H5F_mp_H5FIS_HDF5_F -H5F_mp_H5FGET_NAME_F -H5F_mp_H5FGET_FILESIZE_F -; H5G -H5G_mp_H5GOPEN_F -H5G_mp_H5GCREATE_F -H5G_mp_H5GCLOSE_F -H5G_mp_H5GGET_OBJ_INFO_IDX_F -H5G_mp_H5GN_MEMBERS_F -H5G_mp_H5GLINK_F -H5G_mp_H5GLINK2_F -H5G_mp_H5GUNLINK_F -H5G_mp_H5GMOVE_F -H5G_mp_H5GMOVE2_F -H5G_mp_H5GGET_LINKVAL_F -H5G_mp_H5GSET_COMMENT_F -H5G_mp_H5GGET_COMMENT_F -H5G_mp_H5GCREATE_ANON_F -H5G_mp_H5GGET_CREATE_PLIST_F -H5G_mp_H5GGET_INFO_F -H5G_mp_H5GGET_INFO_BY_IDX_F -H5G_mp_H5GGET_INFO_BY_NAME_F -H5G_mp_H5GGET_OBJ_INFO_IDX_F -; H5GLOBAL -; PREDEFINED_TYPES DATA -; FLOATING_TYPES DATA -; INTEGER_TYPES DATA -; H5F_FLAGS DATA -; H5GENERIC_FLAGS DATA -; H5G_FLAGS DATA -; H5D_FLAGS DATA -; H5FD_FLAGS DATA -; H5FD_HID_FLAGS DATA -; H5I_FLAGS DATA -; H5L_FLAGS DATA -; H5O_FLAGS DATA -; H5P_FLAGS DATA -; H5P_FLAGS_INT DATA -; H5R_FLAGS DATA -; H5S_FLAGS DATA -; H5T_FLAGS DATA -; H5Z_FLAGS DATA -; H5LIB_FLAGS DATA -; H5I -H5I_mp_H5IGET_TYPE_F -H5I_mp_H5IGET_NAME_F -H5I_mp_H5IINC_REF_F -H5I_mp_H5IDEC_REF_F -H5I_mp_H5IGET_REF_F -H5I_mp_H5IGET_FILE_ID_F -H5I_mp_H5IIS_VALID_F -; H5L -H5L_mp_H5LCOPY_F -H5L_mp_H5LDELETE_F -H5L_mp_H5LCREATE_SOFT_F -H5L_mp_H5LCREATE_HARD_F -H5L_mp_H5LCREATE_EXTERNAL_F -H5L_mp_H5LDELETE_BY_IDX_F -H5L_mp_H5LEXISTS_F -H5L_mp_H5LGET_INFO_F -H5L_mp_H5LGET_INFO_BY_IDX_F -H5L_mp_H5LIS_REGISTERED_F -H5L_mp_H5LMOVE_F -H5L_mp_H5LGET_NAME_BY_IDX_F -; H5O -H5O_mp_H5OCLOSE_F -H5O_mp_H5OCOPY_F -H5O_mp_H5ODECR_REFCOUNT_F -H5O_mp_H5OEXISTS_BY_NAME_F -H5O_mp_H5OGET_COMMENT_F -H5O_mp_H5OGET_COMMENT_BY_NAME_F -H5O_mp_H5OINCR_REFCOUNT_F -H5O_mp_H5OLINK_F -H5O_mp_H5OOPEN_BY_ADDR_F -H5O_mp_H5OOPEN_BY_IDX_F -H5O_mp_H5OOPEN_F -H5O_mp_H5OSET_COMMENT_F -H5O_mp_H5OSET_COMMENT_BY_NAME_F -; These should only get compiled with option --enable-fortran2003 -;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F -;H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F -;H5O_PROVISIONAL_mp_H5OGET_INFO_F -;H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F -;H5O_PROVISIONAL_mp_H5OVISIT_F -; H5P -H5P_mp_H5PCREATE_F -H5P_mp_H5PSET_PRESERVE_F -H5P_mp_H5PGET_PRESERVE_F -H5P_mp_H5PGET_CLASS_F -H5P_mp_H5PCOPY_F -H5P_mp_H5PCLOSE_F -H5P_mp_H5PSET_CHUNK_F -H5P_mp_H5PGET_CHUNK_F -H5P_mp_H5PSET_DEFLATE_F -H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_INTEGER -H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_INTEGER -H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_REAL -H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_REAL -H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_CHAR -H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_CHAR -H5P_mp_H5PGET_VERSION_F -H5P_mp_H5PSET_USERBLOCK_F -H5P_mp_H5PGET_USERBLOCK_F -H5P_mp_H5PSET_SIZES_F -H5P_mp_H5PGET_SIZES_F -H5P_mp_H5PSET_SYM_K_F -H5P_mp_H5PGET_SYM_K_F -H5P_mp_H5PSET_ISTORE_K_F -H5P_mp_H5PGET_ISTORE_K_F -H5P_mp_H5PGET_DRIVER_F -H5P_mp_H5PSET_FAPL_STDIO_F -H5P_mp_H5PSET_FAPL_SEC2_F -H5P_mp_H5PSET_ALIGNMENT_F -H5P_mp_H5PGET_ALIGNMENT_F -H5P_mp_H5PSET_FAPL_CORE_F -H5P_mp_H5PGET_FAPL_CORE_F -H5P_mp_H5PSET_FAPL_FAMILY_F -H5P_mp_H5PGET_FAPL_FAMILY_F -H5P_mp_H5PSET_CACHE_F -H5P_mp_H5PGET_CACHE_F -H5P_mp_H5PSET_FAPL_SPLIT_F -H5P_mp_H5PSET_GC_REFERENCES_F -H5P_mp_H5PGET_GC_REFERENCES_F -H5P_mp_H5PSET_LAYOUT_F -H5P_mp_H5PGET_LAYOUT_F -H5P_mp_H5PSET_FILTER_F -H5P_mp_H5PGET_NFILTERS_F -H5P_mp_H5PGET_FILTER_F -H5P_mp_H5PSET_EXTERNAL_F -H5P_mp_H5PGET_EXTERNAL_COUNT_F -H5P_mp_H5PGET_EXTERNAL_F -H5P_mp_H5PSET_BTREE_RATIOS_F -H5P_mp_H5PGET_BTREE_RATIOS_F -H5P_mp_H5PGET_FCLOSE_DEGREE_F -H5P_mp_H5PSET_FCLOSE_DEGREE_F -H5P_mp_H5PEQUAL_F -H5P_mp_H5PSET_BUFFER_F -H5P_mp_H5PGET_BUFFER_F -H5P_mp_H5PFILL_VALUE_DEFINED_F -H5P_mp_H5PSET_ALLOC_TIME_F -H5P_mp_H5PGET_ALLOC_TIME_F -H5P_mp_H5PSET_FILL_TIME_F -H5P_mp_H5PGET_FILL_TIME_F -H5P_mp_H5PSET_META_BLOCK_SIZE_F -H5P_mp_H5PGET_META_BLOCK_SIZE_F -H5P_mp_H5PSET_SIEVE_BUF_SIZE_F -H5P_mp_H5PGET_SIEVE_BUF_SIZE_F -H5P_mp_H5PSET_SMALL_DATA_BLOCK_SIZE_F -H5P_mp_H5PGET_SMALL_DATA_BLOCK_SIZE_F -H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F -H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F -H5P_PROVISIONAL_mp_H5PSET_INTEGER -H5P_PROVISIONAL_mp_H5PSET_REAL -H5P_PROVISIONAL_mp_H5PSET_CHAR -H5P_PROVISIONAL_mp_H5PGET_INTEGER -H5P_PROVISIONAL_mp_H5PGET_REAL -H5P_PROVISIONAL_mp_H5PGET_CHAR -H5P_mp_H5PEXIST_F -H5P_mp_H5PGET_SIZE_F -H5P_mp_H5PGET_NPROPS_F -H5P_mp_H5PGET_CLASS_NAME_F -H5P_mp_H5PGET_CLASS_PARENT_F -H5P_mp_H5PISA_CLASS_F -H5P_mp_H5PCOPY_PROP_F -H5P_mp_H5PREMOVE_F -H5P_mp_H5PUNREGISTER_F -H5P_mp_H5PCLOSE_CLASS_F -H5P_PROVISIONAL_mp_H5PCREATE_CLASS_F -H5P_PROVISIONAL_mp_H5PREGISTER_INTEGER -H5P_PROVISIONAL_mp_H5PREGISTER_REAL -H5P_PROVISIONAL_mp_H5PREGISTER_CHAR -H5P_PROVISIONAL_mp_H5PINSERT_INTEGER -H5P_PROVISIONAL_mp_H5PINSERT_REAL -H5P_PROVISIONAL_mp_H5PINSERT_CHAR -H5P_mp_H5PSET_SHUFFLE_F -H5P_mp_H5PSET_EDC_CHECK_F -H5P_mp_H5PGET_EDC_CHECK_F -H5P_mp_H5PSET_FLETCHER32_F -H5P_mp_H5PSET_FAMILY_OFFSET_F -H5P_mp_H5PSET_FAPL_MULTI_L -H5P_mp_H5PSET_FAPL_MULTI_S -H5P_mp_H5PGET_FAPL_MULTI_F -H5P_mp_H5PSET_SZIP_F -H5P_mp_H5PALL_FILTERS_AVAIL_F -H5P_mp_H5PGET_FILTER_BY_ID_F -H5P_mp_H5PMODIFY_FILTER_F -H5P_mp_H5PREMOVE_FILTER_F -H5P_mp_H5PGET_ATTR_PHASE_CHANGE_F -H5P_mp_H5PSET_ATTR_CREATION_ORDER_F -H5P_mp_H5PSET_SHARED_MESG_NINDEXES_F -H5P_mp_H5PSET_SHARED_MESG_INDEX_F -H5P_mp_H5PGET_ATTR_CREATION_ORDER_F -H5P_mp_H5PSET_LIBVER_BOUNDS_F -H5P_mp_H5PSET_LINK_CREATION_ORDER_F -H5P_mp_H5PGET_LINK_PHASE_CHANGE_F -H5P_mp_H5PGET_OBJ_TRACK_TIMES_F -H5P_mp_H5PSET_OBJ_TRACK_TIMES_F -H5P_mp_H5PSET_CREATE_INTER_GROUP_F -H5P_mp_H5PGET_LINK_CREATION_ORDER_F -H5P_mp_H5PSET_CHAR_ENCODING_F -H5P_mp_H5PGET_CHAR_ENCODING_F -H5P_mp_H5PSET_COPY_OBJECT_F -H5P_mp_H5PGET_COPY_OBJECT_F -H5P_mp_H5PGET_DATA_TRANSFORM_F -H5P_mp_H5PSET_DATA_TRANSFORM_F -H5P_mp_H5PGET_LOCAL_HEAP_SIZE_HINT_F -H5P_mp_H5PGET_EST_LINK_INFO_F -H5P_mp_H5PSET_LOCAL_HEAP_SIZE_HINT_F -H5P_mp_H5PSET_EST_LINK_INFO_F -H5P_mp_H5PSET_LINK_PHASE_CHANGE_F -H5P_mp_H5PSET_FAPL_DIRECT_F -H5P_mp_H5PGET_FAPL_DIRECT_F -H5P_mp_H5PSET_ATTR_PHASE_CHANGE_F -H5P_mp_H5PSET_NBIT_F -H5P_mp_H5PSET_SCALEOFFSET_F -H5P_mp_H5PSET_NLINKS_F -H5P_mp_H5PGET_NLINKS_F -H5P_mp_H5PGET_CREATE_INTER_GROUP_F -H5P_mp_H5PSET_CHUNK_CACHE_F -H5P_mp_H5PGET_CHUNK_CACHE_F -; H5R -H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F -H5R_PROVISIONAL_mp_H5RCREATE_REGION_F -H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F -H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F -H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F - -H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F -H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F -H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F -; H5S -H5S_mp_H5SCREATE_SIMPLE_F -H5S_mp_H5SCLOSE_F -H5S_mp_H5SCREATE_F -H5S_mp_H5SCOPY_F -H5S_mp_H5SGET_SELECT_HYPER_NBLOCKS_F -H5S_mp_H5SGET_SELECT_HYPER_BLOCKLIST_F -H5S_mp_H5SGET_SELECT_BOUNDS_F -H5S_mp_H5SGET_SELECT_ELEM_NPOINTS_F -H5S_mp_H5SGET_SELECT_ELEM_POINTLIST_F -H5S_mp_H5SSELECT_ELEMENTS_F -H5S_mp_H5SSELECT_ALL_F -H5S_mp_H5SSELECT_NONE_F -H5S_mp_H5SSELECT_VALID_F -H5S_mp_H5SGET_SIMPLE_EXTENT_NPOINTS_F -H5S_mp_H5SGET_SELECT_NPOINTS_F -H5S_mp_H5SGET_SIMPLE_EXTENT_NDIMS_F -H5S_mp_H5SGET_SIMPLE_EXTENT_DIMS_F -H5S_mp_H5SGET_SIMPLE_EXTENT_TYPE_F -H5S_mp_H5SSET_EXTENT_SIMPLE_F -H5S_mp_H5SIS_SIMPLE_F -H5S_mp_H5SOFFSET_SIMPLE_F -H5S_mp_H5SEXTENT_COPY_F -H5S_mp_H5SSET_EXTENT_NONE_F -H5S_mp_H5SSELECT_HYPERSLAB_F -H5S_mp_H5SGET_SELECT_TYPE_F -H5S_mp_H5SDECODE_F -H5S_mp_H5SENCODE_F -H5S_mp_H5SEXTENT_EQUAL_F -; H5T -H5T_mp_H5TOPEN_F -H5T_mp_H5TCOMMIT_F -H5T_mp_H5TCOPY_F -H5T_mp_H5TEQUAL_F -H5T_mp_H5TCLOSE_F -H5T_mp_H5TGET_CLASS_F -H5T_mp_H5TGET_SIZE_F -H5T_mp_H5TSET_SIZE_F -H5T_mp_H5TGET_ORDER_F -H5T_mp_H5TSET_ORDER_F -H5T_mp_H5TGET_PRECISION_F -H5T_mp_H5TSET_PRECISION_F -H5T_mp_H5TGET_OFFSET_F -H5T_mp_H5TSET_OFFSET_F -H5T_mp_H5TGET_PAD_F -H5T_mp_H5TSET_PAD_F -H5T_mp_H5TGET_SIGN_F -H5T_mp_H5TSET_SIGN_F -H5T_mp_H5TGET_FIELDS_F -H5T_mp_H5TSET_FIELDS_F -H5T_mp_H5TGET_EBIAS_F -H5T_mp_H5TSET_EBIAS_F -H5T_mp_H5TGET_NORM_F -H5T_mp_H5TSET_NORM_F -H5T_mp_H5TGET_INPAD_F -H5T_mp_H5TSET_INPAD_F -H5T_mp_H5TGET_CSET_F -H5T_mp_H5TSET_CSET_F -H5T_mp_H5TGET_STRPAD_F -H5T_mp_H5TSET_STRPAD_F -H5T_mp_H5TGET_NMEMBERS_F -H5T_mp_H5TGET_MEMBER_NAME_F -H5T_mp_H5TGET_MEMBER_OFFSET_F -H5T_mp_H5TGET_MEMBER_INDEX_F -H5T_mp_H5TGET_ARRAY_DIMS_F -H5T_mp_H5TGET_ARRAY_NDIMS_F -H5T_mp_H5TGET_SUPER_F -H5T_mp_H5TGET_MEMBER_TYPE_F -H5T_mp_H5TCREATE_F -H5T_mp_H5TINSERT_F -H5T_mp_H5TPACK_F -H5T_mp_H5TARRAY_CREATE_F -H5T_mp_H5TENUM_CREATE_F -H5T_mp_H5TENUM_INSERT_F -H5T_mp_H5TENUM_NAMEOF_F -H5T_mp_H5TENUM_VALUEOF_F -H5T_mp_H5TGET_MEMBER_VALUE_F -H5T_mp_H5TSET_TAG_F -H5T_mp_H5TGET_TAG_F -H5T_mp_H5TVLEN_CREATE_F -H5T_mp_H5TIS_VARIABLE_STR_F -H5T_mp_H5TGET_MEMBER_CLASS_F -H5T_mp_H5TCOMMIT_ANON_F -H5T_mp_H5TCOMMITTED_F -H5T_mp_H5TDECODE_F -H5T_mp_H5TENCODE_F -H5T_mp_H5TGET_CREATE_PLIST_F -H5T_mp_H5TCOMPILER_CONV_F -H5T_mp_H5TGET_NATIVE_TYPE_F -; H5Z -H5Z_mp_H5ZUNREGISTER_F -H5Z_mp_H5ZFILTER_AVAIL_F -H5Z_mp_H5ZGET_FILTER_INFO_F -; Parallel -H5FDMPIO_mp_H5PSET_FAPL_MPIO_F -H5FDMPIO_mp_H5PGET_FAPL_MPIO_F -H5FDMPIO_mp_H5PSET_DXPL_MPIO_F -H5FDMPIO_mp_H5PGET_DXPL_MPIO_F -H5FDMPIO_mp_H5PSET_FAPL_MPIPOSIX_F -H5FDMPIO_mp_H5PGET_FAPL_MPIPOSIX_F -H5FDMPIO_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F \ No newline at end of file diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index 3a3d084..92ba651 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -100,7 +100,7 @@ ADD_TEST (NAME testhdf5_fortran_1_8 COMMAND $) SET_TESTS_PROPERTIES(testhdf5_fortran_1_8 PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s") #-- Adding test for fortranlib_test_F03 -IF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +IF (HDF5_ENABLE_F2003) ADD_EXECUTABLE (fortranlib_test_F03 fortranlib_test_F03.f90 tH5F.f90 @@ -125,7 +125,7 @@ IF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) ADD_TEST (NAME fortranlib_test_F03 COMMAND $) SET_TESTS_PROPERTIES(fortranlib_test_F03 PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s") -ENDIF (FORTRAN_HAVE_ISO_C_BINDING AND HDF5_ENABLE_F2003) +ENDIF (HDF5_ENABLE_F2003) #-- Adding test for fflush1 ADD_EXECUTABLE (fflush1 fflush1.f90) diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 93e3942..4dceeb2 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -458,7 +458,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 # Include src directory diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index d2e60b8..3cd2b38 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -474,7 +474,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \ -I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 0dcbc55..84ff1ef 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -457,7 +457,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 # This library is our main target. diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 13889de..a2b226a 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.132 currently under development +HDF5 version 1.9.136 currently under development ================================================================================ @@ -30,7 +30,9 @@ CONTENTS - New Features - Support for new platforms and languages - Bug Fixes since HDF5-1.8.0 -- Platforms Tested +- Supported Platforms +- Tested Configuration Features Summary +- More Tested Platforms - Known Problems @@ -1052,147 +1054,236 @@ Bug Fixes since HDF5-1.8.0 release -Platforms Tested -================ - +Supported Platforms +=================== AIX 5.3 xlc 10.1.0.5 (NASA G-ADA) xlC 10.1.0.5 xlf90 12.1.0.6 - FreeBSD 8.2-STABLE i386 gcc 4.2.1 [FreeBSD] 20070719 - (loyalty) gcc 4.6.1 20110422 - g++ 4.6.1 20110422 - gfortran 4.6.1 20110422 - - FreeBSD 8.2-STABLE amd64 gcc 4.2.1 [FreeBSD] 20070719 - (freedom) gcc 4.6.1 20110422 - g++ 4.6.1 20110422 - gfortran 4.6.1 20110422 - - Linux 2.6.18-194.3.1.el5PAE gcc (GCC) 4.1.2 and 4.4.2 - #1 SMP i686 i686 i386 GNU Fortran (GCC) 4.1.2 20080704 - (jam) (Red Hat 4.1.2-48) and 4.4.2 - PGI C, Fortran, C++ 10.4-0 32-bit - PGI C, Fortran, C++ 10.6-0 32-bit - Intel(R) C Compiler for 32-bit - applications, Version 11.1 - Intel(R) C++ Compiler for 32-bit - applications, Version 11.1 - Intel(R) Fortran Compiler for 32-bit - applications, Version 11.1 - MPICH mpich2-1.3.1 compiled with + Linux 2.6.18-308.13.1.el5PAE GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP i686 i686 i386 compilers for 32-bit applications; + (jam) Version 4.1.2 20080704 (Red Hat 4.1.2-52) + Version 4.6.3 + PGI C, Fortran, C++ Compilers for 32-bit + applications; + Version 11.9-0 + Intel(R) C, C++, Fortran Compiler for 32-bit + applications; + Version 12.1 + MPICH mpich2-1.4.1p1 compiled with gcc 4.1.2 and gfortran 4.1.2 - Linux 2.6.18-238.12.1.el5 gcc 4.1.2 and 4.4.2 - #1 SMP x86_64 GNU/Linux GNU Fortran (GCC) 4.1.2 20080704 - (koala) (Red Hat 4.1.2-46) and 4.4.2 - tested for both 32- and 64-bit binaries - Intel(R) C, C++, Fortran Compilers for - applications running on Intel(R) 64, - Version 11.1. - PGI C, Fortran, C++ Version 9.0-4 - for 64-bit target on x86-64 - MPICH mpich2-1.3.1 compiled with + Linux 2.6.18-308.16.1.el5 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers for 32-bit applications; + (koala) Version 4.1.2 20080704 (Red Hat 4.1.2-52) + Version 4.6.3 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 11.9-0 + Version 12.5-0 + Intel(R) C, C++, Fortran Compilers for + applications running on Intel(R) 64; + Version 12.1 (Build 20110811) + Version 12.1 (Build 20120212) + MPICH mpich2-1.4.1p1 compiled with gcc 4.1.2 and gfortran 4.1.2 - SGI ProPack 7 Linux Intel(R) C++ Version 11.1 20100806 - 2.6.32.19-0.3.1.1982.0.PTF- Intel(R) Fortran Version 11.1 20100806 - default #1 SMP SGI MPT 2.01 - SGI Altix UV - (NCSA ember) + Linux 2.6.32-220.7.1.el6.ppc64 gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) + (ostrich) GNU Fortran (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) + + Linux 2.6.32-220.23.1.1chaos Intel C, C++, Fortran Compilers + ch5.x86_64 GNU/Linux Version 12.1.5.339 + (LLNL Aztec) + + IBM Blue Gene/P XL C for Blue Gene/P, bgxlc V9.0 + (LLNL uDawn) XL C++ for Blue Gene/P, bgxlC V9.0 + XL Fortran for Blue Gene/P, bgxlf90 V11.1 SunOS 5.10 32- and 64-bit Sun C 5.9 Sun OS_sparc Patch 124867-16 - (linew) Sun Fortran 95 8.3 Sun OS_sparc Patch -127000-13 - Sun C++ 5.9 Sun OS_sparc Patch 124863-62 - Sun C 5.10 SunOS_sparc Patch 141861-07 - Sun Fortran 95 8.4 SunOS_sparc Patch -128231-06 - Sun C++ 5.10 SunOS_sparc 128228-11 + (linew) Sun Fortran 95 8.3 Sun OS_sparc Patch 127000-13 + Sun C++ 5.9 Sun OS_sparc Patch 124863-26 + Sun C 5.11 SunOS_sparc + Sun Fortran 95 8.5 SunOS_sparc + Sun C++ 5.11 SunOS_sparc + + Windows XP Visual Studio 2008 w/ Intel Fortran 10.1 (project files) + + Windows XP x64 Visual Studio 2008 w/ Intel Fortran 10.1 (project files) Windows 7 Visual Studio 2008 w/ Intel Fortran 11.1 (cmake) Visual Studio 2010 w/ Intel Fortran 12 (cmake) - Cygwin(1.7.9 native gcc(4.5.3) compiler and gfortran) + Cygwin(CYGWIN_NT-6.1 1.7.15(0.260/5/3) gcc(4.5.3) compiler and gfortran) + (cmake and autotools) Windows 7 x64 Visual Studio 2008 w/ Intel Fortran 11.1 (cmake) Visual Studio 2010 w/ Intel Fortran 12 (cmake) - Cygwin(1.7.9 native gcc(4.5.3) compiler and gfortran) + Cygwin(CYGWIN_NT-6.1 1.7.15(0.260/5/3) gcc(4.5.3) compiler and gfortran) + (cmake and autotools) + + Mac OS X Snow Leopard 10.6.8 gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 3.2.6 + Darwin Kernel Version 10.8.0 g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 3.2.6 + (fred) gfortran GNU Fortran (GCC) 4.6.2 + Intel C (icc), Fortran (ifort), C++ (icpc) + 12.1.0.038 Build 20110811 - MAC OS 10.5 (Intel) gcc i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 - G95 (GCC 4.0.3 (g95 0.91!) Nov 21 2006) - GNU Fortran (GCC) 4.3.0 20070810 - Alpha Open VMS 7.3 + Mac OS X Snow Leopard 10.6.8 gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 3.2.6 + Darwin Kernel Version 10.8.0 g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 3.2.6 + Intel 32-bit gfortran GNU Fortran (GCC) 4.6.1 + (tejeda) Intel C (icc), Fortran (ifort), C++ (icpc) + 12.1.0.038 Build 20110811 + Mac OS X Lion 10.7.3 gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 4.2.1 + 32- and 64-bit g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 4.2.1 + (duck) gfortran GNU Fortran (GCC) 4.6.2 -Supported Configuration Features Summary -======================================== + Mac OS X Mountain Lion 10.8.1 cc Apple clang version 4.0 from Xcode 4.5.1 + (owl) c++ Apple clang version 4.0 from Xcode 4.5.1 + gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 4.5.1 + g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 4.5.1 + gfortran GNU Fortran (GCC) 4.6.2 + + +Tested Configuration Features Summary +===================================== In the tables below - y = tested and supported - n = not supported or not tested in this release + y = tested + n = not tested in this release + C = Cluster + W = Workstation x = not working in this release + dna = does not apply ( ) = footnote appears below second table - = testing incomplete on this feature or platform - W or C indicates workstation or cluster, respectively. - -Platform C F90 F90 C++ zlib SZIP - parallel parallel -SunOS5.10 64-bit n y n y y y -SunOS5.10 32-bit n y n y y y -Windows 7 y y n y y y -Windows 7 x64 y y n y y y -Mac OS X 10.5 Intel n y n y y y -FreeBSD 8.2 32- and 64-bit n y n y y y -RedHat EL4 2.6.9 i686 GNU W y(2) y(4) y(2) y y y -RedHat EL4 2.6.9 i686 Intel W n y n y y n -RedHat EL4 2.6.9 i686 PGI W n y n y y n -SuSe Linux 2.6.16 x86_64 GNU (5) W y(2) y n y y y -SuSe Linux 2.6.16 x86_64 Int (5) W n y n y n n -SuSe Linux 2.6.16 x86_64 PGI (5) W n y n y n n -RHL9 Linux 2.4 Xeon Lustre Intel C n y n y y n -RHEL3 Linux 2.4 Xeon Intel W n y n n y n -RHEL4 Linux 2.6 Xeon Lustre Int C n y n y y n -SuSE Linux 2.4 ia64 Intel C y(1) y y y y y -SuSe Linux 2.6.5 - SGI Altix ia64 Intel C n y n y n y -Alpha OpenVMS 7.3.2 n y n y n n - - -Platform Shared Shared Shared static- Thread- - C libs F90 libs C++ libs exec safe -SunOS 5.10 32-bit y y y x y -SunOS 5.10 64-bit y y y x y -Windows XP y y(3) y y n -Windows XP x64 y y(3) y y n -Windows Vista y y(3) y y y -Windows Vista x64 y y(3) y y y -Mac OS X 10.5 Intel y y y x n -FreeBSD 8.2 32- and 64-bit y y y y y -RHEL4 2.6.9 i686 GNU W y y(4) y x y -RHEL4 2.6.9 i686 Intel W y y y x n -RHEL4 2.6.9 i686 PGI W y y y x n -SuSE Linux 2.6.16 x86_64 GNU (5) W y y y x y -SuSE Linux 2.6.16 x86_64 Intel(5) W y y y x n -SuSE Linux 2.6.16 x86_64 PGI(5) W y y y x n -RHL9 Linux 2.4 Xeon Lustre Intel C y y y x n -RHEL3 Linux 2.4 Xeon Intel W y n n x n -RHEL4 Linux 2.6 Xeon Lustre Intel C y y y x n -SuSE Linux 2.4 ia64 Intel C y y y x n -SuSe Linux 2.6.5 - SGI Altix ia64 Intel C n n n x n - - Notes: (1) Using mpich 1.2.6. - (2) Using mpich2 1.0.6. - (3) Using Visual Studio 2008 (Cygwin shared libraries are not supported) - (4) With PGI and Absoft compilers. - (5) AMD Opteron x86_64 - Compiler versions for each platform are listed in the preceding - "Platforms Tested" table. + = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +Solaris2.10 32-bit n y/y n y y y +Solaris2.10 64-bit n y/n n y y y +Windows 7 y y/n n y y y +Windows 7 x64 y y/n n y y y +Mac OS X Snow Leopard 10.6.8 32-bit n y/y n y y n +Mac OS X Snow Leopard 10.6.8 64-bit n y/y n y y y +Mac OS X Lion 10.7.3 32-bit n y/y n y y n +Mac OS X Lion 10.7.3 64-bit n y/y n y y y +Mac OS X Mountain Lion 10.8.1 64-bit n y/n n y y n +AIX 5.3 32- and 64-bit y y/n y y y y +CentOS 5.5 Linux 2.6.18-308 i686 GNU y y/y y y y y +CentOS 5.5 Linux 2.6.18-308 i686 Intel n y/y n y y y +CentOS 5.5 Linux 2.6.18-308 i686 PGI n y/y n y y y +CentOS 5.5 Linux 2.6.18 x86_64 GNU y y/y y y y y +CentOS 5.5 Linux 2.6.18 x86_64 Intel n y/y n y y y +CentOS 5.5 Linux 2.6.18 x86_64 PGI n y/y n y y y +Linux 2.6.32-220.7.1.el6.ppc64 n y/n n y y y + + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +Solaris2.10 32-bit y y y y +Solaris2.10 64-bit n n n n +Windows 7 y y y y +Windows 7 x64 y y y y +Mac OS X Snow Leopard 10.6.8 32-bit y n y n +Mac OS X Snow Leopard 10.6.8 64-bit y n y n +Mac OS X Lion 10.7.3 32-bit y n y y +Mac OS X Lion 10.7.3 64-bit y n y y +Mac OS X Mountain Lion 10.8.1 64-bit y n y y +AIX 5.3 32- and 64-bit n n n y +CentOS 5.5 Linux 2.6.18-308 i686 GNU y y y y +CentOS 5.5 Linux 2.6.18-308 i686 Intel y y y n +CentOS 5.5 Linux 2.6.18-308 i686 PGI y y y n +CentOS 5.5 Linux 2.6.18 x86_64 GNU y y y y +CentOS 5.5 Linux 2.6.18 x86_64 Intel y y y n +CentOS 5.5 Linux 2.6.18 x86_64 PGI y y y n +Linux 2.6.32-220.7.1.el6.ppc64 y y y n + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + FreeBSD 8.2-STABLE i386 gcc 4.2.1 [FreeBSD] 20070719 + (loyalty) gcc 4.6.1 20110422 + g++ 4.6.1 20110422 + gfortran 4.6.1 20110422 + + FreeBSD 8.2-STABLE amd64 gcc 4.2.1 [FreeBSD] 20070719 + (freedom) gcc 4.6.1 20110422 + g++ 4.6.1 20110422 + gfortran 4.6.1 20110422 + + Debian6.0.3 2.6.32-5-686 #1 SMP i686 GNU/Linux + gcc (Debian 4.4.5-8) 4.4.5 + GNU Fortran (Debian 4.4.5-8) 4.4.5 + (cmake and autotools) + + Debian6.0.3 2.6.32-5-amd64 #1 SMP x86_64 GNU/Linux + gcc (Debian 4.4.5-8) 4.4.5 + GNU Fortran (Debian 4.4.5-8) 4.4.5 + (cmake and autotools) + + Fedora17 3.5.2-1.fc17.i6866 #1 SMP i686 i686 i386 GNU/Linux + gcc (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5) + GNU Fortran (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5) + (cmake and autotools) + + Fedora17 3.5.2-1.fc17.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5) + GNU Fortran (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5) + (cmake and autotools) + + SUSE 12.2 3.4.6-2.10-desktop #1 SMP PREEMPT i686 i686 i386 GNU/Linux + gcc (SUSE Linux) 4.7.1 + GNU Fortran (SUSE Linux) 4.7.1 + (cmake and autotools) + + SUSE 12.2 3.4.6-2.10-desktop #1 SMP PREEMPT x86_64 x86_64 x86_64 GNU/Linux + gcc (SUSE Linux) 4.7.1 + GNU Fortran (SUSE Linux) 4.7.1 + (cmake and autotools) + + Ubuntu 12.04 3.2.0-29-generic #46-Ubuntu SMP i686 GNU/Linux + gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 + GNU Fortran (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 + (cmake and autotools) + + Ubuntu 12.04 3.2.0-29-generic #46-Ubuntu SMP x86_64 GNU/Linux + gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 + GNU Fortran (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 + (cmake and autotools) + (Use optimization level -O1) + + Cray Linux Environment (CLE) PrgEnv-pgi/4.0.46 + hopper.nersc.gov pgcc 12.5-0 64-bit target on x86-64 Linux -tp shanghai + pgf90 12.5-0 64-bit target on x86-64 Linux -tp shanghai + pgCC 12.5-0 64-bit target on x86-64 Linux -tp shanghai Known Problems ============== +* The 5.9 C++ compiler on Sun failed to compile a C++ test ttypes.cpp. It + complains with this message: + "/home/hdf5/src/H5Vprivate.h", line 130: Error: __func__ is not defined. + + The reason is that __func__ is a predefined identifier in C99 standard. The + HDF5 C library uses it in H5private.h. The test ttypes.cpp includes + H5private.h (H5Tpkg.h<-H5Fprivate.h<-H5Vprivate.h<-H5private.h). Sun's 5.9 + C++ compiler doesn't support __func__, thus fails to compile the C++ test. + But 5.11 C++ compiler does. To check whether your Sun C++ compiler knows this + identifier, try to compile the following simple C++ program: + #include + + int main(void) + { + printf("%s\n", __func__); + return 0; + } + (SLU - 2012/11/5) + * The C++ and FORTRAN bindings are not currently working on FreeBSD with the native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the ports (and probably gcc releases after that). diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index c2d964e..900ad6a 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -105,10 +105,9 @@ static herr_t H5D__chunk_collective_io(H5D_io_info_t *io_info, static herr_t H5D__multi_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist); -static herr_t H5D__multi_chunk_collective_io_no_opt(H5D_io_info_t *io_info, - const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist); static herr_t H5D__link_chunk_collective_io(H5D_io_info_t *io_info, - const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, int sum_chunk); + const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, int sum_chunk, + H5P_genplist_t *dx_plist); static herr_t H5D__inter_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, const H5S_t *file_space, const H5S_t *mem_space); @@ -586,6 +585,12 @@ done: * Programmer: Muqun Yang * Monday, Feb. 13th, 2006 * + * Modification: + * - Refctore to remove multi-chunk-without-opimization feature and update for + * multi-chunk-io accordingly + * Programmer: Jonathan Kim + * Date: 2012-10-10 + * *------------------------------------------------------------------------- */ static herr_t @@ -594,8 +599,6 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf { H5P_genplist_t *dx_plist; /* Pointer to DXPL */ H5FD_mpio_chunk_opt_t chunk_opt_mode; - H5D_mpio_actual_chunk_opt_mode_t actual_chunk_opt_mode; - H5D_mpio_actual_io_mode_t actual_io_mode; int io_option = H5D_MULTI_CHUNK_IO_MORE_OPT; int sum_chunk = -1; #ifdef H5_HAVE_INSTRUMENTED_LIBRARY @@ -617,10 +620,12 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf /* Check the optional property list on what to do with collective chunk IO. */ chunk_opt_mode = (H5FD_mpio_chunk_opt_t)H5P_peek_unsigned(dx_plist, H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME); - if(chunk_opt_mode == H5FD_MPIO_CHUNK_ONE_IO) + if(H5FD_MPIO_CHUNK_ONE_IO == chunk_opt_mode) io_option = H5D_ONE_LINK_CHUNK_IO; /*no opt*/ - else if(chunk_opt_mode == H5FD_MPIO_CHUNK_MULTI_IO) - io_option = H5D_MULTI_CHUNK_IO; /*no opt */ + /* direct request to multi-chunk-io */ + else if(H5FD_MPIO_CHUNK_MULTI_IO == chunk_opt_mode) + io_option = H5D_MULTI_CHUNK_IO; + /* via default path. branch by num threshold */ else { unsigned one_link_chunk_io_threshold; /* Threshhold to use single collective I/O for all chunks */ int mpi_size; /* Number of processes in MPI job */ @@ -649,7 +654,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf /*** Test collective chunk user-input optimization APIs. ***/ check_prop = H5Pexist(io_info->dxpl_id, H5D_XFER_COLL_CHUNK_LINK_HARD_NAME); if(check_prop > 0) { - if(io_option == H5D_ONE_LINK_CHUNK_IO) { + if(H5D_ONE_LINK_CHUNK_IO == io_option) { new_value = 0; if(H5Pset(io_info->dxpl_id, H5D_XFER_COLL_CHUNK_LINK_HARD_NAME, &new_value) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") @@ -657,7 +662,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf } /* end if */ check_prop = H5Pexist(io_info->dxpl_id, H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME); if(check_prop > 0) { - if(io_option == H5D_MULTI_CHUNK_IO) { + if(H5D_MULTI_CHUNK_IO == io_option) { new_value = 0; if(H5Pset(io_info->dxpl_id, H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME, &new_value) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") @@ -665,7 +670,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf } /* end if */ check_prop = H5Pexist(io_info->dxpl_id, H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME); if(check_prop > 0) { - if(io_option == H5D_ONE_LINK_CHUNK_IO_MORE_OPT) { + if(H5D_ONE_LINK_CHUNK_IO_MORE_OPT == io_option) { new_value = 0; if(H5Pset(io_info->dxpl_id, H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME, &new_value) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") @@ -682,39 +687,16 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf #endif /* step 2: Go ahead to do IO.*/ - if(io_option == H5D_ONE_LINK_CHUNK_IO || io_option == H5D_ONE_LINK_CHUNK_IO_MORE_OPT) { - /* set the actual io mode properties to the correct values for link chunk io. - * Link chunk I/O does not break to independent, so we can set the actual_io mode - * as well as the optimisation mode. */ - actual_chunk_opt_mode = H5D_MPIO_LINK_CHUNK; - actual_io_mode = H5D_MPIO_CHUNK_COLLECTIVE; - - /* Set the actual chunk opt mode property. */ - if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, &actual_chunk_opt_mode) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual chunk opt mode property") - - if(H5D__link_chunk_collective_io(io_info, type_info, fm, sum_chunk) < 0) + if(H5D_ONE_LINK_CHUNK_IO == io_option || H5D_ONE_LINK_CHUNK_IO_MORE_OPT == io_option) { + if(H5D__link_chunk_collective_io(io_info, type_info, fm, sum_chunk, dx_plist) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish linked chunk MPI-IO") - - /* Set the actual io mode property. */ - if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_IO_MODE_NAME, &actual_io_mode) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual io mode property") } /* end if */ - else - if(io_option == H5D_MULTI_CHUNK_IO) { - /* Set the actual chunk opt mode property */ - actual_chunk_opt_mode = H5D_MPIO_MULTI_CHUNK_NO_OPT; - if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, &actual_chunk_opt_mode) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual chunk opt mode property") - - if(H5D__multi_chunk_collective_io_no_opt(io_info, type_info, fm, dx_plist) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish multiple chunk MPI-IO") + /* direct request to multi-chunk-io */ + else if(H5D_MULTI_CHUNK_IO == io_option) { + if(H5D__multi_chunk_collective_io(io_info, type_info, fm, dx_plist) < 0) + HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish optimized multiple chunk MPI-IO") } /* end if */ - else { /*multiple chunk IOs with opt */ - actual_chunk_opt_mode = H5D_MPIO_MULTI_CHUNK; - if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, &actual_chunk_opt_mode) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual chunk opt mode property") - + else { /* multiple chunk IO via threshold */ if(H5D__multi_chunk_collective_io(io_info, type_info, fm, dx_plist) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish optimized multiple chunk MPI-IO") } /* end else */ @@ -801,11 +783,16 @@ done: * Programmer: Muqun Yang * Monday, Feb. 13th, 2006 * + * Modification: + * - Set H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME and H5D_MPIO_ACTUAL_IO_MODE_NAME + * dxpl in this. + * Programmer: Jonathan Kim + * Date: 2012-10-10 *------------------------------------------------------------------------- */ static herr_t H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, - H5D_chunk_map_t *fm, int sum_chunk) + H5D_chunk_map_t *fm, int sum_chunk, H5P_genplist_t *dx_plist) { H5D_chunk_addr_info_t *chunk_addr_info_array = NULL; MPI_Datatype chunk_final_mtype; /* Final memory MPI datatype for all chunks with seletion */ @@ -824,10 +811,21 @@ H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *typ int *chunk_mpi_file_counts = NULL; /* Count of MPI file datatype for each chunk */ int *chunk_mpi_mem_counts = NULL; /* Count of MPI memory datatype for each chunk */ int mpi_code; /* MPI return code */ + H5D_mpio_actual_chunk_opt_mode_t actual_chunk_opt_mode = H5D_MPIO_LINK_CHUNK; + H5D_mpio_actual_io_mode_t actual_io_mode = H5D_MPIO_CHUNK_COLLECTIVE; herr_t ret_value = SUCCEED; FUNC_ENTER_STATIC + /* Set the actual-chunk-opt-mode property. */ + if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, &actual_chunk_opt_mode) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual chunk opt mode property") + + /* Set the actual-io-mode property. + * Link chunk I/O does not break to independent, so can set right away */ + if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_IO_MODE_NAME, &actual_io_mode) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual io mode property") + /* Get the sum # of chunks, if not already available */ if(sum_chunk < 0) { if(H5D__mpio_get_sum_chunk(io_info, fm, &sum_chunk) < 0) @@ -1075,6 +1073,12 @@ if(H5DEBUG(D)) * Programmer: Muqun Yang * Monday, Feb. 13th, 2006 * + * Modification: + * - Set H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME dxpl in this to go along with + * setting H5D_MPIO_ACTUAL_IO_MODE_NAME dxpl at the bottom. + * Programmer: Jonathan Kim + * Date: 2012-10-10 + * *------------------------------------------------------------------------- */ static herr_t @@ -1096,11 +1100,16 @@ H5D__multi_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *ty int mpi_rank; #endif size_t u; /* Local index variable */ + H5D_mpio_actual_chunk_opt_mode_t actual_chunk_opt_mode = H5D_MPIO_MULTI_CHUNK; /* actual chunk optimization mode */ H5D_mpio_actual_io_mode_t actual_io_mode = H5D_MPIO_NO_COLLECTIVE; /* Local variable for tracking the I/O mode used. */ herr_t ret_value = SUCCEED; FUNC_ENTER_STATIC + /* Set the actual chunk opt mode property */ + if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_CHUNK_OPT_MODE_NAME, &actual_chunk_opt_mode) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual chunk opt mode property") + #ifdef H5Dmpio_DEBUG mpi_rank = H5F_mpi_get_rank(io_info->dset->oloc.file); #endif @@ -1263,210 +1272,6 @@ done: } /* end H5D__multi_chunk_collective_io */ -/*------------------------------------------------------------------------- - * Function: H5D__multi_chunk_collective_io_no_opt - * - * Purpose: To do collective IO without any optimization per chunk base - * The internal independent IO inside HDF5 cannot handle - * non-contiguous(or with holes) storage efficiently. - * Under this case, the one independent IO call may consist of - * many small disk IOs. So we may use independent IO with derived datatype - * to replace the independent IO when we find this chunk is not good to - * do collective IO. However, according to our performance study, - * this approach may not overcome the overhead caused by MPI gather/scatter. - * So we decide to leave the original collective IO per chunk approach as - * an option for users. NO MPI gather/scatter calls are used. - * HDF5 will try to collective IO if possible. - * If users choose to use - * H5Pset_dxpl_mpio_chunk_opt(dxpl_id,H5FD_MPIO_OPT_MULTI_IO), - * this function will be called. - * The HDF5 library won't do any IO management but leave it to MPI-IO to figure - * out. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Muqun Yang - * Monday, Feb. 13th, 2006 - * - *------------------------------------------------------------------------- - */ -static herr_t -H5D__multi_chunk_collective_io_no_opt(H5D_io_info_t *io_info, - const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist) -{ - H5SL_node_t *chunk_node; /* Current node in chunk skip list */ - H5D_io_info_t ctg_io_info; /* Contiguous I/O info object */ - H5D_storage_t ctg_store; /* Chunk storage information as contiguous dataset */ - H5D_io_info_t cpt_io_info; /* Compact I/O info object */ - H5D_storage_t cpt_store; /* Chunk storage information as compact dataset */ - hbool_t cpt_dirty; /* Temporary placeholder for compact storage "dirty" flag */ - int min_chunk = -1; /* Minimum # of chunks all processes will operate on */ - int count_chunk; /* How many chunks have we operated on? */ - H5D_storage_t store; /* union of EFL and chunk pointer in file space */ - H5D_mpio_actual_io_mode_t actual_io_mode = H5D_MPIO_NO_COLLECTIVE; /*Local variable for tracking the I/O modes used. */ - herr_t ret_value = SUCCEED; - - FUNC_ENTER_STATIC - -#ifdef H5D_DEBUG -if(H5DEBUG(D)) { - int mpi_rank; - - mpi_rank = H5F_mpi_get_rank(io_info->dset->oloc.file); - HDfprintf(H5DEBUG(D), "Rank %d: coming to multi_chunk_collective_io_no_opt\n", mpi_rank); -} -#endif - - /* Set up contiguous I/O info object */ - HDmemcpy(&ctg_io_info, io_info, sizeof(ctg_io_info)); - ctg_io_info.store = &ctg_store; - ctg_io_info.layout_ops = *H5D_LOPS_CONTIG; - - /* Initialize temporary contiguous storage info */ - ctg_store.contig.dset_size = (hsize_t)io_info->dset->shared->layout.u.chunk.size; - - /* Set up compact I/O info object */ - HDmemcpy(&cpt_io_info, io_info, sizeof(cpt_io_info)); - cpt_io_info.store = &cpt_store; - cpt_io_info.layout_ops = *H5D_LOPS_COMPACT; - - /* Initialize temporary compact storage info */ - cpt_store.compact.dirty = &cpt_dirty; - - /* Set dataset storage for I/O info */ - io_info->store = &store; - - /* Get the min. # of chunks */ - if(H5D__mpio_get_min_chunk(io_info, fm, &min_chunk) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get minimum number of chunk") - HDassert(min_chunk >= 0); - - /* Get first node in chunk skip list */ - chunk_node = H5SL_first(fm->sel_chunks); - count_chunk = 0; - - /* Iterate through chunks to be operated on */ - while(chunk_node) { - H5D_chunk_info_t *chunk_info; /* chunk information */ - H5D_chunk_ud_t udata; /* B-tree pass-through */ - hbool_t make_ind, make_coll; /* Flags to indicate that the MPI mode should change */ - - /* Get the actual chunk information from the skip list node */ - chunk_info = H5SL_item(chunk_node); - - /* Pass in chunk's coordinates in a union. */ - store.chunk.offset = chunk_info->coords; - store.chunk.index = chunk_info->index; - - /* Reset flags for changing parallel I/O mode */ - make_ind = make_coll = FALSE; - - count_chunk++; - - /* If the number of chunk is greater than minimum number of chunk, - * Do independent read. - */ - if(count_chunk > min_chunk) - /* Switch to independent I/O (permanently) */ - make_ind = TRUE; - - /* Retrieve the chunk's address */ - if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, - chunk_info->index, &udata) < 0) - HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk info from skipped list") - - /* Independent I/O */ - if(make_ind) { - void *chunk; /* Pointer to the data chunk in cache */ - H5D_io_info_t *chk_io_info; /* Pointer to I/O info object for this chunk */ - uint32_t accessed_bytes = 0; /* Total accessed size in a chunk */ - htri_t cacheable; /* Whether the chunk is cacheable */ - - /* Switch to independent I/O */ - if(H5D__ioinfo_xfer_mode(io_info, dx_plist, H5FD_MPIO_INDEPENDENT) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't switch to independent I/O") - - /* Update the local variable tracking the dxpl's actual io mode */ - actual_io_mode = actual_io_mode | H5D_MPIO_CHUNK_INDEPENDENT; - - /* Load the chunk into cache and lock it. */ - if((cacheable = H5D__chunk_cacheable(io_info, udata.addr, - io_info->op_type == H5D_IO_OP_WRITE)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't tell if chunk is cacheable") - if(cacheable) { - hbool_t entire_chunk = TRUE; /* Whether whole chunk is selected */ - - /* Compute # of bytes accessed in chunk */ - accessed_bytes = chunk_info->chunk_points * type_info->src_type_size; - - /* Determine if we will access all the data in the chunk */ - if(((io_info->op_type == H5D_IO_OP_WRITE) && (accessed_bytes != ctg_store.contig.dset_size)) - || (io_info->op_type != H5D_IO_OP_WRITE)) - entire_chunk = FALSE; - - /* Lock the chunk into the cache */ - if(NULL == (chunk = H5D__chunk_lock(io_info, &udata, entire_chunk))) - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "unable to read raw data chunk") - - /* Set up the storage buffer information for this chunk */ - cpt_store.compact.buf = chunk; - - /* Point I/O info at contiguous I/O info for this chunk */ - chk_io_info = &cpt_io_info; - } /* end if */ - else { - /* Set up the storage address information for this chunk */ - ctg_store.contig.dset_addr = udata.addr; - - /* No chunk cached */ - chunk = NULL; - - /* Point I/O info at temporary I/O info for this chunk */ - chk_io_info = &ctg_io_info; - } /* end else */ - - if(io_info->op_type == H5D_IO_OP_WRITE) { - if((io_info->io_ops.single_write)(chk_io_info, type_info, - (hsize_t)chunk_info->chunk_points, chunk_info->fspace, chunk_info->mspace) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "optimized write failed") - } /* end if */ - else { - if((io_info->io_ops.single_read)(chk_io_info, type_info, - (hsize_t)chunk_info->chunk_points, chunk_info->fspace, chunk_info->mspace) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "optimized read failed") - } /* end ese */ - - /* Release the cache lock on the chunk. */ - if(chunk) - if(H5D__chunk_unlock(io_info, &udata, (io_info->op_type == H5D_IO_OP_WRITE), chunk, accessed_bytes) < 0) - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "unable to unlock raw data chunk") - } /* end if */ - else { /*collective I/O */ - /* Set up the storage address information for this chunk */ - ctg_store.contig.dset_addr = udata.addr; - - /* Update the local variable tracking the dxpl's actual io Mode. */ - actual_io_mode = actual_io_mode | H5D_MPIO_CHUNK_COLLECTIVE; - - if(H5D__inter_collective_io(&ctg_io_info, type_info, chunk_info->fspace, chunk_info->mspace) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL,"couldn't finish shared collective MPI-IO") - } /* end else */ - - if(make_coll) - if(H5D__ioinfo_xfer_mode(io_info, dx_plist, H5FD_MPIO_COLLECTIVE) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't switch to independent I/O") - - /* Get the next chunk node in the skip list */ - chunk_node = H5SL_next(chunk_node); - } /* end while */ - - /* Write the local value of actual io mode to the DXPL. */ - if(H5P_set(dx_plist, H5D_MPIO_ACTUAL_IO_MODE_NAME, &actual_io_mode) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "couldn't set actual io mode property") - -done: - FUNC_LEAVE_NOAPI(ret_value) -} /* end H5D__multi_chunk_collective_io_no_opt */ /*------------------------------------------------------------------------- @@ -1794,7 +1599,6 @@ H5D__obtain_mpio_mode(H5D_io_info_t* io_info, H5D_chunk_map_t *fm, { int total_chunks; unsigned percent_nproc_per_chunk, threshold_nproc_per_chunk; - H5FD_mpio_chunk_opt_t chunk_opt_mode; uint8_t* io_mode_info = NULL; uint8_t* recv_io_mode_info = NULL; uint8_t* mergebuf = NULL; @@ -1827,8 +1631,8 @@ H5D__obtain_mpio_mode(H5D_io_info_t* io_info, H5D_chunk_map_t *fm, /* Setup parameters */ H5_ASSIGN_OVERFLOW(total_chunks, fm->layout->u.chunk.nchunks, hsize_t, int); percent_nproc_per_chunk = H5P_peek_unsigned(dx_plist, H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME); - chunk_opt_mode = (H5FD_mpio_chunk_opt_t)H5P_peek_unsigned(dx_plist, H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME); - if((chunk_opt_mode == H5FD_MPIO_CHUNK_MULTI_IO) || (percent_nproc_per_chunk == 0)) { + /* if ratio is 0, perform collective io */ + if(0 == percent_nproc_per_chunk) { if(H5D__chunk_addrmap(io_info, chunk_addr) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk address"); for(ic = 0; ic < total_chunks; ic++) diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index 9adf6a5..1e2b91d 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -87,8 +87,6 @@ #define H5D_XFER_COLL_CHUNK_LINK_NUM_FALSE_NAME "coll_chunk_link_false" #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_COLL_NAME "coll_chunk_multi_coll" #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_IND_NAME "coll_chunk_multi_ind" -#define H5D_XFER_COLL_CHUNK_LINK_TO_MULTI "coll_chunk_link_mul"/* Internal transferring from link to multiple chunk */ -#define H5D_XFER_COLL_CHUNK_LINK_TO_MULTI_OPT "coll_chunk_link_mul_opt"/* Internal transferring from link opt to multiple chunk opt*/ /* Definitions for all collective chunk instrumentation properties */ #define H5D_XFER_COLL_CHUNK_SIZE sizeof(unsigned) diff --git a/src/H5FDcore.c b/src/H5FDcore.c index 932e2af..07f4551 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -481,7 +481,7 @@ H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, * default value. But if the file access property list was zero then use * the default value instead. */ - file->increment = (fa->increment>0) ? fa->increment : H5FD_CORE_INCREMENT; + file->increment = (fa->increment > 0) ? fa->increment : H5FD_CORE_INCREMENT; /* If save data in backing store. */ file->backing_store = fa->backing_store; diff --git a/src/H5FDdirect.c b/src/H5FDdirect.c index 4721a44..9715bc1 100644 --- a/src/H5FDdirect.c +++ b/src/H5FDdirect.c @@ -533,7 +533,8 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd /* Get the driver specific information */ if(NULL == (plist = H5P_object_verify(fapl_id,H5P_FILE_ACCESS))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a file access property list") - fa = H5P_get_driver_info(plist); + if(NULL == (fa = (H5FD_direct_fapl_t *)H5P_get_driver_info(plist))) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info") file->fd = fd; H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,h5_stat_size_t,haddr_t); @@ -562,9 +563,9 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd * is to handle correctly the case that the file is in a different file system * than the one where the program is running. */ - buf1 = (int*)HDmalloc(sizeof(int)); - if (HDposix_memalign(&buf2, file->fa.mboundary, file->fa.fbsize) != 0) - HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, NULL, "HDposix_memalign failed") + buf1 = (int *)HDmalloc(sizeof(int)); + if(HDposix_memalign(&buf2, file->fa.mboundary, file->fa.fbsize) != 0) + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, NULL, "HDposix_memalign failed") if(o_flags & O_CREAT) { if(write(file->fd, (void*)buf1, sizeof(int))<0) { diff --git a/src/H5FDfamily.c b/src/H5FDfamily.c index f051269..dc535a2 100644 --- a/src/H5FDfamily.c +++ b/src/H5FDfamily.c @@ -675,8 +675,8 @@ H5FD_family_open(const char *name, unsigned flags, hid_t fapl_id, if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a file access property list") - fa = (H5FD_family_fapl_t *)H5P_get_driver_info(plist); - HDassert(fa); + if(NULL == (fa = (H5FD_family_fapl_t *)H5P_get_driver_info(plist))) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info") /* Check for new family file size. It's used by h5repart only. */ if(H5P_exist_plist(plist, H5F_ACS_FAMILY_NEWSIZE_NAME) > 0) { diff --git a/src/H5FDlog.c b/src/H5FDlog.c index 6a2425c..9f4abd3 100644 --- a/src/H5FDlog.c +++ b/src/H5FDlog.c @@ -529,8 +529,8 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) /* Get the driver specific information */ if(NULL == (plist = H5P_object_verify(fapl_id, H5P_FILE_ACCESS))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a file access property list") - fa = (H5FD_log_fapl_t *)H5P_get_driver_info(plist); - HDassert(fa); + if(NULL == (fa = (H5FD_log_fapl_t *)H5P_get_driver_info(plist))) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info") #ifdef H5_HAVE_GETTIMEOFDAY if(fa->flags & H5FD_LOG_TIME_OPEN) @@ -644,9 +644,9 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) #ifdef H5_HAVE_GETTIMEOFDAY if(file->fa.flags & H5FD_LOG_TIME_OPEN) - HDfprintf(file->logfp, "Open took: (%f s)\n", (double)open_timeval_diff.tv_sec + ((double)open_timeval_diff.tv_usec / (double)1000000.0)); + HDfprintf(file->logfp, "Open took: (%f s)\n", (double)open_timeval_diff.tv_sec + ((double)open_timeval_diff.tv_usec / (double)1000000.0f)); if(file->fa.flags & H5FD_LOG_TIME_STAT) - HDfprintf(file->logfp, "Stat took: (%f s)\n", (double)stat_timeval_diff.tv_sec + ((double)stat_timeval_diff.tv_usec / (double)1000000.0)); + HDfprintf(file->logfp, "Stat took: (%f s)\n", (double)stat_timeval_diff.tv_sec + ((double)stat_timeval_diff.tv_usec / (double)1000000.0f)); #endif /* H5_HAVE_GETTIMEOFDAY */ } /* end if */ @@ -734,7 +734,7 @@ H5FD_log_close(H5FD_t *_file) timeval_diff.tv_usec += 1000000; timeval_diff.tv_sec--; } /* end if */ - HDfprintf(file->logfp, "Close took: (%f s)\n", (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0)); + HDfprintf(file->logfp, "Close took: (%f s)\n", (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0f)); } /* end if */ #endif /* H5_HAVE_GETTIMEOFDAY */ @@ -1195,7 +1195,7 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr timeval_diff.tv_usec += 1000000; timeval_diff.tv_sec--; } /* end if */ - time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0); + time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0f); HDfprintf(file->logfp, " (%f s)\n", time_diff); /* Add to total seek time */ @@ -1284,7 +1284,7 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr timeval_diff.tv_usec += 1000000; timeval_diff.tv_sec--; } /* end if */ - time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0); + time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0f); HDfprintf(file->logfp, " (%f s)\n", time_diff); /* Add to total read time */ @@ -1401,7 +1401,7 @@ H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t add timeval_diff.tv_usec += 1000000; timeval_diff.tv_sec--; } /* end if */ - time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0); + time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0f); HDfprintf(file->logfp, " (%f s)\n", time_diff); /* Add to total seek time */ @@ -1487,7 +1487,7 @@ H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t add timeval_diff.tv_usec += 1000000; timeval_diff.tv_sec--; } /* end if */ - time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0); + time_diff = (double)timeval_diff.tv_sec + ((double)timeval_diff.tv_usec / (double)1000000.0f); HDfprintf(file->logfp, " (%f s)\n", time_diff); /* Add to total write time */ diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c index cac101b..2db77c9 100644 --- a/src/H5FDmpio.c +++ b/src/H5FDmpio.c @@ -1013,8 +1013,8 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id, _fa.info = MPI_INFO_NULL; /*default*/ fa = &_fa; } else { - fa = (const H5FD_mpio_fapl_t *)H5P_get_driver_info(plist); - assert(fa); + if(NULL == (fa = (const H5FD_mpio_fapl_t *)H5P_get_driver_info(plist))) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info") } /* Duplicate communicator and Info object for use by this file. */ diff --git a/src/H5FDmpiposix.c b/src/H5FDmpiposix.c index 0d0b839..092cd24 100644 --- a/src/H5FDmpiposix.c +++ b/src/H5FDmpiposix.c @@ -600,8 +600,8 @@ H5FD_mpiposix_open(const char *name, unsigned flags, hid_t fapl_id, fa = &_fa; } /* end if */ else { - fa = H5P_get_driver_info(plist); - HDassert(fa); + if(NULL == (fa = (const H5FD_mpiposix_fapl_t *)H5P_get_driver_info(plist))) + HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info") } /* end else */ /* Duplicate the communicator for use by this file. */ diff --git a/src/H5Pocpl.c b/src/H5Pocpl.c index 6e20963..d8ddfee 100644 --- a/src/H5Pocpl.c +++ b/src/H5Pocpl.c @@ -1514,9 +1514,12 @@ H5P__ocrt_pipeline_dec(const void **_pp, void *_value) UINT64DECODE_VAR(*pp, enc_value, enc_size); filter.cd_nelmts = (size_t)enc_value; - if(filter.cd_nelmts) + if(filter.cd_nelmts) { if(NULL == (filter.cd_values = (unsigned *)H5MM_malloc(sizeof(unsigned) * filter.cd_nelmts))) HGOTO_ERROR(H5E_PLIST, H5E_CANTALLOC, FAIL, "memory allocation failed for cd_values") + } /* end if */ + else + filter.cd_values = NULL; /* decode values */ for(v = 0; v < filter.cd_nelmts; v++) diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h index 507bbb6..6b17e0b 100644 --- a/src/H5Ppublic.h +++ b/src/H5Ppublic.h @@ -131,8 +131,7 @@ typedef enum H5D_mpio_actual_chunk_opt_mode_t { */ H5D_MPIO_NO_CHUNK_OPTIMIZATION = 0, H5D_MPIO_LINK_CHUNK, - H5D_MPIO_MULTI_CHUNK, - H5D_MPIO_MULTI_CHUNK_NO_OPT + H5D_MPIO_MULTI_CHUNK } H5D_mpio_actual_chunk_opt_mode_t; typedef enum H5D_mpio_actual_io_mode_t { diff --git a/src/H5detect.c b/src/H5detect.c index 87a4fd5..d6f6a3b 100644 --- a/src/H5detect.c +++ b/src/H5detect.c @@ -120,7 +120,7 @@ static void print_results(int nd, detected_t *d, int na, malign_t *m); static void iprint(detected_t *); static int byte_cmp(int, const void *, const void *); static int bit_cmp(int, int *, volatile void *, volatile void *); -static void fix_order(int, int, int, int *, const char **); +static void fix_order(int, int, int *, const char **); static int imp_bit(int, int *, volatile void *, volatile void *); static unsigned long find_bias(int, int, int *, void *); static void precision (detected_t*); @@ -293,7 +293,7 @@ precision (detected_t *d) #define DETECT_F(TYPE,VAR,INFO) { \ volatile TYPE _v1, _v2, _v3; \ unsigned char _buf1[sizeof(TYPE)], _buf3[sizeof(TYPE)]; \ - int _i, _j, _first = (-1), _last = (-1); \ + int _i, _j, _last = (-1); \ char *_mesg; \ \ memset(&INFO, 0, sizeof(INFO)); \ @@ -315,15 +315,11 @@ precision (detected_t *d) memcpy(_buf3, (const void *)&_v3, sizeof(TYPE)); \ _j = byte_cmp(sizeof(TYPE), &_buf3, &_buf1); \ if(_j >= 0) { \ - if(0 == _i || INFO.perm[_i - 1] != _j) { \ - INFO.perm[_i] = _j; \ - _last = _i; \ - if(_first < 0) \ - _first = _i; \ - } \ + INFO.perm[_i] = _j; \ + _last = _i; \ } \ } \ - fix_order(sizeof(TYPE), _first, _last, INFO.perm, (const char**)&_mesg); \ + fix_order(sizeof(TYPE), _last, INFO.perm, (const char**)&_mesg); \ \ if(!strcmp(_mesg, "VAX")) \ INFO.is_vax = TRUE; \ @@ -973,11 +969,11 @@ bit_cmp(int nbytes, int *perm, volatile void *_a, volatile void *_b) *------------------------------------------------------------------------- */ static void -fix_order(int n, int first, int last, int *perm, const char **mesg) +fix_order(int n, int last, int *perm, const char **mesg) { int i; - if (first + 1 < last) { + if (last > 1) { /* * We have at least three points to consider. */ @@ -998,6 +994,9 @@ fix_order(int n, int first, int last, int *perm, const char **mesg) } else { /* * Bi-endian machines like VAX. + * (NOTE: This is not an actual determination of the VAX-endianess. + * It could have some other endianess and fall into this + * case - JKM & QAK) */ assert(0 == n % 2); if (mesg) *mesg = "VAX"; diff --git a/src/H5public.h b/src/H5public.h index 88e514d..5d9e3ef 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -75,10 +75,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 132 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 136 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.132" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.136" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/H5trace.c b/src/H5trace.c index 2dab8ec..92736d4 100644 --- a/src/H5trace.c +++ b/src/H5trace.c @@ -612,10 +612,6 @@ H5_trace(const double *returning, const char *func, const char *type, ...) fprintf(out, "H5D_MPIO_MULTI_CHUNK"); break; - case H5D_MPIO_MULTI_CHUNK_NO_OPT: - fprintf(out, "H5D_MPIO_MULTI_CHUNK_NO_OPT"); - break; - default: fprintf(out, "%ld", (long)chunk_opt_mode); break; diff --git a/src/Makefile.in b/src/Makefile.in index c673bcf..fc89be5 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -522,7 +522,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 122 +LT_VERS_REVISION = 126 LT_VERS_AGE = 0 H5detect_CFLAGS = -g $(AM_CFLAGS) diff --git a/testpar/t_coll_chunk.c b/testpar/t_coll_chunk.c index 61e7bfd..73e7f09 100644 --- a/testpar/t_coll_chunk.c +++ b/testpar/t_coll_chunk.c @@ -258,8 +258,10 @@ coll_chunk5(void) /*------------------------------------------------------------------------- * Function: coll_chunk6 * - * Purpose: Wrapper to test the collective chunk IO for regular JOINT - selection with at least number of 2*mpi_size chunks + * Purpose: Test direct request for multi-chunk-io. + * Wrapper to test the collective chunk IO for regular JOINT + * selection with at least number of 2*mpi_size chunks + * Test for direct to Multi Chunk I/O. * * Return: Success: 0 * @@ -489,6 +491,12 @@ coll_chunk10(void) * * Failure: -1 * + * Modifications: + * Remove invalid temporary property checkings for API_LINK_HARD and + * API_LINK_TRUE cases. + * Programmer: Jonathan Kim + * Date: 2012-10-10 + * * Programmer: Unknown * July 12th, 2004 * @@ -634,11 +642,6 @@ coll_chunktest(const char* filename, NULL, NULL, NULL, NULL, NULL, NULL); VRFY((status >= 0),"testing property list inserted succeeded"); - prop_value = H5D_XFER_COLL_CHUNK_FIX; - status = H5Pinsert2(xfer_plist, H5D_XFER_COLL_CHUNK_LINK_TO_MULTI, H5D_XFER_COLL_CHUNK_SIZE, &prop_value, - NULL, NULL, NULL, NULL, NULL, NULL); - VRFY((status >= 0),"testing property list inserted succeeded"); - break; case API_MULTI_HARD: @@ -654,11 +657,6 @@ coll_chunktest(const char* filename, NULL, NULL, NULL, NULL, NULL, NULL); VRFY((status >= 0),"testing property list inserted succeeded"); - prop_value = H5D_XFER_COLL_CHUNK_FIX; - status = H5Pinsert2(xfer_plist, H5D_XFER_COLL_CHUNK_LINK_TO_MULTI_OPT, H5D_XFER_COLL_CHUNK_SIZE, &prop_value, - NULL, NULL, NULL, NULL, NULL, NULL); - VRFY((status >= 0),"testing property list inserted succeeded"); - break; case API_LINK_FALSE: @@ -699,25 +697,17 @@ coll_chunktest(const char* filename, case API_LINK_HARD: status = H5Pget(xfer_plist,H5D_XFER_COLL_CHUNK_LINK_HARD_NAME,&prop_value); VRFY((status >= 0),"testing property list get succeeded"); - if(prop_value !=0){/*double check if the option is switched to multiple chunk internally.*/ - status = H5Pget(xfer_plist,H5D_XFER_COLL_CHUNK_LINK_TO_MULTI, &prop_value); - VRFY((status >= 0),"testing property list get succeeded"); - VRFY((prop_value == 1),"API to set LINK COLLECTIVE IO without optimization succeeded"); - } + VRFY((prop_value == 0),"API to set LINK COLLECTIVE IO directly succeeded"); break; case API_MULTI_HARD: status = H5Pget(xfer_plist,H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME,&prop_value); VRFY((status >= 0),"testing property list get succeeded"); - VRFY((prop_value == 0),"API to set MULTI-CHUNK COLLECTIVE IO without optimization succeeded"); + VRFY((prop_value == 0),"API to set MULTI-CHUNK COLLECTIVE IO optimization succeeded"); break; case API_LINK_TRUE: status = H5Pget(xfer_plist,H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME,&prop_value); VRFY((status >= 0),"testing property list get succeeded"); - if(prop_value !=0){/*double check if the option is switched to multiple chunk internally.*/ - status = H5Pget(xfer_plist,H5D_XFER_COLL_CHUNK_LINK_TO_MULTI_OPT, &prop_value); - VRFY((status >= 0),"testing property list get succeeded"); - VRFY((prop_value == 1),"API to set LINK COLLECTIVE IO without optimization succeeded"); - } + VRFY((prop_value == 0),"API to set LINK COLLECTIVE IO succeeded"); break; case API_LINK_FALSE: status = H5Pget(xfer_plist,H5D_XFER_COLL_CHUNK_LINK_NUM_FALSE_NAME,&prop_value); diff --git a/testpar/t_dset.c b/testpar/t_dset.c index 22eefbc..79a5555 100644 --- a/testpar/t_dset.c +++ b/testpar/t_dset.c @@ -2523,12 +2523,12 @@ none_selection_chunk(void) * H5D_mpi_chunk_collective_io, processes disagree. The root reports * collective, the rest report independent I/O * - * TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_COL: - * H5D_mpi_chunk_collective_io_no_opt, each process reports collective I/O - * - * TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_MIX_DISAGREE: - * H5D_mpi_chunk_collective_io_no_opt, processes disagree - * (collective and mixed I/O) + * TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_IND: + * Same test TEST_ACTUAL_IO_MULTI_CHUNK_IND. + * Set directly go to multi-chunk-io without num threshold calc. + * TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_COL: + * Same test TEST_ACTUAL_IO_MULTI_CHUNK_COL. + * Set directly go to multi-chunk-io without num threshold calc. * * TEST_ACTUAL_IO_LINK_CHUNK: * H5D_link_chunk_collective_io, processes report linked chunk I/O @@ -2547,10 +2547,17 @@ none_selection_chunk(void) * (The most complex case that works on all builds) and then performs * an independent read and write with the same dxpls. * - * It may seem like TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_IND and - * TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_MIX have been accidentally - * left out. This is intentional; the other test cases sufficiently - * cover all cases for Multi Chunk No Opt I/O. + * Note: DIRECT_MULTI_CHUNK_MIX and DIRECT_MULTI_CHUNK_MIX_DISAGREE + * is not needed as they are covered by DIRECT_CHUNK_MIX and + * MULTI_CHUNK_MIX_DISAGREE cases. _DIRECT_ cases are only for testing + * path way to multi-chunk-io by H5FD_MPIO_CHUNK_MULTI_IO insted of num-threshold. + * + * Modification: + * - Refctore to remove multi-chunk-without-opimization test and update for + * testing direct to multi-chunk-io + * Programmer: Jonathan Kim + * Date: 2012-10-10 + * * * Programmer: Jacob Gruber * Date: 2011-04-06 @@ -2565,8 +2572,8 @@ test_actual_io_mode(int selection_mode) { H5D_mpio_actual_io_mode_t actual_io_mode_expected = -1; const char * filename; const char * test_name; - hbool_t multi_chunk_no_opt; - hbool_t multi_chunk_with_opt; + hbool_t direct_multi_chunk_io; + hbool_t multi_chunk_io; hbool_t is_chunked; hbool_t is_collective; int mpi_size = -1; @@ -2593,18 +2600,18 @@ test_actual_io_mode(int selection_mode) { hsize_t count[RANK]; hsize_t block[RANK]; hbool_t use_gpfs = FALSE; + char message[256]; herr_t ret; /* Set up some flags to make some future if statements slightly more readable */ - multi_chunk_no_opt = ( - selection_mode == TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_IND || - selection_mode == TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_COL || - selection_mode == TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_MIX_DISAGREE ); + direct_multi_chunk_io = ( + selection_mode == TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_IND || + selection_mode == TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_COL ); /* Note: RESET performs the same tests as MULTI_CHUNK_MIX_DISAGREE and then * tests independent I/O */ - multi_chunk_with_opt = ( + multi_chunk_io = ( selection_mode == TEST_ACTUAL_IO_MULTI_CHUNK_IND || selection_mode == TEST_ACTUAL_IO_MULTI_CHUNK_COL || selection_mode == TEST_ACTUAL_IO_MULTI_CHUNK_MIX || @@ -2673,6 +2680,7 @@ test_actual_io_mode(int selection_mode) { /* Independent I/O with optimization */ case TEST_ACTUAL_IO_MULTI_CHUNK_IND: + case TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_IND: /* Since the dataset is chunked by row and each process selects a row, * each process writes to a different chunk. This forces all I/O to be * independent. @@ -2686,6 +2694,7 @@ test_actual_io_mode(int selection_mode) { /* Collective I/O with optimization */ case TEST_ACTUAL_IO_MULTI_CHUNK_COL: + case TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_COL: /* The dataset is chunked by rows, so each process takes a column which * spans all chunks. Since the processes write non-overlapping regular * selections to each chunk, the operation is purely collective. @@ -2779,39 +2788,6 @@ test_actual_io_mode(int selection_mode) { break; - /* Collective I/O without optimization */ - case TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_COL: - /* The dataset is chunked by rows, so when each process takes a column, its - * selection spans all chunks. Since no process writes more chunks than any - * other, colective I/O is never broken. */ - slab_set(mpi_rank, mpi_size, start, count, stride, block, BYCOL); - - test_name = "Multi Chunk No Opt - Collective"; - actual_chunk_opt_mode_expected = H5D_MPIO_MULTI_CHUNK_NO_OPT; - actual_io_mode_expected = H5D_MPIO_CHUNK_COLLECTIVE; - break; - - - /* Mixed I/O without optimization with disagreement */ - case TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_MIX_DISAGREE: - /* Each process takes a column, but the root's column is shortened so that - * it only reads the first chunk. Since all the other processes are writing - * to more chunks, they will break collective after the first chunk. - */ - slab_set(mpi_rank, mpi_size, start, count, stride, block, BYCOL); - if(mpi_rank == 0) - block[0] = block[0] / mpi_size; - - test_name = "Multi Chunk No Opt - Mixed (Disagreement)"; - actual_chunk_opt_mode_expected = H5D_MPIO_MULTI_CHUNK_NO_OPT; - - if(mpi_rank == 0) - actual_io_mode_expected = H5D_MPIO_CHUNK_COLLECTIVE; - else - actual_io_mode_expected = H5D_MPIO_CHUNK_MIXED; - - break; - /* Linked Chunk I/O */ case TEST_ACTUAL_IO_LINK_CHUNK: /* Nothing special; link chunk I/O is forced in the dxpl settings. */ @@ -2887,20 +2863,25 @@ test_actual_io_mode(int selection_mode) { ret = H5Pset_dxpl_mpio(dxpl_write, H5FD_MPIO_COLLECTIVE); VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded"); - /* Set the threshold number of processes per chunk for link chunk I/O - * to twice mpi_size. This will prevent the threshold from ever being - * met, thus forcing multi chunk io instead of link chunk io. + /* Set the threshold number of processes per chunk to twice mpi_size. + * This will prevent the threshold from ever being met, thus forcing + * multi chunk io instead of link chunk io. + * This is via deault. */ - if(multi_chunk_with_opt) { + if(multi_chunk_io) { + /* force multi-chunk-io by threshold */ ret = H5Pset_dxpl_mpio_chunk_opt_num(dxpl_write, (unsigned) mpi_size*2); VRFY((ret >= 0), "H5Pset_dxpl_mpio_chunk_opt_num succeeded"); + /* set this to manipulate testing senario about allocating processes + * to chunks */ ret = H5Pset_dxpl_mpio_chunk_opt_ratio(dxpl_write, (unsigned) 99); VRFY((ret >= 0), "H5Pset_dxpl_mpio_chunk_opt_ratio succeeded"); } - /* Request multi chunk I/O without optimization */ - if(multi_chunk_no_opt) { + /* Set directly go to multi-chunk-io without threshold calc. */ + if(direct_multi_chunk_io) { + /* set for multi chunk io by property*/ ret = H5Pset_dxpl_mpio_chunk_opt(dxpl_write, H5FD_MPIO_CHUNK_MULTI_IO); VRFY((ret >= 0), "H5Pset_dxpl_mpio succeeded"); } @@ -2943,7 +2924,6 @@ test_actual_io_mode(int selection_mode) { /* Test values */ if(actual_chunk_opt_mode_expected != (unsigned) -1 && actual_io_mode_expected != (unsigned) -1) { - char message[100]; sprintf(message, "Actual Chunk Opt Mode has the correct value for %s.\n",test_name); VRFY((actual_chunk_opt_mode_write == actual_chunk_opt_mode_expected), message); sprintf(message, "Actual IO Mode has the correct value for %s.\n",test_name); @@ -3027,6 +3007,9 @@ actual_io_mode_tests(void) { test_actual_io_mode(TEST_ACTUAL_IO_NO_COLLECTIVE); + /* + * Test multi-chunk-io via proc_num threshold + */ test_actual_io_mode(TEST_ACTUAL_IO_MULTI_CHUNK_IND); test_actual_io_mode(TEST_ACTUAL_IO_MULTI_CHUNK_COL); @@ -3038,8 +3021,11 @@ actual_io_mode_tests(void) { test_actual_io_mode(TEST_ACTUAL_IO_MULTI_CHUNK_MIX_DISAGREE); - test_actual_io_mode(TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_COL); - test_actual_io_mode(TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_MIX_DISAGREE); + /* + * Test multi-chunk-io via setting direct property + */ + test_actual_io_mode(TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_IND); + test_actual_io_mode(TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_COL); test_actual_io_mode(TEST_ACTUAL_IO_LINK_CHUNK); test_actual_io_mode(TEST_ACTUAL_IO_CONTIGUOUS); diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c index 97a377e..784892a 100644 --- a/testpar/testphdf5.c +++ b/testpar/testphdf5.c @@ -440,7 +440,7 @@ int main(int argc, char **argv) "linked chunk collective IO without optimization",PARATESTFILE); AddTest((mpi_size < 3)? "-cchunk6" : "cchunk6", coll_chunk6,NULL, - "multi-chunk collective IO without optimization",PARATESTFILE); + "multi-chunk collective IO with direct request",PARATESTFILE); AddTest((mpi_size < 3)? "-cchunk7" : "cchunk7", coll_chunk7,NULL, "linked chunk collective IO with optimization",PARATESTFILE); diff --git a/testpar/testphdf5.h b/testpar/testphdf5.h index 2219dc9..fa83697 100644 --- a/testpar/testphdf5.h +++ b/testpar/testphdf5.h @@ -169,11 +169,10 @@ enum H5TEST_COLL_CHUNK_API {API_NONE=0,API_LINK_HARD, #define TEST_ACTUAL_IO_MULTI_CHUNK_COL 3 #define TEST_ACTUAL_IO_MULTI_CHUNK_MIX 4 #define TEST_ACTUAL_IO_MULTI_CHUNK_MIX_DISAGREE 5 -#define TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_IND 6 -#define TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_COL 7 -#define TEST_ACTUAL_IO_MULTI_CHUNK_NO_OPT_MIX_DISAGREE 8 -#define TEST_ACTUAL_IO_LINK_CHUNK 9 -#define TEST_ACTUAL_IO_CONTIGUOUS 10 +#define TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_IND 6 +#define TEST_ACTUAL_IO_DIRECT_MULTI_CHUNK_COL 7 +#define TEST_ACTUAL_IO_LINK_CHUNK 8 +#define TEST_ACTUAL_IO_CONTIGUOUS 9 /* Definitions of the selection mode for the no_collective_cause_tests function. */ #define TEST_COLLECTIVE 0x001 diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index 8766eb6..c3d3e1b 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -161,6 +161,7 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarintsize.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarattrintsize.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarstring.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tscaleoffset.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tshuffle.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tslink-1.ddl @@ -264,6 +265,7 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/tsaf.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarintsize.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarattrintsize.h5 + ${HDF5_TOOLS_SRC_DIR}/testfiles/tscalarstring.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tslink.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tsplit_file-m.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tsplit_file-r.h5 @@ -1024,6 +1026,8 @@ IF (BUILD_TESTING) tscalarintsize.out.err tscalarattrintsize.out tscalarattrintsize.out.err + tscalarstring.out + tscalarstring.out.err tscaleoffset.out tscaleoffset.out.err tshuffle.out @@ -1088,15 +1092,15 @@ IF (BUILD_TESTING) # test for compound signed/unsigned datasets ADD_H5_TEST (tcmpdintsize 0 --enable-error-stack tcmpdintsize.h5) # test for signed/unsigned scalar datasets - # TODO: failed on mac with intel compiler. (Allen will work on it) - #ADD_H5_TEST (tscalarintsize 0 --enable-error-stack tscalarintsize.h5) + ADD_H5_TEST (tscalarintsize 0 --enable-error-stack tscalarintsize.h5) # test for signed/unsigned attributes ADD_H5_TEST (tattrintsize 0 --enable-error-stack tattrintsize.h5) # test for compound signed/unsigned attributes ADD_H5_TEST (tcmpdattrintsize 0 --enable-error-stack tcmpdattrintsize.h5) # test for signed/unsigned scalar attributes - # TODO: failed on mac with intel compiler. (Allen will work on it) - #ADD_H5_TEST (tscalarattrintsize 0 --enable-error-stack tscalarattrintsize.h5) + ADD_H5_TEST (tscalarattrintsize 0 --enable-error-stack tscalarattrintsize.h5) + # test for string scalar dataset and attribute + ADD_H5_TEST (tscalarstring 0 --enable-error-stack tscalarstring.h5) # test for displaying groups ADD_H5_TEST (tgroup-1 0 --enable-error-stack tgroup.h5) # test for displaying the selected groups diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index 1bbb9f9..ac74637 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -104,6 +104,7 @@ #define FILE72 "tnestedcmpddt.h5" #define FILE73 "tscalarintsize.h5" #define FILE74 "tscalarattrintsize.h5" +#define FILE75 "tscalarstring.h5" /*------------------------------------------------------------------------- * prototypes @@ -8118,7 +8119,7 @@ static void gent_nested_compound_dt(void) { /* test nested data type */ /*------------------------------------------------------------------------- * Function: gent_intscalars * - * Purpose: Generate a file to be used in the h5dump tests. + * Purpose: Generate a file to be used in the h5dump scalar tests. * Four datasets of 1, 2, 4 and 8 bytes of unsigned int types are created. * Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created. * Fill them with raw data such that no bit will be all zero in a dataset. @@ -8313,9 +8314,9 @@ gent_intscalars(void) } /*------------------------------------------------------------------------- - * Function: gent_attr_packedbits + * Function: gent_attr_intscalars * - * Purpose: Generate a file to be used in the h5dump packed bits tests. + * Purpose: Generate a file to be used in the h5dump attribute scalar tests. * Four attributes of 1, 2, 4 and 8 bytes of unsigned int types are created. * Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created. * Fill them with raw data such that no bit will be all zero in a dataset. @@ -8514,6 +8515,58 @@ gent_attr_intscalars(void) } /*------------------------------------------------------------------------- + * Function: gent_string_scalars + * + * Purpose: Generate a file to be used in the h5dump string scalar tests. + * A dataset of string types are created. + * An attribute of string types are created. + * Fill them with raw data such that no bit will be all zero in a dataset. + *------------------------------------------------------------------------- + */ +static void +gent_string_scalars(void) +{ + hid_t fid, attr, dataset, space, tid, root; + hsize_t dims[2]; + char string[F73_XDIM][F73_YDIM8]; + unsigned int i, j; + + fid = H5Fcreate(FILE75, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + root = H5Gopen2(fid, "/", H5P_DEFAULT); + + /* string scalar */ + dims[0] = F73_XDIM; dims[1] = F73_YDIM8; + space = H5Screate(H5S_SCALAR); + tid = H5Tcopy(H5T_C_S1); + H5Tset_size(tid, F73_XDIM * F73_YDIM8); + + memset(string, ' ', F73_XDIM * F73_YDIM8); + for(i = 0; i < dims[0]; i++) { + string[i][0] = 'A' + i; + for(j = 1; j < dims[1]; j++) { + string[i][j] = string[i][j-1] + 1; + } + } + string[dims[0]-1][dims[1]-1] = 0; + + /* Dataset of string scalar */ + dataset = H5Dcreate2(fid, "the_str", tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, string); + H5Dclose(dataset); + + /* attribute of string scalar */ + attr = H5Acreate2(root, "attr_str", tid, space, H5P_DEFAULT, H5P_DEFAULT); + H5Awrite(attr, tid, string); + + H5Sclose(space); + H5Aclose(attr); + + H5Gclose(root); + H5Fclose(fid); +} + +/*------------------------------------------------------------------------- * Function: main * *------------------------------------------------------------------------- @@ -8597,6 +8650,7 @@ int main(void) gent_nested_compound_dt(); gent_intscalars(); gent_attr_intscalars(); + gent_string_scalars(); return 0; } diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index c90c364..8a2483b 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -145,6 +145,7 @@ $SRC_H5DUMP_TESTFILES/tordergr.h5 $SRC_H5DUMP_TESTFILES/tsaf.h5 $SRC_H5DUMP_TESTFILES/tscalarintsize.h5 $SRC_H5DUMP_TESTFILES/tscalarattrintsize.h5 +$SRC_H5DUMP_TESTFILES/tscalarstring.h5 $SRC_H5DUMP_TESTFILES/tslink.h5 $SRC_H5DUMP_TESTFILES/tsplit_file-m.h5 $SRC_H5DUMP_TESTFILES/tsplit_file-r.h5 @@ -281,6 +282,7 @@ $SRC_H5DUMP_TESTFILES/treference.ddl $SRC_H5DUMP_TESTFILES/tsaf.ddl $SRC_H5DUMP_TESTFILES/tscalarintsize.ddl $SRC_H5DUMP_TESTFILES/tscalarattrintsize.ddl +$SRC_H5DUMP_TESTFILES/tscalarstring.ddl $SRC_H5DUMP_TESTFILES/tscaleoffset.ddl $SRC_H5DUMP_TESTFILES/tshuffle.ddl $SRC_H5DUMP_TESTFILES/tslink-1.ddl @@ -690,6 +692,8 @@ TOOLTEST tattrintsize.ddl --enable-error-stack tattrintsize.h5 TOOLTEST tcmpdattrintsize.ddl --enable-error-stack tcmpdattrintsize.h5 # test for signed/unsigned scalar attributes TOOLTEST tscalarattrintsize.ddl --enable-error-stack tscalarattrintsize.h5 +# test for string scalar dataset attribute +TOOLTEST tscalarstring.ddl --enable-error-stack tscalarstring.h5 # test for displaying groups TOOLTEST tgroup-1.ddl --enable-error-stack tgroup.h5 # test for displaying the selected groups diff --git a/tools/h5stat/testh5stat.sh.in b/tools/h5stat/testh5stat.sh.in index 74071d0..ab97698 100644 --- a/tools/h5stat/testh5stat.sh.in +++ b/tools/h5stat/testh5stat.sh.in @@ -133,6 +133,9 @@ TESTING() { echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' } +# Source in the output filter function definitions. +. $srcdir/../../bin/output_filter.sh + # Run a test and print PASS or *FAIL*. If a test fails then increment # the `nerrors' global variable and (if $verbose is set) display the # difference between the actual output and the expected output. The @@ -145,6 +148,8 @@ TOOLTEST() { expect="$TESTDIR/$1" actual="$TESTDIR/`basename $1 .ddl`.out" actual_err="$TESTDIR/`basename $1 .ddl`.err" + actual_sav=${actual}-sav + actual_err_sav=${actual_err}-sav shift # Run test. @@ -156,8 +161,13 @@ TOOLTEST() { cd $TESTDIR $RUNSERIAL $STAT_BIN $@ ) >$actual 2>$actual_err - cat $actual_err >> $actual + # save actual and actual_err in case they are needed later. + cp $actual $actual_sav + STDOUT_FILTER $actual + cp $actual_err $actual_err_sav + STDERR_FILTER $actual_err + cat $actual_err >> $actual if [ ! -f $expect ]; then # Create the expect file if it doesn't yet exist. @@ -174,7 +184,7 @@ TOOLTEST() { # Clean up output file if test -z "$HDF5_NOCLEANUP"; then - rm -f $actual $actual_err + rm -f $actual $actual_err $actual_sav $actual_err_sav fi } diff --git a/tools/lib/h5tools_dump.c b/tools/lib/h5tools_dump.c index c2add9a..c68c699 100644 --- a/tools/lib/h5tools_dump.c +++ b/tools/lib/h5tools_dump.c @@ -30,10 +30,6 @@ #include "h5tools_utils.h" #include "H5private.h" -#define SANITY_CHECK - -#define ALIGN(A,Z) ((((A) + (Z) - 1) / (Z)) * (Z)) - h5tool_format_t h5tools_dataformat = { 0, /*raw */ @@ -214,6 +210,12 @@ hbool_t h5tools_dump_region_data_blocks(hid_t region_space, hid_t region_id, hsize_t *curr_pos/*total data element position*/, size_t ncols, hsize_t region_elmt_counter/*element counter*/, hsize_t elmt_counter); + +void h5tools_print_dims(h5tools_str_t *buffer, hsize_t *s, int dims); + +void h5tools_dump_subsetting_header(FILE *stream, const h5tool_format_t *info, + h5tools_context_t *ctx, struct subset_t *sset, int dims); + void h5tools_dump_init(void) { @@ -627,7 +629,11 @@ h5tools_dump_region_data_blocks(hid_t region_space, hid_t region_id, alloc_size = nblocks * ndims * 2 * sizeof(ptdata[0]); HDassert(alloc_size == (hsize_t) ((size_t) alloc_size)); /*check for overflow*/ if((ptdata = (hsize_t*) HDmalloc((size_t) alloc_size)) == NULL) - HGOTO_ERROR(dimension_break, H5E_tools_min_id_g, "Could not allocate buffer for ptdata"); +{ + HERROR(H5E_tools_g, H5E_tools_min_id_g, "Could not allocate buffer for ptdata"); + HGOTO_DONE(dimension_break); + //HGOTO_ERROR(dimension_break, H5E_tools_min_id_g, "Could not allocate buffer for ptdata"); +} H5_CHECK_OVERFLOW(nblocks, hssize_t, hsize_t); if(H5Sget_select_hyper_blocklist(region_space, (hsize_t) 0, (hsize_t) nblocks, ptdata) < 0) @@ -688,7 +694,7 @@ h5tools_dump_region_data_blocks(hid_t region_space, hid_t region_id, h5tools_str_reset(buffer); h5tools_str_append(buffer, "%s ", h5tools_dump_header_format->dataspacebegin); - h5tools_print_dataspace(stream, buffer, info, ctx, region_space); + h5tools_print_dataspace(buffer, region_space); if (HDstrlen(h5tools_dump_header_format->dataspaceblockend)) { h5tools_str_append(buffer, "%s", h5tools_dump_header_format->dataspaceblockend); @@ -1007,7 +1013,7 @@ h5tools_dump_region_data_points(hid_t region_space, hid_t region_id, ctx->need_prefix = TRUE; h5tools_str_append(buffer, "%s ", h5tools_dump_header_format->dataspacebegin); - h5tools_print_dataspace(stream, buffer, info, ctx, region_space); + h5tools_print_dataspace(buffer, region_space); if (HDstrlen(h5tools_dump_header_format->dataspaceblockend)) { h5tools_str_append(buffer, "%s", h5tools_dump_header_format->dataspaceblockend); @@ -2211,7 +2217,7 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ /* Check C variable-length string first. Are the two types equal? */ if (H5Tequal(tmp_type, str_type)) { h5tools_str_append(buffer, "H5T_C_S1;"); - goto done; + goto found_string_type; } /* Change the endianness and see if they're equal. */ @@ -2223,7 +2229,7 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ if (H5Tequal(tmp_type, str_type)) { h5tools_str_append(buffer, "H5T_C_S1;"); - goto done; + goto found_string_type; } /* If not equal to C variable-length string, check Fortran type. */ @@ -2238,7 +2244,7 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ /* Are the two types equal? */ if (H5Tequal(tmp_type, str_type)) { h5tools_str_append(buffer, "H5T_FORTRAN_S1;"); - goto done; + goto found_string_type; } /* Change the endianness and see if they're equal. */ @@ -2250,13 +2256,13 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ if (H5Tequal(tmp_type, str_type)) { h5tools_str_append(buffer, "H5T_FORTRAN_S1;"); - goto done; + goto found_string_type; } /* Type doesn't match any of above. */ h5tools_str_append(buffer, "unknown_one_character_type;"); - done: + found_string_type: h5tools_render_element(stream, info, ctx, buffer, &curr_pos, ncols, 0, 0); ctx->indent_level--; @@ -2307,7 +2313,10 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ h5tools_render_element(stream, info, ctx, buffer, &curr_pos, ncols, 0, 0); ctx->indent_level++; { - char *ttag = H5Tget_tag(type); + char *ttag; + + if(NULL == (ttag = H5Tget_tag(type))) + H5E_THROW(FAIL, H5E_tools_min_id_g, "H5Tget_tag failed"); ctx->need_prefix = TRUE; h5tools_simple_prefix(stream, info, ctx, 0, 0); @@ -2316,8 +2325,7 @@ h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer, const h5tool_format_ h5tools_str_append(buffer, "OPAQUE_TAG \"%s\";", ttag); h5tools_render_element(stream, info, ctx, buffer, &curr_pos, ncols, 0, 0); - if (ttag) - HDfree(ttag); + HDfree(ttag); } ctx->indent_level--; @@ -2478,8 +2486,7 @@ CATCH *------------------------------------------------------------------------- */ int -h5tools_print_dataspace(FILE *stream, h5tools_str_t *buffer, const h5tool_format_t *info, - h5tools_context_t *ctx, hid_t space) +h5tools_print_dataspace(h5tools_str_t *buffer, hid_t space) { HERR_INIT(int, SUCCEED) hsize_t size[H5TOOLS_DUMP_MAX_RANK]; @@ -2769,7 +2776,7 @@ h5tools_dump_dataspace(FILE *stream, const h5tool_format_t *info, h5tools_str_append(&buffer, "%s ", h5tools_dump_header_format->dataspacebegin); - h5tools_print_dataspace(stream, &buffer, info, ctx, type); + h5tools_print_dataspace(&buffer, type); if (HDstrlen(h5tools_dump_header_format->dataspaceblockend)) { h5tools_str_append(&buffer, "%s", h5tools_dump_header_format->dataspaceblockend); @@ -2841,7 +2848,6 @@ h5tools_print_fill_value(h5tools_str_t *buffer/*in,out*/, const h5tool_format_t { size_t size; hid_t n_type; - hsize_t nelmts = 1; void *buf = NULL; n_type = h5tools_get_native_type(type_id); @@ -3563,7 +3569,8 @@ h5tools_print_dims(h5tools_str_t *buffer, hsize_t *s, int dims) for (i = 0; i < dims; i++) { h5tools_str_append(buffer, HSIZE_T_FORMAT, s[i]); - if (i + 1 != dims) h5tools_str_append(buffer, ", "); + if (i + 1 != dims) + h5tools_str_append(buffer, ", "); } } @@ -3866,7 +3873,7 @@ h5tools_dump_data(FILE *stream, const h5tool_format_t *info, buf = HDmalloc((size_t)alloc_size); HDassert(buf); - if (H5Aread(obj_id, p_type, buf) >= 0) + if (H5Aread(obj_id, p_type, buf) >= 0) { if (display_char && H5Tget_size(type) == 1 && H5Tget_class(type) == H5T_INTEGER) { /* * Print 1-byte integer data as an ASCII character string @@ -3895,6 +3902,7 @@ h5tools_dump_data(FILE *stream, const h5tool_format_t *info, } else datactx.need_prefix = TRUE; + } status = h5tools_dump_mem(stream, info, &datactx, obj_id, p_type, space, buf); if (display_char && H5Tget_size(type) == 1 && H5Tget_class(type) == H5T_INTEGER) { diff --git a/tools/lib/h5tools_dump.h b/tools/lib/h5tools_dump.h index 55e046b..86f9f99 100644 --- a/tools/lib/h5tools_dump.h +++ b/tools/lib/h5tools_dump.h @@ -67,8 +67,7 @@ H5TOOLS_DLL void h5tools_dump_data(FILE *stream, const h5tool_format_t *info, H5TOOLS_DLL int h5tools_print_datatype(FILE *stream, h5tools_str_t *buffer/*in,out*/, const h5tool_format_t *info, h5tools_context_t *ctx/*in,out*/, hid_t type, int object_search); -H5TOOLS_DLL int h5tools_print_dataspace(FILE *stream, h5tools_str_t *buffer/*in,out*/, - const h5tool_format_t *info, h5tools_context_t *ctx/*in,out*/, +H5TOOLS_DLL int h5tools_print_dataspace(h5tools_str_t *buffer/*in,out*/, hid_t space); H5TOOLS_DLL int h5tools_print_enum(FILE *stream, h5tools_str_t *buffer/*in,out*/, const h5tool_format_t *info, h5tools_context_t *ctx/*in,out*/, diff --git a/tools/testfiles/tscalarstring.ddl b/tools/testfiles/tscalarstring.ddl new file mode 100644 index 0000000..4ba7093 --- /dev/null +++ b/tools/testfiles/tscalarstring.ddl @@ -0,0 +1,28 @@ +HDF5 "tscalarstring.h5" { +GROUP "/" { + ATTRIBUTE "attr_str" { + DATATYPE H5T_STRING { + STRSIZE 64; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SCALAR + DATA { + (0): "ABCDEFGHBCDEFGHICDEFGHIJDEFGHIJKEFGHIJKLFGHIJKLMGHIJKLMNHIJKLMNO" + } + } + DATASET "the_str" { + DATATYPE H5T_STRING { + STRSIZE 64; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SCALAR + DATA { + (0): "ABCDEFGHBCDEFGHICDEFGHIJDEFGHIJKEFGHIJKLFGHIJKLMGHIJKLMNHIJKLMNO" + } + } +} +} diff --git a/tools/testfiles/tscalarstring.h5 b/tools/testfiles/tscalarstring.h5 new file mode 100644 index 0000000..b0993ef Binary files /dev/null and b/tools/testfiles/tscalarstring.h5 differ diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index a4053df..f0d6962 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -502,7 +502,7 @@ #define H5_PACKAGE_NAME "HDF5" /* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.132" +#define H5_PACKAGE_STRING "HDF5 1.9.136" /* Define to the one symbol short name of this package. */ #define H5_PACKAGE_TARNAME "hdf5" @@ -511,7 +511,7 @@ #define H5_PACKAGE_URL "" /* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.132" +#define H5_PACKAGE_VERSION "1.9.136" /* Width for printf() for type `long long' or `__int64', use `ll' */ #define H5_PRINTF_LL_WIDTH "ll" @@ -674,7 +674,7 @@ /* #undef H5_USING_MEMCHECKER */ /* Version number of package */ -#define H5_VERSION "1.9.132" +#define H5_VERSION "1.9.136" /* Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed */ -- cgit v0.12 From c409265f9d3522e45a6cb17b87a948e86b9c7b06 Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Thu, 6 Dec 2012 14:48:50 -0500 Subject: [svn-r23082] I corrected an error for test_dectris.h5. Tested on jam. --- hl/test/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt index 2720348..b22d99e 100644 --- a/hl/test/CMakeLists.txt +++ b/hl/test/CMakeLists.txt @@ -65,7 +65,7 @@ ADD_TEST ( test_ds7.h5 test_ds8.h5 test_ds9.h5 - test_dset_opt.h5 + test_dectris.h5 test_image1.h5 test_image2.h5 test_image3.h5 @@ -77,7 +77,7 @@ ADD_TEST ( ) HL_ADD_TEST (test_ds "dsdata.txt;dslat.txt;dslon.txt;test_ds_be.h5;test_ds_le.h5") -HL_ADD_TEST (test_dset_opt "test_dectris.h5") +HL_ADD_TEST (test_dset_opt "") HL_ADD_TEST (test_image "image8.txt;sepia.pal;earth.pal;image24pixel.txt;image24plane.txt;usa.wri") HL_ADD_TEST (test_lite "dtype_file.txt") HL_ADD_TEST (test_packet "") -- cgit v0.12 From fc9ed51a3aea481f397fa4b278d4908f4fe47b2e Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Mon, 10 Dec 2012 14:08:30 -0500 Subject: [svn-r23087] I updated MANIFEST to include the new files hl/src/H5DO.c, H5DOpublic.h, H5DOprivate.h. I included H5DOpublic.h into hl/src/hdf5_hl.h. Tested on koala. --- MANIFEST | 4 ++++ hl/src/hdf5_hl.h | 1 + 2 files changed, 5 insertions(+) diff --git a/MANIFEST b/MANIFEST index 4eb48cf..4712b56 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2146,6 +2146,9 @@ ./hl/src/COPYING ./hl/src/Makefile.am ./hl/src/Makefile.in +./hl/src/H5DO.c +./hl/src/H5DOprivate.h +./hl/src/H5DOpublic.h ./hl/src/H5DS.c ./hl/src/H5DSprivate.h ./hl/src/H5DSpublic.h @@ -2186,6 +2189,7 @@ ./hl/test/sepia.pal ./hl/test/gen_test_ds.c ./hl/test/test_ds.c +./hl/test/test_dset_opt.c ./hl/test/test_file_image.c ./hl/test/test_image.c ./hl/test/test_lite.c diff --git a/hl/src/hdf5_hl.h b/hl/src/hdf5_hl.h index 0fff932..4643932 100644 --- a/hl/src/hdf5_hl.h +++ b/hl/src/hdf5_hl.h @@ -22,6 +22,7 @@ #ifndef _HDF5_HL_H #define _HDF5_HL_H +#include "H5DOpublic.h" /* dataset optimization */ #include "H5DSpublic.h" /* dimension scales */ #include "H5LTpublic.h" /* lite */ #include "H5IMpublic.h" /* image */ -- cgit v0.12 From 6050e7814364a78fc6d196c5b6a6e4b6e4d274ca Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Thu, 13 Dec 2012 11:13:43 -0500 Subject: [svn-r23097] I changed H5Dopen to H5Dopen2 in test/dectris_tst.c and hl/test/test_dset_opt.c. I added hl/test/dectris_hl_perf.c perform/dectris_perf.c test/dectris_tst.c Tested on koala. --- MANIFEST | 3 +++ hl/test/test_dset_opt.c | 10 +++++----- test/dectris_tst.c | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/MANIFEST b/MANIFEST index 4712b56..09f10a7 100644 --- a/MANIFEST +++ b/MANIFEST @@ -493,6 +493,7 @@ ./perform/build_h5perf_alone.sh ./perform/build_h5perf_serial_alone.sh ./perform/chunk.c +./perform/dectris_perf.c ./perform/gen_report.pl ./perform/iopipe.c ./perform/overhead.c @@ -938,6 +939,7 @@ ./test/corrupt_stab_msg.h5 ./test/cross_read.c ./test/dangle.c +./test/dectris_tst.c ./test/deflate.h5 ./test/dsets.c ./test/dt_arith.c @@ -2187,6 +2189,7 @@ ./hl/test/image24plane.txt ./hl/test/pal_rgb.h ./hl/test/sepia.pal +./hl/test/dectris_hl_perf.c ./hl/test/gen_test_ds.c ./hl/test/test_ds.c ./hl/test/test_dset_opt.c diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c index ebe28cc..0a0674b 100644 --- a/hl/test/test_dset_opt.c +++ b/hl/test/test_dset_opt.c @@ -207,7 +207,7 @@ test_direct_chunk_write (hid_t file) if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME1, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME1, H5P_DEFAULT)) < 0) goto error; /* @@ -281,7 +281,7 @@ test_direct_chunk_write (hid_t file) if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME1, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME1, H5P_DEFAULT)) < 0) goto error; /* Read the chunk back */ @@ -422,7 +422,7 @@ test_skip_compress_write1(hid_t file) if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME2, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME2, H5P_DEFAULT)) < 0) goto error; /* @@ -664,7 +664,7 @@ test_skip_compress_write2(hid_t file) if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME3, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME3, H5P_DEFAULT)) < 0) goto error; /* @@ -846,7 +846,7 @@ test_data_conv(hid_t file) if(H5Dclose(dataset) < 0) goto error; - if((dataset = H5Dopen(file, DATASETNAME4, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME4, H5P_DEFAULT)) < 0) goto error; /* diff --git a/test/dectris_tst.c b/test/dectris_tst.c index ccc4310..ec1c23a 100644 --- a/test/dectris_tst.c +++ b/test/dectris_tst.c @@ -180,7 +180,7 @@ main (void) if((file = H5Fopen(filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, DATASETNAME, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME, H5P_DEFAULT)) < 0) TEST_ERROR; /* @@ -258,7 +258,7 @@ main (void) if((file = H5Fopen(filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, DATASETNAME, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DATASETNAME, H5P_DEFAULT)) < 0) TEST_ERROR; /* Read the chunk back */ -- cgit v0.12 From cf823b47edf7e28d13a10802a797c6aa6bdf9f47 Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Fri, 14 Dec 2012 10:42:18 -0500 Subject: [svn-r23103] I changed the H5Dopen in hl/test/dectris_hl_perf.c and perform/dectris_perf.c to H5Dopen2. Tested on Koala. --- hl/test/dectris_hl_perf.c | 8 ++++---- perform/dectris_perf.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hl/test/dectris_hl_perf.c b/hl/test/dectris_hl_perf.c index c18fe1c..a3e382a 100644 --- a/hl/test/dectris_hl_perf.c +++ b/hl/test/dectris_hl_perf.c @@ -278,7 +278,7 @@ test_direct_write_uncompressed_data(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; @@ -343,7 +343,7 @@ test_direct_write_compressed_data(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, DIRECT_COMPRESSED_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DIRECT_COMPRESSED_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; @@ -414,7 +414,7 @@ test_compressed_write(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, REG_COMPRESSED_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, REG_COMPRESSED_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; if((dataspace = H5Dget_space(dataset)) < 0) @@ -502,7 +502,7 @@ test_no_compress_write(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, REG_NO_COMPRESS_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, REG_NO_COMPRESS_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; if((dataspace = H5Dget_space(dataset)) < 0) diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c index 0be1aa1..71f818a 100644 --- a/perform/dectris_perf.c +++ b/perform/dectris_perf.c @@ -276,7 +276,7 @@ test_direct_write_uncompressed_data(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; @@ -341,7 +341,7 @@ test_direct_write_compressed_data(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, DIRECT_COMPRESSED_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, DIRECT_COMPRESSED_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; @@ -412,7 +412,7 @@ test_compressed_write(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, REG_COMPRESSED_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, REG_COMPRESSED_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; if((dataspace = H5Dget_space(dataset)) < 0) @@ -500,7 +500,7 @@ test_no_compress_write(hid_t fapl_id) if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR; - if((dataset = H5Dopen(file, REG_NO_COMPRESS_DSET, H5P_DEFAULT)) < 0) + if((dataset = H5Dopen2(file, REG_NO_COMPRESS_DSET, H5P_DEFAULT)) < 0) TEST_ERROR; if((dataspace = H5Dget_space(dataset)) < 0) -- cgit v0.12 From cde5029461edd921e8f84dabed9eb8f01a704dba Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 9 Jan 2013 14:23:18 -0500 Subject: [svn-r23146] The test on Windows shows it doesn't have zlib.h. I added a macro condition to verify it before include it. Tested on koala. --- hl/test/test_dset_opt.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c index 0a0674b..79f7eda 100644 --- a/hl/test/test_dset_opt.c +++ b/hl/test/test_dset_opt.c @@ -18,9 +18,15 @@ #include "h5hltest.h" #include "H5srcdir.h" #include "H5DOpublic.h" -#include #include +#if defined(H5_HAVE_ZLIB_H) && !defined(H5_ZLIB_HEADER) +# define H5_ZLIB_HEADER "zlib.h" +#endif +#if defined(H5_ZLIB_HEADER) +# include H5_ZLIB_HEADER /* "zlib.h" */ +#endif + #define FILE_NAME "test_dectris.h5" #define DATASETNAME1 "direct_write" -- cgit v0.12 From 81bcd314a9b170a5652f4d13b54b9cbaab14c03b Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 9 Jan 2013 15:23:07 -0500 Subject: [svn-r23147] ported revisions 23081:23145 from the trunk --- CMakeLists.txt | 19 +- MANIFEST | 38 ++- README.txt | 2 +- bin/cmakehdf5 | 206 ++++++++++++ c++/src/Makefile.in | 2 +- config/cmake/CPack.cmake | 597 +++++++++++++++++++--------------- config/cmake/ConfigureChecks.cmake | 7 +- config/cmake/H5pubconf.h.in | 3 + config/cmake/HDF5UseFortran.cmake | 4 + config/cmake/prunTest.cmake | 34 +- config/cmake/runTest.cmake | 67 ++-- config/lt_vers.am | 2 +- configure | 45 +-- configure.ac | 23 +- examples/CMakeLists.txt | 14 + examples/Makefile.am | 22 +- examples/Makefile.in | 22 +- examples/h5_cmprss.c | 125 +++++++ examples/h5_crtatt.c | 63 ++++ examples/h5_crtdat.c | 51 +++ examples/h5_crtgrp.c | 40 +++ examples/h5_crtgrpar.c | 48 +++ examples/h5_crtgrpd.c | 91 ++++++ examples/h5_extend.c | 146 +++++++++ examples/h5_rdwt.c | 53 +++ examples/h5_subset.c | 153 +++++++++ examples/run-c-ex.sh.in | 20 +- fortran/examples/CMakeLists.txt | 16 +- fortran/examples/Makefile.am | 40 +-- fortran/examples/Makefile.in | 40 +-- fortran/examples/attrexample.f90 | 117 ------- fortran/examples/dsetexample.f90 | 85 ----- fortran/examples/fileexample.f90 | 49 --- fortran/examples/groupexample.f90 | 64 ---- fortran/examples/grpdsetexample.f90 | 156 --------- fortran/examples/grpsexample.f90 | 83 ----- fortran/examples/h5_cmprss.f90 | 131 ++++++++ fortran/examples/h5_crtatt.f90 | 106 ++++++ fortran/examples/h5_crtdat.f90 | 86 +++++ fortran/examples/h5_crtgrp.f90 | 64 ++++ fortran/examples/h5_crtgrpar.f90 | 83 +++++ fortran/examples/h5_crtgrpd.f90 | 155 +++++++++ fortran/examples/h5_extend.f90 | 233 +++++++++++++ fortran/examples/h5_rdwt.f90 | 96 ++++++ fortran/examples/h5_subset.f90 | 184 +++++++++++ fortran/examples/run-fortran-ex.sh.in | 32 +- fortran/examples/rwdsetexample.f90 | 96 ------ fortran/src/H5test_kind_SIZEOF.f90 | 4 +- fortran/src/Makefile.in | 2 +- hl/c++/examples/CMakeLists.txt | 11 - hl/c++/examples/Makefile.am | 5 +- hl/c++/examples/Makefile.in | 5 +- hl/c++/examples/ptExampleVL.cpp | 112 ------- hl/c++/examples/run-hlc++-ex.sh.in | 4 +- hl/c++/src/Makefile.in | 2 +- hl/examples/CMakeLists.txt | 1 - hl/examples/Makefile.am | 5 +- hl/examples/Makefile.in | 5 +- hl/examples/ptExampleVL.c | 126 ------- hl/examples/run-hlc-ex.sh.in | 2 - hl/fortran/src/Makefile.in | 2 +- hl/src/Makefile.in | 2 +- hl/test/CMakeLists.txt | 2 +- hl/test/test_table.c | 6 +- hl/test/test_table_be.h5 | Bin 0 -> 55912 bytes hl/test/test_table_be.hdf5 | Bin 55912 -> 0 bytes hl/test/test_table_cray.h5 | Bin 0 -> 55912 bytes hl/test/test_table_cray.hdf5 | Bin 55912 -> 0 bytes hl/test/test_table_le.h5 | Bin 0 -> 53880 bytes hl/test/test_table_le.hdf5 | Bin 53880 -> 0 bytes release_docs/RELEASE.txt | 2 +- src/H5FDcore.c | 550 +++++++++++++++---------------- src/H5FDlog.c | 412 +++++++++++------------ src/H5FDmpiposix.c | 62 ++-- src/H5FDsec2.c | 381 ++++++++++------------ src/H5config.h.in | 3 + src/H5private.h | 18 + src/H5public.h | 4 +- src/Makefile.in | 2 +- test/CMakeLists.txt | 4 +- test/dsets.c | 4 +- test/test_filters_be.h5 | Bin 0 -> 5720 bytes test/test_filters_be.hdf5 | Bin 5720 -> 0 bytes test/test_filters_le.h5 | Bin 0 -> 5720 bytes test/test_filters_le.hdf5 | Bin 5720 -> 0 bytes vms/src/h5pubconf.h | 6 +- 86 files changed, 3432 insertions(+), 2125 deletions(-) create mode 100755 bin/cmakehdf5 create mode 100644 examples/h5_cmprss.c create mode 100644 examples/h5_crtatt.c create mode 100644 examples/h5_crtdat.c create mode 100644 examples/h5_crtgrp.c create mode 100644 examples/h5_crtgrpar.c create mode 100644 examples/h5_crtgrpd.c create mode 100644 examples/h5_extend.c create mode 100644 examples/h5_rdwt.c create mode 100644 examples/h5_subset.c delete mode 100644 fortran/examples/attrexample.f90 delete mode 100644 fortran/examples/dsetexample.f90 delete mode 100644 fortran/examples/fileexample.f90 delete mode 100644 fortran/examples/groupexample.f90 delete mode 100644 fortran/examples/grpdsetexample.f90 delete mode 100644 fortran/examples/grpsexample.f90 create mode 100644 fortran/examples/h5_cmprss.f90 create mode 100644 fortran/examples/h5_crtatt.f90 create mode 100644 fortran/examples/h5_crtdat.f90 create mode 100644 fortran/examples/h5_crtgrp.f90 create mode 100644 fortran/examples/h5_crtgrpar.f90 create mode 100644 fortran/examples/h5_crtgrpd.f90 create mode 100644 fortran/examples/h5_extend.f90 create mode 100644 fortran/examples/h5_rdwt.f90 create mode 100644 fortran/examples/h5_subset.f90 delete mode 100644 fortran/examples/rwdsetexample.f90 delete mode 100644 hl/c++/examples/ptExampleVL.cpp delete mode 100644 hl/examples/ptExampleVL.c create mode 100644 hl/test/test_table_be.h5 delete mode 100644 hl/test/test_table_be.hdf5 create mode 100644 hl/test/test_table_cray.h5 delete mode 100644 hl/test/test_table_cray.hdf5 create mode 100644 hl/test/test_table_le.h5 delete mode 100644 hl/test/test_table_le.hdf5 create mode 100644 test/test_filters_be.h5 delete mode 100644 test/test_filters_be.hdf5 create mode 100644 test/test_filters_le.h5 delete mode 100644 test/test_filters_le.hdf5 diff --git a/CMakeLists.txt b/CMakeLists.txt index d86d29e..aff3f86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,10 +274,10 @@ SET (H5_ENABLE_SHARED_LIB NO) SET (H5_ENABLE_STATIC_LIB NO) IF (BUILD_SHARED_LIBS) SET (LIB_TYPE SHARED) - ADD_DEFINITIONS (-DH5_BUILT_AS_DYNAMIC_LIB) + SET (H5_BUILT_AS_DYNAMIC_LIB 1) SET (H5_ENABLE_SHARED_LIB YES) ELSE (BUILD_SHARED_LIBS) - ADD_DEFINITIONS (-DH5_BUILT_AS_STATIC_LIB) + SET (H5_BUILT_AS_STATIC_LIB 1) SET (H5_ENABLE_STATIC_LIB YES) IF (NOT WIN32) # should this be a user setting : Everyone uses it anyway ? @@ -666,7 +666,7 @@ IF (WIN32 AND NOT CYGWIN) IF (HDF5_ENABLE_THREADSAFE) # check for unsupported options IF (HDF5_ENABLE_PARALLEL) - MESSAGE (FATAL " **** Parallel and Threadsafe options are mutually exclusive **** ") + MESSAGE (FATAL_ERROR " **** Parallel and Threadsafe options are mutually exclusive **** ") ENDIF (HDF5_ENABLE_PARALLEL) SET (H5_HAVE_THREADSAFE 1) IF (H5_HAVE_IOEO) @@ -675,7 +675,7 @@ IF (WIN32 AND NOT CYGWIN) ELSE (H5_HAVE_IOEO) IF (NOT H5_HAVE_PTHREAD_H) SET (H5_HAVE_THREADSAFE 0) - MESSAGE (FATAL " **** Threadsafe option requires thread library **** ") + MESSAGE (FATAL_ERROR " **** Threadsafe option requires thread library **** ") ENDIF (NOT H5_HAVE_PTHREAD_H) ENDIF (H5_HAVE_IOEO) ENDIF (HDF5_ENABLE_THREADSAFE) @@ -757,6 +757,9 @@ SET (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) name ## _") IF (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran") OPTION (HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF) IF (HDF5_BUILD_FORTRAN) + IF (BUILD_SHARED_LIBS AND APPLE) + MESSAGE (FATAL_ERROR " **** Shared FORTRAN libraries are unsupported **** ") + ENDIF (BUILD_SHARED_LIBS AND APPLE) OPTION (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" OFF) INCLUDE (${HDF5_RESOURCES_DIR}/HDF5UseFortran.cmake) IF (HDF5_ENABLE_F2003) @@ -798,7 +801,7 @@ IF (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") IF (HDF5_BUILD_CPP_LIB) # check for unsupported options IF (HDF5_ENABLE_PARALLEL) - MESSAGE (FATAL " **** Parallel and C++ options are mutually exclusive **** ") + MESSAGE (FATAL_ERROR " **** Parallel and C++ options are mutually exclusive **** ") ENDIF (HDF5_ENABLE_PARALLEL) IF (CMAKE_NO_STD_NAMESPACE) SET (H5_NO_STD 1) @@ -999,7 +1002,6 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) SET (CPACK_PACKAGE_VENDOR "HDF_Group") SET (CPACK_PACKAGE_NAME "${HDF5_PACKAGE_NAME}") SET (CPACK_PACKAGE_INSTALL_DIRECTORY "${HDF5_PACKAGE_NAME}") - SET (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${HDF5_PACKAGE_NAME}-${HDF5_PACKAGE_VERSION}-${LIB_TYPE}") SET (CPACK_PACKAGE_VERSION "${HDF5_PACKAGE_VERSION}") SET (CPACK_PACKAGE_VERSION_MAJOR "${HDF5_PACKAGE_VERSION_MAJOR}") SET (CPACK_PACKAGE_VERSION_MINOR "${HDF5_PACKAGE_VERSION_MINOR}") @@ -1012,10 +1014,15 @@ IF (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) SET (CPACK_PACKAGE_RELOCATABLE TRUE) IF (WIN32) + SET (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${HDF5_PACKAGE_NAME}-${HDF5_PACKAGE_VERSION}-${LIB_TYPE}") SET (CPACK_MONOLITHIC_INSTALL ON) SET (CPACK_NSIS_CONTACT "${HDF5_PACKAGE_BUGREPORT}") SET (CPACK_NSIS_MODIFY_PATH ON) SET (CPACK_NSIS_PACKAGE_NAME "HDF5 ${HDF5_PACKAGE_VERSION}") + ELSEIF (APPLE) + SET (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON) + SET (CPACK_PACKAGE_DEFAULT_LOCATION "/opt/${CPACK_PACKAGE_NAME}") + SET (CPACK_PACKAGING_INSTALL_PREFIX "/") ELSE (WIN32) SET (CPACK_PACKAGING_INSTALL_PREFIX "/usr") SET (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON) diff --git a/MANIFEST b/MANIFEST index 09f10a7..943afd7 100644 --- a/MANIFEST +++ b/MANIFEST @@ -46,6 +46,7 @@ ./bin/chkconfigure _DO_NOT_DISTRIBUTE_ ./bin/chkcopyright _DO_NOT_DISTRIBUTE_ ./bin/chkmanifest +./bin/cmakehdf5 ./bin/compile ./bin/config.guess ./bin/config.sub @@ -121,6 +122,15 @@ ./examples/Makefile.in ./examples/h5_chunk_read.c ./examples/h5_compound.c +./examples/h5_crtgrpd.c +./examples/h5_subset.c +./examples/h5_cmprss.c +./examples/h5_rdwt.c +./examples/h5_crtgrpar.c +./examples/h5_extend.c +./examples/h5_crtatt.c +./examples/h5_crtgrp.c +./examples/h5_crtdat.c ./examples/h5_drivers.c ./examples/h5_dtransform.c ./examples/h5_elink_unix2win.c @@ -238,22 +248,24 @@ ./fortran/examples/Makefile.am ./fortran/examples/Makefile.in -./fortran/examples/attrexample.f90 ./fortran/examples/compound.f90 ./fortran/examples/compound_fortran2003.f90 ./fortran/examples/compound_complex_fortran2003.f90 -./fortran/examples/dsetexample.f90 -./fortran/examples/fileexample.f90 -./fortran/examples/groupexample.f90 -./fortran/examples/grpdsetexample.f90 -./fortran/examples/grpsexample.f90 +./fortran/examples/h5_cmprss.f90 +./fortran/examples/h5_crtatt.f90 +./fortran/examples/h5_crtdat.f90 +./fortran/examples/h5_crtgrp.f90 +./fortran/examples/h5_crtgrpar.f90 +./fortran/examples/h5_crtgrpd.f90 +./fortran/examples/h5_extend.f90 +./fortran/examples/h5_rdwt.f90 +./fortran/examples/h5_subset.f90 ./fortran/examples/hyperslab.f90 ./fortran/examples/mountexample.f90 ./fortran/examples/ph5example.f90 ./fortran/examples/refobjexample.f90 ./fortran/examples/refregexample.f90 ./fortran/examples/run-fortran-ex.sh.in -./fortran/examples/rwdsetexample.f90 ./fortran/examples/selectele.f90 ./fortran/examples/testh5fc.sh.in ./fortran/examples/nested_derived_type.f90 @@ -1072,8 +1084,8 @@ ./test/tvltypes.c ./test/unlink.c ./test/vfd.c -./test/test_filters_le.hdf5 -./test/test_filters_be.hdf5 +./test/test_filters_le.h5 +./test/test_filters_be.h5 ./test/gen_filters.c ./test/chunk_info.c @@ -2142,7 +2154,6 @@ ./hl/examples/image8.txt ./hl/examples/pal_rgb.h ./hl/examples/ptExampleFL.c -./hl/examples/ptExampleVL.c ./hl/examples/run-hl-ex.sh ./hl/examples/run-hlc-ex.sh.in ./hl/src/COPYING @@ -2200,9 +2211,9 @@ ./hl/test/test_table.c ./hl/test/test_ds_le.h5 ./hl/test/test_ds_be.h5 -./hl/test/test_table_le.hdf5 -./hl/test/test_table_be.hdf5 -./hl/test/test_table_cray.hdf5 +./hl/test/test_table_le.h5 +./hl/test/test_table_be.h5 +./hl/test/test_table_cray.h5 ./hl/test/usa.wri # tools @@ -2260,7 +2271,6 @@ ./hl/c++/examples/Makefile.am ./hl/c++/examples/Makefile.in ./hl/c++/examples/ptExampleFL.cpp -./hl/c++/examples/ptExampleVL.cpp ./hl/c++/examples/run-hlc++-ex.sh.in ./hl/c++/src/H5PacketTable.h ./hl/c++/src/H5PacketTable.cpp diff --git a/README.txt b/README.txt index 40b5adb..256d7ce 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.136 currently under development +HDF5 version 1.9.140 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 new file mode 100755 index 0000000..622788f --- /dev/null +++ b/bin/cmakehdf5 @@ -0,0 +1,206 @@ +#! /bin/sh +# Build and Test HDF5 using cmake. +# Author: Allen Byrne +# Albert Cheng +# Creation Date: Nov 2012 + +# Copyright: The HDF Group, 2012 + +# Debug: remove the comment hash if you want DPRINT to do echo +DPRINT=: +#DPRINT=echo + +# variable names +progname=`basename $0` # program name +cminfile="cmakemin.$$" # Cmake minimum file +cfgfile=$progname.$$ # configure file +$DPRINT $cfgfile + +# Remove temporary generated files if exit 0 +trap "rm -f $cminfile $cfgfile" 0 + +#========== +# main +#========== +# First generate the two needed input files, the $cimnfile and $cfgfile. +# Then use ctest to use the two input files. + +# This works only in Jam for now. +# Exit if not running in Jam. +if [ `hostname` != jam ]; then + echo This is known to work in Jam for now. + echo It may fail in other machines. + echo Support for more platforms is coming. + echo +fi + + +#========== +# create the configure file +#========== +# Create the cmake minimum required file to be used by the following +# configure file. Though not absolute needed, it is better to generate +# this file before the configure file. Quote the EOF to preven substitution +# in the text. +#========== +#========== +cat > $cfgfile <<'EOF' +cmake_minimum_required(VERSION 2.8.6 FATAL_ERROR) +######################################################## +# This dashboard is maintained by The HDF Group +# For any comments please contact cdashhelp@hdfgroup.org +# +######################################################## + +set (CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) +set (CTEST_SOURCE_DIRECTORY "../hdf5") +set (CTEST_BINARY_DIRECTORY ".") +set (CTEST_CMAKE_GENERATOR "Unix Makefiles") +set (CTEST_BUILD_CONFIGURATION "Release") + +# -- CDash variables +#set (LOCAL_NO_SUBMIT TRUE) +set (MODEL "Experimental") +set (CDASH_LOCAL TRUE) +set (SITE_BUILDNAME_SUFFIX "SHARED") + +# -- URL set for internal check, default is to not update +set (LOCAL_SKIP_UPDATE TRUE) +set (REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8") +# -- Standard build options +set (ADD_BUILD_OPTIONS "-DCMAKE_INSTALL_PREFIX:PATH=/usr/local/hdf5.1.8 -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=\"SVN\" -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") + +# Use multiple CPU cores to build +SET (CTEST_BUILD_FLAGS "-j4") + +# ----------------------------------------------------------- +# -- Get environment +# ----------------------------------------------------------- + ## -- set hostname + ## -------------------------- + find_program (HOSTNAME_CMD NAMES hostname) + exec_program (${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME) + set (CTEST_SITE "${HOSTNAME}${CTEST_SITE_EXT}") + find_program (UNAME NAMES uname) + macro (getuname name flag) + exec_program ("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}") + endmacro (getuname) + + getuname (osname -s) + getuname (osrel -r) + getuname (cpu -m) + + if (SITE_BUILDNAME_SUFFIX) + set (CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}-${SITE_BUILDNAME_SUFFIX}") + else (SITE_BUILDNAME_SUFFIX) + set (CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}") + endif (SITE_BUILDNAME_SUFFIX) +# ----------------------------------------------------------- + +set (BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}") + +#----------------------------------------------------------------------------- +# MAC machines need special option +#----------------------------------------------------------------------------- +if (APPLE) + # Compiler choice + execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE) + SET(ENV{CC} "${XCODE_CC}") + SET(ENV{CXX} "${XCODE_CXX}") + # Shared fortran is not supported, build static + set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") + set (BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF") +endif (APPLE) + + +# ----------------------------------------------------------- +find_package (Subversion) +set (CTEST_UPDATE_COMMAND "${Subversion_SVN_EXECUTABLE}") +# -- Only clean build folder if LOCAL_CLEAR_BUILD is set +if (LOCAL_CLEAR_BUILD) + set (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE) + ctest_empty_binary_directory (${CTEST_BINARY_DIRECTORY}) +endif (LOCAL_CLEAR_BUILD) + +#----------------------------------------------------------------------------- +# Send the main script as a note. +list (APPEND CTEST_NOTES_FILES + "${CMAKE_CURRENT_LIST_FILE}" + "${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake" + ) + +# Check for required variables. +foreach (req + CTEST_CMAKE_GENERATOR + CTEST_SITE + CTEST_BUILD_NAME + ) + if (NOT DEFINED ${req}) + message(FATAL_ERROR "The containing script must set ${req}") + endif (NOT DEFINED ${req}) +endforeach (req) + +## -- set output to english +set($ENV{LC_MESSAGES} "en_EN") + +#----------------------------------------------------------------------------- +# Initialize the CTEST commands +#------------------------------ +SET (CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"") +SET (CTEST_CONFIGURE_COMMAND + "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\"") + +# Print summary information. +foreach (v + CTEST_SITE + CTEST_BUILD_NAME + CTEST_SOURCE_DIRECTORY + CTEST_BINARY_DIRECTORY + CTEST_CMAKE_GENERATOR + CTEST_BUILD_CONFIGURATION + CTEST_CONFIGURE_COMMAND + CTEST_SCRIPT_DIRECTORY + ) + set (vars "${vars} ${v}=[${${v}}]\n") +endforeach (v) +message ("Dashboard script configuration:\n${vars}\n") + +CTEST_START (${MODEL} TRACK ${MODEL}) +if (NOT LOCAL_SKIP_UPDATE) + CTEST_UPDATE (SOURCE "${CTEST_SOURCE_DIRECTORY}") +endif (NOT LOCAL_SKIP_UPDATE) +CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}") +message ("Configure DONE") +CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}") +if (NOT LOCAL_NO_SUBMIT) + CTEST_SUBMIT (PARTS Update Configure Notes) +endif (NOT LOCAL_NO_SUBMIT) +CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) +if (NOT LOCAL_NO_SUBMIT) + CTEST_SUBMIT (PARTS Build) +endif (NOT LOCAL_NO_SUBMIT) +message ("build DONE") +if (NOT LOCAL_SKIP_TEST) + CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) + if (NOT LOCAL_NO_SUBMIT) + CTEST_SUBMIT (PARTS Test) + endif (NOT LOCAL_NO_SUBMIT) + message ("test DONE") +endif (NOT LOCAL_SKIP_TEST) + +message ("DONE") +EOF + + +# Run ctest +date +ctest -S $cfgfile -C Release -O testhdf.log +exit_code=$? +if [ $exit_code = 0 ]; then + echo Complete without error +else + echo Error encountered +fi +date +exit $exit_code diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 52e32ff..9d14b76 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -467,7 +467,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 126 +LT_VERS_REVISION = 130 LT_VERS_AGE = 0 # Include src directory diff --git a/config/cmake/CPack.cmake b/config/cmake/CPack.cmake index 2e6b23a..d96fe43 100644 --- a/config/cmake/CPack.cmake +++ b/config/cmake/CPack.cmake @@ -1,5 +1,7 @@ -# - Build binary and source package installers -# +##section Variables common to all CPack generators +##end +##module +# - Build binary and source package installers. # The CPack module generates binary and source installers in a variety # of formats using the cpack program. Inclusion of the CPack module # adds two new targets to the resulting makefiles, package and @@ -29,16 +31,16 @@ # on a per-generator basis. It only need contain overrides. # # Here's how it works: -# - cpack runs -# - it includes CPackConfig.cmake -# - it iterates over the generators listed in that file's -# CPACK_GENERATOR list variable (unless told to use just a -# specific one via -G on the command line...) +# - cpack runs +# - it includes CPackConfig.cmake +# - it iterates over the generators listed in that file's +# CPACK_GENERATOR list variable (unless told to use just a +# specific one via -G on the command line...) # -# - foreach generator, it then -# - sets CPACK_GENERATOR to the one currently being iterated -# - includes the CPACK_PROJECT_CONFIG_FILE -# - produces the package for that generator +# - foreach generator, it then +# - sets CPACK_GENERATOR to the one currently being iterated +# - includes the CPACK_PROJECT_CONFIG_FILE +# - produces the package for that generator # # This is the key: For each generator listed in CPACK_GENERATOR # in CPackConfig.cmake, cpack will *reset* CPACK_GENERATOR @@ -48,174 +50,225 @@ # Before including this CPack module in your CMakeLists.txt file, # there are a variety of variables that can be set to customize # the resulting installers. The most commonly-used variables are: -# -# CPACK_PACKAGE_NAME - The name of the package (or application). If -# not specified, defaults to the project name. -# -# CPACK_PACKAGE_VENDOR - The name of the package vendor (e.g., -# "Kitware"). -# -# CPACK_PACKAGE_VERSION_MAJOR - Package major Version -# -# CPACK_PACKAGE_VERSION_MINOR - Package minor Version -# -# CPACK_PACKAGE_VERSION_PATCH - Package patch Version -# -# CPACK_PACKAGE_DESCRIPTION_FILE - A text file used to describe the -# project. Used, for example, the introduction screen of a -# CPack-generated Windows installer to describe the project. -# -# CPACK_PACKAGE_DESCRIPTION_SUMMARY - Short description of the -# project (only a few words). -# -# CPACK_PACKAGE_FILE_NAME - The name of the package file to generate, -# not including the extension. For example, cmake-2.6.1-Linux-i686. -# -# CPACK_PACKAGE_INSTALL_DIRECTORY - Installation directory on the -# target system, e.g., "CMake 2.5". -# -# CPACK_PROJECT_CONFIG_FILE - File included at cpack time, once per -# generator after setting CPACK_GENERATOR to the actual generator -# being used. Allows per-generator setting of CPACK_* variables at -# cpack time. -# -# CPACK_RESOURCE_FILE_LICENSE - License file for the project, which -# will typically be displayed to the user (often with an explicit -# "Accept" button, for graphical installers) prior to installation. -# -# CPACK_RESOURCE_FILE_README - ReadMe file for the project, which -# typically describes in some detail -# -# CPACK_RESOURCE_FILE_WELCOME - Welcome file for the project, which -# welcomes users to this installer. Typically used in the graphical -# installers on Windows and Mac OS X. -# -# CPACK_MONOLITHIC_INSTALL - Disables the component-based -# installation mechanism, so that all components are always installed. -# -# CPACK_GENERATOR - List of CPack generators to use. If not -# specified, CPack will create a set of options (e.g., -# CPACK_BINARY_NSIS) allowing the user to enable/disable individual -# generators. -# -# CPACK_OUTPUT_CONFIG_FILE - The name of the CPack configuration file -# for binary installers that will be generated by the CPack -# module. Defaults to CPackConfig.cmake. -# -# CPACK_PACKAGE_EXECUTABLES - Lists each of the executables along -# with a text label, to be used to create Start Menu shortcuts on -# Windows. For example, setting this to the list ccmake;CMake will -# create a shortcut named "CMake" that will execute the installed -# executable ccmake. -# -# CPACK_STRIP_FILES - List of files to be stripped. Starting with -# CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which -# enables stripping of all files (a list of files evaluates to TRUE -# in CMake, so this change is compatible). -# -# The following CPack variables are specific to source packages, and +##end +# +##variable +# CPACK_PACKAGE_NAME - The name of the package (or application). If +# not specified, defaults to the project name. +##end +# +##variable +# CPACK_PACKAGE_VENDOR - The name of the package vendor. (e.g., +# "Kitware"). +##end +# +##variable +# CPACK_PACKAGE_DIRECTORY - The directory in which CPack is doing its +# packaging. If it is not set then this will default (internally) to the +# build dir. This variable may be defined in CPack config file or from +# the cpack command line option "-B". If set the command line option +# override the value found in the config file. +##end +# +##variable +# CPACK_PACKAGE_VERSION_MAJOR - Package major Version +##end +# +##variable +# CPACK_PACKAGE_VERSION_MINOR - Package minor Version +##end +# +##variable +# CPACK_PACKAGE_VERSION_PATCH - Package patch Version +##end +# +##variable +# CPACK_PACKAGE_DESCRIPTION_FILE - A text file used to describe the +# project. Used, for example, the introduction screen of a +# CPack-generated Windows installer to describe the project. +##end +# +##variable +# CPACK_PACKAGE_DESCRIPTION_SUMMARY - Short description of the +# project (only a few words). +##end +# +##variable +# CPACK_PACKAGE_FILE_NAME - The name of the package file to generate, +# not including the extension. For example, cmake-2.6.1-Linux-i686. +# The default value is +# +# ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}. +##end +# +##variable +# CPACK_PACKAGE_INSTALL_DIRECTORY - Installation directory on the +# target system. This may be used by some CPack generators +# like NSIS to create an installation directory e.g., "CMake 2.5" +# below the installation prefix. All installed element will be +# put inside this directory. +##end +# +##variable +# CPACK_PACKAGE_ICON - A branding image that will be displayed inside +# the installer (used by GUI installers). +##end +# +##variable +# CPACK_PROJECT_CONFIG_FILE - CPack-time project CPack configuration +# file. This file included at cpack time, once per +# generator after CPack has set CPACK_GENERATOR to the actual generator +# being used. It allows per-generator setting of CPACK_* variables at +# cpack time. +##end +# +##variable +# CPACK_RESOURCE_FILE_LICENSE - License to be embedded in the installer. It +# will typically be displayed to the user by the produced installer +# (often with an explicit "Accept" button, for graphical installers) +# prior to installation. This license file is NOT added to installed +# file but is used by some CPack generators like NSIS. If you want +# to install a license file (may be the same as this one) +# along with your project you must add an appropriate CMake INSTALL +# command in your CMakeLists.txt. +##end +# +##variable +# CPACK_RESOURCE_FILE_README - ReadMe file to be embedded in the installer. It +# typically describes in some detail the purpose of the project +# during the installation. Not all CPack generators uses +# this file. +##end +# +##variable +# CPACK_RESOURCE_FILE_WELCOME - Welcome file to be embedded in the +# installer. It welcomes users to this installer. +# Typically used in the graphical installers on Windows and Mac OS X. +##end +# +##variable +# CPACK_MONOLITHIC_INSTALL - Disables the component-based +# installation mechanism. When set the component specification is ignored +# and all installed items are put in a single "MONOLITHIC" package. +# Some CPack generators do monolithic packaging by default and +# may be asked to do component packaging by setting +# CPACK__COMPONENT_INSTALL to 1/TRUE. +##end +# +##variable +# CPACK_GENERATOR - List of CPack generators to use. If not +# specified, CPack will create a set of options CPACK_BINARY_ (e.g., +# CPACK_BINARY_NSIS) allowing the user to enable/disable individual +# generators. This variable may be used on the command line +# as well as in: +# +# cpack -D CPACK_GENERATOR="ZIP;TGZ" /path/to/build/tree +##end +# +##variable +# CPACK_OUTPUT_CONFIG_FILE - The name of the CPack binary configuration +# file. This file is the CPack configuration generated by the CPack module +# for binary installers. Defaults to CPackConfig.cmake. +##end +# +##variable +# CPACK_PACKAGE_EXECUTABLES - Lists each of the executables and associated +# text label to be used to create Start Menu shortcuts. For example, +# setting this to the list ccmake;CMake will +# create a shortcut named "CMake" that will execute the installed +# executable ccmake. Not all CPack generators use it (at least NSIS and +# OSXX11 do). +##end +# +##variable +# CPACK_STRIP_FILES - List of files to be stripped. Starting with +# CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which +# enables stripping of all files (a list of files evaluates to TRUE +# in CMake, so this change is compatible). +##end +# +# The following CPack variables are specific to source packages, and # will not affect binary packages: # -# CPACK_SOURCE_PACKAGE_FILE_NAME - The name of the source package, -# e.g., cmake-2.6.1 -# -# CPACK_SOURCE_STRIP_FILES - List of files in the source tree that -# will be stripped. Starting with CMake 2.6.0 -# CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables -# stripping of all files (a list of files evaluates to TRUE in CMake, -# so this change is compatible). -# -# CPACK_SOURCE_GENERATOR - List of generators used for the source -# packages. As with CPACK_GENERATOR, if this is not specified then -# CPack will create a set of options (e.g., CPACK_SOURCE_ZIP) -# allowing users to select which packages will be generated. -# -# CPACK_SOURCE_OUTPUT_CONFIG_FILE - The name of the CPack -# configuration file for source installers that will be generated by -# the CPack module. Defaults to CPackSourceConfig.cmake. -# -# CPACK_SOURCE_IGNORE_FILES - Pattern of files in the source tree -# that won't be packaged when building a source package. This is a -# list of patterns, e.g., /CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.* -# -# The following variables are specific to the DragNDrop installers -# built on Mac OS X: -# -# CPACK_DMG_VOLUME_NAME - The volume name of the generated disk -# image. Defaults to CPACK_PACKAGE_FILE_NAME. -# -# CPACK_DMG_FORMAT - The disk image format. Common values are UDRO -# (UDIF read-only), UDZO (UDIF zlib-compressed) or UDBZ (UDIF -# bzip2-compressed). Refer to hdiutil(1) for more information on -# other available formats. -# -# CPACK_DMG_DS_STORE - Path to a custom .DS_Store file which e.g. -# can be used to specify the Finder window position/geometry and -# layout (such as hidden toolbars, placement of the icons etc.). -# This file has to be generated by the Finder (either manually or -# through OSA-script) using a normal folder from which the .DS_Store -# file can then be extracted. -# -# CPACK_DMG_BACKGROUND_IMAGE - Path to an image file which is to be -# used as the background for the Finder Window when the disk image -# is opened. By default no background image is set. The background -# image is applied after applying the custom .DS_Store file. -# -# CPACK_COMMAND_HDIUTIL - Path to the hdiutil(1) command used to -# operate on disk image files on Mac OS X. This variable can be used -# to override the automatically detected command (or specify its -# location if the auto-detection fails to find it.) -# -# CPACK_COMMAND_SETFILE - Path to the SetFile(1) command used to set -# extended attributes on files and directories on Mac OS X. This -# variable can be used to override the automatically detected -# command (or specify its location if the auto-detection fails to -# find it.) -# -# CPACK_COMMAND_REZ - Path to the Rez(1) command used to compile -# resources on Mac OS X. This variable can be used to override the -# automatically detected command (or specify its location if the -# auto-detection fails to find it.) -# -# The following variable is specific to installers build on Mac OS X -# using PackageMaker: -# -# CPACK_OSX_PACKAGE_VERSION - The version of Mac OS X that the -# resulting PackageMaker archive should be compatible -# with. Different versions of Mac OS X support different -# features. For example, CPack can only build component-based -# installers for Mac OS X 10.4 or newer, and can only build -# installers that download component son-the-fly for Mac OS X 10.5 -# or newer. If left blank, this value will be set to the minimum -# version of Mac OS X that supports the requested features. Set this -# variable to some value (e.g., 10.4) only if you want to guarantee -# that your installer will work on that version of Mac OS X, and -# don't mind missing extra features available in the installer -# shipping with later versions of Mac OS X. +##variable +# CPACK_SOURCE_PACKAGE_FILE_NAME - The name of the source package. For +# example cmake-2.6.1. +##end +# +##variable +# CPACK_SOURCE_STRIP_FILES - List of files in the source tree that +# will be stripped. Starting with CMake 2.6.0 +# CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables +# stripping of all files (a list of files evaluates to TRUE in CMake, +# so this change is compatible). +##end +# +##variable +# CPACK_SOURCE_GENERATOR - List of generators used for the source +# packages. As with CPACK_GENERATOR, if this is not specified then +# CPack will create a set of options (e.g., CPACK_SOURCE_ZIP) +# allowing users to select which packages will be generated. +##end +# +##variable +# CPACK_SOURCE_OUTPUT_CONFIG_FILE - The name of the CPack source +# configuration file. This file is the CPack configuration generated by the +# CPack module for source installers. Defaults to CPackSourceConfig.cmake. +##end +# +##variable +# CPACK_SOURCE_IGNORE_FILES - Pattern of files in the source tree +# that won't be packaged when building a source package. This is a +# list of regular expression patterns (that must be properly escaped), +# e.g., /CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.* +##end # # The following variables are for advanced uses of CPack: # -# CPACK_CMAKE_GENERATOR - What CMake generator should be used if the -# project is CMake project. Defaults to the value of CMAKE_GENERATOR; -# few users will want to change this setting. -# -# CPACK_INSTALL_CMAKE_PROJECTS - List of four values that specify -# what project to install. The four values are: Build directory, -# Project Name, Project Component, Directory. If omitted, CPack will -# build an installer that installers everything. -# -# CPACK_SYSTEM_NAME - System name, defaults to the value of -# ${CMAKE_SYSTEM_NAME}. -# -# CPACK_PACKAGE_VERSION - Package full version, used internally. By -# default, this is built from CPACK_PACKAGE_VERSION_MAJOR, -# CPACK_PACKAGE_VERSION_MINOR, and CPACK_PACKAGE_VERSION_PATCH. -# -# CPACK_TOPLEVEL_TAG - Directory for the installed files. -# -# CPACK_INSTALL_COMMANDS - Extra commands to install components. -# -# CPACK_INSTALLED_DIRECTORIES - Extra directories to install. +##variable +# CPACK_CMAKE_GENERATOR - What CMake generator should be used if the +# project is CMake project. Defaults to the value of CMAKE_GENERATOR +# few users will want to change this setting. +##end +# +##variable +# CPACK_INSTALL_CMAKE_PROJECTS - List of four values that specify +# what project to install. The four values are: Build directory, +# Project Name, Project Component, Directory. If omitted, CPack will +# build an installer that installers everything. +##end +# +##variable +# CPACK_SYSTEM_NAME - System name, defaults to the value of +# ${CMAKE_SYSTEM_NAME}. +##end +# +##variable +# CPACK_PACKAGE_VERSION - Package full version, used internally. By +# default, this is built from CPACK_PACKAGE_VERSION_MAJOR, +# CPACK_PACKAGE_VERSION_MINOR, and CPACK_PACKAGE_VERSION_PATCH. +##end +# +##variable +# CPACK_TOPLEVEL_TAG - Directory for the installed files. +##end +# +##variable +# CPACK_INSTALL_COMMANDS - Extra commands to install components. +##end +# +##variable +# CPACK_INSTALLED_DIRECTORIES - Extra directories to install. +##end +# +##variable +# CPACK_PACKAGE_INSTALL_REGISTRY_KEY - Registry key used when +# installing this project. This is only used +# by installer for Windows. +##end +##variable +# CPACK_CREATE_DESKTOP_LINKS - List of desktop links to create. +##end # #============================================================================= @@ -232,48 +285,48 @@ # License text for the above reference.) # Define this var in order to avoid (or warn) concerning multiple inclusion -IF(CPack_CMake_INCLUDED) - MESSAGE(WARNING "CPack.cmake has already been included!!") -ELSE(CPack_CMake_INCLUDED) - SET(CPack_CMake_INCLUDED 1) -ENDIF(CPack_CMake_INCLUDED) +if(CPack_CMake_INCLUDED) + message(WARNING "CPack.cmake has already been included!!") +else() + set(CPack_CMake_INCLUDED 1) +endif() # Pick a configuration file -SET(cpack_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in") -IF(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in") - SET(cpack_input_file "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in") -ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in") -SET(cpack_source_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in") -IF(EXISTS "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in") - SET(cpack_source_input_file "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in") -ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in") +set(cpack_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in") +if(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in") + set(cpack_input_file "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in") +endif() +set(cpack_source_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in") +if(EXISTS "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in") + set(cpack_source_input_file "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in") +endif() # Backward compatibility # Include CPackComponent macros if it has not already been included before. include(CPackComponent) # Macro for setting values if a user did not overwrite them -MACRO(cpack_set_if_not_set name value) - IF(NOT DEFINED "${name}") - SET(${name} "${value}") - ENDIF(NOT DEFINED "${name}") -ENDMACRO(cpack_set_if_not_set) +macro(cpack_set_if_not_set name value) + if(NOT DEFINED "${name}") + set(${name} "${value}") + endif() +endmacro() -# Macro to encode variables for the configuration file +# cpack_encode_variables - Macro to encode variables for the configuration file # find any variable that starts with CPACK and create a variable # _CPACK_OTHER_VARIABLES_ that contains SET commands for # each cpack variable. _CPACK_OTHER_VARIABLES_ is then # used as an @ replacment in configure_file for the CPackConfig. -MACRO(cpack_encode_variables) - SET(_CPACK_OTHER_VARIABLES_) - GET_CMAKE_PROPERTY(res VARIABLES) - FOREACH(var ${res}) - IF("xxx${var}" MATCHES "xxxCPACK") - SET(_CPACK_OTHER_VARIABLES_ +macro(cpack_encode_variables) + set(_CPACK_OTHER_VARIABLES_) + get_cmake_property(res VARIABLES) + foreach(var ${res}) + if("xxx${var}" MATCHES "xxxCPACK") + set(_CPACK_OTHER_VARIABLES_ "${_CPACK_OTHER_VARIABLES_}\nSET(${var} \"${${var}}\")") - ENDIF("xxx${var}" MATCHES "xxxCPACK") - ENDFOREACH(var ${res}) -ENDMACRO(cpack_encode_variables) + endif() + endforeach() +endmacro() # Set the package name cpack_set_if_not_set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}") @@ -297,27 +350,31 @@ cpack_set_if_not_set(CPACK_RESOURCE_FILE_WELCOME cpack_set_if_not_set(CPACK_MODULE_PATH "${CMAKE_MODULE_PATH}") -IF(CPACK_NSIS_MODIFY_PATH) - SET(CPACK_NSIS_MODIFY_PATH ON) -ENDIF(CPACK_NSIS_MODIFY_PATH) - -SET(__cpack_system_name ${CMAKE_SYSTEM_NAME}) -IF(${__cpack_system_name} MATCHES Windows) - IF(CMAKE_CL_64) - SET(__cpack_system_name win64) - ELSE(CMAKE_CL_64) - SET(__cpack_system_name win32) - ENDIF(CMAKE_CL_64) -ENDIF(${__cpack_system_name} MATCHES Windows) +if(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL) + set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) +endif() + +if(CPACK_NSIS_MODIFY_PATH) + set(CPACK_NSIS_MODIFY_PATH ON) +endif() + +set(__cpack_system_name ${CMAKE_SYSTEM_NAME}) +if(${__cpack_system_name} MATCHES Windows) + if(CMAKE_CL_64) + set(__cpack_system_name win64) + else() + set(__cpack_system_name win32) + endif() +endif() cpack_set_if_not_set(CPACK_SYSTEM_NAME "${__cpack_system_name}") # Root dir: default value should be the string literal "$PROGRAMFILES" # for backwards compatibility. Projects may set this value to anything. if(CMAKE_CL_64) set(__cpack_root_default "$PROGRAMFILES64") -else(CMAKE_CL_64) +else() set(__cpack_root_default "$PROGRAMFILES") -endif(CMAKE_CL_64) +endif() cpack_set_if_not_set(CPACK_NSIS_INSTALL_ROOT "${__cpack_root_default}") # -..--. @@ -333,15 +390,15 @@ cpack_set_if_not_set(CPACK_PACKAGE_RELOCATABLE "true") # always force to exactly "true" or "false" for CPack.Info.plist.in: if(CPACK_PACKAGE_RELOCATABLE) set(CPACK_PACKAGE_RELOCATABLE "true") -else(CPACK_PACKAGE_RELOCATABLE) +else() set(CPACK_PACKAGE_RELOCATABLE "false") -endif(CPACK_PACKAGE_RELOCATABLE) +endif() macro(cpack_check_file_exists file description) if(NOT EXISTS "${file}") message(SEND_ERROR "CPack ${description} file: \"${file}\" could not be found.") - endif(NOT EXISTS "${file}") -endmacro(cpack_check_file_exists) + endif() +endmacro() cpack_check_file_exists("${CPACK_PACKAGE_DESCRIPTION_FILE}" "package description") cpack_check_file_exists("${CPACK_RESOURCE_FILE_LICENSE}" "license resource") @@ -351,9 +408,15 @@ cpack_check_file_exists("${CPACK_RESOURCE_FILE_WELCOME}" "welcome resource") macro(cpack_optional_append _list _cond _item) if(${_cond}) set(${_list} ${${_list}} ${_item}) - endif(${_cond}) -endmacro(cpack_optional_append _list _cond _item) - + endif() +endmacro() + +##variable +# CPACK_BINARY_ - CPack generated options for binary generators. The +# CPack.cmake module generates (when CPACK_GENERATOR is not set) +# a set of CMake options (see CMake option command) which may then be used to +# select the CPack generator(s) to be used when launching the package target. +##end # Provide options to choose generators # we might check here if the required tools for the generates exist # and set the defaults according to the results @@ -361,27 +424,27 @@ if(NOT CPACK_GENERATOR) if(UNIX) if(CYGWIN) option(CPACK_BINARY_CYGWIN "Enable to build Cygwin binary packages" ON) - else(CYGWIN) + else() if(APPLE) option(CPACK_BINARY_BUNDLE "Enable to build OSX bundles" OFF) option(CPACK_BINARY_DRAGNDROP "Enable to build OSX Drag And Drop package" OFF) option(CPACK_BINARY_PACKAGEMAKER "Enable to build PackageMaker packages" ON) option(CPACK_BINARY_OSXX11 "Enable to build OSX X11 packages" OFF) - else(APPLE) + else() option(CPACK_BINARY_TZ "Enable to build TZ packages" ON) - endif(APPLE) + endif() option(CPACK_BINARY_STGZ "Enable to build STGZ packages" ON) option(CPACK_BINARY_TGZ "Enable to build TGZ packages" ON) option(CPACK_BINARY_TBZ2 "Enable to build TBZ2 packages" OFF) option(CPACK_BINARY_DEB "Enable to build Debian packages" OFF) option(CPACK_BINARY_RPM "Enable to build RPM packages" OFF) option(CPACK_BINARY_NSIS "Enable to build NSIS packages" OFF) - endif(CYGWIN) - else(UNIX) + endif() + else() option(CPACK_BINARY_NSIS "Enable to build NSIS packages" ON) option(CPACK_BINARY_ZIP "Enable to build ZIP packages" OFF) - endif(UNIX) - + endif() + cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_BUNDLE Bundle) cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_DRAGNDROP DragNDrop) cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_PACKAGEMAKER PackageMaker) @@ -395,37 +458,37 @@ if(NOT CPACK_GENERATOR) cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TBZ2 TBZ2) cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TZ TZ) cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_ZIP ZIP) - -endif(NOT CPACK_GENERATOR) + +endif() # Provide options to choose source generators if(NOT CPACK_SOURCE_GENERATOR) if(UNIX) if(CYGWIN) option(CPACK_SOURCE_CYGWIN "Enable to build Cygwin source packages" ON) - else(CYGWIN) + else() option(CPACK_SOURCE_TBZ2 "Enable to build TBZ2 source packages" ON) option(CPACK_SOURCE_TGZ "Enable to build TGZ source packages" ON) option(CPACK_SOURCE_TZ "Enable to build TZ source packages" ON) option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" OFF) - endif(CYGWIN) - else(UNIX) + endif() + else() option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" ON) - endif(UNIX) + endif() cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_CYGWIN CygwinSource) cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TGZ TGZ) cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TBZ2 TBZ2) cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TZ TZ) cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_ZIP ZIP) -endif(NOT CPACK_SOURCE_GENERATOR) +endif() # mark the above options as advanced mark_as_advanced(CPACK_BINARY_CYGWIN CPACK_BINARY_PACKAGEMAKER CPACK_BINARY_OSXX11 - CPACK_BINARY_STGZ CPACK_BINARY_TGZ CPACK_BINARY_TBZ2 - CPACK_BINARY_DEB CPACK_BINARY_RPM CPACK_BINARY_TZ + CPACK_BINARY_STGZ CPACK_BINARY_TGZ CPACK_BINARY_TBZ2 + CPACK_BINARY_DEB CPACK_BINARY_RPM CPACK_BINARY_TZ CPACK_BINARY_NSIS CPACK_BINARY_ZIP CPACK_BINARY_BUNDLE - CPACK_SOURCE_CYGWIN CPACK_SOURCE_TBZ2 CPACK_SOURCE_TGZ + CPACK_SOURCE_CYGWIN CPACK_SOURCE_TBZ2 CPACK_SOURCE_TGZ CPACK_SOURCE_TZ CPACK_SOURCE_ZIP CPACK_BINARY_DRAGNDROP) # Set some other variables @@ -435,16 +498,16 @@ cpack_set_if_not_set(CPACK_CMAKE_GENERATOR "${CMAKE_GENERATOR}") cpack_set_if_not_set(CPACK_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}") # if the user has set CPACK_NSIS_DISPLAY_NAME remember it if(DEFINED CPACK_NSIS_DISPLAY_NAME) - SET(CPACK_NSIS_DISPLAY_NAME_SET TRUE) + set(CPACK_NSIS_DISPLAY_NAME_SET TRUE) endif() # if the user has set CPACK_NSIS_DISPLAY # explicitly, then use that as the default # value of CPACK_NSIS_PACKAGE_NAME instead -# of CPACK_PACKAGE_INSTALL_DIRECTORY +# of CPACK_PACKAGE_INSTALL_DIRECTORY cpack_set_if_not_set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}") if(CPACK_NSIS_DISPLAY_NAME_SET) - string(REPLACE "\\" "\\\\" + string(REPLACE "\\" "\\\\" _NSIS_DISPLAY_NAME_TMP "${CPACK_NSIS_DISPLAY_NAME}") cpack_set_if_not_set(CPACK_NSIS_PACKAGE_NAME "${_NSIS_DISPLAY_NAME_TMP}") else() @@ -463,31 +526,31 @@ cpack_set_if_not_set(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") cpack_set_if_not_set(CPACK_NSIS_INSTALLER_ICON_CODE "") cpack_set_if_not_set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "") -IF(DEFINED CPACK_COMPONENTS_ALL) - IF(CPACK_MONOLITHIC_INSTALL) - MESSAGE("CPack warning: both CPACK_COMPONENTS_ALL and CPACK_MONOLITHIC_INSTALL have been set.\nDefaulting to a monolithic installation.") - SET(CPACK_COMPONENTS_ALL) - ELSE(CPACK_MONOLITHIC_INSTALL) +if(DEFINED CPACK_COMPONENTS_ALL) + if(CPACK_MONOLITHIC_INSTALL) + message("CPack warning: both CPACK_COMPONENTS_ALL and CPACK_MONOLITHIC_INSTALL have been set.\nDefaulting to a monolithic installation.") + set(CPACK_COMPONENTS_ALL) + else() # The user has provided the set of components to be installed as # part of a component-based installation; trust her. - SET(CPACK_COMPONENTS_ALL_SET_BY_USER TRUE) - ENDIF(CPACK_MONOLITHIC_INSTALL) -ELSE(DEFINED CPACK_COMPONENTS_ALL) + set(CPACK_COMPONENTS_ALL_SET_BY_USER TRUE) + endif() +else() # If the user has not specifically requested a monolithic installer # but has specified components in various "install" commands, tell # CPack about those components. - IF(NOT CPACK_MONOLITHIC_INSTALL) - GET_CMAKE_PROPERTY(CPACK_COMPONENTS_ALL COMPONENTS) - LIST(LENGTH CPACK_COMPONENTS_ALL CPACK_COMPONENTS_LEN) - IF(CPACK_COMPONENTS_LEN EQUAL 1) + if(NOT CPACK_MONOLITHIC_INSTALL) + get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) + list(LENGTH CPACK_COMPONENTS_ALL CPACK_COMPONENTS_LEN) + if(CPACK_COMPONENTS_LEN EQUAL 1) # Only one component: this is not a component-based installation # (at least, it isn't a component-based installation, but may # become one later if the user uses the cpack_add_* commands). - SET(CPACK_COMPONENTS_ALL) - ENDIF(CPACK_COMPONENTS_LEN EQUAL 1) - SET(CPACK_COMPONENTS_LEN) - ENDIF(NOT CPACK_MONOLITHIC_INSTALL) -ENDIF(DEFINED CPACK_COMPONENTS_ALL) + set(CPACK_COMPONENTS_ALL) + endif() + set(CPACK_COMPONENTS_LEN) + endif() +endif() # CMake always generates a component named "Unspecified", which is # used to install everything that doesn't have an explicitly-provided @@ -507,13 +570,13 @@ cpack_set_if_not_set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Source") cpack_set_if_not_set(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\\\\\\\.svn/;/\\\\\\\\.bzr/;/\\\\\\\\.hg/;/\\\\\\\\.git/;\\\\\\\\.swp$;\\\\\\\\.#;/#") -SET(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_SOURCE_INSTALL_CMAKE_PROJECTS}") -SET(CPACK_INSTALLED_DIRECTORIES "${CPACK_SOURCE_INSTALLED_DIRECTORIES}") -SET(CPACK_GENERATOR "${CPACK_SOURCE_GENERATOR}") -SET(CPACK_TOPLEVEL_TAG "${CPACK_SOURCE_TOPLEVEL_TAG}") -SET(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}") -SET(CPACK_IGNORE_FILES "${CPACK_SOURCE_IGNORE_FILES}") -SET(CPACK_STRIP_FILES "${CPACK_SOURCE_STRIP_FILES}") +set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_SOURCE_INSTALL_CMAKE_PROJECTS}") +set(CPACK_INSTALLED_DIRECTORIES "${CPACK_SOURCE_INSTALLED_DIRECTORIES}") +set(CPACK_GENERATOR "${CPACK_SOURCE_GENERATOR}") +set(CPACK_TOPLEVEL_TAG "${CPACK_SOURCE_TOPLEVEL_TAG}") +set(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}") +set(CPACK_IGNORE_FILES "${CPACK_SOURCE_IGNORE_FILES}") +set(CPACK_STRIP_FILES "${CPACK_SOURCE_STRIP_FILES}") cpack_encode_variables() configure_file("${cpack_source_input_file}" diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index 4f4f759..6db6d78 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -14,7 +14,7 @@ INCLUDE (${CMAKE_ROOT}/Modules/TestBigEndian.cmake) INCLUDE (${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake) #----------------------------------------------------------------------------- -# Always SET this for now IF we are on an OS X box +# APPLE/Darwin setup #----------------------------------------------------------------------------- IF (APPLE) LIST(LENGTH CMAKE_OSX_ARCHITECTURES ARCH_LENGTH) @@ -28,6 +28,11 @@ IF (APPLE) SET (H5_AC_APPLE_UNIVERSAL_BUILD 0) ENDIF (APPLE) +# Check for Darwin (not just Apple - we also want to catch OpenDarwin) +IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + SET (H5_HAVE_DARWIN 1) +ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + #----------------------------------------------------------------------------- # Option to Clear File Buffers before write --enable-clear-file-buffers #----------------------------------------------------------------------------- diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index 6fca1ae..d9f0997 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -111,6 +111,9 @@ /* Define if the function stack tracing code is to be compiled in */ #cmakedefine H5_HAVE_CODESTACK @H5_HAVE_CODESTACK@ +/* Define if Darwin or Mac OS X */ +#cmakedefine H5_HAVE_DARWIN @H5_HAVE_DARWIN@ + /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. */ #cmakedefine H5_HAVE_DECL_TZNAME @H5_HAVE_DECL_TZNAME@ diff --git a/config/cmake/HDF5UseFortran.cmake b/config/cmake/HDF5UseFortran.cmake index 323c9ef..8fa76b8 100644 --- a/config/cmake/HDF5UseFortran.cmake +++ b/config/cmake/HDF5UseFortran.cmake @@ -110,6 +110,9 @@ CHECK_FORTRAN_FEATURE(RealIsNotDouble FORTRAN_DEFAULT_REAL_NOT_DOUBLE ) +#----------------------------------------------------------------------------- +# Checks if the ISO_C_BINDING module meets all the requirements +#----------------------------------------------------------------------------- CHECK_FORTRAN_FEATURE(iso_c_binding " PROGRAM main @@ -117,6 +120,7 @@ CHECK_FORTRAN_FEATURE(iso_c_binding IMPLICIT NONE TYPE(C_PTR) :: ptr TYPE(C_FUNPTR) :: funptr + INTEGER(C_INT64_T) :: c_int64_type CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr ptr = C_LOC(ichr(1:1)) END PROGRAM diff --git a/config/cmake/prunTest.cmake b/config/cmake/prunTest.cmake index 261f8a4..b9ead6f 100644 --- a/config/cmake/prunTest.cmake +++ b/config/cmake/prunTest.cmake @@ -1,5 +1,6 @@ # runTest.cmake executes a command and captures the output in a file. File is then compared # against a reference file. Exit status of command can also be compared. +cmake_policy(SET CMP0007 NEW) # arguments checking IF (NOT TEST_PROGRAM) @@ -103,24 +104,33 @@ IF (NOT TEST_SKIP_COMPARE) ENDIF (WIN32 AND NOT MINGW) # now compare the output with the reference + EXECUTE_PROCESS ( + COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/P_${TEST_REFERENCE} + RESULT_VARIABLE TEST_RESULT + ) + IF (NOT ${TEST_RESULT} STREQUAL 0) SET (TEST_RESULT 0) FILE (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act) - LIST (LENGTH "${test_act}" len_act) + LIST (LENGTH test_act len_act) FILE (STRINGS ${TEST_FOLDER}/P_${TEST_REFERENCE} test_ref) - LIST (LENGTH "${test_ref}" len_ref) - MATH (EXPR _FP_LEN "${len_ref} - 1") - FOREACH (line RANGE 0 ${_FP_LEN}) - LIST (GET "${test_act}" ${line} str_act) - LIST (GET "${test_ref}" ${line} str_ref) - STRING (COMPARE NOTEQUAL ${str_act} ${str_ref} str_res) - IF (${str_res}) - SET (TEST_RESULT 1) - MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}") - ENDIF (${str_res}) - ENDFOREACH (line RANGE 0 ${_FP_LEN}) + LIST (LENGTH test_ref len_ref) + IF (NOT ${len_act} STREQUAL "0") + MATH (EXPR _FP_LEN "${len_ref} - 1") + FOREACH (line RANGE 0 ${_FP_LEN}) + LIST (GET test_act ${line} str_act) + LIST (GET test_ref ${line} str_ref) + IF (NOT "${str_act}" STREQUAL "${str_ref}") + IF (NOT "${str_act}" STREQUAL "") + SET (TEST_RESULT 1) + MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + ENDIF (NOT "${str_act}" STREQUAL "") + ENDIF (NOT "${str_act}" STREQUAL "${str_ref}") + ENDFOREACH (line RANGE 0 ${_FP_LEN}) + ENDIF (NOT ${len_act} STREQUAL "0") IF (NOT ${len_act} STREQUAL ${len_ref}) SET (TEST_RESULT 1) ENDIF (NOT ${len_act} STREQUAL ${len_ref}) + ENDIF (NOT ${TEST_RESULT} STREQUAL 0) MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}") diff --git a/config/cmake/runTest.cmake b/config/cmake/runTest.cmake index 78ccf9f..0a80873 100644 --- a/config/cmake/runTest.cmake +++ b/config/cmake/runTest.cmake @@ -1,5 +1,6 @@ # runTest.cmake executes a command and captures the output in a file. File is then compared # against a reference file. Exit status of command can also be compared. +cmake_policy(SET CMP0007 NEW) # arguments checking IF (NOT TEST_PROGRAM) @@ -108,24 +109,33 @@ IF (NOT TEST_SKIP_COMPARE) ENDIF (WIN32 AND NOT MINGW) # now compare the output with the reference + EXECUTE_PROCESS ( + COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE} + RESULT_VARIABLE TEST_RESULT + ) + IF (NOT ${TEST_RESULT} STREQUAL 0) SET (TEST_RESULT 0) FILE (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act) - LIST (LENGTH "${test_act}" len_act) + LIST (LENGTH test_act len_act) FILE (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref) - LIST (LENGTH "${test_ref}" len_ref) - MATH (EXPR _FP_LEN "${len_ref} - 1") - FOREACH (line RANGE 0 ${_FP_LEN}) - LIST (GET "${test_act}" ${line} str_act) - LIST (GET "${test_ref}" ${line} str_ref) - STRING (COMPARE NOTEQUAL ${str_act} ${str_ref} str_res) - IF (${str_res}) - SET (TEST_RESULT 1) - MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}") - ENDIF (${str_res}) - ENDFOREACH (line RANGE 0 ${_FP_LEN}) + LIST (LENGTH test_ref len_ref) + IF (NOT ${len_act} STREQUAL "0") + MATH (EXPR _FP_LEN "${len_ref} - 1") + FOREACH (line RANGE 0 ${_FP_LEN}) + LIST (GET test_act ${line} str_act) + LIST (GET test_ref ${line} str_ref) + IF (NOT "${str_act}" STREQUAL "${str_ref}") + IF (NOT "${str_act}" STREQUAL "") + SET (TEST_RESULT 1) + MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + ENDIF (NOT "${str_act}" STREQUAL "") + ENDIF (NOT "${str_act}" STREQUAL "${str_ref}") + ENDFOREACH (line RANGE 0 ${_FP_LEN}) + ENDIF (NOT ${len_act} STREQUAL "0") IF (NOT ${len_act} STREQUAL ${len_ref}) SET (TEST_RESULT 1) ENDIF (NOT ${len_act} STREQUAL ${len_ref}) + ENDIF (NOT ${TEST_RESULT} STREQUAL 0) MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}") @@ -141,24 +151,34 @@ IF (NOT TEST_SKIP_COMPARE) ENDIF (WIN32 AND NOT MINGW) # now compare the error output with the error reference + EXECUTE_PROCESS ( + COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT}.err ${TEST_FOLDER}/${TEST_ERRREF} + RESULT_VARIABLE TEST_RESULT + ) + IF (NOT ${TEST_RESULT} STREQUAL 0) SET (TEST_RESULT 0) FILE (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT}.err test_act) - LIST (LENGTH "${test_act}" len_act) + LIST (LENGTH test_act len_act) FILE (STRINGS ${TEST_FOLDER}/${TEST_ERRREF} test_ref) - LIST (LENGTH "${test_ref}" len_ref) + LIST (LENGTH test_ref len_ref) MATH (EXPR _FP_LEN "${len_ref} - 1") - FOREACH (line RANGE 0 ${_FP_LEN}) - LIST (GET "${test_act}" ${line} str_act) - LIST (GET "${test_ref}" ${line} str_ref) - STRING (COMPARE NOTEQUAL ${str_act} ${str_ref} str_res) - IF (${str_res}) - SET (TEST_RESULT 1) - MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}") - ENDIF (${str_res}) - ENDFOREACH (line RANGE 0 ${_FP_LEN}) + IF (NOT ${len_act} STREQUAL "0") + MATH (EXPR _FP_LEN "${len_ref} - 1") + FOREACH (line RANGE 0 ${_FP_LEN}) + LIST (GET test_act ${line} str_act) + LIST (GET test_ref ${line} str_ref) + IF (NOT "${str_act}" STREQUAL "${str_ref}") + IF (NOT "${str_act}" STREQUAL "") + SET (TEST_RESULT 1) + MESSAGE ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + ENDIF (NOT "${str_act}" STREQUAL "") + ENDIF (NOT "${str_act}" STREQUAL "${str_ref}") + ENDFOREACH (line RANGE 0 ${_FP_LEN}) + ENDIF (NOT ${len_act} STREQUAL "0") IF (NOT ${len_act} STREQUAL ${len_ref}) SET (TEST_RESULT 1) ENDIF (NOT ${len_act} STREQUAL ${len_ref}) + ENDIF (NOT ${TEST_RESULT} STREQUAL 0) MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}") @@ -171,4 +191,3 @@ ENDIF (NOT TEST_SKIP_COMPARE) # everything went fine... MESSAGE ("Passed: The output of ${TEST_PROGRAM} matches ${TEST_REFERENCE}") - diff --git a/config/lt_vers.am b/config/lt_vers.am index d0944fa..42aa24d 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -17,7 +17,7 @@ # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 126 +LT_VERS_REVISION = 130 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index 9b37513..80e3e9a 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . +# From configure.ac Id: configure.ac 23142 2013-01-08 02:19:17Z derobins . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.136. +# Generated by GNU Autoconf 2.69 for HDF5 1.8.11-snap7. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.136' -PACKAGE_STRING='HDF5 1.9.136' +PACKAGE_VERSION='1.8.11-snap7' +PACKAGE_STRING='HDF5 1.8.11-snap7' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1484,7 +1484,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.136 to adapt to many kinds of systems. +\`configure' configures HDF5 1.8.11-snap7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1554,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.136:";; + short | recursive ) echo "Configuration of HDF5 1.8.11-snap7:";; esac cat <<\_ACEOF @@ -1750,7 +1750,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.136 +HDF5 configure 1.8.11-snap7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2844,7 +2844,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.136, which was +It was created by HDF5 $as_me 1.8.11-snap7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3676,7 +3676,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.136' + VERSION='1.8.11-snap7' cat >>confdefs.h <<_ACEOF @@ -22754,6 +22754,14 @@ fi done +## Also need to detect Darwin for pubconf +case $host_os in + darwin*) + +$as_echo "#define HAVE_DARWIN 1" >>confdefs.h + + ;; +esac ## Windows case "`uname`" in @@ -27152,19 +27160,12 @@ if ${hdf5_cv_lone_colon+:} false; then : else echo "int main(int argc, char * argv) {return 0;}" > conftest.c - $CC $CFLAGS conftest.c > /dev/null 2> /dev/null -case "`uname`" in - CYGWIN*) - echo "./a.exe :" > conftest.sh - ;; - *) - echo "./a.out :" > conftest.sh - ;; -esac + $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null + echo "./a.out :" > conftest.sh chmod 700 conftest.sh ./conftest.sh 2> conftest.out - rm -f a.out a.exe + rm -f a.out TEST_OUTPUT=`cat conftest.out` if test "X$TEST_OUTPUT" = "X"; then @@ -31722,7 +31723,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.136, which was +This file was extended by HDF5 $as_me 1.8.11-snap7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31788,7 +31789,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.136 +HDF5 config.status 1.8.11-snap7 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -34561,7 +34562,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.136 +HDF5 config.lt 1.8.11-snap7 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. diff --git a/configure.ac b/configure.ac index 7b5cf92..65aa21b 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ ## ---------------------------------------------------------------------- ## Initialize configure. ## -AC_REVISION($Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest $) +AC_REVISION($Id: configure.ac 23142 2013-01-08 02:19:17Z derobins $) AC_PREREQ([2.69]) ## AC_INIT takes the name of the package, the version number, and an @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.136], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.8.11-snap7], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) @@ -1278,6 +1278,12 @@ AC_CHECK_HEADERS([stdint.h], [C9x=yes]) ## Darwin AC_CHECK_HEADERS([mach/mach_time.h]) +## Also need to detect Darwin for pubconf +case $host_os in + darwin*) + AC_DEFINE([HAVE_DARWIN], [1], [Define if Darwin or Mac OS X]) + ;; +esac ## Windows case "`uname`" in @@ -2232,19 +2238,12 @@ AC_CACHE_CHECK([if lone colon can be used as an argument], [hdf5_cv_lone_colon], [ echo "int main(int argc, char * argv[]) {return 0;}" > conftest.c - $CC $CFLAGS conftest.c > /dev/null 2> /dev/null -case "`uname`" in - CYGWIN*) - echo "./a.exe :" > conftest.sh - ;; - *) - echo "./a.out :" > conftest.sh - ;; -esac + $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null + echo "./a.out :" > conftest.sh chmod 700 conftest.sh ./conftest.sh 2> conftest.out - rm -f a.out a.exe + rm -f a.out TEST_OUTPUT=`cat conftest.out` if test "X$TEST_OUTPUT" = "X"; then diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index b23c6f8..d7fc67a 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -10,6 +10,15 @@ ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) # Define Sources #----------------------------------------------------------------------------- SET (examples + h5_crtdat + h5_rdwt + h5_crtatt + h5_crtgrp + h5_crtgrpar + h5_crtgrpd + h5_cmprss + h5_extend + h5_subset h5_write h5_read h5_extend_write @@ -51,11 +60,15 @@ IF (BUILD_TESTING) -E remove Attributes.h5 btrees_file.h5 + cmprss.h5 default_file.h5 + dset.h5 + extend.h5 extlink_prefix_source.h5 extlink_source.h5 extlink_target.h5 group.h5 + groups.h5 hard_link.h5 mount1.h5 mount2.h5 @@ -71,6 +84,7 @@ IF (BUILD_TESTING) separate_indexes_file.h5 small_lists_file.h5 soft_link.h5 + subset.h5 unix2win.h5 ) IF (NOT "${last_test}" STREQUAL "") diff --git a/examples/Makefile.am b/examples/Makefile.am index 58f50e7..d8eac95 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -29,7 +29,9 @@ endif # Don't tell automake about them, because if it knew they were programs, # it would try to compile them instead of using the h5cc script. # Use the boilerplate in config/examples.am instead. -EXAMPLE_PROG = h5_write h5_read h5_extend_write h5_chunk_read h5_compound \ +EXAMPLE_PROG = h5_write h5_read h5_extend_write h5_chunk_read h5_compound \ + h5_crtgrpd h5_subset h5_cmprss h5_rdwt h5_crtgrpar h5_extend \ + h5_crtatt h5_crtgrp h5_crtdat \ h5_group h5_select h5_attribute h5_mount h5_reference h5_drivers \ h5_ref2reg h5_extlink h5_elink_unix2win h5_shared_mesg TEST_SCRIPT=testh5cc.sh @@ -37,6 +39,8 @@ TEST_SCRIPT=testh5cc.sh # Install files # List all file that should be installed in examples directory INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \ + h5_crtgrpd.c h5_subset.c h5_cmprss.c h5_rdwt.c h5_crtgrpar.c \ + h5_extend.c h5_crtatt.c h5_crtgrp.c h5_crtdat.c \ h5_compound.c h5_group.c h5_select.c h5_attribute.c h5_mount.c \ h5_reference.c h5_drivers.c h5_extlink.c h5_elink_unix2win.c \ h5_ref2reg.c h5_shared_mesg.c ph5example.c @@ -55,9 +59,14 @@ $(EXTRA_PROG): $(H5CC) $(H5CC) $(H5CCFLAGS) $(CFLAGS) -o $@ $(srcdir)/$@.c; endif -# Two of the examples depend on files created by other examples. +# Some examples depend on files created by other examples. h5_read.chkexe_: h5_write.chkexe_ h5_chunk_read.chkexe_: h5_extend_write.chkexe_ +h5_crtgrpd.chkexe_: h5_crtgrpar.chkexe_ +# h5_rdwt and h5_crtatt both modify the same file created by +# h5_crtdat. Serialize them. +h5_rdwt.chkexe_: h5_crtdat.chkexe_ +h5_crtatt.chkexe_: h5_rdwt.chkexe_ # The external link examples demonstrate how to use paths; they need # directories to be created to do this. @@ -82,6 +91,15 @@ EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples # library above. h5_chunk_read: $(srcdir)/h5_chunk_read.c h5_compound: $(srcdir)/h5_compound.c +h5_crtgrpd: $(srcdir)/h5_crtgrpd.c +h5_subset: $(srcdir)/h5_subset.c +h5_cmprss: $(srcdir)/h5_cmprss.c +h5_rdwt: $(srcdir)/h5_rdwt.c +h5_crtgrpar: $(srcdir)/h5_crtgrpar.c +h5_extend: $(srcdir)/h5_extend.c +h5_crtatt: $(srcdir)/h5_crtatt.c +h5_crtgrp: $(srcdir)/h5_crtgrp.c +h5_crtdat: $(srcdir)/h5_crtdat.c h5_extend_write: $(srcdir)/h5_extend_write.c h5_group: $(srcdir)/h5_group.c h5_write: $(srcdir)/h5_write.c diff --git a/examples/Makefile.in b/examples/Makefile.in index 04c010d..b6dfab5 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -394,7 +394,9 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog $(EXTLINK_DIRS) *.h5 # Don't tell automake about them, because if it knew they were programs, # it would try to compile them instead of using the h5cc script. # Use the boilerplate in config/examples.am instead. -EXAMPLE_PROG = h5_write h5_read h5_extend_write h5_chunk_read h5_compound \ +EXAMPLE_PROG = h5_write h5_read h5_extend_write h5_chunk_read h5_compound \ + h5_crtgrpd h5_subset h5_cmprss h5_rdwt h5_crtgrpar h5_extend \ + h5_crtatt h5_crtgrp h5_crtdat \ h5_group h5_select h5_attribute h5_mount h5_reference h5_drivers \ h5_ref2reg h5_extlink h5_elink_unix2win h5_shared_mesg @@ -403,6 +405,8 @@ TEST_SCRIPT = testh5cc.sh # Install files # List all file that should be installed in examples directory INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \ + h5_crtgrpd.c h5_subset.c h5_cmprss.c h5_rdwt.c h5_crtgrpar.c \ + h5_extend.c h5_crtatt.c h5_crtgrp.c h5_crtdat.c \ h5_compound.c h5_group.c h5_select.c h5_attribute.c h5_mount.c \ h5_reference.c h5_drivers.c h5_extlink.c h5_elink_unix2win.c \ h5_ref2reg.c h5_shared_mesg.c ph5example.c @@ -668,9 +672,14 @@ help: @BUILD_PARALLEL_CONDITIONAL_FALSE@$(EXTRA_PROG): $(H5CC) @BUILD_PARALLEL_CONDITIONAL_FALSE@ $(H5CC) $(H5CCFLAGS) $(CFLAGS) -o $@ $(srcdir)/$@.c; -# Two of the examples depend on files created by other examples. +# Some examples depend on files created by other examples. h5_read.chkexe_: h5_write.chkexe_ h5_chunk_read.chkexe_: h5_extend_write.chkexe_ +h5_crtgrpd.chkexe_: h5_crtgrpar.chkexe_ +# h5_rdwt and h5_crtatt both modify the same file created by +# h5_crtdat. Serialize them. +h5_rdwt.chkexe_: h5_crtdat.chkexe_ +h5_crtatt.chkexe_: h5_rdwt.chkexe_ $(EXTLINK_DIRS): echo $(mkdir_p) $@ @@ -684,6 +693,15 @@ $(EXTLINK_DIRS): # library above. h5_chunk_read: $(srcdir)/h5_chunk_read.c h5_compound: $(srcdir)/h5_compound.c +h5_crtgrpd: $(srcdir)/h5_crtgrpd.c +h5_subset: $(srcdir)/h5_subset.c +h5_cmprss: $(srcdir)/h5_cmprss.c +h5_rdwt: $(srcdir)/h5_rdwt.c +h5_crtgrpar: $(srcdir)/h5_crtgrpar.c +h5_extend: $(srcdir)/h5_extend.c +h5_crtatt: $(srcdir)/h5_crtatt.c +h5_crtgrp: $(srcdir)/h5_crtgrp.c +h5_crtdat: $(srcdir)/h5_crtdat.c h5_extend_write: $(srcdir)/h5_extend_write.c h5_group: $(srcdir)/h5_group.c h5_write: $(srcdir)/h5_write.c diff --git a/examples/h5_cmprss.c b/examples/h5_cmprss.c new file mode 100644 index 0000000..4a2f982 --- /dev/null +++ b/examples/h5_cmprss.c @@ -0,0 +1,125 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This example illustrates how to create a compressed dataset. + * It is used in the HDF5 Tutorial. + */ + +#include "hdf5.h" + +#define FILE "cmprss.h5" +#define RANK 2 +#define DIM0 100 +#define DIM1 20 + +int main () { + + hid_t file_id, dataset_id, dataspace_id; /* identifiers */ + hid_t plist_id; + + size_t nelmts; + unsigned flags, filter_info; + H5Z_filter_t filter_type; + + herr_t status; + hsize_t dims[2]; + hsize_t cdims[2]; + + int idx; + int i,j, numfilt; + int buf[DIM0][DIM1]; + int rbuf [DIM0][DIM1]; + + /* Uncomment these variables to use SZIP compression + unsigned szip_options_mask; + unsigned szip_pixels_per_block; + */ + + /* Create a file. */ + file_id = H5Fcreate (FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + + /* Create dataset "Compressed Data" in the group using absolute name. */ + dims[0] = DIM0; + dims[1] = DIM1; + dataspace_id = H5Screate_simple (RANK, dims, NULL); + + plist_id = H5Pcreate (H5P_DATASET_CREATE); + + /* Dataset must be chunked for compression */ + cdims[0] = 20; + cdims[1] = 20; + status = H5Pset_chunk (plist_id, 2, cdims); + + /* Set ZLIB / DEFLATE Compression using compression level 6. + * To use SZIP Compression comment out these lines. + */ + status = H5Pset_deflate (plist_id, 6); + + /* Uncomment these lines to set SZIP Compression + szip_options_mask = H5_SZIP_NN_OPTION_MASK; + szip_pixels_per_block = 16; + status = H5Pset_szip (plist_id, szip_options_mask, szip_pixels_per_block); + */ + + dataset_id = H5Dcreate2 (file_id, "Compressed_Data", H5T_STD_I32BE, + dataspace_id, H5P_DEFAULT, plist_id, H5P_DEFAULT); + + for (i = 0; i< DIM0; i++) + for (j=0; j) - ADD_TEST (NAME cpp_hl_ex_ptExampleVL COMMAND $) ENDIF (BUILD_TESTING) diff --git a/hl/c++/examples/Makefile.am b/hl/c++/examples/Makefile.am index 5dd5a75..df15257 100644 --- a/hl/c++/examples/Makefile.am +++ b/hl/c++/examples/Makefile.am @@ -23,10 +23,10 @@ include $(top_srcdir)/config/commence.am # These are the programs that 'make all' or 'make prog' will build and # which 'make check' will run. List them in the order they should be run. -EXAMPLE_PROG=ptExampleFL ptExampleVL +EXAMPLE_PROG=ptExampleFL # These are the example files to be installed -INSTALL_FILES=ptExampleFL.cpp ptExampleVL.cpp +INSTALL_FILES=ptExampleFL.cpp INSTALL_SCRIPT_FILES = run-hlc++-ex.sh # Tell conclude.am that these are C++ tests. @@ -45,7 +45,6 @@ $(EXTRA_PROG): $(H5CPP) # will try to build them with the normal C++ compiler, not h5c++. This is # an inelegant way of solving the problem, unfortunately. ptExampleFL: ptExampleFL.cpp -ptExampleVL: ptExampleVL.cpp include $(top_srcdir)/config/examples.am include $(top_srcdir)/config/conclude.am diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in index bd0edf0..f617fec 100644 --- a/hl/c++/examples/Makefile.in +++ b/hl/c++/examples/Makefile.in @@ -390,10 +390,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 # These are the programs that 'make all' or 'make prog' will build and # which 'make check' will run. List them in the order they should be run. -EXAMPLE_PROG = ptExampleFL ptExampleVL +EXAMPLE_PROG = ptExampleFL # These are the example files to be installed -INSTALL_FILES = ptExampleFL.cpp ptExampleVL.cpp +INSTALL_FILES = ptExampleFL.cpp INSTALL_SCRIPT_FILES = run-hlc++-ex.sh # Tell conclude.am that these are C++ tests. @@ -651,7 +651,6 @@ $(EXTRA_PROG): $(H5CPP) # will try to build them with the normal C++ compiler, not h5c++. This is # an inelegant way of solving the problem, unfortunately. ptExampleFL: ptExampleFL.cpp -ptExampleVL: ptExampleVL.cpp # How to create EXAMPLEDIR if it doesn't already exist $(EXAMPLEDIR): diff --git a/hl/c++/examples/ptExampleVL.cpp b/hl/c++/examples/ptExampleVL.cpp deleted file mode 100644 index c3feccd..0000000 --- a/hl/c++/examples/ptExampleVL.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#include "H5PacketTable.h" - -/*------------------------------------------------------------------------- - * Packet Table Variable-Length Example - * - * Example program that creates a packet table and performs - * writes and reads. - * - *------------------------------------------------------------------------- - */ - -int main(void) -{ -#ifdef VLPT_REMOVED - herr_t err; /* Return value from function calls */ - hid_t fileID; /* HDF5 identifier for file */ - hsize_t count; /* Number of records in table */ - int x; /* Loop variable */ - - /* This example has two different sizes of "record": longs and shorts */ - long longBuffer[5]; - short shortBuffer[5]; - - /* Buffer of hvl_t structs to read back records */ - hvl_t readBuffer[5]; - - /* Initialize buffers */ - for(x=0; x<5; x++) - { - longBuffer[x] = -x; - shortBuffer[x] = x; - } - - /* Create a new HDF5 file */ - fileID = H5Fcreate("PTcppexampleVL.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - if(fileID <0) - fprintf(stderr, "Couldn't create file.\n"); - - /* Create a variable-length packet table. */ - VL_PacketTable ptable(fileID, "/examplePacketTable", 1); - - if(! ptable.IsValid()) - fprintf(stderr, "Unable to create packet table."); - - /* Append five packets to the packet table. */ - /* In C++, there is no need to package data into hvl_t structs. */ - err = ptable.AppendPacket( &(longBuffer[0]), sizeof(long)); - if(err < 0) - fprintf(stderr, "Error adding record."); - err = ptable.AppendPacket( &(shortBuffer[1]), sizeof(short)); - if(err < 0) - fprintf(stderr, "Error adding record."); - err = ptable.AppendPacket( &(longBuffer[2]), sizeof(long)); - if(err < 0) - fprintf(stderr, "Error adding record."); - err = ptable.AppendPacket( &(longBuffer[3]), sizeof(long)); - if(err < 0) - fprintf(stderr, "Error adding record."); - err = ptable.AppendPacket( &(shortBuffer[4]), sizeof(short)); - if(err < 0) - fprintf(stderr, "Error adding record."); - - /* Get the number of packets in the packet table. This should be five. */ - count = ptable.GetPacketCount(err); - if(err < 0) - fprintf(stderr, "Error getting packet count."); - - printf("Number of packets in packet table after five appends: %d\n", count); - - /* Initialize packet table's "current record" */ - ptable.ResetIndex(); - - /* Iterate through packets, read each one back */ - for(x=0; x<5; x++) - { - err = ptable.GetNextPacket( &(readBuffer[x]) ); - if(err < 0) - fprintf(stderr, "Error reading record."); - - printf("Packet %d's length is %d.\n", x, readBuffer[x].len); - if(readBuffer[x].len == sizeof(long)) - printf("Packet %d's value is %d.\n", x, *((long *) readBuffer[x].p) ); - else - printf("Packet %d's value is %d.\n", x, *((short *) readBuffer[x].p) ); - } - - /* The packet table will close automatically when its object goes */ - /* out of scope. */ - - err = H5Fclose(fileID); - if( err < 0 ) - fprintf(stderr, "Failed to close file.\n"); - -#endif /* VLPT_REMOVED */ - return 0; -} - diff --git a/hl/c++/examples/run-hlc++-ex.sh.in b/hl/c++/examples/run-hlc++-ex.sh.in index 7742f99..103dd76 100644 --- a/hl/c++/examples/run-hlc++-ex.sh.in +++ b/hl/c++/examples/run-hlc++-ex.sh.in @@ -64,9 +64,7 @@ RunTest() if [ $? -eq 0 ] then if (RunTest ptExampleFL &&\ - rm ptExampleFL &&\ - RunTest ptExampleVL &&\ - rm ptExampleVL); then + rm ptExampleFL); then EXIT_VALUE=${EXIT_SUCCESS} else EXIT_VALUE=${EXIT_FAILURE} diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 4dceeb2..fef6449 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -458,7 +458,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 126 +LT_VERS_REVISION = 130 LT_VERS_AGE = 0 # Include src directory diff --git a/hl/examples/CMakeLists.txt b/hl/examples/CMakeLists.txt index c95322c..f9c8922 100644 --- a/hl/examples/CMakeLists.txt +++ b/hl/examples/CMakeLists.txt @@ -23,7 +23,6 @@ SET (examples ex_lite2 ex_lite3 ptExampleFL - ptExampleVL ex_image1 ex_image2 ex_table_01 diff --git a/hl/examples/Makefile.am b/hl/examples/Makefile.am index 1c51f05..5108c5e 100644 --- a/hl/examples/Makefile.am +++ b/hl/examples/Makefile.am @@ -34,7 +34,7 @@ EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # Don't tell automake about them, because if it knew they were programs, # it would try to compile them instead of using the h5cc script. # Use the boilerplate in config/examples.am instead. -EXAMPLE_PROG = ex_lite1 ex_lite2 ex_lite3 ptExampleFL ptExampleVL \ +EXAMPLE_PROG = ex_lite1 ex_lite2 ex_lite3 ptExampleFL \ ex_image1 ex_image2 \ ex_table_01 ex_table_02 ex_table_03 ex_table_04 \ ex_table_05 ex_table_06 ex_table_07 ex_table_08 \ @@ -43,7 +43,7 @@ EXAMPLE_PROG = ex_lite1 ex_lite2 ex_lite3 ptExampleFL ptExampleVL \ # Install files # List all file that should be installed in examples directory -INSTALL_FILES = ex_lite1.c ex_lite2.c ex_lite3.c ptExampleFL.c ptExampleVL.c \ +INSTALL_FILES = ex_lite1.c ex_lite2.c ex_lite3.c ptExampleFL.c \ ex_image1.c ex_image2.c \ ex_table_01.c ex_table_02.c ex_table_03.c ex_table_04.c \ ex_table_05.c ex_table_06.c ex_table_07.c ex_table_08.c \ @@ -75,7 +75,6 @@ ex_lite1: $(srcdir)/ex_lite1.c ex_lite2: $(srcdir)/ex_lite2.c ex_lite3: $(srcdir)/ex_lite3.c ptExampleFL: $(srcdir)/ptExampleFL.c -ptExampleVL: $(srcdir)/ptExampleVL.c ex_image1: $(srcdir)/ex_image1.c ex_image2: $(srcdir)/ex_image2.c ex_table01: $(srcdir)/ex_table01.c diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in index 1794e38..f6126d4 100644 --- a/hl/examples/Makefile.in +++ b/hl/examples/Makefile.in @@ -398,7 +398,7 @@ EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # Don't tell automake about them, because if it knew they were programs, # it would try to compile them instead of using the h5cc script. # Use the boilerplate in config/examples.am instead. -EXAMPLE_PROG = ex_lite1 ex_lite2 ex_lite3 ptExampleFL ptExampleVL \ +EXAMPLE_PROG = ex_lite1 ex_lite2 ex_lite3 ptExampleFL \ ex_image1 ex_image2 \ ex_table_01 ex_table_02 ex_table_03 ex_table_04 \ ex_table_05 ex_table_06 ex_table_07 ex_table_08 \ @@ -408,7 +408,7 @@ EXAMPLE_PROG = ex_lite1 ex_lite2 ex_lite3 ptExampleFL ptExampleVL \ # Install files # List all file that should be installed in examples directory -INSTALL_FILES = ex_lite1.c ex_lite2.c ex_lite3.c ptExampleFL.c ptExampleVL.c \ +INSTALL_FILES = ex_lite1.c ex_lite2.c ex_lite3.c ptExampleFL.c \ ex_image1.c ex_image2.c \ ex_table_01.c ex_table_02.c ex_table_03.c ex_table_04.c \ ex_table_05.c ex_table_06.c ex_table_07.c ex_table_08.c \ @@ -677,7 +677,6 @@ ex_lite1: $(srcdir)/ex_lite1.c ex_lite2: $(srcdir)/ex_lite2.c ex_lite3: $(srcdir)/ex_lite3.c ptExampleFL: $(srcdir)/ptExampleFL.c -ptExampleVL: $(srcdir)/ptExampleVL.c ex_image1: $(srcdir)/ex_image1.c ex_image2: $(srcdir)/ex_image2.c ex_table01: $(srcdir)/ex_table01.c diff --git a/hl/examples/ptExampleVL.c b/hl/examples/ptExampleVL.c deleted file mode 100644 index 310aa07..0000000 --- a/hl/examples/ptExampleVL.c +++ /dev/null @@ -1,126 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#include "hdf5.h" -#include "hdf5_hl.h" -#include - -/*------------------------------------------------------------------------- - * Packet Table Variable-Length Example - * - * Example program that creates a variable-length packet table and performs - * writes and reads. - * - *------------------------------------------------------------------------- - */ - -int main(void) -{ -#ifdef VLPT_REMOVED - hid_t fid; /* File identifier */ - hid_t ptable; /* Packet table identifier */ - - herr_t err; /* Function return status */ - hsize_t count; /* Number of records in the table */ - int x; /* Loop variable */ - - /* Buffers to hold data */ - hvl_t writeBuffer[5]; - hvl_t readBuffer[5]; - - /* This example has two different sizes of "record": longs and shorts */ - long longBuffer[5]; - short shortBuffer[5]; - - /* Initialize buffers */ - for(x=0; x<5; x++) - { - longBuffer[x] = -x; - shortBuffer[x] = x; - } - - /* Fill the write buffer with a mix of longs and shorts */ - /* We need to supply the length of each record and a pointer to */ - /* the beginning of each record. */ - writeBuffer[0].len = sizeof(long); - writeBuffer[0].p = &(longBuffer[0]); - writeBuffer[1].len = sizeof(short); - writeBuffer[1].p = &(shortBuffer[1]); - writeBuffer[2].len = sizeof(long); - writeBuffer[2].p = &(longBuffer[2]); - writeBuffer[3].len = sizeof(long); - writeBuffer[3].p = &(longBuffer[3]); - writeBuffer[4].len = sizeof(short); - writeBuffer[4].p = &(shortBuffer[4]); - - /* Create a file using default properties */ - fid=H5Fcreate("packet_table_VLexample.h5",H5F_ACC_TRUNC,H5P_DEFAULT,H5P_DEFAULT); - - /* Create a variable-length packet table within the file */ - ptable = H5PTcreate_vl(fid, "Packet Test Dataset", (hsize_t)1); - if(ptable == H5I_INVALID_HID) - goto out; - - /* Write the entire buffer to the packet table */ - err = H5PTappend(ptable, (hsize_t)5, writeBuffer ); - if(err < 0) - goto out; - - /* Get the number of packets in the packet table. This should be five. */ - err = H5PTget_num_packets(ptable, &count); - if(err < 0) - goto out; - - printf("Number of packets in packet table after five appends: %d\n", count); - - /* Read all five packets back */ - err = H5PTread_packets(ptable, (hsize_t)0, (hsize_t)5, readBuffer ); - if(err < 0) - goto out; - - for(x=0; x<5; x++) - { - printf("Packet %d's length is %d\n", x, readBuffer[x].len); - if(readBuffer[x].len == sizeof(long)) - printf("Packet %d's value is %d\n", x, *( (long *) readBuffer[x].p) ); - else - printf("Packet %d's value is %d\n", x, *( (short *) readBuffer[x].p) ); - } - - /* Before we close the packet table, we must free the memory that */ - /* the pointers in readBuffer point to. */ - err = H5PTfree_vlen_readbuff(ptable, (hsize_t)5, readBuffer); - if(err < 0) - goto out; - - /* Close the packet table */ - err = H5PTclose(ptable); - if(err < 0) - goto out; - - /* Close the file */ - H5Fclose(fid); -#endif /* VLPT_REMOVED */ - - return 0; - -#ifdef VLPT_REMOVED - out: /* An error has occurred. Clean up and exit. */ - fprintf(stderr, "An error has occurred!\n"); - H5PTclose(ptable); - H5Fclose(fid); - return -1; -#endif /* VLPT_REMOVED */ -} diff --git a/hl/examples/run-hlc-ex.sh.in b/hl/examples/run-hlc-ex.sh.in index a82e591..a79f67a 100644 --- a/hl/examples/run-hlc-ex.sh.in +++ b/hl/examples/run-hlc-ex.sh.in @@ -76,8 +76,6 @@ then rm ex_lite3 &&\ RunTest ptExampleFL &&\ rm ptExampleFL &&\ - RunTest ptExampleVL &&\ - rm ptExampleVL &&\ RunTest ex_image1 &&\ rm ex_image1 &&\ RunTest ex_image2 &&\ diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 3cd2b38..85faf98 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -474,7 +474,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 126 +LT_VERS_REVISION = 130 LT_VERS_AGE = 0 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \ -I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 84ff1ef..1be8e50 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -457,7 +457,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 126 +LT_VERS_REVISION = 130 LT_VERS_AGE = 0 # This library is our main target. diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt index b22d99e..a85d271 100644 --- a/hl/test/CMakeLists.txt +++ b/hl/test/CMakeLists.txt @@ -81,7 +81,7 @@ HL_ADD_TEST (test_dset_opt "") HL_ADD_TEST (test_image "image8.txt;sepia.pal;earth.pal;image24pixel.txt;image24plane.txt;usa.wri") HL_ADD_TEST (test_lite "dtype_file.txt") HL_ADD_TEST (test_packet "") -HL_ADD_TEST (test_table "test_table_be.hdf5;test_table_cray.hdf5;test_table_le.hdf5") +HL_ADD_TEST (test_table "test_table_be.h5;test_table_cray.h5;test_table_le.h5") # -------------------------------------------------------------------- # This executable is used to generate test files for the test_ds test. diff --git a/hl/test/test_table.c b/hl/test/test_table.c index cdae768..488cbe2 100644 --- a/hl/test/test_table.c +++ b/hl/test/test_table.c @@ -19,9 +19,9 @@ #include "H5srcdir.h" #include "H5TBpublic.h" -#define TEST_FILE_BE "test_table_be.hdf5" -#define TEST_FILE_LE "test_table_le.hdf5" -#define TEST_FILE_CRAY "test_table_cray.hdf5" +#define TEST_FILE_BE "test_table_be.h5" +#define TEST_FILE_LE "test_table_le.h5" +#define TEST_FILE_CRAY "test_table_cray.h5" /*------------------------------------------------------------------------- diff --git a/hl/test/test_table_be.h5 b/hl/test/test_table_be.h5 new file mode 100644 index 0000000..3639695 Binary files /dev/null and b/hl/test/test_table_be.h5 differ diff --git a/hl/test/test_table_be.hdf5 b/hl/test/test_table_be.hdf5 deleted file mode 100644 index 3639695..0000000 Binary files a/hl/test/test_table_be.hdf5 and /dev/null differ diff --git a/hl/test/test_table_cray.h5 b/hl/test/test_table_cray.h5 new file mode 100644 index 0000000..d22dce3 Binary files /dev/null and b/hl/test/test_table_cray.h5 differ diff --git a/hl/test/test_table_cray.hdf5 b/hl/test/test_table_cray.hdf5 deleted file mode 100644 index d22dce3..0000000 Binary files a/hl/test/test_table_cray.hdf5 and /dev/null differ diff --git a/hl/test/test_table_le.h5 b/hl/test/test_table_le.h5 new file mode 100644 index 0000000..6c330fd Binary files /dev/null and b/hl/test/test_table_le.h5 differ diff --git a/hl/test/test_table_le.hdf5 b/hl/test/test_table_le.hdf5 deleted file mode 100644 index 6c330fd..0000000 Binary files a/hl/test/test_table_le.hdf5 and /dev/null differ diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index a2b226a..a5138ee 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.136 currently under development +HDF5 version 1.9.140 currently under development ================================================================================ diff --git a/src/H5FDcore.c b/src/H5FDcore.c index 07f4551..03cc15e 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -17,57 +17,40 @@ * Programmer: Robb Matzke * Tuesday, August 10, 1999 * - * Purpose: A driver which stores the HDF5 data in main memory using - * only the HDF5 public API. This driver is useful for fast - * access to small, temporary hdf5 files. + * Purpose: A driver which stores the HDF5 data in main memory using + * only the HDF5 public API. This driver is useful for fast + * access to small, temporary hdf5 files. */ /* Interface initialization */ #define H5_INTERFACE_INIT_FUNC H5FD_core_init_interface -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5Fprivate.h" /* File access */ -#include "H5FDprivate.h" /* File drivers */ -#include "H5FDcore.h" /* Core file driver */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5Pprivate.h" /* Property lists */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fprivate.h" /* File access */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FDcore.h" /* Core file driver */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Pprivate.h" /* Property lists */ /* The driver identification number, initialized at runtime */ static hid_t H5FD_CORE_g = 0; -/* Since Windows doesn't follow the rest of the world when it comes - * to POSIX I/O types, some typedefs and constants are needed to avoid - * making the code messy with #ifdefs. - * NOTE: These are only used when writing data to the backing store on - * file close. - */ -#ifdef H5_HAVE_WIN32_API -typedef unsigned int h5_core_io_t; -typedef int h5_core_io_ret_t; -static int H5_CORE_MAX_IO_BYTES_g = INT_MAX; -#else -/* Unix, everyone else */ -typedef size_t h5_core_io_t; -typedef ssize_t h5_core_io_ret_t; -static size_t H5_CORE_MAX_IO_BYTES_g = SSIZET_MAX; -#endif /* H5_HAVE_WIN32_API */ - -/* The description of a file belonging to this driver. The `eoa' and `eof' +/* The description of a file belonging to this driver. The 'eoa' and 'eof' * determine the amount of hdf5 address space in use and the high-water mark * of the file (the current size of the underlying memory). */ typedef struct H5FD_core_t { - H5FD_t pub; /*public stuff, must be first */ - char *name; /*for equivalence testing */ - unsigned char *mem; /*the underlying memory */ - haddr_t eoa; /*end of allocated region */ - haddr_t eof; /*current allocated size */ - size_t increment; /*multiples for mem allocation */ - hbool_t backing_store; /*write to file name on flush */ - int fd; /*backing store file descriptor */ + H5FD_t pub; /* public stuff, must be first */ + char *name; /* for equivalence testing */ + unsigned char *mem; /* the underlying memory */ + haddr_t eoa; /* end of allocated region */ + haddr_t eof; /* current allocated size */ + size_t increment; /* multiples for mem allocation */ + hbool_t backing_store; /* write to file name on flush */ + int fd; /* backing store file descriptor */ /* Information for determining uniqueness of a file with a backing store */ #ifndef H5_HAVE_WIN32_API /* On most systems the combination of device and i-node number uniquely @@ -100,44 +83,44 @@ typedef struct H5FD_core_t { HANDLE hFile; /* Native windows file handle */ #endif /* H5_HAVE_WIN32_API */ - hbool_t dirty; /*changes not saved? */ - H5FD_file_image_callbacks_t fi_callbacks; /* file image callbacks */ + hbool_t dirty; /* changes not saved? */ + H5FD_file_image_callbacks_t fi_callbacks; /* file image callbacks */ } H5FD_core_t; /* Driver-specific file access properties */ typedef struct H5FD_core_fapl_t { - size_t increment; /*how much to grow memory */ - hbool_t backing_store; /*write to file name on flush */ + size_t increment; /* how much to grow memory */ + hbool_t backing_store; /* write to file name on flush */ } H5FD_core_fapl_t; /* Allocate memory in multiples of this size by default */ -#define H5FD_CORE_INCREMENT 8192 +#define H5FD_CORE_INCREMENT 8192 /* These macros check for overflow of various quantities. These macros * assume that file_offset_t is signed and haddr_t and size_t are unsigned. * - * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' - * is too large to be represented by the second argument - * of the file seek function. + * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' + * is too large to be represented by the second argument + * of the file seek function. * - * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too - * large to be represented by the `size_t' type. + * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too + * large to be represented by the `size_t' type. * - * REGION_OVERFLOW: Checks whether an address and size pair describe data - * which can be addressed entirely in memory. + * REGION_OVERFLOW: Checks whether an address and size pair describe data + * which can be addressed entirely in memory. */ -#define MAXADDR ((haddr_t)((~(size_t)0)-1)) -#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || (A) > (haddr_t)MAXADDR) -#define SIZE_OVERFLOW(Z) ((Z) > (hsize_t)MAXADDR) -#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ - HADDR_UNDEF==(A)+(Z) || \ - (size_t)((A)+(Z))<(size_t)(A)) +#define MAXADDR ((haddr_t)((~(size_t)0)-1)) +#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || (A) > (haddr_t)MAXADDR) +#define SIZE_OVERFLOW(Z) ((Z) > (hsize_t)MAXADDR) +#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ + HADDR_UNDEF==(A)+(Z) || \ + (size_t)((A)+(Z))<(size_t)(A)) /* Prototypes */ static herr_t H5FD_core_term(void); static void *H5FD_core_fapl_get(H5FD_t *_file); static H5FD_t *H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, - haddr_t maxaddr); + haddr_t maxaddr); static herr_t H5FD_core_close(H5FD_t *_file); static int H5FD_core_cmp(const H5FD_t *_f1, const H5FD_t *_f2); static herr_t H5FD_core_query(const H5FD_t *_f1, unsigned long *flags); @@ -146,61 +129,58 @@ static herr_t H5FD_core_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr); static haddr_t H5FD_core_get_eof(const H5FD_t *_file); static herr_t H5FD_core_get_handle(H5FD_t *_file, hid_t fapl, void** file_handle); static herr_t H5FD_core_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, void *buf); + size_t size, void *buf); static herr_t H5FD_core_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, const void *buf); + size_t size, const void *buf); static herr_t H5FD_core_flush(H5FD_t *_file, hid_t dxpl_id, unsigned closing); static herr_t H5FD_core_truncate(H5FD_t *_file, hid_t dxpl_id, hbool_t closing); static const H5FD_class_t H5FD_core_g = { - "core", /*name */ - MAXADDR, /*maxaddr */ - H5F_CLOSE_WEAK, /*fc_degree */ - H5FD_core_term, /*terminate */ - NULL, /*sb_size */ - NULL, /*sb_encode */ - NULL, /*sb_decode */ - sizeof(H5FD_core_fapl_t), /*fapl_size */ - H5FD_core_fapl_get, /*fapl_get */ - NULL, /*fapl_copy */ - NULL, /*fapl_free */ - 0, /*dxpl_size */ - NULL, /*dxpl_copy */ - NULL, /*dxpl_free */ - H5FD_core_open, /*open */ - H5FD_core_close, /*close */ - H5FD_core_cmp, /*cmp */ - H5FD_core_query, /*query */ - NULL, /*get_type_map */ - NULL, /*alloc */ - NULL, /*free */ - H5FD_core_get_eoa, /*get_eoa */ - H5FD_core_set_eoa, /*set_eoa */ - H5FD_core_get_eof, /*get_eof */ - H5FD_core_get_handle, /*get_handle */ - H5FD_core_read, /*read */ - H5FD_core_write, /*write */ - H5FD_core_flush, /*flush */ - H5FD_core_truncate, /*truncate */ - NULL, /*lock */ - NULL, /*unlock */ - H5FD_FLMAP_DICHOTOMY /*fl_map */ + "core", /* name */ + MAXADDR, /* maxaddr */ + H5F_CLOSE_WEAK, /* fc_degree */ + H5FD_core_term, /* terminate */ + NULL, /* sb_size */ + NULL, /* sb_encode */ + NULL, /* sb_decode */ + sizeof(H5FD_core_fapl_t), /* fapl_size */ + H5FD_core_fapl_get, /* fapl_get */ + NULL, /* fapl_copy */ + NULL, /* fapl_free */ + 0, /* dxpl_size */ + NULL, /* dxpl_copy */ + NULL, /* dxpl_free */ + H5FD_core_open, /* open */ + H5FD_core_close, /* close */ + H5FD_core_cmp, /* cmp */ + H5FD_core_query, /* query */ + NULL, /* get_type_map */ + NULL, /* alloc */ + NULL, /* free */ + H5FD_core_get_eoa, /* get_eoa */ + H5FD_core_set_eoa, /* set_eoa */ + H5FD_core_get_eof, /* get_eof */ + H5FD_core_get_handle, /* get_handle */ + H5FD_core_read, /* read */ + H5FD_core_write, /* write */ + H5FD_core_flush, /* flush */ + H5FD_core_truncate, /* truncate */ + NULL, /* lock */ + NULL, /* unlock */ + H5FD_FLMAP_DICHOTOMY /* fl_map */ }; -/*-------------------------------------------------------------------------- -NAME - H5FD_core_init_interface -- Initialize interface-specific information -USAGE - herr_t H5FD_core_init_interface() - -RETURNS - Non-negative on success/Negative on failure -DESCRIPTION - Initializes any interface-specific data or routines. (Just calls - H5FD_core_init currently). - ---------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------- + * Function: H5FD_core_init_interface + * + * Purpose: Initializes any interface-specific data or routines. + * + * Return: Success: The driver ID for the core driver. + * Failure: Negative. + * + *------------------------------------------------------------------------- + */ static herr_t H5FD_core_init_interface(void) { @@ -211,16 +191,15 @@ H5FD_core_init_interface(void) /*------------------------------------------------------------------------- - * Function: H5FD_core_init - * - * Purpose: Initialize this driver by registering the driver with the - * library. + * Function: H5FD_core_init * - * Return: Success: The driver ID for the core driver. + * Purpose: Initialize this driver by registering the driver with the + * library. * - * Failure: Negative. + * Return: Success: The driver ID for the core driver. + * Failure: Negative. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -228,15 +207,15 @@ H5FD_core_init_interface(void) hid_t H5FD_core_init(void) { - hid_t ret_value=H5FD_CORE_g; /* Return value */ + hid_t ret_value = H5FD_CORE_g; /* Return value */ FUNC_ENTER_NOAPI(FAIL) - if (H5I_VFL!=H5Iget_type(H5FD_CORE_g)) + if(H5I_VFL != H5Iget_type(H5FD_CORE_g)) H5FD_CORE_g = H5FD_register(&H5FD_core_g,sizeof(H5FD_class_t),FALSE); /* Set return value */ - ret_value=H5FD_CORE_g; + ret_value = H5FD_CORE_g; done: FUNC_LEAVE_NOAPI(ret_value) @@ -244,11 +223,11 @@ done: /*--------------------------------------------------------------------------- - * Function: H5FD_core_term + * Function: H5FD_core_term * - * Purpose: Shut down the VFD + * Purpose: Shut down the VFD * - * Returns: Non-negative on success or negative on failure + * Returns: SUCCEED (Can't fail) * * Programmer: Quincey Koziol * Friday, Jan 30, 2004 @@ -261,32 +240,32 @@ H5FD_core_term(void) FUNC_ENTER_NOAPI_NOINIT_NOERR /* Reset VFL ID */ - H5FD_CORE_g=0; + H5FD_CORE_g = 0; FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5FD_core_term() */ /*------------------------------------------------------------------------- - * Function: H5Pset_fapl_core + * Function: H5Pset_fapl_core * - * Purpose: Modify the file access property list to use the H5FD_CORE - * driver defined in this source file. The INCREMENT specifies - * how much to grow the memory each time we need more. + * Purpose: Modify the file access property list to use the H5FD_CORE + * driver defined in this source file. The INCREMENT specifies + * how much to grow the memory each time we need more. * - * Return: Non-negative on success/Negative on failure + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke - * Thursday, February 19, 1998 + * Programmer: Robb Matzke + * Thursday, February 19, 1998 * *------------------------------------------------------------------------- */ herr_t H5Pset_fapl_core(hid_t fapl_id, size_t increment, hbool_t backing_store) { - H5FD_core_fapl_t fa; - H5P_genplist_t *plist; /* Property list pointer */ - herr_t ret_value; + H5FD_core_fapl_t fa; + H5P_genplist_t *plist; /* Property list pointer */ + herr_t ret_value; FUNC_ENTER_API(FAIL) H5TRACE3("e", "izb", fapl_id, increment, backing_store); @@ -306,26 +285,23 @@ done: /*------------------------------------------------------------------------- - * Function: H5Pget_fapl_core + * Function: H5Pget_fapl_core * - * Purpose: Queries properties set by the H5Pset_fapl_core() function. + * Purpose: Queries properties set by the H5Pset_fapl_core() function. * - * Return: Success: Non-negative + * Return: SUCCEED/FAIL * - * Failure: Negative - * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Tuesday, August 10, 1999 * *------------------------------------------------------------------------- */ herr_t -H5Pget_fapl_core(hid_t fapl_id, size_t *increment/*out*/, - hbool_t *backing_store/*out*/) +H5Pget_fapl_core(hid_t fapl_id, size_t *increment /*out*/, hbool_t *backing_store /*out*/) { - H5FD_core_fapl_t *fa; - H5P_genplist_t *plist; /* Property list pointer */ - herr_t ret_value=SUCCEED; /* Return value */ + H5FD_core_fapl_t *fa; + H5P_genplist_t *plist; /* Property list pointer */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) H5TRACE3("e", "ixx", fapl_id, increment, backing_store); @@ -348,15 +324,15 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_fapl_get + * Function: H5FD_core_fapl_get * - * Purpose: Returns a copy of the file access properties. + * Purpose: Returns a copy of the file access properties. * - * Return: Success: Ptr to new file access properties. + * Return: Success: Ptr to new file access properties. * - * Failure: NULL + * Failure: NULL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Friday, August 13, 1999 * *------------------------------------------------------------------------- @@ -364,9 +340,9 @@ done: static void * H5FD_core_fapl_get(H5FD_t *_file) { - H5FD_core_t *file = (H5FD_core_t*)_file; - H5FD_core_fapl_t *fa; - void *ret_value; /* Return value */ + H5FD_core_t *file = (H5FD_core_t*)_file; + H5FD_core_fapl_t *fa; + void *ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -377,7 +353,7 @@ H5FD_core_fapl_get(H5FD_t *_file) fa->backing_store = (hbool_t)(file->fd >= 0); /* Set return value */ - ret_value=fa; + ret_value = fa; done: FUNC_LEAVE_NOAPI(ret_value) @@ -385,36 +361,35 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_open + * Function: H5FD_core_open * - * Purpose: Create memory as an HDF5 file. + * Purpose: Create memory as an HDF5 file. * - * Return: Success: A pointer to a new file data structure. The - * public fields will be initialized by the - * caller, which is always H5FD_open(). + * Return: Success: A pointer to a new file data structure. The + * public fields will be initialized by the + * caller, which is always H5FD_open(). * - * Failure: NULL + * Failure: NULL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ static H5FD_t * -H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, - haddr_t maxaddr) +H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) { - int o_flags; - H5FD_core_t *file=NULL; - H5FD_core_fapl_t *fa=NULL; - H5P_genplist_t *plist; /* Property list pointer */ + int o_flags; + H5FD_core_t *file = NULL; + H5FD_core_fapl_t *fa = NULL; + H5P_genplist_t *plist; /* Property list pointer */ #ifdef H5_HAVE_WIN32_API struct _BY_HANDLE_FILE_INFORMATION fileinfo; #endif - h5_stat_t sb; - int fd=-1; - H5FD_file_image_info_t file_image_info; - H5FD_t *ret_value; + h5_stat_t sb; + int fd = -1; + H5FD_file_image_info_t file_image_info; + H5FD_t *ret_value; FUNC_ENTER_NOAPI_NOINIT @@ -554,20 +529,23 @@ H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, /* Read in existing data, being careful of interrupted system calls, * partial results, and the end of the file. */ + + uint8_t *mem = file->mem; /* memory pointer for writes */ + while(size > 0) { - h5_core_io_t bytes_in = 0; /* # of bytes to read */ - h5_core_io_ret_t bytes_read = -1; /* # of bytes actually read */ + h5_posix_io_t bytes_in = 0; /* # of bytes to read */ + h5_posix_io_ret_t bytes_read = -1; /* # of bytes actually read */ /* Trying to read more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_CORE_MAX_IO_BYTES_g) - bytes_in = H5_CORE_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_core_io_t)size; + bytes_in = (h5_posix_io_t)size; do { - bytes_read = HDread(file->fd, file->mem, bytes_in); + bytes_read = HDread(file->fd, mem, bytes_in); } while(-1 == bytes_read && EINTR == errno); if(-1 == bytes_read) { /* error */ @@ -575,12 +553,13 @@ H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, time_t mytime = HDtime(NULL); HDoff_t myoffset = HDlseek(file->fd, (HDoff_t)0, SEEK_CUR); - HGOTO_ERROR(H5E_IO, H5E_READERROR, NULL, "file read failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', file->mem = %p, size = %lu, offset = %llu", HDctime(&mytime), file->name, file->fd, myerrno, HDstrerror(myerrno), file->mem, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_READERROR, NULL, "file read failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', file->mem = %p, total read size = %llu, bytes this sub-read = %llu, bytes actually read = %llu, offset = %llu", HDctime(&mytime), file->name, file->fd, myerrno, HDstrerror(myerrno), file->mem, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_read, (unsigned long long)myoffset); } /* end if */ HDassert(bytes_read >= 0); HDassert((size_t)bytes_read <= size); + mem += bytes_read; size -= (size_t)bytes_read; } /* end while */ } /* end else */ @@ -596,15 +575,13 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_close - * - * Purpose: Closes the file. + * Function: H5FD_core_close * - * Return: Success: 0 + * Purpose: Closes the file. * - * Failure: -1 + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -612,8 +589,8 @@ done: static herr_t H5FD_core_close(H5FD_t *_file) { - H5FD_core_t *file = (H5FD_core_t*)_file; - herr_t ret_value = SUCCEED; /* Return value */ + H5FD_core_t *file = (H5FD_core_t*)_file; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -644,19 +621,19 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_cmp + * Function: H5FD_core_cmp * - * Purpose: Compares two files belonging to this driver by name. If one - * file doesn't have a name then it is less than the other file. - * If neither file has a name then the comparison is by file - * address. + * Purpose: Compares two files belonging to this driver by name. If one + * file doesn't have a name then it is less than the other file. + * If neither file has a name then the comparison is by file + * address. * - * Return: Success: A value like strcmp() + * Return: Success: A value like strcmp() * - * Failure: never fails (arguments were checked by the - * caller). + * Failure: never fails (arguments were checked by the + * caller). * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -664,9 +641,9 @@ done: static int H5FD_core_cmp(const H5FD_t *_f1, const H5FD_t *_f2) { - const H5FD_core_t *f1 = (const H5FD_core_t*)_f1; - const H5FD_core_t *f2 = (const H5FD_core_t*)_f2; - int ret_value = 0; + const H5FD_core_t *f1 = (const H5FD_core_t*)_f1; + const H5FD_core_t *f2 = (const H5FD_core_t*)_f2; + int ret_value = 0; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -728,15 +705,14 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_query + * Function: H5FD_core_query * - * Purpose: Set the flags that this VFL driver is capable of supporting. + * Purpose: Set the flags that this VFL driver is capable of supporting. * (listed in H5FDpublic.h) * - * Return: Success: non-negative - * Failure: negative + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Tuesday, October 7, 2008 * *------------------------------------------------------------------------- @@ -744,7 +720,7 @@ done: static herr_t H5FD_core_query(const H5FD_t * _file, unsigned long *flags /* out */) { - const H5FD_core_t *file = (const H5FD_core_t*)_file; + const H5FD_core_t *file = (const H5FD_core_t*)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -768,17 +744,15 @@ H5FD_core_query(const H5FD_t * _file, unsigned long *flags /* out */) /*------------------------------------------------------------------------- - * Function: H5FD_core_get_eoa + * Function: H5FD_core_get_eoa * - * Purpose: Gets the end-of-address marker for the file. The EOA marker - * is the first address past the last byte allocated in the - * format address space. + * Purpose: Gets the end-of-address marker for the file. The EOA marker + * is the first address past the last byte allocated in the + * format address space. * - * Return: Success: The end-of-address marker. + * Return: The end-of-address marker. (Can't fail) * - * Failure: HADDR_UNDEF - * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Monday, August 2, 1999 * *------------------------------------------------------------------------- @@ -786,7 +760,7 @@ H5FD_core_query(const H5FD_t * _file, unsigned long *flags /* out */) static haddr_t H5FD_core_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) { - const H5FD_core_t *file = (const H5FD_core_t*)_file; + const H5FD_core_t *file = (const H5FD_core_t*)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -795,17 +769,15 @@ H5FD_core_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) /*------------------------------------------------------------------------- - * Function: H5FD_core_set_eoa - * - * Purpose: Set the end-of-address marker for the file. This function is - * called shortly after an existing HDF5 file is opened in order - * to tell the driver where the end of the HDF5 data is located. + * Function: H5FD_core_set_eoa * - * Return: Success: 0 + * Purpose: Set the end-of-address marker for the file. This function is + * called shortly after an existing HDF5 file is opened in order + * to tell the driver where the end of the HDF5 data is located. * - * Failure: -1 + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -813,8 +785,8 @@ H5FD_core_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) static herr_t H5FD_core_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr) { - H5FD_core_t *file = (H5FD_core_t*)_file; - herr_t ret_value = SUCCEED; /* Return value */ + H5FD_core_t *file = (H5FD_core_t*)_file; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -829,19 +801,17 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_get_eof + * Function: H5FD_core_get_eof * - * Purpose: Returns the end-of-file marker, which is the greater of - * either the size of the underlying memory or the HDF5 - * end-of-address markers. + * Purpose: Returns the end-of-file marker, which is the greater of + * either the size of the underlying memory or the HDF5 + * end-of-address markers. * - * Return: Success: End of file address, the first address past - * the end of the "file", either the memory - * or the HDF5 file. + * Return: End of file address, the first address past + * the end of the "file", either the memory + * or the HDF5 file. (Can't fail) * - * Failure: HADDR_UNDEF - * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -849,7 +819,7 @@ done: static haddr_t H5FD_core_get_eof(const H5FD_t *_file) { - const H5FD_core_t *file = (const H5FD_core_t*)_file; + const H5FD_core_t *file = (const H5FD_core_t*)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -860,9 +830,9 @@ H5FD_core_get_eof(const H5FD_t *_file) /*------------------------------------------------------------------------- * Function: H5FD_core_get_handle * - * Purpose: Returns the file handle of CORE file driver. + * Purpose: Gets the file handle of CORE file driver. * - * Returns: Non-negative if succeed or negative if fails. + * Returns: SUCCEED/FAIL * * Programmer: Raymond Lu * Sept. 16, 2002 @@ -873,7 +843,7 @@ static herr_t H5FD_core_get_handle(H5FD_t *_file, hid_t fapl, void** file_handle) { H5FD_core_t *file = (H5FD_core_t *)_file; /* core VFD info */ - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -918,26 +888,25 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_read + * Function: H5FD_core_read * - * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR - * into buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR + * into buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero. Result is stored in caller-supplied - * buffer BUF. + * Return: Success: SUCCEED. Result is stored in caller-supplied + * buffer BUF. * - * Failure: -1, Contents of buffer BUF are undefined. + * Failure: FAIL, Contents of buffer BUF are undefined. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_core_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr, - size_t size, void *buf/*out*/) + size_t size, void *buf/*out*/) { H5FD_core_t *file = (H5FD_core_t*)_file; herr_t ret_value=SUCCEED; /* Return value */ @@ -984,28 +953,25 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_write + * Function: H5FD_core_write * - * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR - * from buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR + * from buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero + * Return: SUCCEED/FAIL * - * Failure: -1 - * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr, - size_t size, const void *buf) + size_t size, const void *buf) { H5FD_core_t *file = (H5FD_core_t*)_file; - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -1044,7 +1010,7 @@ H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, had } /* end else */ #ifdef H5_CLEAR_MEMORY -HDmemset(x + file->eof, 0, (size_t)(new_eof - file->eof)); + HDmemset(x + file->eof, 0, (size_t)(new_eof - file->eof)); #endif /* H5_CLEAR_MEMORY */ file->mem = x; @@ -1063,49 +1029,46 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_flush - * - * Purpose: Flushes the file to backing store if there is any and if the - * dirty flag is set. + * Function: H5FD_core_flush * - * Return: Success: 0 + * Purpose: Flushes the file to backing store if there is any and if the + * dirty flag is set. * - * Failure: -1 + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Friday, October 15, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_core_flush(H5FD_t *_file, hid_t UNUSED dxpl_id, unsigned UNUSED closing) { - H5FD_core_t *file = (H5FD_core_t*)_file; - herr_t ret_value=SUCCEED; /* Return value */ + H5FD_core_t *file = (H5FD_core_t*)_file; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT /* Write to backing store */ - if (file->dirty && file->fd>=0 && file->backing_store) { + if (file->dirty && file->fd >= 0 && file->backing_store) { haddr_t size = file->eof; unsigned char *ptr = file->mem; - if (0!=HDlseek(file->fd, (off_t)0, SEEK_SET)) + if(0 != HDlseek(file->fd, (off_t)0, SEEK_SET)) HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "error seeking in backing store") while (size > 0) { - h5_core_io_t bytes_in = 0; /* # of bytes to write */ - h5_core_io_ret_t bytes_wrote = -1; /* # of bytes written */ + h5_posix_io_t bytes_in = 0; /* # of bytes to write */ + h5_posix_io_ret_t bytes_wrote = -1; /* # of bytes written */ /* Trying to write more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_CORE_MAX_IO_BYTES_g) - bytes_in = H5_CORE_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_core_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_wrote = HDwrite(file->fd, ptr, bytes_in); @@ -1116,7 +1079,7 @@ H5FD_core_flush(H5FD_t *_file, hid_t UNUSED dxpl_id, unsigned UNUSED closing) time_t mytime = HDtime(NULL); HDoff_t myoffset = HDlseek(file->fd, (HDoff_t)0, SEEK_CUR); - HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "write to backing store failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', ptr = %p, size = %lu, offset = %llu", HDctime(&mytime), file->name, file->fd, myerrno, HDstrerror(myerrno), ptr, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "write to backing store failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', ptr = %p, total write size = %llu, bytes this sub-write = %llu, bytes actually written = %llu, offset = %llu", HDctime(&mytime), file->name, file->fd, myerrno, HDstrerror(myerrno), ptr, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_wrote, (unsigned long long)myoffset); } /* end if */ HDassert(bytes_wrote > 0); @@ -1136,42 +1099,40 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_core_truncate + * Function: H5FD_core_truncate * - * Purpose: Makes sure that the true file size is the same (or larger) - * than the end-of-address. + * Purpose: Makes sure that the true file size is the same (or larger) + * than the end-of-address. * - * Addendum -- 12/2/11 - * For file images opened with the core file driver, it is - * necessary that we avoid reallocating the core file driver's - * buffer uneccessarily. + * Addendum -- 12/2/11 + * For file images opened with the core file driver, it is + * necessary that we avoid reallocating the core file driver's + * buffer uneccessarily. * - * To this end, I have made the following functional changes - * to this function. + * To this end, I have made the following functional changes + * to this function. * - * If we are closing, and there is no backing store, this - * function becomes a no-op. + * If we are closing, and there is no backing store, this + * function becomes a no-op. * - * If we are closing, and there is backing store, we set the - * eof to equal the eoa, and truncate the backing store to - * the new eof + * If we are closing, and there is backing store, we set the + * eof to equal the eoa, and truncate the backing store to + * the new eof * - * If we are not closing, we realloc the buffer to size equal - * to the smallest multiple of the allocation increment that - * equals or exceeds the eoa and set the eof accordingly. - * Note that we no longer truncate the backing store to the - * new eof if applicable. - * -- JRM + * If we are not closing, we realloc the buffer to size equal + * to the smallest multiple of the allocation increment that + * equals or exceeds the eoa and set the eof accordingly. + * Note that we no longer truncate the backing store to the + * new eof if applicable. + * -- JRM * - * Return: Success: Non-negative - * Failure: Negative + * Return: SUCCEED/FAIL * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Tuesday, October 7, 2008 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t closing) { @@ -1262,4 +1223,3 @@ H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t closing) done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD_core_truncate() */ - diff --git a/src/H5FDlog.c b/src/H5FDlog.c index 9f4abd3..81d050d 100644 --- a/src/H5FDlog.c +++ b/src/H5FDlog.c @@ -14,50 +14,35 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Monday, April 17, 2000 * - * Purpose: The POSIX unbuffered file driver using only the HDF5 public - * API and with a few optimizations: the lseek() call is made - * only when the current file position is unknown or needs to be - * changed based on previous I/O through this driver (don't mix - * I/O from this driver with I/O from other parts of the - * application to the same file). - * With custom modifications... + * Purpose: The POSIX unbuffered file driver using only the HDF5 public + * API and with a few optimizations: the lseek() call is made + * only when the current file position is unknown or needs to be + * changed based on previous I/O through this driver (don't mix + * I/O from this driver with I/O from other parts of the + * application to the same file). + * With custom modifications... */ /* Interface initialization */ #define H5_INTERFACE_INIT_FUNC H5FD_log_init_interface -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5Fprivate.h" /* File access */ -#include "H5FDprivate.h" /* File drivers */ -#include "H5FDlog.h" /* Logging file driver */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5Pprivate.h" /* Property lists */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fprivate.h" /* File access */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FDlog.h" /* Logging file driver */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Pprivate.h" /* Property lists */ /* The driver identification number, initialized at runtime */ static hid_t H5FD_LOG_g = 0; -/* Since Windows doesn't follow the rest of the world when it comes - * to POSIX I/O types, some typedefs and constants are needed to avoid - * making the code messy with #ifdefs. - */ -#ifdef H5_HAVE_WIN32_API -typedef unsigned int h5_log_io_t; -typedef int h5_log_io_ret_t; -static int H5_LOG_MAX_IO_BYTES_g = INT_MAX; -#else -/* Unix, everyone else */ -typedef size_t h5_log_io_t; -typedef ssize_t h5_log_io_ret_t; -static size_t H5_LOG_MAX_IO_BYTES_g = SSIZET_MAX; -#endif /* H5_HAVE_WIN32_API */ - /* Driver-specific file access properties */ typedef struct H5FD_log_fapl_t { char *logfile; /* Allocated log file name */ @@ -161,24 +146,23 @@ typedef struct H5FD_log_t { * These macros check for overflow of various quantities. These macros * assume that HDoff_t is signed and haddr_t and size_t are unsigned. * - * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' - * is too large to be represented by the second argument - * of the file seek function. + * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' + * is too large to be represented by the second argument + * of the file seek function. * - * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too - * large to be represented by the `size_t' type. + * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too + * large to be represented by the `size_t' type. * - * REGION_OVERFLOW: Checks whether an address and size pair describe data - * which can be addressed entirely by the second - * argument of the file seek function. + * REGION_OVERFLOW: Checks whether an address and size pair describe data + * which can be addressed entirely by the second + * argument of the file seek function. */ -#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1) -#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || \ - ((A) & ~(haddr_t)MAXADDR)) -#define SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MAXADDR) -#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ - HADDR_UNDEF==(A)+(Z) || \ - (HDoff_t)((A)+(Z))<(HDoff_t)(A)) +#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1) +#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || ((A) & ~(haddr_t)MAXADDR)) +#define SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MAXADDR) +#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ + HADDR_UNDEF==(A)+(Z) || \ + (HDoff_t)((A)+(Z))<(HDoff_t)(A)) /* Prototypes */ static herr_t H5FD_log_term(void); @@ -186,7 +170,7 @@ static void *H5FD_log_fapl_get(H5FD_t *file); static void *H5FD_log_fapl_copy(const void *_old_fa); static herr_t H5FD_log_fapl_free(void *_fa); static H5FD_t *H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, - haddr_t maxaddr); + haddr_t maxaddr); static herr_t H5FD_log_close(H5FD_t *_file); static int H5FD_log_cmp(const H5FD_t *_f1, const H5FD_t *_f2); static herr_t H5FD_log_query(const H5FD_t *_f1, unsigned long *flags); @@ -196,9 +180,9 @@ static herr_t H5FD_log_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr); static haddr_t H5FD_log_get_eof(const H5FD_t *_file); static herr_t H5FD_log_get_handle(H5FD_t *_file, hid_t fapl, void** file_handle); static herr_t H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, void *buf); + size_t size, void *buf); static herr_t H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, const void *buf); + size_t size, const void *buf); static herr_t H5FD_log_truncate(H5FD_t *_file, hid_t dxpl_id, hbool_t closing); static const H5FD_class_t H5FD_log_g = { @@ -240,19 +224,16 @@ static const H5FD_class_t H5FD_log_g = { H5FL_DEFINE_STATIC(H5FD_log_t); -/*-------------------------------------------------------------------------- -NAME - H5FD_log_init_interface -- Initialize interface-specific information -USAGE - herr_t H5FD_log_init_interface() - -RETURNS - Non-negative on success/Negative on failure -DESCRIPTION - Initializes any interface-specific data or routines. (Just calls - H5FD_log_init currently). - ---------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------- + * Function: H5FD_log_init_interface + * + * Purpose: Initializes any interface-specific data or routines. + * + * Return: Success: The driver ID for the log driver. + * Failure: Negative. + * + *------------------------------------------------------------------------- + */ static herr_t H5FD_log_init_interface(void) { @@ -263,15 +244,15 @@ H5FD_log_init_interface(void) /*------------------------------------------------------------------------- - * Function: H5FD_log_init + * Function: H5FD_log_init * - * Purpose: Initialize this driver by registering the driver with the - * library. + * Purpose: Initialize this driver by registering the driver with the + * library. * - * Return: Success: The driver ID for the log driver. - * Failure: Negative. + * Return: Success: The driver ID for the log driver. + * Failure: Negative. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -295,11 +276,11 @@ done: /*--------------------------------------------------------------------------- - * Function: H5FD_log_term + * Function: H5FD_log_term * - * Purpose: Shut down the VFD + * Purpose: Shut down the VFD * - * Returns: Non-negative on success or negative on failure + * Returns: SUCCEED (Can't fail) * * Programmer: Quincey Koziol * Friday, Jan 30, 2004 @@ -319,15 +300,15 @@ H5FD_log_term(void) /*------------------------------------------------------------------------- - * Function: H5Pset_fapl_log + * Function: H5Pset_fapl_log * - * Purpose: Modify the file access property list to use the H5FD_LOG - * driver defined in this source file. + * Purpose: Modify the file access property list to use the H5FD_LOG + * driver defined in this source file. * - * Return: Non-negative on success/Negative on failure + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke - * Thursday, February 19, 1998 + * Programmer: Robb Matzke + * Thursday, February 19, 1998 * *------------------------------------------------------------------------- */ @@ -360,17 +341,17 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_fapl_get + * Function: H5FD_log_fapl_get * - * Purpose: Returns a file access property list which indicates how the - * specified file is being accessed. The return list could be - * used to access another file the same way. + * Purpose: Returns a file access property list which indicates how the + * specified file is being accessed. The return list could be + * used to access another file the same way. * - * Return: Success: Ptr to new file access property list with all - * members copied from the file struct. - * Failure: NULL + * Return: Success: Ptr to new file access property list with all + * members copied from the file struct. + * Failure: NULL * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Thursday, April 20, 2000 * *------------------------------------------------------------------------- @@ -378,8 +359,8 @@ done: static void * H5FD_log_fapl_get(H5FD_t *_file) { - H5FD_log_t *file = (H5FD_log_t *)_file; - void *ret_value; /* Return value */ + H5FD_log_t *file = (H5FD_log_t *)_file; + void *ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -391,14 +372,14 @@ H5FD_log_fapl_get(H5FD_t *_file) /*------------------------------------------------------------------------- - * Function: H5FD_log_fapl_copy + * Function: H5FD_log_fapl_copy * - * Purpose: Copies the log-specific file access properties. + * Purpose: Copies the log-specific file access properties. * - * Return: Success: Ptr to a new property list - * Failure: NULL + * Return: Success: Ptr to a new property list + * Failure: NULL * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Thursday, April 20, 2000 * *------------------------------------------------------------------------- @@ -406,9 +387,9 @@ H5FD_log_fapl_get(H5FD_t *_file) static void * H5FD_log_fapl_copy(const void *_old_fa) { - const H5FD_log_fapl_t *old_fa = (const H5FD_log_fapl_t*)_old_fa; - H5FD_log_fapl_t *new_fa = NULL; /* New FAPL info */ - void *ret_value; /* Return value */ + const H5FD_log_fapl_t *old_fa = (const H5FD_log_fapl_t*)_old_fa; + H5FD_log_fapl_t *new_fa = NULL; /* New FAPL info */ + void *ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -442,14 +423,13 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_fapl_free + * Function: H5FD_log_fapl_free * - * Purpose: Frees the log-specific file access properties. + * Purpose: Frees the log-specific file access properties. * - * Return: Success: 0 - * Failure: -1 + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Thursday, April 20, 2000 * *------------------------------------------------------------------------- @@ -471,16 +451,16 @@ H5FD_log_fapl_free(void *_fa) /*------------------------------------------------------------------------- - * Function: H5FD_log_open + * Function: H5FD_log_open * - * Purpose: Create and/or opens a file as an HDF5 file. + * Purpose: Create and/or opens a file as an HDF5 file. * - * Return: Success: A pointer to a new file data structure. The - * public fields will be initialized by the - * caller, which is always H5FD_open(). - * Failure: NULL + * Return: Success: A pointer to a new file data structure. The + * public fields will be initialized by the + * caller, which is always H5FD_open(). + * Failure: NULL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -488,11 +468,11 @@ H5FD_log_fapl_free(void *_fa) static H5FD_t * H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) { - H5FD_log_t *file = NULL; - H5P_genplist_t *plist; /* Property list */ - H5FD_log_fapl_t *fa; /* File access property list information */ - int fd = (-1); /* File descriptor */ - int o_flags; /* Flags for open() call */ + H5FD_log_t *file = NULL; + H5P_genplist_t *plist; /* Property list */ + H5FD_log_fapl_t *fa; /* File access property list information */ + int fd = -1; /* File descriptor */ + int o_flags; /* Flags for open() call */ #ifdef H5_HAVE_WIN32_API struct _BY_HANDLE_FILE_INFORMATION fileinfo; #endif @@ -501,8 +481,8 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) struct timeval open_timeval_diff; struct timeval stat_timeval_diff; #endif /* H5_HAVE_GETTIMEOFDAY */ - h5_stat_t sb; - H5FD_t *ret_value; /* Return value */ + h5_stat_t sb; + H5FD_t *ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -679,14 +659,14 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_close + * Function: H5FD_log_close * - * Purpose: Closes an HDF5 file. + * Purpose: Closes an HDF5 file. * - * Return: Success: 0 - * Failure: -1, file not closed. + * Return: Success: SUCCEED + * Failure: FAIL, file not closed. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -827,16 +807,16 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_cmp + * Function: H5FD_log_cmp * - * Purpose: Compares two files belonging to this driver using an - * arbitrary (but consistent) ordering. + * Purpose: Compares two files belonging to this driver using an + * arbitrary (but consistent) ordering. * - * Return: Success: A value like strcmp() - * Failure: never fails (arguments were checked by the - * caller). + * Return: Success: A value like strcmp() + * Failure: never fails (arguments were checked by the + * caller). * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -844,8 +824,8 @@ done: static int H5FD_log_cmp(const H5FD_t *_f1, const H5FD_t *_f2) { - const H5FD_log_t *f1 = (const H5FD_log_t *)_f1; - const H5FD_log_t *f2 = (const H5FD_log_t *)_f2; + const H5FD_log_t *f1 = (const H5FD_log_t *)_f1; + const H5FD_log_t *f2 = (const H5FD_log_t *)_f2; int ret_value = 0; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -888,15 +868,14 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_query + * Function: H5FD_log_query * - * Purpose: Set the flags that this VFL driver is capable of supporting. + * Purpose: Set the flags that this VFL driver is capable of supporting. * (listed in H5FDpublic.h) * - * Return: Success: non-negative - * Failure: negative + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Friday, August 25, 2000 * *------------------------------------------------------------------------- @@ -904,7 +883,7 @@ done: static herr_t H5FD_log_query(const H5FD_t *_file, unsigned long *flags /* out */) { - const H5FD_log_t *file = (const H5FD_log_t *)_file; + const H5FD_log_t *file = (const H5FD_log_t *)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -927,19 +906,18 @@ H5FD_log_query(const H5FD_t *_file, unsigned long *flags /* out */) /*------------------------------------------------------------------------- - * Function: H5FD_log_alloc + * Function: H5FD_log_alloc * - * Purpose: Allocate file memory. + * Purpose: Allocate file memory. * - * Return: Success: Address of new memory - * Failure: HADDR_UNDEF + * Return: Success: Address of new memory + * Failure: HADDR_UNDEF * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Monday, April 17, 2000 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static haddr_t H5FD_log_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, hsize_t size) { @@ -981,16 +959,16 @@ H5FD_log_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, hsize_t siz /*------------------------------------------------------------------------- - * Function: H5FD_log_get_eoa + * Function: H5FD_log_get_eoa * - * Purpose: Gets the end-of-address marker for the file. The EOA marker - * is the first address past the last byte allocated in the - * format address space. + * Purpose: Gets the end-of-address marker for the file. The EOA marker + * is the first address past the last byte allocated in the + * format address space. * - * Return: Success: The end-of-address marker. - * Failure: HADDR_UNDEF + * Return: Success: The end-of-address marker. + * Failure: HADDR_UNDEF * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Monday, August 2, 1999 * *------------------------------------------------------------------------- @@ -998,7 +976,7 @@ H5FD_log_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, hsize_t siz static haddr_t H5FD_log_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) { - const H5FD_log_t *file = (const H5FD_log_t *)_file; + const H5FD_log_t *file = (const H5FD_log_t *)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -1007,16 +985,15 @@ H5FD_log_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) /*------------------------------------------------------------------------- - * Function: H5FD_log_set_eoa + * Function: H5FD_log_set_eoa * - * Purpose: Set the end-of-address marker for the file. This function is - * called shortly after an existing HDF5 file is opened in order - * to tell the driver where the end of the HDF5 data is located. + * Purpose: Set the end-of-address marker for the file. This function is + * called shortly after an existing HDF5 file is opened in order + * to tell the driver where the end of the HDF5 data is located. * - * Return: Success: 0 - * Failure: -1 + * Return: SUCCEED (Can't fail) * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -1024,25 +1001,25 @@ H5FD_log_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) static herr_t H5FD_log_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr) { - H5FD_log_t *file = (H5FD_log_t *)_file; + H5FD_log_t *file = (H5FD_log_t *)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR if(file->fa.flags != 0) { - if(H5F_addr_gt(addr, file->eoa) && H5F_addr_gt(addr, 0)) { - hsize_t size = addr - file->eoa; + if(H5F_addr_gt(addr, file->eoa) && H5F_addr_gt(addr, 0)) { + hsize_t size = addr - file->eoa; /* Retain the flavor of the space allocated by the extension */ - if(file->fa.flags & H5FD_LOG_FLAVOR) { - HDassert(addr < file->iosize); - H5_CHECK_OVERFLOW(size, hsize_t, size_t); - HDmemset(&file->flavor[file->eoa], (int)type, (size_t)size); - } /* end if */ + if(file->fa.flags & H5FD_LOG_FLAVOR) { + HDassert(addr < file->iosize); + H5_CHECK_OVERFLOW(size, hsize_t, size_t); + HDmemset(&file->flavor[file->eoa], (int)type, (size_t)size); + } /* end if */ /* Log the extension like an allocation */ - if(file->fa.flags & H5FD_LOG_ALLOC) - HDfprintf(file->logfp, "%10a-%10a (%10Hu bytes) (%s) Allocated\n", file->eoa, addr, size, flavors[type]); - } /* end if */ + if(file->fa.flags & H5FD_LOG_ALLOC) + HDfprintf(file->logfp, "%10a-%10a (%10Hu bytes) (%s) Allocated\n", file->eoa, addr, size, flavors[type]); + } /* end if */ } /* end if */ file->eoa = addr; @@ -1052,18 +1029,18 @@ H5FD_log_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr) /*------------------------------------------------------------------------- - * Function: H5FD_log_get_eof + * Function: H5FD_log_get_eof * - * Purpose: Returns the end-of-file marker, which is the greater of - * either the filesystem end-of-file or the HDF5 end-of-address - * markers. + * Purpose: Returns the end-of-file marker, which is the greater of + * either the filesystem end-of-file or the HDF5 end-of-address + * markers. * - * Return: Success: End of file address, the first address past - * the end of the "file", either the filesystem file - * or the HDF5 file. - * Failure: HADDR_UNDEF + * Return: Success: End of file address, the first address past + * the end of the "file", either the filesystem file + * or the HDF5 file. + * Failure: HADDR_UNDEF * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -1084,14 +1061,13 @@ H5FD_log_get_eof(const H5FD_t *_file) * * Purpose: Returns the file handle of LOG file driver. * - * Returns: Non-negative if succeed or negative if fails. + * Returns: SUCCEED/FAIL * * Programmer: Raymond Lu * Sept. 16, 2002 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_log_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void **file_handle) { @@ -1111,27 +1087,26 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_read + * Function: H5FD_log_read * - * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR - * into buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR + * into buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero. Result is stored in caller-supplied - * buffer BUF. - * Failure: -1, Contents of buffer BUF are undefined. + * Return: Success: SUCCEED. Result is stored in caller-supplied + * buffer BUF. + * Failure: FAIL, Contents of buffer BUF are undefined. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr, - size_t size, void *buf/*out*/) + size_t size, void *buf/*out*/) { - H5FD_log_t *file = (H5FD_log_t *)_file; + H5FD_log_t *file = (H5FD_log_t *)_file; size_t orig_size = size; /* Save the original size for later */ haddr_t orig_addr = addr; #ifdef H5_HAVE_GETTIMEOFDAY @@ -1219,16 +1194,16 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr #endif /* H5_HAVE_GETTIMEOFDAY */ while(size > 0) { - h5_log_io_t bytes_in = 0; /* # of bytes to read */ - h5_log_io_ret_t bytes_read = -1; /* # of bytes actually read */ + h5_posix_io_t bytes_in = 0; /* # of bytes to read */ + h5_posix_io_ret_t bytes_read = -1; /* # of bytes actually read */ /* Trying to read more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_LOG_MAX_IO_BYTES_g) - bytes_in = H5_LOG_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_log_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_read = HDread(file->fd, buf, bytes_in); @@ -1242,7 +1217,7 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr if(file->fa.flags & H5FD_LOG_LOC_READ) HDfprintf(file->logfp, "Error! Reading: %10a-%10a (%10Zu bytes)\n", orig_addr, (orig_addr + orig_size) - 1, orig_size); - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, size = %lu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, total read size = %llu, bytes this sub-read = %llu, bytes actually read = %llu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_read, (unsigned long long)myoffset); } /* end if */ if(0 == bytes_read) { @@ -1313,26 +1288,24 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_write + * Function: H5FD_log_write * - * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR - * from buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR + * from buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero - * Failure: -1 + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr, - size_t size, const void *buf) + size_t size, const void *buf) { - H5FD_log_t *file = (H5FD_log_t *)_file; + H5FD_log_t *file = (H5FD_log_t *)_file; size_t orig_size = size; /* Save the original size for later */ haddr_t orig_addr = addr; #ifdef H5_HAVE_GETTIMEOFDAY @@ -1425,16 +1398,16 @@ H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t add #endif /* H5_HAVE_GETTIMEOFDAY */ while(size > 0) { - h5_log_io_t bytes_in = 0; /* # of bytes to write */ - h5_log_io_ret_t bytes_wrote = -1; /* # of bytes written */ + h5_posix_io_t bytes_in = 0; /* # of bytes to write */ + h5_posix_io_ret_t bytes_wrote = -1; /* # of bytes written */ /* Trying to write more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_LOG_MAX_IO_BYTES_g) - bytes_in = H5_LOG_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_log_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_wrote = HDwrite(file->fd, buf, bytes_in); @@ -1448,7 +1421,7 @@ H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t add if(file->fa.flags & H5FD_LOG_LOC_WRITE) HDfprintf(file->logfp, "Error! Writing: %10a-%10a (%10Zu bytes)\n", orig_addr, (orig_addr + orig_size) - 1, orig_size); - HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, size = %lu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, total write size = %llu, bytes this sub-write = %llu, bytes actually written = %llu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_wrote, (unsigned long long)myoffset); } /* end if */ HDassert(bytes_wrote > 0); @@ -1518,25 +1491,23 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_log_truncate + * Function: H5FD_log_truncate * - * Purpose: Makes sure that the true file size is the same (or larger) - * than the end-of-address. + * Purpose: Makes sure that the true file size is the same (or larger) + * than the end-of-address. * - * Return: Success: Non-negative - * Failure: Negative + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Wednesday, August 4, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_log_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) { - H5FD_log_t *file = (H5FD_log_t *)_file; - herr_t ret_value = SUCCEED; /* Return value */ + H5FD_log_t *file = (H5FD_log_t *)_file; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -1597,4 +1568,3 @@ H5FD_log_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD_log_truncate() */ - diff --git a/src/H5FDmpiposix.c b/src/H5FDmpiposix.c index 092cd24..978494e 100644 --- a/src/H5FDmpiposix.c +++ b/src/H5FDmpiposix.c @@ -71,21 +71,6 @@ */ static hid_t H5FD_MPIPOSIX_g = 0; -/* Since Windows doesn't follow the rest of the world when it comes - * to POSIX I/O types, some typedefs and constants are needed to avoid - * making the code messy with #ifdefs. - */ -#ifdef H5_HAVE_WIN32_API -typedef unsigned int h5_mpiposix_io_t; -typedef int h5_mpiposix_io_ret_t; -static int H5_MPIPOSIX_MAX_IO_BYTES_g = INT_MAX; -#else -/* Unix, everyone else */ -typedef size_t h5_mpiposix_io_t; -typedef ssize_t h5_mpiposix_io_ret_t; -static size_t H5_MPIPOSIX_MAX_IO_BYTES_g = SSIZET_MAX; -#endif /* H5_HAVE_WIN32_API */ - /* * The description of a file belonging to this driver. * The EOF value is only used just after the file is opened in order for the @@ -238,19 +223,16 @@ static const H5FD_class_mpi_t H5FD_mpiposix_g = { }; -/*-------------------------------------------------------------------------- -NAME - H5FD_mpiposix_init_interface -- Initialize interface-specific information -USAGE - herr_t H5FD_mpiposix_init_interface() - -RETURNS - Non-negative on success/Negative on failure -DESCRIPTION - Initializes any interface-specific data or routines. (Just calls - H5FD_mpiposix_init currently). - ---------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------- + * Function: H5FD_mpiposix_init_interface + * + * Purpose: Initializes any interface-specific data or routines. + * + * Return: Success: The driver ID for the mpiposix driver. + * Failure: Negative. + * + *------------------------------------------------------------------------- + */ static herr_t H5FD_mpiposix_init_interface(void) { @@ -1081,16 +1063,16 @@ H5FD_mpiposix_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, */ while(size > 0) { - h5_mpiposix_io_t bytes_in = 0; /* # of bytes to read */ - h5_mpiposix_io_ret_t bytes_read = -1; /* # of bytes actually read */ + h5_posix_io_t bytes_in = 0; /* # of bytes to read */ + h5_posix_io_ret_t bytes_read = -1; /* # of bytes actually read */ /* Trying to read more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_MPIPOSIX_MAX_IO_BYTES_g) - bytes_in = H5_MPIPOSIX_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_mpiposix_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_read = HDread(file->fd, buf, bytes_in); @@ -1101,7 +1083,7 @@ H5FD_mpiposix_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, time_t mytime = HDtime(NULL); HDoff_t myoffset = HDlseek(file->fd, (HDoff_t)0, SEEK_CUR); - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed: time = %s, file descriptor = %d, errno = %d, error message = '%s', buf = %p, size = %lu, offset = %llu", HDctime(&mytime), file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed: time = %s, file descriptor = %d, errno = %d, error message = '%s', buf = %p, total read size = %llu, bytes this sub-read = %llu, bytes actually read = %llu, offset = %llu", HDctime(&mytime), file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_read, (unsigned long long)myoffset); } /* end if */ if(0 == bytes_read) { @@ -1265,16 +1247,16 @@ H5FD_mpiposix_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, */ while(size > 0) { - h5_mpiposix_io_t bytes_in = 0; /* # of bytes to write */ - h5_mpiposix_io_ret_t bytes_wrote = -1; /* # of bytes actually written */ + h5_posix_io_t bytes_in = 0; /* # of bytes to write */ + h5_posix_io_ret_t bytes_wrote = -1; /* # of bytes actually written */ /* Trying to write more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_MPIPOSIX_MAX_IO_BYTES_g) - bytes_in = H5_MPIPOSIX_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_mpiposix_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_wrote = HDwrite(file->fd, buf, bytes_in); @@ -1285,7 +1267,7 @@ H5FD_mpiposix_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, time_t mytime = HDtime(NULL); HDoff_t myoffset = HDlseek(file->fd, (HDoff_t)0, SEEK_CUR); - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file write failed: time = %s, file descriptor = %d, errno = %d, error message = '%s', buf = %p, size = %lu, offset = %llu", HDctime(&mytime), file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file write failed: time = %s, file descriptor = %d, errno = %d, error message = '%s', buf = %p, total write size = %llu, bytes this sub-write = %llu, bytes actually written = %llu, offset = %llu", HDctime(&mytime), file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_wrote, (unsigned long long)myoffset); } /* end if */ if(0 == bytes_wrote) { diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index 241609d..ca5127e 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -17,56 +17,41 @@ * Programmer: Robb Matzke * Thursday, July 29, 1999 * - * Purpose: The POSIX unbuffered file driver using only the HDF5 public - * API and with a few optimizations: the lseek() call is made - * only when the current file position is unknown or needs to be - * changed based on previous I/O through this driver (don't mix - * I/O from this driver with I/O from other parts of the - * application to the same file). + * Purpose: The POSIX unbuffered file driver using only the HDF5 public + * API and with a few optimizations: the lseek() call is made + * only when the current file position is unknown or needs to be + * changed based on previous I/O through this driver (don't mix + * I/O from this driver with I/O from other parts of the + * application to the same file). */ /* Interface initialization */ -#define H5_INTERFACE_INIT_FUNC H5FD_sec2_init_interface +#define H5_INTERFACE_INIT_FUNC H5FD_sec2_init_interface -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5Fprivate.h" /* File access */ -#include "H5FDprivate.h" /* File drivers */ -#include "H5FDsec2.h" /* Sec2 file driver */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5Pprivate.h" /* Property lists */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fprivate.h" /* File access */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FDsec2.h" /* Sec2 file driver */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Pprivate.h" /* Property lists */ /* The driver identification number, initialized at runtime */ static hid_t H5FD_SEC2_g = 0; -/* Since Windows doesn't follow the rest of the world when it comes - * to POSIX I/O types, some typedefs and constants are needed to avoid - * making the code messy with #ifdefs. - */ -#ifdef H5_HAVE_WIN32_API -typedef unsigned int h5_sec2_io_t; -typedef int h5_sec2_io_ret_t; -static int H5_SEC2_MAX_IO_BYTES_g = INT_MAX; -#else -/* Unix, everyone else */ -typedef size_t h5_sec2_io_t; -typedef ssize_t h5_sec2_io_ret_t; -static size_t H5_SEC2_MAX_IO_BYTES_g = SSIZET_MAX; -#endif /* H5_HAVE_WIN32_API */ - -/* The description of a file belonging to this driver. The `eoa' and `eof' +/* The description of a file belonging to this driver. The 'eoa' and 'eof' * determine the amount of hdf5 address space in use and the high-water mark * of the file (the current size of the underlying filesystem file). The - * `pos' value is used to eliminate file position updates when they would be a + * 'pos' value is used to eliminate file position updates when they would be a * no-op. Unfortunately we've found systems that use separate file position * indicators for reading and writing so the lseek can only be eliminated if * the current operation is the same as the previous operation. When opening - * a file the `eof' will be set to the current file size, `eoa' will be set - * to zero, `pos' will be set to H5F_ADDR_UNDEF (as it is when an error - * occurs), and `op' will be set to H5F_OP_UNKNOWN. + * a file the 'eof' will be set to the current file size, `eoa' will be set + * to zero, 'pos' will be set to H5F_ADDR_UNDEF (as it is when an error + * occurs), and 'op' will be set to H5F_OP_UNKNOWN. */ typedef struct H5FD_sec2_t { H5FD_t pub; /* public stuff, must be first */ @@ -123,29 +108,28 @@ typedef struct H5FD_sec2_t { * These macros check for overflow of various quantities. These macros * assume that HDoff_t is signed and haddr_t and size_t are unsigned. * - * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' - * is too large to be represented by the second argument - * of the file seek function. + * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' + * is too large to be represented by the second argument + * of the file seek function. * - * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too - * large to be represented by the `size_t' type. + * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too + * large to be represented by the `size_t' type. * - * REGION_OVERFLOW: Checks whether an address and size pair describe data - * which can be addressed entirely by the second - * argument of the file seek function. + * REGION_OVERFLOW: Checks whether an address and size pair describe data + * which can be addressed entirely by the second + * argument of the file seek function. */ #define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1) -#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || \ - ((A) & ~(haddr_t)MAXADDR)) -#define SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MAXADDR) -#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ - HADDR_UNDEF==(A)+(Z) || \ - (HDoff_t)((A)+(Z))<(HDoff_t)(A)) +#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || ((A) & ~(haddr_t)MAXADDR)) +#define SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MAXADDR) +#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ + HADDR_UNDEF==(A)+(Z) || \ + (HDoff_t)((A)+(Z))<(HDoff_t)(A)) /* Prototypes */ static herr_t H5FD_sec2_term(void); static H5FD_t *H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, - haddr_t maxaddr); + haddr_t maxaddr); static herr_t H5FD_sec2_close(H5FD_t *_file); static int H5FD_sec2_cmp(const H5FD_t *_f1, const H5FD_t *_f2); static herr_t H5FD_sec2_query(const H5FD_t *_f1, unsigned long *flags); @@ -154,63 +138,60 @@ static herr_t H5FD_sec2_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr); static haddr_t H5FD_sec2_get_eof(const H5FD_t *_file); static herr_t H5FD_sec2_get_handle(H5FD_t *_file, hid_t fapl, void** file_handle); static herr_t H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, void *buf); + size_t size, void *buf); static herr_t H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, const void *buf); + size_t size, const void *buf); static herr_t H5FD_sec2_truncate(H5FD_t *_file, hid_t dxpl_id, hbool_t closing); static const H5FD_class_t H5FD_sec2_g = { - "sec2", /*name */ - MAXADDR, /*maxaddr */ - H5F_CLOSE_WEAK, /* fc_degree */ - H5FD_sec2_term, /*terminate */ - NULL, /*sb_size */ - NULL, /*sb_encode */ - NULL, /*sb_decode */ - 0, /*fapl_size */ - NULL, /*fapl_get */ - NULL, /*fapl_copy */ - NULL, /*fapl_free */ - 0, /*dxpl_size */ - NULL, /*dxpl_copy */ - NULL, /*dxpl_free */ - H5FD_sec2_open, /*open */ - H5FD_sec2_close, /*close */ - H5FD_sec2_cmp, /*cmp */ - H5FD_sec2_query, /*query */ - NULL, /*get_type_map */ - NULL, /*alloc */ - NULL, /*free */ - H5FD_sec2_get_eoa, /*get_eoa */ - H5FD_sec2_set_eoa, /*set_eoa */ - H5FD_sec2_get_eof, /*get_eof */ - H5FD_sec2_get_handle, /*get_handle */ - H5FD_sec2_read, /*read */ - H5FD_sec2_write, /*write */ - NULL, /*flush */ - H5FD_sec2_truncate, /*truncate */ - NULL, /*lock */ - NULL, /*unlock */ - H5FD_FLMAP_DICHOTOMY /*fl_map */ + "sec2", /* name */ + MAXADDR, /* maxaddr */ + H5F_CLOSE_WEAK, /* fc_degree */ + H5FD_sec2_term, /* terminate */ + NULL, /* sb_size */ + NULL, /* sb_encode */ + NULL, /* sb_decode */ + 0, /* fapl_size */ + NULL, /* fapl_get */ + NULL, /* fapl_copy */ + NULL, /* fapl_free */ + 0, /* dxpl_size */ + NULL, /* dxpl_copy */ + NULL, /* dxpl_free */ + H5FD_sec2_open, /* open */ + H5FD_sec2_close, /* close */ + H5FD_sec2_cmp, /* cmp */ + H5FD_sec2_query, /* query */ + NULL, /* get_type_map */ + NULL, /* alloc */ + NULL, /* free */ + H5FD_sec2_get_eoa, /* get_eoa */ + H5FD_sec2_set_eoa, /* set_eoa */ + H5FD_sec2_get_eof, /* get_eof */ + H5FD_sec2_get_handle, /* get_handle */ + H5FD_sec2_read, /* read */ + H5FD_sec2_write, /* write */ + NULL, /* flush */ + H5FD_sec2_truncate, /* truncate */ + NULL, /* lock */ + NULL, /* unlock */ + H5FD_FLMAP_DICHOTOMY /* fl_map */ }; /* Declare a free list to manage the H5FD_sec2_t struct */ H5FL_DEFINE_STATIC(H5FD_sec2_t); -/*-------------------------------------------------------------------------- -NAME - H5FD_sec2_init_interface -- Initialize interface-specific information -USAGE - herr_t H5FD_sec2_init_interface() - -RETURNS - Non-negative on success/Negative on failure -DESCRIPTION - Initializes any interface-specific data or routines. (Just calls - H5FD_sec2_init currently). - ---------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------- + * Function: H5FD_sec2_init_interface + * + * Purpose: Initializes any interface-specific data or routines. + * + * Return: Success: The driver ID for the sec2 driver. + * Failure: Negative + * + *------------------------------------------------------------------------- + */ static herr_t H5FD_sec2_init_interface(void) { @@ -221,15 +202,15 @@ H5FD_sec2_init_interface(void) /*------------------------------------------------------------------------- - * Function: H5FD_sec2_init + * Function: H5FD_sec2_init * - * Purpose: Initialize this driver by registering the driver with the - * library. + * Purpose: Initialize this driver by registering the driver with the + * library. * - * Return: Success: The driver ID for the sec2 driver. - * Failure: Negative. + * Return: Success: The driver ID for the sec2 driver. + * Failure: Negative * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -253,11 +234,11 @@ done: /*--------------------------------------------------------------------------- - * Function: H5FD_sec2_term + * Function: H5FD_sec2_term * - * Purpose: Shut down the VFD + * Purpose: Shut down the VFD * - * Returns: Non-negative on success or negative on failure + * Returns: SUCCEED (Can't fail) * * Programmer: Quincey Koziol * Friday, Jan 30, 2004 @@ -277,16 +258,16 @@ H5FD_sec2_term(void) /*------------------------------------------------------------------------- - * Function: H5Pset_fapl_sec2 + * Function: H5Pset_fapl_sec2 * - * Purpose: Modify the file access property list to use the H5FD_SEC2 - * driver defined in this source file. There are no driver - * specific properties. + * Purpose: Modify the file access property list to use the H5FD_SEC2 + * driver defined in this source file. There are no driver + * specific properties. * - * Return: Non-negative on success/Negative on failure + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke - * Thursday, February 19, 1998 + * Programmer: Robb Matzke + * Thursday, February 19, 1998 * *------------------------------------------------------------------------- */ @@ -310,16 +291,16 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_open + * Function: H5FD_sec2_open * - * Purpose: Create and/or opens a file as an HDF5 file. + * Purpose: Create and/or opens a file as an HDF5 file. * - * Return: Success: A pointer to a new file data structure. The - * public fields will be initialized by the - * caller, which is always H5FD_open(). - * Failure: NULL + * Return: Success: A pointer to a new file data structure. The + * public fields will be initialized by the + * caller, which is always H5FD_open(). + * Failure: NULL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -435,14 +416,14 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_close + * Function: H5FD_sec2_close * - * Purpose: Closes an HDF5 file. + * Purpose: Closes an HDF5 file. * - * Return: Success: 0 - * Failure: -1, file not closed. + * Return: Success: SUCCEED + * Failure: FAIL, file not closed. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -450,8 +431,8 @@ done: static herr_t H5FD_sec2_close(H5FD_t *_file) { - H5FD_sec2_t *file = (H5FD_sec2_t *)_file; - herr_t ret_value = SUCCEED; /* Return value */ + H5FD_sec2_t *file = (H5FD_sec2_t *)_file; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -471,16 +452,16 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_cmp + * Function: H5FD_sec2_cmp * - * Purpose: Compares two files belonging to this driver using an - * arbitrary (but consistent) ordering. + * Purpose: Compares two files belonging to this driver using an + * arbitrary (but consistent) ordering. * - * Return: Success: A value like strcmp() - * Failure: never fails (arguments were checked by the - * caller). + * Return: Success: A value like strcmp() + * Failure: never fails (arguments were checked by the + * caller). * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -488,8 +469,8 @@ done: static int H5FD_sec2_cmp(const H5FD_t *_f1, const H5FD_t *_f2) { - const H5FD_sec2_t *f1 = (const H5FD_sec2_t *)_f1; - const H5FD_sec2_t *f2 = (const H5FD_sec2_t *)_f2; + const H5FD_sec2_t *f1 = (const H5FD_sec2_t *)_f1; + const H5FD_sec2_t *f2 = (const H5FD_sec2_t *)_f2; int ret_value = 0; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -530,15 +511,14 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_query + * Function: H5FD_sec2_query * - * Purpose: Set the flags that this VFL driver is capable of supporting. + * Purpose: Set the flags that this VFL driver is capable of supporting. * (listed in H5FDpublic.h) * - * Return: Success: non-negative - * Failure: negative + * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol + * Programmer: Quincey Koziol * Friday, August 25, 2000 * *------------------------------------------------------------------------- @@ -569,21 +549,19 @@ H5FD_sec2_query(const H5FD_t *_file, unsigned long *flags /* out */) /*------------------------------------------------------------------------- - * Function: H5FD_sec2_get_eoa + * Function: H5FD_sec2_get_eoa * - * Purpose: Gets the end-of-address marker for the file. The EOA marker - * is the first address past the last byte allocated in the - * format address space. + * Purpose: Gets the end-of-address marker for the file. The EOA marker + * is the first address past the last byte allocated in the + * format address space. * - * Return: Success: The end-of-address marker. - * Failure: HADDR_UNDEF + * Return: The end-of-address marker. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Monday, August 2, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static haddr_t H5FD_sec2_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) { @@ -596,21 +574,19 @@ H5FD_sec2_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) /*------------------------------------------------------------------------- - * Function: H5FD_sec2_set_eoa + * Function: H5FD_sec2_set_eoa * - * Purpose: Set the end-of-address marker for the file. This function is - * called shortly after an existing HDF5 file is opened in order - * to tell the driver where the end of the HDF5 data is located. + * Purpose: Set the end-of-address marker for the file. This function is + * called shortly after an existing HDF5 file is opened in order + * to tell the driver where the end of the HDF5 data is located. * - * Return: Success: 0 - * Failure: -1 + * Return: SUCCEED (Can't fail) * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_sec2_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr) { @@ -625,18 +601,16 @@ H5FD_sec2_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr) /*------------------------------------------------------------------------- - * Function: H5FD_sec2_get_eof + * Function: H5FD_sec2_get_eof * - * Purpose: Returns the end-of-file marker, which is the greater of - * either the filesystem end-of-file or the HDF5 end-of-address - * markers. + * Purpose: Returns the end-of-file marker, which is the greater of + * either the filesystem end-of-file or the HDF5 end-of-address + * markers. * - * Return: Success: End of file address, the first address past - * the end of the "file", either the filesystem file - * or the HDF5 file. - * Failure: HADDR_UNDEF + * Return: End of file address, the first address past the end of the + * "file", either the filesystem file or the HDF5 file. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- @@ -644,7 +618,7 @@ H5FD_sec2_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr) static haddr_t H5FD_sec2_get_eof(const H5FD_t *_file) { - const H5FD_sec2_t *file = (const H5FD_sec2_t *)_file; + const H5FD_sec2_t *file = (const H5FD_sec2_t *)_file; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -657,14 +631,13 @@ H5FD_sec2_get_eof(const H5FD_t *_file) * * Purpose: Returns the file handle of sec2 file driver. * - * Returns: Non-negative if succeed or negative if fails. + * Returns: SUCCEED/FAIL * * Programmer: Raymond Lu * Sept. 16, 2002 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_sec2_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void **file_handle) { @@ -684,22 +657,21 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_read + * Function: H5FD_sec2_read * - * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR - * into buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR + * into buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero. Result is stored in caller-supplied - * buffer BUF. - * Failure: -1, Contents of buffer BUF are undefined. + * Return: Success: SUCCEED. Result is stored in caller-supplied + * buffer BUF. + * Failure: FAIL, Contents of buffer BUF are undefined. * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr, size_t size, void *buf /*out*/) @@ -732,16 +704,16 @@ H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, */ while(size > 0) { - h5_sec2_io_t bytes_in = 0; /* # of bytes to read */ - h5_sec2_io_ret_t bytes_read = -1; /* # of bytes actually read */ + h5_posix_io_t bytes_in = 0; /* # of bytes to read */ + h5_posix_io_ret_t bytes_read = -1; /* # of bytes actually read */ /* Trying to read more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_SEC2_MAX_IO_BYTES_g) - bytes_in = H5_SEC2_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_sec2_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_read = HDread(file->fd, buf, bytes_in); @@ -752,7 +724,7 @@ H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, time_t mytime = HDtime(NULL); HDoff_t myoffset = HDlseek(file->fd, (HDoff_t)0, SEEK_CUR); - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, size = %lu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, total read size = %llu, bytes this sub-read = %llu, bytes actually read = %llu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_read, (unsigned long long)myoffset); } /* end if */ if(0 == bytes_read) { @@ -785,21 +757,19 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_write + * Function: H5FD_sec2_write * - * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR - * from buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR + * from buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero - * Failure: -1 + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Thursday, July 29, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr, size_t size, const void *buf) @@ -831,16 +801,16 @@ H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, */ while(size > 0) { - h5_sec2_io_t bytes_in = 0; /* # of bytes to write */ - h5_sec2_io_ret_t bytes_wrote = -1; /* # of bytes written */ + h5_posix_io_t bytes_in = 0; /* # of bytes to write */ + h5_posix_io_ret_t bytes_wrote = -1; /* # of bytes written */ /* Trying to write more bytes than the return type can handle is * undefined behavior in POSIX. */ - if(size > H5_SEC2_MAX_IO_BYTES_g) - bytes_in = H5_SEC2_MAX_IO_BYTES_g; + if(size > H5_POSIX_MAX_IO_BYTES) + bytes_in = H5_POSIX_MAX_IO_BYTES; else - bytes_in = (h5_sec2_io_t)size; + bytes_in = (h5_posix_io_t)size; do { bytes_wrote = HDwrite(file->fd, buf, bytes_in); @@ -851,7 +821,7 @@ H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, time_t mytime = HDtime(NULL); HDoff_t myoffset = HDlseek(file->fd, (HDoff_t)0, SEEK_CUR); - HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, size = %lu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long)size, (unsigned long long)myoffset); + HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed: time = %s, filename = '%s', file descriptor = %d, errno = %d, error message = '%s', buf = %p, total write size = %llu, bytes this sub-write = %llu, bytes actually written = %llu, offset = %llu", HDctime(&mytime), file->filename, file->fd, myerrno, HDstrerror(myerrno), buf, (unsigned long long)size, (unsigned long long)bytes_in, (unsigned long long)bytes_wrote, (unsigned long long)myoffset); } /* end if */ HDassert(bytes_wrote > 0); @@ -880,20 +850,18 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_sec2_truncate + * Function: H5FD_sec2_truncate * - * Purpose: Makes sure that the true file size is the same (or larger) - * than the end-of-address. + * Purpose: Makes sure that the true file size is the same (or larger) + * than the end-of-address. * - * Return: Success: Non-negative - * Failure: Negative + * Return: SUCCEED/FAIL * - * Programmer: Robb Matzke + * Programmer: Robb Matzke * Wednesday, August 4, 1999 * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_sec2_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) { @@ -954,4 +922,3 @@ H5FD_sec2_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD_sec2_truncate() */ - diff --git a/src/H5config.h.in b/src/H5config.h.in index fdbcd49..0308b38 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -74,6 +74,9 @@ /* Define if the function stack tracing code is to be compiled in */ #undef HAVE_CODESTACK +/* Define if Darwin or Mac OS X */ +#undef HAVE_DARWIN + /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. */ #undef HAVE_DECL_TZNAME diff --git a/src/H5private.h b/src/H5private.h index 7dfd349..bff4e59 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -430,6 +430,24 @@ #define HSSIZET_MIN (~(HSSIZET_MAX)) /* + * Types and max sizes for POSIX I/O. + * OS X (Darwin) is odd since the max I/O size does not match the types. + */ +#if defined(H5_HAVE_WIN32_API) +# define h5_posix_io_t unsigned int +# define h5_posix_io_ret_t int +# define H5_POSIX_MAX_IO_BYTES INT_MAX +#elif defined(H5_HAVE_DARWIN) +# define h5_posix_io_t size_t +# define h5_posix_io_ret_t ssize_t +# define H5_POSIX_MAX_IO_BYTES INT_MAX +#else +# define h5_posix_io_t size_t +# define h5_posix_io_ret_t ssize_t +# define H5_POSIX_MAX_IO_BYTES SSIZET_MAX +#endif + +/* * A macro to portably increment enumerated types. */ #ifndef H5_INC_ENUM diff --git a/src/H5public.h b/src/H5public.h index 5d9e3ef..24f49a7 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -75,10 +75,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 136 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 140 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.136" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.140" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index fc89be5..e4a29e7 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -522,7 +522,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 126 +LT_VERS_REVISION = 130 LT_VERS_AGE = 0 H5detect_CFLAGS = -g $(AM_CFLAGS) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5551fa3..8d40c25 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -148,8 +148,8 @@ SET (HDF5_REFERENCE_TEST_FILES tarrold.h5 tbad_msg_count.h5 tbogus.h5 - test_filters_be.hdf5 - test_filters_le.hdf5 + test_filters_be.h5 + test_filters_le.h5 th5s.h5 tlayouto.h5 tmtimen.h5 diff --git a/test/dsets.c b/test/dsets.c index 3b081da..838ef48 100644 --- a/test/dsets.c +++ b/test/dsets.c @@ -6571,7 +6571,7 @@ test_filters_endianess(void) hid_t dsid=-1; /* dataset ID */ hid_t sid=-1; /* dataspace ID */ hid_t dcpl=-1; /* dataset creation property list ID */ - const char *data_file = H5_get_srcdir_filename("test_filters_le.hdf5"); /* Corrected test file name */ + const char *data_file = H5_get_srcdir_filename("test_filters_le.h5"); /* Corrected test file name */ TESTING("filters with big-endian/little-endian data"); @@ -6596,7 +6596,7 @@ test_filters_endianess(void) */ /* compose the name of the file to open, using the srcdir, if appropriate */ - data_file = H5_get_srcdir_filename("test_filters_be.hdf5"); /* Corrected test file name */ + data_file = H5_get_srcdir_filename("test_filters_be.h5"); /* Corrected test file name */ /* open */ if((fid = H5Fopen(data_file, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR diff --git a/test/test_filters_be.h5 b/test/test_filters_be.h5 new file mode 100644 index 0000000..c4c127b Binary files /dev/null and b/test/test_filters_be.h5 differ diff --git a/test/test_filters_be.hdf5 b/test/test_filters_be.hdf5 deleted file mode 100644 index c4c127b..0000000 Binary files a/test/test_filters_be.hdf5 and /dev/null differ diff --git a/test/test_filters_le.h5 b/test/test_filters_le.h5 new file mode 100644 index 0000000..ff8b846 Binary files /dev/null and b/test/test_filters_le.h5 differ diff --git a/test/test_filters_le.hdf5 b/test/test_filters_le.hdf5 deleted file mode 100644 index ff8b846..0000000 Binary files a/test/test_filters_le.hdf5 and /dev/null differ diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index f0d6962..22662ba 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -502,7 +502,7 @@ #define H5_PACKAGE_NAME "HDF5" /* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.136" +#define H5_PACKAGE_STRING "HDF5 1.9.140" /* Define to the one symbol short name of this package. */ #define H5_PACKAGE_TARNAME "hdf5" @@ -511,7 +511,7 @@ #define H5_PACKAGE_URL "" /* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.136" +#define H5_PACKAGE_VERSION "1.9.140" /* Width for printf() for type `long long' or `__int64', use `ll' */ #define H5_PRINTF_LL_WIDTH "ll" @@ -674,7 +674,7 @@ /* #undef H5_USING_MEMCHECKER */ /* Version number of package */ -#define H5_VERSION "1.9.136" +#define H5_VERSION "1.9.140" /* Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed */ -- cgit v0.12 From 8eab66f667f61e076809e849bd03098569dd6cfc Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Wed, 9 Jan 2013 16:07:27 -0500 Subject: [svn-r23148] I added the macro condition check for the test of direct chunk write as it uses compress2 function. Tested on koala. --- hl/test/test_dset_opt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c index 79f7eda..a585292 100644 --- a/hl/test/test_dset_opt.c +++ b/hl/test/test_dset_opt.c @@ -1115,7 +1115,9 @@ int main( void ) goto error; /* Test direct chunk write */ +#ifdef H5_HAVE_FILTER_DEFLATE nerrors += test_direct_chunk_write(file_id); +#endif /* H5_HAVE_FILTER_DEFLATE */ nerrors += test_skip_compress_write1(file_id); nerrors += test_skip_compress_write2(file_id); nerrors += test_data_conv(file_id); -- cgit v0.12 From 7b895e1dd8c9fdba0d94bf4100a1be77ee05a64b Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Thu, 10 Jan 2013 11:04:09 -0500 Subject: [svn-r23149] I put more condition checks with macro when DEFLATE filter is disabled. Tested on koala. --- hl/test/test_dset_opt.c | 7 ++++--- perform/dectris_perf.c | 20 +++++++++++++++++++- test/dectris_tst.c | 18 +++++++++++++++++- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c index a585292..9a0ffb0 100644 --- a/hl/test/test_dset_opt.c +++ b/hl/test/test_dset_opt.c @@ -90,6 +90,7 @@ const H5Z_class2_t H5Z_BOGUS2[1] = {{ * *------------------------------------------------------------------------- */ +#ifdef H5_HAVE_FILTER_DEFLATE static int test_direct_chunk_write (hid_t file) { @@ -332,6 +333,7 @@ error: return 1; } +#endif /* H5_HAVE_FILTER_DEFLATE */ /*------------------------------------------------------------------------- * Function: test_skip_compress_write1 @@ -499,7 +501,7 @@ filter_bogus1(unsigned int flags, size_t UNUSED cd_nelmts, size_t *buf_size, void **buf) { int *int_ptr=(int *)*buf; /* Pointer to the data values */ - size_t buf_left=*buf_size; /* Amount of data buffer left to process */ + ssize_t buf_left=*buf_size; /* Amount of data buffer left to process */ if(flags & H5Z_FLAG_REVERSE) { /* read */ /* Substract the "add on" value to all the data values */ @@ -536,7 +538,7 @@ filter_bogus2(unsigned int flags, size_t UNUSED cd_nelmts, size_t *buf_size, void **buf) { int *int_ptr=(int *)*buf; /* Pointer to the data values */ - size_t buf_left=*buf_size; /* Amount of data buffer left to process */ + ssize_t buf_left=*buf_size; /* Amount of data buffer left to process */ if(flags & H5Z_FLAG_REVERSE) { /* read */ /* Substract the "add on" value to all the data values */ @@ -948,7 +950,6 @@ test_invalid_parameters(hid_t file) unsigned filter_mask = 0; int direct_buf[CHUNK_NX][CHUNK_NY]; - int check_chunk[CHUNK_NX][CHUNK_NY]; hsize_t offset[2] = {0, 0}; size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); int aggression = 9; /* Compression aggression setting */ diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c index 71f818a..509fd24 100644 --- a/perform/dectris_perf.c +++ b/perform/dectris_perf.c @@ -20,7 +20,6 @@ #include "hdf5.h" #include "H5private.h" -#include #include #include #include @@ -29,7 +28,17 @@ #include #include #include + +#ifdef H5_HAVE_FILTER_DEFLATE + +#if defined(H5_HAVE_ZLIB_H) && !defined(H5_ZLIB_HEADER) +# define H5_ZLIB_HEADER "zlib.h" +#endif +#if defined(H5_ZLIB_HEADER) +# include H5_ZLIB_HEADER /* "zlib.h" */ +#endif + const char *FILENAME[] = { "dectris_perf", "unix.raw", @@ -637,3 +646,12 @@ main (void) h5_cleanup(FILENAME, fapl); return 0; } +#else +int +main (void) +{ + printf("Skipped because DEFLATE filter is disabled"); + return 0; +} +#endif /* H5_HAVE_FILTER_DEFLATE */ + diff --git a/test/dectris_tst.c b/test/dectris_tst.c index ec1c23a..2dd6354 100644 --- a/test/dectris_tst.c +++ b/test/dectris_tst.c @@ -19,10 +19,18 @@ */ #include "h5test.h" -#include #include #include +#ifdef H5_HAVE_FILTER_DEFLATE + +#if defined(H5_HAVE_ZLIB_H) && !defined(H5_ZLIB_HEADER) +# define H5_ZLIB_HEADER "zlib.h" +#endif +#if defined(H5_ZLIB_HEADER) +# include H5_ZLIB_HEADER /* "zlib.h" */ +#endif + const char *FILENAME[] = { "dectris", NULL @@ -308,3 +316,11 @@ error: return 1; } +#else +int +main(void) +{ + TESTING("Skipped because DEFLATE filter is disabled"); + return 0; +} +#endif /* H5_HAVE_FILTER_DEFLATE */ -- cgit v0.12 From 3a7b11863a86b07935707b2896a5fd9f7eebf9a3 Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Fri, 11 Jan 2013 16:34:31 -0500 Subject: [svn-r23152] I took out the obsolete function H5PSIwrite_chunk and its related test and performance test. Tested on koala. --- MANIFEST | 2 - perform/Makefile.am | 5 +- perform/Makefile.in | 32 +-- perform/dectris_perf.c | 657 ------------------------------------------------- src/H5Dchunk.c | 2 +- src/H5Dio.c | 88 ------- test/Makefile.am | 4 +- test/Makefile.in | 52 ++-- test/dectris_tst.c | 326 ------------------------ 9 files changed, 37 insertions(+), 1131 deletions(-) delete mode 100644 perform/dectris_perf.c delete mode 100644 test/dectris_tst.c diff --git a/MANIFEST b/MANIFEST index 943afd7..ab6bef2 100644 --- a/MANIFEST +++ b/MANIFEST @@ -505,7 +505,6 @@ ./perform/build_h5perf_alone.sh ./perform/build_h5perf_serial_alone.sh ./perform/chunk.c -./perform/dectris_perf.c ./perform/gen_report.pl ./perform/iopipe.c ./perform/overhead.c @@ -951,7 +950,6 @@ ./test/corrupt_stab_msg.h5 ./test/cross_read.c ./test/dangle.c -./test/dectris_tst.c ./test/deflate.h5 ./test/dsets.c ./test/dt_arith.c diff --git a/perform/Makefile.am b/perform/Makefile.am index 6fe32cf..988ec63 100644 --- a/perform/Makefile.am +++ b/perform/Makefile.am @@ -52,12 +52,12 @@ if BUILD_PARALLEL_CONDITIONAL TEST_PROG_PARA=h5perf perf endif # Serial test programs. -TEST_PROG = dectris_perf iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) +TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) # check_PROGRAMS will be built but not installed. Do not any executable # that is in bin_PROGRAMS already. Otherwise, it will be removed twice in # "make clean" and some systems, e.g., AIX, do not like it. -check_PROGRAMS= dectris_perf iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf +check_PROGRAMS= iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf h5perf_SOURCES=pio_perf.c pio_engine.c pio_timer.c h5perf_serial_SOURCES=sio_perf.c sio_engine.c sio_timer.c @@ -72,7 +72,6 @@ LDADD=$(LIBHDF5) h5perf_LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) h5perf_serial_LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_LDADD=$(LIBH5TEST) $(LIBHDF5) -dectris_perf_LDADD=$(LIBH5TEST) $(LIBHDF5) iopipe_LDADD=$(LIBH5TEST) $(LIBHDF5) zip_perf_LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_meta_LDADD=$(LIBH5TEST) $(LIBHDF5) diff --git a/perform/Makefile.in b/perform/Makefile.in index a66a5a8..230469c 100644 --- a/perform/Makefile.in +++ b/perform/Makefile.in @@ -76,9 +76,9 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ @BUILD_PARALLEL_CONDITIONAL_TRUE@bin_PROGRAMS = \ @BUILD_PARALLEL_CONDITIONAL_TRUE@ h5perf_serial$(EXEEXT) \ @BUILD_PARALLEL_CONDITIONAL_TRUE@ h5perf$(EXEEXT) -check_PROGRAMS = dectris_perf$(EXEEXT) iopipe$(EXEEXT) chunk$(EXEEXT) \ - overhead$(EXEEXT) zip_perf$(EXEEXT) perf_meta$(EXEEXT) \ - $(am__EXEEXT_2) perf$(EXEEXT) +check_PROGRAMS = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ + zip_perf$(EXEEXT) perf_meta$(EXEEXT) $(am__EXEEXT_2) \ + perf$(EXEEXT) TESTS = $(am__EXEEXT_3) subdir = perform ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -101,9 +101,6 @@ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -dectris_perf_SOURCES = dectris_perf.c -dectris_perf_OBJECTS = dectris_perf.$(OBJEXT) -dectris_perf_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) am_h5perf_OBJECTS = pio_perf.$(OBJEXT) pio_engine.$(OBJEXT) \ pio_timer.$(OBJEXT) h5perf_OBJECTS = $(am_h5perf_OBJECTS) @@ -168,12 +165,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = chunk.c dectris_perf.c $(h5perf_SOURCES) \ - $(h5perf_serial_SOURCES) iopipe.c overhead.c perf.c \ - perf_meta.c zip_perf.c -DIST_SOURCES = chunk.c dectris_perf.c $(h5perf_SOURCES) \ - $(h5perf_serial_SOURCES) iopipe.c overhead.c perf.c \ - perf_meta.c zip_perf.c +SOURCES = chunk.c $(h5perf_SOURCES) $(h5perf_serial_SOURCES) iopipe.c \ + overhead.c perf.c perf_meta.c zip_perf.c +DIST_SOURCES = chunk.c $(h5perf_SOURCES) $(h5perf_serial_SOURCES) \ + iopipe.c overhead.c perf.c perf_meta.c zip_perf.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -185,9 +180,9 @@ am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = $(am__tty_colors_dummy) -am__EXEEXT_3 = dectris_perf$(EXEEXT) iopipe$(EXEEXT) chunk$(EXEEXT) \ - overhead$(EXEEXT) zip_perf$(EXEEXT) perf_meta$(EXEEXT) \ - h5perf_serial$(EXEEXT) $(am__EXEEXT_2) +am__EXEEXT_3 = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ + zip_perf$(EXEEXT) perf_meta$(EXEEXT) h5perf_serial$(EXEEXT) \ + $(am__EXEEXT_2) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@ @@ -485,7 +480,7 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # Parallel test programs. @BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf perf # Serial test programs. -TEST_PROG = dectris_perf iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) +TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) h5perf_SOURCES = pio_perf.c pio_engine.c pio_timer.c h5perf_serial_SOURCES = sio_perf.c sio_engine.c sio_timer.c @@ -499,7 +494,6 @@ LDADD = $(LIBHDF5) h5perf_LDADD = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) h5perf_serial_LDADD = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_LDADD = $(LIBH5TEST) $(LIBHDF5) -dectris_perf_LDADD = $(LIBH5TEST) $(LIBHDF5) iopipe_LDADD = $(LIBH5TEST) $(LIBHDF5) zip_perf_LDADD = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5) perf_meta_LDADD = $(LIBH5TEST) $(LIBHDF5) @@ -616,9 +610,6 @@ clean-checkPROGRAMS: chunk$(EXEEXT): $(chunk_OBJECTS) $(chunk_DEPENDENCIES) $(EXTRA_chunk_DEPENDENCIES) @rm -f chunk$(EXEEXT) $(AM_V_CCLD)$(LINK) $(chunk_OBJECTS) $(chunk_LDADD) $(LIBS) -dectris_perf$(EXEEXT): $(dectris_perf_OBJECTS) $(dectris_perf_DEPENDENCIES) $(EXTRA_dectris_perf_DEPENDENCIES) - @rm -f dectris_perf$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(dectris_perf_OBJECTS) $(dectris_perf_LDADD) $(LIBS) h5perf$(EXEEXT): $(h5perf_OBJECTS) $(h5perf_DEPENDENCIES) $(EXTRA_h5perf_DEPENDENCIES) @rm -f h5perf$(EXEEXT) $(AM_V_CCLD)$(h5perf_LINK) $(h5perf_OBJECTS) $(h5perf_LDADD) $(LIBS) @@ -648,7 +639,6 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chunk.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/overhead.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf.Po@am__quote@ diff --git a/perform/dectris_perf.c b/perform/dectris_perf.c deleted file mode 100644 index 509fd24..0000000 --- a/perform/dectris_perf.c +++ /dev/null @@ -1,657 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * This test is for the DECTRIS project to the H5PSIdirect_write function - * - */ - -#include "hdf5.h" -#include "H5private.h" -#include -#include -#include -#include -#include -#include -#include -#include - - -#ifdef H5_HAVE_FILTER_DEFLATE - -#if defined(H5_HAVE_ZLIB_H) && !defined(H5_ZLIB_HEADER) -# define H5_ZLIB_HEADER "zlib.h" -#endif -#if defined(H5_ZLIB_HEADER) -# include H5_ZLIB_HEADER /* "zlib.h" */ -#endif - -const char *FILENAME[] = { - "dectris_perf", - "unix.raw", - NULL -}; - -/* - * Print the current location on the standard output stream. - */ -#define FUNC __func__ -#define AT() printf (" at %s:%d in %s()...\n", \ - __FILE__, __LINE__, FUNC); -#define H5_FAILED() {puts("*FAILED*");fflush(stdout);} -#define TEST_ERROR {H5_FAILED(); AT(); goto error;} -#define TESTING(WHAT) {printf("Testing %-62s",WHAT); fflush(stdout);} -#define PASSED() {puts(" PASSED");fflush(stdout);} - -#define DIRECT_UNCOMPRESSED_DSET "direct_uncompressed_dset" -#define DIRECT_COMPRESSED_DSET "direct_compressed_dset" -#define REG_COMPRESSED_DSET "reg_compressed_dset" -#define REG_NO_COMPRESS_DSET "reg_no_compress_dset" -#define RANK 3 -#define NX 100 -#define NY 1000 -#define NZ 250 -#define CHUNK_NX 1 -#define CHUNK_NY 1000 -#define CHUNK_NZ 250 - -#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) -char filename[1024]; -unsigned int *outbuf[NX]; -size_t data_size[NX]; -double total_size = 0.0; -unsigned int *direct_buf[NX]; -double MB = 1048576.0; - -/*-------------------------------------------------- - * Function to report IO rate - *-------------------------------------------------- - */ -void reportTime(struct timeval start, double mbytes) -{ - struct timeval timeval_stop,timeval_diff; - - /*end timing*/ - gettimeofday(&timeval_stop,NULL); - - /* Calculate the elapsed gettimeofday time */ - timeval_diff.tv_usec=timeval_stop.tv_usec-start.tv_usec; - timeval_diff.tv_sec=timeval_stop.tv_sec-start.tv_sec; - - if(timeval_diff.tv_usec<0) { - timeval_diff.tv_usec+=1000000; - timeval_diff.tv_sec--; - } /* end if */ - - printf("MBytes/second: %lf\n", (double)mbytes/((double)timeval_diff.tv_sec+((double)timeval_diff.tv_usec/(double)1000000.0))); -} - -/*-------------------------------------------------- - * Create file, datasets, and initialize data - *-------------------------------------------------- - */ -int create_file(hid_t fapl_id) -{ - hid_t file; /* handles */ - hid_t fapl; - hid_t cparms; - hid_t dataspace, dataset; - hsize_t dims[RANK] = {NX, NY, NZ}; - hsize_t chunk_dims[RANK] ={CHUNK_NX, CHUNK_NY, CHUNK_NZ}; - unsigned int aggression = 9; /* Compression aggression setting */ - int ret; - int i, j, n; - - int flag; - int unix_file; - - unsigned int *p; - size_t buf_size = CHUNK_NY*CHUNK_NZ*sizeof(unsigned int); - - const Bytef *z_src; - Bytef *z_dst; /*destination buffer */ - uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); - uLong z_src_nbytes = (uLong)buf_size; - - TESTING("Create a file and dataset"); - - /* - * Create the data space with unlimited dimensions. - */ - if((dataspace = H5Screate_simple(RANK, dims, NULL)) < 0) - TEST_ERROR; - - /* - * Create a new file. If file exists its contents will be overwritten. - */ - if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) - TEST_ERROR; - - /* - * Modify dataset creation properties, i.e. enable chunking and compression - */ - if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) - TEST_ERROR; - - if(H5Pset_chunk( cparms, RANK, chunk_dims) < 0) - TEST_ERROR; - - /* - * Create a new dataset within the file using cparms - * creation properties. - */ - if((dataset = H5Dcreate2(file, DIRECT_UNCOMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - if((dataset = H5Dcreate2(file, REG_NO_COMPRESS_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - /* Set compression */ - if(H5Pset_deflate( cparms, aggression) < 0) - TEST_ERROR; - - if((dataset = H5Dcreate2(file, DIRECT_COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - - if((dataset = H5Dcreate2(file, REG_COMPRESSED_DSET, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - if(H5Dclose(dataset) < 0) - TEST_ERROR; - - if(H5Fclose(file) < 0) - TEST_ERROR; - - if(H5Sclose(dataspace) < 0) - TEST_ERROR; - - if(H5Pclose(cparms) < 0) - TEST_ERROR; - - /* create a unix file*/ - flag = O_CREAT|O_TRUNC|O_WRONLY; - - if ((unix_file=open(FILENAME[1],flag,S_IRWXU))== -1) - TEST_ERROR; - - if (close(unix_file) < 0) - { - printf(" unable to close the file\n"); - TEST_ERROR; - } - - - /* Initialize data for chunks */ - for(i = 0; i < NX; i++) { - p = direct_buf[i] = (unsigned int*)malloc(CHUNK_NY*CHUNK_NZ*sizeof(unsigned int)); - - for(j=0; j < CHUNK_NY*CHUNK_NZ; j++, p++) - *p = rand() % 65000; - - z_src = (const Bytef*)direct_buf[i]; - - z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); - /* Allocate output (compressed) buffer */ - outbuf[i] = (unsigned int*)malloc((size_t)z_dst_nbytes); - z_dst = (Bytef *)outbuf[i]; - - /* Perform compression from the source to the destination buffer */ - ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); - - data_size[i] = (size_t)z_dst_nbytes; - total_size += data_size[i]; - - /* Check for various zlib errors */ - if(Z_BUF_ERROR == ret) { - fprintf(stderr, "overflow"); - TEST_ERROR; - } else if(Z_MEM_ERROR == ret) { - fprintf(stderr, "deflate memory error"); - TEST_ERROR; - } else if(Z_OK != ret) { - fprintf(stderr, "other deflate error"); - TEST_ERROR; - } - } - - - PASSED(); - -error: - H5E_BEGIN_TRY { - H5Dclose(dataset); - H5Sclose(dataspace); - H5Pclose(cparms); - H5Fclose(file); - } H5E_END_TRY; - return 1; -} - -/*-------------------------------------------------- - * Benchmark the performance of the new function - * with precompressed data. - *-------------------------------------------------- - */ -int -test_direct_write_uncompressed_data(hid_t fapl_id) -{ - hid_t file; /* handles */ - hid_t dataspace, dataset; - hid_t dxpl; - herr_t status; - int i; - - unsigned filter_mask = 0; - hsize_t offset[RANK] = {0, 0, 0}; - - struct timeval timeval_start; - - TESTING("H5PSIdirect_write for uncompressed data"); - - if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) - TEST_ERROR; - - /* Start the timer */ - gettimeofday(&timeval_start,NULL); - - /* Reopen the file and dataset */ - if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) - TEST_ERROR; - - if((dataset = H5Dopen2(file, DIRECT_UNCOMPRESSED_DSET, H5P_DEFAULT)) < 0) - TEST_ERROR; - - - /* Write the compressed chunk data repeatedly to cover all the chunks in the - * dataset, using the direct writing function. */ - for(i=0; ioloc.file) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file") - - if(H5D_CHUNKED != dset->shared->layout.type) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset") - - /* Get the default dataset transfer property list if the user didn't provide one */ - if(H5P_DEFAULT == dxpl_id) - dxpl_id= H5P_DATASET_XFER_DEFAULT; - else - if(TRUE != H5P_isa_class(dxpl_id, H5P_DATASET_XFER)) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not xfer parms") - - if(!offset) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no offset") - - if(!data_size) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no data size") - - if(!buf) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no data buffer") - - ndims = (int)H5S_GET_EXTENT_NDIMS(dset->shared->space); - if(NULL == (dims = (hsize_t *)H5MM_malloc(ndims*sizeof(hsize_t)))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for dimensions") - - if(NULL == (internal_offset = (hsize_t *)H5MM_malloc((ndims+1)*sizeof(hsize_t)))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for offset") - - if(H5S_get_simple_extent_dims(dset->shared->space, dims, NULL) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") - - for(i=0; i dims[i]) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") - - /* Make sure the offset fall right on a chunk's boundary */ - if(offset[i] % dset->shared->layout.u.chunk.dim[i]) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary") - - internal_offset[i] = offset[i]; - } - - /* The library's chunking code requires the offset terminates with a zero */ - internal_offset[ndims] = 0; - - /* write raw data */ - if(H5D__chunk_direct_write(dset, dxpl_id, filters, internal_offset, data_size, buf) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write chunk directly") - -done: - if(dims) - H5MM_free(dims); - - FUNC_LEAVE_API(ret_value) -} /* end H5PSIdirect_write() */ - - -/*------------------------------------------------------------------------- * Function: H5D__read * * Purpose: Reads (part of) a DATASET into application memory BUF. See diff --git a/test/Makefile.am b/test/Makefile.am index 64088b8..fd40ad6 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -39,7 +39,7 @@ SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) links_env$(EXEEXT) TEST_PROG= testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ - big mtime fillval mount flush1 flush2 app_ref enum dectris_tst \ + big mtime fillval mount flush1 flush2 app_ref enum \ set_extent ttsafe enc_dec_plist enc_dec_plist_with_endianess\ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -128,7 +128,7 @@ CHECK_CLEANFILES+=accum.h5 cmpd_dset.h5 compact_dataset.h5 dataset.h5 dset_offse earray.h5 efc[0-5].h5 log_vfd_out.log \ new_multi_file_v16-r.h5 new_multi_file_v16-s.h5 \ split_get_file_image_test-m.h5 split_get_file_image_test-r.h5 \ - file_image_core_test.h5.copy dectris.h5 + file_image_core_test.h5.copy # Sources for testhdf5 executable testhdf5_SOURCES=testhdf5.c tarray.c tattr.c tchecksum.c tconfig.c tfile.c \ diff --git a/test/Makefile.in b/test/Makefile.in index 09b4f93..6f39794 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -107,8 +107,8 @@ am__EXEEXT_1 = testhdf5$(EXEEXT) lheap$(EXEEXT) ohdr$(EXEEXT) \ external$(EXEEXT) efc$(EXEEXT) objcopy$(EXEEXT) links$(EXEEXT) \ unlink$(EXEEXT) big$(EXEEXT) mtime$(EXEEXT) fillval$(EXEEXT) \ mount$(EXEEXT) flush1$(EXEEXT) flush2$(EXEEXT) \ - app_ref$(EXEEXT) enum$(EXEEXT) dectris_tst$(EXEEXT) \ - set_extent$(EXEEXT) ttsafe$(EXEEXT) enc_dec_plist$(EXEEXT) \ + app_ref$(EXEEXT) enum$(EXEEXT) set_extent$(EXEEXT) \ + ttsafe$(EXEEXT) enc_dec_plist$(EXEEXT) \ enc_dec_plist_with_endianess$(EXEEXT) getname$(EXEEXT) \ vfd$(EXEEXT) ntypes$(EXEEXT) dangle$(EXEEXT) \ dtransform$(EXEEXT) reserved$(EXEEXT) cross_read$(EXEEXT) \ @@ -168,10 +168,6 @@ dangle_SOURCES = dangle.c dangle_OBJECTS = dangle.$(OBJEXT) dangle_LDADD = $(LDADD) dangle_DEPENDENCIES = libh5test.la $(LIBHDF5) -dectris_tst_SOURCES = dectris_tst.c -dectris_tst_OBJECTS = dectris_tst.$(OBJEXT) -dectris_tst_LDADD = $(LDADD) -dectris_tst_DEPENDENCIES = libh5test.la $(LIBHDF5) dsets_SOURCES = dsets.c dsets_OBJECTS = dsets.$(OBJEXT) dsets_LDADD = $(LDADD) @@ -471,7 +467,23 @@ am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ btree2.c cache.c cache_api.c cache_tagging.c cmpd_dset.c \ - cross_read.c dangle.c dectris_tst.c dsets.c dt_arith.c \ + cross_read.c dangle.c dsets.c dt_arith.c dtransform.c dtypes.c \ + earray.c efc.c enc_dec_plist.c enc_dec_plist_with_endianess.c \ + enum.c err_compat.c error_test.c extend.c external.c farray.c \ + fheap.c file_image.c fillval.c filter_fail.c flush1.c flush2.c \ + freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ + gen_deflate.c gen_file_image.c gen_filespace.c gen_filters.c \ + gen_new_array.c gen_new_fill.c gen_new_group.c gen_new_mtime.c \ + gen_new_super.c gen_noencoder.c gen_nullspace.c gen_plist.c \ + gen_sizes_lheap.c gen_specmetaread.c gen_udlinks.c getname.c \ + gheap.c hyperslab.c istore.c lheap.c links.c links_env.c mf.c \ + mount.c mtime.c ntypes.c objcopy.c ohdr.c pool.c reserved.c \ + set_extent.c space_overflow.c stab.c tcheck_version.c \ + $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c \ + vfd.c +DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ + bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ + cmpd_dset.c cross_read.c dangle.c dsets.c dt_arith.c \ dtransform.c dtypes.c earray.c efc.c enc_dec_plist.c \ enc_dec_plist_with_endianess.c enum.c err_compat.c \ error_test.c extend.c external.c farray.c fheap.c file_image.c \ @@ -485,23 +497,6 @@ SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c bittests.c \ ntypes.c objcopy.c ohdr.c pool.c reserved.c set_extent.c \ space_overflow.c stab.c tcheck_version.c $(testhdf5_SOURCES) \ testmeta.c $(ttsafe_SOURCES) unlink.c vfd.c -DIST_SOURCES = $(libh5test_la_SOURCES) accum.c app_ref.c big.c \ - bittests.c btree2.c cache.c cache_api.c cache_tagging.c \ - cmpd_dset.c cross_read.c dangle.c dectris_tst.c dsets.c \ - dt_arith.c dtransform.c dtypes.c earray.c efc.c \ - enc_dec_plist.c enc_dec_plist_with_endianess.c enum.c \ - err_compat.c error_test.c extend.c external.c farray.c fheap.c \ - file_image.c fillval.c filter_fail.c flush1.c flush2.c \ - freespace.c gen_bad_ohdr.c gen_bogus.c gen_cross.c \ - gen_deflate.c gen_file_image.c gen_filespace.c gen_filters.c \ - gen_new_array.c gen_new_fill.c gen_new_group.c gen_new_mtime.c \ - gen_new_super.c gen_noencoder.c gen_nullspace.c gen_plist.c \ - gen_sizes_lheap.c gen_specmetaread.c gen_udlinks.c getname.c \ - gheap.c hyperslab.c istore.c lheap.c links.c links_env.c mf.c \ - mount.c mtime.c ntypes.c objcopy.c ohdr.c pool.c reserved.c \ - set_extent.c space_overflow.c stab.c tcheck_version.c \ - $(testhdf5_SOURCES) testmeta.c $(ttsafe_SOURCES) unlink.c \ - vfd.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -822,8 +817,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog accum.h5 cmpd_dset.h5 \ objcopy_ext.dat trefer1.h5 trefer2.h5 app_ref.h5 farray.h5 \ earray.h5 efc[0-5].h5 log_vfd_out.log new_multi_file_v16-r.h5 \ new_multi_file_v16-s.h5 split_get_file_image_test-m.h5 \ - split_get_file_image_test-r.h5 file_image_core_test.h5.copy \ - dectris.h5 + split_get_file_image_test-r.h5 file_image_core_test.h5.copy INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/src # Test script for error_test and err_compat @@ -841,7 +835,7 @@ SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) links_env$(EXEEXT) TEST_PROG = testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \ pool accum hyperslab istore bittests dt_arith \ dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \ - big mtime fillval mount flush1 flush2 app_ref enum dectris_tst \ + big mtime fillval mount flush1 flush2 app_ref enum \ set_extent ttsafe enc_dec_plist enc_dec_plist_with_endianess\ getname vfd ntypes dangle dtransform reserved cross_read \ freespace mf farray earray btree2 fheap file_image @@ -1012,9 +1006,6 @@ cross_read$(EXEEXT): $(cross_read_OBJECTS) $(cross_read_DEPENDENCIES) $(EXTRA_cr dangle$(EXEEXT): $(dangle_OBJECTS) $(dangle_DEPENDENCIES) $(EXTRA_dangle_DEPENDENCIES) @rm -f dangle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dangle_OBJECTS) $(dangle_LDADD) $(LIBS) -dectris_tst$(EXEEXT): $(dectris_tst_OBJECTS) $(dectris_tst_DEPENDENCIES) $(EXTRA_dectris_tst_DEPENDENCIES) - @rm -f dectris_tst$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(dectris_tst_OBJECTS) $(dectris_tst_LDADD) $(LIBS) dsets$(EXEEXT): $(dsets_OBJECTS) $(dsets_DEPENDENCIES) $(EXTRA_dsets_DEPENDENCIES) @rm -f dsets$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dsets_OBJECTS) $(dsets_LDADD) $(LIBS) @@ -1223,7 +1214,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpd_dset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cross_read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dangle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dectris_tst.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dt_arith.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtransform.Po@am__quote@ diff --git a/test/dectris_tst.c b/test/dectris_tst.c deleted file mode 100644 index 2dd6354..0000000 --- a/test/dectris_tst.c +++ /dev/null @@ -1,326 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * This test is for the DECTRIS project to the H5PSIdirect_write function - * - */ - -#include "h5test.h" -#include -#include - -#ifdef H5_HAVE_FILTER_DEFLATE - -#if defined(H5_HAVE_ZLIB_H) && !defined(H5_ZLIB_HEADER) -# define H5_ZLIB_HEADER "zlib.h" -#endif -#if defined(H5_ZLIB_HEADER) -# include H5_ZLIB_HEADER /* "zlib.h" */ -#endif - -const char *FILENAME[] = { - "dectris", - NULL -}; - -#define DATASETNAME "Array" -#define RANK 2 -#define NX 16 -#define NY 16 -#define CHUNK_NX 4 -#define CHUNK_NY 4 - -#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12) - -int -main (void) -{ - char filename[1024]; - hid_t file; /* handles */ - hid_t fapl; - hid_t dataspace, dataset; - hid_t mem_space; - hid_t cparms, dxpl; - hsize_t dims[2] = {NX, NY}; - hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; - hsize_t chunk_dims[2] ={CHUNK_NX, CHUNK_NY}; - herr_t status; - int ret; - int data[NX][NY]; - int check[NX][NY]; - int i, j, n; - - unsigned filter_mask = 0; - int direct_buf[CHUNK_NX][CHUNK_NY]; - int check_chunk[CHUNK_NX][CHUNK_NY]; - hsize_t offset[2] = {0, 0}; - size_t buf_size = CHUNK_NX*CHUNK_NY*sizeof(int); - - const Bytef *z_src = (const Bytef*)(direct_buf); - Bytef *z_dst; /*destination buffer */ - uLongf z_dst_nbytes = (uLongf)DEFLATE_SIZE_ADJUST(buf_size); - uLong z_src_nbytes = (uLong)buf_size; - int aggression = 9; /* Compression aggression setting */ - void *outbuf = NULL; /* Pointer to new buffer */ - - hsize_t start[2]; /* Start of hyperslab */ - hsize_t stride[2]; /* Stride of hyperslab */ - hsize_t count[2]; /* Block count */ - hsize_t block[2]; /* Block sizes */ - - TESTING("H5PSIdirect_write for DECTRIS project"); - - /* Testing setup */ - h5_reset(); - fapl = h5_fileaccess(); - - h5_fixname(FILENAME[0], fapl, filename, sizeof filename); - - /* - * Create the data space with unlimited dimensions. - */ - if((dataspace = H5Screate_simple(RANK, dims, maxdims)) < 0) - TEST_ERROR; - - if((mem_space = H5Screate_simple(RANK, chunk_dims, NULL)) < 0) - TEST_ERROR; - - /* - * Create a new file. If file exists its contents will be overwritten. - */ - if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) - TEST_ERROR; - - /* - * Modify dataset creation properties, i.e. enable chunking and compression - */ - if((cparms = H5Pcreate(H5P_DATASET_CREATE)) < 0) - TEST_ERROR; - - if((status = H5Pset_chunk( cparms, RANK, chunk_dims)) < 0) - TEST_ERROR; - - if((status = H5Pset_deflate( cparms, aggression)) < 0) - TEST_ERROR; - - /* - * Create a new dataset within the file using cparms - * creation properties. - */ - if((dataset = H5Dcreate2(file, DATASETNAME, H5T_NATIVE_INT, dataspace, H5P_DEFAULT, - cparms, H5P_DEFAULT)) < 0) - TEST_ERROR; - - /* Initialize the dataset */ - for(i = n = 0; i < NX; i++) - for(j = 0; j < NY; j++) - data[i][j] = n++; - - if((dxpl = H5Pcreate(H5P_DATASET_XFER)) < 0) - TEST_ERROR; - - /* - * Write the data for the dataset. It should stay in the chunk cache. - * It will be evicted from the cache by the H5PSIdirect_write calls. - */ - if((status = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, - H5P_DEFAULT, data)) < 0) - TEST_ERROR; - - /* Initialize data for one chunk */ - for(i = n = 0; i < CHUNK_NX; i++) - for(j = 0; j < CHUNK_NY; j++) - direct_buf[i][j] = n++; - - /* Allocate output (compressed) buffer */ - outbuf = malloc(z_dst_nbytes); - z_dst = (Bytef *)outbuf; - - /* Perform compression from the source to the destination buffer */ - ret = compress2(z_dst, &z_dst_nbytes, z_src, z_src_nbytes, aggression); - - /* Check for various zlib errors */ - if(Z_BUF_ERROR == ret) { - fprintf(stderr, "overflow"); - TEST_ERROR; - } else if(Z_MEM_ERROR == ret) { - fprintf(stderr, "deflate memory error"); - TEST_ERROR; - } else if(Z_OK != ret) { - fprintf(stderr, "other deflate error"); - TEST_ERROR; - } - - /* Write the compressed chunk data repeatedly to cover all the chunks in the - * dataset, using the direct writing function. */ - for(i=0; i Date: Mon, 14 Jan 2013 14:45:59 -0500 Subject: [svn-r23161] ported revisions 23146:23160 from the trunk --- CMakeLists.txt | 2 +- README.txt | 2 +- c++/CMakeLists.txt | 2 +- c++/examples/CMakeLists.txt | 2 +- c++/src/CMakeLists.txt | 2 +- c++/src/Makefile.in | 2 +- c++/test/CMakeLists.txt | 2 +- config/lt_vers.am | 2 +- configure | 24 ++++----- configure.ac | 4 +- examples/CMakeLists.txt | 2 +- fortran/CMakeLists.txt | 2 +- fortran/examples/CMakeLists.txt | 2 +- fortran/src/CMakeLists.txt | 2 +- fortran/src/Makefile.in | 2 +- fortran/test/CMakeLists.txt | 2 +- fortran/testpar/CMakeLists.txt | 2 +- hl/CMakeLists.txt | 2 +- hl/c++/CMakeLists.txt | 2 +- hl/c++/examples/CMakeLists.txt | 2 +- hl/c++/src/CMakeLists.txt | 2 +- hl/c++/src/Makefile.in | 2 +- hl/c++/test/CMakeLists.txt | 2 +- hl/examples/CMakeLists.txt | 2 +- hl/fortran/CMakeLists.txt | 2 +- hl/fortran/examples/CMakeLists.txt | 2 +- hl/fortran/src/CMakeLists.txt | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/fortran/test/CMakeLists.txt | 2 +- hl/src/CMakeLists.txt | 2 +- hl/src/Makefile.in | 2 +- hl/test/CMakeLists.txt | 2 +- hl/tools/CMakeLists.txt | 2 +- perform/CMakeLists.txt | 2 +- release_docs/CMake.txt | 11 +++- release_docs/RELEASE.txt | 3 +- release_docs/USING_CMake.txt | 4 +- src/CMakeLists.txt | 2 +- src/H5public.h | 4 +- src/Makefile.in | 2 +- test/CMakeLists.txt | 2 +- test/th5s.c | 4 +- testpar/CMakeLists.txt | 2 +- tools/CMakeLists.txt | 2 +- tools/h5copy/CMakeLists.txt | 2 +- tools/h5diff/CMakeLists.txt | 2 +- tools/h5dump/CMakeLists.txt | 102 +++++++++++++++++++++++++++++++++++-- tools/h5import/CMakeLists.txt | 2 +- tools/h5jam/CMakeLists.txt | 2 +- tools/h5ls/CMakeLists.txt | 2 +- tools/h5repack/CMakeLists.txt | 2 +- tools/h5stat/CMakeLists.txt | 2 +- tools/lib/CMakeLists.txt | 2 +- tools/lib/h5tools.c | 2 +- tools/misc/CMakeLists.txt | 2 +- vms/src/h5pubconf.h | 6 +-- 56 files changed, 179 insertions(+), 77 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aff3f86..ef4e1c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5 C CXX) #----------------------------------------------------------------------------- diff --git a/README.txt b/README.txt index 256d7ce..cd9e7c2 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.140 currently under development +HDF5 version 1.9.141 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt index 0076335..50ea838 100644 --- a/c++/CMakeLists.txt +++ b/c++/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_CPP) #----------------------------------------------------------------------------- diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt index f60d96e..f45251b 100644 --- a/c++/examples/CMakeLists.txt +++ b/c++/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) # -------------------------------------------------------------------- # Notes: When creating examples they should be prefixed # with "cpp_ex_". This allows for easier filtering of the examples. diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index d983d1e..fea68cd 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_CPP_SRC) #----------------------------------------------------------------------------- diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 9d14b76..92ce499 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -467,7 +467,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 # Include src directory diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt index 7f4437c..124edb9 100644 --- a/c++/test/CMakeLists.txt +++ b/c++/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_CPP_TEST) # -------------------------------------------------------------------- # Notes: When creating unit test executables they should be prefixed diff --git a/config/lt_vers.am b/config/lt_vers.am index 42aa24d..82d664d 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -17,7 +17,7 @@ # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index 80e3e9a..36d9349 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac Id: configure.ac 23142 2013-01-08 02:19:17Z derobins . +# From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.8.11-snap7. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.141. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.8.11-snap7' -PACKAGE_STRING='HDF5 1.8.11-snap7' +PACKAGE_VERSION='1.9.141' +PACKAGE_STRING='HDF5 1.9.141' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1484,7 +1484,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.8.11-snap7 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.141 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1554,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.8.11-snap7:";; + short | recursive ) echo "Configuration of HDF5 1.9.141:";; esac cat <<\_ACEOF @@ -1750,7 +1750,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.8.11-snap7 +HDF5 configure 1.9.141 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2844,7 +2844,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.8.11-snap7, which was +It was created by HDF5 $as_me 1.9.141, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3676,7 +3676,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.8.11-snap7' + VERSION='1.9.141' cat >>confdefs.h <<_ACEOF @@ -31723,7 +31723,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.8.11-snap7, which was +This file was extended by HDF5 $as_me 1.9.141, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31789,7 +31789,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.8.11-snap7 +HDF5 config.status 1.9.141 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -34562,7 +34562,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.8.11-snap7 +HDF5 config.lt 1.9.141 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. diff --git a/configure.ac b/configure.ac index 65aa21b..15ecc37 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ ## ---------------------------------------------------------------------- ## Initialize configure. ## -AC_REVISION($Id: configure.ac 23142 2013-01-08 02:19:17Z derobins $) +AC_REVISION($Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest $) AC_PREREQ([2.69]) ## AC_INIT takes the name of the package, the version number, and an @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.8.11-snap7], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.141], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d7fc67a..3abf97a 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_EXAMPLES) #----------------------------------------------------------------------------- diff --git a/fortran/CMakeLists.txt b/fortran/CMakeLists.txt index d18cdb4..9dbe8ca 100644 --- a/fortran/CMakeLists.txt +++ b/fortran/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_F90 C CXX Fortran) IF (H5_HAVE_PARALLEL) diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt index 6154387..0536183 100644 --- a/fortran/examples/CMakeLists.txt +++ b/fortran/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_F90_EXAMPLES C CXX Fortran) # -------------------------------------------------------------------- # Notes: When creating examples they should be prefixed diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 374bc44..765bb65 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_F90_SRC C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index d9df257..45a4e56 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -517,7 +517,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 # Include src directory in both Fortran and C flags (C compiler is used diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index 92ba651..5b41a32 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_FORTRAN_TESTS C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/fortran/testpar/CMakeLists.txt b/fortran/testpar/CMakeLists.txt index b112db3..1c7248c 100644 --- a/fortran/testpar/CMakeLists.txt +++ b/fortran/testpar/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_FORTRAN_TESTPAR C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt index e66329e..5c9403d 100644 --- a/hl/CMakeLists.txt +++ b/hl/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL C CXX) #----------------------------------------------------------------------------- diff --git a/hl/c++/CMakeLists.txt b/hl/c++/CMakeLists.txt index 3601a91..8d68dd0 100644 --- a/hl/c++/CMakeLists.txt +++ b/hl/c++/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_CPP) #----------------------------------------------------------------------------- diff --git a/hl/c++/examples/CMakeLists.txt b/hl/c++/examples/CMakeLists.txt index bba06e9..4c60165 100644 --- a/hl/c++/examples/CMakeLists.txt +++ b/hl/c++/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_CPP_EXAMPLES) #----------------------------------------------------------------------------- diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt index e0ca0e9..5a2a7c4 100644 --- a/hl/c++/src/CMakeLists.txt +++ b/hl/c++/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_CPP_SRC) #----------------------------------------------------------------------------- diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index fef6449..7c9eaa7 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -458,7 +458,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 # Include src directory diff --git a/hl/c++/test/CMakeLists.txt b/hl/c++/test/CMakeLists.txt index 7d29035..0f82748 100644 --- a/hl/c++/test/CMakeLists.txt +++ b/hl/c++/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_CPP_TEST) #----------------------------------------------------------------------------- diff --git a/hl/examples/CMakeLists.txt b/hl/examples/CMakeLists.txt index f9c8922..1f4807a 100644 --- a/hl/examples/CMakeLists.txt +++ b/hl/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_EXAMPLES ) SET (HDF5_TEST_FILES diff --git a/hl/fortran/CMakeLists.txt b/hl/fortran/CMakeLists.txt index ae38588..0da0825 100644 --- a/hl/fortran/CMakeLists.txt +++ b/hl/fortran/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_F90 C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/hl/fortran/examples/CMakeLists.txt b/hl/fortran/examples/CMakeLists.txt index 7098119..03b9e9b 100644 --- a/hl/fortran/examples/CMakeLists.txt +++ b/hl/fortran/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_F90_EXAMPLES C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt index ec54d8c..c580516 100644 --- a/hl/fortran/src/CMakeLists.txt +++ b/hl/fortran/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT(HDF5_HL_F90_SRC C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 85faf98..9287cb4 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -474,7 +474,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \ -I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt index c9b0533..d76e7f2 100644 --- a/hl/fortran/test/CMakeLists.txt +++ b/hl/fortran/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_FORTRAN_TESTS C CXX Fortran) #----------------------------------------------------------------------------- diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt index 36547f0..edba042 100644 --- a/hl/src/CMakeLists.txt +++ b/hl/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_SRC) #----------------------------------------------------------------------------- diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 1be8e50..ec72933 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -457,7 +457,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 # This library is our main target. diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt index a85d271..39a3811 100644 --- a/hl/test/CMakeLists.txt +++ b/hl/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_TEST) # -------------------------------------------------------------------- # Notes: When creating unit test executables they should be prefixed diff --git a/hl/tools/CMakeLists.txt b/hl/tools/CMakeLists.txt index 28943d6..4887b6c 100644 --- a/hl/tools/CMakeLists.txt +++ b/hl/tools/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_HL_TOOLS) #----------------------------------------------------------------------------- diff --git a/perform/CMakeLists.txt b/perform/CMakeLists.txt index 0a34677..3f8b9b7 100644 --- a/perform/CMakeLists.txt +++ b/perform/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_PERFORM ) #----------------------------------------------------------------------------- diff --git a/release_docs/CMake.txt b/release_docs/CMake.txt index 1d36e21..8fb5f5e 100644 --- a/release_docs/CMake.txt +++ b/release_docs/CMake.txt @@ -39,7 +39,7 @@ Notes: This short instruction is written for users who want to quickly build ======================================================================== 1. We suggest you obtain the latest CMake for windows from the Kitware - web site. The HDF5 1.8.x product requires CMake version 2.8.6. + web site. The HDF5 1.8.x product requires CMake version 2.8.10. 2. If you plan to use Zlib or Szip; A. Download the packages and install them @@ -61,6 +61,15 @@ Notes: This short instruction is written for users who want to quickly build where "some_location" is the URL or full path to the compressed file and ext is the type of compression file. + 3. Building on Apple Darwin platforms should add the following options: + Compiler choice - use xcode by setting the ENV variables of CC and CXX + Shared fortran is not supported, build static: + BUILD_SHARED_LIBS:BOOL=OFF + Additional options: + CMAKE_ANSI_CFLAGS:STRING=-fPIC + CTEST_USE_LAUNCHERS:BOOL=ON + CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF + ======================================================================== Building HDF5 C/C++ Libraries with CMake diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index a5138ee..146f3e2 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.140 currently under development +HDF5 version 1.9.141 currently under development ================================================================================ @@ -41,6 +41,7 @@ New Features Configuration: ------------- + - CMake minimum is now 2.8.10. (ADB 2013/1/14) - Fixed AIX Fortran compiler flags to use appropriate settings for debugging, profiling, optimization situations. HDFFV-8069. (AKC 2012/09/27) diff --git a/release_docs/USING_CMake.txt b/release_docs/USING_CMake.txt index 71f2fcf..4397750 100644 --- a/release_docs/USING_CMake.txt +++ b/release_docs/USING_CMake.txt @@ -37,7 +37,7 @@ Notes: This short instruction is written for users who want to quickly build ======================================================================== 1. We suggest you obtain the latest CMake for windows from the Kitware - web site. The HDF5 1.8.x product requires CMake version 2.8.6 (minimum). + web site. The HDF5 1.8.x product requires CMake version 2.8.10 (minimum). 2. You have installed the HDF5 library built with CMake, by executing the HDF Install Utility (The *.exe file in the binary package for Windows). @@ -185,7 +185,7 @@ Notes: This short instruction is written for users who want to quickly build 9. Create a CMakeLists.txt file at the source root. .......................................................................... -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5MyApp C CXX) FIND_PACKAGE (HDF5 REQURIED) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f398af5..f964992 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_SRC C CXX) #----------------------------------------------------------------------------- diff --git a/src/H5public.h b/src/H5public.h index 24f49a7..793d4df 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -75,10 +75,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 140 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 141 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.140" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.141" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index e4a29e7..4f503fc 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -522,7 +522,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 130 +LT_VERS_REVISION = 131 LT_VERS_AGE = 0 H5detect_CFLAGS = -g $(AM_CFLAGS) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8d40c25..aa92371 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TEST) #----------------------------------------------------------------------------- diff --git a/test/th5s.c b/test/th5s.c index 87aa0f1..a026545 100644 --- a/test/th5s.c +++ b/test/th5s.c @@ -725,8 +725,8 @@ test_h5s_zero_dim(void) ret = H5Pset_chunk(plist_id, SPACE1_RANK, chunk_dims); CHECK(ret, FAIL, "H5Pset_chunk"); - // ret = H5Pset_alloc_time(plist_id, alloc_time); - // CHECK(ret, FAIL, "H5Pset_alloc_time"); + /* ret = H5Pset_alloc_time(plist_id, alloc_time); */ + /* CHECK(ret, FAIL, "H5Pset_alloc_time"); */ dset1 = H5Dcreate2(fid1, BASICDATASET1, H5T_NATIVE_INT, sid_chunk, H5P_DEFAULT, plist_id, H5P_DEFAULT); CHECK(dset1, FAIL, "H5Dcreate2"); diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt index 88c47f5..cccb148 100644 --- a/testpar/CMakeLists.txt +++ b/testpar/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TEST_PAR) #----------------------------------------------------------------------------- diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index b48a1b9..3bb4a1f 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS) #----------------------------------------------------------------------------- diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt index 95341a2..970cc12 100644 --- a/tools/h5copy/CMakeLists.txt +++ b/tools/h5copy/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5COPY) #----------------------------------------------------------------------------- diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt index 994a6f2..87eca15 100644 --- a/tools/h5diff/CMakeLists.txt +++ b/tools/h5diff/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5DIFF) #----------------------------------------------------------------------------- diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt index c3d3e1b..98d797c 100644 --- a/tools/h5dump/CMakeLists.txt +++ b/tools/h5dump/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5DUMP) #----------------------------------------------------------------------------- @@ -55,6 +55,7 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/tall-4s.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tall-5s.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tall-6.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tall-6.exp ${HDF5_TOOLS_SRC_DIR}/testfiles/tallfilters.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray1.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tarray1_big.ddl @@ -140,8 +141,13 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/tnestcomp-1.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tnestedcmpddt.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tnbit.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoddl.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoddlfile.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/tnoddlfile.exp ${HDF5_TOOLS_SRC_DIR}/testfiles/tno-subset.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tnullspace.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/trawdatafile.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/trawdatafile.exp ${HDF5_TOOLS_SRC_DIR}/testfiles/zerodim.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tordergr1.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tordergr2.ddl @@ -185,6 +191,9 @@ IF (BUILD_TESTING) ${HDF5_TOOLS_SRC_DIR}/testfiles/tvlstr.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tvms.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/twidedisplay.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/twithddl.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/twithddlfile.ddl + ${HDF5_TOOLS_SRC_DIR}/testfiles/twithddlfile.exp ${HDF5_TOOLS_SRC_DIR}/testfiles/h5dump-help.txt ${HDF5_TOOLS_SRC_DIR}/testfiles/out3.h5import ) @@ -669,12 +678,56 @@ IF (BUILD_TESTING) ENDIF (HDF5_ENABLE_USING_MEMCHECKER) ENDMACRO (ADD_H5_TEST file) + MACRO (ADD_H5_TEST_EXPORT resultfile targetfile resultcode) + # If using memchecker add tests without using scripts + IF (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST (NAME H5DUMP-${resultfile} COMMAND $ ${ARGN} ${resultfile}.txt ${targetfile}) + SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + IF (NOT ${resultcode} STREQUAL "0") + SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true") + ENDIF (NOT ${resultcode} STREQUAL "0") + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5DUMP-${resultfile}") + ELSE (HDF5_ENABLE_USING_MEMCHECKER) + ADD_TEST ( + NAME H5DUMP-clear-${resultfile}-objects + COMMAND ${CMAKE_COMMAND} + -E remove ${resultfile}.txt ${resultfile}.out ${resultfile}.out.err + ) + SET_TESTS_PROPERTIES (H5DUMP-clear-${resultfile}-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + ADD_TEST ( + NAME H5DUMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -D "TEST_ARGS:STRING=${ARGN};${resultfile}.txt;${targetfile}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.ddl" + -P "${HDF5_RESOURCES_DIR}/runTest.cmake" + ) + SET_TESTS_PROPERTIES (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-clear-${resultfile}-objects") + ADD_TEST ( + NAME H5DUMP-output-cmp-${resultfile} + COMMAND ${CMAKE_COMMAND} + -E compare_files ${resultfile}.txt ${resultfile}.exp + ) + SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5DUMP-output-cmp-${resultfile}") + ENDIF (HDF5_ENABLE_USING_MEMCHECKER) + ENDMACRO (ADD_H5_TEST_EXPORT file) + MACRO (ADD_H5_EXPORT_TEST resultfile targetfile resultcode) ADD_TEST ( NAME H5DUMP-output-${resultfile} - COMMAND $ ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile}.txt ${PROJECT_BINARY_DIR}/testfiles/${targetfile} + COMMAND $ ${ARGN} ${resultfile}.txt ${targetfile} ) - SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5DUMP-output-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -683,8 +736,9 @@ IF (BUILD_TESTING) ADD_TEST ( NAME H5DUMP-output-cmp-${resultfile} COMMAND ${CMAKE_COMMAND} - -E compare_files ${PROJECT_BINARY_DIR}/testfiles/${resultfile}.txt ${PROJECT_BINARY_DIR}/testfiles/${resultfile}.exp + -E compare_files ${resultfile}.txt ${resultfile}.exp ) + SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") IF (NOT "${last_test}" STREQUAL "") SET_TESTS_PROPERTIES (H5DUMP-output-cmp-${resultfile} PROPERTIES DEPENDS ${last_test}) ENDIF (NOT "${last_test}" STREQUAL "") @@ -822,6 +876,7 @@ IF (BUILD_TESTING) tall-4s.out.err tall-5s.out tall-5s.out.err + tall-6.txt tall-6.out tall-6.out.err tallfilters.out @@ -984,6 +1039,13 @@ IF (BUILD_TESTING) tnestedcmpddt.out.err tnbit.out tnbit.out.err + tnoddl.out + tnoddl.out.err + tnoddlfile.out + tnoddlfile.out.err + trawdatafile.out + trawdatafile.out.err + twithddlfile.txt tno-subset.out tno-subset.out.err tnullspace.out @@ -1074,6 +1136,10 @@ IF (BUILD_TESTING) tvms.out.err twidedisplay.out twidedisplay.out.err + twithddl.txt + twithddlfile.out + twithddlfile.out.err + twithddlfile.txt ) SET_TESTS_PROPERTIES (H5DUMP-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") IF (NOT "${last_test}" STREQUAL "") @@ -1084,6 +1150,32 @@ IF (BUILD_TESTING) ADD_HELP_TEST(help 0 -h) + # test data output redirection + ADD_H5_TEST (tnoddl 0 --enable-error-stack --redirect-ddl=NULL -y packedbits.h5) + ADD_H5_TEST_EXPORT (trawdatafile packedbits.h5 0 --enable-error-stack -y -o) + ADD_H5_TEST_EXPORT (tnoddlfile packedbits.h5 0 --enable-error-stack --redirect-ddl=NULL -y -o) + ADD_TEST ( + NAME H5DUMP-clear-twithddlfile-export + COMMAND ${CMAKE_COMMAND} + -E remove twithddl.txt + ) + SET_TESTS_PROPERTIES (H5DUMP-clear-twithddlfile-export PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-clear-twithddlfile-export PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5DUMP-clear-twithddlfile-export") + ADD_H5_TEST_EXPORT (twithddlfile packedbits.h5 0 --enable-error-stack --redirect-ddl=twithddl.txt -y -o) + ADD_TEST ( + NAME H5DUMP-output-cmp-meta-twithddlfile + COMMAND ${CMAKE_COMMAND} + -E compare_files twithddl.txt twithddl.ddl + ) + SET_TESTS_PROPERTIES (H5DUMP-output-cmp-meta-twithddlfile PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles") + IF (NOT "${last_test}" STREQUAL "") + SET_TESTS_PROPERTIES (H5DUMP-output-cmp-meta-twithddlfile PROPERTIES DEPENDS ${last_test}) + ENDIF (NOT "${last_test}" STREQUAL "") + SET (last_test "H5DUMP-output-cmp-meta-twithddlfile") + # test for maximum display datasets ADD_H5_TEST (twidedisplay 0 --enable-error-stack -w0 packedbits.h5) @@ -1472,7 +1564,7 @@ IF (BUILD_TESTING) ADD_H5ERR_MASK_TEST (filter_fail 1 --enable-error-stack filter_fail.h5) # test for -o -y for dataset with attributes - ADD_H5_TEST (tall-6 0 --enable-error-stack -y -o data -d /g1/g1.1/dset1.1.1 tall.h5) + ADD_H5_TEST_EXPORT (tall-6 tall.h5 0 --enable-error-stack -d /g1/g1.1/dset1.1.1 -y -o) ####### test for dataset packed bits ###### IF (HDF5_ENABLE_USING_MEMCHECKER) diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt index bc47244..235cb9f 100644 --- a/tools/h5import/CMakeLists.txt +++ b/tools/h5import/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5IMPORT) #----------------------------------------------------------------------------- diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt index b44e734..437fed3 100644 --- a/tools/h5jam/CMakeLists.txt +++ b/tools/h5jam/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5JAM) #----------------------------------------------------------------------------- diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt index e2b3285..5cce6cb 100644 --- a/tools/h5ls/CMakeLists.txt +++ b/tools/h5ls/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5LS) #----------------------------------------------------------------------------- diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt index 7351fd5..7166357 100644 --- a/tools/h5repack/CMakeLists.txt +++ b/tools/h5repack/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5REPACK) #----------------------------------------------------------------------------- diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt index 3518cfd..9afb365 100644 --- a/tools/h5stat/CMakeLists.txt +++ b/tools/h5stat/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_H5STAT) #----------------------------------------------------------------------------- diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt index 7f7b451..f0d0d01 100644 --- a/tools/lib/CMakeLists.txt +++ b/tools/lib/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_LIB) #----------------------------------------------------------------------------- diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index 7b6098d..3e29cbd 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -1133,7 +1133,7 @@ render_bin_output(FILE *stream, hid_t container, hid_t tid, void *_mem, hsize_t } for (i = 0; i < size && (s[i] || pad != H5T_STR_NULLTERM); i++) { HDmemcpy(&tempuchar, &s[i], sizeof(unsigned char)); - if (1 != HDfwrite(&tempuchar, size, 1, stream)) + if (1 != HDfwrite(&tempuchar, sizeof(unsigned char), 1, stream)) H5E_THROW(FAIL, H5E_tools_min_id_g, "fwrite failed"); } /* i */ } /* for (block_index = 0; block_index < block_nelmts; block_index++) */ diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt index 909b2ca..d310d3d 100644 --- a/tools/misc/CMakeLists.txt +++ b/tools/misc/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.6) +cmake_minimum_required (VERSION 2.8.10) PROJECT (HDF5_TOOLS_MISC) #----------------------------------------------------------------------------- diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index 22662ba..51bef00 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -502,7 +502,7 @@ #define H5_PACKAGE_NAME "HDF5" /* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.140" +#define H5_PACKAGE_STRING "HDF5 1.9.141" /* Define to the one symbol short name of this package. */ #define H5_PACKAGE_TARNAME "hdf5" @@ -511,7 +511,7 @@ #define H5_PACKAGE_URL "" /* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.140" +#define H5_PACKAGE_VERSION "1.9.141" /* Width for printf() for type `long long' or `__int64', use `ll' */ #define H5_PRINTF_LL_WIDTH "ll" @@ -674,7 +674,7 @@ /* #undef H5_USING_MEMCHECKER */ /* Version number of package */ -#define H5_VERSION "1.9.140" +#define H5_VERSION "1.9.141" /* Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed */ -- cgit v0.12