Compare commits

...

887 Commits

Author SHA1 Message Date
Elena Pourmal
5fdf5691de [svn-r17865] Small bug fix: Added gfortran information to the list of the compilers used
for testing. Recreated release tar ball to reflect the change.
2009-11-10 15:22:34 -05:00
Elena Pourmal
6372cbfe9e [svn-r17855] Maintenance: Checking in files updated by bin/release before tagging
the hdf5 1.8.4 release.
2009-11-09 11:34:42 -05:00
Elena Pourmal
3274506aa1 [svn-r17851] Maintenance: Version number should stay 1.8.4 in this branch. 2009-11-09 10:28:35 -05:00
Albert Cheng
21fc8a5e32 [svn-r17841] Changed version number to 1.8.4-snap0. 2009-11-05 13:40:39 -05:00
Albert Cheng
38626d0d29 [svn-r17840] Official 1.8.4 release commit. 2009-11-05 13:20:49 -05:00
Albert Cheng
894280046b [svn-r17828] Updated information concerning Red Storm Qual. 2009-11-04 14:56:29 -05:00
Frank Baker
40107d14d1 [svn-r17825] Description:
Fixed formatting to conform to 80-character line limit.
2009-11-04 13:48:12 -05:00
Albert Cheng
3490d6391e [svn-r17823] Removed entried of Spirit which has retired.
Updated OS information of Glory.
2009-11-04 13:29:27 -05:00
Mike McGreevy
430cf74708 [svn-r17821] Purpose:
Updating RELEASE.txt

Description:

    Clarifying explanation of --enable-static-exec behavior.

Tested:

    Doc only, none needed.
2009-11-04 09:40:49 -05:00
Albert Cheng
4226175c80 [svn-r17816] Removed Zeus and ubgl entries since they were not tested any more.
Added AIX known problem of testcheck_version.sh failure.
2009-11-03 23:28:54 -05:00
Allen Byrne
1cc53d9877 [svn-r17808] Corrected expected output text file to match actual output. (Verified to linux output).
Corrected solution file type to not try to build .exe the solution name.
2009-11-03 11:28:57 -05:00
Allen Byrne
6921e39a6d [svn-r17803] corrected examples test batch files 2009-11-02 13:52:40 -05:00
Albert Cheng
ebf532a683 [svn-r17799] Removed support and known problems of the IRIX, IRIX64 and Tungsten platforms
since they have retired.
Added known problem of h5repack in AIX -q32 platform.
2009-11-02 09:31:20 -05:00
Larry Knox
d1c0d540fe [svn-r17791] Updated supported configurations table for THG test machines for 1.8.4 release. 2009-10-29 17:14:00 -05:00
Larry Knox
0346ae4b35 [svn-r17788] Update compiler versions for 1.8.4 release. 2009-10-29 11:52:55 -05:00
Elena Pourmal
429c33fb2d [svn-r17784] Maintenance: Changed version number to 1.8.4-pre2 after creating
release candidate tar ball.
2009-10-28 17:47:01 -05:00
Quincey Koziol
534f2a99c9 [svn-r17780] Description:
Bring r17778 from trunk to 1.8 branch:

    Make check for NULL dataspace a bit safer.

Tested on:
    FreeBSD/32 6.3 (duty)
    (too minor for h5committest)
2009-10-28 17:00:47 -05:00
Albert Cheng
b23076d3e9 [svn-r17777] Bug fix: I added the test
TOOLTEST file_space.ddl -B file_space.h5
by accident (copied from the trunk version).
Removed it.

Tested: jam. (skipped h5committest since it is
a trivial change of removing an action line.
The file_space.ddl and file_space.h5 do not exist
in this branch. (that was how I discovered my mistake.)
2009-10-28 15:48:32 -05:00
Mike McGreevy
98f4d1fd11 [svn-r17774] Purpose:
h5cc link-line reordering

Description:

    Re-ordered flags in h5cc such that LDFLAGS appears after hdf5 library 
    include path. This is to ensure third party library locations don't 
    interfere with locating the correct version of hdf5 library.

Tested:

    passed daily tests in 1.8 branch (as verified by Larry just now).
2009-10-28 15:31:25 -05:00
Neil Fortner
718ce1fc3d [svn-r17772] Add bug number to note in RELEASE.txt. 2009-10-28 10:11:10 -05:00
Albert Cheng
608c4bd428 [svn-r17768] Bug 1264 fixed.
Tests to verify the bug fixed are installed.

Test: Jam (default and with --disable-depreacted-symbol), Amani (v16API),
Linew (default).
2009-10-28 02:22:09 -05:00
Neil Fortner
24a5a5505c [svn-r17765] Purpose: Fix bug 1483
Description:
H5HG_load made improper assumptions about the ordering of object indices, namely
that they are in order.  Not only is this not guaranteed by the file format
spec, but this condition can be violated if id's "wrap around" which can happen
when overwriting VL data.  H5HG_load has been fixed to handle any order of
indices.  Also fixed some other bugs involving allocation of global heaps in
memory.

Tested: jam, linew, amani (h5committest)
2009-10-27 21:58:50 -05:00
Neil Fortner
1caa8b61a5 [svn-r17761] Purpose: Fix problem with H5TB API
Description:
The H5TB API makes some improper assumptions about the order of compound
datatype members.  Namely, it assumes that members remain in the order in which
they were inserted.  Unfortunately, this assumption is inherent in the design of
the interface.  The library has been patched so that this assumption holds in
situations relevant to H5TB.

Tested: jam, linew, amani (h5committest)
2009-10-27 17:39:30 -05:00
Neil Fortner
97c03a8ba2 [svn-r17756] Purpose: Fix assertion failure caused by H5Tcommit1/2
Description:
Calling H5Tcommit_anon on a file with read only access would cause an
assertion failure.  Added a check to H5T_commit to return a failure in
this case.  Removed redundant check in H5T_commit_named.

Tested: Fedora 11 (very minor change)
2009-10-27 16:32:11 -05:00
Neil Fortner
5c2030da0c [svn-r17752] Purpose: Fix assertion failure caused by H5Tcommit1/2
Description:
Calling H5Tcommit1 or H5Tcommit2 on a file with read only access would cause an
assertion failure.  Added a check to H5T_commit_named to return a failure in
this case.

Tested: Fedora 11 (very minor change)
2009-10-27 16:03:45 -05:00
Allen Byrne
ba712ce016 [svn-r17750] Remove .NET(VS7) from batch files 2009-10-27 15:52:46 -05:00
Allen Byrne
7395e6cd7a [svn-r17748] Removed/updated sections concerning Visual Studio .NET. 2009-10-27 13:41:41 -05:00
Allen Byrne
498fd3e24d [svn-r17732] Correct batch file typo 2009-10-23 09:00:15 -05:00
Allen Byrne
a35d12a0c5 [svn-r17728] Updated the errorlevel checking for better error handling in the windows batch files. 2009-10-22 16:27:56 -05:00
Albert Cheng
b67e755f74 [svn-r17718] Cosmetic change to use exit(EXIT_FAILURE) instead of exit(1).
Tested: jam-pp.
2009-10-21 14:01:50 -05:00
Albert Cheng
3e59a565ad [svn-r17713] Add the following patch
===
The following patch to h5copy.c on or near line 173 makes the
tool substantially more useful...
     *flag = (*flag) | fla;
Because the command-line option parsing permits multiple '-f' arguments,
this will have the effect of or'ing the flags together so one can do
someting like....

~/tmp/hdf5-1.8.1/tools/h5copy/h5copy -i multi_ucd3d.h5 -s block5 -o gorfo -d foo
 -f shallow -f soft

Mark C. Miller, Lawrence Livermore National Laboratory
email: mailto:miller86@llnl.gov
===

Also fixed to exit failure if no command option is given.


Tested: Jam
2009-10-21 13:18:15 -05:00
Elena Pourmal
281c6f5f47 [svn-r17711] Maintenance: Updated the file in preparation to the hdf5-1.8.4 release. 2009-10-21 08:34:05 -05:00
Elena Pourmal
7ad81e70ac [svn-r17710] Maintenance: Changed version to hdf5-1.8.4-pre1 before starting
remote testing for the hdf5-1.8.4 release.
2009-10-21 08:31:46 -05:00
Albert Cheng
ce5e8b2a39 [svn-r17704] Bug fix: (1192)
Changed exit(1) to exit(EXIT_FAILURE) and exit(0) to exit(EXIT_SUCCESS) for
better coding.

Tested: jam.
2009-10-20 19:34:42 -05:00
Albert Cheng
aa46073801 [svn-r17701] Bug fix: (1192)
Comment says Error exit code is -1 but actual code use 1.
Changed it to EXIT_FAILURE (1) and exit(0) to exit(EXIT_SUCCESS) for
better coding.

Tested: jam.
2009-10-20 19:04:56 -05:00
Albert Cheng
cdff348e48 [svn-r17698] Bug fix: (1192)
Error exit code of -1 is illegal (exit code is unsigned).
Changed it to EXIT_FAILURE (1).
Also changed exit(0) to exit(EXIT_SUCCESS) for better coding.

Tested: jam.
2009-10-20 18:46:38 -05:00
Allen Byrne
f6377589f7 [svn-r17696] added new tlinks.cpp files to windows project files.
Tested: windows
2009-10-20 16:16:08 -05:00
Binh-Minh Ribler
cdf49b6472 [svn-r17695] Purpose: Code improvement
Description:
    Fixed CommonFG::getComment and CommonFG::getLinkval to provide
    default values for buffer size to improve usability.

    Added test file tlinks.cpp, which only contains test for getLinkval
    and will expand when C++ wrappers for H5L functions are implemented.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
2009-10-20 14:59:43 -05:00
Albert Cheng
e91af4bdbd [svn-r17694] Removed the erroneous test of using v16 API.
The error started out as an erroneous test of using v16 API via
source code. (See bug 1264).  It was implemented as:

#include "hdf5.h"
#define H5_USE_16_API

That was incorrect and generated warnings in Linux but error in AIX
for redefining macro H5_USE_16_API.

I corrected it yesterday to pass AIX by moving H5_USE_16_API up as:

#define H5_USE_16_API
#include "hdf5.h"

This is the proper way to turn on v16API and it passes all normal
tests.  I knew it would not work if somehow v16API is disabled
but hoping it can be fixed later.  Well, it broke last night
under --disable-deprecated-symbols.  

Removed the #define H5_USE_16_API and let Raymond fix it after
the release.
2009-10-20 14:43:00 -05:00
Allen Byrne
d173513315 [svn-r17687] Added new windows project files 2009-10-20 07:45:57 -05:00
Albert Cheng
5158a3f3e4 [svn-r17686] Bug fix:
#define H5_USE_16_API
was inserted AFTER #include <hdf5.>, too late was it to take
effect. Instead, it caused a macro redefinition, flagged as an error
by AIX.

Fixed by moving it before the <hdf5.h>.

Tested: Jam.
2009-10-20 00:07:50 -05:00
Scot Breitenfeld
9c6753a50e [svn-r17684] Description:
Added new fortran features and bug fixes.
2009-10-19 16:47:57 -05:00
Scot Breitenfeld
74665e4c13 [svn-r17683] Description:
Merged changes from trunk/fortran into the branch used:

svn merge -r 17517:17682 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Tested on: 

  amani: pgi compiler
         intel compiler (11.0)

  linew

  jam: gcc/gfortran (4.3)
2009-10-19 16:16:42 -05:00
Allen Byrne
0161c90b9b [svn-r17682] Added tcheckversion project files.
Tested: Windows
2009-10-19 12:34:52 -05:00
Larry Knox
b26426f5b3 [svn-r17677] Snapshot version 1.8 release 3 (snap13) 2009-10-19 00:41:33 -05:00
Mike McGreevy
1ea112f552 [svn-r17676] Purpose:
Configure Cleanup

Description:

    Make all AM_CFLAGS visible in CFLAGS during configure so all checks
    have full visibility of any set flags.

Tested:

    h5committest
2009-10-18 22:19:15 -05:00
Albert Cheng
f912cacabc [svn-r17672] Removed these two options from the fortran flags:
-qmoddir=. because -qmoddir defaults to current directory already.
   -static because it is not mentioned in "man xlf". Don't know it was a typo
    or just an obsoleted option.
Removing both of them produced no ill or visible effects.

Tested: Up of LLNL
2009-10-18 17:56:29 -05:00
Albert Cheng
f3986a1b59 [svn-r17669] Bug 1656 fix:
added a signal handler to the tcheck_version to intercept the abort signal from
H5check_version.  Some systems would prints extra messages and/or core dump if
the abort signal is not handled. This eliminates those unwanted side effect.

Tested: h5committested.
2009-10-17 23:59:16 -05:00
Albert Cheng
4083412033 [svn-r17666] Bug fix:
The file failed to compiled in AIX which flags syntax error.
Fixed by making the statements more explicitly compare with NULL
and added a missing trailing semi-colon.

Tested:
Tested in AIX (Up at LLNL) only. The changes are trivial and should
be portable to all platform.s
2009-10-17 17:44:41 -05:00
Larry Knox
1825d962df [svn-r17665] Remove -D_POSIX_SOURCE from CPPFLAGS in h5cc. This flag breaks netcdf4 when compiling with h5cc and is not missed by hdf5-examples or hdfeos5.
Tested:  jam.
2009-10-17 15:46:19 -05:00
Mike McGreevy
11155cf5c3 [svn-r17664] Purpose:
configure cleanup

Description

    1. Removed check that disables shared libraries when pgcc is used. Apparently
       they previously did not work with libtool 1.5.14 and on mir, neither of
       which is in use anymore. Testing on jam and amani appear fine, so this
       check is unnecessary.

    2. Removed check that disables shared C++ libraries when -xarch is used to
       enable 64 bit mode. We now use m64 flag to build 64 bit binaries, so 
       we shouldn't explicitly disable shared C++ libraries if -xarch is 
       discovered.

    3. Removed old configure output summary section from configure.in, since
       we now use the libhdf5.settings file.

    4. Updated powerpc-ibm-aix5.x config file to once again put c99 flag into
       H5_CFLAGS (and thus NOT get into h5cc), as decided in our dev meeting.

Tested:

    h5committest
    full build with pgcc on jam / amani
2009-10-16 15:21:12 -05:00
Larry Knox
26b0d9bde8 [svn-r17661] Add option to specify version for documentation.
Previously added to release in hdfdts, but release script should be part of source code.

Tested:  jam.
2009-10-16 14:07:19 -05:00
Albert Cheng
a861d4914b [svn-r17660] Changed the default fortran compilers from xlf and mpxlf_r to
xlf90 and mpxlf90_r respectively. The fortran 90 compilers support
free format source files. This allows the removal of -k so that
the default compiler command is cleaner.

Tested: AIX Up at LLNL.
(Note: mpxlf90_r does not work but this could have been an undetected
old problem.)
2009-10-15 19:17:44 -05:00
Larry Knox
62521fcb96 [svn-r17656] Added h5_make_local_copy function to address bug 1630, and refactored tests that were discovered to copy data files to avoid writing to data files checked into svn to use the new function.
Tested on amani, jam, and linew with h5committest and on jam with a read only mount of source files on pegdub.
2009-10-15 17:14:10 -05:00
Mike McGreevy
148828d46a [svn-r17655] Purpose:
Configure cache-val cleanup

Description:

    Corrected some misnamed cache values in configure / config files.

Tested:

    h5committest
2009-10-15 16:53:23 -05:00
Elena Pourmal
22e4a9b874 [svn-r17652] Maintenance: fixed a silly typo.
platforms tested: linew
2009-10-15 15:12:05 -05:00
Elena Pourmal
4486bc35bc [svn-r17650] Maintenance: Brought changes back from trunk
Platforms tested: linew (trivial change)
2009-10-15 13:45:17 -05:00
Elena Pourmal
94cb1c465b [svn-r17648] Maintenance: Configure didn't cleanup Fortran module file; fixed.
Platforms tested: jam (trivial change)
Note: Most of the Fortran compilers create module files with "mod" extension.
In the past, I believe,  there were systems (Cray?) that used different 
extensions. We should add those to the current fix when we find them.
2009-10-15 13:13:55 -05:00
Mike McGreevy
dd4360dccf [svn-r17645] Purpose:
Merge from Trunk

Description:

    Merging all of my CFLAGS-related changes from trunk to 1.8

    This includes revision #s: 17616, 17625, 17627, 17639, and 17643.

Tested:

    h5committest and some additional checks on our FreeBSD as well 
    as NCSA's machines.
2009-10-15 12:08:41 -05:00
Quincey Koziol
2a2a49f422 [svn-r17638] Description:
Bring r17624 from trunk to 1.8 branch:

	Don't allow reads to change or add to the metadata accumulator, since
they might be speculative and could bring raw data into the metadata
accumulator.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
       Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
               w/C++ & FORTRAN, w/threadsafe, in debug mode
       Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
               w/C++ & FORTRAN, in production mode
       Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
               w/szip filter, in production mode
       Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
               in production mode
       Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
       Mac OS X/32 10.6.1 (amazon) in debug mode
       Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-10-13 10:28:42 -05:00
Elena Pourmal
eb8838be0b [svn-r17637] Maintenance: Brought changes back from the trunk.
Platforms tested: pahra with ifort, g95 and gfortran.
2009-10-12 23:58:27 -05:00
Albert Cheng
5237ffce52 [svn-r17633] Bug 1192:
Added EXIT_SUCEESS and EXIT_FAILURE macro values test.

Tested:
h5committested.
2009-10-12 22:18:55 -05:00
Allen Byrne
d3aa5c967e [svn-r17632] Removed vnet assignments and allow default /vs8 and /ivf91 on command line.
Tested: windows
2009-10-12 15:27:04 -05:00
Peter Cao
ceddabad65 [svn-r17620] Add comments about h5diff changes 2009-10-08 14:47:25 -05:00
Albert Cheng
6f6a2c726d [svn-r17614] Updated with H5Pget_preserve fix information. 2009-10-08 09:10:15 -05:00
Albert Cheng
be6691b33d [svn-r17610] Bug fix (ID 1628):
There was a typo in the H5Pget_preserve that it was returning the wrong value.
Fixed. Also added a test in test/cmpd_dset.c to verify the correctness of
H5Pset_preserve and H5Pget_preserve.

Tested:
h5committest plus jam serial.
2009-10-07 19:17:11 -05:00
Albert Cheng
de76999134 [svn-r17607] ode Cleanup:
TFLOPS machine has retired long ago. Removed all code specific for its
support.

Test:
h5committested.
2009-10-07 00:31:49 -05:00
Quincey Koziol
190e10b63d [svn-r17605] Description:
Bring r17604 from trunk to 1.8 branch:

	Correctly invoke generic property list class callbacks all the way to
the root of the class hierarchy.

Tested on:
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2009-10-06 22:18:59 -05:00
Albert Cheng
98658b074e [svn-r17602] Bug fix:
The ph5diff tests printout incorrectly reporting they are running
h5diff when it actually is running ph5diff.
Fixed.

Tested: Jam (parallel), linew (serial)
No H5committest since it is a shell script and Jam tests both
serial and parallel h5diff for Linux while Linew tests Big
endian platform.
2009-10-06 17:05:15 -05:00
Quincey Koziol
ba0858ab7a [svn-r17600] Description:
Bring r17599 from trunk to 1.8 branch:

	Minor code cleanups, based on cleanups in the compress_group_fheap
branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-10-06 14:20:59 -05:00
Albert Cheng
b733be9eec [svn-r17593] Bug fix:
Release would leave behind an Makefile even if it did not exist before.

Fixed by restoring only the pre-existed Makefile.

Tested: Jam.
2009-10-05 19:08:34 -05:00
Binh-Minh Ribler
a7cf6ea11a [svn-r17588] Purpose:
Fixed bugzilla #1061
Description:
    Added a check for NULL before accessing a pointer
    Also, removed a few warnings about returning values
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-10-04 00:27:26 -05:00
Neil Fortner
c26ed138a6 [svn-r17586] Purpose: Fix bug 1597
Description:
When copying a dataset  using a vlen inside a compound, the various dataset
copying callbacks would allocate a background buffer but would not use it when
converting from disk to memory, only memory to disk.  This caused an assertion
failure as compounds always need a background buffer.  These callbacks have
been modified to use the background buffer for both conversions.

Tested: jam, linew, smirom (h5committest)
2009-10-02 15:54:51 -05:00
Albert Cheng
e8e9b163c3 [svn-r17579] added testlibinfo.sh testcheck_version.sh to be distcleaned.
Test: Jam.
2009-10-01 16:51:57 -05:00
Albert Cheng
7a607d519a [svn-r17577] Simple improvement to clean up go during "make check-clean"
and removed the redundant cleaning of Makefile.

Tested: jam parallel.
2009-10-01 16:45:56 -05:00
Quincey Koziol
47c9464d5d [svn-r17574] Description:
Bring r17573 from trunk to 1.8 branch:

	Fix several errors in code, which was not compiling... :-(

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-10-01 15:09:08 -05:00
Mike McGreevy
dbb2eadcaa [svn-r17572] Purpose:
Makefile Bug Fix

Description:

    Added $(EXEEXT) extension to H5detect when it's executed to generate
    H5Tinit.c so it works correctly on platforms that require the full
    extension when running executables.

Tested:

    h5committest, mingw, and user-verified (via submitted patch).
2009-10-01 14:52:37 -05:00
Mike McGreevy
11f088a44c [svn-r17568] Purpose:
Configure Fix

Description:

    Modified configure to set FC and CXX to "no" when fortran and c++ are
    not being compiled, respectively. This will prevent configure from running
    some checks on these compilers when they are not being used.

    This fixes a problem that was occuring when FC and/or CXX are set to
    a nonexistant or invalid compiler. Even if the languages were disabled,
    a libtool test would fail, thus preventing libtool from properly linking
    any libraries, yet configure would not flag an error message due to this
    because the languages were disabled.

Tested:

    - h5committest (jam, smirom, linew)
    - manually eyeballed configure output and logfile.
2009-10-01 12:06:48 -05:00
Allen Byrne
fbf7f470e2 [svn-r17565] Fix for Bug 1562. H5DS.c checked for other locations which need to account for platform dependent types in dealing with ds_list_t. Added generator program for test files of LE and BE dimension scales.
Tested: local linux, h5committest
2009-10-01 08:55:43 -05:00
Albert Cheng
d495a52fdd [svn-r17564] Fixed a syntax error that generates a file named 0.
Tested:
Jam as it is simple shell script change.
2009-09-30 22:46:05 -05:00
Allen Byrne
d98c4cb0e5 [svn-r17561] Fixed srcdir problem. Other fixes after complete testing.
Tested: h5committest - just smirom
2009-09-30 16:28:13 -05:00
Quincey Koziol
8746367121 [svn-r17556] Description:
Correct compile warnings and rename fiels to match the rest of the
test files in this directory.

	Note: this is currently failing for srcdir builds!

Tested on:
	FreeBSD/32 6.3 (duty)
2009-09-29 17:02:25 -05:00
Quincey Koziol
e3101ecc46 [svn-r17555] Description:
Bring r17553 from trunk to 1.8 branch:

	Bring general fixes/improvements from file_free_space branch back to
trunk.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
       Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                               in debug mode
       Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                               w/C++ & FORTRAN, in production mode
       Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                               w/szip filter, in production mode
       Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                               in production mode
       Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
       Mac OS X/32 10.5.8 (amazon) in debug mode
       Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                               in production mode
2009-09-29 16:53:19 -05:00
Allen Byrne
89404acc45 [svn-r17554] Fix for Bug 1562. H5DSis_attached needed to account for platform dependent types. Added test and test files for LE and BE dimension scales. Reworked part of test_ds file as part of debug.
Added missing H5Tclose in region reference routines.

Tested: local linux, smirom, linew
2009-09-29 15:18:22 -05:00
Albert Cheng
0ead3e8873 [svn-r17548] ------------------------------------------------------------------------
r17543 | acheng | 2009-09-28 23:43:22 -0500 (Mon, 28 Sep 2009) | 8 lines

New test: (Bug ID 1656):
Add new tests (tcheck_version, testcheck_version.sh) to verify H5check_version()
does issue warnings and abort accordingly.
Changed H5check_version() to suppress the warning message totally if
$HDF5_DISABLE_VERSION_CHECK is 2 or higher. (Old behavior treated 3 or higher
the same as 1, that is to print a warning and allows the program to continue.

Tests:
H5committed tested plus jam serial tested.
2009-09-29 11:45:07 -05:00
Larry Knox
0fa14048c2 [svn-r17540] Snapshot version 1.8 release 3 (snap12) 2009-09-27 17:06:09 -05:00
Neil Fortner
858c8af18f [svn-r17536] Purpose: Fix bug 1620
Description:
H5Ppublic.h listed H5Pget_filter_by_id1 and H5Pget_filter_by_id2 as returning
H5Z_filter_t, when in fact they return herr_t.  The header file has been
corrected to indicate that they return herr_t.

Tested: jam
2009-09-25 14:15:58 -05:00
Neil Fortner
ca0268116e [svn-r17533] Add note to RELEASE.txt for changes in r17531 2009-09-25 14:06:52 -05:00
Neil Fortner
a2faf5621f [svn-r17531] Purpose: Fix bug 1555
Description:
At several places in H5Pint.c properties were being compared using memcmp, not
using the registered "cmp" callback.  This could cause memory checkers to
report uninitialized memory errors, and could conceivably cause runtime errors
if memcmp reported false equality (for example if a value pointed to by the
property changed).

The code has been changed to always use the cmp callback.  Tests have been added that check this in all the places that previously used memcmp.

Tested: jam, linew, smirom (h5committest)
2009-09-25 13:11:40 -05:00
Quincey Koziol
51d3e9b173 [svn-r17527] Description:
Bring r17524 from trunk to 1.8 branch:

    Switch to using system call wrapper macros instead of "raw" system calls.

Tested on:
    Mac OS X/32 10.5.8 (amazon) w/debug & production
    (too minor to require h5committest)
2009-09-24 18:30:08 -05:00
Quincey Koziol
9726d77e95 [svn-r17526] Description:
Add backward compatibility test to make certain that the 1.8 library
handles encountering a file with a fixed array chunk index gracefully.

Tested on:
        FreeBSD/32 6.3 (duty) w/production
        (too minor to require h5committest)
2009-09-24 18:26:23 -05:00
Scot Breitenfeld
a52d213b55 [svn-r17519] Description:
Merged changes in the trunk/fortran to 1.8.

svn merge -r 17485:17517 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Brings bugfixes into 1.8 for:

Bug [1471] -  H5Tset_order_f missing constant option H5T_ORDER_NONE


Tested: smirom (ifort)
        smirom (pgi)
2009-09-24 15:43:03 -05:00
Raymond Lu
73f24a8ed0 [svn-r17517] In the function test_rw_noupdate, I added a test with the system functions to make
sure the stat function behaves as we expected.  This test is skipped on some system because 
the modification time from stat is the same as the last access time (We know OpenVMS behaves 
in this way).

Tested on jam.  I've tested the same change for the trunk on jam, smirom, and linew.  
My account for OpenVMS expired.  I'll test it once I have it back.
2009-09-24 14:24:48 -05:00
Larry Knox
e46380bfb6 [svn-r17509] Move misplaced ')' after make uninstall command so 'du -ks' command is run in test directory instead of running in snapshot directory. Snapshot directory has many more subdirectories and is often remote, increasing test running time and reporting incorrect disk usage.
Tested on smirom in hdfdts version.
2009-09-22 14:40:13 -05:00
Albert Cheng
40d2c29786 [svn-r17504] Bug fix:
Test failed with libhdf5.so not found in MacOS which uses a different
suffix (*.dylib) for shared lib.

Solution:
Added code to setup shared lib file suffix according to OS types.

Tested:
Tejeda, jam, linew.
2009-09-22 11:17:55 -05:00
Larry Knox
bb660b670b [svn-r17501] Snapshot version 1.8 release 3 (snap11) 2009-09-20 16:02:59 -05:00
Albert Cheng
ef2aa6be0b [svn-r17500] Bug fix and improvement.
Description:
Build failed when embedded-info is not enabled. Fixed.
testlibinfo.sh output was ugly, did not prepare the case of embedded-info
not enabled. Fixed.  Also changed NOT to test test binary even if static-exec
is enabled.

Tested:
jam (with and without embedded-info enabled).  Did not test in other
platforms since these were script changes that are platform independent.
2009-09-19 18:55:44 -05:00
Albert Cheng
3a83be48fb [svn-r17499] Purpose:
Stage 2 implementation of embedded library information feature.

H5.c: added code to print the embedded library information when there is
a library versions mis-match occurs. This ensures the library information
string is included in the executable.
Also modifies the code so that the Library mismatch warning string is
included only once in the executable.

H5private.h:
Added a global reference to the libinfo string variable to prepare
for possible stage 3 implementation of a public API.

test/testlibinfo.sh.in:
A new test added to verify the library information is indeed included
in the executables.

configure.in:
configure:
Added entry to auto-generate test/testlibinfo.sh.

H5detect.c:
Modified the libhdf5settings generating code to allow it to insert the
strings to a file other than stdout.  This maybe needed in stage 3
implementation.

MANIFEST:
updated with the newly added file of testlibinfo.sh.in.

Tested:
h5committest passed. Also passed jam in serial mode.
2009-09-18 13:34:37 -05:00
Allen Byrne
8664cb26c3 [svn-r17497] Corrected location of talign.c in project files.
Tested: Windows
2009-09-18 09:24:56 -05:00
Allen Byrne
2b1e09bc97 [svn-r17495] Updated to include new h5dump region reference tests. Also added missing display buffer resize test. 2009-09-17 15:59:34 -05:00
Allen Byrne
c44c9feb35 [svn-r17493] Bring changes from trunk to tools lib, h5dump and error handling.
Tested: h5committest, local linux
2009-09-17 15:37:09 -05:00
Raymond Lu
f4d69b78e5 [svn-r17490] Skip the test in the function test_rw_noupdate() for OpenVMS because the modification time
returned from the system function stat is the same as the last access time, making it 
impossible to test whether the file is modified.

Tested on jam for the same change in the trunk - simple change.
2009-09-17 14:27:18 -05:00
Scot Breitenfeld
c0bb2c979b [svn-r17486] Description:
Merged changes in the trunk/fortran to 1.8.

svn merge -r 17222:17485 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Brings bugfixes into 1.8 for:

Bug [1652] h5lget_info_by_idx_f missing/broken functionality
and 
Bug [1653] H5_LINK_* values defined in H5f90global.f90 are incorrect

Tested: jam (ifort)
        smirom (gfortran)
        linew (f90)
2009-09-17 12:03:42 -05:00
Raymond Lu
7dc63bdf27 [svn-r17481] Added H5Fsuper_cache.c to the make.com.
Not tested yet.
2009-09-15 13:57:14 -05:00
Larry Knox
8185461991 [svn-r17472] Snapshot version 1.8 release 3 (snap10) 2009-09-13 15:49:59 -05:00
Allen Byrne
4faad745e8 [svn-r17469] Update windows batch file to match the testh5diff.sh script change in rev 17467.
Tested: windows
2009-09-11 16:40:23 -05:00
Allen Byrne
885e92cba8 [svn-r17468] Corrected use of _Debug preprocessor value in release configurations of hdf5_f90cstubdll.vcproj
Removed extraneous configurations attached to files in libtest project files.
Corrected examples project file's debug configuration.
2009-09-11 15:44:41 -05:00
Peter Cao
aeec66cf49 [svn-r17467] " Use strict equality as default
"   Use "--use-system-epsilon" for system EPSILON
"   Use "-p" or "-d" for whatever user's choice of epsilon
"   Use "-p 0" or "-d 0" for strict equality (same as default)
2009-09-11 15:15:22 -05:00
Quincey Koziol
258d4b3835 [svn-r17464] Description:
Bring r17463 from trunk to 1.8 branch:

   Add another regression test for userblock+alignment usage, and correct
[another] issue with the combination. *sigh*

Tested on:
   FreeBSD/32 6.3 (duty) in debug mode
   (h5committested on trunk)
2009-09-11 08:27:04 -05:00
Quincey Koziol
0b3fbf9089 [svn-r17462] Description:
Bring r17461 from trunk to 1.8 branch:

Fix a few more problems when the user block is not aligned properly.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-09-10 14:33:12 -05:00
Quincey Koziol
d5c3626181 [svn-r17460] Description:
Bring r17459 from trunk to v1.8 branch:

	Correct bad interaction between non-zero userblocks with non-zero
alignments.

	Also add some additional range checking and tests for invalid userblock
sizes.

Tested on:
   FreeBSD/32 6.3 (duty) in debug mode
   (h5committested on trunk)
2009-09-08 16:16:31 -05:00
Larry Knox
ef70e57999 [svn-r17453] Snapshot version 1.8 release 3 (snap9) 2009-09-06 15:50:18 -05:00
Mike McGreevy
c7be102c70 [svn-r17448] Purpose:
Script Update

Description:

    Updated autoconf version in bin/chkconfigure script to 2.64
2009-09-03 13:40:20 -05:00
Mike McGreevy
3c0de7fb0c [svn-r17441] Purpose:
Merge from trunk

Description:

    Merged revisions 17228 and 17440 from trunk to 1.8

    Specifically, this brings support of --enable-static-exec flag into 1.8

Tested:

    Manually on jam, linew, smirom, liberty, plus h5committest.

    Currently, there is no automatic regression test that exists due to
    portability issues. Behavior is both different and undefined on certain
    systems (and while 'nm' command seems to exist on all machines, behavior
    is confirmed to be different on Mac, possibly others). Solution will be 
    to set up some sort of framework in daily tests to build statically, 
    remove shared paths, and verify executables can function.
2009-08-31 13:38:17 -05:00
Mike McGreevy
ee3ed7a67f [svn-r17439] Purpose:
Updating autotools

Description:

    Bring revisions 17345 and 17357 from trunk to 1.8, specifically:

    - Automake upgraded to 1.11
    - Autoconf upgraded to 2.64
    - bin/reconfigure script edited to use new versions (on jam), and
      run to generate new configure script and Makefile.in's.
    - configure.in script edited to add "_cv_" to all AC_CACHE_VAL strings
      (in order to comply with new autoconf standard).
    - bin/install-sh script replaced with new version as provided
      by automake.

Tested:

    - All issues on trunk were resolved, so only tested on jam and linew. Any
      other outliers should be caught by daily tests.
2009-08-31 10:28:10 -05:00
Larry Knox
4f9b08427b [svn-r17437] Snapshot version 1.8 release 3 (snap8) 2009-08-30 16:45:54 -05:00
Quincey Koziol
5d795c0260 [svn-r17433] Description:
Bring r17432 from trunk to 1.8 branch:

        Simplify dataspace cleanup code.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-27 14:46:11 -05:00
Quincey Koziol
39641369fe [svn-r17431] Description:
Bring r17429 from trunk to 1.8 branch:

Remove unnecessary v2 B-tree 'retrieve' callback from v2 B-tree clients.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-27 12:03:12 -05:00
Elena Pourmal
0595d6b912 [svn-r17419] Maintenance: Restored the content of the file. Checked that file
is modified correctly by bin/h5vers and bin/release scripts.
2009-08-25 11:32:22 -05:00
Quincey Koziol
b6494f0fc9 [svn-r17415] Description:
Bring r17408, 17411, 17412, 17413 & 17414 from trunk back to 1.8 branch:

r17408:
	Move flush operation on mounted file hierarchy into H5Fmount module.

r17411:
	Make H5AC_flush just flush the cache and make H5AC_dest perform the
proper parallel synchronization before destroying the cache.  Also, further
discriminate between 'closing' and 'non-closing' actions in H5F_flush.

r17412:
	Seperate 'flush' functionality from 'destroy' functionality at the
H5F level also.

r17413:
	Remove vestigial intermediate routine for flushing file and move it
into API routine.  Also, remove private, unused (now) 'H5F_FLUSH_DOWN' symbol
from public header file.

r17414:
	Flush the core VFD's buffer before closing the file, also flush the
metadata accumulator before reseting it.  Write the driver info message out
in the superblock flush routine more directly, instead of using wrapper
routine, since the wrapper routine won't work when the superblock is being
shutdown.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-24 14:09:36 -05:00
Larry Knox
81e3eef99a [svn-r17410] Snapshot version 1.8 release 3 (snap7) 2009-08-23 18:37:12 -05:00
Raymond Lu
b328dbbc31 [svn-r17406] I added a condition check for the conversion from unsigned to float. When the configure
detects the conversion working, a macro is set.  If there's problem with this conversion like
Pathscale compiler, skip the test.

Tested on jam.  Need to verify it on pathscale machine.
2009-08-21 14:00:38 -05:00
Quincey Koziol
d96910fe93 [svn-r17404] Description:
Bring r17402 & r17403 from trunk to 1.8 branch:

r17402:
    Switch from using a 'flags' parameter to the flush routine(s), to just
using a single 'closing' boolean parameter, since that's all we're doing with
the flags anyway and this makes things more obvious.

r17403:
    Eliminate 'closing' flag to dataset flush routine, since all cached
dataset information has already been flushed when a file is closed and the
datasets themselves will be closed (and the dataset caches destroyed).

    Skip calling more flush routines when the file is closing, in preparation
for eventual separation of the 'flush' concept from the 'shutdown the cache'
concept.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-21 06:33:44 -05:00
Quincey Koziol
9316a67a89 [svn-r17401] Description:
Bring r17400 from trunk to 1.8 branch:

	Refactor H5F_flush into two routines, one which handles the recursion/
iteration necessary to handle mounted files; and one which just handles the
flush operation for a single file.

	Also, remove H5F_FLUSH_INVALIDATE and switch all code to depend on
H5F_FLUSH_CLOSING.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-20 22:22:38 -05:00
Quincey Koziol
6ee76fffc7 [svn-r17399] Description:
Bring r17393 and r17398 from trunk to 1.8 branch:

Bring back more changes from the file free space branch to the trunk. (17393)

First set of changes to move VFD 'truncate' call out of H5F_flush and defer
it until the file is closed. (17398)

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-20 16:54:04 -05:00
Raymond Lu
d96442aae5 [svn-r17396] Added a comment to explain what "dst" and "ans" are when errors happen.
Tested on jam - simple change.
2009-08-20 14:36:21 -05:00
Quincey Koziol
5fc9bd9a5e [svn-r17395] Description:
Update release notes with note about fixing Bz#1473.
2009-08-20 14:18:07 -05:00
Quincey Koziol
7a91bd45d4 [svn-r17389] Description:
Bring r17388 from trunk to 1.8 branch:

	Correct error in freespace test which was relying on free space section
to be valid after the library had taken ownership of it (and therefore could
free it).

	Also correct some checking for return values of H5FS internal routines

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-19 21:05:49 -05:00
Raymond Lu
91e6f1e04d [svn-r17387] I added a detection for the correctness of converting from unsigned long to float in the
configure.in.  The Pathscale compiler on Sandia's Linux machine misinterprets the values of 
unsigned long as negative during the conversion to float, when the first bit of unsigned long
is on.  

Tested on jam.  Need to test it on Sandia's machine.
2009-08-19 16:57:12 -05:00
Raymond Lu
d1ee62c915 [svn-r17386] Added some comments.
No test needed.
2009-08-19 16:46:46 -05:00
Raymond Lu
24b03e3472 [svn-r17384] Corrected the path.
Not tested yet.
2009-08-19 16:36:23 -05:00
Allen Byrne
05fb67f75d [svn-r17383] Added UNC external links tests for windows only.
Tested: windows
2009-08-19 08:50:46 -05:00
Quincey Koziol
d5dfe34e0a [svn-r17380] Description:
Bring r17376 from trunk to 1.8 branch:

	Make similar change to windows VFD as sec2 VFD, when converting from
a family file to a single file.

	Tweak file sizes expected for parallel tests.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2009-08-18 17:29:03 -05:00
Allen Byrne
4b160dd890 [svn-r17378] Added new file to library project file, H5Fsuper_cache.c.
Cleaned project files of extraneous project info that should not have been used. The info was removed from individual files.

Tested: windows
2009-08-18 16:32:16 -05:00
Allen Byrne
05f36e2be8 [svn-r17375] Added Windows version of HDsleep macro needed for a test in test/tfile.c.
Tested: windows
2009-08-18 15:14:41 -05:00
Quincey Koziol
ebde7af78a [svn-r17374] Description:
Bring r17365 from trunk to 1.8 branch:

	Final merge of changes from sblock_mdc branch back to trunk.  The
superblock is now managed by the metadata cache.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-18 13:25:49 -05:00
Allen Byrne
339471fe0d [svn-r17370] Added h5dump/h5ls display buffer resize fixed in tools library. 2009-08-17 09:22:07 -05:00
Larry Knox
b1c3c4abe3 [svn-r17368] Snapshot version 1.8 release 3 (snap6) 2009-08-16 17:06:45 -05:00
Quincey Koziol
d47fb4b752 [svn-r17359] Description:
Bring r17336 from trunk to 1.8 branch:

	Bring more changes from the file_free_space branch into the trunk.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-14 10:42:11 -05:00
Quincey Koziol
92b37616d2 [svn-r17354] Description:
Bring r17351 from trunk to 1.8 branch:

	Clean up code (to align w/future sblock_mdc branch changes), tweak
tests for [slightly] easier debugging, fix memory leak when copying chunked
datasets with I/O filters, fix memory leak of free space section when it was
exactly the right size to use for extending an existing block in the file.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-13 14:17:29 -05:00
Raymond Lu
5e435bd8ac [svn-r17350] I added the simple test for h5jam and the build for h5repart.
Not tested yet.
2009-08-13 11:11:33 -05:00
Quincey Koziol
1db993a271 [svn-r17342] Description:
Bring r17341 from trunk to 1.8 branch:

        Tweaks to comments, to better align with changes on sblock_mdc branch

Tested on:
        Just eyeballed, only tweaks to comments
2009-08-11 23:10:00 -05:00
Larry Knox
6a72ec80e5 [svn-r17339] Snapshot version 1.8 release 3 (snap5) 2009-08-11 21:27:55 -05:00
Quincey Koziol
5f9e36528c [svn-r17332] Description:
Bring r17331 from trunk to 1.8 branch:

	Bring back more changes from file free space branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-11 15:43:22 -05:00
Albert Cheng
37cea8f1b6 [svn-r17327] Added the recognization of PathScale compilers. Also added the known
problem of PathScale MPI failure when accessing a Panasas file system.
2009-08-11 15:13:01 -05:00
Quincey Koziol
35fc6fe082 [svn-r17325] Description:
Bring r17324 from trunk to 1.8 branch:

	Bring more improvements/changes back from file_free_space branch

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-11 12:28:42 -05:00
Quincey Koziol
445fec27e1 [svn-r17320] Description:
Bring r17319 from trunk to 1.8 branch:

	Bring more superblock manipulation & aggregator changes from file free
space branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-11 08:03:13 -05:00
Albert Cheng
5aa72127e6 [svn-r17317] Did some code cleanup.
t_file.c: replace the old variable, color, with a more meaningfule name of
    is_old.
t_mpi.c: use the official mpi_file_delete, instead of remove, to delete a file
    in MPI environment.

Tested:
Only jam in parallel as changes are trivial.
2009-08-11 05:34:58 -05:00
Quincey Koziol
908ce6d721 [svn-r17314] Description:
Bring r17313 from trunk to 1.8 branch:
	Bring back various minor code cleanups from the file free space branch

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
       Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                               in debug mode
       Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                               w/C++ & FORTRAN, in production mode
       Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                               w/szip filter, in production mode
       Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                               in production mode
       Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
       Mac OS X/32 10.5.8 (amazon) in debug mode
       Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                               in production mode
2009-08-10 13:02:57 -05:00
Quincey Koziol
db134c8627 [svn-r17303] Description:
Bring r17302 from trunk to 1.8 branch:

    Correct errors on machines (like Windows) that don't have C99 named
initializer support.

Tested on:
    Mac OS X/32 10.5.7 (duty)
    Windows build (by Allen)
2009-08-04 17:56:24 -05:00
Allen Byrne
0a2d67ebdf [svn-r17298] Specified HDTarray_create and HDCreate as HDTarray_create2 and HDCreate2 in gent_array8 function as was done in other gent_arrayX functions. Fixes 1.6 compatibility mode argument errors.
Tested: linux
2009-08-04 08:59:33 -05:00
Albert Cheng
ab23b45259 [svn-r17294] Updated for newly added files.
Tested by bin/chkmanifest.
2009-08-01 16:30:06 -05:00
Allen Byrne
1cbd7b4fd7 [svn-r17290] Added test targeted for bug 1520, which was fixed last week. The test generates an array datatype of ints larger than the display buffer. The bug was exposed when the buffer was reallocated.
Tested: linux
2009-07-31 15:11:51 -05:00
Allen Byrne
6a24df2bb9 [svn-r17288] Added the two infinity tests to the windows batch script to match the linux test script. 2009-07-31 13:27:18 -05:00
Quincey Koziol
3816a02c03 [svn-r17286] Description:
Bring r17284 from trunk to 1.8 branch:

    Remove unneccessary dest. layout information from chunked dataset copying
routine.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    h5committested on trunk
2009-07-31 00:09:11 -05:00
Quincey Koziol
92b1407a53 [svn-r17282] Description:
Bring r17281 from trunk to 1.8 branch:

    Further refactoring of the dataset layout information, to separate the
storage information from the layout info.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    h5committested on trunk
2009-07-30 22:36:04 -05:00
Quincey Koziol
d96e6789c0 [svn-r17277] Description:
Bring r17275 and r17276 from trunk to 1.8 branch.

Tested on:
    Mac OS X/32 10.5.7 (amazon) w/debug & production
    (too minor to require h5committest)
2009-07-30 13:50:14 -05:00
Quincey Koziol
aaa84b4542 [svn-r17274] Description:
Bring r17272 from trunk to 1.8 branch:

    Finish pushing contiguous storage size from 'layout' into 'storage"
data structure.

Tested on:
    Mac OS X/32 10.5.7 (amazon) w/debug & production
    Too minor to require h5committest
2009-07-29 22:48:44 -05:00
Quincey Koziol
31a7cd56bf [svn-r17271] Description:
Bring r17269 from trunk to 1.8 branch:

    Refactor how serialized size of layout message is computed, slightly.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    FreeBSD/32 6.3 (duty) debug
    Too minor to require h5committest
2009-07-29 21:57:12 -05:00
Quincey Koziol
981ba55190 [svn-r17266] Description:
Clean up various compiler warnings from IRIX64 build

Tested on:
    Mac OS X/32 (amazon) debug & production
    (yes, I know it's not an IRIX64 system :-)
    Too minor to require h5committest
2009-07-29 19:17:17 -05:00
Quincey Koziol
03d1221bd8 [svn-r17265] Description:
Bring r17264 from trunk to 1.8 branch:

	Refine how we store the chunk index address in the layout storage
structure.

Tested on:
        FreeBSD/32 6.3 (duty) debug
        Mac OS X/32 10.5.7 (amazon) debug & production
        Too minor to require h5committest
2009-07-29 18:38:26 -05:00
Quincey Koziol
ded93bd0c4 [svn-r17262] Description:
Bring r17261 from trunk to 1.8 branch:

	Refactoring dataset layout information to segregate the constant items
from the variable items (at least from a storage standpoint).

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest performed on trunk)
2009-07-29 16:46:32 -05:00
Peter Cao
4dd601ef37 [svn-r17260] add test cases for h5diff 2009-07-29 11:33:23 -05:00
Allen Byrne
c0f91e15c5 [svn-r17258] Added new file, H5Dlayout.c to project files.
Tested XP32 VS2005
2009-07-28 16:40:31 -05:00
Peter Cao
3bbdfcd5f7 [svn-r17255] Fixed Bug 1563 - h5diff and Infinity
Added test cases.
2009-07-28 15:08:09 -05:00
Binh-Minh Ribler
0e50d368cd [svn-r17253] Description:
Fixed typos only.

Platforms tested:
    Linux/32 2.6 (jam)
2009-07-28 11:08:37 -05:00
Raymond Lu
c36ee92005 [svn-r17251] Added H5Dlayout.c to the source and updated the test script file for h5import.
Not tested yet.
2009-07-28 10:56:13 -05:00
Quincey Koziol
902de51188 [svn-r17244] Description:
Bring r17243 from trunk to 1.8 branch:

	Refactor how the layout message is created/written/read in the
dataset's object header.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(change h5committested on trunk)
2009-07-27 17:22:39 -05:00
Binh-Minh Ribler
0fb5c9b678 [svn-r17239] Purpose: Fix bug and improve readability
Description:
    - Revised DataSet::write to pass in correct string buffer
    - Added member function DataSet::getInMemDataSize() to simplify
      getting the dataset's data size in memory.
    - Added private functions for reading fixed- and variable-len
      string data: p_read_fixed_len and p_read_variable_len.
    - Added tests to write/read array of strings to datasets.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-27 00:41:46 -05:00
Quincey Koziol
8c1762f8a6 [svn-r17231] Description:
Bring r17230 back from trunk to 1.8 branch:
       Various minor tuneups noticed in working on the revise_chunks branch.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    full testing done on trunk before bringing change back.
2009-07-23 16:57:52 -05:00
Raymond Lu
434a6d2f8b [svn-r17229] Disable a test as C script does. 2009-07-23 16:08:17 -05:00
Scot Breitenfeld
254eb548cc [svn-r17223] Merged the fortran trunk into the branch:
svn merge -r 17164:17222 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

tested: smirom (ifort, pgf90, gfortran, g95), linew
2009-07-22 10:28:49 -05:00
Binh-Minh Ribler
b88498636f [svn-r17219] Purpose: Improve readability
Description:
    Divided Attribute::read into specific private functions for fixed-
    and variable-len string data: p_read_fixed_len and p_read_variable_len.

    Added test to write/read array of strings to attributes.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-21 23:12:48 -05:00
Binh-Minh Ribler
3cbb84471a [svn-r17218] Purpose: Improve readability
Description:
    Divided Attribute::read into specific private functions for fixed-
    and variable-len string data: p_read_fixed_len and p_read_variable_len.

    Added test to write/read array of strings to attributes.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-21 23:12:31 -05:00
Albert Cheng
eea0105a54 [svn-r17217] Bug fix (1468)
PathScale was mistaken as the Gcc compiler such that gcc flags were added
to it but PathScale did not honor many of them. (e.g. -Wvariadic-macros,
-Wold-style-definition, -Winit-self, -Wvariadic-macros, -Wmissing-include-dirs,
-Winit-self, -Wc++-compat)

Solution:
Added a pre-condition to detect pathScale compiler before Gcc is
accepted.

Tested:
Sandia Glory where PathScale compiler is available.
2009-07-21 19:06:47 -05:00
Allen Byrne
1bde0ccb95 [svn-r17212] The function h5tools_str_append() incorrectly used the trio of functions: va_start(), HDvsnprintf(), and va_end(). When the boundary of the string buffer was reached and resized, the HDvsnprintf() function recalled without the other two functions in the code loop. This usage exposed bug 1520 by a user.
Tested: linux
2009-07-21 14:45:34 -05:00
Neil Fortner
01c179093f [svn-r17208] Fixed a small bug in the fractal heap code involving filtered fractal heaps.
Tested: jam, linew, smirom (h5committest)
2009-07-21 14:22:17 -05:00
Albert Cheng
cf53b01cb9 [svn-r17200] Changed default Gnu fortran compiler from g95 to gfortran since
gfortran is more likely installed with gcc now.
2009-07-19 18:47:25 -05:00
Albert Cheng
a1b9964716 [svn-r17197] Changed default Gnu fortran compiler from g95 to gfortran since
gfortran is more likely installed with gcc now.

Tested:
jam and amani which covers both linux and linux64.
No h5committest because this is gnu compiler specific, usually
applicable to Linux.
2009-07-19 18:30:33 -05:00
Raymond Lu
5800d12b4e [svn-r17194] Enable h5copy test.
Not tested yet.
2009-07-16 11:14:22 -05:00
Albert Cheng
14adeb6772 [svn-r17186] The ret_value is a (H5A_t *) but FAIL was used. This typo caused a warning
from Linux gcc but resulted in error by AIX xlc compiler.

Solution:
Changed FAIL to NULL.

Tested:
Just compiling in the AIX system.
2009-07-14 19:22:06 -05:00
Raymond Lu
d678c5b596 [svn-r17185] Fixed a typo.
Not tested yet.
2009-07-14 16:39:45 -05:00
Raymond Lu
b9b20ad8f4 [svn-r17183] Fixed and updated the script files.
Not test yet.
2009-07-14 15:46:50 -05:00
Raymond Lu
20fa663053 [svn-r17181] Minor fix - The way that H5Tset_size checks whether the datatype is a string wasn't
correct.  I changed it to use the macro H5T_IS_STRING.

Tested on jam - simple change.
2009-07-14 11:32:20 -05:00
Raymond Lu
8f25819df5 [svn-r17180] In my last round of checkin (r17176), I forgot to clean up some code. I'm checking in
the fix now.

Tested on jam - simple change.
2009-07-14 10:54:25 -05:00
Raymond Lu
71d75b40ee [svn-r17179] I added a test of H5Tencode/decode for variable-length string type. This test is for
the bug fix of #1585 in last round of checkin.

Tested on jam.  I used h5committest for the same change in the trunk.
2009-07-13 14:08:00 -05:00
Raymond Lu
75800cf6b5 [svn-r17176] In H5Odtype.c, the decoding function used to mark the datatype as on disk. I changed it
to undefined and let the caller functions decide the location of the datatype.  For
H5Tdecode, it should mark the datatype as in memory.  For other callers like H5Dopen or
H5Aopen, they should makr it as on disk.

Tested it on jam, smirom, linew.
2009-07-13 10:39:05 -05:00
Larry Knox
b50178ea1a [svn-r17172] Add simple perl script supplied by user to check for duplicate entries in MANIFEST. Duplicate entries will be reported along with any other MANIFEST errors and cause exit value to be 1.
Tested on jam, linew, smirom, and tg-login2.
2009-07-09 11:44:47 -05:00
Scot Breitenfeld
0b861519c5 [svn-r17165] Description:
Removed extra space after !DEC$ to satisfy absoft compiler.

tested: smirom
2009-07-08 09:53:01 -05:00
Larry Knox
259a4bc92a [svn-r17158] Snapshot version 1.8 release 3 (snap4) 2009-07-05 23:30:23 -05:00
Quincey Koziol
27c6981c41 [svn-r17153] Description:
Bring r17152 from trunk to 1.8 branch:

    Clean up some minor formatting and misc. errors noticed while working on
fixed array code merge.

Tested on:
    Mac OS X/32 10.5.7 (amazon)
    Too minor to require h5committest
2009-07-02 19:33:15 -05:00
Quincey Koziol
856a80b949 [svn-r17150] Description:
Bring r17148:17149 from trunk into 1.8 branch:

   Refactor how chunked dataset information is computed, moving it earlier and
avoiding more recomputation.

Tested on:
   FreeBSD/32 6.3 (duty) in debug mode
   FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
   Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
       in debug mode
   Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
       w/C++ & FORTRAN, in production mode
   Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
       w/szip filter, in production mode
   Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
       in production mode
   Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
   Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
   Mac OS X/32 10.5.7 (amazon) in debug mode
   Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
       in production mode
2009-07-02 18:38:38 -05:00
Quincey Koziol
b0df711c3c [svn-r17147] Description:
Bring r17146 from trunk to 1.8 branch:

        Bring a bunch of misc. improvements & tweaks from the revise_chunks
branch back to the trunk, so that future merges won't be so painful.

Tested on:
	FreeBSd/32 6.3 (duty)
	(h5committested on trunk)
2009-07-02 16:17:02 -05:00
Quincey Koziol
55a945c985 [svn-r17139] Description:
Bring r17138 from trunk into 1.8 branch:

    Disable use of temporary file space allocation when using a parallel VFD,
until we've made changes to broadcast the new address of the metadata when it
is relocated down into 'normal' file space.

Tested on:
    Mac OS X/32 10.5.8 (amazon)
    (h5committested on trunk)
2009-07-01 16:26:27 -05:00
Larry Knox
732e64b335 [svn-r17134] Snapshot version 1.8 release 3 (snap3) 2009-07-01 12:13:58 -05:00
Raymond Lu
2d0b2588f6 [svn-r17131] Corrected some typos. No test is needed. 2009-06-30 11:10:00 -05:00
Raymond Lu
2a6efe9e10 [svn-r17127] A revision from last round of checkin (r17124). H5Aopen_name has been deprecated. I
replaced it with H5Aopen in this round.  I also updated some hard-coded numbers with some
macros.

Tested on jam only.  I have tested the same change for the trunk.
2009-06-29 13:24:00 -05:00
Raymond Lu
c0f0e7c419 [svn-r17124] Bug fix #1513. Reading an empty attribute caused seg fault. The flag "initialized" in
the attribute structure wan't set correctly.  It caused some confusion in H5A_read.  This
flag was actually redundant because the library can alwasy check if the data buffer is
present.  To fix it, I removed the "initialized" flag in the attribute structure and let
H5A_read check the data buffer.

I tested it on jam only but have tested the same change for the trunk on jam, smirom, 
and linew.
2009-06-26 15:24:42 -05:00
Neil Fortner
4af1a11dcf [svn-r17121] Add bug number for yesterday's fix. 2009-06-26 14:53:55 -05:00
Albert Cheng
b10f530bdf [svn-r17114] Newer Solaris compiler uses -m64 inplace of -xarch=v9 which is deprecated.
Update the install instruction.

No test needed.
2009-06-26 07:52:13 -05:00
Elena Pourmal
a9733bd0e9 [svn-r17113] Maintenance: Removed duplicated entry from the MANIFEST file. 2009-06-25 16:21:27 -05:00
Neil Fortner
f5fddfb7c1 [svn-r17109] Purpose: Fix bug in H5Z_filter_info
Description:
Previously, when H5Z_filter_info was called for a filter that was not present,
it would succeed and return the information from one position past the end of
the pipeline, possibly causing a segfault.  This affected at least
H5Pget_fitler_by_id1/2, and possibly other API functions.  Fixed to properly
return failure.

Tested: jam, linew, smirom (h5committest)
2009-06-25 13:58:51 -05:00
Allen Byrne
c76a57f557 [svn-r17107] Added new windows build examples batch file 2009-06-25 07:37:09 -05:00
Allen Byrne
1da12c1410 [svn-r17102] Added missing Windows batch file. 2009-06-24 14:36:16 -05:00
Allen Byrne
96e548223d [svn-r17100] Corrected batch file to test C++ examples 2009-06-24 14:00:59 -05:00
Scot Breitenfeld
e9e393a494 [svn-r17086] Description:
Removed debugging print statements.
2009-06-18 14:55:13 -05:00
Quincey Koziol
b1b2c88b2c [svn-r17084] Description:
Bring r17038-17039,17045,17062 from trunk to 1.8 branch:

	Switch fractal heap direct & indirect blocks to use temp. space alloc.

	Improvements to metadata accumulator

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-18 12:49:17 -05:00
Quincey Koziol
b6cfe32b73 [svn-r17083] Description:
Bring r17010,17017,17021-17022,17029-17031,17035 back from trunk:

	"temporary" file allocation space changes.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-18 12:20:50 -05:00
Larry Knox
79a41596f5 [svn-r17082] Disable hanging invalid files test. 2009-06-18 10:33:51 -05:00
Allen Byrne
c75dd8fadc [svn-r17078] Implemented nowrap option (Bug 811) equivalent to h5ls tool. Also updated usage output.
Tested: linux
2009-06-17 13:49:51 -05:00
Pedro Vicente Nunes
86fa22c385 [svn-r17077] merge 17076 from trunk
bug fix: h5repack was not applying a requested contiguous layout for a dataset with filters
added a test to the C program test (not to the script), that verifies the layout and filters

tested: linux
2009-06-17 13:42:23 -05:00
Pedro Vicente Nunes
93a6cd92d7 [svn-r17060] merge 17058 from trunk
added some "dummy" declarations for d_status
tested: linux
2009-06-16 15:44:14 -05:00
Allen Byrne
8be813993f [svn-r17057] Rev 17053 added new test to h5repack test script, which requires that the windows batch file be updated.
Tested: Windows XP32
2009-06-16 13:06:14 -05:00
Allen Byrne
eb668be994 [svn-r17055] Added missing windows vnet project files. 2009-06-16 07:51:43 -05:00
Pedro Vicente Nunes
a44e5df96e [svn-r17053] merge 17052 from trunk
Add a run to the h5repack shell script to read a family file
The file used for input is located in the common source tools for testfiles, in tools/testfiles
Modified the h5repack shell script to read files from this location (h5repack reads its input files from a dedicated testfiles location in h5repack/testfiles)
Changed the h5diff open file call to use h5tools_fopen, so that it can open all file drivers


Tested: linux
2009-06-15 14:25:04 -05:00
Scot Breitenfeld
6ce6f90de8 [svn-r17051] merge changes from the trunk into the branch
svn merge -r 16797:17050 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran


platforms tested: smirom: ifort, icc
2009-06-15 11:56:13 -05:00
Allen Byrne
2c6356db6e [svn-r17050] Added perf_serial project files to Windows vnet folder.
Tested: Windows XP32
2009-06-15 10:22:15 -05:00
Larry Knox
93e72bbde4 [svn-r17048] Snapshot version 1.8 release 3 (snap2) 2009-06-14 16:06:17 -05:00
Allen Byrne
214fce63a9 [svn-r17044] Corrected Windows solution files for branch
Tested: windows
2009-06-12 09:27:05 -05:00
Allen Byrne
da8917ffa3 [svn-r17043] Undo the addition of generated files, mistakenly added by lack of attention. 2009-06-12 08:34:44 -05:00
Allen Byrne
fae180790e [svn-r17042] Updated perf_serial test to work on windows. Bring back from trunk.
Tested:
Windows
2009-06-12 08:30:16 -05:00
Allen Byrne
170b1f6755 [svn-r17041] New perf_serial project files 2009-06-12 08:14:13 -05:00
Allen Byrne
5f7dc72173 [svn-r17037] perf_serial project files added and test added to performance batch file
Tested: XP32 VS2005
2009-06-11 15:53:55 -05:00
Allen Byrne
9f0bec79a2 [svn-r17036] Updated perf_serial test to work on windows. Bring back from trunk.
Tested:
Windows
2009-06-11 15:52:56 -05:00
Neil Fortner
bc2bd03a46 [svn-r17026] Purpose: fix bug 1593
Description:
When using H5T_copy on committed datatypes that are already open, H5T_copy would
properly use the already existing shared struct, but would still deep copy all
of the fields in that struct.  This would cause memory leaks, and in the case of
a compound containing a vlen (or reference), the change in size would cause the
size of the resulting type to be set to an incorrect value.  Changed H5T_copy to
properly avoid deep copies when using a reopened shared struct.

Tested: jam, linew, smirom (h5committest), purify on jam
2009-06-10 14:22:09 -05:00
Scot Breitenfeld
6615339560 [svn-r17023] Description:
Added debug statements in order to investigate intermittent failing of test on honest4 at NCSA, remove after debugging.
2009-06-10 11:03:42 -05:00
Quincey Koziol
7d5ef3e8ad [svn-r17020] Description:
Bring revision 17019 from trunk to 1.8 branch:

	Break out the configure check for fseeko & ftello from lseek64/fseek64/
ftruncate64, since the check for the latter routines is not a valid check for
the former routines.

Tested on:
	(h5committested on trunk)
2009-06-09 15:15:09 -05:00
Larry Knox
745c40b753 [svn-r17013] Snapshot version 1.8 release 3 (snap1) 2009-06-07 16:26:54 -05:00
Quincey Koziol
f4f0c14939 [svn-r17004] Description:
Bring r17002 from trunk to 1.8 branch:

        Rename H5O_protect/H5O_unprotect to be H5O_pin/H5O_unpin, since that's
    what that are actually doing.

        Add counter of the number of times the object header is pinned, to allow
    H5O_pin/H5O_unpin to be called reentrantly.

Tested on:
    Mac OS X/32 10.5.7 (amazon) w/debug & prod
    h5committest already run for trunk version of change
2009-06-04 10:31:50 -05:00
Pedro Vicente Nunes
af7d1c4cd4 [svn-r16999] merge 16991 from trunk
change messages of -c option 
tested: windows, linux
2009-06-03 08:57:17 -05:00
Larry Knox
95bd7eac47 [svn-r16993] Snapshot version 1.8 release 3 (snap0) 2009-06-01 12:53:19 -05:00
Quincey Koziol
6bd725cec3 [svn-r16987] Description:
Bring r16986 from trunk to 1.8 branch:
        Clean up formatting & error reporting.

Tested on:
    Mac OS X/32 10.5.7 (amazon)
    (h5committest done on trunk)
2009-05-27 13:30:22 -05:00
Quincey Koziol
4f4902d083 [svn-r16974] Description:
Bring r16973 back from trunk to 1.8 branch:

	 Refactor chunk cache entry information to remove some [actually] unused
fields.

Tested on:
	<tested on trunk>
2009-05-21 13:56:59 -05:00
Pedro Vicente Nunes
fa656be59d [svn-r16965] merge 16964 from trunk
bug fix: the phrase "Not comparable" was not being printed for the case of different classes
tested: windows, linux
2009-05-20 09:23:23 -05:00
Allen Byrne
1ad6816d15 [svn-r16953] corrected name of zlib in Section IV, part 3, step 2
Tested: windows
2009-05-15 10:20:24 -05:00
Pedro Vicente Nunes
0423a2ce6e [svn-r16948] merge 16947
#1522 (B1) h5ltread_dataset_string_f error with g95
ISSUE: h5ltread_dataset_string_f causes library assertion with g95. 
SOLUTION: convert the fortran string buffer to a C buffer with HD5f2cstring, and pass this string to the C function
TEST: added a test call in the fortran test lite program
DOCS: added the note in RELEASE.txt "- Lite: the h5ltread_dataset_string_f and h5ltget_attribute_string_f functions had memory problems with the g95 fortran compiler. (PVN - 5/13/2009) 1522
tested: linux g95, windows fortran intel 11
2009-05-13 14:29:07 -05:00
Pedro Vicente Nunes
8e0bce9dab [svn-r16946] merge 16945 from trunk
bug fix. call free on a string allocated by HD5f2cstring
tested: linux, windows
2009-05-13 11:46:21 -05:00
Mike McGreevy
58cda2617e [svn-r16939] Purpose:
Modifying default cache configuration, and adding an #ifdef to allow for a
    separate default configuration when parallel is enabled. This is being
    modified in order to address an observed performance problem with the
    current default configuration.

Description of Changes:

    - increasing maximum cache size from 16MB to 32MB
    - increasing maximum entry size from 10MB to 32MB
    - decreasing min_clean_fraction from 0.3 to 0.01 in serial case
    - increasing flash_multiple from 1.0 to 1.4 in serial case

Tested:

    jam
2009-05-12 17:07:41 -05:00
Albert Cheng
985b323bd4 [svn-r16929] Bug 948:
Skipped the test of
     TESTING $H5DIFF -v $SRCFILE9 $SRCFILE10
     TOOLTEST h5diff_100.txt -v $FILE9 $FILE10 
again because they still hanged.
Do not turn it back on until it is proven fixed.
Also, want to verify if this is the only tests that hang or
if other tests may hang or if any non-thg machines may hang.

Tested:
jam-pp since it is a simple shell-script change.
2009-05-08 10:03:27 -05:00
Raymond Lu
a1b11b8d47 [svn-r16922] Allow an error class to use other class's major or minor errors. Added a test for it, too.
Tested on jam - simple change. I've tested it for the trunk.
2009-05-05 13:57:43 -05:00
Quincey Koziol
548eec3070 [svn-r16920] Description:
Merge these trunk revisions which occurred during the 1.8.3 release code
freeze back to the 1.8 branch:

    From Quincey: 16845 16847 16849 16851 16858 16869 16897

    From Ray: 16859 16880

    From Allen: 16863

Tested on:
    FreeBSD/32 6.3 (duty) in debug mode
    FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
    Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
        in debug mode
    Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
        w/C++ & FORTRAN, in production mode
    Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
        w/szip filter, in production mode
    Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
        in production mode
    Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
    Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
    Mac OS X/32 10.5.6 (amazon) in debug mode
    Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
2009-05-05 10:05:17 -05:00
Elena Pourmal
4ffc0b6acb [svn-r16917] Maintenance: Changed suffix in the version number to snap0. 2009-05-04 10:11:23 -05:00
Elena Pourmal
de44d9e363 [svn-r16916] Maintenance: Updated HISTORY-1_8.txt and RELEASE.txt files and
changed version to 1.8.0-post0.
	     Branch is open for check-ins now.
2009-05-04 09:45:37 -05:00
Elena Pourmal
e0e4a816e6 [svn-r16912] Maintenance: Checking in files created by the bin/release script before
tagging the rlease.
2009-05-04 09:20:30 -05:00
Larry Knox
46e76fa793 [svn-r16911] Updated Supported Configuration Features Summary 2009-05-02 15:08:41 -05:00
Raymond Lu
46b4f969e3 [svn-r16910] Update for the 1.8.3 release. 2009-05-01 16:57:56 -05:00
Raymond Lu
1641a4d208 [svn-r16909] I took out the 'install' command from build.com and enabled the 'copy' command for the
C, Fortran, and C++ examples.

Tested on OpenVMS.
2009-05-01 16:42:50 -05:00
Albert Cheng
f8428adce3 [svn-r16906] Updated with SNL and LLNL tested platforms information. 2009-05-01 12:45:56 -05:00
Larry Knox
d2b8738012 [svn-r16905] Update Platforms Tested and Supported Configuration Features Summary. 2009-05-01 11:51:02 -05:00
Raymond Lu
0662a78de6 [svn-r16904] There're 3 changes in this checkin:
1. I added 'install' command in end of build.com.
  2. I commented out the test for h5copy and h5import in build.com.  There're some 
     failures in the test.  I recall h5import has been having problem for some time.  
     h5copy test is new.  I need to verify with Elena.
  3. I commented out the copy command for *.com in the examples directory because they
     don't exist.

Tested on OpenVMS.
2009-05-01 11:20:41 -05:00
Albert Cheng
9c36eb7c88 [svn-r16903] updated with new feature of embedded libhdf5.settings and the known problem
of imposing -O0 on gcc v4.3 and v4.4.
2009-05-01 09:10:46 -05:00
Frank Baker
6f68d45ef1 [svn-r16894] Description:
Formatting pass.
2009-04-29 15:43:13 -05:00
Albert Cheng
235d4f439b [svn-r16893] Set version information to 1.8.3 to be ready for release.
Tested: h5committest plus jam serial test.
2009-04-29 15:08:52 -05:00
Christian Chilan
0b8356c806 [svn-r16887] Update to include modification to the parallel tests. 2009-04-29 01:45:27 -05:00
Larry Knox
0b43e7cac0 [svn-r16884] Update for 1.8.3 release. 2009-04-28 17:48:03 -05:00
Mike McGreevy
96e9cae136 [svn-r16870] Description:
Updating RELEASE.txt file.

Tested:

    None needed.
2009-04-28 12:04:32 -05:00
Elena Pourmal
beac92a9c4 [svn-r16866] Maintenance: Update file in preparation for the HDF5-1.8.3 release
Update information for Mac Intel 10.5.6.
2009-04-27 21:12:42 -05:00
Allen Byrne
0558c3a8b6 [svn-r16864] corrected include path of h5tools.h
Tested:
   XP32-VNET
2009-04-27 11:29:50 -05:00
Allen Byrne
853bfa46e2 [svn-r16857] Updated version to 1.8.3 2009-04-24 13:54:23 -05:00
Elena Pourmal
cd56e0f898 [svn-r16855] Maintenance: Changed version to hdf5-1.8.3-pre2 for further check-ins. 2009-04-23 22:28:44 -05:00
Elena Pourmal
bf151ed106 [svn-r16853] Maintenance: Changed version number to 1.8.3-pre1 and created a tar ball
for remote testing.
2009-04-23 22:24:30 -05:00
Mike McGreevy
f140eccaea [svn-r16843] Description:
Adding dependency to h5repack test script.

    h5repack.sh needs h5repacktst to run first.

Tested:

    Problem only appeared on Glory, but tested the dependence
    manually on jam by trying to run only the script and checking
    that it first ran the h5repacktst test program.
2009-04-22 16:54:49 -05:00
Albert Cheng
145782f915 [svn-r16838] Bug fix:
If the AR command has embedded shell separators such as the case of
"AR =  ar -X 64", $AR ends up as a blank.

Solution:
Put quotes around the command substitution string to protect against embedded
separators. Applied the same to both AR and RANLIB assignments.

Tested:
At Up (AIX 5.3) only because that was where I discovered the error
when AR is  ar -X 64
2009-04-22 14:49:22 -05:00
Albert Cheng
b9b28ce4cc [svn-r16830] Bug fix.
In Up (AIX system), the insert_libhdf5_settings() infinite looped because
it never found EOF.  Man getc in another system said:
   "If  the  integer  value returned by getc() is stored into a variable of
   type char and then compared against the integer constant EOF, the  com-
   parison may never succeed, because sign-extension of a variable of type
   char on widening to integer is implementation-defined."

Solution:
Changed inchar from type char to int fixed the problem.
Morale of the story: RTFM or HTCW (heed the compiler warnings).

Tested:
Up (AIX 5.3).
2009-04-21 18:29:12 -05:00
Frank Baker
abd99a6d51 [svn-r16827] Description:
Updated and restructured "Copyright Notice & License Terms" document 
    per new standard.
2009-04-21 18:09:30 -05:00
Binh-Minh Ribler
91e9a5d5c8 [svn-r16822] Description:
Added member function Attribute::getInMemDataSize() to simplify
    getting the attribute's data size in memory.  Used this new function
    in Attribute::read to get the fixed-len string attribute data.

    Added tests to tattr.cpp.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-04-21 15:57:26 -05:00
Neil Fortner
40df33dff7 [svn-r16818] Fix problem in H5Z.c with --disable-deprecated-symbols
Tested: jam (--disable-deprecated-symbols)
2009-04-21 10:45:20 -05:00
Albert Cheng
bdb33e7c98 [svn-r16813] New feature(Bug 230):
Embed the content of libhdf5.settings into the hdf5 executables so that an
"orphaned" executables can display (via the Unix strings command, for example)
the library settings used to build the executables.

This is a prototype implementation. Much improvement is needed.

configure.in:
    Added the --disable-embedded-libinfo option to disable this feature.
configure:
src/H5config.h.in:
    Generated by autotools like automake.
src/H5detect.c:
    Implement insert_libhdf5_settings() to insert the contents of
    libhdf5.settings into the library as an extern string variable so that it
    is included in all HDF5 executable.  Much improvement is needed.
fortran/src/Makefile.in:
    Auto-generated by bin/reconfigure. (i.e., I did make any changes to cause
    its direct regeneration).

Tested:
Jam serial, using default and --disable-embedded-libinfo, configure options.
2009-04-20 18:03:40 -05:00
Pedro Vicente Nunes
cd48d93298 [svn-r16811] merge 16810
added the words "Not comparable" in the not comparable messages
tested: linux
2009-04-20 16:06:54 -05:00
Neil Fortner
233fa9bee7 [svn-r16808] Purpose: Fix bug 1533
Description:
Previously, there was no versioning for H5Z_class_t.  This prevented applications
written for 1.6 using custom filters from being able to use the 1.8 library.
There is now an H5Z_class1_t and H5Z_class2_t to enable compatibility.  H5Zregister is
*not* versioned, it determines which version of the struct has been passed in by the
value of the first field (id or version, both are ints).

Tested: jam, linew, smirom (h5committest), jam (--with-default-api-version=v16)
2009-04-20 14:17:59 -05:00
Scott Wegner
7b47b79f2d [svn-r16805] Purpose: Add new h5repack tests to Windows
Description:
Three new tests were added to the h5repack test script in rev.16802.  This checkin brings those new tests to Windows as well.

Tested:
VS2005 on WinXP x64
2009-04-20 13:14:09 -05:00
Neil Fortner
90aea941c5 [svn-r16804] Purpose: Fix bug 1548
Description:
When writing data to a dataset, the data transform was performed after type conversion.
This caused an error if the file type was non-native.  This has been changed so data
transforms are always performed on the memory type.

Tested: jam, linew. smirom (h5committest)
2009-04-20 11:59:01 -05:00
Neil Fortner
4446e5da71 [svn-r16802] Purpose: Fix bug 1516
Description:
h5repack previously would not take named datatypes into consideration when copying
datasets and attributes.  This would cause extra anonymous datatypes in the target file
at best, and cause errors halfway through the repacking at worst.  h5repack should now
always handle named datatypes correctly.  Named datatypes are also now converted to the
native type when -n is given.

Tested: jam, linew, smirom (h5committest)
2009-04-20 11:48:14 -05:00
Scot Breitenfeld
f7a982a64e [svn-r16801] merge changes from the trunk into the branch
svn merge -r 16781:16797 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

fixes problems with H5D_chunch_cache_* variable lengths

platforms tested: smirom: ifort, pgf90
                  jam   : f95
2009-04-20 11:47:47 -05:00
Scot Breitenfeld
f95bf64c53 [svn-r16798] corrected typos in fortran API 2009-04-20 11:24:15 -05:00
Mike McGreevy
8339217374 [svn-r16793] Description:
- Updated bin/reconfigure to use latest version of automake (1.10.2). 
      Regenerated Makefile.in's by running bin/reconfigure.

    - Added libtool version numbers to c++, fortran, hl, hl c++, and hl fortran
      libraries.

Tested:

    jam, liberty, smirom
2009-04-20 01:03:29 -05:00
Albert Cheng
d380fe5398 [svn-r16790] Bug Fix (Bug 1398):
For gcc v4.3 and v4.4, with production mode,
if -O3 is used, H5Tinit.c would fail to compile. Actually bad H5Tinit.c is
produced.

If -O (same as -O1) is used, H5Tinit.c compiled okay but test/dt_arith
would fail with:
Testing hard normalized long double -> signed char conversions        time: comm
and terminated abnormally

When -O0 (no optimizatio) is used, H5Tinit.c compilete okay and all tests
passed.

Solution:
Changed the config/gnu-flags to use -O0 for gcc v4.3 and 4.4 for production
flags  for now so that build and tests would work. Still need to investigate
if the error is due to Gcc optimization bug or our code errors.

Tested:
In liberty with gcc43 and gcc44. Also, tested in jam and smirom with
older versions of gcc.
There are no gcc 43 or 44 compilers installed in other THG machines that
I know.
2009-04-20 00:03:41 -05:00
Binh-Minh Ribler
3489809ca5 [svn-r16788] Description:
Fixed to pass parameters to H5Awrite/H5Aread correctly so that
    all Attribute::write and Attribute::read methods work correctly
    for both fixed-length and variable-length string attributes.

    Added more test cases.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
2009-04-19 01:17:26 -05:00
Pedro Vicente Nunes
f38ae770ca [svn-r16786] merge 16785
added missing test and compare cases inside compounds for nan
tested: linux
2009-04-18 16:19:56 -05:00
Scot Breitenfeld
cbd195409d [svn-r16783] Added information about new fortran wrappers added:
H5D_h5dget_access_plist_f
   H5I_h5iis_valid_f
   H5P_h5pset_chunk_cache_f
   H5P_h5pget_chunk_cache_f
2009-04-17 14:11:05 -05:00
Scot Breitenfeld
3577791dcc [svn-r16782] Description:
Merged the changes from the trunk/fortran into the branch:

used:

svn merge -r 16362:16781 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Platforms tested: smirom (pgf90, ifort)
                  linew
2009-04-17 14:09:35 -05:00
Raymond Lu
ccb31223c4 [svn-r16778] A minor correction of previous checkin. The original files created with v1.6 library could
be deleted by cleanup routine.  I corrected it in this checkin.

Tested on jam - simple change.
2009-04-17 10:30:17 -05:00
Christian Chilan
ae8e8d9378 [svn-r16771] Modified parallel tests so they can run with arbitrary number of processors.
Tested on jam and abe.
2009-04-16 20:34:17 -05:00
Neil Fortner
004b4c4dff [svn-r16767] Fix a comment in H5Pdapl.c, update RELEASE.txt with chages to factory free
lists.

Tested: kate
2009-04-16 16:10:45 -05:00
Albert Cheng
a2565505aa [svn-r16761] Fixed a simple typo in the echo statement in the
check-all-install actions.

Tested:
In jam by hand.
2009-04-15 17:13:20 -05:00
Raymond Lu
0e08da8023 [svn-r16758] The test of family file compatibility with v1.6 used the original family files under the library
source directory.  Since the test opens the files with write mode, it's safer to make copies of 
the original files.  I added the copying step in test_family_compat in vfd.c.  I changed the 
Makefile.am to clean up the copied files.  I created a new family_v16_00000.h5 with v1.6 library.

Tested on jam - supposed to be simple change.
2009-04-15 16:15:04 -05:00
Albert Cheng
79d1396cfa [svn-r16755] bug fix (ID 1345):
Use environment variable instead of command parameter to test
the install via $DESTDIR test.

Tested:
Jam by hand. (no h5committest which does not test this change.)
2009-04-15 09:18:15 -05:00
Albert Cheng
69ead66b76 [svn-r16750] New feature (Bug ID: 1345):
Added a Make target of check-all-install to test the correctness of
installing via the prefix= or $DESTDIR options.

Platforms tested:
h5committested and jam serial mode. Then test check-all-install by hand.
2009-04-14 17:08:23 -05:00
Allen Byrne
c12389e885 [svn-r16744] Added fixed bug 1536, about the include for the _getcwd() function. 2009-04-14 09:06:07 -05:00
Allen Byrne
75c3059f54 [svn-r16743] Added #include <direct.h> to windows section. As discussed in Bug 1536, this include is needed to supply the _getcwd() function.
Tested: XP 32 VS2005
2009-04-14 08:19:58 -05:00
Allen Byrne
e10dca69da [svn-r16741] Added missing h5Groot.c to project files
Tested on XP32-VS2005-IVF101
2009-04-13 14:38:30 -05:00
Larry Knox
696cf9552c [svn-r16740] Snapshot version 1.8 release 2 (post12) 2009-04-12 18:14:07 -05:00
Raymond Lu
c7867cff2b [svn-r16735] Added H5Groot.c. Not tested yet. 2009-04-10 15:50:09 -05:00
Neil Fortner
27af18b852 [svn-r16733] Revert change to family_16_00000.h5 from latest snapshot release. Raymond is
working on fixing this.
2009-04-10 15:40:48 -05:00
Pedro Vicente Nunes
10936f31a7 [svn-r16732] added 2 new entries
- h5diff new flag, -c, --compare, list objects that are not comparable.
        PVN - 2009/4/2 - 1368
 - h5diff new flag, -N, --nan, avoids NaNs detection. PVN - 2009/4/2
2009-04-10 15:38:59 -05:00
Neil Fortner
6285924944 [svn-r16731] Purpose: Fix bug 1539b
Description:
The H5L interface was not marked as uninitialized when H5L_term_interface was
called.  This caused the interface to not initialize itself later on.  This
prevented external links from working after calling H5close, because they were
never re-registered.

Tested: jam, smirom, linew (h5committest)
2009-04-10 15:15:31 -05:00
Pedro Vicente Nunes
8dba3d7b9c [svn-r16728] merge 16727
clean linux warnings
tested linux
2009-04-10 11:20:39 -05:00
Larry Knox
f01cd9be2d [svn-r16725] Snapshot version 1.8 release 2 (post11) 2009-04-09 20:53:47 -05:00
Neil Fortner
0c9806bb0e [svn-r16722] Purpose: Fix problems with "no strict format checks"
Description:
Changed H5G_mkroot to be tolerant of files with symbol table information cached
but no symbol table in the root group.  Also changed H5G_mkroot to properly
clean up in case of an error, and changed H5G_stab_is_valid to properly detect
errors in H5O_msg_read.

Tested: jam, linew, smirom (h5committest), jam (--disable-strict-format-checks)
2009-04-09 15:24:35 -05:00
Pedro Vicente Nunes
1dffdaa262 [svn-r16720] merge 16719
clean warnings linux
tested linux
2009-04-09 15:04:03 -05:00
Pedro Vicente Nunes
3fb6b6d6fa [svn-r16718] merge 16717
added some print messages
tested: linux
2009-04-09 10:52:08 -05:00
Neil Fortner
ef77500b28 [svn-r16712] Purpose: Fix bug 1423
Description:
Versions of the library between 1.3.0 and 1.6.3 have a bug which prevents them
from opening any file that does not have the root group's symbol table
information cached in the root group's entry in the superblock.  Prior to 1.8
this was not an issue as this information was always cached.  However, 1.8.0
stopped writing this information (which is not required by the file format
specification), and these older versions can therefore not read files created or
last written by versions 1.8.0 to 1.8.2.  This fix modifies the library to once
again add this information to the superblock (when using the old file format).

Tested: jam, linew, smirom (h5committest)
2009-04-08 17:16:45 -05:00
Pedro Vicente Nunes
6f92516776 [svn-r16709] added The scale index return value in H5DSiterate_scales was not always
+          incremented. (PVN - 2009/4/8 - 1538)
2009-04-08 16:25:53 -05:00
Pedro Vicente Nunes
c2c03a86b3 [svn-r16707] merge 16706 from trunk
#1538 (B2) Problems with Dim Scale APIs reported by Mathworks
ISSUE2: the scale index input/output parameter value passed to H5DSiterate_scales was not always incremented (it returns the scale index current iteration). 
SOLUTION FOR ISSUE2: modified the cycle in H5DSiterate_scales so that the scale index is always incremented
TEST: added some test cases with calls to invalid indices and H5DSiterate_scales with return scale indices and visitor data
tested: linux
2009-04-08 15:59:40 -05:00
Larry Knox
6787039100 [svn-r16705] Snapshot version 1.8 release 2 (post10) 2009-04-08 14:19:56 -05:00
Neil Fortner
3367137ba6 [svn-r16703] Purpose: Improve performance of factory free lists.
Description:
Factory free lists were formerly implemented as block free lists.  This was
inefficient as factories can only be one size, and implementing them as blocks
(which can be variable size) wasted computation and space.  They have been
rewritten with a separate implementation, which is simlar to regular free lists
except they can be dynamically created and destroyed.

Tested: jam, linew, smirom (h5committest)
2009-04-08 13:55:01 -05:00
Neil Fortner
48b127f628 [svn-r16699] Purpose: Fix bug 503
Description:
Changed Skip list package to use a deterministic skip list.  This allows the
skip list package to avoid calling rand() and srand(), even on machines without
rand_r().  There is no longer a p-value or maximum level for skip lists.

Tested: jam, smirom, linew (h5committest)
2009-04-08 12:05:17 -05:00
Pedro Vicente Nunes
428a7c5243 [svn-r16697] merge 16696 from trunk
#1538 (B2) Problems with Dim Scale APIs reported by Mathworks
ISSUE: When some functions are called with an invalid dimension index (for example, greater than the rank of the dataset) the function does not immediately fail, rather asserts down the code.
SOLUTION: added this check for H5DSdetach_scale, H5DSset_label, H5DSget_label (the other functions have this check) . H5DSiterate_scales also added a check for an invalid dimension scale index
TEST: added some test cases with calls to invalid indices
DOCS: Nothing added
STATUS: done for 1.9, 1.8. closed bug
tested: windows, linux
2009-04-08 10:40:35 -05:00
Neil Fortner
dc2b6bbce0 [svn-r16695] Purpose: Fix bug 1526
Description:
Previously, H5Lcopy and H5Lmove would (through H5L_move) improperly apply the
"create intermediate groups" property to the source path traversal, and not the
destination.  Fixed it to apply the property to the destination and not the
source.  Also fixed H5Lcreate_ud to reject internal link classes without
throwing an assertion.

Tested: linew, jam, smirom (h5committtest)
2009-04-07 18:12:44 -05:00
Scot Breitenfeld
7d193a28a8 [svn-r16680] Description:
Fixed warnings from absoft's compiler for !DEC$ statements.

Solution: There should not be a space after !DEC$ statements, removed the spaces.

Platforms tested:
Jam with gcc and f95
2009-04-07 10:21:30 -05:00
Pedro Vicente Nunes
fecd6ab559 [svn-r16677] merge 16676 from trunk
#1521 (B2) H5DSdetach_scale memory leak
ISSUE: Purify (Windows Visual Studio 6) complains of a memory leak in H5DSdetach_scale call  regarding a  H5Aread call (stack is H5A_read, H5T_convert, H5T_conv_vlen, H5T_vlen_seq_mem_write, H5MM_malloc).
SOLUTION: When a scale is detached from a dataset, the variable length structure length field is decreased in one entry. The associated pointer must be reallocated with the new length.
DOCS AND TEST: Nothing added
tested: linux
2009-04-07 10:05:33 -05:00
Pedro Vicente Nunes
1105b86f61 [svn-r16672] merge 16671 from trunk
fix compiler error on a missing "static" declaration
2009-04-06 10:05:08 -05:00
Allen Byrne
d623d950b6 [svn-r16668] Corrected the urls for h5dump xml dtd and schema
Tested: Fedora 10 gcc
2009-04-03 16:50:53 -05:00
Allen Byrne
3abbc57d81 [svn-r16665] Added h5tools.h to h5difftst.vcproj.
Added new test to h5repack.bat.

Tested on XP64-VS2005--IVF91
2009-04-03 16:15:20 -05:00
Pedro Vicente Nunes
c107f7063f [svn-r16664] merge 16663 from trunk
note : lots of weird warnings of the type
../../../../hdf5/tools/h5repack/h5repacktst.c:3919: warning: will never be executed
appear on the same code as 1.9 for the 1.8 branch

tested: linux
2009-04-03 14:44:26 -05:00
Allen Byrne
60a15ad439 [svn-r16662] Remove command to copy h5Tinit.c in copy batch file. H5Tinit.c is generated during build and no longer exists in the windows/src folder.
Tested: XP64 VS2005
2009-04-03 09:20:36 -05:00
Pedro Vicente Nunes
570de0c113 [svn-r16658] merge from trunk 16656
#1402 (B1) h5repack does not preserve creation order indexing. 
ISSUE : h5repack does not handle group creation order flags. 
ACTION: call H5P(g)(s)et_link_creation_order functions when handling groups, add new groups with these flags to the test generation program, and verify results in the test program. 
TEST: in the test program, function that compares property lists, added code to verify groups
DOCS: Added the note to RELEASE.txt: "h5repack now handles group creation order. PVN - 2009/4/2 - 1402".
2009-04-02 15:34:24 -05:00
Raymond Lu
9e148522d5 [svn-r16652] Bug fix #1503 - H5Iget_type failed unexpected when an invalid ID was passed in. I put
some argument check in the internal function H5I_find_id and took out the assertion check.
I also removed the argument check in H5Iis_valid because it's in H5I_find_id now.

Tested on jam and linew - simple change.
2009-04-01 17:02:44 -05:00
Larry Knox
df24309b72 [svn-r16649] Snapshot version 1.8 release 2 (post9) 2009-04-01 14:33:43 -05:00
Pedro Vicente Nunes
817acf2cdc [svn-r16647] fix typo 2009-04-01 14:03:19 -05:00
Pedro Vicente Nunes
cd43ca3bf7 [svn-r16644] add mention to #1501 2009-04-01 11:37:50 -05:00
Pedro Vicente Nunes
22d6e96014 [svn-r16641] merge from trunk revs 16614, 16629
1.	#1501  (B1) tools bug if dataset is larger than H5TOOLS_BUFSIZE limit. 
ISSUE : the tools use the following formula to read by hyperslabs: hyperslab_size[i] = MIN( dim_size[i], H5TOOLS_BUFSIZE / datum_size) where H5TOOLS_BUFSIZE is a constant defined of 1024K. This is OK as long as the datum_size does not exceed 1024K, otherwise we have a hyperslab size of 0 (since 1024K/(greater than 1024K) = 0). This affects h5dump. h5repack, h5diff
SOLUTION: add a check for a 0 size and define as 1 if so. 
TEST FOR H5DUMP: Defined a case in the h5dump test generator program of such a type (an array type of doubles with a large array dimension, that was the case the user reported).  Since the written file commited in svn would be around 1024K, opted for not writing the data (the part of the code where the hyperslab is defined is executed, since h5dump always reads the files). Defined a macro WRITE_ARRAY to enable such writing if needed. Added a run on the h5dump shell script. Added 2 new files to svn: tools/testfiles/tarray8.ddl, tools/testfiles/tarray8.h5. NOTE: while doing this I thought of adding this dataset case to an existing file, but that would add the large array output to those files (the ddls). The issue is that the file list is increasing.
TEST FOR H5DIFF: for h5diff the check for reading by hyperslabs is H5TOOLS_MALLOCSIZE (128 * H5TOOLS_BUFSIZE) or 128 Mb. This makes it not possible to add such a file to svn, so used the same method as h5dump (only write the dataset if WRITE_ARRAY is defined). As opposed to h5dump, the hyperslab code is NOT executed when the dataset is empty (dataset is not read). Added the new dataset to existing files and shell run (tools/h5diff/testfiles/h5diff_dset1.h5 and tools/h5diff/testfiles/h5diff_dset2.h5 and output in tools/h5diff/testfiles/h5diff_80.txt).
TEST FOR H5REPACK: similar issue as h5diff with the difference that the hyperslab code is run. Added a run to the shell script (with a filter, otherwise the code uses H5Ocopy). 
FURTHER ISSUES: the type in question ("double") has a different output cross platforms (e.g on liberty some garbage number is printed at some array locations)
SOLUTION: defined an "int" type for this test. However the printing of such an array has a bogus output at least in one platform (FreeBsd), so eliminated the test run altogether and filed a bug report on this
2009-04-01 10:25:43 -05:00
Neil Fortner
9863d5aee2 [svn-r16616] Purpose: Fix bug 1499
Description:
Due to a bug in H5F_super_read, every time a file with a user block was opened
it would grow by the size of the user block.  The bug has been fixed, and
comments have been added to clarify when an eoa address should be relative and
when it should be absolute.

Tested:
jam, linew (h5committest)
2009-03-26 10:29:23 -05:00
Raymond Lu
2def5e4c85 [svn-r16613] In previous checkin (r16609), the flag "write_driver" wasn't necessary as Quincey pointed out.
I took it out and used the driver address instead.

Tested on jam - simple change.
2009-03-25 14:49:19 -05:00
Raymond Lu
30ccff2212 [svn-r16608] Bug fix (#1161): When a family file created with v1.6 library is opened and closed with
v1.8 library, v1.8 library writes the driver info block in the superblock.  But v1.6
doesn't write it.  This caused the data after the superblock to be overwritten.  The
solution is to use a flag to indicate when the original file doesn't have the driver
info, v1.8 library doesn't write it either.

Tested on jam.  I have some trouble to access smirom and linew using h5committest.
2009-03-24 16:32:50 -05:00
Pedro Vicente Nunes
9c9e2c6d7d [svn-r16598] merge 16597 from trunk
#1047  (B1) The h5lt info routines are returning data in transposed form. ISSUE : the dimension array of the function h5ltget_dataset_info_f  was not transposed (because of C-FORTRAN storage order, the FORTRAN function calls the C function with the same name). SOLUTION: transpose the array. ACTION: add a test case.

added the note

Fortran High-Level APIs:
    ------
     - Lite: The h5ltget_dataset_info_f function (gets information about a dataset) 
           was not correctly returning the dimension array (PVN - 2009/3/23)

tested: linux
2009-03-23 15:04:55 -05:00
Neil Fortner
1598893d14 [svn-r16595] Purpose: fix bug 1189
Description:
Some files apparently exist in the wild which have corrupt symbol table messages
on the root group.  These files can be opened by 1.6 (which uses the cached
information in the superblock) but not by 1.8.  This patch fixes 1.8 and 1.9 so
they can now open these files, and will correct them if necessary.  Also fix
some potential (rare) problems with array datatype versions.

Tested: jam (parallel; h5committest not working on linew or smirom)
2009-03-23 14:14:55 -05:00
Pedro Vicente Nunes
1cc1da5133 [svn-r16589] merged from trunk: 16588
1.	#1487 (B1) DS memory leaks ISSUE 1: On a "go to" error condition, previously allocated buffers were not freed. NOTE: these are "potential" memory leaks because typically the error conditions do not occur, so the potential memory leaks also do NOT occur. ISSUE 2: A function used to read dimension scales realistic data (topography of the North Atlantic, latitude and longitude) was being called without the data buffer being freed. SOLUTION FOR ISSUE 1: added "free" calls for the allocated buffers on the error sections. SOLUTION FOR ISSUE 2:  added a "free" call after the read_data function, after using the buffer (on a H5Dwrite and H5Screate_simple). The read_data function reads both data and dimensions from the ASCII data files. DOCS: no docs added. Done for 1.9 and 1.8 STATUS: Closed bug

tested: h5committest
2009-03-19 13:37:07 -05:00
Pedro Vicente Nunes
a848e01316 [svn-r16585] added the OUTPUT-ARCHITECTURE STD that was previously removed, regarding a AIX failure 2009-03-16 17:17:46 -05:00
Larry Knox
af7e17167b [svn-r16582] Snapshot version 1.8 release 2 (post8) 2009-03-15 19:59:42 -05:00
Quincey Koziol
4201a8fbfe [svn-r16577] Description:
Actually set the exit value for the test (*sigh*)
2009-03-12 15:14:37 -05:00
Quincey Koziol
042ed7661a [svn-r16575] Description:
Bring r16574 back from trunk:

        Clean up many compiler warnings and make test return non-zero exit code
when a failure is detected.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
	(other platforms tested on trunk)
2009-03-12 13:21:47 -05:00
Pedro Vicente Nunes
856f1e9120 [svn-r16572] #1462 By selecting a compression type, a big endian byte order was being selected.
When reading the compression parameter keyword, the compression type read flag was incorrectly set to read, removed this line of code
in->configOptionVector[COMPRESS] = 1;


Modified one configuration file to have the COMPRESSION-TYPE GZIP
Keyword. 


Entered a bug description fix of
- h5import: By selecting a compression type, a big endian byte order was being 
            selected (PVN - 2009/11/3)


tested: linux
2009-03-11 14:36:08 -05:00
Quincey Koziol
828e7e2416 [svn-r16566] Description:
Bring r16560 back from trunk.

Tested on:
    Mac OS X/32 10.5.6 (amazon) debug & production
    (Following up with tests on more platforms)
2009-03-10 20:44:36 -05:00
Mike McGreevy
ddf384fb35 [svn-r16562] Purpose:
Bug Fix

Description:

    Fixing BZ #1381. The --includedir=DIR configure option, which is used to
    spceify installation location of C header files, did not work correctly as
    the path was hard-coded into config/commence.am. I'm presuming this is
    because an older version of automake didn't know where to put C header
    files. In any case, removing this line now defaults the includedir to the
    same directory that it is currently hard-coded to, and also fixes the
    configure flag which allows for customization of this value.

Tested:

    jam, liberty
2009-03-10 16:07:50 -05:00
Mike McGreevy
1b0e131cc4 [svn-r16555] Purpose:
Bug Fix

Description:

    Removing the code from configure which strips the '-g' flag from CFLAGS
    when in production mode. The current default CFLAGS in production mode
    does not include '-g', as intended, but we should allow users to
    override this and enable '-g' by setting the CFLAGS environment
    variable if desired. Note that this applies to FCFLAGS and CXXFLAGS
    as well.

Tested:

    kagiso, linew, liberty
2009-03-09 12:53:01 -05:00
Allen Byrne
363046bef9 [svn-r16551] Bug #608: Memory leak in H5DSset_label. Added code to free sub string ptr's belonging to buffer in H5DSset_label and H5DSget_label. Also added free of buffers in error section of both functions. Potential memory leaks may exist elsewhere, and this will not close the bug.
Tested:
   h5committest
   vista 32 VS2008
2009-03-05 15:20:24 -05:00
Allen Byrne
6c526e3bfe [svn-r16546] Moved long_long comment to correct location under bugs fixed since section. 2009-03-05 08:52:27 -05:00
Allen Byrne
8dc61483f2 [svn-r16544] Added text that long_long macro was removed. This should have been added with r16490. 2009-03-05 08:47:40 -05:00
Neil Fortner
5fb2e403a6 [svn-r16541] Move variable declaration to the top of the block in H5G_dense_iterate
Tested: Fedora 10 (too minor for full committest)
2009-03-04 14:48:27 -05:00
Raymond Lu
db81699a13 [svn-r16538] Added more test case for bypassing the cache. In test_big_chunks_bypass_cache,
test the correctness of the data when the fill value is defined or not.  The 
library should let the chunks bypass the cache depending on the size of the 
chunks and whether to write fill value to the chunks.

Tested on jam - simple change.
2009-03-03 14:35:34 -05:00
Quincey Koziol
19105560d0 [svn-r16536] Description:
Bring v16532 back from trunk to v1.8 branch:

	Pass the chunk "user data" to H5D_chunk_unlock(), so that chunks with
an address already aren't reallocated.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committest not needed here, performed on trunk)
2009-03-02 17:30:16 -05:00
HDF Tester
b359f8d3b3 [svn-r16526] Snapshot version 1.8 release 2 (post7) 2009-03-01 19:52:02 -05:00
Neil Fortner
d9836c44a6 [svn-r16524] Purpose: Fix bugs related to H5Dset_extent and fill values
Description:
In some situations it was possible for the fill value to not be written to parts
of a chunked dataset, particularly when extending and/or shrinking.  Prior to
the fix for the chunk cache (1015) these bugs would have been exceedingly rare.

Tested: jam, smirom, linew (h5committest)
2009-02-27 12:06:50 -05:00
Allen Byrne
ee76c4fa94 [svn-r16522] Changed windows batch file due r16519 and r16520. As all windows OS are always LE on all platforms, simply added le to the two locations where these files are used.
Tested:
Vista 32 VS2008
2009-02-26 16:39:16 -05:00
Pedro Vicente Nunes
443e8cdafb [svn-r16520] one file escape deletion from previous check in 2009-02-26 16:33:15 -05:00
Pedro Vicente Nunes
086c205ca4 [svn-r16519] merge 16518 from trunk
have 2 expected outputs for 2 h5ls runs depending if run on a big or little endian machine. Configure.in was modified to export a variable carrying endianess information to testh5ls.sh. This script then compares the current run with 2 expected outputs, one for a big-endian machine (linew was used to generate the output), other for little endian (jam was used to generate the output)
the way h5ls prints types, it starts searching for NATIVE types first. One solution would be h5ls not to detect these native types, using for example the same print datatype function that h5dump does, that would make the output look the same on all platforms  ("32-bit little-endian integer" would be printed instead).  Drawback, this "native" information would not be available. Other solution is to have not one but 2 expected outputs and make the shell script detect the endianess and compare with one output or other
tested: jam, linew
2009-02-26 16:25:57 -05:00
Raymond Lu
39c794d2c4 [svn-r16515] To improve the performance of querrying the info of a link(bug #1404). When the index was set to
creation order in querry function but there's no creation order indexed in the file, the library tried 
to build and sort a table of all links.  To optimize it, let the library use the B-tree for names of 
links.

Tested with h5committest.
2009-02-24 13:53:59 -05:00
Pedro Vicente Nunes
fe217cfd57 [svn-r16512] merge 16511 from trunk
bug fix: TESTING2 macro introduced recently for the test suite (it adds an extra space at the beginning of output, for indentation) was already available for HL and caused compilation problems on AIX. Replaced the name with TESTING_2


tested: h5committest
2009-02-23 15:30:04 -05:00
Elena Pourmal
a9f5945de0 [svn-r16505] Maintenance: Fixed a typo discovered while compiling on AIX system
Platforms tested: Mac OSX and AIX (by Ed) (minor fix)
2009-02-20 17:03:04 -05:00
Pedro Vicente Nunes
94838213e6 [svn-r16503] merge 16502 from trunk
bug fix: a comma accidently left on a conditional typedef was causing compilition error on AIX
tested: linux
2009-02-20 16:27:59 -05:00
Quincey Koziol
788e645a78 [svn-r16500] Description:
Bring r16499 back from trunk:

        Cache chunk info for newly created chunk.

Tested on:
        FreeBSD/32 6.3 (duty)
        (Tests included in upcoming revise_chunks branch changes)
2009-02-19 18:53:18 -05:00
Quincey Koziol
494226aaf6 [svn-r16495] Description:
Bring r16488 back from trunk:

    Clean up code and eliminate resource leaks.  Also avoid "null" I/O when
chunk doesn't exist and we can skip it.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (too minor to require h5committest)
2009-02-19 14:38:20 -05:00
Quincey Koziol
0a9ad6a46e [svn-r16494] Description:
Bring r16483 back from trunk:

    Clean up (i.e. remove) more internal calls to H5E_clear_stack(), along with
    some other minor code cleanups.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (too minor to require h5committest)
2009-02-19 14:36:52 -05:00
Allen Byrne
0e515209b2 [svn-r16493] revert gcc PROD_CFLAGS to "-O", which was incorrectly changed by rev 16490. 2009-02-19 12:44:02 -05:00
Allen Byrne
c880943ce9 [svn-r16490] Fixed bug #1459 by eliminating the macro long_long and replacing all instances with long long.
Tested:
   h5comittest
   fedora 10 x64
   XP32, VNET
2009-02-18 15:05:49 -05:00
Vailin Choi
61346d50fa [svn-r16487] Checkin for moving messages forward into continuation message:
src/H5Oalloc.c, test/ohdr.c, toshm.c
Fixed couple of problems in src/H5Odbg.c.
h5committested.
2009-02-16 16:33:04 -05:00
HDF Tester
f023ea68dc [svn-r16486] Snapshot version 1.8 release 2 (post6) 2009-02-15 16:57:03 -05:00
Neil Fortner
9ebf3291c9 [svn-r16481] Purpose: Improve chunk cache
Description:
The meaning of the "nbytes" field in H5D_rdcc_t was not clear, and some places
assumed it was the maximum size of the chunk cache, while some assumed it was
the current size of the chunk cache.  The end result was that only 1 chunk could
be held in cache at a time.  This field has been replaced by "nbytes_max" and
"nbytes_used".  Performance of cached I/O should improve greatly.

Tested: jam, smirom (h5committest)
2009-02-12 15:49:02 -05:00
Neil Fortner
5a6c75cc58 [svn-r16478] Purpose: Fix problem with opening an attribute multiple times through multiple
file handles.

Description:
An attribute's "oloc" field which specifies the file it resides in was located
in the attribute's "shared" structure.  So when an attribute was opened multiple
times all of the handles for that attribute pointed to the same file id, even if
different file id's were used to open the different handles for the attribute.
The "oloc" has been moved to the top level H5A_t struct.

Tested: jam, smirom (h5committest)
2009-02-12 14:09:10 -05:00
Neil Fortner
582afd39e3 [svn-r16476] Purpose: Fix rare error when adding a new object header message
Description:
Since the new object header format, it has been possible for a situation to be
created where none of the messages are large enough to hold a continuation
message and there are no null messages to merge with.  This makes it impossible
to add a new object header chunk.  This case will now be handled by moving every
message in the last chunk to the newly allocated one, except for null messages
which are deleted.

Tested: jam, smirom (h5committest)
2009-02-12 14:01:19 -05:00
Neil Fortner
b487c22c42 [svn-r16474] Purpose: fix problems related to 'self-referential' attributes
Description:
When an attribute was created with a datatype or dataspace that was shared in
the same object header that the attribute was in, the attribute could not be
deleted.  Changes made to ensure that the attribute can be deleted both when the
attribute is in the object header and when it is shared in the heap.  Object
header message decode routines now take an "open_oh" parameter to enable them to
avoid opening the same object header twice.

Tested: jam, smirom (h5committest)
2009-02-12 13:50:21 -05:00
Larry Knox
b566fea225 [svn-r16471] Change H5Dopen to H5Dopen2 - fixes compile error - too many arguments for H5Dopen1 when using v1.6 compatible flag. Trivial change, tested on smirom and jam. 2009-02-12 11:10:35 -05:00
Allen Byrne
d82141259c [svn-r16470] Added two new test cases for compound types to batch file per script file changes in rev #16463.
Tested:
   XP32, XP64 - VNET, VS2005
2009-02-11 17:20:55 -05:00
Raymond Lu
87cdac5fe9 [svn-r16467] Performance Improvement(bug #1450). When a chunk is bigger than the cache size and isn't allocated
on disk, the library still loaded it in the cache, which is redundant.  I changed it to bypass the
cache and added a test in dsets.c.


Tested on jam and smirom.
2009-02-11 14:22:59 -05:00
Pedro Vicente Nunes
8fd5f783b4 [svn-r16463] merge from trunk
Bug fix: for compound types, the not comparable test for members was not done
Solution: for compound types, recursively apply that check
Two new cases are added
1) the compound type has a different number of members. Message printed is
<obj1> has X members <obj2> has Y members
Where X and Y are the number of members of each compound type being compared
2) the compound type has not comparable types (for example a double and an int at the same index)
In this case the message
Comparison not possible: object1 is of class1 and object2 is of class2
Is replaced with
Comparison not possible: object1 has a  class1 and object2 has a  class2
Modified the test generator program to have these 2  cases
Added a shell run for these 2  cases



Tested: h5committest
2009-02-11 11:37:46 -05:00
Elena Pourmal
c4a18e8ac7 [svn-r16460] Maintenance: Brought VMS test script for h5copy up-to-date.
Added h5copy testing to the build script.

Platforms tested: New script on ALPHA Open VMS server;
                  build script will be tested tonight.
2009-02-10 16:57:35 -05:00
Elena Pourmal
e3726385b1 [svn-r16459] Maintenance: installation script had a typo; fixed.
Platforms tested: Alpha VMS server
2009-02-10 15:35:39 -05:00
Elena Pourmal
f199d39a92 [svn-r16458] Maintenance: One of the h5diff tests failed due extra line that system adds to the
output. I added /comment_delim qualifier to the diff command to pacify
             the test script.

Platforms tested: Alpha VMS server
2009-02-10 15:28:13 -05:00
Elena Pourmal
9c1ccb04af [svn-r16456] Maintenance: Brought h5repack and h5diff test scripts up-to-date.
Modified build script to reflect the change.

Platforms tested: tested tools scripts on the VMS server; build script will
                  be tested tonight.
2009-02-09 17:38:37 -05:00
John Mainzer
cf6842099c [svn-r16452] Repaired intermittant failure of the t_cache test in testpar.
The failure was caused by some over active sanity checking code in
unlock_entry().  In essence the code did not consider the possibility
that under certain, very unusual circumstances, an entry could be flushed
to disk during the H5AC_unprotect() call.  Instead, it simply failed
if a dirty entry was marked clean after the call to H5AC_unprotect().

This bug in the test code was exposed by recent changes to the default
cache configuration made as part of the "metadata blizard" bug fix.

Fixed the bug by adding code to detect when an entry is flushed during
the call to H5AC_unprotect(), and not trigger a failure if a dirty entry
is marked clean after a call to H5AC_unprotect() if the entry has been
flushed.

In passing also found and fixed another test bug in which expunged
entries were erroneously marked as dirty in the test code's independant
register of entry status.

Tested parallel on Phoenix (AMD64 Linux) and Jam.

No further testing, as the fix was tested extensively prior to checkin
on the 1.9 branch.
2009-02-06 14:41:28 -05:00
Pedro Vicente Nunes
bd3565d448 [svn-r16450] bug fix: compare the return value of H5Tequal with TRUE
tested: h5committest
2009-02-06 11:31:33 -05:00
Allen Byrne
5a80587476 [svn-r16443] Update windows batch file to match *nix script due to rev 16351
Tested:
 XP 32 VNET
2009-02-05 13:55:42 -05:00
Quincey Koziol
066329f44b [svn-r16440] Description:
Bring r16435 from revise_chunks branch back to 1.8 branch:

        Expand object copy tests for chunked datasets to include 1-D datasets
with an unlimited dimension.  (Fix typo in comment for test/links.c)

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        (more thoroughly tested already on revise_chunks branch)
2009-02-05 11:04:22 -05:00
Pedro Vicente Nunes
041eb636da [svn-r16437] merge from trunk
bug fix: typo in usage message
tested: linux
2009-02-05 10:31:25 -05:00
Pedro Vicente Nunes
704c6a99fc [svn-r16432] merge from trunk
Uncomment a h5cleanup() call previously accidently left commented 


Tested: windows
2009-02-05 10:07:45 -05:00
Scott Wegner
adcfa1a45e [svn-r16427] Purpose: Fix Windows install script to include missing tool binaries
Description:
A user discovered that the HDF5 1.8.2 Windows release binaries were missing a few of the HDF5 tools.  This is due to the Windows install script, which simply didn't include them.  This commit fixes the install script to include h5copy, h5mkgrp, and h5stat

Tested:
VS2005 w/ WinXP, build and install only
2009-02-04 16:49:21 -05:00
Scott Wegner
d190de7e0f [svn-r16424] Purpose: Remove old Fortran source file from Windows projects.
Description:
In svn rev. 16197, H5fortran_flags.f90 was removed from HDF5.  This checkin removes references from our Windows projects, and will allow us to successfully build HDF5 Fortran on Windows.

Tested:
VS2005 w/ IVF 9.1 on WinXP
2009-02-04 14:39:55 -05:00
Pedro Vicente Nunes
25a2837cb5 [svn-r16422] bug fix: a open call was not made the expected FAPL
tested: windows, linux (split, sec2)
2009-02-04 14:29:24 -05:00
Pedro Vicente Nunes
3822ac7368 [svn-r16420] merge from trunk
#1449 Change set_extent test to use standard standalone test framework


Call h5_fixname (with an array of test filenames) for generating the  
filename to create and then call h5_cleanup() when the tests pass, to delete the files  
created and close the FAPL from h5_fileaccess(). 


Defined a macro 
#define TESTING2(WHAT)  {printf(" Testing %-62s",WHAT); fflush(stdout);}
Similar to TESTING, except that it has a initial indentation space.
The effect is for nested loop tests


Testing with old file format:
 Testing with fill value, no compression                                PASSED


tested: windows, linux
2009-02-04 10:53:00 -05:00
Quincey Koziol
d6ff1f2b6b [svn-r16418] Description:
Bring r16417 from trunk to 1.8 branch:

        Bring closer to standard standalone test format, add checks for using
the latest file format and close dataset ID leaked.

Tested on:
        FreeBSD/32 6.3 (duty)
        (too minor to require h5committest)
2009-02-03 20:53:49 -05:00
Quincey Koziol
2a5e92d415 [svn-r16415] Description:
Bring r16414 from trunk into 1.8 branch:

        Eliminate some more calls to H5E_clear_stack() from within library code.

        Clean up some warnings & comments also.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (Too minor to require h5committest)
2009-02-03 18:54:39 -05:00
Allen Byrne
29e9825c93 [svn-r16411] testh5ls.bat - added tests to match script file from rev 16310
h5repack.bat - added test to match script file from rev 16402
set_extent.vcproj - added WS2_32.lib for change to set_extent from rev 16406

Tested:
 Vista32, XP32, XP64 using VNET, VS2005 VS2008
2009-02-03 16:30:43 -05:00
Frank Baker
dac4853e69 [svn-r16408] Description:
Update source code copyright to include 2009.
2009-02-03 14:35:04 -05:00
Pedro Vicente Nunes
2e802e6a13 [svn-r16406] merge 16405 from trunk
#1449 Change set_extent test to use standard standalone test framework

use a fapl obtained by h5_fileaccess to the call of H5Fcreate
and redo the test calls with

h5_reset();
    fapl = h5_fileaccess();

    nerrors += do_ranks( fapl ) < 0 ? 1 : 0;
    nerrors += test_external( fapl ) < 0 ? 1 : 0;
    nerrors += do_layouts( fapl ) < 0 ? 1 : 0;

tested: windows, linux
2009-02-03 11:04:12 -05:00
Quincey Koziol
fc61c3a81a [svn-r16402] Description:
Bring r16401 back from trunk:

	Correct error introduced in r16353 with layout version, and add test
so it gets caught earlier.

Tested on:
	FreeBSD/32 6.3 (duty)
	Too minor to require h5committest
2009-02-02 20:43:58 -05:00
Quincey Koziol
6290469518 [svn-r16400] Description:
Bring r16399 back from trunk:

        Remove some internal calls to H5E_clear_stack().

Tested on:
        FreeBSD/32 6.3 (duty)
        Too minor to require h5committest
2009-02-02 16:01:17 -05:00
HDF Tester
01d1e93b37 [svn-r16398] Snapshot version 1.8 release 2 (post5) 2009-02-01 16:17:07 -05:00
Quincey Koziol
a75ff7d2e5 [svn-r16395] Description:
Bring r16394 back from trunk:

        Rename H5O_msg_read_real -> H5O_msg_read_oh, to be more consistent with
other routines in library.

        Move H5O_msg_read_oh and H5O_msg_exists_oh from package to private
header file, so other routines in library can use them.

Tested on:
        FreeBSD/32 6.3 (duty)
        Too minor to require h5committest
2009-01-31 21:35:37 -05:00
Neil Fortner
a1ffba8cdb [svn-r16387] Fix various warnings (errors in pgcc) associated with yesterday's dense
attribute object copy commit.

Tested: jam (gcc and pgcc)
2009-01-30 10:48:30 -05:00
Raymond Lu
69d06e6ed4 [svn-r16385] Added support for large files - added cc/define=_LARGEFILE in make.com and changed
H5_SIZEOF_OFF_T to be 8 in h5pubconf.h.

Tested on OpenVMS.
2009-01-30 09:55:15 -05:00
Neil Fortner
089dfcff02 [svn-r16381] Purpose: Enable copying of dense attributes
Description:
Attribute object copy routines have been moved from H5Oattr.c to H5Aint.c.
These routines are now shared between compact and densely stored attributes.
New routines written to support the copying of dense attributes.  This patch wasmostly written by Peter Cao.

Tested: jam, smirom (h5committest)
2009-01-29 16:05:03 -05:00
Neil Fortner
7b4e2704e7 [svn-r16379] Purpose: Fix a bug encountered when copying shared messages
Description: When attempting to copy an object with a message shared in its own
object header, the library attempts to protect the same object header twice.
Previously, it was possible for the object header to be protected with write
access in one or both of these protects, which would be illegal.  The library
should now always protect with read only access in this case.  The conditions
for fixing incorrect datatype versions have been made weaker to support this
change.  The version will only be corrected if the object header the datatype
is in is modified.

Tested: jam, smirom (h5committest)
2009-01-29 15:56:02 -05:00
Pedro Vicente Nunes
87ebee5951 [svn-r16375] merge 16373
replaced some printf statements with parallel_print


tested: linux serial (parallel tested in trunk)
2009-01-29 14:09:30 -05:00
Quincey Koziol
6d2a73d49f [svn-r16374] Description:
Bring r16372 back from trunk:

	Clean up files produced from set_extent testing.

Tested on:
	FreeBSD/32 6.3 (duty)
	(too minor to require h5committest)
2009-01-29 14:08:17 -05:00
Neil Fortner
b3731e3409 [svn-r16371] Modify test_pack_ooo to always output the state of randomly generated variables
when it fails, even in the sections that do not use the random variables.

Tested: jam
2009-01-28 12:21:07 -05:00
Quincey Koziol
e163a5f6ab [svn-r16368] Description:
Bring r16367 back from trunk:

	Refactor internal address encode/decode routines slightly, to allow for
more flexible use.

Tested on:
   Mac OS X/32 (amazon)
   FreeBSD/32 (duty)
   (too minor to require h5committest)
2009-01-27 18:16:13 -05:00
Quincey Koziol
a7673d2f91 [svn-r16365] Description:
Bring r16364 back from trunk:

    Clean up a few compiler warnings

Tested on:
    Mac OS X/32 (amazon)
    (too minor to require h5committest)
2009-01-27 16:18:23 -05:00
Scot Breitenfeld
bea031e44c [svn-r16363] Description:
Merged changes from the trunk into the branch. Used the command:

svn merge -r 16197:16362 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Platforms tested: smirom, liberty
2009-01-27 15:59:03 -05:00
Neil Fortner
4cd5a378c4 [svn-r16361] Purpose: Fix potential error with H5Tset_order
Description: H5Tset_order will now properly reject H5T_ORDER_NONE for most
datatypes.  Previously this could cause major problems as the file could not be
flushed.

Tested: jam, smirom (h5committest)
2009-01-27 11:05:53 -05:00
Pedro Vicente Nunes
4f48c9c555 [svn-r16359] merge 16348
bug fix
a new line was not inserted at the end of output, causing diff to complain between linux and frebsd

tested: linux (freebsd tested on the trunk)
2009-01-27 10:42:42 -05:00
Quincey Koziol
661734d541 [svn-r16356] Description:
Bring r16354 back from trunk:

        Refactor internal layout information, making it easier to add another
type of chunk index.

Tested on:
	FreeBSD/32 (duty)
	(other configurations tested with original change)
2009-01-27 09:47:26 -05:00
Pedro Vicente Nunes
92f5db9daf [svn-r16355] bug fix: some printf calls instead of parallel_print made some tests to fail
tested: on the trunk
2009-01-27 09:02:20 -05:00
Pedro Vicente Nunes
d2dd85b598 [svn-r16351] merge 16348
#1368 (E1) h5diff: implement  "not comparable" messages. Implemented RFC. The new option is <-c, --compare           List objects that are not comparable>

added some test cases

tested: windows, linux
2009-01-26 15:39:32 -05:00
Neil Fortner
1197e992e9 [svn-r16350] Purpose: enhancements the H5Tinsert, H5Tpack
Description: H5Tinsert will now detect when a compound type that was previously
not packed becomes packed due to out of offset order insertion of a member.
H5Tinsert will now attempt to keep members sorted by offset order.  This should
improve performance of H5Tinsert in all cases due to the fact that it no longer
needs to check every other member for overlapping, and should improve
performance of H5Tpack and possibly type conversion when compounds are packed
out of order.

Tested: jam, smirom (h5committest)
2009-01-26 14:43:09 -05:00
HDF Tester
0a9e0279b6 [svn-r16346] Snapshot version 1.8 release 2 (post4) 2009-01-25 16:40:52 -05:00
Larry Knox
f6d689ac18 [svn-r16343] Temporarily undo skipping the h5diff test of hyper1.h5 and hyper2.h5 that hangs on THG machines to see if the problem is fixed. Simple change - tested on jam. 2009-01-22 17:20:33 -05:00
Frank Baker
6bd7826ce8 [svn-r16341] Description:
Changed 'THG' to 'The HDF Group' in various HDF5 source files,
        most of which are <subdirectory>/COPYING.
    -- Closes Bugzilla entry 1403.
2009-01-22 16:03:58 -05:00
Mike McGreevy
976eb1cb49 [svn-r16339] Purpose:
Bug Fix

Description:

    Removing some unnecessary headers from test/cache.c which snuck their way
    into one of my previous check-ins ... thanks to Allen for catching this
    while testing on windows.

Tested:

    Windows, Linux
2009-01-22 14:59:09 -05:00
Raymond Lu
8a3162e118 [svn-r16334] Added definition for two new macros H5_HAVE_C99_DESIGNATED_INITIALIZER and H5_HAVE_C99_FUNC.
Tested on OpenVMS.
2009-01-21 11:05:36 -05:00
Albert Cheng
4c6f09d4de [svn-r16332] Bug 948.
The test "h5diff -v h5diff_hyper1.h5 h5diff_hyper2.h5" sometimes hangs in THG
machines. Skip it until its hanging is resolved.

Tested: Jam pp only since it is a simple script change.
2009-01-19 22:39:42 -05:00
HDF Tester
cd5619a2c2 [svn-r16331] Snapshot version 1.8 release 2 (post3) 2009-01-18 16:49:07 -05:00
Raymond Lu
228a3ac054 [svn-r16326] Fixed a small problem in file names. Some new file names were left out for OpenVMS.
To be tested on OpenVMS.
2009-01-16 16:11:19 -05:00
Mike McGreevy
c2bb26a754 [svn-r16325] Purpose:
Code Cleanup

Description:

    - Pulled out repetetive cache stats code into its own new macro.

    - Converted HDasserts in verification macros to if / HGOTO_ERROR statments
      in order to keep code consistent.

Tested:

    jam (also tested smirom/liberty in trunk)
2009-01-15 14:57:02 -05:00
Albert Cheng
7341054c69 [svn-r16322] Purpose:
Improvement

Description:
Modified the warning messages from the Version mismatch checking to suggest
the users to try recompiling or checking the shared lib setting.

Platforms tested:
Tested in Jam only since it was just a simple text string changes.
2009-01-14 18:50:38 -05:00
Pedro Vicente Nunes
2ad37c5958 [svn-r16320] merge 16319
add conditinal nan detection to some missing places

tested: windows, linux
2009-01-14 16:43:26 -05:00
Raymond Lu
f677f9fbcf [svn-r16314] Added support for OpenVMS pathname for external link.
Tested on OpenVMS and jam.
2009-01-14 14:48:39 -05:00
Pedro Vicente Nunes
127792fc31 [svn-r16313] merge 16301
Add a mention to the usage that the default minimum size for compression is 1024 bytes


M - is an integer greater than 1, size of dataset in bytes (default is 1024)


#bgz 1426


tested: windows, linux
2009-01-14 11:36:10 -05:00
Pedro Vicente Nunes
d496a1c715 [svn-r16312] merge 16300
Added an option to avoid dealing with NaNs 
-N, --nan               Avoid NaNs detection
Note: there is no shell script run for datasets with NaN because the output is non portable (different results and NaN strings for different systems)


Tested: windows, linux
2009-01-14 11:31:52 -05:00
Pedro Vicente Nunes
98d4ba5d8a [svn-r16310] merge 16299
Print a message of
Storage:   information not available
When displaying storage information for VL and dataset region types
Added 2 shell runs that display this information
#818


Tested: windows, linux
2009-01-14 10:58:16 -05:00
Neil Fortner
b7a12779d5 [svn-r16309] Purpose: Fix problem with H5Tpack
Description:
If a compound type was packed except for some extra space at the end, H5Tpack
would not modify the type and the extra space would remain.  Changed
H5T_is_packed to fix this behaviour.

Tested: jam, smirom (h5committest - linew down)
2009-01-14 10:45:25 -05:00
Quincey Koziol
60915ff8aa [svn-r16307] Description:
Bring r16306 back from trunk:

	Add detection of C99 "designated initializers" to configure script and
use new H5_HAVE_C99_DESIGNATED_INITIALIZER macro to conditionally compile
default layout variables in src/H5Pdcpl.c

	Also, minor code cleanups, etc.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(Other platforms tested on revise_chunks branch)
2009-01-14 09:01:12 -05:00
Scot Breitenfeld
bbd83d97e0 [svn-r16304] Description:
added:

!DEC$ATTRIBUTES reference ::

for character strings being passed in to C to fix bug in VMS for functions
h5sdecode_f and h5sencode_f.
2009-01-13 16:16:18 -05:00
Elena Pourmal
9c53e8281a [svn-r16302] Maintenance: Removed a debug qualifier that caused batch job to skip basic
Fortran test.
2009-01-13 16:14:03 -05:00
Neil Fortner
2a23b4b176 [svn-r16297]
Disable more file drivers incompatible with family file driver in external_set_elink_cb in links.c.

Tested: jam check-vfd
2009-01-11 12:24:48 -05:00
Neil Fortner
5c204221e1 [svn-r16295] Changes to links.c to prevent the core file driver from being used as the member
file driver for a family file.  This was causing problems with check-vfd.

Tested: jam
2009-01-10 16:16:12 -05:00
Mike McGreevy
7b9871bfa2 [svn-r16293] Purpose:
Bug Fix

Description:

    Removed problematic debugging statement and switched one remaining TRUE
    verbose statement to FALSE in cache_common.c

Tested:

    jam, liberty
2009-01-10 09:59:49 -05:00
Mike McGreevy
52d3f187a5 [svn-r16291] Purpose:
svn merge

Description:

    merging revision 16290 from trunk to 1.8

   (revision 16290 contains the code that maintains a min_clean_fraction
   of the metadata cache in serial).

Tested:

    smirom, jam
2009-01-09 16:10:29 -05:00
Neil Fortner
aa12e27206 [svn-r16288] Fix one of the new tests in links.c. external_set_elink_cb no longer copies the
driver information from property list to property list.

Tested: jam
2009-01-09 11:00:37 -05:00
Pedro Vicente Nunes
17a2d21791 [svn-r16285] - h5repack: When user doesn't specify a chunk size, h5repack now defines a default
chunk size as the same size of the size of the hyperslab used to read the chunks. 
            The size of the hyperslabs are defined as the size of each dimension or a 
            predefined constant, whatever is smaller. This assures that the chunk 
            read fits in the chunk cache. (PVN - 2008/11/21)

  - H5Dset_extent: when shrinking dimensions, some chunks were not deleted.  
            (PVN - 2009/01/8)
2009-01-08 14:15:13 -05:00
Neil Fortner
50d88ec142 [svn-r16282] Purpose: Add functions to allow more flexible traversal of external links.
Description: Added H5Pset/get_elink_cb to allow the user to specify a callback
function to be called whenever an external link is traversed.  Added
H5Pset/get_elink_acc_flags to allow the user to specify the file access flags
to use to open the target file of an external link.  All these properties are set on a LAPL.

Tested: jam (trunk version tested with h5committest)
2009-01-08 13:24:09 -05:00
Quincey Koziol
ab2ff6eda4 [svn-r16280] Description:
Bring revision 16278 back from revise_chunks branch:

	Update layout information in DCPL to unify all information in one
underlying property and switch to using H5O_layout_t for storing it, which
simplifies things considerably.

	Also, fix many compiler warnings.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(Original patch tested on many machines)
2009-01-08 12:56:57 -05:00
Raymond Lu
416af90179 [svn-r16276] Update. Commented out H5_HAVE_RAND_R because OpenVMS doesn't have rand_r function.
Tested on OpenVMS.
2009-01-08 11:07:02 -05:00
Pedro Vicente Nunes
56f666d330 [svn-r16275] Added a test for shrinking to 0 dimemsions
Tested: windows, linux
2009-01-08 10:26:17 -05:00
Albert Cheng
d318a3b7ce [svn-r16270] Bug fix.
The Tail command in jam (a newer linux) does not accept the +2l option.
It ended up wiping most of the release_doc/RELEASE.txt file contents.
Replaced the "tail +2l" by "sed -e 1d".

Tested:
Tested in Jam to verify it functions properly again.
2009-01-06 17:58:47 -05:00
Raymond Lu
4c032ef58e [svn-r16268] Temparorily comment out some failing tests for Open VMS. After fixing the problem, I will
uncomment them.

Tested on Open VMS and jam.
2009-01-06 17:14:24 -05:00
Neil Fortner
e87964eadf [svn-r16267] Revert RELEASE.txt to the version before it was mostly deleted by hdftest.
Update version number listed at the top.

Tested: vim
2009-01-06 10:10:51 -05:00
Scot Breitenfeld
fe1223d360 [svn-r16263] Description:
added missing reference in h5lget_name_by_idx_f:

!DEC$ATTRIBUTES reference ::

for character strings being passed in to C to fix bug in VMS.
2009-01-05 11:42:17 -05:00
Scot Breitenfeld
fbf861cbde [svn-r16234] Description:
Cosmetic changes, Also tested -r16232 on:

Jam (intel 10.1)
Smirom (intel 10.1)
2008-12-30 12:25:11 -05:00
Scot Breitenfeld
79e4e95e82 [svn-r16232] Description:
Added chunk property to the data set because changes H5Dset_extent now require/check the the data set is chunked.
2008-12-30 11:43:17 -05:00
Pedro Vicente Nunes
f4df369454 [svn-r16228] cleaned more linux warnings
tested: linux
2008-12-29 16:52:56 -05:00
Pedro Vicente Nunes
ca0c4ce8fd [svn-r16226] merge 16225
remove debug messages
tested: windows, linux
2008-12-29 16:32:19 -05:00
Pedro Vicente Nunes
eb3eb77e57 [svn-r16224] merge from 16223
Modified H5Dset_extent so that it fails when called for compact datasets and contiguous with no external storage
new test program: It adds tests for several ranks, use of fill value or not, compression, different fill value allocation times, use of different storage layouts, and external files

tested: windows, linux
2008-12-29 15:54:58 -05:00
HDF Tester
972a1f1003 [svn-r16221] Snapshot version 1.8 release 2 (post2) 2008-12-28 16:57:28 -05:00
Pedro Vicente Nunes
2a6e4d4e43 [svn-r16218] Merging trunk 16217
Bug fix
PG compiler complains about array out of bounds (a rank of zero was not checked)
Adding a scalar dataset to the test generator program. this case is run on a previous existing run, the case was added to 2 existing files

Tested: windows, linux
2008-12-23 10:52:22 -05:00
Albert Cheng
fdcd0fb59f [svn-r16216] Updated for removed file.
Tested by bin/chkmanifest.
2008-12-22 23:53:13 -05:00
Elena Pourmal
5b57b18ae8 [svn-r16215] Maintenance:
Updated command files in order to build in a batch queue;
	added lines that define compiler qualifiers and location
	of the zlib library in case one has to build manually in 
	a current directory.
	Deleted command file in the vms/tools/h5ls directory that 
	is no longer needed.
Platforms tested:
	VMS server (build passed; tests are running now)
2008-12-22 18:22:19 -05:00
Raymond Lu
18197d3471 [svn-r16213] Added HDlseek to the H5FD_core_truncate function in H5FDcore.c to rewind the file pointer
to the beginning of the file.  Otherwise, the file might be re-extended later on Open VMS.
Also updated the return value for the HDlseek to be more appropriate.

Tested on Open VMS.
2008-12-22 14:01:29 -05:00
Raymond Lu
ec9ff804e2 [svn-r16212] Update: H5Distore.c was taken out. H5Bdbg.c and H5Dbtree.c were added.
Tested on Open VMS.
2008-12-22 13:42:06 -05:00
HDF Tester
1b42d70294 [svn-r16211] Snapshot version 1.8 release 2 (post1) 2008-12-21 19:28:58 -05:00
Allen Byrne
52b7b7d462 [svn-r16208] Added new file H5Bdbg.c to windows project file. Tested using VS2008 Express. 2008-12-18 10:05:54 -05:00
Quincey Koziol
58a925fe4c [svn-r16205] Description:
Bring r16204 back from trunk:

	Moved v1 B-tree debugging routines into separate module and thinned
out header files a bit.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	Too minor to require h5committest
2008-12-18 08:52:50 -05:00
Elena Pourmal
3fbec7d04f [svn-r16203] Maintenance: Added new VMS command file to the MANIFEST file.
Platforms tested: My MAC with the chkmanifest script.
2008-12-16 10:05:52 -05:00
Raymond Lu
778d231626 [svn-r16201] Comment out a debug info.
Not test is needed.
2008-12-15 16:12:12 -05:00
Raymond Lu
28366536ba [svn-r16200] Add makefile for tools/misc directory, compiling h5debug.c and h5mkgrp.c. 2008-12-15 16:02:48 -05:00
Raymond Lu
9c5100ced3 [svn-r16199] Added HDlseek in front of the truncate function in H5FD_sec2_truncate for VMS only.
On Open VMS, if the last read or write put the file pointer beyond the current file size 
(it happens when an object is deleted), the file can be extended when it's truncated.

Tested on VMS.
2008-12-15 15:40:24 -05:00
Scot Breitenfeld
ef857fa7d7 [svn-r16198] Description:
Removed the fortran file: ./fortran/src/H5fortran_flags.f90
which is no longer needed.
2008-12-15 15:11:32 -05:00
Scot Breitenfeld
41245b50b6 [svn-r16197] Maintenance: Merged trunk into the hdf5_1_8 branch
(used svn merge -r 15741:16196 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran).
2008-12-15 14:17:49 -05:00
Mike McGreevy
327484d503 [svn-r16195] Purpose:
Bug Fix

Description:

    Resolved issues with broken sanity checks that were failing when the 'b2'
    debugging package was enabled (v2 b-tree debugging):

        - Fixed outdated assertions that would not compile. They now compile
          and function correctly.

        - Removed too far outdated assertions that would require too much
          unnecessary refactoring of code in order to satisfy their 
          initial purpose.

        - Re-enabled b2 debugging package when "--enable-debug=all" is 
          specified on the configure line.

Tested:

    jam, smirom, linew
2008-12-15 12:43:11 -05:00
Elena Pourmal
0c86f4cd9c [svn-r16192] Maintenance on VMS:
Command file had a line for building an object file for a non-existing
	source; deleted.
Platforms tested:
	VMS server
2008-12-12 18:29:17 -05:00
Elena Pourmal
69f88cf77c [svn-r16191] Maintenance on VMS:
make.com for the h5stat tools was not copied to the h5stat
	directory. It caused build script to fail. Fixed.
Platforms tested:
	VMS server
2008-12-12 18:24:49 -05:00
Allen Byrne
2dfcef40cd [svn-r16190] Changed references of H5Distore to H5Dbtree in project files. (Related to revision 16180) 2008-12-12 13:16:59 -05:00
Quincey Koziol
f4cf17d0d7 [svn-r16188] Description:
Bring r16187 back from trunk:

	Change a few more "istore" references in comments to "chunk" or "btree".

Tested on:
        None, just comments
2008-12-11 15:08:15 -05:00
Quincey Koziol
796f5a9f4c [svn-r16183] Description:
Bring r16182 back from trunk:

	Rename internal routines, variables, macros, typedefs, etc. for chunked
dataset storage from "istore" to some variant of "chunk" or "btree".

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
2008-12-11 14:34:27 -05:00
Quincey Koziol
4168cf3af6 [svn-r16181] Description:
Bring r16180 back from trunk:

	Rename the current chunk indexing routines module for B-tree indices
to better reflect their purpose, and to make the upcoming extensible array
index module fit in better.

Tested:
	FreeBSD/32 6.3
	Too minor to require h5committest
2008-12-11 13:49:25 -05:00
Elena Pourmal
32ce1dd47d [svn-r16178] Maintenance for VMS system:
Updated command files for building Fortran library and tests.

Platforms tested: Boeing VMS server.
2008-12-11 10:12:19 -05:00
Neil Fortner
9f13e1ccb0 [svn-r16177] Remove terminal whitespace in links.c, H5Lexternal.c, H5Plapl.c
Tested: jam
2008-12-09 14:55:51 -05:00
Albert Cheng
04ec4470e5 [svn-r16175] Updated fix of the missing argument of open() in zip_perf.c.
Also reformat some other entries to keep them with a consistent format.
2008-12-09 10:57:17 -05:00
Albert Cheng
5218c4001a [svn-r16172] Code clean up.
Function get_unique_name() had potential string overflow problem.
Fixed. Also removed some unused macros.

Tested by h5committest.
2008-12-08 23:11:37 -05:00
Albert Cheng
27c239c2d1 [svn-r16168] Bug fix: 1089
Description:
One open() call with O_CREAT flag did not have the third required argument.

Solution:
Added the right third argument. Also changed all open() calls to HDopen
macros for more portable coding.

Tested:
h5committested.
2008-12-08 21:29:06 -05:00
Frank Baker
3dcdd204de [svn-r16164] Description:
Change all occurrences of 'THG' to 'The HDF Group'.
2008-12-08 16:40:30 -05:00
Pedro Vicente Nunes
c70ab22f2f [svn-r16159] merge 16158
Test the non deletion of a chunk for the case chunk_offset == dimension by shrinking first, then expanding to original size and compare buffers of initialized values 

Tested: windows, linux
2008-12-03 22:53:05 -05:00
Pedro Vicente Nunes
4cb7515496 [svn-r16157] merge 16156
close & re-open the file for the test of non-default B-tree internal 'K' value (There was a bug where a non-default B-tree internal 'K' value was not  being stored in the file)
this is a rewrite of the old set_extent.c test program
tested: windows, linux
2008-12-03 21:31:12 -05:00
Raymond Lu
7c5468f27f [svn-r16155] Update - undefine H5_HAVE_STAT64 and H5_HAVE_FSTAT64 2008-12-03 15:29:23 -05:00
Pedro Vicente Nunes
181b5fc3e8 [svn-r16153] merge 16152
added comments and removed unnecessary code


tested: windows, linux
2008-12-02 15:56:25 -05:00
Pedro Vicente Nunes
bdd4bd0d4d [svn-r16149] merge 16148
reorganized the set_extent test to be more modular

tested: windows, linux
2008-12-02 14:43:37 -05:00
Pedro Vicente Nunes
3f26602c9e [svn-r16145] Merging with trunk regarding revisions
16132

some chunks were not deleted for some cases, the comparison to check for chunk offsets outside of the new dimensions was
chunk_offset[ i ] > dimension [ i ]
and it must be
chunk_offset[ i ] >= dimension [ i ]


16133
H5TBdelete_record was not handlong correctly records at the end of the table
added a ckeck that avoids to read these records if they are not needed (for pushing down the table)

16143
add a test for recent fixes of H5Dset_extent

tested: windows, linux
2008-12-01 15:58:00 -05:00
HDF Tester
78e90e5780 [svn-r16139] Snapshot version 1.8 release 2 (post0) 2008-11-30 17:58:27 -05:00
Raymond Lu
7a0f481872 [svn-r16135] Updates. Tested on VMS. 2008-11-26 17:05:25 -05:00
Raymond Lu
3fc7f73c8d [svn-r16131] Updated it. 2008-11-24 17:46:51 -05:00
Raymond Lu
5fd91ff962 [svn-r16130] Updated h5pubconf.h and corrected make.com 2008-11-24 16:54:29 -05:00
Pedro Vicente Nunes
1a88b7687f [svn-r16129] revised test table
tested windows linux
2008-11-24 16:23:08 -05:00
Pedro Vicente Nunes
56e444329e [svn-r16127] correct and entry in the wrong place 2008-11-24 15:26:09 -05:00
Pedro Vicente Nunes
69698dff03 [svn-r16126] In version 3.0 of Table, "NROWS" was deprecated
tested: windows, linux
2008-11-24 15:21:53 -05:00
Raymond Lu
fa40801d42 [svn-r16123] Add vms/tools/h5stat/make.com 2008-11-24 09:46:34 -05:00
Pedro Vicente Nunes
330cdd5f97 [svn-r16118] h5repack: Define a default chunk whose size is manageable. (PVN - 2008/11/21) 2008-11-21 15:19:40 -05:00
Pedro Vicente Nunes
0b4b87e36f [svn-r16115] #1375. Define a default chunk whose size is manageable. Defined currently as the same size of hyperslab (that compares the dimension sizes against a predefined constant size and chooses the minimum between the two)
Tested : linux, windows
2008-11-21 15:03:41 -05:00
Raymond Lu
e2c88e83bd [svn-r16113] Updated the makefiles (make.com) and check.com and src/h5pubconf.h (generated on kagiso).
Not tested yet.
2008-11-21 10:48:28 -05:00
Elena Pourmal
0fa496eced [svn-r16109] VMS maintenance: Brought command files up-to-date 2008-11-19 15:32:11 -05:00
Elena Pourmal
feb6b5e546 [svn-r16108] Maintenance: Brought up command file up-to-date. 2008-11-19 15:18:26 -05:00
Elena Pourmal
2f03768888 [svn-r16104] Bug fix:
h5vers script overwrote the value for windows file; fixed
2008-11-19 14:22:27 -05:00
Elena Pourmal
96fd960606 [svn-r16102] Maintenance: Suffix after the release is done should be post0 instead of
snap0; caught by Albert, fixed by policy offender.
2008-11-19 13:23:19 -05:00
Elena Pourmal
1258c22bb0 [svn-r16101] Maintenance: Library version number in vms/src/h5pubconf.h
was not updated automatically and therefore
             was always outdated. Modified h5vers script to update
             the version for the VMS configuration file as we do for 
             the similar windows file.
Platforms tested:
             kagiso with bin/h5vers
2008-11-19 11:24:35 -05:00
Mike McGreevy
374f8f9da5 [svn-r16096] Purpose: Updating bin/reconfigure script
Updating bin/reconfigure script to point to autotools in /mnt/hdf/packages,
    since /home1/packages no longer exists.

Tested: kagiso
2008-11-18 15:22:51 -05:00
Quincey Koziol
e012505802 [svn-r16092] Description:
Switch H5Gcreate -> H5Gcreate2 and H5Gopen -> H5Gopen2, so that they aren't
switched with the API compability flags are changed

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    Linux/64 2.4 (smirom) w/API compability
2008-11-17 17:24:23 -05:00
Scott Wegner
29be5ec598 [svn-r16090] Purpose: Add new source file to Windows.
Description:
Recently a new source file, H5Pdapl.c, was brought to the 1.8 branch.  This checkin also adds it to the Windows Visual Studio projects.

Tested:
None needed, very minor.
2008-11-17 17:14:05 -05:00
Neil Fortner
3c5f5263e3 [svn-r16088] Purpose: Update RELEASE.txt for H5Pset_chunk_cache etc.
Tested: gedit
2008-11-17 14:41:01 -05:00
Neil Fortner
ca1fa22021 [svn-r16087] Purpose: Port H5Pset_chunk_cache, H5Pget_chunk_cache, and H5Dget_access_plist
functions to 1.8 branch

Tested: kagiso, jam (trunk version tested with h5committest)
2008-11-17 14:36:40 -05:00
Neil Fortner
e00d3174e5 [svn-r16086] Purpose: Port H5Iis_valid function to 1.8 branch
Tested: kagiso (trunk version tested with h5committest)
2008-11-17 14:13:08 -05:00
Neil Fortner
a6493ad0c0 [svn-r16083] Purpose: Fix a problem in the file unmounting code
Description: Fixes a problem in H5F_close_mounts where it wouldn't correctly
reshape the "child" array when unmounting files.  Test added for this case.
Also fixed a potential bug in H5F_unmount where that routine reshapes the child
array.  (Port to 1.8)

Tested: kagiso linew smirom (h5committest)
2008-11-17 14:00:02 -05:00
Pedro Vicente Nunes
0426a9ff06 [svn-r16073] For scalar string datasets print the character position when a difference is found instead of a non-existing array position
Tested: windows, linux
2008-11-13 11:45:08 -05:00
Pedro Vicente Nunes
c9300fbde0 [svn-r16071] For scalar string datasets print the character position when a difference is found instead of a non-existing array position
tested: windows, linux
2008-11-13 11:16:12 -05:00
Elena Pourmal
66f00a70a4 [svn-r16069] Maintenance: Changed version to 1.8.2-snap0 and updated documentation files
after the release. Branch is open for check-ins now.
2008-11-12 15:53:30 -05:00
Elena Pourmal
18f2cf5cb6 [svn-r16058] Maintenance: Changed version to 1.8.2 and released source tar ball. I will
tag the release after we build binaries tonight.
2008-11-10 15:45:46 -05:00
Albert Cheng
f289a72b30 [svn-r16056] Updated Red Storm instruction. 2008-11-10 15:23:37 -05:00
Albert Cheng
5ffd94a3de [svn-r16053] Updated with AIX and Cray XT3 information. 2008-11-10 14:51:36 -05:00
Elena Pourmal
e68e7d3e41 [svn-r16051] Maintenance: Some lines were too long; broke them in two. 2008-11-10 14:33:26 -05:00
Elena Pourmal
8a54bb616b [svn-r16049] Maintenance: forgot to fix a typo in the gfortran version; fixed. 2008-11-10 12:03:54 -05:00
Elena Pourmal
3557f90e62 [svn-r16048] Maintenance: In preparation of the release
Pedro and I cleaned up the tools sections in the file.
2008-11-10 12:02:51 -05:00
Scott Wegner
e492e8989b [svn-r16047] Update Windows release documents-- increment version number for 1.8.2, and drop MinGW support for this release (not enough time for testing) 2008-11-10 11:36:37 -05:00
Binh-Minh Ribler
b7564c7536 [svn-r16046] Description:
Updated info about H5Rdereference wrappers.
2008-11-10 09:46:05 -05:00
Elena Pourmal
79b24eacfc [svn-r16038] Maintenance: More cleanup before the release based on Quincey's comments. 2008-11-06 11:13:35 -05:00
Elena Pourmal
8a5e38fd6a [svn-r16035] Maintenance: Cleaned up the file before 1.8.2 release. 2008-11-05 12:01:59 -05:00
Elena Pourmal
835e13806c [svn-r16031] Bug fix: While testing hdf5-1.8.2-pre1 on Mac I dicovered that I made
a typo in a configuration file for Mac checked in on 
         October 31 (rev 16008). Since this change affects only Fortran
         users on Mac Intel and doesn't affect daily tests on any platforms,
         I am checking in the fix.
Platforms tested:
	 pahra with Intel compilers
2008-11-04 16:38:45 -05:00
Pedro Vicente Nunes
7885abab9a [svn-r16027] reintroduce code before 16025 of code freeze 2008-11-04 13:33:57 -05:00
Pedro Vicente Nunes
f0d6f33b74 [svn-r16025] For scalar string datasets print the character position when a difference is found instead of a non-existing array position
Tested: windows
2008-11-03 21:53:41 -05:00
Elena Pourmal
d9080af461 [svn-r16023] Maintenance: Changed version to hdf5-1.8.2-pre1 before creating a tar ball for
remote testing.
2008-11-03 16:54:52 -05:00
Neil Fortner
780999deee [svn-r16021] Purpose: Fix behaviour of H5Ovisit
Description: H5Ovisit and H5Ovisit by name will now check for a positive return
value from the first callback.  Test added for this case.

Tested: kagiso
2008-11-03 15:54:19 -05:00
Scott Wegner
d2980de247 [svn-r16019] Purpose: Fix Windows definition of H5ftruncate for VS.NET
Description:
On Windows/Visual Studio, there is no function ftruncate.  As a result, we have redefined the H5ftruncate macro to use _chsize_s.  However, this function also doesn't exist on Visual Studio prior to 2005.  Previously we had an #ifdef to support VS 6.0 with the lesser chsize function.  This checkin changes the #ifdef to also include VS.NET, since we still support it for HDF5 1.8 branch.

Tested:
VS.NET on WinXP
2008-11-03 09:39:02 -05:00
Larry Knox
019c82760e [svn-r16017] Correct Fortran compiler version for mercury. 2008-11-01 11:10:56 -05:00
Larry Knox
8935335907 [svn-r16015] Update Platforms Tested and Supported Configuration Features summary sections for November 2008 release. 2008-11-01 10:42:47 -05:00
Pedro Vicente Nunes
215fcf771f [svn-r16011] Bug fix
When -b was requested and no -o (file name) binary output was made to stdout
Had a check after command line parsing to verify if -o is present, otherwise exit

Tested: windows, linux
2008-10-31 13:03:17 -05:00
Elena Pourmal
27d42dfae5 [svn-r16008] Maintenance: Updated compilers and system information for Mac Intel in
RELEASE.txt
             Modified config file to disable shared libraries only
             when Fortran is enabled.
Platforms tested:
             pahra (Mac Intel 10.5.4)
2008-10-31 09:27:54 -05:00
Binh-Minh Ribler
752627e424 [svn-r16007] Description:
Added info to C++ API sections, about dereference wrappers and the fix 
    of bugzilla 1068, which involved the rearrangement of the class hierarchy.
2008-10-30 22:59:50 -05:00
Raymond Lu
edb9de4efc [svn-r16005] Modify the commit of r15936 for H5_USE_16_API. Let H5version.h check if H5_USE_16_API_DEFAULT is defined by the configure. Then define H5_USE_16_API and use it throughout.
Tested on kagiso - supposed to be simple.
2008-10-30 14:44:06 -05:00
Pedro Vicente Nunes
f2bdeee898 [svn-r16003] h5import: TEXTFPE (scientific format) was deprecated. Use TEXTFP
+            instead (PVN - 2008/10/30)
2008-10-30 14:36:47 -05:00
Pedro Vicente Nunes
148f0787ad [svn-r16002] h5diff: return 1 for file differences when both file graphs differ by any object.
+            Error return code was changed to 2 from -1. (PVN - 2008/10/30)
2008-10-30 14:30:34 -05:00
Pedro Vicente Nunes
209f3a4504 [svn-r15999] h5dump: binary default to NATIVE. 2008-10-30 14:16:04 -05:00
Binh-Minh Ribler
2cfa680366 [svn-r15998] Description:
Fixed various comments/headers to update the C++ reference manual.

Platforms tested:
    Linux 2.6 (kagiso) - to make certain no typo introduced
2008-10-30 14:05:47 -05:00
Pedro Vicente Nunes
b3e7158c54 [svn-r15996] Added a definition of HDftruncate for windows to compile with VC6 and later versions
Tested: windows
2008-10-30 11:11:21 -05:00
Pedro Vicente Nunes
37bff127f5 [svn-r15995] remove mention to h5diff -c 2008-10-30 10:37:19 -05:00
Pedro Vicente Nunes
8de58b40f5 [svn-r15985] reorganized the code to deal with deprecated -i -o for in/out files to avoid duplicated code
tested: windows, linu

x
2008-10-28 20:32:42 -05:00
Quincey Koziol
d851c3ba6c [svn-r15982] Description:
Remove redundant check for 1.6 default API.

Tested on:
    Eyeballed - very trivial
2008-10-28 18:42:20 -05:00
Pedro Vicente Nunes
9dd196f146 [svn-r15981] added the version from rev 15974, this AM, before any changes made today 2008-10-28 15:53:09 -05:00
Pedro Vicente Nunes
dd0b3ce4a8 [svn-r15980] add mention to h5diff long double 2008-10-28 15:02:52 -05:00
Pedro Vicente Nunes
5f376374db [svn-r15976] remove mention to h5diff -c 2008-10-28 11:11:25 -05:00
Elena Pourmal
98bac0cfc0 [svn-r15974] Bug fix:
Compilation on all daily test platforms fails due to missing "(";
	fixed.

Platforms tested:
	co-login
	kagiso with --with-default-api-version=v16 and  
        --with-default-api-version=v16 --disable-deprecated-symbols
        compilation flags.
2008-10-27 22:19:31 -05:00
Pedro Vicente Nunes
a8e59673c0 [svn-r15973] make -b accept both MEMORY and NATIVE
tested: windows, linux
2008-10-27 21:02:12 -05:00
Scott Wegner
a2501c41bd [svn-r15970] Purpose: Update Windows h5dump test script
Description:
The h5dump test script was recently updated to add the new -b syntax.  This update also adds and modifies the neccessary tests for Windows.

Tested:
VS2005 on WinXP
2008-10-27 15:39:28 -05:00
Pedro Vicente Nunes
f08f9340a7 [svn-r15969]
Introduced a new feature in the tools library regarding command line parsing
In the definition of arguments, an "*" means that the switch can or can not have an optional argument. This "*" is put in the code regarding the letter definition, and it is transparent to the user (e.g b* instead of the previous b: ), where ":" notes a required argument after the letter (and no ":" or "*" notes no argument, mandatory)
Used for the h5dump binary option -b
It can be now
1)	-b (defaults to NATIVE)
2)	- b NATIVE
3)	- b FILE
4)	-b LE
5)	-b BE
Note: the keyword NATIVE replaces MEMORY
This feature (-b with no argument) was tested with the sequence of h5dump to binary (NATIVE) then h5import to generate an HDF5 file from the binary file and h5diff to compare the 2 HDF5 files
Tested: windows, linux
2008-10-27 15:06:28 -05:00
Pedro Vicente Nunes
64e96385de [svn-r15967] regarding the return value of h5diff (0, no difference in files, 1 difference )
objects with the same name must be of the same type


tested: windows, linux
2008-10-27 11:18:06 -05:00
Scott Wegner
30675b0c4a [svn-r15964] Purpose: Mention Windows bugfix in release document
Description:
In June, we discovered a bug in Windows which only affected specific timezones with the mtime test.  This bug was promptly fixed, but never documented.  This checkin adds a note to the release document.
2008-10-27 09:56:48 -05:00
Scott Wegner
2d567669cd [svn-r15963] Purpose: Minor h5repack test update
Description:
Change the Windows h5repack test script so that the h5diff format matches the latest changes.  In particular, don't send the -c option.

Tested:
None, very minor
2008-10-27 09:32:57 -05:00
Binh-Minh Ribler
9e9c74f7c0 [svn-r15962] Description:
Fixed some typos and replaced free/HDfree and malloc/HDmalloc.

Platforms tested:
    Linux 2.6 (kagiso) - very minor
2008-10-27 08:49:25 -05:00
Binh-Minh Ribler
9924714992 [svn-r15960] Description:
Oops, I accidentally only did "svn commit" instead of "svn commit -m" as
    instructed.
    "ported revisions 15958 to 15959 (Added missing wrappers for H5Rdereference)
    from trunk."
2008-10-26 22:02:39 -05:00
HDF Tester
c16cadef00 [svn-r15958] Snapshot version 1.8 release 1 (snap7) 2008-10-26 17:40:34 -05:00
Christian Chilan
aaf4e0bda5 [svn-r15956] Revised the help page of h5perf.
Tested on kagiso.
2008-10-26 16:19:31 -05:00
Albert Cheng
d55acefa0f [svn-r15951] Fix Bug 1300.
Removed duplicated information due to previous incompleted changes.
Also rearranged the entries to a more logical combinations.

Tested: h5committest.
2008-10-25 20:43:40 -05:00
Mike McGreevy
5e1af503a6 [svn-r15949] Purpose: Documentation
Description: Updating RELEASE.txt with changes for release.

Tested: docwork only, none needed
2008-10-24 16:37:45 -05:00
Mike McGreevy
1c0b652994 [svn-r15948] Purpose: Bug Fix
Description: Adding the SZIP path to LD_LIBRARY_PATH within configure was
             inadvertently blowing away anything already in LD_LIBRARY_PATH. This
             fixes that, which solves, among other things, the problem where
             configure failed to learn how to print 'long long' on cobalt.

Tested: full make check install: kagiso, smirom
        configure / make / h5ls test only : cobalt, linew
2008-10-24 16:30:49 -05:00
Raymond Lu
5f16ae281c [svn-r15946] A follow-up checkin for the last-round commit(r15936). Added a test in this script file to
check whether the macros H5_USE_16_API works properly.  There used to be a problem to compile
if H5_USE_16_API is defined in the application program (see bug #1264).

Tested on kagiso - simple change.
2008-10-24 14:48:57 -05:00
Pedro Vicente Nunes
07baa2bd02 [svn-r15945] redo the
use of
H5_PRINTF_LL_WIDTH
in the definition of 
#define HSIZE_T_FORMAT   "%"H5_PRINTF_LL_WIDTH"u"

the printing of "unknow u" in tg-login3.
for unsigned long long was a  configure bug fixed by rev 15942

tested: tg-login3
2008-10-24 14:38:53 -05:00
Neil Fortner
d58e55cc92 [svn-r15940] Purpose: Close bug 1305.
Description: Added a new function, H5O_alloc_shrink_chunk, which removes all
null messages from a chunk and shrinks the chunk appropriately.  Modified
H5O_merge_null to call this function when a null message is created with a size
>= 64k.  Tests added for this functionality.

Tested: kagiso, linew, smirom (h5committest)
2008-10-23 20:04:28 -05:00
Quincey Koziol
2245e77948 [svn-r15939] Description:
Bring r15937 back from trunk to 1.8 branch:

	Correct error in metadata accumulator code which wasn't expanding the
metadata accumulator when adjoining (but not overlapping) I/O writes occurred.

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-23 17:59:12 -05:00
Pedro Vicente Nunes
1b6981c062 [svn-r15938]
for some reason , the use of H5_PRINTF_LL_WIDTH to convert to a unsigned long long format, is not working in ia64 linux (tg-login3)
extra characters are printed, this time in h5ls
hardcoded the format defined in HSIZE_T_FORMAT to "%llu"

tested: windows, linux (kagiso), solaris, ia64 linux (tg-login3)
2008-10-23 16:29:21 -05:00
Raymond Lu
caa9e0c055 [svn-r15936] Changed the library's macros H5_USE_16_API to H5_USE_16_API_DEFAULT avoid possible conflict with user's definition of H5_USE_16_API. The H5_USE_16_API_DEFAULT is defined through
configure with the flag --with-default-api-version=v16.

Tested with h5committest.
2008-10-23 14:48:45 -05:00
Pedro Vicente Nunes
b694ad6c87 [svn-r15933] for some reason , the use of H5_PRINTF_LL_WIDTH to convert to a unsigned long long format
is not working in ia64 linux (tg-login3)
hardcoded the format to "%llu"

tested: windows, linux (kagiso), solaris, ia64 linux (tg-login3)
2008-10-22 17:33:58 -05:00
Pedro Vicente Nunes
83abc3a4e4 [svn-r15923] The printf call with the format "%"H5_PRINTF_LL_WIDTH"u" prints some garbage in linux ia64 unless we pass to the function a temporary pointer variable
Tested: windows, linux (kagiso), solaris, linux ia64 (tg-login3)
2008-10-21 14:25:29 -05:00
Albert Cheng
00b0378cd3 [svn-r15919] Updated with the information of the removal of libhdf5_fortran.settings. 2008-10-21 11:12:58 -05:00
Albert Cheng
16801096c7 [svn-r15917] Bug fix: #933
This file is no longer needed since it is not installed any more.

Tested: kagiso with fortran and C++.
2008-10-21 11:02:56 -05:00
Albert Cheng
fdabaa3330 [svn-r15912] Bug fix: #933
The information of libhdf5_fortran.settings are all included in
libhdf5.settings now. Remove it from the source.

Tested: kagiso with fortran and C++.
2008-10-20 23:10:17 -05:00
Scott Wegner
7f758bceb0 [svn-r15909] Purpose: Various Windows test script updates
Description:
This checkin includes updates to Windows test scripts for h5copy, h5diff, and h5dump tools.  Each represents minor changes to syntax which emulates the updates made to the general-platform test scripts.

Tested:
VS2005 on WinXP
2008-10-20 11:06:48 -05:00
Pedro Vicente Nunes
3a6ad02916 [svn-r15901] undo some changes in the list of parameters of parse_command_line (forgot that this function is called both on serial and parallel)
tested: linux
2008-10-17 22:01:34 -05:00
Pedro Vicente Nunes
1e1bcb801c [svn-r15900] Make the h5copy test that renames a group to return 1 on the h5diff call and assume 1 is the correct result
Drop the -c flag for h5diff

Tested: linux
2008-10-17 18:45:32 -05:00
Pedro Vicente Nunes
6c262bfc93 [svn-r15899] Extend the -c flag for ignore graph differences to ignore different group names
This is used in the h5copy test that compares renaming of groups

Tested: linux
2008-10-17 17:26:14 -05:00
Mike McGreevy
1b86e5a529 [svn-r15898] Purpose: Bug Fix
Description: Libtool wasn't working on linew because the script was
             not working with the Solaris Bourne shell. Libtool has built-
             in detection to ensure that it uses an appropriate shell,
             but our config/commence.am was hard coding this shell to be
             /bin/sh. Removing this line allows the shell to be picked up
             by configure, thus allowing libtool to use the correct shell
             on linew (bash). This was initially added to correct for a problem
             on an old machine (janus), so shoudn't be needed for machines
             we currently support.

Tested:      full make check install on kagiso and linew, compile only
             on smirom, duty, and liberty.
2008-10-17 10:48:23 -05:00
Pedro Vicente Nunes
924ba14474 [svn-r15896] Introduced a -c flag to ignore file contents differences in the return value (return 0 id -c is present)
Introduced for h5copy validation

Tested: windows, linux
2008-10-16 18:24:18 -05:00
Pedro Vicente Nunes
208777ec89 [svn-r15891]
Make the h5diff call compare only the source and destination objects, otherwise if we attempt to compare the all file, h5diff returns 1 for differences

Tested: linux
-This line, and those below, will be ignored--

M    tools/h5copy/testh5copy.sh
2008-10-16 14:00:18 -05:00
Pedro Vicente Nunes
12e3697d79 [svn-r15889] When comparing individual objects the file graph is not currently compared, so make h5diff return 0 (no diffrences)
Tested: windows, linux
2008-10-16 11:00:37 -05:00
Neil Fortner
b195e33d3f [svn-r15887] Purpose: Close bug 1332
Description: Improved external link traversal of h5dump.  h5dump will now
    properly avoid all cycles, even those spanning multiple files.  Improvement
    to the output of committed datatypes.  Committed datatypes are now checked
    for uniqueness (like other objects).  Tests added for these cases.

Tested: kagiso, linew, smirom (h5committest)
2008-10-15 22:54:19 -05:00
Mike McGreevy
97cced22b6 [svn-r15881] Purpose: Bug Fixes, Libtool Upgrade
Description:

  1) configure now sets LD_LIBRARY_PATH before checking for presence of 
     SZIP encoder, so user does not need to set this. The path is then
     saved and sent to Makefiles, and used when "make check-install" is
     invoked, so user doesn't need to set this manually. 

  2) Upgraded libtool to version 2.2.6a

  3) Rearranged tools build order as h5dump depends on existence of h5diff
     and h5import. Since h5dump is a sister directory as opposed to a parent
     of either, it doesn't know about the build rules of these tools, so 
     setting any sort of explicit dependency confuses automake as it won't
     know how to build the tools. Instead, setting CONFIG = ordered forces
     an in-order traversal of each tools subdirectory. (without it will also
     traverse in order by default, but this should prevent gmake's -j option
     from jumping ahead as well). 'make check install' should now be able to 
     be invoked after 'configure' without causing a dependency failure.

  4) Removed H5_HAVE_LARGE_HSIZET macro from vms/src/h5pubconf.h, as this macro
     has now been out of the code for some time. (vms pubconf needs to be 
     updated manually, which is why it was still hanging around).

Tested: kagiso, smirom, liberty

Note: h5diff looks to be causing failures in h5copy and h5dump tools tests,
      though these were present before any of my changes. My changes only 
      affect build order and configuration setup, and shouldn't prevent
      fixes for these failures coming in after this checkin. Other than these,
      tests pass fine.
2008-10-15 16:53:36 -05:00
Pedro Vicente Nunes
b353fb8b5a [svn-r15871] Eliminate -c option and make that behavior the default and return 2 instead of -1 on error status
Tested: windows, linux
2008-10-15 11:10:15 -05:00
Vailin Choi
122b938cbf [svn-r15870] Add description to release doc for the two new public routines and h5stat bug fix. 2008-10-15 09:16:15 -05:00
Quincey Koziol
8f3811e1b1 [svn-r15869] Description:
Bring r15868 from trunk to 1.8 release branch:

	Correct a minor error in file free space allocation which was affecting
the 'multi' VFD and preventing some tests from fully working with it.

	Wholesale revisitation of all the places where tests were disabled
with various VFDs and remove or correct all these so that _only_ the tests
which _really_ can't work with particular VFDs are skipped during a
'make check-vfd' test.


Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-14 22:53:09 -05:00
Pedro Vicente Nunes
c7bc8d9d28 [svn-r15866] add support for long double type
tested: windows, linux (32,64)
2008-10-14 15:38:57 -05:00
Scot Breitenfeld
56b70ea505 [svn-r15865] Description:
Added new Fortran features and bug fixes in this release.
2008-10-14 14:53:26 -05:00
Quincey Koziol
2f910f3fc7 [svn-r15863] Description:
Bring r15861 back from trunk to 1.8 release branch.

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-14 08:39:36 -05:00
Raymond Lu
8a6d7d14f6 [svn-r15854] Added a new test case. When a datatype is a SOHM type in one file, test that the
second file using the same datatype actually save it in the file, too.

Tested on kagiso.  But the same change in v1.9 has been tested with h5committest.
2008-10-13 14:08:35 -05:00
Scott Wegner
01eb811b40 [svn-r15853] Purpose: Decrease size of points array in links test
Description:
In the external_set_elink_fapl2 links test, there is a large array of points which declared on the stack for testing.  Previously, the array was 1000 x 1000, which was too large for Visual Studio to handle.  As a result, we were getting stack overflows during the test.  We've reduced the number to 400, as this seems to be below the limit.  The exact number of points in the array isn't important to the test.

Tested:
VS2005 on WinXP
2008-10-13 13:33:51 -05:00
Scott Wegner
1eaa64a224 [svn-r15846] Purpose: Declare loop variable at beginning of function
Purpose:
On Windows, we were getting compile errors because h5test.c includes a function with variable declarations in the middle of the call.  The Microsoft C compiler demands that all variables be declared at the top of the function.  This checkin simply moves the declaration to the top to satisfy Visual Studio.

Tested:
VS2005 on WinXP
2008-10-13 11:53:44 -05:00
Scott Wegner
166931c024 [svn-r15845] Purpose: Add Windows-specific version of HDftruncate
Description:
Windows doesn't include a version of the system call ftruncate.  There is a similar call, _chsize_s, which performs very similarly.  Thus, we map HDftruncate to _chsize_s in our Windows header file, H5win32defs.h.

Tested:
VS2005 on WinXP
2008-10-13 11:51:31 -05:00
Scott Wegner
dc587a17fa [svn-r15842] Purpose: Update h5jam Windows test script
Description:
The testfiles used for the h5jam/h5unjam test were recently moved to a new directory.  Update the structure of the Windows test script to compensate for the change.

Tested:
VS2005 on WinXP
2008-10-13 10:36:43 -05:00
John Mainzer
032898afc5 [svn-r15836] Fixed a hole in the input checking for the metada cache.
Tested on Phoenix (serial)
          Kagiso  (parallel)
	  Linew   (serial)

There were updates during my testing, but I decided to check in 
regarless without further testing as my change is very localized.
2008-10-10 20:08:31 -05:00
Vailin Choi
c30c0a0cbb [svn-r15834] Fixes for bug #1253:
1. Fixed segmentation fault in print_group_info()
 2. Call print_statistics() in main() when objects/links are successfully traversed;
    otherwise, return warning message.
2008-10-09 16:27:11 -05:00
Christian Chilan
8091a4a0b1 [svn-r15831] Modified the display of the accumulated times taken to open and close files.
Tested on kagiso.
2008-10-09 13:11:05 -05:00
Quincey Koziol
b62ec1e874 [svn-r15829] Description:
Bring bck revision 15828 from trunk:

        Skip some free space manager tests when using a VFD that doesn't
support the feature being tested.

        Use a particular memory type with the file free space sections.

        Uncomment the metadata aggregator feature for the fmily VFD, as it
appears to be working after the file free space changes.

Tested on:
	FreeBSD/32 6.3 (duty)
	h5committest not needed, change already tested on trunk...
2008-10-09 09:54:02 -05:00
Quincey Koziol
070a4899bf [svn-r15827] Description:
Correct mis-merge in last set of changes from the trunk.

Tested on:
	FreeBSD/32 6.3 (duty)
2008-10-09 07:31:06 -05:00
Quincey Koziol
261bbe39aa [svn-r15826] Description:
Bring revision 15825 from trunk:

	Fix various problems with a the core & sec2 VFDs.

	Improve the h5_get_file_size() routine to handle files created with
VFDs that use multiple files.

Tested on:
	FreeBSD/32 6.3 (duty)
	Already tested on other machine, in trunk.
2008-10-08 22:52:46 -05:00
Albert Cheng
37aaef8fe0 [svn-r15823] Updated a bug fix information. 2008-10-08 16:03:05 -05:00
Pedro Vicente Nunes
3b451f709a [svn-r15817] move h5jam testfiles to its own testfiles folder
tested: linux
2008-10-08 11:13:38 -05:00
Scott Wegner
3f35eb23f8 [svn-r15814] Purpose: Update h5ls test script
Description:
The general h5ls test script was recently updated.  This checkin brings those changes to Windows

Tested:
VS2005 on WinXP
2008-10-08 10:47:17 -05:00
Scott Wegner
b5e8ad2d7e [svn-r15813] Purpose: Add new source code and tests to Windows
Description:
Many new source files were added from the freespace branch.  This checkin adds the code to Windows as well.

Note: Some tests are still failing on Windows, but this checkin brings us closer to fixing them.  In particular, freespace test fails on compile (Quincey is working on it), and the DLL links test fails at runtime (I'll look into it)

Tested:
VS2005 on WinXP
2008-10-08 10:11:25 -05:00
Albert Cheng
73bf21ce05 [svn-r15812] Bug fix: #1090
The custom rules for installing h5cc, h5fc, and the fortran modules in fortran
and in hl/fortran don't use $(DESTDIR).  Added it to all those rules.

Tested: kagiso both serial and parallel with fortran and cxx enabled.
Tested by:
    make install
    make DESTDIR=/tmp/acheng install
    diff -r /tmp/acheng/.../hdf5 hdf5
2008-10-08 00:17:05 -05:00
Albert Cheng
f1e2853e6f [svn-r15811] Some test produced files were not cleaned by "make clean".
Added them to the clean list.

Tested: kagiso.
2008-10-07 21:54:50 -05:00
Albert Cheng
b198fc89b9 [svn-r15809] Some test produced files were not cleaned by "make clean".
Added them to the clean list.

Tested: kagiso, serial and parallel.
2008-10-07 21:26:45 -05:00
Pedro Vicente Nunes
32a72c4d54 [svn-r15806] correction in test name, testing "non" initialized chunks
tested: windows, linux
2008-10-07 11:03:54 -05:00
Neil Fortner
d0ae398d95 [svn-r15805] Purpose: Add option to h5ls to enable external link traversal.
Description: Added -E option to h5ls.  When set, this alows h5ls to enter
external files (currently only through an external link).  The -r option by
itself will no longer allow h5ls to traverse external links.

Tested: kagiso, linew, smirom (h5committest)
2008-10-07 09:55:32 -05:00
Quincey Koziol
78b5437aeb [svn-r15803] Description:
Bring r15802 back from trunk:

        Skip some file free space tests that deal with aligned allocations when
using the stdio VFD, which has its own allocation process that drops the
unaligned fragments instead of tracking them with the free space manager.

Tested on:
	Mac OS X/32 10.5.5 (amazon) w/stdio driver
2008-10-07 09:16:51 -05:00
Quincey Koziol
bdbdbb9f89 [svn-r15801] Description:
Bring r15800 back from trunk:

		- File free space branch changes through r15794

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-07 08:32:32 -05:00
Quincey Koziol
b256db872d [svn-r15799] Description:
Change H5Tcommit() call to H5Tcommit2() call, so that library builds with
the default API set to v16 work.

Tested on:
    Linux/64 2.4 (smirom) w/default API set to v16
2008-10-06 23:10:48 -05:00
Neil Fortner
a858608a0a [svn-r15797] Purpose: Close bug #1322
Description: Fixes a possible datatype id leak that could occur during compound
datatype conversion, or more precisely, when unregistering those conversions.
Datatype ids normally registered by the library are no longer visible to the
application via H5Fget_obj_ids and H5Fget_obj_count.

Tested: kagiso, linew, smirom (h5committest)
2008-10-06 22:47:56 -05:00
Pedro Vicente Nunes
d7437bc5b1 [svn-r15791] Bug fix. When detecting the user requested filters, the "all" option was not taken in consideration when printing the compression ratio
Tested: windows, linux
2008-10-06 15:43:42 -05:00
Scott Wegner
d0a9060af9 [svn-r15788] Purpose: Update h5copy test script on Windows
Description:
The testfiles were moved to a new directory for the h5copy tests.  Update the Windows test script to use this new directory.

Tested:
VS2005 on WinXP
2008-10-06 13:55:33 -05:00
Scott Wegner
4ee45f7edd [svn-r15786] Purpose: Bring h5diff test updates to Windows
Description:
The test files used for the h5diff test script were recently moved to a new directory, and the format of the testing was changed.  This checkin brings the changes to Windows as well.

Tested:
VS2005 on WinXP
2008-10-06 13:43:18 -05:00
Scott Wegner
40b529efce [svn-r15785] Purpose: Bring Fortran H5_DBLE_InterfaceInclude.f90 and H5test_kind_SIZEOF.f90 to Windows
Description:
These files were ported from the trunk to the 1.8 branch in rev. 15727.  This checkin adds the new files to our Windows projects as well.  In particular, we use H5_DBLE_InterfaceInclude (rather than *Exclude), and have replaced H5test_kind.f90 with H5test_kind_SIZEOF.f90.

Tested:
VS2005 on WinXP (only build)
2008-10-06 11:57:12 -05:00
Scott Wegner
752010a3a7 [svn-r15784] Purpose: Minor update to h5repack Windows test script
Description:
The one final test that was failing was due to a filename change.  I missed it in Pedro's last update-- all tests pass now.
2008-10-06 11:39:38 -05:00
Scott Wegner
793510b1c1 [svn-r15783] Purpose: Update Windows h5repack test script for new directory
Description:
The h5repack test files were added to a new testfiles/ subdirectory, and the test script update.  This checkin brings those changes to Windows.  We also re-enable a test for the userblock which was disabled for other reasons before.

Note: One h5repack test is still failing, but I think it's a minor error that Pedro and I can correct fairly easily later today.

Tested
VS2005 on WinXP
2008-10-06 11:16:42 -05:00
HDF Tester
447739d9af [svn-r15781] Snapshot version 1.8 release 1 (snap6) 2008-10-05 22:11:40 -05:00
Christian Chilan
873503eb36 [svn-r15771] Added feature to display file open and close times.
Tested on kagiso and cobalt.
2008-10-03 15:50:19 -05:00
Neil Fortner
2d9122df16 [svn-r15768] Fix version numbers in vms h5pubconf.h
Tested: gedit
2008-10-03 12:00:54 -05:00
Vailin Choi
a0064d012a [svn-r15766] Modifications for bug #1247 so that the user can specify the driver
to use when opening the external linked target file.
1. Two new public routines are added to H5Plapl.c as well as
"del/copy/close" callbacks for the property itself.
2. Modify H5L_extern_traverse() to use the fapl set via
H5Pset_elink_fapl() and retrieve via H5Pget_elink_fapl().
3. Add 3 tests to links.c to verify H5Pset/get_elink_fapl().

Also fix the compiler warning for the "if condition" in
H5_build_extpath() of H5system.c.
2008-10-03 10:45:54 -05:00
Pedro Vicente Nunes
313d2cc82c [svn-r15759] move h5copy testfiles to /tools/h5copy/testfiles
tested: linux
2008-10-02 15:39:04 -05:00
Pedro Vicente Nunes
923d421509 [svn-r15754] Bug #1312
Solution:
Check for the existence of chunks before pruning them (an assertion was triggered when attempting to do so)

Tested: windows , linux, solaris
2008-10-02 13:12:23 -05:00
Pedro Vicente Nunes
bb206d572c [svn-r15750] move h5repack test files to /tools/h5repack/testfiles
tested: linux
2008-10-01 15:04:33 -05:00
Pedro Vicente Nunes
e43c4a5a38 [svn-r15745] Move h5diff testfiles to /tools/h5diff/testfiles
Tested: linux
2008-10-01 14:07:55 -05:00
Scot Breitenfeld
2041f537e6 [svn-r15742] Maintenance: Merged new Fortran Features and tests from trunk into hdf5_1_8 branch
(used svn merge -r 14941:15740 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran
              command).
2008-09-30 19:41:00 -05:00
Pedro Vicente Nunes
cdb4e39a13 [svn-r15731] #1307
A space id was not closed in H5PTopen

Tested: windows, linux
2008-09-30 13:25:14 -05:00
Scot Breitenfeld
35ef863573 [svn-r15728]
Cosmetic: Fixed spacing issue in Fortran summary output statement.
2008-09-30 11:45:31 -05:00
Scot Breitenfeld
fe1ca64d16 [svn-r15727]
Maintenance: Merged new Fortran Features and tests from trunk into hdf5_1_8 branch
             (used svn merge -r 14941:14525 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran
              command).
2008-09-30 11:42:10 -05:00
Scot Breitenfeld
f361635ae5 [svn-r15726] Description:
Made changes to reflect the changes made in the fortran directory which merged the fortran trunk into the 1.8 branch.
2008-09-30 11:39:35 -05:00
Scot Breitenfeld
b8ed65ed62 [svn-r15725] Description:
Made changes to reflect the changes made in the fortran directory; merged the fortran trunk into the 1.8 branch.
2008-09-30 11:36:29 -05:00
Pedro Vicente Nunes
0cd5c3edb2 [svn-r15720] Added a file with user block data to be used by the h5repack windows shell script only Note: for the unix shell script this file is not used 2008-09-29 13:11:39 -05:00
Scott Wegner
7a86d8e3d3 [svn-r15719] Purpose: Update Windows h5import test script, and disable a h5repack test
Description:
The test script format was changed for h5import, including many file-name changes.  This checkin brings those updates to Windows.

This checkin also disables a previously-added h5repack test for the userblock.  The test is disabled for now because Windows cannot find the input file ublock.bin.  The file is generated dynamically on other systems, but cannot be easily generated for use on Windows.  We should re-enable this test in the future when ublock.bin is added to svn.

Tested:
VS2005 on WinXP
2008-09-29 11:52:52 -05:00
Pedro Vicente Nunes
e8630b6e80 [svn-r15718] renamed generated binary files to have the extension .bin and the same name as the associated .conf file
tested: linux
2008-09-29 11:15:58 -05:00
HDF Tester
993baa185a [svn-r15715] Snapshot version 1.8 release 1 (snap5) 2008-09-28 17:50:03 -05:00
Albert Cheng
ebd7c384e0 [svn-r15712] Purpose:
features.

Description:
Added -shlib tests and verbosity control.

Tested Platform:
Kagiso.
2008-09-27 04:17:18 -05:00
Raymond Lu
501e01d388 [svn-r15707] I changed the return values of H5Fget_obj_ids and H5Fget_obj_count to ssize_t and modified
C++ and Fortran API functions.  This is for bug #1245. 

Tested on kagiso - I've tested the same change using h5committest.
2008-09-26 14:45:43 -05:00
Pedro Vicente Nunes
d711cb1a3b [svn-r15706] make a test generate a LE output for test portability
tested: linux, solaris
2008-09-26 14:23:10 -05:00
Quincey Koziol
fa3617e1ce [svn-r15702] Description:
Bring back r15701 from trunk:
        Remove some unused variables

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    Too minor to require h5committest
2008-09-25 18:00:13 -05:00
Pedro Vicente Nunes
0fffc46964 [svn-r15700] added wb falg to read binary files in WIN32
tested: windows
2008-09-25 15:48:22 -05:00
Pedro Vicente Nunes
64b3c0a961 [svn-r15698] renamed input text files to have the extension .txt
tested: linux
2008-09-25 10:46:41 -05:00
Pedro Vicente Nunes
d1aa3ee4d7 [svn-r15697] renamed configuration files to have the extension .conf
tested: linux
2008-09-25 10:28:43 -05:00
Pedro Vicente Nunes
1294681ee1 [svn-r15695] update manifest 2008-09-24 16:19:34 -05:00
Pedro Vicente Nunes
6669874698 [svn-r15694] 1)
Bug fix #1281
The TEXTFPE was described in the usage (read floats in scientific notation) but was not implemeneted.
Solution:
remove TEXTFPE from the help system and have the TEXTFPE input type do
the same thing as TEXTPF currently does to support backwards compatibility (the format read for both TEXTFPE and TEXTPF is %f)
added a test

2)
renamed configuration files to have the extension .conf

tested: windows, linux
2008-09-24 16:13:49 -05:00
Pedro Vicente Nunes
f1b33ea578 [svn-r15685] New feature (h5diff -c) 2008-09-23 11:28:21 -05:00
Neil Fortner
cf451beffa [svn-r15683] Purpose: fix bug 1298
Description: The optimized "subset" compound conversion function would
improperly copy the "blank" space at the end of compound types.  Modified
H5T_conv_struct_init to detect when the subset type has extra space at the end,
and calculate the size of the data that should be copied into the conversion
buffer for each element.  Changes to the functions that implement these
conversions.

Tested: kagiso, linew, smirom (h5committest)
2008-09-22 18:41:58 -05:00
Pedro Vicente Nunes
299ebc0d7f [svn-r15680]
Formatted code
Tested: windows, linux
2008-09-22 16:24:22 -05:00
Quincey Koziol
926cfe52cc [svn-r15677] Description:
Bring r15676 back from trunk:

        Centralize all macros for declaring "magic numbers"/signatures for
    objects in the file into src/H5Fprivate.h, so it's easier to know what
    values have already been defined, etc.

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    Too minor to require h5committest
2008-09-22 12:33:58 -05:00
Neil Fortner
531822d443 [svn-r15672] Add missing test file, re-add it to the manifest (sorry).
Tested: kagiso
2008-09-21 23:54:38 -05:00
Quincey Koziol
23971ded14 [svn-r15671] Description:
Update MANIFEST w/changes to files.
2008-09-21 20:29:05 -05:00
Neil Fortner
13f5dbc05d [svn-r15669] Purpose: Add feature requested in bug #1282
Description: Adds capability to h5ls to traverse external links when the -r
(recursive) option is given.  Changes to the way absolute path names are patched
in h5trav.c.  Changes to the way recursive traversal starting from a non-root
group is handled (which also fixes some preexisting issues).  Tests added for
these cases.

Tested: kagiso, smirom, linew (h5committest)
2008-09-21 13:36:09 -05:00
Albert Cheng
50f38c5e59 [svn-r15666] Bug fix: (ID 1157)
Description:
Program would crash, complaining MPI calls were invoked after
MPI_Finalize() has occurred. Previously, H5close() before
MPI_Finalize() would remove the crash.

Solution:
It turned out that two H5 property objects (mpio_pl and acc_tpl)
were not closed before MPI_Finalize().  In the at_exit code,
HDF5 library attempted to close them by releasing the MPI Communicators
in them too. That was the error. Adding code to close them properly
before MPI_Finalize() took care things.

Tested:
Only in kagiso parallel. Did not run h5committest since
kagiso would have been the one running parallel test. This
part of code would not be compiled at all in non-phdf5 mode.
2008-09-19 18:19:53 -05:00
Pedro Vicente Nunes
8b5ced23dc [svn-r15663] fix comments
tested: linux
2008-09-19 15:04:28 -05:00
Pedro Vicente Nunes
d8e1072732 [svn-r15662] Cleaned compiler warnings
Bug fixes: change the options block size variable from int to hsize_t, to match the H5Pset_userblock call,
do not print print compression ratio when the requested filter is NONE


Tested: windows, linux
2008-09-19 13:57:28 -05:00
Neil Fortner
8436735388 [svn-r15657] Purpose: fix bug 1286
Description: Added configure test to see if pointer alignment restrictions are enforced (as in dereferencing an unaligned pointer causes an error).  Added code in H5Tvlen.c to avoid dereferencing unaligned pointers, conditionally compiled based on the configure test.  Added test case in dtypes.c which would previously cause such machines to fail.

Tested: kagiso, smirom, linew (h5committest); linew64
2008-09-18 15:54:36 -05:00
Christian Chilan
6ddb6ed83f [svn-r15654] Changed the absolute path of the data file to a relative path.
Tested on kagiso, smirom, and linew.
2008-09-18 14:24:32 -05:00
Christian Chilan
c50c3789fa [svn-r15648] Included macros for portability of h5perf code among HDF5 versions.
Tested on kagiso, abe, and cobalt.
2008-09-17 16:23:11 -05:00
Pedro Vicente Nunes
f140118469 [svn-r15646] Cleaned compiler warnings
Bug fix: change the options block size variable from int to hsize_t, to match the H5Pset_userblock call

Tested: windows, linux
2008-09-17 11:41:54 -05:00
Scot Breitenfeld
313cfa6e65 [svn-r15644] Description:
Fixed print spacing issue.
2008-09-17 11:32:35 -05:00
Pedro Vicente Nunes
c3113b0e3c [svn-r15642]
Add a default user block size of 1024 when none is given

add a failure condition of writing user block

Tested: windows, linux
2008-09-17 11:04:37 -05:00
Scot Breitenfeld
3f043d5cca [svn-r15640] Description:
Added test routines for h5t_get/set_fields_f.
2008-09-17 10:53:09 -05:00
Albert Cheng
b93a55bbcd [svn-r15638] Bug 710: partial fix.
Temporary removed b2 from the --enable-debug=all list so that this option
will pass. "configure --help" lists the --enable-debug=all and users tend
to use it and end up with compile failures in the b2 debug code.  Since this
bug will not be fixed soon, this is a temporary fix to let the configure and
build work.

Tested:
h5committest plus "--enable-debu=all" test in kagiso.
2008-09-16 16:26:38 -05:00
Scot Breitenfeld
d45346f76c [svn-r15631] Description:
In nh5tget_offset_c:

(1) The return value type of H5Tget_offset was set to size_t where
    it should be of type int.

(2) Was if offset was equal to 0 it returned the error code of -1 back to 
    Fortran, this was changed to return an error code of -1 when the
    offset value is < 0.

In h5tget_norm_c:

(1) was if the return value of H5Tget_norm = 0 it would return an error
code to Fortran, but from enum of the return value:

typedef enum H5T_norm_t {
    H5T_NORM_ERROR       = -1,  /*error                                      */
    H5T_NORM_IMPLIED     = 0,   /*msb of mantissa isn't stored, always 1     */
    H5T_NORM_MSBSET      = 1,   /*msb of mantissa is always 1                */
    H5T_NORM_NONE        = 2    /*not normalized                             */
    /*H5T_NORM_NONE must be last */
} H5T_norm_t;

only when -1 is returned is there an error, changed it to return an error only if the value of H5T_NORM_ERROR = -1.
2008-09-16 12:05:25 -05:00
Quincey Koziol
b9be045596 [svn-r15629] Description:
Remove trailing whitespace from C/C++ source files, with the following
script:

   foreach f (*.[ch] *.cpp)
       sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
   end

Tested on:
   Mac OS X/32 10.5.5 (amazon)
   No need for h5committest, just whitespace changes...
2008-09-16 11:22:16 -05:00
MuQun Yang
37a1f87664 [svn-r15625] This check-in fixes a bug inside parallel HDF5 testsuite.
When enable-debug is turned on, a special macro block H5_HAVE_INSTRUMENTED_LIBRARY inside HDF5 will be executed to check if some collective chunk IO test cases are being run with the correct settings(one link, multiple chunk etc.). However,when complicated derived datatype in some mpi-io packages are not supported, the library has to switch one link IO with/without the optimization to multiple chunk IO with/without the optimization. The current testsuite doesn't know this and generates a false assertion failure message.

This check-in fix this problem by providing a second property to avoid the false faiure message.


Tested at abe(NCSA linux cluster) and kagiso.
2008-09-15 17:25:31 -05:00
MuQun Yang
0a654a9df9 [svn-r15624] This check-in fixes a bug inside parallel HDF5 testsuite.
When enable-debug is turned on, a special macro block H5_HAVE_INSTRUMENTED_LIBRARY inside HDF5 will be executed to check if some collective chunk IO test cases are being run with the correct settings(one link, multiple chunk etc.). However,when complicated derived datatype in some mpi-io packages are not supported, the library has to switch one link IO with/without the optimization to multiple chunk IO with/without the optimization. The current testsuite doesn't know this and generates a false assertion failure message.

This check-in fix this problem by providing a second property to avoid the false faiure message.
2008-09-15 17:20:16 -05:00
HDF Tester
260228e645 [svn-r15621] Snapshot version 1.8 release 1 (snap4) 2008-09-14 17:50:44 -05:00
Quincey Koziol
80b958d8b4 [svn-r15613] Description:
Bring back r15612 from trunk:
        Minor cleanups of formatting, etc.

Tested on:
    Mac OS X/32 10.5.4. (amazon)
    Too minor to require h5committest
2008-09-11 07:36:08 -05:00
Quincey Koziol
d517c77bc0 [svn-r15610] Description:
Bring r15609 back from trunk:
        Omnibus compiler warning cleanup & some formatting happiness.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-09-10 14:53:38 -05:00
MuQun Yang
fc7993a9f0 [svn-r15605] The MPI compiler(mvapich2-0.9.8p2patched-intel-ofed-1.2) at NCSA's linux cluster(Abe) fails to handle collective IO calls with very complicate MPI derived datatype. All the values of input parameters from HDF5 are correct before passing to MPI-IO collective calls. Sometimes the following errors happen:
rank 0 in job 77  honest1.ncsa.uiuc.edu_60945   caused collective abort of all ranks
  exit status of rank 0: killed by signal 9

Up to this point, we decide to turn off the use of advanced MPI derived datatype features inside HDF5 so that complicated selection tests are ensured to be handled by HDF5.  This check-in reflects this.
2008-09-08 17:55:07 -05:00
HDF Tester
2b6b6825ab [svn-r15597] Snapshot version 1.8 release 1 (snap3) 2008-09-07 20:46:57 -05:00
Scott Wegner
6e009f1851 [svn-r15594] Purpose: Add new Fortran DEF file to Windows DLL project
Description:
All of the Windows-specific Fortran DLL code has been moved to a new file, hdf5_fortrandll.def.  This file needs to be added to the Windows hdf5_fortrandll project link properties.

Tested:
Vs2005 & IVF9.1 on WinXP
2008-09-05 09:39:18 -05:00
Scott Wegner
a8fbaf9ecd [svn-r15589] Purpose: Add new h5repack tests to Windows
Description:
New h5repack tests were added in revision 15551 and 15557, and also the syntax of one test was changed.  This was causing errors on Windows.  This checkin should fix those errors.

Tested:
VS2005 on WinXP
2008-09-03 11:30:40 -05:00
Scott Wegner
442565636a [svn-r15583] Purpose: Add Windows Fortran DLL export code to separate DEF file.
Description:
In in Fortran source code, there was a great deal of code that was necessary for Windows DLLs, and ignored for others systems.  To remove some of the bloat in the source code, we moved these definitions into separate *.def file, which will be used on by the Windows DLL project.

Tested:
VS2005 on WinXP

Note: The Windows project file will still need to be edited-- I will check that in soon.
2008-09-03 10:01:28 -05:00
Christian Chilan
39b9ddf4c8 [svn-r15581] Added script to build h5perf_serial in standalone mode.
Tested on kagiso, smirom, and linew.
2008-09-02 16:12:42 -05:00
HDF Tester
9c9337e3fd [svn-r15567] Snapshot version 1.8 release 1 (snap2) 2008-08-31 23:50:51 -05:00
Christian Chilan
c9af566e1d [svn-r15562] Added support for serial prefix HDF5_PREFIX.
Tested on kagiso, smirom, and linew.
2008-08-29 16:31:04 -05:00
Pedro Vicente Nunes
84335f79c6 [svn-r15560] new feature for h5repack (alignment) 2008-08-29 15:42:23 -05:00
Pedro Vicente Nunes
13f357a946 [svn-r15558] 1) There are 2 new command line parameters for h5repack. Together they allow a call to H5Pset_alignment to be made
-t T, --threshold=T     Threshold value for H5Pset_alignment
   -a A, --alignment=A     Alignment value for H5Pset_alignment


2) bug fix
the printing of the dataset name was not done for references (verbose mode)


tested: windows, linux
2008-08-29 15:35:51 -05:00
Neil Fortner
ca4379362b [svn-r15553] Fix potential memory leak in H5E_close_msg_cb.
Tested: kagiso
2008-08-28 17:08:06 -05:00
Scott Wegner
6803ed3729 [svn-r15542] Purpose: Add new h5repack test to Windows
Description:
There was one new h5repack test added recently.  This commit also adds it to the Windows test script

Tested:
VS2005 on WinXP
2008-08-27 09:53:58 -05:00
Pedro Vicente Nunes
9fafbf5a5f [svn-r15536] add a mention to h5repack new feature 2008-08-26 11:14:02 -05:00
Pedro Vicente Nunes
23cd7c534b [svn-r15533] #1184
Add a userblock to an HDF5 file during the repack.  The user gives  
give a filename and userblock size as command line parameters to  
h5repack and the contents of that file are stored in the  
userblock for the HDF5 file created by h5repack.


New flags to handle this -u and -b
Tested : windows, linux
2008-08-26 11:02:44 -05:00
Scott Wegner
cb166460d0 [svn-r15523] Purpose: Backport from trunk-- Fix Windows link dependencies in new app_ref DLL project
Description:
The app_refdll project was set to link with static version of hdf5 and libtest projects, which were causing the build to fail, only in Visual Studio .NET 2003, and was previously overlooked.  This corrects those errors.

Tested:
VS.NET on WinXP
2008-08-25 09:38:38 -05:00
Neil Fortner
b134708f2e [svn-r15516] Fix faulty error checking in call to H5I_remove().
Add prototype to the top of app_ref.c to suppress warning.

Tested: kagiso
2008-08-21 17:39:35 -05:00
Quincey Koziol
7a2756e7ae [svn-r15513] Description:
Bring back r15510 & r15512 from trunk:

    Fix compiler warnings and formatting.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    More tests upcoming
2008-08-21 16:15:00 -05:00
Pedro Vicente Nunes
428715468b [svn-r15511] bug fix
when comparing attributes, a type ID was not properly closed 


solution: close the Id on the iteration and continue instead of goto out of the cycle

tested: windows, linux
2008-08-21 15:39:27 -05:00
Scott Wegner
7dbcf115dd [svn-r15508] 2008-08-21 12:59:58 -05:00
Quincey Koziol
742fd2739e [svn-r15507] Description:
Bring r15501 back from trunk:

    Clean up warnings.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-08-21 12:04:04 -05:00
Neil Fortner
e70ea8d243 [svn-r15506] Change the names of some macros in app_ref.c to prevent warnings on Windows.
Tested: kagiso
2008-08-21 11:50:14 -05:00
Neil Fortner
2ab2b19d71 [svn-r15492] Added missing test. 2008-08-19 20:25:13 -05:00
Quincey Koziol
9e2496e85c [svn-r15490] Description:
Update release notes for last bug fix.
2008-08-19 14:43:56 -05:00
Quincey Koziol
7637f1b521 [svn-r15489] Description:
Bring rev. 15488 back from trunk:

    Fix bug where library could core dump when an invalid location ID was
passed to H5Giterate() (and add test for this case).

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-08-19 14:42:11 -05:00
Neil Fortner
4b141cbc6a [svn-r15486] Purpose: Allow library to shut down properly when objects have reference count
> 1.

Description: Added a new field 'app_count' to H5I_id_info_t struct, to track
    the reference count on an id due to the application.  the old 'count' field
    tracks the total.  Generally any id visible to the application gets placed
    in app_count.  Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref,
    H5I_register, H5I_clear_type, and a few other functions, to specify whether
    the operation(s) being performed on the id(s) are due to the application
    (TRUE) or not (FALSE).  Test added for this case.

Tested: kagiso, smirom, linew (h5committest)
2008-08-19 11:36:55 -05:00
HDF Tester
e660080290 [svn-r15480] Snapshot version 1.8 release 1 (snap1) 2008-08-17 18:16:49 -05:00
Neil Fortner
f6f7968df4 [svn-r15478] Removed vestigal code from H5SM_delete_from_index() which would have
dereferenced an uninitialized pointer if it had been reachable.  Closes bz
#1280.

Tested: kagiso, smirom, linew (h5committest)
2008-08-17 13:04:51 -05:00
HDF Tester
3d53b71a91 [svn-r15471] Snapshot version 1.8 release 1 (snap0) 2008-08-13 22:25:51 -05:00
Quincey Koziol
367f2125d9 [svn-r15463] Description:
Bring revision 15462 (compiler warnings) back from trunk.

Tested on:
    Mac OS X/32 10.5.4 (amazon) w/FORTRAN & C++
    (Too minor to require h5committest)
2008-08-12 08:33:49 -05:00
Neil Fortner
f040f990a0 [svn-r15459] Purpose: Modify the library to take the proper action when files with incorrect
datatype versions are encountered.

Description: The library now recognizes some problems with datatype versions in
H5O_decode_helper(), and, if not performing strict format checks, automatically
corrects them.  Framework added for other message decode routines to
automatically correct file errors.  Datatype version information added to
h5debug.  Resolves bz#1236, 1266.  Test files with incorrect datatype versions
corrected.

Tested: kagiso, smirom, linew (h5committest)
2008-08-11 10:18:54 -05:00
Neil Fortner
2df9af6ae8 [svn-r15450] Purpose: Fix various problems that were occurring when using mounted files.
Description:
Moved mount table from top file structure to shared file structure.  Moved
parent out of mount table and back into top file structure.  mounted files can
now be accessed from any handle of the parent file.  Changes to how files are
closed.  Stricter cycle checking on mounted files.  Removed unused function
H5F_has_mount().

Tested:
kagiso, smirom, linew (h5committest)
2008-08-07 16:32:36 -05:00
Pedro Vicente Nunes
c827f0450c [svn-r15447]
bug fix


http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=788
don't print array indices for regions


tested: windows, linux
2008-08-07 10:35:42 -05:00
Scott Wegner
dc7d4bc0a7 [svn-r15441] Purpose: Backport from trunk: Bring the Windows H5pubconf.h up-to-date
Description:
This commit is a major update to the Windows-maintained H5pubconf.h file.  This file is statically-distributed because Windows cannot generate it dynamically as other platforms do.  Previously, our Windows version contained a minimal subset of the macro definitions required.  To update, I've gone through each macro (based on kagiso's output), and tested for the correct value on Windows.  This allows us to better target code based on feature flags.  It should also be easier to update in the future as changes are made to the configure script.

This commit also contains one small bug fix in h5ls.c.  Some Windows-specific code was missing a local variable definition.  The bug went unnoticed because Windows didn't define the feature flag correctly.

I've also made changes to the h5vers script.  Whenever the version string is incremented (automatically by h5test after a snapshot), the strings in H5pubconf.h will also be updated.

Tested:
VS2005 on WinXP (32- and 64-bit)
VS.NET on WinXP 32-bit
h5vers tested under Cygwin
2008-08-06 15:04:37 -05:00
Pedro Vicente Nunes
a3d10354eb [svn-r15436] bug fix
the compression ratio was being printed for cases where a layout was requested and not a filter


tested: windows, linux
2008-08-06 10:26:21 -05:00
Scott Wegner
943aa55852 [svn-r15435] Purpose: Update Windows test script for new h5diff option: -c
Description:
A new parameter was added to h5diff recently.  We add a new test to the h5diff script, and change the syntax in which h5diff is called from the h5repack test script

Tested:
VS2005 on WinXP
2008-08-06 08:35:44 -05:00
Pedro Vicente Nunes
24739917cb [svn-r15434] new file for h5diff test 2008-08-05 14:37:38 -05:00
Pedro Vicente Nunes
e46107ca75 [svn-r15433] http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=1170
Summary: when using h5diff to compare the results of h5repack (or other tools that copy one HDF5 file to another), a new option is needed to allow h5diff to make an "absolute" comparison of the 2 files. This is the "contents" mode explained in the usage below.


If this mode is present, objects in both files must match (must be exactly the same). If this does not happen, the tool returns an error code of 1 (instead of the success code of 0)


Changes to the h5repack test script: the call to h5diff was changed to include -c (maintaining the previous -q). 


tested: windows, linux
2008-08-05 14:35:46 -05:00
Scot Breitenfeld
d364dc74a4 [svn-r15424] Description:
Fixed the error of passing an array to a scalar.
2008-07-29 09:19:19 -05:00
Scot Breitenfeld
607cadc648 [svn-r15419] Description:
Initialized a string with a space instead of a blank

i.e. var = '' is now var = ' '

This fixes a problem with AIX for bug 1252
2008-07-28 14:42:33 -05:00
Scot Breitenfeld
ec1358b0ca [svn-r15416] Description:
Changed the INTENT for total_error to be consistantly
INTENT(INOUT)

as noted in bug 1251
2008-07-28 12:33:38 -05:00
Scot Breitenfeld
adb2280c71 [svn-r15415] Description:
Added missing comma, i.e.

WRITE(*, "("" subroutine i"" i2.2,""()"")") j

should be

WRITE(*, "("" subroutine i"", i2.2,""()"")") j

etc...

as noted in bug 1251 and NAG compiler.


Checked the write fix using Sun f95, g95, pgf90, gfortran, ifort, absoft and all gave the correct write output.
2008-07-28 12:31:03 -05:00
Binh-Minh Ribler
98fdd752a4 [svn-r15404] Purpose: Code correction
Description:
    Accidentally left p_setId in public section in the previous checkin.
    Moved it to "protected:" section.

Platforms tested:
    Linux 2.6 (kagiso)
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-07-24 23:10:07 -05:00
Binh-Minh Ribler
836f7b53cc [svn-r15401] Purpose: Fix bug
Description:
    Changed all subclasses' setId to p_setId and put back setId in
    IdComponent.  p_setId is used in the library where the id provided
    by a C API passed on to user's application in the form of a C++ API
    object, which will be destroyed properly, and so p_setId does not
    call incRefCount.  On the other hand, the public version setId is
    used by other applications, in which the id passed to setId needs
    to be closed properly by the application, so setId must call incRefCount
    for the new object to prevent prematurely closing of the id.

Platforms tested:
    Linux 2.6 (kagiso)

    Still on going with these two platforms, but needed to check in before
    daily tests start.
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-07-24 16:18:28 -05:00
Christian Chilan
e1ee78dd09 [svn-r15398] Added declaration of functions needed for standalone building.
Tested on kagiso and abe.
2008-07-23 15:50:33 -05:00
Raymond Lu
9b6cc394cd [svn-r15392] Minor bug fix. The test tried to close an attribute handle with H5Pclose. Corrected it with
H5Aclose.  

No test needed.
2008-07-22 09:47:18 -05:00
Raymond Lu
e7037ad072 [svn-r15390] Last round of checkin introduced a bug. This checkin corrected it and made a few minor
changes.  

Last round of check in fixed the problem when an attribute was opened twice and data was 
written with one of the handles, the file didn't have the data.  It happened because each 
handle had its own object structure, and the empty one overwrote the data with fill value.
This is fixed by making some attribute information like the data be shared in the
attribute structure.

Tested on smirom, kagiso, and linew.
2008-07-21 11:50:22 -05:00
Binh-Minh Ribler
60957dc6cf [svn-r15387] Purpose: Fix bug
Description:
    Enclosed some code that test reference counts in brackets so that
    temporary objects will go out of scope before checking references.
    This is to work around the issue where some C++ compilers destroy
    temporary objects at different time than others.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-18 16:05:05 -05:00
Binh-Minh Ribler
d6dc8a4dfd [svn-r15386] Purpose: Fix bug
Description:
    A bug in reference counter was exposed when Ray fixed H5Awrite in
    the main library.  ::setId() called incRefCount when it shouldn't.
    Made sure that id's reference counter is manually incremented
    properly in copy constructor and operator= only.  The main library
    handles the rest.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-18 15:49:32 -05:00
Quincey Koziol
99e21e85c9 [svn-r15385] Description:
Correct return value for error condition to avoid compiler warning

Tested on:
    Just eyeballed, very minor
2008-07-18 09:08:21 -05:00
Christian Chilan
8b3ced0b9e [svn-r15384] Major update of h5perf files including bug fixes and extensions.
Tested on kagiso and abe.
2008-07-17 17:45:40 -05:00
Scot Breitenfeld
ba711c9cf5 [svn-r15379] Description:
Added optional "mounted" parameter to H5Gget_info_f, H5Gget_info_by_idx_f, H5Gget_info_by_name_f
2008-07-16 14:16:17 -05:00
Quincey Koziol
9981e28710 [svn-r15376] Description:
Bump shared library version # for change to H5G_info_t struct
2008-07-16 10:30:32 -05:00
Quincey Koziol
583eac5e6d [svn-r15373] Description:
Correct wrong error return value to avoid compiler warning

Tested on:
    Just eyeballed, extremely minor
2008-07-16 10:11:50 -05:00
Quincey Koziol
f21b99b592 [svn-r15371] Description:
Update release notes for file mounting bug fix and adding 'mounted' flag
to H5G_info_t.
2008-07-15 17:43:22 -05:00
Quincey Koziol
d6dadadc7e [svn-r15368] Description:
Bring back r15367 from the trunk:

    Add check to avoid mounting a file on a group twice, when the mounts
are done on the same HDF5 file, but opened with separate H5Fopen queries.

    Also add new 'mounted' flag to the H5G_info_t struct, queried with the
H5Gget_info() API call, to allow applications to detect and avoid this
situation.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Linux/64 10.5.4 (chicago)
2008-07-15 16:23:19 -05:00
Raymond Lu
ac73359fb1 [svn-r15346] Commented out attribute test because there's a bug related to the recent change of attribute in
the library.  

No test - simple change.
2008-07-11 14:07:07 -05:00
Raymond Lu
32a3d96939 [svn-r15345] Commented out tsohm.c and tattr.c test because there's a bug related to the changes of attribute
in the library.

Tested on linew - simple change.
2008-07-11 14:05:31 -05:00
Scott Wegner
81de0a75cc [svn-r15338] Purpose: Reset fill value in correct hyperslab selection (fixes bug 1155)
Description:
This bug was previously fixed, but the fixed was modified slightly from the 1.8 branch and the trunk.  The problem is that after we write a particular byte to manipulate the fill values, we need to write it back before reading and comparing to the expected value.  The previous change makes the second write after the hyperslab is manipulated, so the initial hyperslab is still incorrect.

Tested:
VS2005 on WinXP (32- and 64-bit)
h5committest
2008-07-08 12:03:45 -05:00
Neil Fortner
d989ab71f4 [svn-r15336] Fixed incorrect error message in H5Pset_fletcher32:
"unable to add deflate filter to pipeline"
->
"unable to add fletcher32 filter to pipeline"

Tested: kagiso
2008-07-08 11:20:39 -05:00
Vailin Choi
0631ac2273 [svn-r15334] Update test files for h5stat.
h5committested.
2008-07-08 09:03:46 -05:00
Raymond Lu
9f56d7f5ab [svn-r15330] When an attribute was opened twice and data was written with one of the handles,
the file didn't have the data.  It happened because each handle had its own
object structure, and the empty one overwrote the data with fill value.  This is
fixed by making some attribute information like the data be shared in the
attribute structure.

Tested on smirom, kagiso, and linew.
2008-07-07 12:00:03 -05:00
Scott Wegner
1f4ee5485e [svn-r15313] Purpose: Support Visual Studio 2008 on Windows
Description:
Write documentation for building HDF5 with the latest version of Visual Studio, 2008.  The process is very similar to building with Visual Studio 2005, but with an automatic project-file conversion beforehand.

Also adapt commandline build scripts for Visual Studio 2008 as well.

Tested:
VS2008 on WinXP
2008-07-02 14:49:20 -05:00
Raymond Lu
d238f0663c [svn-r15305] Changed H5Tcreate_array to H5Tcreate_array2 from last checkin for the bug fix for
H5Tpack.  The problem was that H5Tpack didn't act correctly with nested
compound datatype.

Tested on smirom - simple change.
2008-07-01 11:25:08 -05:00
Scott Wegner
7447d79091 [svn-r15304] Purpose: Minor typo in Windows documentation (zlib DLL directory)
Description:
When specifying library search path in Visual Studio, use the DLL folder for zlib.  Previously we pointed to the "lib" folder, which was causing confusion.
2008-06-30 15:13:23 -05:00
Scott Wegner
0c0e746ce7 [svn-r15302] Purpose: Support Intel Visual Fortran 10.1 from Visual Studio and Windows command line
Description:
Modify Windows documentation to support Intel Visual Fortran 10.1.  We have tested it in our Virtual machines, and have fixed the problems we were encountering.

Also, add a new parameter to the hdf5build.BAT and hdf5bt.BAT build scripts to support IVF 10.1.
2008-06-30 14:19:11 -05:00
Raymond Lu
2b1ee377c3 [svn-r15297] Bug fix for H5Tpack. The problem was that H5Tpack didn't act correctly with nested
compound datatype.  The size of compound type's member type wasn't updated.  It's
fixed in this commit.

Tested on smirom.  The same change was tested on three systems for v1.9.
2008-06-30 14:00:44 -05:00
Scott Wegner
372af0302f [svn-r15289] Purpose: Project Cleanup / Support directories with spaces
Description:
On Windows, we manage dynamically-generated code through "post-build" steps in Visual Studio.  However, the command for it wasn't checking to see if the code already existed, so it was re-generating in each build (and thus re-generating all dependencies).  To overcome, we simply check if the source file exists before generating it.

Also, put all paths inside quotes so we can handle directory names with spaces.

Tested:
VS2005 on WinXP
2008-06-27 11:55:02 -05:00
Scott Wegner
0dd254246c [svn-r15287] Purpose: Fix project settings for Intel Fortran 10.1
Description:
A typo in the project output file name was causing Intel Fortran 10.1 to crash.  The output file was set to "$(OutDir)\hdf5_fortranddll.dll   " (three trailing spaces).  IVF 9.1 ignored this error and continued gracefully.  However, IVF 10.1 would simply crash.  With this fix, we can now build on IVF 10.1 (so far..)

Tested:
VS2008 w/ IVF 10.1 on WinXP
2008-06-27 11:26:41 -05:00
Neil Fortner
11b12d8f96 [svn-r15284] Fixed bug 1155, added fillval.c back to windows test file, other minor cleanup in fillval.c.
Tested: kagiso
Same fix in trunk: kagiso (parallel), smirom, linew
2008-06-26 11:18:22 -05:00
Scott Wegner
c3a26ef402 [svn-r15272] Purpose: Disable fillval test on Windows
Description:
The fillval test uses random input to test various fill cases.  Certain boundary cases cause the test to fail, which produces sporadic errors on Windows.  There is a bug filed for the issue here:
http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=1155

We will disable the test until the bug is fixed.

Tested:
None, simply disabled.
2008-06-25 10:12:39 -05:00
Scot Breitenfeld
b950312318 [svn-r15255] Description:
Added the function h5tget_native_type and associated
requirements.
2008-06-20 11:38:54 -05:00
Scott Wegner
b5938a75af [svn-r15253] Purpose: Remove ttsafedll project from default build.
Description:
Somehow, the ttsafedll project was setup to build by default in Visual Studio .NET project files.  This causes build errors when the HDF5_EXT_PTHREAD variable isn't defined or the pthreads library path isn't setup.  It should be disabled by default.

Tested:
VS.NET on WinXP
2008-06-20 11:33:00 -05:00
Scott Wegner
f2a745a0bb [svn-r15241] Purpose: Port bugfix from trunk: Fix ohdr Windows timezone bug
Description:
On Windows, certain users were having trouble with the "ohdr" test, which does some processing on object header messages.  The errors were hard to reproduce on our machines, and we eventually determined that the errors were timezone-specific.

The bug is triggered on Windows when processing timestamps very near the "Epoch" (midnight on 1/1/1970)-- the mktime() function does some automatic adjustment on the time to correct for timezones.  In the USA, the correction adds a few hours; in Europe, it subtracts, thus giving us times pre-Epoch.

This only affects Windows because the Windows mktime() function cannot handle times before 1970-- other systems seemingly can.

The fix is to simply create timestamps only as early as 01/02/1970.  This way, any timezone adjustment will still be post-Epoch.

This bug only affects the ohdr test, and shouldn't be a problem in the library.  The earliest timestamps that will actually be read will be around the time HDF5 was created (~1996-7, per Quincey).

Tested:
(tested in trunk)
VS2005 on WinXP
h5committest (kagiso, linew, smirom)
2008-06-19 13:48:27 -05:00
Quincey Koziol
ea9b094c18 [svn-r15228] Description:
Bring back revision 15227 from trunk:

	Small cleanups to copying datatypes

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.5.3 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2008-06-17 15:07:50 -05:00
Quincey Koziol
e7b55928b6 [svn-r15214] Description:
Fix gcc 4.2 flag that was put in gcc 4.1 section

Tested on:
        Eyeballed & man pages
2008-06-13 07:29:07 -05:00
Quincey Koziol
970fcd54e0 [svn-r15212] Description:
Bring back revision 15211 from trunk:

        Update the gcc flags for version 4.3

        Clean up warnings

Tested on:
    Mac OS X/32 10.5.3 (amazon)
2008-06-12 23:55:44 -05:00
Quincey Koziol
c7ad57374b [svn-r15209] Description:
Bring back revision 15208 from trunk:

    Add a "HDcompile_assert" macro for assertions that can/should be checked
at compile time, as opposed to run time.  (And used it for a couple of simple
cases, to begin)

Tested on:
    Mac OS X/32 10.5.3 (amazon)
2008-06-12 14:36:01 -05:00
Quincey Koziol
7dcf5b3972 [svn-r15189] Description:
Bring revision 15188 back from trunk:

        Avoid leaking memory when copying the internal "shared" struct for
a named datatype when it's already been opened earlier.

Tested on:
	Linux/64 2.6 (chicago)
2008-06-10 12:28:42 -05:00
Scott Wegner
6df2bbd6e9 [svn-r15181] Purpose: _WIN32 macro cleanup
Description:
As part of our Windows cleanup, we try to remove windows-specific tweaks in the source code.  There are many instances where Windows code is introduces via ifdef's.  We re-evaluate whether they are still required, and found that many of them are not.  Others we change to "feature"-specific code, rather than Windows-specific.

Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagisopp, smirom, linew)
2008-06-09 12:31:22 -05:00
Christian Chilan
0304c9a5fa [svn-r15180] Change copyright notice to THG only. 2008-06-09 12:19:55 -05:00
Scott Wegner
720a985115 [svn-r15163] Purpose: Create new HDpthread_self and HDpthread_self_ulong macros
Description:
On Windows, the pthread_self function cannot be used to print the returned thread ID for debugging.  Instead, we need a separate function, GetCurrentThreadId.  To eliminate some Windows ifdef's in the code, we create two new function macros which can be used by all platforms.  It is conditionally defined in H5win32defs.h, and globally in H5private.h.

Tested:
VS2005 w/ pthreads on WinXP
kagiso w/ pthreads
2008-06-06 14:10:20 -05:00
Scott Wegner
0b5f34bfa6 [svn-r15160] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead.  This way, we can map special versions of the call on particular systems.  Previously, it was all done in H5private.h.  However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h.  This way, we can use the non-Posix versions that Visual Studio sends warnings about.

Some macros are set specifically in the platform-specific header files.  Then, any macros left unset will be set by the "default" implementation in H5private.h.

This checkin also cleans up various source files to use the HD* macros when possible.

Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-05 16:39:30 -05:00
Pedro Vicente Nunes
13cc35de11 [svn-r15159]
- h5dump: when doing binary output (-b), the stdout printing of attributes 
           was done incorrectly. Removed printing of attributes when doing binary 
           output. PVN - 2008/06/05
2008-06-05 16:23:09 -05:00
Scott Wegner
1c63211301 [svn-r15152] Purpose: Add testhdf5_1_8fortran[dll] Windows projects as dependencies to all_fortran
Description:
The projects testhdf5_1_8fortran[dll] which test the new fortran features in HDF5 1.8 were not registered as dependencies to the "all_fortran" pseudo-project.  As a result, the projects would not be built if you simply build all_fortran in Visual Studio, rather than "Build Solution".  This is a very minor cleanup, but is neccessary to be consistent in our projects.

Tested:
VS2005 on WinXP x64
2008-06-05 14:56:23 -05:00
Pedro Vicente Nunes
1229fc7886 [svn-r15151]
Fix for #1169
http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=1169

don't print attributes to stdout when doing binary output
added an attribute to the file run on the binary output test

tested: windows, linux
2008-06-05 14:26:35 -05:00
Quincey Koziol
c7b6018bda [svn-r15148] Description:
Bring back revision 15146 from the trunk:

        Correct the definition of the 'nbytes' variable in the in-memory version
    of the B-tree key for chunks from 'size_t' to 'uint32_t', to match the
    definitions everywhere else.

Tested on:
    Mac OS X/32 10.5.3 (amazon) debug & production
    Linux/64 2.6 (chicago) production
2008-06-05 11:47:50 -05:00
Mike McGreevy
c72fb2f329 [svn-r15147] Purpose: Bug Fix
Description: Changing h5perf installation so only h5perf is installed when
             parallel is enabled, while only h5perf_serial is installed when
             parallel is disabled.

Tested: kagiso
2008-06-05 11:46:29 -05:00
Scott Wegner
7e8df66a0e [svn-r15144] Purpose: Add new h5ls test to Windows
Description:
A new test case was added to the general testh5ls script.  This update adds the test to Windows as well.

Tested:
VS2005 on WinXP
2008-06-05 10:10:23 -05:00
Albert Cheng
018ba9a701 [svn-r15136] Purpose:
bug fixes.

Description:
Added code to create an empty hdf5 (named h5diff_empty.h5) in order to test
if h5diff compares correctly an empty hdf5 vs. a non-empty one.

Tested:
Tested in kagiso of h5diffgentest itself.
Verified by h5dump that h5diff_empty.h5 was indeed empty.
Then "h5diff h5diff_empty.h5 h5diff_basic1.h5" returned 0 (should have
returned non-zero).
2008-06-04 12:14:23 -05:00
Quincey Koziol
6e196a7b66 [svn-r15134] Description:
Brought revision 15133 back from trunk:

        Fixed bug in h5ls that prevented relative group listings (like
    "h5ls foo.h5/bar") from working correctly.

Tested on:
    Mac OS X/32 10.5.3 (amazon)
2008-06-03 19:25:29 -05:00
Quincey Koziol
79380c228c [svn-r15132] Description:
Bring back revision 15131 from trunk:

        Finish omnibus chunked dataset I/O refactoring, to separate general
    actions on chunked datasets from actions that are specific to using the v1
    B-tree index.

        Cleaned up a few bugs and added some additional tests also.

Tested on:
    Mac OS X/32 10.5.3 (amazon)
    Linux/32 2.4 (chicago)
2008-06-03 15:34:58 -05:00
Christian Chilan
a9fa9a4a37 [svn-r15129] Revise man page and copyright notice.
Tested on smirom.
2008-06-03 00:29:41 -05:00
Scott Wegner
0eb9e1ac43 [svn-r15127] Purpose: Make Windows threadsafe debug message more useful
Description:
On Linux-like systems, we can get the ID of the current thread through a pthread_self.  However on Windows, the return cannot be cast as a threadID, so we simply couldn't get the ID.  Previously we simply gave up and printed a message that we couldn't get an ID.  Instead, though, we can use the Windows-specific call to GetCurrentThreadId(), which achieves the same goal.  This way we can provide better debug output with threadsafe features.

Tested:
VS2005 on WinXP
VS.NET on WinXP
(other platforms not tested because change is within _WIN32 ifdef)
2008-06-02 15:39:02 -05:00
Scott Wegner
73fe712356 [svn-r15125] Purpose: Cleanup unneeded Windows source
Description:
Previously, we maintained some source files that are commonly generated dynamically on other systems.  Now, we also generate them on Windows as well.  We should remove them from the repository so old versions are not accidentally used.

Also, clean up the project files to organize generator programs.

Tested:
VS2005 on WinXP
VS2005 on WinXP x64
VS.NET on WinXP
2008-06-02 14:59:45 -05:00
Scott Wegner
f1bfdda38c [svn-r15121] Purpose: Support Visual Studio .NET builds from command-line
Description:
In our Windows command-line build script, we now support building with Visual Studio .NET, although VS2005 is still the default.  Building with VS.NET still imposes the same feature restrictions as through the IDE:
-- 64-bit builds are unsupported
-- Fortran is unsupported

Tested:
VS.NET on WinXP
VS2005 on WinXP
2008-06-02 11:17:49 -05:00
Scott Wegner
8953ecfe9d [svn-r15120] Purpose: Ignore Windows POSIX-Depreciation warnings in Visual Studio 2005
Description:
On Windows, we receive many compiler warnings because Microsoft has implemented many "security-enhanced" versions of POSIX functions.  However, the old versions still exist, so the warnings can be ignored.  By setting a preprocessor definition, we can disable many of these warnings.  On a typical HDF5 build, this reduces the number of warnings from ~1500 to ~600

Tested:
VS2005 on WinXP
2008-06-02 11:14:56 -05:00
Scott Wegner
c65d5ffe8d [svn-r15118] Purpose: Backport Windows project cleanup from trunk: remove ignored system library, standardize program debug information, and unify Windows h5tinit
Description:
These changes are made via a user's suggestion, bugzilla bug #1164.  These have all been tested in the trunk, and are stable/favorable changes.

In many of our project files on Windows, we have our linker setting set to ignore old link libraries-- either libc.lib or libcd.lib.  This is a relic from converting project files from old versions of Visual Studio to newer ones, and is unnecessary.  We remove the ignored library from the project files.  This actually makes no difference in the output binaries.

In our debug project configurations, many of the projects were generating debug information for "Program Database and Edit & Continue".  Other projects were using different settings, or none at all. We standardize to use "Program Database" setting, because it generates much smaller .obj files and cuts out unnecessary debug information.

Previously, there was Windows-dependent code inside H5detect.c, because not all projects could access the gethostname() function.  However, we standardize our project-files to link with WS2_32.lib, so now this function is available.  Thus, the Windows-specific code has been removed from H5detect.c.

Tested:
VS2005 on WinXP
VS.NET on WinXP
2008-06-02 10:36:55 -05:00
Mike McGreevy
ac339aa792 [svn-r15111] Purpose: Bug Fix
Description: While '-Wl,-rpath' information was being removed from compile
             lines when using --disable-sharedlib-rpath, some information
             was still hidden in another variable that never got reset and
             thus snuck into the executables. This fix should take care of 
             that issue.

Tested: kagiso, smirom
2008-05-30 15:59:01 -05:00
Scott Wegner
454b061aa6 [svn-r15107] Purpose: Provide better fix for h5dump xml test failure on Windows
Description:
Shortly before the release, we noticed that one of our h5dump xml Windows tests failed when used with a release tarball.  This is because of the Unix-style EOL characters in the expected output.  For the release, we simply skipped the test.  However, we can instead convert the expected output to Windows EOL format, and run the test.  This is a backport from the HDF5 trunk.

Tested:
VS2005 on WinXP
2008-05-30 14:15:08 -05:00
Elena Pourmal
3605a2dc2d [svn-r15105] Maintenance: Modified version to 1.8.1-snap0, and updated HISTORY-1_8.txt and RELEASE.txt
for the further development in the branch.
2008-05-30 13:33:13 -05:00
Elena Pourmal
fbaf972a66 [svn-r15097] Maintenance: added g95 info for Linux 32 platforms and created a new source tar ball. 2008-05-29 15:30:57 -05:00
Elena Pourmal
727fa10578 [svn-r15091] Maintenance: used bin/release to release 1.8.1 tar ball (it is under /mnt/scr1/release-binary/hdf5/v181)
Checking in updated files before tagging the release.
2008-05-29 11:58:58 -05:00
HDF Tester
1d7ed4519c [svn-r15088] Update pgi version. 2008-05-28 16:53:06 -05:00
Binh-Minh Ribler
2cd6b67fd9 [svn-r15087] Purpose: Update for C++ API
Description:
    Noted the change from:
	void IdComponent::dereference(IdComponent& obj, void* ref)
    to
	void H5Object::dereference(H5File& h5file, void* ref)
	void H5Object::dereference(H5Object& obj, void* ref)
2008-05-28 16:48:59 -05:00
Albert Cheng
d317830e27 [svn-r15085] Updated version number to 1.8.1 to prepare for official release of v1.8.1. 2008-05-28 16:40:32 -05:00
Albert Cheng
3aa5d8b987 [svn-r15083] INSTALL_parallel:
Added and updated instructions for Red Storm serial and parallel build.
RELEASE.txt:
   Added Red Storm information.  Also, rearranged order of entries according
   to more recent first.
2008-05-28 16:32:32 -05:00
Elena Pourmal
b0fe33f243 [svn-r15080] Maintenance: Updated the file with the 1.8.0 release info (should be done long time ago ;-) before
rolling the 1.8.1 release tar ball.
2008-05-28 16:10:52 -05:00
Binh-Minh Ribler
bf9465c9cc [svn-r15079] Purpose: Update for C++ API
Description:
    Added notes about fixes of bugzillas 1045 and 1068.
2008-05-28 12:41:29 -05:00
Frank Baker
c6a0c6f6e7 [svn-r15078] Description:
Editorial pass
2008-05-27 17:26:04 -05:00
Scott Wegner
92fe8775dd [svn-r15077] Purpose: Comment out one Windows test that fails in release tarball
Description:
On test fails from the release tarball.  Specifically, the h5diff xml test for tsaf.h5.xml.  For some reason, fc (Windows diff utility) detects differences from the expected output if the file has unix-style end-of-line characters.  It only happens for this test.  I suspect it is because the file is so long, but it's too late to debug for the release.  Simply comment it out until we can fix it.

Tested:
VS2005 on WinXP (32- and 64-bit)
2008-05-27 15:25:15 -05:00
Larry Knox
726af41499 [svn-r15076] Update Platforms Tested and Supported Configuration Features Summary sections for THG and NCSA machines. 2008-05-27 14:50:30 -05:00
Elena Pourmal
c4200837ad [svn-r15071] Maintenance: Added information to the file for upcoming 1.8.1 release. There is still work to do
on this file before the source release.
2008-05-23 17:22:22 -05:00
Elena Pourmal
cd60d38593 [svn-r15068] Maintenance: used h5vers script to change version number to 1.8.1-rc1 before creating a tar
ball for remote testing
2008-05-22 17:07:25 -05:00
Scot Breitenfeld
ae27797c11 [svn-r15063] Description:
Added processor id in failure messages for MPI.
2008-05-21 14:52:03 -05:00
Scot Breitenfeld
f2989dab4c [svn-r15062] Description:
Removed extra MPI calls in subroutine by just passing
MPI variables into subroutines.

Added checks for MPI errors.

Cleaned-up formatting.
2008-05-21 14:43:22 -05:00
Elena Pourmal
b85229d0e2 [svn-r15059] Maintenance: File space identifier was not closed causing memory growth; fixed
Platforms tested: kagiso (minor fix)
2008-05-21 14:21:01 -05:00
Binh-Minh Ribler
e2b412cbf5 [svn-r15058] Purpose: Code cleanup
Description:
    Removed an unnecessary member function, H5File::dereference.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-21 12:43:12 -05:00
Scott Wegner
85608c722a [svn-r15055] Purpose: Update Windows h5repack test script
Description:
Add a function to test old h5repack syntax, as well as a new test case for it.

Tested:
VS2005 on WinXP
2008-05-21 10:28:43 -05:00
Pedro Vicente Nunes
74568cf5ca [svn-r15053] Add a test for the 1.6.7 -i infile -o outifle for backward compability
Used the function TOOLTEST  from 1.6.7

Tested: linux
2008-05-21 09:57:30 -05:00
Binh-Minh Ribler
831fd1712c [svn-r15051] Purpose: Fix typo
Description:
    Remove c_str() from a String argument.

Platforms:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-20 19:00:08 -05:00
Pedro Vicente Nunes
69929158f5 [svn-r15048] bug fix regarding change from -i to -d regarding number of links in indexed format
tested: windows
2008-05-20 15:35:09 -05:00
Binh-Minh Ribler
988e907b11 [svn-r15046] Purpose: Fixed bugs
Description:
    The class hierarchy was revised to address the problem reported in
    bugzilla #1068.  Classes AbstractDS and Attribute are moved out of
    H5Object.  Class Attribute now multiply inherits from IdComponent and
    AbstractDs and class DataSet from H5Object and AbstractDs.

    In addition, data member IdComponent::id was moved into subclasses:
    Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList.

    Also fixed bugzilla 1045: revised Attribute::write and Attribute::read
    wrappers to handle memory allocation/deallocation properly. (bugzilla 1045)

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-20 15:24:44 -05:00
Albert Cheng
980d183790 [svn-r15045] Bug fix.
Description:
perf would crash at the end as it complained it was doing MPI calls after
MPI_Finalize() is called.  I suspect the HDF5 library is making MPI calls
in the at_exit area.  This should not happened.

Solution:
Added the H5exit() right before MPI_Finalize() fixed the problem.
But it needs to find out why HDF5 library is making MPI calls in
the at_exit() area.  It should not.
Also, changed the temporay data file name from /tmp/test.out to
perftest.out, both to avoid multiple instance of this may use the
same /tmp/xxx name and also make the file name less generic.

Tested:
Kagiso PP.
2008-05-20 14:08:45 -05:00
Albert Cheng
4344cf5391 [svn-r15042] Bug fix.
Description:
The fortran Makefile.am used HDF_FORTRAN to indicate it is part of the
Fortran API source so that conclude.am will give fortran api prefix in the
test output.  The symbox HDF_FORTRAN is also used in configure for a different
purpose (indicated --enable-fortran). They conflicted.
Similar problem for the symbol HDF_CXX.

Solution:
Changed all the involved Makefile.am to use "FORTRAN_API" instead. It is
a more appropriate name.  Same for CXX_API.

Along the way, discovered that the Makefile.am of hl/fortran/test and
hl/cxx/test did not have those symbols at all.  Added them in.

Platform tested:
Kagiso serial and h5committested (kagisopp, smirom, linew).
2008-05-19 20:29:26 -05:00
Mike McGreevy
6631ced7a9 [svn-r15040] Purpose: Configure Fix
Description: Removing make target 'make check-perform'. The extra target is 
             unneeded because the tests don't take as long to run as initially
             anticipated, and can be lumped in with 'make check'.

Tested: kagiso
2008-05-19 15:37:30 -05:00
Scott Wegner
d11a2b8ba6 [svn-r15039] Purpose: Update h5repack test script
Description:
1 new test added for command-line syntax compatibility

Tested:
VS2005 on WinXP
2008-05-19 10:32:15 -05:00
Quincey Koziol
8a2023b552 [svn-r15038] Description:
Bring revision 15037 from trunk:

    Better cleanup of internal structures when no szip encoder.

Tested on:
    Linux/32 2.6 (kagiso) w/szip-no encoder
2008-05-19 01:05:31 -05:00
Quincey Koziol
90b94c00fe [svn-r15035] Description:
Backport revision 15034 from trunk: 

	Correct another case of using 'size_t' for chunk sizes where 'uint32_t'
was necessary.

Tested on:
	FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN
2008-05-18 23:47:38 -05:00
Albert Cheng
feab08a0ee [svn-r15033] Purpose:
Improvement.

Description:
src/libhdf5.settings was the initial configure summary and is installed.
Then configure is changed to dump a summary of the configure settings to
the output and also append it to src/libhdf5.settings.  That created
two different output formats and duplicated information.  This is the
initial attempt to clean up this confusion and unify the output format.

It is decided to use the src/libhdf5.settings template as the unified means.
This requires more macros symbols be defined. The following symbols are
all related to generating the src/libhdf5.settings file.

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(FC) HDF_FORTRAN=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(LINUX_LFS) LINUX_LFS=no
AC_SUBST(INSTRUMENT) INSTRUMENT=no
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`

The src/libhdf5.settings.in has CONDITIONAL's added to it too.  The
untrue conditions turned into a "#" and these lines are cleaned by the 
post processing script.

Platform tested:
h5committest on kagiso, smirom and linew. (smirom had failures not due to
my changes.)
2008-05-18 21:25:13 -05:00
Elena Pourmal
f0b8da5851 [svn-r15029] Maintenance: Fixed a comment 2008-05-17 22:05:42 -05:00
Elena Pourmal
7c818eaf88 [svn-r15027] Maintenance: Fixed a typo in the fortran h5tget(set)_fields_f subroutines.
Platfomrs tested: kagiso with Intel compilers (this is bug 1046, I am not closing it since there is
                  no test for those routines yet)
2008-05-17 21:57:47 -05:00
Pedro Vicente Nunes
57708e46ad [svn-r15024] backward compatibility for old -i infile -o outfile options
if these are detected this syntax is used, otherwise the one in usage is used
there was another -i option for 

-i L2, --indexed=L2     Minimum number of links in the indexed format

That was changed to -d

-d L2, --indexed=L2     Minimum number of links in the indexed format

Tested: windows, linux
2008-05-16 15:36:48 -05:00
Scott Wegner
1962e806c7 [svn-r15021] Purpose: Minor updates to Windows documentation via Kent's recommendations. 2008-05-16 13:47:25 -05:00
Mike McGreevy
c5fa17ae84 [svn-r15019]
Purpose: Configure Fix

Description: The test program h52gifgentst was getting installed in the bin
             directory during 'make install', and it shouldn't. Make now builds
             the program for use in testing but doesn't install it during
             'make install'.

Tested:      kagiso
2008-05-16 12:42:16 -05:00
Elena Pourmal
968552fbc8 [svn-r15018] Maintenance: Brought changes from th etrunk to 1.8 branch.
Platforms tested: kagiso with g95, Intel and PGI compilers and with -i8 flag
                  smirom with g95 and -i8 flag, duty with gfortran42
2008-05-16 10:10:36 -05:00
Quincey Koziol
c23c6b9392 [svn-r15016] Description:
Port revision 15015 back to 1.8 branch:

>     Detect chunks that are >4GB before dataset gets created and return error
> to application.
> 
>     Tweak lots of internal variables that hold the chunk size/dimensions to
> use an 'uint32_t', instead of a 'size_t', so that the integer size is constant.
> 
>     Correct a number of our tests which were creating datasets with chunks
> that were >4GB and add some specific tests for >4GB chunk size detection.
> 
>     Minor whitespace & other code cleanups.

Tested on:
    Mac OS X/32 10.5.2 (amazon)
    Forthcoming testing on other platforms...
2008-05-15 22:27:13 -05:00
Mike McGreevy
70cdaa12b2 [svn-r15013] Purpose: Configure Macro Modification
Description: The macro H5_HAVE_WINDOW_PATH is now defined to 1 only when
             MinGW is in use. This is needed to fix the "links" test, and the
             external link feature in the library.

Tested: kagiso
2008-05-15 16:25:52 -05:00
Mike McGreevy
484b4c47c3 [svn-r15011] Purpose: New configure option
Description: The configure option --disable-sharedlib-rpath will disable
             embedding of the '-Wl,-rpath' information into executables
             when shared libraries are produced.

Tested: kagiso
2008-05-15 16:02:34 -05:00
Mike McGreevy
362e5d9a10 [svn-r15006] Purpose: configure cleanup
Description: cleaning up configure related to removal of --disable-hsizet
             flag, which we no longer support.

Tested: kagiso
2008-05-15 10:48:48 -05:00
Scott Wegner
6481c7451f [svn-r15004] Purpose: Minor updates to Windows documentation.
Description:
-- INSTALL_Windows.txt:
   -- Update szip version number to 2.1
   -- Extra details for setting up 64-bit builds
   -- Explain adding HDF5 link settings more clearly
   -- Add link to FAQ
   -- Misc. typos and formatting
-- INSTALL_Windows_From_Command_Line.txt
   -- Add note about 64-bit support
-- INSTALL_Windows_Short_NET.TXT
   -- Add notes detailing features unsupported on VS.NET
-- INSTALL_Windows_Short_VS2005.TXT
   -- Add notes about extra features.
2008-05-15 09:16:24 -05:00
Scott Wegner
ea4dea20fe [svn-r15001] Purpose: Minor Windows documentation updates
Description:
Small changes to the documentation-- update version strings to 1.8.1 and document the HDF5TestExpress variable
2008-05-14 14:37:45 -05:00
Scott Wegner
2b8a9569bb [svn-r14998] Purpose: Minor updates to MinGW installation notes
Description:
Small changes, such as commenting out an additional test and fixing the search path, have been added to the MinGW install instructions.

Tested:
MinGW on WinXP
2008-05-14 14:25:06 -05:00
Scott Wegner
4261982ea1 [svn-r14994] Purpose: Add support for building 64-bit Windows binaries from command line
Description:
We can dynamically detect the host architecture using the PROCESSOR_ARCHITECTURE variable.  This allows us to setup our build paths accordingly and build 64-bit Windows binaries from the command line.  This allows us to run autotests on 64-bit Windows as well.

Tested:
VS2005 on WinXP x64
VS2005 on WinXP x86
2008-05-14 09:54:21 -05:00
Elena Pourmal
4297f8cc78 [svn-r14992] Maintenance: Brought changes from trunk into 1.8 branch
Platforms tested: kagiso, will do more testing later with -i8 flag.
2008-05-13 13:37:48 -05:00
Mike McGreevy
ee187da419 [svn-r14989] Purpose: Bug Fix
Description: Typo in the configure.in script. CC_VERSION should be set using
             CC_NOFLAGS, but is currently using CC_NOFLAG, which does not exist.

Tested: kagiso (configure issue)
2008-05-13 11:39:07 -05:00
Scott Wegner
475ce84ae6 [svn-r14986] Purpose: Add Windows fixes for new Fortran code.
Description:
There were a number of small tweaks we needed to make to add the new fortran_1_8 code on Windows.  We create new project files, add new source to them, add the test to our test suite, and fix a few typos in the Windows-specific source code.

Tested:
VS2005 on WinXP
2008-05-12 16:31:45 -05:00
Scott Wegner
8380b1827e [svn-r14983] Purpose: Update h5dump test script on Windows
Description:
One test has been added to h5dump test for custom output formats.  This adds the test on Windows as well.

Tested:
VS2005 on WinXP
2008-05-12 15:47:31 -05:00
Pedro Vicente Nunes
7f54a6cbeb [svn-r14981] - h5dump: support for external links, display the object that the external link
points to. (PVN - 2008/05/12)
2008-05-12 15:37:29 -05:00
Pedro Vicente Nunes
20c6bdda65 [svn-r14978] Support for external links follow up. The format is to print the target object as part of TARGETPATH, noted with some extra indentation
The previous printing of 
LINKCLASS 64
was removed

HDF5 "textlinksrc.h5" {
GROUP "/" {
   EXTERNAL_LINK "ext_link1" {
      TARGETFILE "textlinktar.h5"
      TARGETPATH "dset"
         DATASET "dset" {
            DATATYPE  H5T_STD_I32LE
            DATASPACE  SIMPLE { ( 6 ) / ( 6 ) }
            DATA {
            (0): 1, 2, 3, 4, 5, 6
            }
         }
   }
}
}

There is no script test for this behavior so far, because test script uses complete paths that vary from test to test, making not possible to define a valid TARGETFILE in the file

tested: windows, linux, solaris
2008-05-12 15:20:00 -05:00
Scott Wegner
f02082b568 [svn-r14974] Purpose: Fix bug in H5G_get_name_by_addr where buffer size is less than size of name
Description:
In the new tests merged from the fortran_1_8 branch, there is a test that fetches a dataset name in a small buffer.  The call to H5G_get_name_by_addr wrote an extra byte off the end of the buffer.  A simple and sufficient fix is to decrease the buffer size passed to strncmp by 1.  This bug was only caught by Visual Studio 2005 with extra debug checks on.

Tested:
VS2005 on WinXP
kagiso
2008-05-12 13:03:05 -05:00
Mike McGreevy
7e7e7c7aef [svn-r14968] Purpose: Bug Fix (Bug 1144)
Description: Tests in perform directory were never getting run, and 
             h5perf* programs were not being installed.

Solution: Added another build option, 'make check-perform', which runs the 
          tests in the perform directory. Also modified the Makefiles in the
          perform directory to install (with 'make install') h5perf when 
          parallel is enabled, and h5perf and h5perf_serial when parallel is 
          disabled 

Tested:   kagiso, smirom, linew
2008-05-12 09:48:32 -05:00
HDF Tester
c48f37b327 [svn-r14967] Snapshot version 1.8 release 0 (snap6) 2008-05-11 21:06:42 -05:00
Scot Breitenfeld
8d4ae7e283 [svn-r14964] merged the fortran trunk into the branch, used the command:
(svn merge -r 14942:14963 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran)
2008-05-09 16:38:52 -05:00
Elena Pourmal
9d8bed8483 [svn-r14959] Maintennce: IRIX compiler exposed a problem in one of the new APIs. Fixed.
Platforms tested: kagiso and UCAR IRIX machine
2008-05-09 14:05:05 -05:00
Scot Breitenfeld
a42154c441 [svn-r14957] Fixed integer type mismatch in c function 2008-05-09 11:10:13 -05:00
Scot Breitenfeld
4e261a5427 [svn-r14956] re-instated the test_attr_dense_open routine for debugging 2008-05-08 16:40:30 -05:00
Vailin Choi
cb79e86d4b [svn-r14952] 1. test/links.c: put in external link tests for windows
2. src/H5private.h: remove #define for HDputenv()
2008-05-08 08:30:30 -05:00
HDF Tester
a67435cf3b [svn-r14951] Check in fixes for compilation errors on tungsten. 2008-05-07 17:18:20 -05:00
Elena Pourmal
4b2c3c5e07 [svn-r14949] Maintenance: brought serial h5perf tool from trunk; use
svn merge -r 14824:14945 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/perform
             command to bring changes in.

Platforms tested: kagiso with Intel compilers, smirom with GNU compiler
2008-05-06 15:51:39 -05:00
Pedro Vicente Nunes
eb9ba954a5 [svn-r14948] Add a test for the floating point user defined printf format
Usage is 

-m T, --format=T

Where T - is a string containing the floating point format, e.g '%.3f'

The test consists of writing a number with 7 fractional digits (default precision display of %f is 6 digits) and have the 7 digits displayed with 

-m %.7f fpformat.h5

Tested: windows, linux, solaris

Note: the output file was generated in linux, it may be possible that platforms other than the ones tested have a different representation of the number
2008-05-06 15:08:11 -05:00
Elena Pourmal
41bf2001b1 [svn-r14943] Maintenance: Added files missed in the previous check-in.
Platforms tested: bin/chkmanifest on kagiso
2008-05-06 14:27:02 -05:00
Elena Pourmal
0bfb17bf00 [svn-r14942] Maintenance: Merged new Fortran APIs and tests from trunk into hdf5_1_8 branch
(used svn merge -r 14505:14941 http://svn.hdfgorup.uiuc.edu/hdf5/trunk/fortran 
              command).
             Updated MANIFEST
             Disabled -O3 optimization for gcc 4.3 (long due check-in)

Platforms tested: kagiso with PGI compilers, smirom with g95 and v16 option, linew
2008-05-06 14:23:32 -05:00
Mike McGreevy
464e4619f6 [svn-r14940] Purpose: Bug Fix (Bug 794)
Description: Test gcov script on kagiso

Solution: The bin/gcov script was not working on kagiso. The script was
          retooled and now works correctly on kagiso, placing code coverage logs
          into the generated gcov_logs directory when run.

Tested: kagiso
2008-05-06 12:18:48 -05:00
Mike McGreevy
1e313e76ff [svn-r14932] Purpose: updating RELEASE.txt document
Description:   added new autotool version information (updated libtool from 
               1.5.22 to 2.2.2 and automake from 1.10 to 1.10.1) to RELEASE.txt

Tested:        none needed, documentation update only
2008-05-05 09:33:51 -05:00
HDF Tester
c44f697040 [svn-r14931] Snapshot version 1.8 release 0 (snap5) 2008-05-04 20:44:48 -05:00
Quincey Koziol
06dc01d40e [svn-r14917] Description:
Clean up files created & cleaned up for dataset tests.

Tested on:
    Mac OS X/32 10.5.2 (amazon)
    Too minor to require h5committest
2008-05-01 17:19:40 -05:00
Pedro Vicente Nunes
8e184de40a [svn-r14915]
Introduced a compression ratio = uncompressed size /  compressed size
in the printing of the compression with 3 digits of precision per hdf-forum NASA developers suggestion

tested: windows, linux
2008-05-01 15:22:03 -05:00
Pedro Vicente Nunes
433c62542f [svn-r14911] add mention of new compression ratio feature in h5dump 2008-05-01 14:18:09 -05:00
Pedro Vicente Nunes
bee6951ac6 [svn-r14906] Introduced a ratio formula compression ratio = uncompressed size / compressed size
in the printing of the compression with 3 digits of precision per hdf-forum NASA developers suggestion

tested: windows, linux, solaris
2008-05-01 11:46:58 -05:00
Pedro Vicente Nunes
b2a2c17c44 [svn-r14895] RFC display compression ratio in h5dump
Here's the current behavior of h5dump regarding the printing of the dataset creation property list

For example

./h5dump -H -p -d filters

HDF5 "tfilters.h5" {
DATASET "deflate" {
   DATATYPE  H5T_STD_I32LE
   DATASPACE  SIMPLE { ( 20, 10 ) / ( 20, 10 ) }
   STORAGE_LAYOUT {
      CHUNKED ( 10, 5 )
      SIZE 385 
    }
   FILTERS {
      COMPRESSION DEFLATE { LEVEL 9 }
   }
   FILLVALUE {
      FILL_TIME H5D_FILL_TIME_IFSET
      VALUE  0
   }
   ALLOCATION_TIME {
      H5D_ALLOC_TIME_INCR
   }
}
}


The proposed behavior is to add this information after SIZE

SIZE 385 (51.9%COMPRESSION)

That percentage is obtained trough

Per = (b-a) / a

Where a = theoretical size obtained by multiplying datum size times number of elements
b =  size obtained with H5Dget_storage_size

The final print would look like

HDF5 "tfilters.h5" {
DATASET "deflate" {
   DATATYPE  H5T_STD_I32LE
   DATASPACE  SIMPLE { ( 20, 10 ) / ( 20, 10 ) }
   STORAGE_LAYOUT {
      CHUNKED ( 10, 5 )
      SIZE 385 (51.9%COMPRESSION)
    }
   FILTERS {
      COMPRESSION DEFLATE { LEVEL 9 }
   }
   FILLVALUE {
      FILL_TIME H5D_FILL_TIME_IFSET
      VALUE  0
   }
   ALLOCATION_TIME {
      H5D_ALLOC_TIME_INCR
   }
}
}

tested: windows, linux, solaris
2008-04-29 14:15:53 -05:00
Scott Wegner
c954ba63a4 [svn-r14868] Purpose: Add new source files to Windows projects
Description:
Two new source files have been added, H5Dchunk.c and H5Dscatgath.c.  This checkin adds the files to the Windows project files as well.

Tested:
VS.NET on WinXP
2008-04-28 09:09:50 -05:00
HDF Tester
8340a57349 [svn-r14866] Snapshot version 1.8 release 0 (snap4) 2008-04-27 21:07:59 -05:00
Mike McGreevy
82198aa9c5 [svn-r14862] Purpose: Disallow use of c++ or fortran with threadsafe.
Description:   Threadsafety is incompatible with c++ and with fortran, so if 
               the user specifies either at configure along with threadsafe, 
               throw an error.

Tested:        kagiso (configure change only, doesn't affect build or testing).
2008-04-24 15:41:51 -05:00
Quincey Koziol
e66cb6fec6 [svn-r14861] Description:
Bring revision 14860 back to 1.8 branch, change log for rev 14860 is:

        Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.

        These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.

Description:
        Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.

        These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.

        Chunked storage no longer has it's own I/O routines, it is now handled
as either contiguous (if chunk is not pulled into the cache) or compact (if the
chunk is cached in memory).

        No bug or feature changes, at least intentionally... :-)

Tested on:
    Mac OS X/32 10.5.2 (amazon) w/production
2008-04-24 10:39:32 -05:00
Scott Wegner
ed32d8e900 [svn-r14858] Purpose: Fix typo in Windows test script
Description:
A small typo in the main Windows test script was causing the C++ library tests not to run by default.

Tested:
VS2005 on WinXP x64
2008-04-21 13:05:34 -05:00
Scott Wegner
e3e9bbafce [svn-r14856] Purpose: Fix error message when with Windows pthreads
Description:
When building HDF5 with thread safety on Windows, the err_compat test was failing because our output was being parsed incorrectly.  Rather than having a thread number in the error stack trace, there will be the string "some thread: no way to know the thread (IDs): from pthread on windows:".  This checkin now takes this into account, and modifies the output accordingly.

Tested:
VS2005 on WinXP with Pthreads
2008-04-21 12:35:25 -05:00
HDF Tester
b6017c5cd1 [svn-r14851] Snapshot version 1.8 release 0 (snap3) 2008-04-20 19:00:23 -05:00
Scott Wegner
b6fc679940 [svn-r14844] Purpose: Fix link input in Windows HL Fortran examples
Description:
Previously, our Windows projects for HL Fortran examples were using outdated library names for our cstub code.  As a result, they wouldn't build correctly.  This checkin brings them up-to-date.

Also, add hdf5_hl.lib as a dependency to hdf5_hl_fortran.lib.  This goes un-noticed when building the complete VS solution, but should be required when only building hdf5_hl_fortran.lib

Tested:
VS2005 on WinXP
2008-04-14 16:32:39 -05:00
Scott Wegner
8fb201dd65 [svn-r14842] Purpose: Fix Windows Fortran examples runtime libraries
Description:
In the Windows Fortran example projects, the runtime library used for linking static-debug version was set incorrectly.  This was a result of the project being upgraded from VS6 where we used Single-threaded libraries.  Those libraries are no longer supported, so we use [Debug] Multithreaded [DLL] now instead.

Tested:
VS2005 on WinXP
2008-04-14 12:13:10 -05:00
Scott Wegner
af355e20a4 [svn-r14840] Purpose: Add new Windows macro for links test
Description:
Many new path-specific tests have been added via the "links" test.  Because Windows' path format is non-standard, we need a special macro defined to handle it specially.  Note that 2 tests still fail with this macro defined, but it should be fixed soon.

Tested:
VS2005 on WinXP
2008-04-14 10:47:49 -05:00
Scott Wegner
ac378bcfb1 [svn-r14837] Purpose: Remove ohdr_gentst from Windows projects
Description:
The ohdr_gentst project exists in order to re-create test input files that are distributed with the source.  These projects aren't built by default on most platforms, and the source isn't distributed in release builds.  To avoid confusion and bloat, we remove the Windows version of this project.

Tested:
None, only removed
2008-04-14 10:15:03 -05:00
Scott Wegner
e622c634d5 [svn-r14835] Purpose: Remove English-specific code from Windows test scripts
Description:
In previous versions of Windows, the builtin 'FC' command (diff equivalent) didn't return proper exit status.  As a work-around, we parsed the message returned to check status.  This relies on English return messages.

In current Windows XP and Windows Vista, FC will return exit status as expected, so we can remove this workaround.  Older platforms where we would need this workaround are no longer supported.

Tested:
VS2005 on Windows XP
Small test on Windows Vista
2008-04-14 09:59:52 -05:00
HDF Tester
740769d37f [svn-r14834] Snapshot version 1.8 release 0 (snap2) 2008-04-13 21:06:52 -05:00
Mike McGreevy
8f0879c89e [svn-r14830] Purpose: Update libtool to version 2.2.2
Description: Changing libtool from 2.2 to 2.2.2. The newer version was released
             last week and I missed the announcement before upgrading to 2.2
             yesterday afternoon.

             The new version is installed in home1/packages/libtool/, and the
             bin/reconfigure script was updated and executed.

Tested:      h5committest (smirom, linew, kagiso)
2008-04-11 16:56:25 -05:00
Mike McGreevy
934d532544 [svn-r14824] Purpose: Updating HDF5 1.8 to use automake 1.10.1 and libtool 2.2
Description:     Updated bin/reconfigure script to reflect the new versions of
                 libtool and automake in the /home1/packages/ directory.

                 Rearranged configure.in script. For some reason, when using
                 libtool 2.2, the libtool script doesn't generate until
                 later in the configuration process, so I had to move
                 a test that parsed through the libtool script to a point 
                 after where it was actually being generated.

                 Ran libtoolize on the project, and ran bin/reconfigure to
                 regenerate configure and Makefile.in's throughout.

Tested:          kagiso, smirom, linew, tg-login
2008-04-10 15:52:14 -05:00
Vailin Choi
19077b27d0 [svn-r14823] Fixed a bug in CHECK_ABSOLUTE() for windows.
Fixed declaration for H5_build_extpath() to remove the warning messages.
Tested on kagiso, linew, smirom.
2008-04-09 09:56:17 -05:00
Scott Wegner
b4bae33f23 [svn-r14820] Purpose: Disable ohdr_gentst project by default on Windows.
Description:
The ohdr_gentst project exists to dynamically generate the test files for ohdr test, which also exist in the repository.  The test is only run on other platforms when the configure flag --enable-build-all is specified.  Moreover, the source code ohdr_gentst.c is marked as _DO_NO_DISTRIBUTE_ in the MANIFEST.

As a result, there was a problem in the release tarball that the Windows projects would fail when trying to build this project.  To correct this, we no longer build this by default.  We will also need to release a FAQ/patch for the HDF5 1.8.0 release.

Tested:
VS2005 on WinXP
2008-04-08 15:10:41 -05:00
Vailin Choi
a5030f853b [svn-r14810] Add fix for H5Lcreate_external() to the list of bug fixes. 2008-04-08 10:50:26 -05:00
Pedro Vicente Nunes
202a3d4a6f [svn-r14803] mention to bug fixed 2008-04-07 10:59:51 -05:00
Pedro Vicente Nunes
59f29fa02f [svn-r14802] bug fix: #1106 h5dump -b will dump ASCII values for datasets after the first one. One variable that controls the binary output was incorrectly reset to zero after a binary output was done a first time. The effect was that on cases of several datasets, the ones after the first were not binary written. Eliminated the resetting of that variable and tested a file with several datasets. Modified the test file so that it is easier to test with the tool binread, that reads the binary output of h5dump.
tested: windows, linux
2008-04-07 10:53:35 -05:00
HDF Tester
7c6a99f05c [svn-r14801] Snapshot version 1.8 release 0 (snap1) 2008-04-06 21:10:35 -05:00
Vailin Choi
bcba07c53e [svn-r14795] Use putenv() instead of setenv() in src/links.c
(sol does not support setenv())
2008-04-04 13:48:15 -05:00
Vailin Choi
cff7516ca7 [svn-r14791] Add handling for external link:
1. src/H5F.c, src/H5system.c: formulate path for mainfile
2. src/H5Lexternal.c: add search for target file
3. configure.in: add H5_HAVE_WINDOW_PATH
4. test/links.c: add tests for external link
2008-04-02 14:33:08 -05:00
Scott Wegner
d8dfc1fb3f [svn-r14769] Purpose: Remove spurious szip link directory in h5repack debug project
Description:
As pointed out by a user, we added an un-needed link directory for szip which is machine-dependent and, in his case, problematic.  We can safely remove this reference because we already include the szip link directory elsewhere.

Tested:
None, simply removed
2008-03-24 13:04:36 -05:00
HDF Tester
5a8bbe317b [svn-r14763] Snapshot version 1.8 release 0 (snap0) 2008-03-20 22:29:59 -05:00
Quincey Koziol
f331bba32c [svn-r14737] Description:
Fix bug which would incorrectly encode the member offsets for compound
datatypes whose size was between 256 & 511 bytes, when the "use the latest
format" feature was enabled.

Tested on:
    Mac OS X/32 10.5.2 (amazon) w/debug
    FreeBSD/32 6.2 (duty) w/production
2008-03-13 16:44:18 -05:00
Quincey Koziol
4982e15623 [svn-r14722] Description:
Minor bug fix to H5Aget_num_attrs() to return error when an invalid
location ID is passed in.

Tested on:
    Mac OS X/32 (amazon)
    Too minor to require h5committest
2008-03-11 17:25:46 -05:00
Vailin Choi
da9a26d9a5 [svn-r14710] Fixed the assert() failures (development mode) from Wed. daily tests:
Added 2 more parameters to H5HF_man_iblock_size() (parent iblock and parent entry)
for passing onto H5HF_iblock_man_iblock_protect().
This bug was there before but was revealed now by exercising the recursive part of the code from the new
"h5stat_newgrat.h5".
Tested on kagiso, smirom and linew with --disable-production.
-This line, and those below, will be ignored--

M    src/H5HFiblock.c
M    src/H5HFpkg.h
M    src/H5HFstat.c
2008-03-06 12:16:17 -05:00
Vailin Choi
87be7927dd [svn-r14703] 1. H5HFiblock.c: fixed problem for uninitialized "u" for bug #1072 in H5HF_man_iblock_size().
2. H5HFstat.c: Since H5HF_space_size() zeroed out fs_size, add "meta_size" to store
   free-space size before adding to "heap_size".
3. h5stat_gentest.c: increase # of groups to get "h5stat_newgrat.h5" that contains 
   indirect block entries in fractal heap.  
   This is for testing the recursive part of the code in H5HF_man_iblock_size().
4. h5stat_newgrat.h5: the new .h5 file generated by h5stat_gentest.c.
5. h5stat_newgrat.ddl: expected output from new "h5stat_newgrat.h5".

Tested on kagiso, smirom, linew.
2008-03-04 15:04:18 -05:00
Scott Wegner
c635149be5 [svn-r14696] Purpose: Backport typo fix from trunk
Description:
A small typo in the recent update to installhdf5lib.bat caused the C++ header files not to be installed for the debug version of the libraries.  This corrects the issue.

Tested:
VS2005 on WinXP
2008-03-03 14:45:13 -05:00
Quincey Koziol
19924061d1 [svn-r14692] Description:
Update release notes with recent variable-length string fix for h5diff
2008-02-28 10:06:52 -05:00
Quincey Koziol
a233b8a08d [svn-r14691] Description:
Handle comparing datasets & attributes w/variable-length strings properly.

Tested on:
    Linux/64 2.6.9 (chicago)
2008-02-28 09:53:38 -05:00
Albert Cheng
c1c885892f [svn-r14679] Removed item c++/examples/testexamples.sh. 2008-02-25 23:47:43 -05:00
Albert Cheng
ba7d08029b [svn-r14675] Purpose:
Cleanup.

testexamples.sh is not used since v1.4.1.  Removed it.
2008-02-25 16:09:07 -05:00
Scott Wegner
fd50c1ae9b [svn-r14674] Purpose: Backport Windows updates from trunk
Description:
Allow building Fortran libraries from the Windows commandline

Tested:
VS2005 on WinXP
2008-02-25 15:50:21 -05:00
Scott Wegner
acfc6ce5ba [svn-r14669] Purpose: Remove old project files and folders to bring MANIFEST up-to-date
Description:
Somehow these folders didn't get deleted in a previous checkin.  This should bring things up-to-date
2008-02-25 12:07:45 -05:00
Scott Wegner
dd7dcb5b07 [svn-r14668] Purpose: Backport of added Windows HL examples from trunk
Description:
The Windows suite of examples for HL C was a very small subset of the examples that exist for other platforms.  Now we have all of the HL C examples-- integrated into the VS projects files, and batch test scripts.
2008-02-25 11:46:02 -05:00
Scott Wegner
711f06f2ea [svn-r14604] Purpose: Backport of Windows project updates from trunk
Description:
Add hdf5 library as a dependency to hdf5_hl library in Windows project files

For some reason, the hdf5_hl library didn't have hdf5 listed as a dependency.  This isn't normally a problem, because building "all" will build hdf5 library.  However, when a user tries to build only hdf5_hl, hdf5 library wouldn't be built.

Although not technically required for compiling the library code, the hdf5 library is needed for linking any applications, so it's a natural dependency.

Tested:
VS2005 on WinXP
VNET on WinXP
2008-02-18 13:26:29 -05:00
Scott Wegner
862f7431b2 [svn-r14602] Purpose: Update Cygwin documentation with patch
Description:
Basically, remove the "hack" that we documented because we have a better fix now.  With the latest changes, configure will avoid the cygwin bug, and no neccessary steps need to be taken by the user.
2008-02-18 12:53:36 -05:00
Scott Wegner
bce180dd5c [svn-r14600] Purpose: Backport of Windows typo fix from the trunk
Description:
Purpose: Fix very minor typo in Windows h5import test script
Single-letter typo in the Windows test script was causing us to return the wrong error code in some cases.

Tested:
VS2005 on WinXP
2008-02-18 11:49:57 -05:00
Scott Wegner
728e308764 [svn-r14597] Purpose: Backport Windows cleanup checkins from trunk
Description:
Make the Windows copy_hdf.bat a little cleaner/safer, and produce useful output in installhdf5lib.bat

Previously, all of our build output would simply go to stdout/stderr for command-line builds.  We can pipe this into a log file as a whole, but the complete logfile becomes very large very quickly.  Instead, we give the user an option to place build results and test results into separate logs (or even the same).  This will help keeping track of results in our automated testing.

Tested:
VS2005 on WinXP
2008-02-18 10:48:34 -05:00
Scott Wegner
dee9447656 [svn-r14595] Purpose: Patch the latest Cygwin's incompatibility with timzezone variable
Description:
We discovered that there was a problem with the latest cygwin DLL, in that it doesn't recognize the global variable 'timezone'.  This is a problem on cygwin's side, not ours.  Instead, we avoid the problem in configure with a case statement.

We didn't get this out in time for the release, but we can offer a patch instead.

Tested:
Cygwin on WinXP
All changes are in a cygwin 'case' clause, so shouldn't affect other platforms
2008-02-18 09:05:47 -05:00
HDF Tester
50a758f887 [svn-r14591] Add version string for 1.8 branch daily tests. 2008-02-15 14:11:00 -05:00
Raymond Lu
bbe565bdaf [svn-r14586] Added more tests. Test both H5Sselect_elements and H5Sselect_hyperslab, for both chunked and
contiguous datasets.

Tested on smirom, kagiso, and linew.
2008-02-15 10:25:58 -05:00
Elena Pourmal
069b52529e [svn-r14585] Maintenance after 1.8.0 release: Created HISTORY-1_8.txt file and prepared RELEASE.txt
for future entries.
                                 Changed version number to 1.8.0-snap0
                                 Added HISTORY-1_8.txt to MANIFEST
2008-02-14 11:17:48 -05:00
Elena Pourmal
95715a553e [svn-r14566] Maintenance: Checking in files modified by the bin/release script 2008-02-12 20:45:32 -05:00
Elena Pourmal
eb6bf807d2 [svn-r14565] Maintenance: Renamed history file before creating a final HDF5 1.8.0 release tar ball. 2008-02-12 20:39:54 -05:00
Elena Pourmal
43f78b295c [svn-r14563] Maintenance: Checking in files updated by bin/release script before tagging the release 2008-02-12 18:14:19 -05:00
Elena Pourmal
56ea611bfa [svn-r14562] Maintenance: Added compilers information for the VMS system
Updated release date in the INSTALL_VMS.txt file
2008-02-12 18:09:28 -05:00
Albert Cheng
ae18c5f41c [svn-r14556] Purpose:
Update.

What is done:
Moved the following three paragraphs to the Appendix part since they have old
information that are not relevant most recent machines or compilers.
    "Large (>2GB) versus small (<2GB) file capability", 
    "Building and testing with Intel compilers"
    "Building and testing with PGI compilers"

Tested:
eyeballed.
2008-02-12 13:06:59 -05:00
Frank Baker
8449affc4a [svn-r14555] Description:
Added note regarding removal of the stream VFD.
2008-02-12 12:44:53 -05:00
Frank Baker
4bc4e5417e [svn-r14554] Description:
Quick editorial review.
    Convert tabs to spaces for consistent display and printing.
    Verify and fix links and references.
2008-02-12 11:35:41 -05:00
Albert Cheng
62ff7f238d [svn-r14552] Purpose:
Updated section 4 for v1.8 release.
(May still check the v1.6 INSTALL to see if something can be adopted from
there.  But this is good for v1.8 release.)

Tested:
Just eyeballed.
2008-02-12 10:05:31 -05:00
Frank Baker
0174dfec78 [svn-r14550] Description:
Editorial review.
    Verify and fix links and references.
2008-02-11 15:32:49 -05:00
Albert Cheng
a1613da80e [svn-r14548] Purpose:
Updated for v1.8 release. (Not completed yet.)

Changes:
Moved the section 2. "Warnings about compilers" to Appendix A; renumbered
section 3-7 to section 2-6 and fixed all section references.

Updated Website names from ncsa.uiuc.edu to hdfgroup.org or hdfgroup.uiuc.edu.

Updated section 1-3 and some of section 4.

Tested:
Eyeball.
2008-02-11 14:38:17 -05:00
Albert Cheng
4f0e4f389a [svn-r14540] Purpose: update
Updated the parallel test suite section with more parallel tests description
to prepare for v1.8.0 release.

Test: eyeballed.
2008-02-08 19:01:07 -05:00
Elena Pourmal
a429d0c4b3 [svn-r14528] Maintenance: Made a first attempt to clean up the file for the 1.8.0 release. 2008-02-06 21:48:19 -05:00
Elena Pourmal
5fb8eefacd [svn-r14527] Maintenance: Added summary written by Frank to the RELEASE.txt file 2008-02-06 21:42:22 -05:00
1695 changed files with 208127 additions and 219641 deletions

28
COPYING
View File

@@ -4,18 +4,13 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities
-----------------------------------------------------------------------------
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 2006-2008 by The HDF Group (THG).
Copyright 2006-2009 by The HDF Group.
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 1998-2006 by the Board of Trustees of the University of Illinois.
All rights reserved.
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Fortner Software, Unidata Program Center (netCDF),
The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip),
and Digital Equipment Corporation (DEC).
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial purposes)
provided that the following conditions are met:
@@ -39,17 +34,26 @@ provided that the following conditions are met:
5. Neither the name of The HDF Group, the name of the University, nor the
name of any Contributor may be used to endorse or promote products derived
from this software without specific prior written permission from the
University, THG, or the Contributor, respectively.
from this software without specific prior written permission from
The HDF Group, the University, or the Contributor, respectively.
DISCLAIMER:
THIS SOFTWARE IS PROVIDED BY THE HDF GROUP (THG) AND THE CONTRIBUTORS
THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS
"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no
event shall THG or the Contributors be liable for any damages suffered by
the users arising out of the use of this software, even if advised of the
possibility of such damage.
event shall The HDF Group or the Contributors be liable for any damages
suffered by the users arising out of the use of this software, even if
advised of the possibility of such damage.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Fortner Software, Unidata Program Center (netCDF),
The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip),
and Digital Equipment Corporation (DEC).
-----------------------------------------------------------------------------
Portions of HDF5 were developed with support from the University of
California, Lawrence Livermore National Laboratory (UC LLNL).
The following statement applies to those portions of the product and must

653
MANIFEST

File diff suppressed because it is too large Load Diff

View File

@@ -73,12 +73,15 @@ else
endif
SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
$(HDF5_HL_DIR)
$(HDF5_HL_DIR) perform
DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
# Some files generated during configure that should be cleaned
DISTCLEANFILES=config/stamp1 config/stamp2
# Some files/directories generated during check that should be cleaned
CHECK_CLEANFILES+=*-tmp
# Define rules for lib, progs, check, and tests.
# These simply involve recursing into subdirectories.
test _test: check
@@ -113,6 +116,7 @@ check-clean:
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
$(RM) -rf prefix-tmp destdir-tmp
# Some C++ compilers/linkers will create a directory named ii_files in
# the root directory, which should be cleaned.
@@ -150,6 +154,23 @@ installcheck-local:
# check-install is just a synonym for installcheck
check-install: installcheck
# check-all-install tests all installation methods.
# Install via different mechanism and then compare against the default.
# Fine if only libXXX.a files are different since they may have been ranlib'ed.
check-all-install:
@echo Installing to default location
$(MAKE) install
@echo Installing to different prefix location
$(MAKE) prefix=${ROOT}/prefix-tmp install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r prefix-tmp ${prefix}
@echo Installing to different $$\DESTDIR location
env DESTDIR=${ROOT}/destdir-tmp $(MAKE) install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r destdir-tmp${prefix} ${prefix}
# Only source files in the src directory include tracing information,
# so 'make trace' only needs to recurse into that directory.
trace:

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in 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.
@@ -48,8 +49,9 @@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -79,6 +81,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -90,15 +93,43 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
@@ -106,6 +137,16 @@ distcleancheck_listfiles = find . -type f -print
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -119,46 +160,47 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -167,11 +209,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -179,11 +224,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LINUX_LFS = @LINUX_LFS@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -192,13 +242,19 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
@@ -211,22 +267,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -235,13 +290,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -257,8 +313,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -266,15 +326,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -287,6 +346,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -330,7 +390,9 @@ TRACE = perl $(top_srcdir)/bin/trace
# .chkexe files are used to mark tests that have run successfully.
# .chklog files are output from those tests.
# *.clog are from the MPE option.
CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Some files/directories generated during check that should be cleaned
CHECK_CLEANFILES = *.chkexe *.chklog *.clog *-tmp
@BUILD_PARALLEL_CONDITIONAL_FALSE@TESTPARALLEL_DIR =
# Define subdirectories to build.
@@ -351,7 +413,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
@BUILD_HDF5_HL_CONDITIONAL_FALSE@HDF5_HL_DIR =
@BUILD_HDF5_HL_CONDITIONAL_TRUE@HDF5_HL_DIR = hl
SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
$(HDF5_HL_DIR)
$(HDF5_HL_DIR) perform
DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
@@ -366,15 +428,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -387,9 +449,10 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
esac;
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
@@ -398,7 +461,7 @@ clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
-rm -f libtool config.lt
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -424,7 +487,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -458,16 +521,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -475,14 +538,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -494,46 +557,50 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -549,38 +616,54 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
@@ -589,6 +672,14 @@ dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
@@ -615,6 +706,10 @@ distcheck: dist
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
@@ -626,9 +721,11 @@ distcheck: dist
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
@@ -650,13 +747,15 @@ distcheck: dist
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
@@ -698,6 +797,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -719,6 +819,8 @@ dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
@@ -727,18 +829,28 @@ install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-exec-local
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am: installcheck-local
maintainer-clean: maintainer-clean-recursive
@@ -762,22 +874,22 @@ ps-am:
uninstall-am: uninstall-local
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
install-strip
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-local am--refresh check check-am clean \
clean-generic clean-libtool ctags ctags-recursive dist \
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
distcheck distclean distclean-generic distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-exec-local install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installcheck-local \
installdirs installdirs-am maintainer-clean \
dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-generic \
distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-exec-local \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installcheck-local installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am uninstall-local
@@ -828,6 +940,7 @@ check-clean:
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
$(RM) -rf prefix-tmp destdir-tmp
# Some C++ compilers/linkers will create a directory named ii_files in
# the root directory, which should be cleaned.
@@ -865,6 +978,23 @@ installcheck-local:
# check-install is just a synonym for installcheck
check-install: installcheck
# check-all-install tests all installation methods.
# Install via different mechanism and then compare against the default.
# Fine if only libXXX.a files are different since they may have been ranlib'ed.
check-all-install:
@echo Installing to default location
$(MAKE) install
@echo Installing to different prefix location
$(MAKE) prefix=${ROOT}/prefix-tmp install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r prefix-tmp ${prefix}
@echo Installing to different $$\DESTDIR location
env DESTDIR=${ROOT}/destdir-tmp $(MAKE) install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r destdir-tmp${prefix} ${prefix}
# Only source files in the src directory include tracing information,
# so 'make trace' only needs to recurse into that directory.
trace:
@@ -890,6 +1020,7 @@ $(top_builddir)/config.status:
# Don't include conclude.am in root Makefile; tests target needs to
# recurse into perform directory as well as reguar subdirs.
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -1,39 +1,40 @@
HDF5 version 1.8.0 currently under development
HDF5 version 1.8.4 released on Tue Nov 10 15:18:57 CST 2009
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------
This release is almost fully functional for the entire API defined in the
documentation, see the RELEASE.txt file in the release_docs directory for information
specific to this release of the library. The INSTALL file contains
instructions on compiling and installing the library. The INSTALL_parallel
file contains instructions on installing the parallel version of the
library. The INSTALL* files can be found in the release_docs/ directory.
This release is fully functional for the API described in the documentation.
See the RELEASE.txt file in the release_docs/ directory for information
specific to this release of the library. Several INSTALL* files can also be
found in the release_docs/ directory: INSTALL contains instructions for
compiling and installing the library; INSTALL_parallel contains instructions
for installing the parallel version of the library; similarly-named files
contain instructions for VMS and several environments on MS Windows systems.
Documentation for this release can be found at the following URL:
http://www.hdfgroup.uiuc.edu/HDF5/release/beta/obtain518.html
http://www.hdfgroup.org/HDF5/doc/.
Four mailing lists are currently set up for use with the HDF5
library.
The following mailing lists are currently set up for HDF5 Library users:
news - For announcements of HDF5 related developments,
not a discussion list.
news - For announcements of HDF5 related developments,
not a discussion list.
hdf-forum - For general discussion of the HDF5 library with
other users.
hdf-forum - For general discussion of the HDF5 library with
other users.
hdf5dev - For discussion of the HDF5 library development
with developers and other interested parties.
hdf5dev - For discussion of the HDF5 library development
with developers and other interested parties.
To subscribe to a list, send mail to "<list>-subscribe@hdfgroup.org".
where <list> is the name of the list.
E.g., mail hdf5-subscribe@hdfgroup.org
where <list> is the name of the list. For example, send a request
to subscribe to the 'news' mail list to the following address:
news-subscribe@hdfgroup.org
Messages to be sent to the list should be sent to "<list>@hdfgroup.org".
Messages sent to the list should be addressed to "<list>@hdfgroup.org".
Periodic code snapshots are provided at the following URL:
ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/hdf5/snapshots
Please read the README.txt file in that directory before working with a library
snapshot.
Please read the README.txt file in that directory before working with a
library snapshot.
The HDF5 website is located at http://hdfgroup.org/HDF5/

9409
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
Copyright by The HDF Group (THG) and
Copyright by The HDF Group and
The Board of Trustees of the University of Illinois.
All rights reserved.

View File

@@ -23,7 +23,7 @@
# variable initialization
nerrors=0
AUTOCONFVERSION=2.61
AUTOCONFVERSION=2.64
AUTOCONFVERSIONLEAD='Generated by GNU Autoconf'
CONFIGUREFILES="configure"

View File

@@ -107,6 +107,21 @@ else
fi
fi
# Check for duplicate entries. This can be done at any time, but it may as
# well be sooner so that if something else fails the presence of duplicates
# will already be known.
errcode=0
DUPLICATES=`perl -ne 's/#.*//; next if /^\s*$/; if ($uniq{$_}++) { print $_; }' MANIFEST`
if [ "$DUPLICATES" ]; then
cat 1>&2 <<EOF
These entries appear more than once in the MANIFEST:
$DUPLICATES
Please remove the duplicate lines and try again.
EOF
errcode=1
fi
# Copy the manifest file to get a list of file names.
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
@@ -117,6 +132,7 @@ for file in `cat $MANIFEST`; do
fi
done
# Inspect the .svn/entries to figure out what version of svn file entry is
# used.
# The following algorithm is formed via reverse engineering.
@@ -130,7 +146,7 @@ if head -1 $svn_entry_file | grep 'xml version="1.0"' > /dev/null 2>&1;then
elif grep '^file$' $svn_entry_file > /dev/null 2>&1; then
getsvnentries=GETSVNENTRIES_14
else
echo "Unknow svn entries format. Aborted"
echo "Unknown svn entries format. Aborted"
exit 1
fi
@@ -155,5 +171,9 @@ EOF
exit 1
fi
if [ $errcode -ne 0 ]; then
exit 1
fi
test "$verbose" && echo " The MANIFEST is up to date." 1>&2
exit 0

View File

@@ -17,36 +17,37 @@
# Configures, builds, and runs tests in-place; the output files will be placed
# in a directory called gcov_logs.
# Must be invoked from the root hdf5 directory.
# This script has only been tested on heping.
# This script has been tested on kagiso.
CFLAGS="$CFLAGS -ftest-coverage -fprofile-arcs"
export CFLAGS
./configure --enable-debug=all
LDFLAGS="$LDFLAGS -lgcov"
export LDFLAGS
CC=gcc
export CC
./configure
make
make check
mkdir gcov_logs
cd src
for j in *.c
for j in *.h *.c
do
ln -s ../$j .libs/$j
done
cd .libs
for j in *.gcda
do
gcov -b $j >> gcov.log 2>&1
done
for j in *.gcov
do
mv $j ../../gcov_logs
done
mv gcov.log ../../gcov_logs
for j in *.c *.h
do
mv $j ../gcov_logs
rm $j
done
mv gcov.log ../gcov_logs
cd ..
cd ../..

View File

@@ -73,6 +73,8 @@ use strict;
# something like: This is hdf5-1.2.3-pre1 currently under development.
# The AC_INIT macro in configure.in will also change in this case to be
# something like: AC_INIT([HDF5], [hdf5-1.2.3-pre1], [help@hdfgroup.org])
# Version changes are also reflected in the Windows-maintained H5pubconf.h
# file.
#
# Whenever the version changes, this script will increment the revision
# field in HDF5's libtool shared library version in config/lt_vers.am,
@@ -157,9 +159,11 @@ while ($_ = shift) {
die "mutually exclusive options given\n" if $set && $inc;
# Determine file to use as H5public.h, README.txt,
# release_docs/RELEASE.txt, configure.in, and config/lt_vers.am. The
# README.txt, release_docs/RELEASE.txt, configure.in, and
# config/lt_vers.am files are always in the directory above H5public.h
# release_docs/RELEASE.txt, configure.in, windows/src/H5pubconf.h,
# vms/src/h5pubconf.h and config/lt_vers.am.
# The README.txt, release_docs/RELEASE.txt, configure.in,
# vms/src/h5pubconf.h, windows/src/H5pubconf.h, and config/lt_vers.am
# files are always in the directory above H5public.h
unless ($file) {
for (@files) {
($file=$_,last) if -f $_;
@@ -183,6 +187,14 @@ die "unable to read file: $RELEASE\n" unless -r $file;
my $CONFIGURE = $file;
$CONFIGURE =~ s/[^\/]*$/..\/configure.in/;
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/;
die "unable to read file: $H5VMSPUBCONF\n" unless -r $file;
# Get the current version number.
open FILE, $file or die "unable to open $file: $!\n";
@@ -230,6 +242,8 @@ if ($set) {
$README = "";
$RELEASE = "";
$CONFIGURE = "";
$H5PUBCONF = "";
$H5VMSPUBCONF = "";
$LT_VERS = "";
@newver = @curver;
}
@@ -341,6 +355,49 @@ sub gen_configure {
# Update the configure.in files and regenerate them
gen_configure("HDF5", $CONFIGURE) if $CONFIGURE;
sub gen_h5pubconf {
my ($name, $pubconf, @vers) = @_;
my $namelc = lc($name);
my $nameuc = uc($name);
open FILE, $pubconf or die "$pubconf: $!\n";
my @contents = <FILE>;
close FILE;
for (my $i = 0; $i < $#contents; ++$i) {
if ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE\s+/) {
$contents[$i] = "\#define H5_PACKAGE \"$namelc\"\n";
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_NAME\s+/) {
$contents[$i] = "\#define H5_PACKAGE_NAME \"$nameuc\"\n";
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_STRING\s+/) {
$contents[$i] = sprintf("\#define H5_PACKAGE_STRING \"$nameuc %d.%d.%d%s\"\n",
@vers[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_TARNAME\s+/) {
$contents[$i] = "\#define H5_PACKAGE_TARNAME \"$namelc\"\n";
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_VERSION\s+/) {
$contents[$i] = sprintf("\#define H5_PACKAGE_VERSION \"%d.%d.%d%s\"\n",
@vers[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
} elsif ($contents[$i] =~ /\#\s*define\s+H5_VERSION\s+/) {
$contents[$i] = sprintf("\#define H5_VERSION \"%d.%d.%d%s\"\n",
@vers[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
}
}
open FILE, ">$pubconf" or die "$pubconf: $!\n";
print FILE @contents;
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;
# Print the new version number
if ($verbose) {
printf("version %d.%d release %d%s\n", @newver[0,1,2],

View File

@@ -1,251 +1,520 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright 1991 by the Massachusetts Institute of Technology
# Copyright (C) 1994 X Consortium
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
# put in absolute paths if you don't have them in your path; or use env. vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
stripcmd=
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
src=
dst=
dir_arg=
dst_arg=
-d) dir_arg=true
shift
continue;;
copy_on_change=false
no_target_directory=
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
Options:
--help display this help and exit.
--version display version info and exit.
-s) stripcmd="$stripprog"
shift
continue;;
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
while test $# -ne 0; do
case $1 in
-c) ;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
else
true
fi
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
test -d "$dstdir"
dstdir_status=$?
fi
fi
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
obsolete_mkdir_used=false
if [ -f $src -o -d $src ]
then
true
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
mkdir_mode=
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if [ -d $dst ]
then
dst="$dst"/`basename $src`
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
-*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
true
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
fi
prefix=$prefix/
done
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
pathcomp=''
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
pathcomp="${pathcomp}/"
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

File diff suppressed because it is too large Load Diff

View File

@@ -239,7 +239,7 @@ sub create_init ($) {
print HEADER " "x(0*$indent),"assert(${name}_g==(-1));\n";
print HEADER " "x(0*$indent),"if((msg = H5E_create_msg(cls, H5E_MAJOR, \"${major{$name}}\"))==NULL)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTINIT, FAIL, \"error message initialization failed\")\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg))<0)\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, \"can't register error message\")\n";
}
@@ -255,7 +255,7 @@ sub create_init ($) {
print HEADER " "x(0*$indent),"assert(${name}_g==(-1));\n";
print HEADER " "x(0*$indent),"if((msg = H5E_create_msg(cls, H5E_MINOR, \"${minor{$name}}\"))==NULL)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTINIT, FAIL, \"error message initialization failed\")\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg))<0)\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, \"can't register error message\")\n";
}
}

219
bin/make_overflow Executable file
View File

@@ -0,0 +1,219 @@
#!/usr/bin/perl -w
require 5.003;
use strict;
# Global settings
# List of supported C types to generate overflow assignment code for
my @ctypes = ( () );
#
# 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.
#
# Create assignment overflow #ifdefs
#
# Programmer: Quincey Koziol
# Creation Date: 2009/04/09
##############################################################################
# Parse a meaningful line (not a comment or blank line) into the appropriate
# data structure
#
sub parse_line ($) {
my $line = shift; # Get the line to parse
# Parse get the type name and whether it's signed or unsigned
#print "line=$line\n";
if($line =~ /.*SIGNED\s*;\s*$/ || $line =~ /.*UNSIGNED\s*;\s*$/) {
my $name; # The name of the type
my $signed; # Whether the type is signed or not
# Get the type's name & signed status
($name, $signed) = ($line =~ /^\s*(\w*)\s*,\s*(\w*)\s*;\s*$/);
#print "name = '$name', signed = '$signed'\n";
# Append the type to the list of C types already parsed
push @ctypes, [$name, $signed];
}
# Unknown keyword
else {
die "unknown keyword: $line";
}
}
##############################################################################
# Print the copyright into an open file
#
sub print_copyright ($) {
my $fh = shift;
print $fh "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n";
print $fh " * Copyright by The HDF Group. *\n";
print $fh " * Copyright by the Board of Trustees of the University of Illinois. *\n";
print $fh " * All rights reserved. *\n";
print $fh " * *\n";
print $fh " * This file is part of HDF5. The full HDF5 copyright notice, including *\n";
print $fh " * terms governing use, modification, and redistribution, is contained in *\n";
print $fh " * the files COPYING and Copyright.html. COPYING can be found at the root *\n";
print $fh " * of the source code distribution tree; Copyright.html can be found at the *\n";
print $fh " * root level of an installed copy of the electronic HDF5 document set and *\n";
print $fh " * is linked from the top-level documents page. It can also be found at *\n";
print $fh " * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *\n";
print $fh " * access to either file, you may request a copy from help\@hdfgroup.org. *\n";
print $fh " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n";
}
##############################################################################
# Print the "do not change this file" warning
#
sub print_warning ($) {
my $fh = shift;
print $fh "\n/* Generated automatically by bin/make_overflow -- do not edit */\n";
print $fh "/* Add new types to H5overflow.txt file */\n\n";
}
##############################################################################
# Print start of ifdef's to prevent a file from being re-included
#
sub print_startprotect ($$) {
my ($fh, $file) = @_;
# Clip off the ".h" part of the name
$file =~ s/(\w*)\.h/$1/;
# Print the ifdef info
print $fh "\n#ifndef _${file}_H\n";
print $fh "#define _${file}_H\n";
}
##############################################################################
# Print assignment overflow macros for each type
#
sub print_typemacros ($) {
my $fh = shift; # File handle for output file
my ($src_aref, $dst_aref); # References for each type's information
# Print the descriptive comment
print $fh "\n\n/* Each type in this file is tested for assignment to the other types,\n";
print $fh " * and range checks are defined for bad assignments at run-time.\n";
print $fh " */\n";
for $src_aref (@ctypes) {
# Print a descriptive comment
print $fh "\n/* Assignment checks for @$src_aref[0] */\n\n";
for $dst_aref (@ctypes) {
if (@$src_aref[0] ne @$dst_aref[0]) {
# Print a descriptive comment
print $fh "/* src: @$src_aref[0], dst: @$dst_aref[0] */\n";
# Print actual type size checks & macro definitions
print $fh "#if H5_SIZEOF_", uc @$src_aref[0], " < H5_SIZEOF_", uc @$dst_aref[0], "\n";
print $fh " #define ASSIGN_", @$src_aref[0], "_TO_", @$dst_aref[0], "(dst, dsttype, src, srctype) \\\n";
if ( @$src_aref[1] eq @$dst_aref[1]) {
print $fh " ASSIGN_TO_LARGER_SIZE_SAME_SIGNED(dst, dsttype, src, srctype)\n";
} elsif ( @$src_aref[1] eq "SIGNED") {
print $fh " ASSIGN_TO_LARGER_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype)\n";
} else {
print $fh " ASSIGN_TO_LARGER_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype)\n";
}
print $fh "#elif H5_SIZEOF_", uc @$src_aref[0], " > H5_SIZEOF_", uc @$dst_aref[0], "\n";
print $fh " #define ASSIGN_", @$src_aref[0], "_TO_", @$dst_aref[0], "(dst, dsttype, src, srctype) \\\n";
print $fh " ASSIGN_TO_SMALLER_SIZE(dst, dsttype, src, srctype)\n";
print $fh "#else /* H5_SIZEOF_", uc @$src_aref[0], " == H5_SIZEOF_", uc @$dst_aref[0], " */\n";
print $fh " #define ASSIGN_", @$src_aref[0], "_TO_", @$dst_aref[0], "(dst, dsttype, src, srctype) \\\n";
if ( @$src_aref[1] eq @$dst_aref[1]) {
print $fh " ASSIGN_TO_SAME_SIZE_SAME_SIGNED(dst, dsttype, src, srctype)\n";
} elsif ( @$src_aref[1] eq "SIGNED") {
print $fh " ASSIGN_TO_SAME_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype)\n";
} else {
print $fh " ASSIGN_TO_SAME_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype)\n";
}
print $fh "#endif /* src: @$src_aref[0] dst: @$dst_aref[0] */\n\n";
}
}
}
}
##############################################################################
# Print end of ifdef's to prevent a file from being re-included
#
sub print_endprotect ($$) {
my ($fh, $file) = @_;
# Clip off the ".h" part of the name
$file =~ s/(\w*)\.h/$1/;
# Print the endif info
print $fh "#endif /* ${file}_H */\n\n";
}
##############################################################################
# Create the generated portion of the public header file
#
sub create_public ($) {
my $prefix = shift; # Get the prefix for the generated file
my $file = "H5overflow.h"; # Name of file to generate
my $name; # Name of function
# Rename previous file
# rename "${prefix}${file}", "${prefix}${file}~" or die "unable to make backup";
# Open new header file
open HEADER, ">${prefix}${file}" or die "unable to modify source";
# Create file contents
print_copyright(*HEADER);
print_warning(*HEADER);
print_startprotect(*HEADER, $file);
print_typemacros(*HEADER);
print_endprotect(*HEADER, $file);
# Close header file
close HEADER;
}
##############################################################################
# Read symbol version file (given as command-line argument) in and process it
# into internal data structures, then create header files.
#
my $file; # Filename of input file
for $file (@ARGV) {
my $prefix; # Local prefix for generated files
my $line; # Line from input file
#print "file = '$file'\n";
($prefix) = ($file =~ /(^.*\/)/);
#print "prefix = '$prefix'\n";
# Read in the entire file
open SOURCE, $file or die "$file: $!\n";
while ( defined ($line=<SOURCE>) ) {
# Skip blank lines and those lines whose first character is a '#'
if(!($line =~ /(^\s*#.*$)|(^\s*$)/)) {
# Construct data structures for later printing
parse_line($line);
}
}
close SOURCE;
# Create header files
print "Generating 'H5overflow.h'\n";
create_public($prefix);
}

View File

@@ -106,6 +106,15 @@ sub print_globalapivers ($) {
print $fh " * API symbol, the individual API version macro takes priority.\n";
print $fh " */\n";
for $curr_idx ($min_sup_idx .. ($max_idx - 1)) {
# Print API version ifdef
print $fh "#if defined(H5_USE_1", ($curr_idx * 2), "_API_DEFAULT) && !defined(H5_USE_1", ($curr_idx * 2), "_API)\n";
# Print API version definition
print $fh "#define H5_USE_1", ($curr_idx * 2), "_API 1\n";
# Print API version endif
print $fh "#endif /* H5_USE_1", ($curr_idx * 2), "_API_DEFAULT && !H5_USE_1", ($curr_idx * 2), "_API */\n\n";
}
# Loop over supported older library APIs and define the appropriate macros
for $curr_idx ($min_sup_idx .. ($max_idx - 1)) {
# Print API version ifdef

View File

@@ -28,11 +28,11 @@
# of versions that can get confused (not even counting the m4 utility)!
# HDF5 currently uses the following versions of the autotools:
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.61"
AUTOMAKE_VERSION="automake (GNU automake) 1.10"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.61"
ACLOCAL_VERSION="aclocal (GNU automake) 1.10"
LIBTOOL_VERSION="(GNU libtool) 1.5.22"
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.64"
AUTOMAKE_VERSION="automake (GNU automake) 1.11"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.64"
ACLOCAL_VERSION="aclocal (GNU automake) 1.11"
LIBTOOL_VERSION="(GNU libtool) 2.2.6"
#
# When upgrading automake's version, don't forget to also update its
# helper utilities, especially depcomp.
@@ -41,19 +41,19 @@ LIBTOOL_VERSION="(GNU libtool) 1.5.22"
# If paths to autotools are not specified by the user, assume tools are
# running on kagiso and set paths accordingly.
if test -z ${AUTOCONF}; then
AUTOCONF=/home1/packages/autoconf/autoconf-2.61/bin/autoconf
AUTOCONF=/mnt/hdf/packages/autoconf/autoconf-2.64/bin/autoconf
fi
if test -z ${AUTOMAKE}; then
AUTOMAKE=/home1/packages/automake/automake-1.10.0/bin/automake-1.10
AUTOMAKE=/mnt/hdf/packages/automake/automake-1.11/bin/automake-1.11
fi
if test -z ${AUTOHEADER}; then
AUTOHEADER=/home1/packages/autoconf/autoconf-2.61/bin/autoheader
AUTOHEADER=/mnt/hdf/packages/autoconf/autoconf-2.64/bin/autoheader
fi
if test -z ${ACLOCAL}; then
ACLOCAL=/home1/packages/automake/automake-1.10.0/bin/aclocal-1.10
ACLOCAL=/mnt/hdf/packages/automake/automake-1.11/bin/aclocal-1.11
fi
if test -z ${LIBTOOL}; then
LIBTOOL=/home1/packages/libtool/libtool-1.5.22/bin/libtool
LIBTOOL=/mnt/hdf/packages/libtool/libtool-2.2.6a/bin/libtool
fi
# Check version numbers of all autotools against the "correct" versions
@@ -84,7 +84,7 @@ if test -z "${LT_VERS}"; then
fi
# Use the latest version of M4
PATH=/home1/packages/m4/m4-1.4.7/bin:/home1/packages/m4/m4-1.4.7/share:$PATH
PATH=/mnt/hdf/packages/m4/m4-1.4.7/bin:/mnt/hdf/packages/m4/m4-1.4.7/share:$PATH
# Make sure that the tools are in the path.
AUTOCONF_DIR=`dirname ${AUTOCONF}`

View File

@@ -14,42 +14,10 @@
# access to either file, you may request a copy from help@hdfgroup.org.
#
# Make a release of hdf5. The command-line switches are:
# Make a release of hdf5.
#
# -d DIR The name of the directory where the releas(es) should be
# placed. By default, the directory is ./releases
#
# --nocheck Ignore errors in MANIFEST file.
#
# --private Make a private release with today's date in version information.
#
# The other command-line options are the names of the programs to use
# for compressing the resulting tar archive (if none are given then
# `tar md5' is assumed):
#
# tar -- use tar and don't do any compressing.
# compress -- use compress and append `.Z' to the output name.
# gzip -- use gzip with `-9' and append `.gz' to the output name.
# bzip2 -- use bzip2 with `-9' and append `.bz2' to the output name.
# md5 -- produce a md5 checksum in addition to the archive.
# doc -- produce the latest doc tree in addition to the archive.
#
# Examples:
#
# $ release
# releases/hdf5-1.0.38.tar
# releases/hdf5-1.0.38.tar.md5
#
# $ release gzip
# releases/hdf5-1.0.38.tar.gz
#
# $ release -d /tmp tar compress gzip bzip2 md5 doc
# /tmp/hdf5-1.0.38.tar
# /tmp/hdf5-1.0.38.tar.Z
# /tmp/hdf5-1.0.38.tar.gz
# /tmp/hdf5-1.0.38.tar.bz2
# /tmp/hdf5-1.0.38.tar.md5
# /tmp/hdf5-1.0.38_doc.tar
# Programmer: Robb Matzke
# Creation date: on or before 1998-01-29.
#
# Modifications
# Robb Matzke, 1999-07-16
@@ -59,6 +27,12 @@
# Albert Cheng, 1999-10-26
# Moved the MANIFEST checking to a separate command file so that
# it can be invoked individually.
#
# Albert Cheng, 2004-08-14
# Added the --private option.
#
# James Laird, 2005-09-07
# Added the md5 method.
# Function definitions
#
@@ -70,6 +44,10 @@ Usage: $0 [--nocheck] [-d <dir>] [-h] <methods> ...
-d DIR The name of the directory where the releas(es) should be
placed. By default, the directory is ./releases
--docver BRANCHNAME This is added for 1.8 and beyond to get the correct
version of documentation files from the hdf5docs
repository. BRANCHNAME for v1.8 should be hdf5_1_8.
--nocheck Ignore errors in MANIFEST file.
--private Make a private release with today's date in version information.
@@ -157,6 +135,10 @@ while [ -n "$1" ]; do
--private)
pmode=yes
;;
--docver)
DOCVERSION=$1
shift
;;
-*)
echo "Unknown switch: $arg" 1>&2
USAGE
@@ -222,18 +204,25 @@ grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_ >$MANIFEST
# Prepare the source tree for a release.
ln -s `pwd` $tmpdir/$HDF5_VERS || exit 1
mv Makefile $tmpdir/Makefile.x 2>/dev/null #might fail
# Save a backup copy of Makefile if exists.
test -f Makefile && mv Makefile $tmpdir/Makefile.x
cp -p Makefile.dist Makefile
# Update README.txt and release_docs/RELEASE.txt with release information.
# Update README.txt and release_docs/RELEASE.txt with release information in
# line 1.
for f in README.txt release_docs/RELEASE.txt; do
echo "HDF5 version $VERS released on `date`" >$f.x
tail +2l $f >>$f.x
sed -e 1d $f >>$f.x
mv $f.x $f
# Make sure new files are of the right access mode
chmod 644 $f
done
# trunk is different than branches.
if [ "${DOCVERSION}" ]; then
DOC_URL=http://svn.hdfgroup.uiuc.edu/hdf5doc/branches/${DOCVERSION}
fi
# Create the tar file
test "$verbose" && echo " Running tar..." 1>&2
( \
@@ -265,16 +254,19 @@ for comp in $methods; do
(cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5
;;
doc)
if [ "${DOCVERSION}" = "" ]; then
DOCVERSION=trunk
fi
test "$verbose" && echo " Creating docs..." 1>&2
# Check out docs from svn repo
(cd $tmpdir; svn co $DOC_URL > /dev/null) || exit 1
# Create doxygen C++ RM
(cd c++/src && doxygen cpp_doc_config > /dev/null ) || exit 1
# Replace version of C++ RM with just-created version
rm -rf $tmpdir/trunk/html/$CPPLUS_RM_NAME
mv c++/src/$CPPLUS_RM_NAME $tmpdir/trunk/html/$CPPLUS_RM_NAME
# Compress the docs and move them to the release area
mv $tmpdir/trunk $tmpdir/${HDF5_VERS}_docs
rm -rf $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME
mv c++/src/$CPPLUS_RM_NAME $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME
# Compress the docs and move them to the release area
mv $tmpdir/$DOCVERSION $tmpdir/${HDF5_VERS}_docs
(cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs)
mv $tmpdir/${HDF5_VERS}_docs.tar $DEST
;;
@@ -284,7 +276,8 @@ done
# Copy the RELEASE.txt to the release area.
cp release_docs/RELEASE.txt $DEST/$HDF5_VERS-RELEASE.txt
# Restore previous Makefile if existed.
# Remove distributed Makefile and restore previous Makefile if existed.
rm -f Makefile
test -f $tmpdir/Makefile.x && mv $tmpdir/Makefile.x Makefile
# Restore OLD version information, then no need for trap.

View File

@@ -412,7 +412,7 @@ if [ "$cmd" = "all" -o -n "$cmdtest" -o -n "$cmddiff" ]; then
TIMESTAMP "check-install" && \
${MAKE} check-install && DISKUSAGE \
TIMESTAMP "uninstall" && \
${MAKE} uninstall-all) && DISKUSAGE ; then
${MAKE} uninstall-all && DISKUSAGE); then
:
else
errcode=$?

View File

@@ -18,4 +18,6 @@
# latest revision of that branch. If set to "hdf5", it uses the main
# version.
# H5VER tells runtest which version to run
H5VERSION=hdf5
H5VERSION=hdf5_1_8
H5VER="-r1.8"

View File

@@ -104,7 +104,9 @@ $Source = "";
"H5FD_stream_fapl_t" => "x",
"H5G_iterate_t" => "x",
"H5G_info_t" => "x",
"H5I_free_t" => "x",
"H5L_class_t" => "x",
"H5L_elink_traverse_t" => "x",
"H5L_iterate_t" => "x",
"H5MM_allocate_t" => "x",
"H5MM_free_t" => "x",

View File

@@ -1,5 +1,5 @@
Copyright by The HDF Group (THG) and
Copyright by The HDF Group and
The Board of Trustees of the University of Illinois.
All rights reserved.

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in 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.
@@ -32,8 +33,9 @@
#
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -60,6 +62,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -71,12 +74,52 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -90,46 +133,47 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -138,11 +182,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -150,11 +197,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LINUX_LFS = @LINUX_LFS@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -163,13 +215,19 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
@@ -182,22 +240,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -206,13 +263,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -228,8 +286,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -237,15 +299,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -258,6 +319,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -327,14 +389,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -352,6 +414,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
@@ -383,7 +446,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -417,16 +480,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -434,14 +497,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -453,39 +516,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -506,29 +573,44 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -559,6 +641,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -577,6 +660,8 @@ dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
@@ -585,18 +670,28 @@ install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am: installcheck-local
maintainer-clean: maintainer-clean-recursive
@@ -618,8 +713,8 @@ ps-am:
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
install-strip
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
ctags-recursive install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-local check check-TESTS check-am clean \
@@ -752,10 +847,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -791,10 +886,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \
@@ -858,6 +953,7 @@ check-vfd: $(LIB) $(PROGS) $(TESTS)
HDF5_DRIVER=$$vfd $(MAKE) $(AM_MAKEFLAGS) check || exit 1; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -35,7 +35,7 @@ readdata.chkexe_: create.chkexe_
chunks.chkexe_: extend_ds.chkexe_
# Tell conclude.am that these are C++ tests.
HDF_CXX=yes
CXX_API=yes
# Where to install examples
EXAMPLEDIR=$(docdir)/hdf5/examples/c++

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in 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.
@@ -36,8 +37,9 @@
# This creates some extra work for us.
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -65,12 +67,25 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES = testh5c++.sh
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -84,46 +99,47 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -132,11 +148,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -144,11 +163,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LINUX_LFS = @LINUX_LFS@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -157,13 +181,19 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
@@ -176,22 +206,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -200,13 +229,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -222,8 +252,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -231,15 +265,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -252,6 +285,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -308,7 +342,7 @@ INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \
# Tell conclude.am that these are C++ tests.
HDF_CXX = yes
CXX_API = yes
# Where to install examples
EXAMPLEDIR = $(docdir)/hdf5/examples/c++
@@ -344,14 +378,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/examples/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/examples/Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/examples/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/examples/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -369,6 +403,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
testh5c++.sh: $(top_builddir)/config.status $(srcdir)/testh5c++.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
@@ -400,13 +435,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -437,6 +476,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -455,6 +495,8 @@ dvi-am:
html: html-am
html-am:
info: info-am
info-am:
@@ -463,18 +505,28 @@ install-data-am: install-data-local
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am: installcheck-local
maintainer-clean: maintainer-clean-am
@@ -496,7 +548,7 @@ ps-am:
uninstall-am: uninstall-local
.MAKE: install-am install-strip
.MAKE: check-am install-am install-strip
.PHONY: all all-am all-local check check-TESTS check-am clean \
clean-generic clean-libtool distclean distclean-generic \
@@ -665,10 +717,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -704,10 +756,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \
@@ -771,6 +823,7 @@ check-vfd: $(LIB) $(PROGS) $(TESTS)
HDF5_DRIVER=$$vfd $(MAKE) $(AM_MAKEFLAGS) check || exit 1; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -80,7 +80,7 @@ int main (void)
hsize_t dims[2]; // dataset dimensions
rank = filespace.getSimpleExtentDims( dims );
cout << "dataset rank = " << rank << ", dimensions "
<< (unsigned long)(dims[0]) << " x "
<< (unsigned long)(dims[0]) << " x "
<< (unsigned long)(dims[1]) << endl;
/*

View File

@@ -94,7 +94,7 @@ int main(void)
* Create the first dataset.
*/
DataSet* dataset = new DataSet(file->createDataSet(
"/Data/Compressed_Data", PredType::NATIVE_INT,
"/Data/Compressed_Data", PredType::NATIVE_INT,
*dataspace, ds_creatplist ));
/*
@@ -109,7 +109,7 @@ int main(void)
dims[0] = 500;
dims[1] = 20;
dataspace = new DataSpace(RANK, dims); // create second dspace
dataset = new DataSet(file->createDataSet("/Data/Float_Data",
dataset = new DataSet(file->createDataSet("/Data/Float_Data",
PredType::NATIVE_FLOAT, *dataspace));
delete dataset;

View File

@@ -1,68 +0,0 @@
#!/bin/sh
#
# 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.
CMP='cmp -s'
DIFF='diff -c'
nerrors=0
verbose=yes
# The build (current) directory might be different than the source directory.
if test -z "$srcdir"; then
srcdir=.
fi
actual=sample.out
expect=$srcdir/expected.out
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
TESTING()
{
SPACES=" "
echo "Testing $* $SPACES" |cut -c1-70 |tr -d '\012'
}
TESTING C++ Examples
(
./create
./readdata
./writedata
./compound
./extend_ds
./chunks
./h5group
) > $actual
if $CMP $expect $actual; then
echo " PASSED"
else
echo "*FAILED*"
echo " Expected result differs from actual result"
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expect $actual | sed 's/^/ /'
fi
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual
fi
if test $nerrors -eq 0 ; then
echo "All tests passed."
fi
exit $nerrors

View File

@@ -22,8 +22,8 @@
# Initializations
# Where the tool is installed.
prefix="${prefix:-@prefix@}"
AR=@AR@
RANLIB=@RANLIB@
AR="@AR@"
RANLIB="@RANLIB@"
H5TOOL="h5c++" # The tool name
H5TOOL_BIN="${prefix}/bin/${H5TOOL}" # The path of the tool binary

View File

@@ -25,6 +25,11 @@
#include "H5CommonFG.h"
#include "H5Alltypes.h"
#include <iostream> // remove when done
using std::cerr;
using std::endl;
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
@@ -34,21 +39,21 @@ namespace H5 {
///\brief Default constructor
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AbstractDs::AbstractDs() : H5Object() {}
AbstractDs::AbstractDs(){}
//--------------------------------------------------------------------------
// Function: AbstractDs default constructor
///\brief Creates an AbstractDs instance using an existing id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AbstractDs::AbstractDs( const hid_t ds_id ) : H5Object( ds_id ) {}
AbstractDs::AbstractDs(const hid_t ds_id){}
//--------------------------------------------------------------------------
// Function: AbstractDs copy constructor
///\brief Copy constructor: makes a copy of the original AbstractDs object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AbstractDs::AbstractDs( const AbstractDs& original ) : H5Object( original ) {}
AbstractDs::AbstractDs(const AbstractDs& original){}
//--------------------------------------------------------------------------
// Function: AbstractDs::getTypeClass
@@ -80,8 +85,10 @@ H5T_class_t AbstractDs::getTypeClass() const
return( type_class );
else
{
throw DataTypeIException(inMemFunc("getTypeClass"),
"H5Tget_class returns H5T_NO_CLASS");
if (fromClass() == "DataSet")
throw DataTypeIException("DataSet::getTypeClass", "H5Tget_class returns H5T_NO_CLASS");
else if (fromClass() == "Attribute")
throw DataTypeIException("Attribute::getTypeClass", "H5Tget_class returns H5T_NO_CLASS");
}
}

View File

@@ -33,7 +33,7 @@ class FloatType;
class IntType;
class StrType;
class VarLenType;
class H5_DLLCPP AbstractDs : public H5Object {
class H5_DLLCPP AbstractDs {
public:
// Gets a copy the datatype of that this abstract dataset uses.
// Note that this datatype is a generic one and can only be accessed
@@ -51,6 +51,9 @@ class H5_DLLCPP AbstractDs : public H5Object {
StrType getStrType() const;
VarLenType getVarLenType() const;
// Gets the size in memory of this abstract dataset.
virtual size_t getInMemDataSize() const = 0;
// Gets the dataspace of this abstract dataset - pure virtual.
virtual DataSpace getSpace() const = 0;
@@ -62,6 +65,9 @@ class H5_DLLCPP AbstractDs : public H5Object {
// dataset - pure virtual.
virtual hsize_t getStorageSize() const = 0;
// Returns this class name
virtual H5std_string fromClass() const = 0;
// Copy constructor
AbstractDs( const AbstractDs& original );

View File

@@ -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.

View File

@@ -98,7 +98,7 @@ H5T_order_t AtomType::getOrder() const
//--------------------------------------------------------------------------
// Function: AtomType::getOrder
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c std::string for the buffer that
/// It takes a reference to a \c H5std_string for the buffer that
/// provide the text description of the returned byte order.
/// The text description can be either of the following:
/// "Little endian byte ordering (0)";
@@ -178,7 +178,7 @@ size_t AtomType::getPrecision() const
///\exception H5::DataTypeIException
///\par Description
/// For information, please see C layer Reference Manuat at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-SetPrecision
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-SetPrecision
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void AtomType::setPrecision( size_t precision ) const
@@ -198,7 +198,7 @@ void AtomType::setPrecision( size_t precision ) const
///\exception H5::DataTypeIException
///\par Description
/// For information, please see C layer Reference Manuat at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-GetOffset
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-GetOffset
// Programmer Binh-Minh Ribler - 2000
// Modification
// 12/05/00: due to C API change
@@ -225,7 +225,7 @@ int AtomType::getOffset() const
///\exception H5::DataTypeIException
///\par Description
/// For information, please see C layer Reference Manuat at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-SetOffset
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-SetOffset
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void AtomType::setOffset( size_t offset ) const

View File

@@ -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

View File

@@ -26,12 +26,15 @@
#include "H5PropList.h"
#include "H5Object.h"
#include "H5AbstractDs.h"
#include "H5Attribute.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5DcreatProp.h"
#include "H5CommonFG.h"
#include "H5DataType.h"
#include "H5DataSpace.h"
#include "H5private.h"
#include "H5File.h"
#include "H5Attribute.h"
#include "H5private.h" // for HDfree
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -46,7 +49,7 @@ namespace H5 {
///\brief Default constructor: Creates a stub attribute
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
Attribute::Attribute() : AbstractDs() {}
Attribute::Attribute() : AbstractDs(), IdComponent(), id(0) {}
//--------------------------------------------------------------------------
// Function: Attribute copy constructor
@@ -54,7 +57,11 @@ Attribute::Attribute() : AbstractDs() {}
///\param original - IN: Original Attribute object to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute::Attribute( const Attribute& original ) : AbstractDs( original ) {}
Attribute::Attribute(const Attribute& original) : AbstractDs(), IdComponent()
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: Attribute overloaded constructor
@@ -64,7 +71,10 @@ Attribute::Attribute( const Attribute& original ) : AbstractDs( original ) {}
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute::Attribute(const hid_t existing_id) : AbstractDs(existing_id) {}
Attribute::Attribute(const hid_t existing_id) : AbstractDs(), IdComponent()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: Attribute::write
@@ -86,23 +96,40 @@ void Attribute::write( const DataType& mem_type, const void *buf ) const
//--------------------------------------------------------------------------
// Function: Attribute::write
///\brief This is an overloaded member function, provided for convenience.
/// It writes a \a std::string to this attribute.
/// It writes a \a H5std_string to this attribute.
///\param mem_type - IN: Attribute datatype (in memory)
///\param strg - IN: Data to be written
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Apr, 2003
//--------------------------------------------------------------------------
void Attribute::write( const DataType& mem_type, const H5std_string& strg ) const
void Attribute::write(const DataType& mem_type, const H5std_string& strg) const
{
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
// Check if this attribute has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw AttributeIException("Attribute::write", "H5Tis_variable_str failed");
}
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
herr_t ret_value = 0;
herr_t ret_value = H5Awrite( id, mem_type.getId(), &strg_C );
if( ret_value < 0 )
{
throw AttributeIException("Attribute::write", "H5Awrite failed");
}
// Pass string in differently depends on variable or fixed length
if (!is_variable_len)
{
ret_value = H5Awrite(id, mem_type.getId(), strg_C);
}
else
{
// passing third argument by address
ret_value = H5Awrite(id, mem_type.getId(), &strg_C);
}
if (ret_value < 0)
{
throw AttributeIException("Attribute::write", "H5Awrite failed");
}
}
//--------------------------------------------------------------------------
@@ -118,35 +145,95 @@ void Attribute::read( const DataType& mem_type, void *buf ) const
herr_t ret_value = H5Aread( id, mem_type.getId(), buf );
if( ret_value < 0 )
{
throw AttributeIException("Attribute::read", "H5Aread failed");
throw AttributeIException("Attribute::read", "H5Aread failed");
}
}
//--------------------------------------------------------------------------
// Function: Attribute::read
///\brief This is an overloaded member function, provided for convenience.
/// It reads a \a std::string from this attribute.
/// It reads a \a H5std_string from this attribute.
///\param mem_type - IN: Attribute datatype (in memory)
///\param strg - IN: Buffer for read string
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Apr, 2003
// Modification
// 2006/12/9 - H5Aread allocates memory for character string
// buffer with malloc, therefore, no allocation here,
// but HDfree is needed. - BMR
// Mar 2008
// Corrected a misunderstanding that H5Aread would allocate
// space for the buffer. Obtained the attribute size and
// allocated memory properly. - BMR
// Apr 2009
// Used getInMemDataSize to get attribute data size. - BMR
// Jul 2009
// Divided into specific private functions for fixed- and
// variable-len string data: p_read_fixed_len and
// p_read_variable_len. This should improve readability.
//--------------------------------------------------------------------------
void Attribute::read( const DataType& mem_type, H5std_string& strg ) const
void Attribute::read(const DataType& mem_type, H5std_string& strg) const
{
char* strg_C; // temporary C-string for C API
// Check if this attribute has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw AttributeIException("Attribute::read", "H5Tis_variable_str failed");
}
// call C API to get the attribute string of chars
herr_t ret_value = H5Aread( id, mem_type.getId(), &strg_C);
if( ret_value < 0 )
{
throw AttributeIException("Attribute::read", "H5Aread failed");
}
strg = strg_C; // get 'string' from the C char*
HDfree(strg_C);
if (!is_variable_len) // string is fixed length
{
p_read_fixed_len(mem_type, strg);
}
else
{
p_read_variable_len(mem_type, strg);
}
}
//--------------------------------------------------------------------------
// Function: Attribute::getInMemDataSize
///\brief Gets the size in memory of the attribute's data.
///\return Size of data (in memory)
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Apr 2009
//--------------------------------------------------------------------------
size_t Attribute::getInMemDataSize() const
{
char *func = "Attribute::getInMemDataSize";
// Get the data type of this attribute
hid_t mem_type_id = H5Aget_type(id);
if( mem_type_id < 0 )
{
throw AttributeIException(func, "H5Aget_type failed");
}
// Get the data type's size
hid_t native_type = H5Tget_native_type(mem_type_id, H5T_DIR_DEFAULT);
if (native_type < 0)
{
throw AttributeIException(func, "H5Tget_native_type failed");
}
size_t type_size = H5Tget_size(native_type);
if (type_size == 0)
{
throw AttributeIException(func, "H5Tget_size failed");
}
// Get number of elements of the attribute
hid_t space_id = H5Aget_space(id);
if (space_id < 0)
{
throw AttributeIException(func, "H5Aget_space failed");
}
hssize_t num_elements = H5Sget_simple_extent_npoints(space_id);
if (num_elements < 0)
{
throw AttributeIException(func, "H5Sget_simple_extent_npoints failed");
}
// Calculate and return the size of the data
size_t data_size = type_size * num_elements;
return(data_size);
}
//--------------------------------------------------------------------------
@@ -174,22 +261,19 @@ DataSpace Attribute::getSpace() const
}
//--------------------------------------------------------------------------
// Function: Attribute::p_get_type (private)
// Purpose Gets the datatype of this attribute.
// Return Id of the datatype
// Exception H5::AttributeIException
// Description
// This private function is used in AbstractDs.
// Programmer Binh-Minh Ribler - 2000
// Function: Attribute::getFileName
///\brief Gets the name of the file, in which this attribute belongs.
///\return File name
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
hid_t Attribute::p_get_type() const
H5std_string Attribute::getFileName() const
{
hid_t type_id = H5Aget_type( id );
if( type_id > 0 )
return( type_id );
else
{
throw AttributeIException("", "H5Aget_type failed");
try {
return(p_get_file_name());
}
catch (IdComponentException E) {
throw FileIException("Attribute::getFileName", E.getDetailMsg());
}
}
@@ -282,6 +366,135 @@ hsize_t Attribute::getStorageSize() const
return (storage_size);
}
//--------------------------------------------------------------------------
// Function: Attribute::getId
// Purpose: Get the id of this attribute
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t Attribute::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: Attribute::p_get_type (private)
// Purpose Gets the datatype of this attribute.
// Return Id of the datatype
// Exception H5::AttributeIException
// Description
// This private function is used in AbstractDs.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hid_t Attribute::p_get_type() const
{
hid_t type_id = H5Aget_type( id );
if( type_id > 0 )
return( type_id );
else
{
throw AttributeIException("", "H5Aget_type failed");
}
}
//--------------------------------------------------------------------------
// Function: Attribute::p_read_fixed_len (private)
// brief Reads a fixed length \a H5std_string from an attribute.
// param mem_type - IN: Attribute datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Separated the fixed length case from the original
// Attribute::read
//--------------------------------------------------------------------------
void Attribute::p_read_fixed_len(const DataType& mem_type, H5std_string& strg) const
{
// Only allocate for fixed-len string.
// Get the size of the attribute's data
size_t attr_size = getInMemDataSize();
// If there is data, allocate buffer and read it.
if (attr_size > 0)
{
char *strg_C = NULL;
strg_C = new char [(size_t)attr_size+1];
herr_t ret_value = H5Aread(id, mem_type.getId(), strg_C);
if( ret_value < 0 )
{
delete []strg_C; // de-allocate for fixed-len string
throw AttributeIException("Attribute::read", "H5Aread failed");
}
// Get string from the C char* and release resource allocated locally
strg = strg_C;
delete []strg_C;
}
}
//--------------------------------------------------------------------------
// Function: Attribute::p_read_variable_len (private)
// brief Reads a variable length \a H5std_string from an attribute.
// param mem_type - IN: Attribute datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Separated the variable length case from the original
// Attribute::read
//--------------------------------------------------------------------------
void Attribute::p_read_variable_len(const DataType& mem_type, H5std_string& strg) const
{
// Prepare and call C API to read attribute.
char *strg_C;
// Read attribute, no allocation for variable-len string; C library will
herr_t ret_value = H5Aread(id, mem_type.getId(), &strg_C);
if( ret_value < 0 )
{
throw AttributeIException("Attribute::read", "H5Aread failed");
}
// Get string from the C char* and release resource allocated by C API
strg = strg_C;
HDfree(strg_C);
}
//--------------------------------------------------------------------------
// Function: Attribute::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void Attribute::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw AttributeIException("Attribute::p_setId", close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: Attribute::close
///\brief Closes this attribute.
@@ -298,8 +511,10 @@ void Attribute::close()
{
throw AttributeIException("Attribute::close", "H5Aclose failed");
}
// reset the id because the attribute that it represents is now closed
id = 0;
// reset the id when the attribute that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}

View File

@@ -21,11 +21,14 @@
namespace H5 {
#endif
class H5_DLLCPP Attribute : public AbstractDs {
class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
public:
// Closes this attribute.
virtual void close();
// Gets the name of the file, in which this attribute belongs.
H5std_string getFileName() const;
// Gets the name of this attribute.
ssize_t getName( size_t buf_size, H5std_string& attr_name ) const;
H5std_string getName( size_t buf_size ) const; // returns name, not its length
@@ -35,7 +38,10 @@ class H5_DLLCPP Attribute : public AbstractDs {
virtual DataSpace getSpace() const;
// Returns the amount of storage size required for this attribute.
hsize_t getStorageSize() const;
virtual hsize_t getStorageSize() const;
// Returns the in memory size of this attribute's data.
virtual size_t getInMemDataSize() const;
// Reads data from this attribute.
void read( const DataType& mem_type, void *buf ) const;
@@ -45,11 +51,11 @@ class H5_DLLCPP Attribute : public AbstractDs {
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
///\brief Returns this class name
virtual H5std_string fromClass () const { return("Attribute"); }
// Creates a copy of an existing attribute using the attribute id
Attribute( const hid_t attr_id );
// Creates a copy of an existing attribute using the attribute id
Attribute( const hid_t attr_id );
// Copy constructor: makes a copy of an existing Attribute object.
Attribute( const Attribute& original );
@@ -57,16 +63,29 @@ class H5_DLLCPP Attribute : public AbstractDs {
// Default constructor
Attribute();
// Gets the attribute id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this attribute.
virtual ~Attribute();
protected:
// Sets the attribute id.
virtual void p_setId(const hid_t new_id);
private:
hid_t id; // HDF5 attribute id
// This function contains the common code that is used by
// getTypeClass and various API functions getXxxType
// defined in AbstractDs for generic datatype and specific
// sub-types
virtual hid_t p_get_type() const;
// Reads variable or fixed len strings from this attribute.
void p_read_variable_len(const DataType& mem_type, H5std_string& strg) const;
void p_read_fixed_len(const DataType& mem_type, H5std_string& strg) const;
// do not inherit H5Object::iterateAttrs
int iterateAttrs() { return 0; }

View File

@@ -21,7 +21,6 @@
namespace H5 {
#endif
class Exception;
class ReferenceCounter;
class IdComponent;
class H5Object;
class PropList;

View File

@@ -100,7 +100,7 @@ Group CommonFG::createGroup( const char* name, size_t size_hint ) const
// Function: CommonFG::createGroup
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group CommonFG::createGroup( const H5std_string& name, size_t size_hint ) const
@@ -138,7 +138,7 @@ Group CommonFG::openGroup( const char* name ) const
// Function: CommonFG::openGroup
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group CommonFG::openGroup( const H5std_string& name ) const
@@ -182,7 +182,7 @@ DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, co
// Function: CommonFG::createDataSet
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet CommonFG::createDataSet( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist ) const
@@ -217,7 +217,7 @@ DataSet CommonFG::openDataSet( const char* name ) const
// Function: CommonFG::openDataSet
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet CommonFG::openDataSet( const H5std_string& name ) const
@@ -239,7 +239,13 @@ DataSet CommonFG::openDataSet( const H5std_string& name ) const
///\par Description
/// Note that both names are interpreted relative to the
/// specified location.
/// For information on creating hard link and soft link, please
/// refer to the C layer Reference Manual at:
/// http://hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-CreateHard and
/// http://hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-CreateSoft
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
//--------------------------------------------------------------------------
void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* new_name ) const
{
@@ -269,7 +275,7 @@ void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* ne
// Function: CommonFG::link
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a curr_name and \a new_name.
/// \c H5std_string for \a curr_name and \a new_name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::link( H5L_type_t link_type, const H5std_string& curr_name, const H5std_string& new_name ) const
@@ -283,6 +289,8 @@ void CommonFG::link( H5L_type_t link_type, const H5std_string& curr_name, const
///\param name - IN: Name of the object to be removed
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
//--------------------------------------------------------------------------
void CommonFG::unlink( const char* name ) const
{
@@ -297,7 +305,7 @@ void CommonFG::unlink( const char* name ) const
// Function: CommonFG::unlink
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::unlink( const H5std_string& name ) const
@@ -315,8 +323,10 @@ void CommonFG::unlink( const H5std_string& name ) const
/// Exercise care in moving groups as it is possible to render
/// data in a file inaccessible with Group::move. Please refer
/// to the Group Interface in the HDF5 User's Guide at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/Groups.html
/// http://www.hdfgroup.org/HDF5/doc/UG/UG_frame09Groups.html
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
//--------------------------------------------------------------------------
void CommonFG::move( const char* src, const char* dst ) const
{
@@ -331,7 +341,7 @@ void CommonFG::move( const char* src, const char* dst ) const
// Function: CommonFG::move
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a src and \a dst.
/// \c H5std_string for \a src and \a dst.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::move( const H5std_string& src, const H5std_string& dst ) const
@@ -350,7 +360,7 @@ void CommonFG::move( const H5std_string& src, const H5std_string& dst ) const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5G.html#Group-GetObjinfo
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5G.html#Group-GetObjinfo
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& statbuf ) const
@@ -366,7 +376,7 @@ void CommonFG::getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& st
// Function: CommonFG::getObjinfo
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const H5std_string& name, hbool_t follow_link, H5G_stat_t& statbuf ) const
@@ -380,6 +390,7 @@ void CommonFG::getObjinfo( const H5std_string& name, hbool_t follow_link, H5G_st
/// It differs from the above functions in that it doesn't have
/// the paramemter \a follow_link.
// Programmer Binh-Minh Ribler - Nov, 2005
// Note: need to modify to use H5Oget_info and H5Lget_info - BMR
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const char* name, H5G_stat_t& statbuf ) const
{
@@ -394,7 +405,7 @@ void CommonFG::getObjinfo( const char* name, H5G_stat_t& statbuf ) const
// Function: CommonFG::getObjinfo
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - Nov, 2005
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const H5std_string& name, H5G_stat_t& statbuf ) const
@@ -414,23 +425,44 @@ void CommonFG::getObjinfo( const H5std_string& name, H5G_stat_t& statbuf ) const
//--------------------------------------------------------------------------
H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
{
char* value_C = new char[size+1]; // temporary C-string for C API
H5L_info_t linkinfo;
char *value_C; // value in C string
size_t val_size = size;
H5std_string value = "";
herr_t ret_value;
herr_t ret_value = H5Lget_val( getLocId(), name, value_C, size, H5P_DEFAULT );
if( ret_value < 0 )
{
throwException("getLinkval", "H5Lget_val failed");
}
H5std_string value = H5std_string( value_C );
delete []value_C;
return( value );
// if user doesn't provide buffer size, determine it
if (size == 0)
{
ret_value = H5Lget_info(getLocId(), name, &linkinfo, H5P_DEFAULT);
if( ret_value < 0 )
{
throwException("getLinkval", "H5Lget_info to find buffer size failed");
}
val_size = linkinfo.u.val_size;
}
// if link has value, retrieve the value, otherwise, return null string
if (val_size > 0)
{
value_C = new char[val_size+1]; // temporary C-string for C API
ret_value = H5Lget_val(getLocId(), name, value_C, val_size, H5P_DEFAULT);
if( ret_value < 0 )
{
throwException("getLinkval", "H5Lget_val failed");
}
value = H5std_string(value_C);
delete []value_C;
}
return(value);
}
//--------------------------------------------------------------------------
// Function: CommonFG::getLinkval
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getLinkval( const H5std_string& name, size_t size ) const
@@ -452,6 +484,11 @@ H5std_string CommonFG::getLinkval( const H5std_string& name, size_t size ) const
/// object header, e.g., data sets, groups, named data types,
/// and data spaces, but not symbolic links.
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5O APIs; however the first parameter is
// no longer just file or group, this function should be moved
// to another class to accommodate attribute, dataset, and named
// datatype. - BMR
//--------------------------------------------------------------------------
void CommonFG::setComment( const char* name, const char* comment ) const
{
@@ -466,7 +503,7 @@ void CommonFG::setComment( const char* name, const char* comment ) const
// Function: CommonFG::setComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name and \a comment.
/// \c H5std_string for \a name and \a comment.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::setComment( const H5std_string& name, const H5std_string& comment ) const
@@ -480,6 +517,10 @@ void CommonFG::setComment( const H5std_string& name, const H5std_string& comment
///\param name - IN: Name of the object
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - May 2005
// 2007: QAK modified to use H5O APIs; however the first parameter is
// no longer just file or group, this function should be moved
// to another class to accommodate attribute, dataset, and named
// datatype. - BMR
//--------------------------------------------------------------------------
void CommonFG::removeComment(const char* name) const
{
@@ -494,7 +535,7 @@ void CommonFG::removeComment(const char* name) const
// Function: CommonFG::removeComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - May 2005
//--------------------------------------------------------------------------
void CommonFG::removeComment(const H5std_string& name) const
@@ -504,29 +545,38 @@ void CommonFG::removeComment(const H5std_string& name) const
//--------------------------------------------------------------------------
// Function: CommonFG::getComment
///\brief Retrieves comment for the specified object.
///\brief Retrieves comment for the specified object and its comment's
/// length.
///\param name - IN: Name of the object
///\param bufsize - IN: Length of the comment to retrieve
///\return Comment string
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - May 2005
// Programmer Binh-Minh Ribler - 2000
// 2007: QAK modified to use H5O APIs; however the first parameter is
// no longer just file or group, this function should be moved
// to another class to accommodate attribute, dataset, and named
// datatype. - BMR
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment (const H5std_string& name) const
H5std_string CommonFG::getComment( const char* name, size_t bufsize ) const
{
size_t bufsize = 256; // anticipating the comment's length
// bufsize is default to 256
// temporary variable
hid_t loc_id = getLocId(); // temporary variable
// temporary C-string for the object's comment
char* comment_C = new char[bufsize+1];
herr_t ret_value = H5Oget_comment_by_name(loc_id, name.c_str(), comment_C, bufsize, H5P_DEFAULT);
// temporary C-string for the object's comment; bufsize already including
// null character
char* comment_C = new char[bufsize];
ssize_t ret_value = H5Oget_comment_by_name(loc_id, name, comment_C, bufsize, H5P_DEFAULT);
// if the actual length of the comment is longer than the anticipated
// value, then call H5Oget_comment_by_name again with the correct value
if (ret_value > bufsize)
// if the actual length of the comment is longer than bufsize and bufsize
// was the default value, i.e., not given by the user, then call
// H5Oget_comment_by_name again with the correct value
if ((size_t)ret_value > bufsize && bufsize == 256)
{
bufsize = ret_value;
size_t new_size = ret_value;
delete []comment_C;
comment_C = new char[bufsize+1];
ret_value = H5Oget_comment_by_name(loc_id, name.c_str(), comment_C, bufsize, H5P_DEFAULT);
comment_C = new char[new_size]; // new_size including null terminator
ret_value = H5Oget_comment_by_name(loc_id, name, comment_C, new_size, H5P_DEFAULT);
}
// if H5Oget_comment_by_name returns SUCCEED, return the string comment,
@@ -540,38 +590,11 @@ H5std_string CommonFG::getComment (const H5std_string& name) const
return (comment);
}
//--------------------------------------------------------------------------
// Function: CommonFG::getComment
///\brief Retrieves comment for the specified object and its comment's
/// length.
///\param name - IN: Name of the object
///\param bufsize - IN: Length of the comment to retrieve
///\return Comment string
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment( const char* name, size_t bufsize ) const
{
// temporary C-string for the object's comment
char* comment_C = new char[bufsize+1];
herr_t ret_value = H5Oget_comment_by_name( getLocId(), name, comment_C, bufsize, H5P_DEFAULT );
// if H5Oget_comment_by_name returns SUCCEED, return the string comment
if( ret_value < 0 )
{
throwException("getComment", "H5Oget_comment_by_name failed");
}
H5std_string comment = H5std_string(comment_C);
delete []comment_C;
return( comment );
}
//--------------------------------------------------------------------------
// Function: CommonFG::getComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment( const H5std_string& name, size_t bufsize ) const
@@ -608,7 +631,7 @@ void CommonFG::mount( const char* name, H5File& child, PropList& plist ) const
// Function: CommonFG::mount
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::mount( const H5std_string& name, H5File& child, PropList& plist ) const
@@ -639,7 +662,7 @@ void CommonFG::unmount( const char* name ) const
// Function: CommonFG::unmount
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::unmount( const H5std_string& name ) const
@@ -674,7 +697,7 @@ DataType CommonFG::openDataType( const char* name ) const
// Function: CommonFG::openDataType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType CommonFG::openDataType( const H5std_string& name ) const
@@ -709,7 +732,7 @@ ArrayType CommonFG::openArrayType( const char* name ) const
// Function: CommonFG::openArrayType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
ArrayType CommonFG::openArrayType( const H5std_string& name ) const
@@ -744,7 +767,7 @@ CompType CommonFG::openCompType( const char* name ) const
// Function: CommonFG::openCompType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
CompType CommonFG::openCompType( const H5std_string& name ) const
@@ -779,7 +802,7 @@ EnumType CommonFG::openEnumType( const char* name ) const
// Function: CommonFG::openEnumType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
EnumType CommonFG::openEnumType( const H5std_string& name ) const
@@ -814,7 +837,7 @@ IntType CommonFG::openIntType( const char* name ) const
// Function: CommonFG::openIntType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IntType CommonFG::openIntType( const H5std_string& name ) const
@@ -849,7 +872,7 @@ FloatType CommonFG::openFloatType( const char* name ) const
// Function: CommonFG::openFloatType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
FloatType CommonFG::openFloatType( const H5std_string& name ) const
@@ -884,7 +907,7 @@ StrType CommonFG::openStrType( const char* name ) const
// Function: CommonFG::openStrType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
StrType CommonFG::openStrType( const H5std_string& name ) const
@@ -919,7 +942,7 @@ VarLenType CommonFG::openVarLenType( const char* name ) const
// Function: CommonFG::openVarLenType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
VarLenType CommonFG::openVarLenType( const H5std_string& name ) const
@@ -955,7 +978,7 @@ int CommonFG::iterateElems( const char* name, int *idx, H5G_iterate_t op , void*
// Function: CommonFG::iterateElems
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int CommonFG::iterateElems( const H5std_string& name, int *idx, H5G_iterate_t op , void* op_data )

View File

@@ -50,9 +50,8 @@ class H5_DLLCPP CommonFG {
DataSet openDataSet(const H5std_string& name) const;
// Retrieves comment for the HDF5 object specified by its name.
H5std_string getComment(const H5std_string& name) const;
H5std_string getComment(const char* name, size_t bufsize) const;
H5std_string getComment(const H5std_string& name, size_t bufsize) const;
H5std_string getComment(const char* name, size_t bufsize=256) const;
H5std_string getComment(const H5std_string& name, size_t bufsize=256) const;
// Removes the comment for the HDF5 object specified by its name.
void removeComment(const char* name) const;
@@ -62,9 +61,9 @@ class H5_DLLCPP CommonFG {
void setComment(const char* name, const char* comment) const;
void setComment(const H5std_string& name, const H5std_string& comment) const;
// Returns the name of the HDF5 object that the symbolic link points to.
H5std_string getLinkval(const char* name, size_t size) const;
H5std_string getLinkval(const H5std_string& name, size_t size) const;
// Returns the value of a symbolic link.
H5std_string getLinkval(const char* link_name, size_t size=0) const;
H5std_string getLinkval(const H5std_string& link_name, size_t size=0) const;
// Returns the number of objects in this group.
hsize_t getNumObjs() const;

View File

@@ -88,7 +88,7 @@ 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

View File

@@ -44,9 +44,9 @@
#include "H5Group.h"
#include "H5File.h"
#include "H5Library.h"
/* Some C++ compilers do not have offsetof macro; define to bypass the problem
- BMR- -EIP- 2007/08/01
- BMR- -EIP- 2007/08/01
*/
#ifndef H5_CXX_HAVE_OFFSETOF
#ifdef HOFFSET

View File

@@ -28,11 +28,16 @@
#include "H5PropList.h"
#include "H5DxferProp.h"
#include "H5DcreatProp.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5CommonFG.h"
#include "H5DataType.h"
#include "H5DataSpace.h"
#include "H5AbstractDs.h"
#include "H5File.h"
#include "H5Attribute.h"
#include "H5DataSet.h"
#include "H5private.h" // for HDfree
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -47,7 +52,7 @@ namespace H5 {
///\brief Default constructor: creates a stub DataSet.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet() : AbstractDs() {}
DataSet::DataSet() : AbstractDs(), H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: DataSet overloaded constructor
@@ -55,7 +60,10 @@ DataSet::DataSet() : AbstractDs() {}
///\param existing_id - IN: Id of an existing dataset
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet(const hid_t existing_id) : AbstractDs(existing_id) {}
DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: DataSet copy constructor
@@ -63,23 +71,83 @@ DataSet::DataSet(const hid_t existing_id) : AbstractDs(existing_id) {}
///\param original - IN: DataSet instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet( const DataSet& original ) : AbstractDs( original ) {}
DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference to some object, returns that dataset
/// obj - IN: Dataset reference object is in or location of
/// object that the dataset is located within.
///\brief Given a reference, ref, to an hdf5 dataset, creates a
/// DataSet object
///\param obj - IN: Dataset reference object is in or location of
/// object that the dataset is located within.
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::DataSetIException
///\parDescription
///\par Description
/// \c obj can be DataSet, Group, H5File, or named DataType, that
/// is a datatype that has been named by DataType::commit.
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataSet::DataSet(IdComponent& obj, void* ref) : AbstractDs()
DataSet::DataSet(H5Object& obj, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
{
IdComponent::dereference(obj, ref);
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by object",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 dataset, creates a
/// DataSet object
///\param h5file - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataSet::DataSet(H5File& h5file, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
{
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by HDF5 file",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 dataset, creates a
/// DataSet object
///\param attr - IN: Specifying location where the referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataSet::DataSet(Attribute& attr, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
{
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by attribute",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
@@ -152,6 +220,53 @@ hsize_t DataSet::getStorageSize() const
return(storage_size);
}
//--------------------------------------------------------------------------
// Function: DataSet::getInMemDataSize
///\brief Gets the size in memory of the dataset's data.
///\return Size of data (in memory)
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Apr 2009
//--------------------------------------------------------------------------
size_t DataSet::getInMemDataSize() const
{
char *func = "DataSet::getInMemDataSize";
// Get the data type of this dataset
hid_t mem_type_id = H5Dget_type(id);
if( mem_type_id < 0 )
{
throw DataSetIException(func, "H5Dget_type failed");
}
// Get the data type's size
hid_t native_type = H5Tget_native_type(mem_type_id, H5T_DIR_DEFAULT);
if (native_type < 0)
{
throw DataSetIException(func, "H5Tget_native_type failed");
}
size_t type_size = H5Tget_size(native_type);
if (type_size == 0)
{
throw DataSetIException(func, "H5Tget_size failed");
}
// Get number of elements of the dataset
hid_t space_id = H5Dget_space(id); // first get its data space
if (space_id < 0)
{
throw DataSetIException(func, "H5Dget_space failed");
}
hssize_t num_elements = H5Sget_simple_extent_npoints(space_id);
if (num_elements < 0)
{
throw DataSetIException(func, "H5Sget_simple_extent_npoints failed");
}
// Calculate and return the size of the data
size_t data_size = type_size * num_elements;
return(data_size);
}
//--------------------------------------------------------------------------
// Function: DataSet::getOffset
///\brief Returns the address of this dataset in the file.
@@ -296,21 +411,46 @@ void DataSet::read( void* buf, const DataType& mem_type, const DataSpace& mem_sp
//--------------------------------------------------------------------------
// Function: DataSet::read
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c std::string for the buffer.
/// It takes a reference to a \c H5std_string for the buffer.
///\param buf - IN: Buffer for read data
///\param mem_type - IN: Memory datatype
///\param mem_space - IN: Memory dataspace
///\param file_space - IN: Dataset's dataspace in the file
///\param xfer_plist - IN: Transfer property list for this I/O operation
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
// Modification
// Jul 2009
// Follow the change to Attribute::read and use the following
// private functions to read datasets with fixed- and
// variable-length string:
// DataSet::p_read_fixed_len and
// DataSet::p_read_variable_len
//--------------------------------------------------------------------------
void DataSet::read( H5std_string& strg, const DataType& mem_type, const DataSpace& mem_space, const DataSpace& file_space, const DSetMemXferPropList& xfer_plist ) const
void DataSet::read(H5std_string& strg, const DataType& mem_type, const DataSpace& mem_space, const DataSpace& file_space, const DSetMemXferPropList& xfer_plist) const
{
// Allocate C character string for reading
size_t size = mem_type.getSize();
char* strg_C = new char[size+1]; // temporary C-string for C API
// Check if this dataset has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw DataSetIException("DataSet::read", "H5Tis_variable_str failed");
}
// Use the overloaded member to read
read(strg_C, mem_type, mem_space, file_space, xfer_plist);
// Obtain identifiers for C API
hid_t mem_type_id = mem_type.getId();
hid_t mem_space_id = mem_space.getId();
hid_t file_space_id = file_space.getId();
hid_t xfer_plist_id = xfer_plist.getId();
// Get the String and clean up
strg = strg_C;
delete []strg_C;
if (!is_variable_len) // only allocate for fixed-len string
{
p_read_fixed_len(mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg);
}
else
{
p_read_variable_len(mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg);
}
}
//--------------------------------------------------------------------------
@@ -347,17 +487,48 @@ void DataSet::write( const void* buf, const DataType& mem_type, const DataSpace&
//--------------------------------------------------------------------------
// Function: DataSet::write
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c std::string for the buffer.
/// It takes a reference to a \c H5std_string for the buffer.
// Programmer Binh-Minh Ribler - 2000
// Modification
// Jul 2009
// Modified to pass the buffer into H5Dwrite properly depending
// whether the dataset has variable- or fixed-length string.
//--------------------------------------------------------------------------
void DataSet::write( const H5std_string& strg, const DataType& mem_type, const DataSpace& mem_space, const DataSpace& file_space, const DSetMemXferPropList& xfer_plist ) const
{
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
// Check if this attribute has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw DataSetIException("DataSet::write", "H5Tis_variable_str failed");
}
// Use the overloaded member
write(strg_C, mem_type, mem_space, file_space, xfer_plist);
// Obtain identifiers for C API
hid_t mem_type_id = mem_type.getId();
hid_t mem_space_id = mem_space.getId();
hid_t file_space_id = file_space.getId();
hid_t xfer_plist_id = xfer_plist.getId();
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
herr_t ret_value = 0;
// Pass string in differently depends on variable or fixed length
if (!is_variable_len)
{
ret_value = H5Dwrite( id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg_C );
}
else
{
// passing string argument by address
ret_value = H5Dwrite( id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, &strg_C );
}
if (ret_value < 0)
{
throw DataSetIException("DataSet::write", "H5Dwrite failed");
}
}
//--------------------------------------------------------------------------
@@ -400,7 +571,7 @@ int DataSet::iterateElems( void* buf, const DataType& type, const DataSpace& spa
/// For more information, please see the Description section in
/// C layer Reference Manual at:
///\par
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5D.html#Dataset-Extend
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5D.html#Dataset-Extend
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSet::extend( const hsize_t* size ) const
@@ -455,65 +626,19 @@ void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
}
}
//--------------------------------------------------------------------------
// Function: DataSet::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use
/// DataSet::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataSet::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataSet::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataSet::Reference(const char* name) const
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataSet::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataSet::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
}
#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 \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
/// \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) \tObject is a symbolic link.
/// \li \c H5G_GROUP (1) \tObject is a group.
/// \li \c H5G_DATASET (2) \tObject is a dataset.
/// \li \c H5G_TYPE Object (3) \tis a named datatype
/// \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
//--------------------------------------------------------------------------
@@ -531,9 +656,9 @@ H5G_obj_t DataSet::getObjType(void *ref, H5R_type_t ref_type) const
//--------------------------------------------------------------------------
// 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
///\param ref - IN: Reference to get region of
///\return DataSpace instance
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - May, 2004
@@ -549,6 +674,116 @@ DataSpace DataSet::getRegion(void *ref, H5R_type_t ref_type) const
}
}
//--------------------------------------------------------------------------
// Function: DataSet::getId
///\brief Get the id of this dataset.
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDs and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t DataSet::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: DataSet::p_read_fixed_len (private)
// brief Reads a fixed length \a H5std_string from an dataset.
// param mem_type - IN: DataSet datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Added in follow to the change in Attribute::read
//--------------------------------------------------------------------------
void DataSet::p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const
{
// Only allocate for fixed-len string.
// Get the size of the dataset's data
size_t attr_size = getInMemDataSize();
// If there is data, allocate buffer and read it.
if (attr_size > 0)
{
char *strg_C = NULL;
strg_C = new char [(size_t)attr_size+1];
herr_t ret_value = H5Dread(id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg_C);
if( ret_value < 0 )
{
delete []strg_C; // de-allocate for fixed-len string
throw DataSetIException("DataSet::read", "H5Dread failed for fixed length string");
}
// Get string from the C char* and release resource allocated locally
strg = strg_C;
delete []strg_C;
}
}
//--------------------------------------------------------------------------
// Function: DataSet::p_read_variable_len (private)
// brief Reads a variable length \a H5std_string from an dataset.
// param mem_type - IN: DataSet datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Added in follow to the change in Attribute::read
//--------------------------------------------------------------------------
void DataSet::p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const
{
// Prepare and call C API to read dataset.
char *strg_C;
// Read dataset, no allocation for variable-len string; C library will
herr_t ret_value = H5Dread(id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, &strg_C);
if( ret_value < 0 )
{
throw DataSetIException("DataSet::read", "H5Dread failed for variable length string");
}
// Get string from the C char* and release resource allocated by C API
strg = strg_C;
HDfree(strg_C);
}
//--------------------------------------------------------------------------
// Function: DataSet::p_setId (private)
///\brief Sets the identifier of this dataset to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSet::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw DataSetIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
// increment the reference counter of the new id
//incRefCount();
}
//--------------------------------------------------------------------------
// Function: DataSet::close
///\brief Closes this dataset.
@@ -565,8 +800,10 @@ void DataSet::close()
{
throw DataSetIException("DataSet::close", "H5Dclose failed");
}
// reset the id because the dataset that it represents is now closed
id = 0;
// reset the id when the dataset that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}

View File

@@ -23,7 +23,7 @@
namespace H5 {
#endif
class H5_DLLCPP DataSet : public AbstractDs {
class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
public:
// Close this dataset.
virtual void close();
@@ -49,7 +49,10 @@ class H5_DLLCPP DataSet : public AbstractDs {
void getSpaceStatus(H5D_space_status_t& status) const;
// Returns the amount of storage size required for this dataset.
hsize_t getStorageSize() const;
virtual hsize_t getStorageSize() const;
// Returns the in memory size of this attribute's data.
virtual size_t getInMemDataSize() const;
// Returns the number of bytes required to store VL data.
hsize_t getVlenBufSize( DataType& type, DataSpace& space ) const;
@@ -81,19 +84,13 @@ class H5_DLLCPP DataSet : public AbstractDs {
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Creates a reference to a named Hdf5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Creates a reference to a named Hdf5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("DataSet"); }
// Creates a dataset by way of dereference.
DataSet(IdComponent& obj, void* ref);
DataSet(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataSet(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataSet(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// Default constructor.
DataSet();
@@ -104,15 +101,30 @@ class H5_DLLCPP DataSet : public AbstractDs {
// Creates a copy of an existing DataSet using its id.
DataSet(const hid_t existing_id);
// Gets the dataset id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this dataset.
virtual ~DataSet();
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
// sub-types
virtual hid_t p_get_type() const;
// Reads variable or fixed len strings from this dataset.
void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
protected:
// Sets the dataset id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -47,7 +47,7 @@ const DataSpace DataSpace::ALL( H5S_ALL );
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace( H5S_class_t type ) : IdComponent(0)
DataSpace::DataSpace(H5S_class_t type) : IdComponent()
{
id = H5Screate( type );
if( id < 0 )
@@ -65,7 +65,7 @@ DataSpace::DataSpace( H5S_class_t type ) : IdComponent(0)
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) : IdComponent(0)
DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) : IdComponent()
{
id = H5Screate_simple( rank, dims, maxdims );
if( id < 0 )
@@ -82,7 +82,10 @@ DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) :
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace(const hid_t existing_id) : IdComponent(existing_id) {}
DataSpace::DataSpace(const hid_t existing_id) : IdComponent()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: DataSpace copy constructor
@@ -90,7 +93,11 @@ DataSpace::DataSpace(const hid_t existing_id) : IdComponent(existing_id) {}
///\param original - IN: DataSpace object to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace( const DataSpace& original ) : IdComponent( original ) {}
DataSpace::DataSpace(const DataSpace& original) : IdComponent(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: DataSpace::copy
@@ -401,7 +408,7 @@ hssize_t DataSpace::getSelectElemNpoints () const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectElemPointList
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectElemPointList
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints, hsize_t *buf ) const
@@ -425,7 +432,7 @@ void DataSpace::getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints,
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectBounds
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectBounds
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::getSelectBounds ( hsize_t* start, hsize_t* end ) const
@@ -451,7 +458,7 @@ void DataSpace::getSelectBounds ( hsize_t* start, hsize_t* end ) const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectElements
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectElements
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::selectElements ( H5S_seloper_t op, const size_t num_elements, const hsize_t *coord) const
@@ -533,7 +540,7 @@ bool DataSpace::selectValid () const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectHyperslab
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectHyperslab
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::selectHyperslab( H5S_seloper_t op, const hsize_t *count, const hsize_t *start, const hsize_t *stride, const hsize_t *block ) const
@@ -547,6 +554,47 @@ void DataSpace::selectHyperslab( H5S_seloper_t op, const hsize_t *count, const h
}
}
//--------------------------------------------------------------------------
// Function: DataSpace::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t DataSpace::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: DataSpace::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw DataSpaceIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: DataSpace::close
///\brief Closes this dataspace.
@@ -564,8 +612,10 @@ void DataSpace::close()
{
throw DataSpaceIException("DataSpace::close", "H5Sclose failed");
}
// reset the id because the dataspace that it represents is now closed
id = 0;
// reset the id when the dataspace that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -583,8 +633,7 @@ DataSpace::~DataSpace()
{
try {
close();
}
catch (Exception close_error) {
} catch (Exception close_error) {
cerr << "DataSpace::~DataSpace - " << close_error.getDetailMsg() << endl;
}
}

View File

@@ -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.
@@ -112,8 +112,18 @@ class H5_DLLCPP DataSpace : public IdComponent {
// Copy constructor: makes a copy of the original DataSpace object.
DataSpace(const DataSpace& original);
// Gets the dataspace id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this dataspace.
virtual ~DataSpace();
private:
hid_t id; // HDF5 dataspace id
protected:
// Sets the dataspace id.
virtual void p_setId(const hid_t new_id);
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -38,6 +38,7 @@
#include "H5AbstractDs.h"
#include "H5DataSet.h"
#include "H5File.h"
#include "H5Attribute.h"
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -51,8 +52,6 @@ namespace H5 {
// Function: DataType overloaded constructor
///\brief Creates a datatype using an existing datatype's id
///\param existing_id - IN: Id of the existing datatype
///\param predefined - IN: Indicates whether or not this datatype is
/// a predefined datatype; default to \c false
// Description
// Constructor creates a copy of an existing DataType using
// its id. The argument "predefined" is default to false;
@@ -62,7 +61,10 @@ namespace H5 {
// - BMR 5/2004
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType(const hid_t existing_id) : H5Object(existing_id) {}
DataType::DataType(const hid_t existing_id) : H5Object()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: DataType overloaded constructor
@@ -84,17 +86,74 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object()
//--------------------------------------------------------------------------
// Function: DataType overload constructor - dereference
///\brief Given a reference to some object, returns that datatype
///\param obj - IN: Location reference object is in
///\brief Given a reference, ref, to an hdf5 group, creates a
/// DataType object
///\param obj - IN: Specifying location referenced object is in
///\param ref - IN: Reference pointer
///\parDescription
/// \c obj can be DataSet, Group, H5File, or named DataType, that
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
///\par Description
/// \c obj can be DataSet, Group, or named DataType, that
/// is a datatype that has been named by DataType::commit.
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataType::DataType(IdComponent& obj, void* ref) : H5Object()
DataType::DataType(H5Object& obj, const void* ref, H5R_type_t ref_type) : H5Object()
{
IdComponent::dereference(obj, ref);
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an H5Object",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a
/// DataType object
///\param h5file - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataType::DataType(H5File& h5file, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an H5File",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a
/// DataType object
///\param attr - IN: Specifying location where the referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataType::DataType(Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an Attribute",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
@@ -102,14 +161,18 @@ DataType::DataType(IdComponent& obj, void* ref) : H5Object()
///\brief Default constructor: Creates a stub datatype
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType() : H5Object() {}
DataType::DataType() : H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: DataType copy constructor
///\brief Copy constructor: makes a copy of the original DataType object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType(const DataType& original) : H5Object(original) {}
DataType::DataType(const DataType& original) : H5Object(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: DataType::copy
@@ -142,10 +205,10 @@ void DataType::copy( const DataType& like_type )
//--------------------------------------------------------------------------
// Function: DataType::copy
///\brief Copies the datatype of the given dataset to this datatype object
///\param dset - IN: Dataset
///\param dset - IN: Dataset
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - Jan, 2007
///\parDescription
///\par Description
/// The resulted dataset will be transient and modifiable.
//--------------------------------------------------------------------------
void DataType::copy(const DataSet& dset)
@@ -210,7 +273,7 @@ bool DataType::operator==(const DataType& compared_type ) const
// Function: DataType::p_commit (private)
//\brief Commits a transient datatype to a file, creating a new
// named datatype
//\param loc_id - IN: The id of either a file, group, dataset, named
//\param loc_id - IN: The id of either a file, group, dataset, named
// datatype, or attribute.
//\param name - IN: Name of the datatype
//\exception H5::DataTypeIException
@@ -452,7 +515,7 @@ DataType DataType::getSuper() const
///\exception H5::DataTypeIException
///\par Description
/// For more information, please see:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-Register
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-Register
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::registerFunc( H5T_pers_t pers, const char* name, const DataType& dest, H5T_conv_t func ) const
@@ -616,52 +679,6 @@ bool DataType::isVariableStr() const
}
}
//--------------------------------------------------------------------------
// Function: DataType::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataType::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataType::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw DataTypeIException(inMemFunc("Reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataType::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataType::Reference(const char* name) const
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw DataTypeIException(inMemFunc("Reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataType::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataType::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: DataType::getObjType
@@ -707,6 +724,47 @@ DataSpace DataType::getRegion(void *ref, H5R_type_t ref_type) const
}
}
//--------------------------------------------------------------------------
// Function: DataType::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t DataType::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: DataType::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw DataTypeIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: DataType::close
///\brief Closes the datatype if it is not a predefined type.
@@ -723,8 +781,10 @@ void DataType::close()
{
throw DataTypeIException(inMemFunc("close"), "H5Tclose failed");
}
// reset the id because the datatype that it represents is now closed
id = 0;
// reset the id when the datatype that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -740,14 +800,12 @@ void DataType::close()
//--------------------------------------------------------------------------
DataType::~DataType()
{
try {
close();
}
catch (Exception close_error) {
cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
}
try {
close();
} catch (Exception close_error) {
cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
}
}
#ifndef H5_NO_NAMESPACE
} // end namespace
#endif

View File

@@ -30,7 +30,9 @@ class H5_DLLCPP DataType : public H5Object {
DataType( const DataType& original );
// Creates a datatype by way of dereference.
DataType(IdComponent& obj, void* ref);
DataType(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataType(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataType(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// Closes this datatype.
virtual void close();
@@ -99,14 +101,6 @@ class H5_DLLCPP DataType : public H5Object {
// Checks whether this datatype is a variable-length string.
bool isVariableStr() const;
// Creates a reference to a named HDF5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const; // will be obsolete
// Creates a reference to a named HDF5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
#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;
@@ -115,7 +109,7 @@ class H5_DLLCPP DataType : public H5Object {
// 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
@@ -124,8 +118,18 @@ class H5_DLLCPP DataType : public H5Object {
// Default constructor
DataType();
// Gets the datatype id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this datatype.
virtual ~DataType();
protected:
hid_t id; // HDF5 datatype id
// Sets the datatype id.
virtual void p_setId(const hid_t new_id);
private:
void p_commit(hid_t loc_id, const char* name);
};

View File

@@ -54,7 +54,7 @@ DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : PropList
/// existing dataset creation property list.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DSetCreatPropList::DSetCreatPropList(const hid_t plist_id) : PropList( plist_id ) {}
DSetCreatPropList::DSetCreatPropList(const hid_t plist_id) : PropList(plist_id) {}
//--------------------------------------------------------------------------
// Function: DSetCreatPropList::setChunk
@@ -106,8 +106,8 @@ int DSetCreatPropList::getChunk( int max_ndims, hsize_t* dim ) const
///\param layout - IN: Type of storage layout for raw data
///\exception H5::PropListIException
///\par Description
/// For information on setting layout type, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetLayout
/// For information on valid layout types, please refer to
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLayout
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DSetCreatPropList::setLayout(H5D_layout_t layout) const
@@ -172,16 +172,16 @@ void DSetCreatPropList::setDeflate( int level ) const
//--------------------------------------------------------------------------
// Function: DSetCreatPropList::setSzip
///\brief Sets up for the use of the SZIP compression filter.
///\param options_mask - IN: A bit-mask conveying the desired SZIP
/// options. Valid values are H5_SZIP_EC_OPTION_MASK
///\param options_mask - IN: A bit-mask conveying the desired SZIP
/// options. Valid values are H5_SZIP_EC_OPTION_MASK
/// and H5_SZIP_NN_OPTION_MASK.
///\param pixels_per_block - IN: Number of pixels or data elements in
///\param pixels_per_block - IN: Number of pixels or data elements in
/// each data block.
///\exception H5::PropListIException
///\par Description
/// The associate C function sets an SZIP compression filter,
/// The associate C function sets an SZIP compression filter,
/// H5Z_FILTER_SZIP, for a dataset. For more information about
/// SZIP and usage, please refer to the C layer Reference
/// SZIP and usage, please refer to the C layer Reference
/// Manual at:
/// http://hdfgroup.org/HDF5/doc/RM_H5P.html#Property-SetSzip
// Programmer Binh-Minh Ribler - Jan, 2007
@@ -211,7 +211,7 @@ void DSetCreatPropList::setSzip(unsigned int options_mask, unsigned int pixels_p
///\par
/// For information on setting fill value, please refer to the
/// C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFillValue
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFillValue
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DSetCreatPropList::setFillValue( const DataType& fvalue_type, const void* value ) const
@@ -459,7 +459,7 @@ bool DSetCreatPropList::allFiltersAvail()
///\par Description
/// Please refer to the Reference Manual of \c H5Pset_shuffle for
/// details.
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetShuffle
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetShuffle
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DSetCreatPropList::setShuffle() const

View File

@@ -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.

View File

@@ -309,7 +309,7 @@ void DSetMemXferPropList::getMulti(hid_t *memb_dxpl)
///\exception H5::PropListIException
///\par Description
/// For detail, please refer to the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSmallData
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSmallData
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void DSetMemXferPropList::setSmallDataBlockSize(hsize_t size)
@@ -349,7 +349,7 @@ hsize_t DSetMemXferPropList::getSmallDataBlockSize()
///\par Description
/// For information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetHyperVectorSize
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetHyperVectorSize
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void DSetMemXferPropList::setHyperVectorSize(size_t vector_size)

View File

@@ -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.
@@ -104,7 +104,6 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
// Noop destructor
virtual ~DSetMemXferPropList();
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -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

View File

@@ -252,7 +252,7 @@ void Exception::walkErrorStack( H5E_direction_t direction, H5E_walk2_t func, voi
// Function: Exception::getDetailMsg
///\brief Returns the detailed message set at the time the exception
/// is thrown.
///\return Text message - \c std::string
///\return Text message - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string Exception::getDetailMsg() const
@@ -275,7 +275,7 @@ const char* Exception::getCDetailMsg() const
//--------------------------------------------------------------------------
// Function: Exception::getFuncName
///\brief Returns the name of the function, where the exception is thrown.
///\return Text message - \c std::string
///\return Text message - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string Exception::getFuncName() const

View File

@@ -79,12 +79,6 @@ class H5_DLLCPP Exception {
virtual ~Exception();
private:
// Because 'string' is not instantiated at compilation time, this
// warning is displayed when building DLL; but the class is exported
// so the warning is harmless
#if defined(_WIN32)
#pragma warning(disable: 4251)
#endif
H5std_string detail_message;
H5std_string func_name;

View File

@@ -76,7 +76,7 @@ void FileAccPropList::setStdio() const
/// driver was set for the property list. The driver ID is
/// only valid as long as the file driver remains registered.
/// Valid driver identifiers can be found at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-GetDriver
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetDriver
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -99,7 +99,7 @@ hid_t FileAccPropList::getDriver() const
///\par Description
/// For a list of valid driver identifiers, please see the C
/// layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-GetDriver
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetDriver
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setDriver(hid_t new_driver_id, const void *new_driver_info) const
@@ -157,7 +157,7 @@ hsize_t FileAccPropList::getFamilyOffset() const
///\par Description
/// For more details on the use of \c H5FD_CORE driver, please
/// refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplCore
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFaplCore
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setCore (size_t increment, hbool_t backing_store) const
@@ -225,7 +225,7 @@ void FileAccPropList::getFamily(hsize_t& memb_size, FileAccPropList& memb_plist)
{
throw PropListIException("FileAccPropList::getFamily", "H5Pget_fapl_family failed");
}
memb_plist.setId(memb_plist_id);
memb_plist.p_setId(memb_plist_id);
}
//--------------------------------------------------------------------------
@@ -261,7 +261,7 @@ FileAccPropList FileAccPropList::getFamily(hsize_t& memb_size) const
///\exception H5::PropListIException
///\par Description
/// Temporary - For information, please refer to:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplSplit
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFaplSplit
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist, const char* meta_ext, const char* raw_ext ) const
@@ -295,11 +295,13 @@ void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& ra
#ifdef H5_HAVE_STREAM // for Stream Virtual File Driver
//--------------------------------------------------------------------------
// Function: FileAccPropList::getStream
///\brief Retrieves the streaming I/O driver settings
///\return The streaming I/O file access property list structure
/// For detail on this structure, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
///\exception H5::PropListIException
// Purpose: Retrieves the streaming I/O driver settings
// Return: The streaming I/O file access property list structure
// Exception: H5::PropListIException
// Description:
// This C API seems to be removed from the library; will remove
// this wrapper next time, only removed it from the RM in this
// release - Oct, 2008
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5FD_stream_fapl_t FileAccPropList::getStream() const
@@ -315,13 +317,14 @@ H5FD_stream_fapl_t FileAccPropList::getStream() const
//--------------------------------------------------------------------------
// Function: FileAccPropList::setStream
///\brief Modifies this file access property list to use the Stream
/// driver.
///\param fapl - IN: The streaming I/O file access property list
///\exception H5::PropListIException
///\par Description
/// For detail on \a fapl, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
// Purpose: Modifies this file access property list to use the Stream
// driver.
// Param: fapl - IN: The streaming I/O file access property list
// Exception: H5::PropListIException
// Description:
// This C API seems to be removed from the library; will remove
// this wrapper next time, only removed it from the RM in this
// release - Oct, 2008
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setStream(H5FD_stream_fapl_t &fapl) const
@@ -360,7 +363,7 @@ size_t FileAccPropList::getSieveBufSize() const
///\exception H5::PropListIException
///\par Description
/// For detail on data sieving, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSieveBufSize
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSieveBufSize
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setSieveBufSize(size_t bufsize) const
@@ -380,7 +383,7 @@ void FileAccPropList::setSieveBufSize(size_t bufsize) const
///\exception H5::PropListIException
///\par Description
/// For more detail, please see the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetMetaBlockSize
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetMetaBlockSize
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setMetaBlockSize(hsize_t &block_size) const
@@ -420,7 +423,7 @@ hsize_t FileAccPropList::getMetaBlockSize() const
///\exception H5::PropListIException
///\par Description
/// For detail on \a flags, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFaplLog
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setLog(const char *logfile, unsigned flags, size_t buf_size) const
@@ -477,7 +480,7 @@ void FileAccPropList::setSec2() const
/// The parameter \a alignment must have a positive value.
///
/// For detail on \a setting alignment, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetAlignment
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetAlignment
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileAccPropList::setAlignment( hsize_t threshold, hsize_t alignment ) const
@@ -514,7 +517,7 @@ void FileAccPropList::getAlignment( hsize_t &threshold, hsize_t &alignment ) con
///\exception H5::PropListIException
///\par Description
/// More details and valid values for \a dtype can be found at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetMultiType
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetMultiType
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setMultiType(H5FD_mem_t dtype) const
@@ -533,7 +536,7 @@ void FileAccPropList::setMultiType(H5FD_mem_t dtype) const
///\exception H5::PropListIException
///\par Description
/// More details and possible returned values can be found at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-GetMultiType
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetMultiType
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5FD_mem_t FileAccPropList::getMultiType() const
@@ -634,7 +637,7 @@ H5F_close_degree_t FileAccPropList::getFcloseDegree()
///\exception H5::PropListIException
///\par Description
/// For detail on \a fapl, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetGCReferences
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileAccPropList::setGcReferences( unsigned gc_ref ) const

View File

@@ -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.

View File

@@ -126,7 +126,7 @@ hsize_t FileCreatPropList::getUserblock() const
///\par Description
/// For information on setting sizes, please refer to the
/// C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSizes
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSizes
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::setSizes( size_t sizeof_addr, size_t sizeof_size ) const
@@ -166,7 +166,7 @@ void FileCreatPropList::getSizes( size_t& sizeof_addr, size_t& sizeof_size ) con
///\exception H5::PropListIException
///\par Description
/// For information, please see the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSymK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSymK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::setSymk( unsigned ik, unsigned lk ) const
@@ -187,7 +187,7 @@ void FileCreatPropList::setSymk( unsigned ik, unsigned lk ) const
///\exception H5::PropListIException
///\par Description
/// For information, please see
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSymK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetSymK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::getSymk( unsigned& ik, unsigned& lk ) const
@@ -208,7 +208,7 @@ void FileCreatPropList::getSymk( unsigned& ik, unsigned& lk ) const
///\exception H5::PropListIException
///\par Description
/// For information, please see the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetIstoreK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetIstoreK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::setIstorek( unsigned ik ) const
@@ -228,7 +228,7 @@ void FileCreatPropList::setIstorek( unsigned ik ) const
///\exception H5::PropListIException
///\par Description
/// For information, please see
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetIstoreK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetIstoreK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
unsigned FileCreatPropList::getIstorek() const

View File

@@ -60,7 +60,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.

View File

@@ -50,7 +50,7 @@ namespace H5 {
///\brief Default constructor: creates a stub H5File object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File() : IdComponent(0) {}
H5File::H5File() : IdComponent(), id(0) {}
//--------------------------------------------------------------------------
// Function: H5File overloaded constructor
@@ -76,7 +76,7 @@ H5File::H5File() : IdComponent(0) {}
/// For info on file creation in the case of an already-open file,
/// please refer to the \b Special \b case section in the C layer
/// Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5F.html#File-Create
/// 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)
@@ -88,7 +88,7 @@ H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& c
// Function: H5File overloaded constructor
///\brief This is another overloaded constructor. It differs from the
/// above constructor only in the type of the \a name argument.
///\param name - IN: Name of the file - \c std::string
///\param name - IN: Name of the file - \c H5std_string
///\param flags - IN: File access flags
///\param create_plist - IN: File creation property list, used when
/// modifying default file meta-data. Default to
@@ -140,7 +140,11 @@ 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) : IdComponent(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: H5File::flush
@@ -187,8 +191,8 @@ bool H5File::isHdf5(const char* name)
//--------------------------------------------------------------------------
// Function: H5File::isHdf5
///\brief This is an overloaded member function, provided for convenience.
/// It takes an \c std::string for \a name.
///\param name - IN: Name of the file - \c std::string
/// It takes an \c H5std_string for \a name.
///\param name - IN: Name of the file - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
bool H5File::isHdf5(const H5std_string& name )
@@ -227,8 +231,8 @@ void H5File::openFile(const char* name, unsigned int flags, const FileAccPropLis
//--------------------------------------------------------------------------
// Function: H5File::openFile
///\brief This is an overloaded member function, provided for convenience.
/// It takes an \c std::string for \a name.
///\param name - IN: Name of the file - \c std::string
/// It takes an \c H5std_string for \a name.
///\param name - IN: Name of the file - \c H5std_string
///\param flags - IN: File access flags
///\param access_plist - IN: File access property list. Default to
/// FileAccPropList::DEFAULT
@@ -374,9 +378,9 @@ hssize_t H5File::getFreeSpace() const
/// Multiple object types can be combined with the logical OR operator (|).
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
int H5File::getObjCount(unsigned types) const
ssize_t H5File::getObjCount(unsigned types) const
{
int num_objs = H5Fget_obj_count(id, types);
ssize_t num_objs = H5Fget_obj_count(id, types);
if( num_objs < 0 )
{
throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed");
@@ -393,9 +397,9 @@ int H5File::getObjCount(unsigned types) const
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
int H5File::getObjCount() const
ssize_t H5File::getObjCount() const
{
int num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL);
ssize_t num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL);
if( num_objs < 0 )
{
throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed");
@@ -428,9 +432,9 @@ int H5File::getObjCount() const
// Notes: will do the overload for this one after hearing from Quincey???
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
void H5File::getObjIDs(unsigned types, int max_objs, hid_t *oid_list) const
void H5File::getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const
{
herr_t ret_value = H5Fget_obj_ids(id, types, max_objs, oid_list);
ssize_t ret_value = H5Fget_obj_ids(id, types, max_objs, oid_list);
if( ret_value < 0 )
{
throw FileIException("H5File::getObjIDs", "H5Fget_obj_ids failed");
@@ -502,60 +506,14 @@ H5std_string H5File::getFileName() const
}
}
//--------------------------------------------------------------------------
// Function: H5File::Reference
///\brief Important!!! - This functions does not work correctly, it
/// will be removed in the near future. Please use
/// H5File::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* H5File::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw FileIException("H5File::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::Reference
///\brief Important!!! - This functions does not work correctly, it
/// will be removed in the near future. Please use similar
/// H5File::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* H5File::Reference(const char* name) const
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw FileIException("H5File::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::Reference
///\brief Important!!! - This functions does not work correctly, it
/// will be removed in the near future. Please use similar
/// H5File::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* H5File::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
}
#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 \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
/// \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.
@@ -616,6 +574,134 @@ hsize_t H5File::getFileSize() const
return (file_size);
}
//--------------------------------------------------------------------------
// 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
@@ -629,6 +715,47 @@ hid_t H5File::getLocId() const
return( getId() );
}
//--------------------------------------------------------------------------
// Function: H5File::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t H5File::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: H5File::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5File::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception E) {
throw FileIException("H5File::p_setId", E.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: H5File::close
///\brief Closes this HDF5 file.
@@ -645,8 +772,10 @@ void H5File::close()
{
throw FileIException("H5File::close", "H5Fclose failed");
}
// reset the id because the file that it represents is now closed
id = 0;
// reset the id when the file that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -685,8 +814,7 @@ H5File::~H5File()
{
try {
close();
}
catch (Exception close_error) {
} catch (Exception close_error) {
cerr << "H5File::~H5File - " << close_error.getDetailMsg() << endl;
}
}

View File

@@ -60,12 +60,12 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Returns the number of opened object IDs (files, datasets, groups
// and datatypes) in the same file.
int getObjCount(unsigned types) const;
int getObjCount() const;
ssize_t getObjCount(unsigned types) const;
ssize_t getObjCount() const;
// Retrieves a list of opened object IDs (files, datasets, groups
// and datatypes) in the same file.
void getObjIDs(unsigned types, int max_objs, hid_t *oid_list) const;
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.
@@ -89,13 +89,12 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Creates a reference to a named HDF5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const; // will be obsolete
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;
// Creates a reference to a named Hdf5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("H5File"); }
// Throw file exception.
@@ -110,14 +109,38 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Copy constructor: makes a copy of the original H5File object.
H5File(const H5File& original);
// Gets the HDF5 file id.
virtual hid_t getId() const;
// H5File destructor.
virtual ~H5File();
private:
hid_t id; // HDF5 file id
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// This function is private and contains common code between the
// 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);
#endif // DOXYGEN_SHOULD_SKIP_THIS
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -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

View File

@@ -33,6 +33,7 @@
#include "H5DataSpace.h"
#include "H5DataSet.h"
#include "H5CommonFG.h"
#include "H5Attribute.h"
#include "H5Group.h"
#include "H5File.h"
#include "H5Alltypes.h"
@@ -50,7 +51,7 @@ namespace H5 {
///\brief Default constructor: creates a stub Group.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group() : H5Object() {}
Group::Group() : H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: Group copy constructor
@@ -58,7 +59,11 @@ Group::Group() : H5Object() {}
///\param original - IN: Original group to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group( const Group& original ) : H5Object( original ) {}
Group::Group(const Group& original) : H5Object(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: Group::getLocId
@@ -74,70 +79,72 @@ hid_t Group::getLocId() const
//--------------------------------------------------------------------------
// Function: Group overloaded constructor
///\brief Creates a Group object using the id of an existing group.
///\param group_id - IN: Id of an existing group
///\param existing_id - IN: Id of an existing group
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group( const hid_t group_id ) : H5Object( group_id ) {}
Group::Group(const hid_t existing_id) : H5Object()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: Group overload constructor - dereference
///\brief Given a reference to some object, returns that group
/// obj - IN: Location reference object is in
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param obj - IN: Specifying location referenced object is in
///\param ref - IN: Reference pointer
///\parDescription
/// \c obj can be DataSet, Group, H5File, or named DataType, that
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
///\par Description
/// \c obj can be DataSet, Group, or named DataType, that
/// is a datatype that has been named by DataType::commit.
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
Group::Group(IdComponent& obj, void* ref) : H5Object()
Group::Group(H5Object& obj, const void* ref, H5R_type_t ref_type) : H5Object()
{
IdComponent::dereference(obj, ref);
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("Group constructor - located by an H5Object",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: Group::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// Group::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
// Function: Group overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param h5file - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
void* Group::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
Group::Group(H5File& h5file, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw GroupIException("Group::Reference", E.getDetailMsg());
}
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("Group constructor - located by an H5File",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: Group::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// Group::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
// Function: Group overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param attr - IN: Specifying location where the referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
void* Group::Reference(const char* name) const
Group::Group(Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw GroupIException("Group::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: Group::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// Group::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* Group::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("Group constructor - located by an Attribute",
deref_error.getDetailMsg());
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
@@ -146,13 +153,13 @@ void* Group::Reference(const H5std_string& name) const
///\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 \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
/// \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:
/// 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
/// \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
//--------------------------------------------------------------------------
@@ -187,6 +194,47 @@ DataSpace Group::getRegion(void *ref, H5R_type_t ref_type) const
}
}
//--------------------------------------------------------------------------
// Function: Group::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t Group::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: Group::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void Group::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw GroupIException("Group::p_setId", close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: Group::close
///\brief Closes this group.
@@ -203,8 +251,10 @@ void Group::close()
{
throw GroupIException("Group::close", "H5Gclose failed");
}
// reset the id because the group that it represents is now closed
id = 0;
// reset the id when the group that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}

View File

@@ -34,15 +34,7 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Creates a reference to a named Hdf5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const; // will be obsolete
// Creates a reference to a named Hdf5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("Group"); }
// Throw group exception.
@@ -52,7 +44,9 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
virtual hid_t getLocId() const;
// Creates a group by way of dereference.
Group(IdComponent& obj, void* ref);
Group(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
Group(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
Group(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// default constructor
Group();
@@ -60,12 +54,21 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Copy constructor: makes a copy of the original object
Group(const Group& original);
// Gets the group id.
virtual hid_t getId() const;
// Destructor
virtual ~Group();
// Creates a copy of an existing group using its id.
Group( const hid_t group_id );
private:
hid_t id; // HDF5 group id
protected:
// Sets the group id.
virtual void p_setId(const hid_t new_id);
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -18,7 +18,6 @@
#endif /*H5_VMS*/
#include <string>
#include "H5Include.h"
#include "H5Exception.h"
#include "H5Library.h"
@@ -36,7 +35,7 @@ namespace H5 {
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent::IdComponent(const hid_t h5_id) : id(h5_id) {}
IdComponent::IdComponent(const hid_t h5_id) {}
//--------------------------------------------------------------------------
// Function: IdComponent copy constructor
@@ -44,11 +43,7 @@ IdComponent::IdComponent(const hid_t h5_id) : id(h5_id) {}
///\param original - IN: IdComponent instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent::IdComponent( const IdComponent& original )
{
id = original.id;
incRefCount(); // increment number of references to this id
}
IdComponent::IdComponent( const IdComponent& original ) {}
//--------------------------------------------------------------------------
// Function: IdComponent::incRefCount
@@ -69,7 +64,7 @@ void IdComponent::incRefCount(const hid_t obj_id) const
//--------------------------------------------------------------------------
void IdComponent::incRefCount() const
{
incRefCount(id);
incRefCount(getId());
}
//--------------------------------------------------------------------------
@@ -99,7 +94,7 @@ void IdComponent::decRefCount(const hid_t obj_id) const
//--------------------------------------------------------------------------
void IdComponent::decRefCount() const
{
decRefCount(id);
decRefCount(getId());
}
//--------------------------------------------------------------------------
@@ -128,13 +123,13 @@ int IdComponent::getCounter(const hid_t obj_id) const
//--------------------------------------------------------------------------
int IdComponent::getCounter() const
{
return (getCounter(id));
return (getCounter(getId()));
}
//--------------------------------------------------------------------------
// Function: hdfObjectType
///\brief Given an id, returns the type of the object.
///return a valid HDF object type, which may be one of the following:
///\return a valid HDF object type, which may be one of the following:
/// \li \c H5I_FILE
/// \li \c H5I_GROUP
/// \li \c H5I_DATATYPE
@@ -173,7 +168,7 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
if (this != &rhs)
{
// handling references to this id
try {
try {
close();
}
catch (Exception close_error) {
@@ -181,10 +176,9 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
}
// copy the data members from the rhs object
id = rhs.id;
// increment the reference counter
incRefCount();
setId(rhs.getId());
// incRefCount(getId()); // a = b, so there are two objects with the same
// hdf5 id
}
return *this;
}
@@ -196,39 +190,30 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2008/7/23 - BMR
// Changed all subclasses' setId to p_setId and put back setId
// here. p_setId is used in the library where the id provided
// by a C API passed on to user's application in the form of a
// C++ API object, which will be destroyed properly, and so
// p_setId does not call incRefCount. On the other hand, the
// public version setId is used by other applications, in which
// the id passed to setId already has a reference count, so setId
// must call incRefCount.
//--------------------------------------------------------------------------
void IdComponent::setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw IdComponentException(inMemFunc("copy"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
// set to new_id
p_setId(new_id);
// increment the reference counter of the new id
incRefCount();
}
//--------------------------------------------------------------------------
// Function: IdComponent::getId
///\brief Returns the id of this object
///\return HDF5 id
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hid_t IdComponent::getId () const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: IdComponent destructor
///\brief Noop destructor.
@@ -273,7 +258,7 @@ H5std_string IdComponent::inMemFunc(const char* func_name) const
///\brief Default constructor.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent::IdComponent() : id(-1) {}
IdComponent::IdComponent() {}
//--------------------------------------------------------------------------
// Function: IdComponent::p_get_file_name (protected)
@@ -287,8 +272,10 @@ IdComponent::IdComponent() : id(-1) {}
//--------------------------------------------------------------------------
H5std_string IdComponent::p_get_file_name() const
{
hid_t temp_id = getId();
// Preliminary call to H5Fget_name to get the length of the file name
ssize_t name_size = H5Fget_name(id, NULL, 0);
ssize_t name_size = H5Fget_name(temp_id, NULL, 0);
// If H5Aget_name returns a negative value, raise an exception,
if( name_size < 0 )
@@ -298,7 +285,7 @@ H5std_string IdComponent::p_get_file_name() const
// Call H5Fget_name again to get the actual file name
char* name_C = new char[name_size+1]; // temporary C-string for C API
name_size = H5Fget_name(id, name_C, name_size+1);
name_size = H5Fget_name(temp_id, name_C, name_size+1);
// Check for failure again
if( name_size < 0 )
@@ -312,178 +299,6 @@ H5std_string IdComponent::p_get_file_name() const
return(file_name);
}
//--------------------------------------------------------------------------
// Function: IdComponent::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 IdComponent::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
{
herr_t ret_value = H5Rcreate(ref, id, name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
}
//--------------------------------------------------------------------------
// Function: IdComponent::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 \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region
/// reference. - this is the default
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void IdComponent::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("IdComponent::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: IdComponent::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 IdComponent::reference(void* ref, const char* name) const
{
try {
p_reference(ref, name, -1, H5R_OBJECT);
}
catch (IdComponentException E) {
throw IdComponentException("IdComponent::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: IdComponent::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it takes an
/// \c std::string for the object's name.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c std::string
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void IdComponent::reference(void* ref, const H5std_string& name) const
{
reference(ref, name.c_str());
}
//--------------------------------------------------------------------------
// Function: IdComponent::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
// Return A reference
// Exception H5::IdComponentException
// Notes This function is incorrect, and will be removed in the near
// future after notifying users of the new APIs ::reference's.
// BMR - Oct 8, 2006
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* IdComponent::p_reference(const char* name, hid_t space_id, H5R_type_t ref_type) const
{
hobj_ref_t ref;
herr_t ret_value = H5Rcreate(&ref, id, name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
return (reinterpret_cast<void*>(ref));
}
//--------------------------------------------------------------------------
// Function: IdComponent::dereference
// Purpose Opens the HDF5 object referenced.
// Parameters
// obj - IN: Dataset reference object is in or location of
// object that the dataset is located within.
// ref - IN: Reference pointer
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
void IdComponent::dereference(IdComponent& obj, void* ref)
{
id = H5Rdereference(obj.getId(), H5R_OBJECT, ref);
if (id < 0)
{
throw IdComponentException("", "H5Rdereference failed");
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: IdComponent::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 IdComponent::p_get_obj_type(void *ref, H5R_type_t ref_type) const
{
H5G_obj_t obj_type = H5Rget_obj_type1(id, ref_type, ref);
if (obj_type == H5G_UNKNOWN)
{
throw IdComponentException("", "H5Rget_obj_type failed");
}
return(obj_type);
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: IdComponent::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 IdComponent::p_get_region(void *ref, H5R_type_t ref_type) const
{
hid_t space_id = H5Rget_region(id, ref_type, ref);
if (space_id < 0)
{
throw IdComponentException("", "H5Rget_region failed");
}
return(space_id);
}
//
// Local functions used in this class
//
@@ -495,7 +310,7 @@ hid_t IdComponent::p_get_region(void *ref, H5R_type_t ref_type) const
// Return true if id is valid, false, otherwise
// Programmer Binh-Minh Ribler - May, 2005
//--------------------------------------------------------------------------
bool IdComponent::p_valid_id(const hid_t obj_id) const
bool IdComponent::p_valid_id(const hid_t obj_id)
{
H5I_type_t id_type = H5Iget_type(obj_id);
if (id_type <= H5I_BADID || id_type >= H5I_NTYPES)

View File

@@ -44,13 +44,8 @@ class H5_DLLCPP IdComponent {
// Assignment operator.
IdComponent& operator=( const IdComponent& rhs );
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.
void dereference(IdComponent& obj, void* ref);
// Gets the identifier of this object.
virtual hid_t getId () const = 0;
// Sets the identifier of this object to a new value.
void setId(const hid_t new_id);
@@ -61,9 +56,6 @@ class H5_DLLCPP IdComponent {
// Copy constructor: makes copy of the original IdComponent object.
IdComponent( const IdComponent& original );
// Gets the value of IdComponent's data member.
virtual hid_t getId () const;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Pure virtual function for there are various H5*close for the
// subclasses.
@@ -73,7 +65,7 @@ class H5_DLLCPP IdComponent {
// <class-name> 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
@@ -83,7 +75,6 @@ class H5_DLLCPP IdComponent {
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
hid_t id; // HDF5 object id
// Default constructor.
IdComponent();
@@ -91,23 +82,12 @@ class H5_DLLCPP IdComponent {
// Gets the name of the file, in which an HDF5 object belongs.
H5std_string p_get_file_name() const;
// 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;
void* p_reference(const char* name, hid_t space_id, H5R_type_t ref_type) const; // will be removed
#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;
// Verifies that the given id is valid.
bool p_valid_id(const hid_t obj_id) const;
static bool p_valid_id(const hid_t obj_id);
// Sets the identifier of this object to a new value. - this one
// doesn't increment reference count
virtual void p_setId(const hid_t new_id) = 0;
#endif // DOXYGEN_SHOULD_SKIP_THIS

View File

@@ -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

View File

@@ -106,7 +106,7 @@ void H5Library::getLibVersion( unsigned& majnum, unsigned& minnum, unsigned& rel
///\par Description
/// For information about library version, please refer to
/// the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5.html#Library-VersCheck
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5.html#Library-VersCheck
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Library::checkVersion(unsigned majnum, unsigned minnum, unsigned relnum)
@@ -161,7 +161,7 @@ void H5Library::garbageCollect()
/// Setting a value of -1 for a limit means no limit of that type.
/// For more information on free list limits, please refer to C
/// layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5.html#Library-SetFreeListLimits
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5.html#Library-SetFreeListLimits
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Library::setFreeListLimits(int reg_global_lim, int reg_list_lim,

View File

@@ -21,10 +21,15 @@
#include "H5PropList.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
@@ -103,7 +108,7 @@ Attribute H5Object::createAttribute( const char* name, const DataType& data_type
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(id, name, type_id, space_id, plist_id, H5P_DEFAULT );
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 )
@@ -119,7 +124,7 @@ Attribute H5Object::createAttribute( const char* name, const DataType& data_type
// 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 std::string for \a name.
/// 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
@@ -137,7 +142,7 @@ Attribute H5Object::createAttribute( const H5std_string& name, const DataType& d
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const char* name ) const
{
hid_t attr_id = H5Aopen( id, name, H5P_DEFAULT );
hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
@@ -153,7 +158,7 @@ Attribute H5Object::openAttribute( const char* name ) const
// 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 std::string for \a name.
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const H5std_string& name ) const
@@ -171,7 +176,8 @@ Attribute H5Object::openAttribute( const H5std_string& name ) const
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const unsigned int idx ) const
{
hid_t attr_id = H5Aopen_by_idx(id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT);
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 );
@@ -188,7 +194,7 @@ Attribute H5Object::openAttribute( const unsigned int idx ) const
///\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 _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
@@ -196,7 +202,7 @@ Attribute H5Object::openAttribute( const unsigned int idx ) const
///\par Description
/// For information, please refer to the C layer Reference Manual
/// at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5A.html#Annot-Iterate
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5A.html#Annot-Create2
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data )
@@ -208,15 +214,17 @@ int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_da
userData->object = this;
// call the C library routine H5Aiterate2 to iterate the attributes
hsize_t idx = (hsize_t)*_idx;
int ret_value = H5Aiterate2(id, H5_INDEX_NAME, H5_ITER_INC, &idx, userAttrOpWrpr, (void *) userData);
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 */
*_idx = (unsigned)idx;
if (_idx)
*_idx = (unsigned)idx;
return( ret_value );
}
@@ -235,7 +243,7 @@ int H5Object::getNumAttrs() const
{
H5O_info_t oinfo; /* Object info */
if(H5Oget_info(id, &oinfo) < 0)
if(H5Oget_info(getId(), &oinfo) < 0)
throw AttributeIException(inMemFunc("getNumAttrs"), "H5Oget_info failed");
else
return( (int)oinfo.num_attrs );
@@ -250,7 +258,7 @@ int H5Object::getNumAttrs() const
//--------------------------------------------------------------------------
void H5Object::removeAttr( const char* name ) const
{
herr_t ret_value = H5Adelete(id, name);
herr_t ret_value = H5Adelete(getId(), name);
if( ret_value < 0 )
throw AttributeIException(inMemFunc("removeAttr"), "H5Adelete failed");
}
@@ -259,7 +267,7 @@ void H5Object::removeAttr( const char* name ) const
// 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 std::string for \a name.
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::removeAttr( const H5std_string& name ) const
@@ -277,7 +285,7 @@ void H5Object::removeAttr( const H5std_string& name ) const
//--------------------------------------------------------------------------
void H5Object::renameAttr(const char* oldname, const char* newname) const
{
herr_t ret_value = H5Arename(id, oldname, newname);
herr_t ret_value = H5Arename(getId(), oldname, newname);
if (ret_value < 0)
throw AttributeIException(inMemFunc("renameAttr"), "H5Arename failed");
}
@@ -286,7 +294,7 @@ void H5Object::renameAttr(const char* oldname, const char* newname) const
// 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 std::string for the names.
/// 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
@@ -306,9 +314,9 @@ void H5Object::renameAttr(const H5std_string& oldname, const H5std_string& newna
/// This object is used to identify the file to be flushed.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::flush(H5F_scope_t scope ) const
void H5Object::flush(H5F_scope_t scope) const
{
herr_t ret_value = H5Fflush( id, scope );
herr_t ret_value = H5Fflush(getId(), scope);
if( ret_value < 0 )
{
throw FileIException(inMemFunc("flush"), "H5Fflush failed");
@@ -332,6 +340,235 @@ H5std_string H5Object::getFileName() const
}
}
//--------------------------------------------------------------------------
// 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 = H5Rdereference(loc_id, 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);
}
//--------------------------------------------------------------------------
// Function: H5Object destructor
///\brief Noop destructor.

View File

@@ -20,8 +20,7 @@
#include "H5Classes.h" // constains forward class declarations
// H5Object is a baseclass. It has these subclasses:
// Group, AbstractDs, and DataType.
// AbstractDs, in turn, has subclasses DataSet and Attribute.
// Group, DataSet, and DataType.
// DataType, in turn, has several specific datatypes as subclasses.
#ifndef H5_NO_NAMESPACE
@@ -80,6 +79,19 @@ class H5_DLLCPP H5Object : public IdComponent {
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);
@@ -93,6 +105,24 @@ 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 */

View File

@@ -289,7 +289,6 @@ void PredType::commit( H5Object& loc, const H5std_string& name )
bool PredType::committed()
{
throw DataTypeIException("PredType::committed", "Error: Attempting to check for commit status on a predefined datatype." );
return (0);
}
#endif // DOXYGEN_SHOULD_SKIP_THIS

View File

@@ -28,7 +28,7 @@ namespace H5 {
class H5_DLLCPP PredType : public AtomType {
public:
// 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

View File

@@ -25,6 +25,7 @@
#include "H5Exception.h"
#include "H5IdComponent.h"
#include "H5PropList.h"
#include "H5private.h" // for HDfree
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -44,7 +45,7 @@ const PropList PropList::DEFAULT( H5P_DEFAULT );
///\brief Default constructor: creates a stub property list object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList() : IdComponent( 0 ) {}
PropList::PropList() : IdComponent(), id(0) {}
//--------------------------------------------------------------------------
// Function: PropList copy constructor
@@ -52,7 +53,11 @@ PropList::PropList() : IdComponent( 0 ) {}
///\param original - IN: The original property list to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList( const PropList& original ) : IdComponent( original ) {}
PropList::PropList(const PropList& original) : IdComponent(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: PropList overloaded constructor
@@ -68,7 +73,7 @@ PropList::PropList( const PropList& original ) : IdComponent( original ) {}
// description was what I came up with from reading the code.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList( const hid_t plist_id ) : IdComponent(0)
PropList::PropList( const hid_t plist_id ) : IdComponent()
{
if (H5I_GENPROP_CLS == H5Iget_type(plist_id)) {
// call C routine to create the new property
@@ -157,7 +162,7 @@ void PropList::copyProp(PropList& dest, const char *name) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param dest - IN: Destination property list or class
///\param name - IN: Name of the property to copy - \c std::string
///\param name - IN: Name of the property to copy - \c H5std_string
// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
void PropList::copyProp( PropList& dest, const H5std_string& name ) const
@@ -194,7 +199,7 @@ void PropList::copyProp( PropList& dest, PropList& src, const char *name ) const
/// accepts. - Obsolete
///\param dest - IN: Destination property list or class
///\param src - IN: Source property list or class
///\param name - IN: Name of the property to copy - \c std::string
///\param name - IN: Name of the property to copy - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void PropList::copyProp( PropList& dest, PropList& src, const H5std_string& name ) const
@@ -202,6 +207,46 @@ void PropList::copyProp( PropList& dest, PropList& src, const H5std_string& name
copyProp( dest, src, name.c_str());
}
//--------------------------------------------------------------------------
// Function: PropList::getId
// Purpose: Get the id of this attribute
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t PropList::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: PropList::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void PropList::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw PropListIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: PropList::close
///\brief Closes the property list if it is not a default one.
@@ -218,8 +263,10 @@ void PropList::close()
{
throw PropListIException(inMemFunc("close"), "H5Pclose failed");
}
// reset the id because the property list that it represents is now closed
id = 0;
// reset the id when the property list that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -273,7 +320,7 @@ bool PropList::propExist(const char* name ) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to check for - \c std::string
///\param name - IN: Name of property to check for - \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
bool PropList::propExist(const H5std_string& name ) const
@@ -326,7 +373,7 @@ void PropList::getProperty(const char* name, void* value) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c char pointer
///\return The property that is a \c std::string.
///\return The property that is a \c H5std_string.
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -343,7 +390,7 @@ H5std_string PropList::getProperty(const char* name) const
}
// Return propety value as a string after deleting temp C-string
H5std_string prop_strg = H5std_string(prop_strg_C);
H5std_string prop_strg(prop_strg_C);
delete []prop_strg_C;
return (prop_strg);
}
@@ -352,7 +399,7 @@ H5std_string PropList::getProperty(const char* name) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c std::string
///\param name - IN: Name of property to query - \c H5std_string
///\param value - OUT: Pointer to the buffer for the property value
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -365,8 +412,8 @@ void PropList::getProperty(const H5std_string& name, void* value) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c std::string
///\return The property that is a \c std::string.
///\param name - IN: Name of property to query - \c H5std_string
///\return The property that is a \c H5std_string.
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5std_string PropList::getProperty(const H5std_string& name) const
@@ -402,7 +449,7 @@ size_t PropList::getPropSize(const char *name) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c std::string
///\param name - IN: Name of property to query - \c H5std_string
///
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -421,12 +468,13 @@ size_t PropList::getPropSize(const H5std_string& name) const
H5std_string PropList::getClassName() const
{
char* temp_str;
temp_str = H5Pget_class_name(id);
temp_str = H5Pget_class_name(id); // this API specified that temp_str must
// be freed.
if (temp_str != NULL)
{
H5std_string class_name = H5std_string(temp_str);
free(temp_str);
H5std_string class_name(temp_str);
HDfree(temp_str);
return(class_name);
}
else
@@ -489,7 +537,7 @@ void PropList::setProperty(const char* name, const char* charptr) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c char pointer
///\param strg - IN: Value for the property is a \c std::string
///\param strg - IN: Value for the property is a \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void PropList::setProperty(const char* name, H5std_string& strg) const
@@ -502,7 +550,7 @@ void PropList::setProperty(const char* name, H5std_string& strg) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c std::string
///\param name - IN: Name of property to set - \c H5std_string
///\param value - IN: Void pointer to the value for the property
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -516,8 +564,8 @@ void PropList::setProperty(const H5std_string& name, void* value) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c std::string
///\param strg - IN: Value for the property is a \c std::string
///\param name - IN: Name of property to set - \c H5std_string
///\param strg - IN: Value for the property is a \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void PropList::setProperty(const H5std_string& name, H5std_string& strg) const
@@ -569,7 +617,7 @@ void PropList::removeProp(const char *name) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to remove - \c std::string
///\param name - IN: Name of property to remove - \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void PropList::removeProp(const H5std_string& name) const

View File

@@ -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.
@@ -103,8 +103,17 @@ class H5_DLLCPP PropList : public IdComponent {
// Copy constructor: creates a copy of a PropList object.
PropList(const PropList& original);
// Gets the property list id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this property list.
virtual ~PropList();
protected:
hid_t id; // HDF5 property list id
// Sets the property list id.
virtual void p_setId(const hid_t new_id);
};
#ifndef H5_NO_NAMESPACE

View File

@@ -87,7 +87,7 @@ StrType::StrType( const PredType& pred_type, const size_t& size ) : AtomType()
// Function: StrType overloaded constructor
///\brief Creates a string datatype with a specified length
///\param dummy - IN: To simplify calling the previous constructor
// and avoid prototype clash with another constructor
/// and avoid prototype clash with another constructor
///\param size - IN: Length of the new string type
///\exception H5::DataTypeIException
///\par Description
@@ -209,7 +209,7 @@ H5T_str_t StrType::getStrpad() const
///\exception H5::DataTypeIException
///\par Description
/// For detail, please refer to the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-SetStrpad
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-SetStrpad
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void StrType::setStrpad( H5T_str_t strpad ) const

View File

@@ -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

View File

@@ -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.

View File

@@ -19,6 +19,7 @@
#
include $(top_srcdir)/config/commence.am
include $(top_srcdir)/config/lt_vers.am
# Include src directory
INCLUDES=-I$(top_srcdir)/src
@@ -26,10 +27,13 @@ INCLUDES=-I$(top_srcdir)/src
# This is our main target
lib_LTLIBRARIES=libhdf5_cpp.la
# Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am)
libhdf5_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
# Shared C++ libraries aren't universally supported.
if CXX_SHARED_CONDITIONAL
else
AM_LDFLAGS=-static
AM_LDFLAGS+=-static
endif
bin_SCRIPTS=h5c++
@@ -64,6 +68,6 @@ mostlyclean-local:
fi
# Mark this directory as part of the C++ API
HDF_CXX=yes
CXX_API=yes
include $(top_srcdir)/config/conclude.am

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in 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.
@@ -35,8 +36,9 @@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -54,7 +56,11 @@ host_triplet = @host@
DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/h5c++.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am
$(top_srcdir)/config/conclude.am \
$(top_srcdir)/config/lt_vers.am
# Shared C++ libraries aren't universally supported.
@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
TESTS =
subdir = c++/src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -64,15 +70,30 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES = h5c++
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
"$(DESTDIR)$(includedir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libhdf5_cpp_la_LIBADD =
am_libhdf5_cpp_la_OBJECTS = H5Exception.lo H5IdComponent.lo \
@@ -83,11 +104,14 @@ am_libhdf5_cpp_la_OBJECTS = H5Exception.lo H5IdComponent.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)
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
libhdf5_cpp_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(libhdf5_cpp_la_LDFLAGS) $(LDFLAGS) -o $@
SCRIPTS = $(bin_SCRIPTS)
DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -99,14 +123,25 @@ CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libhdf5_cpp_la_SOURCES)
DIST_SOURCES = $(libhdf5_cpp_la_SOURCES)
includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS)
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@ $(am__append_1)
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -120,46 +155,47 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -168,11 +204,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -180,11 +219,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LINUX_LFS = @LINUX_LFS@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -193,13 +237,19 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
@@ -212,22 +262,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -236,13 +285,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -258,8 +308,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -267,15 +321,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -288,6 +341,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -333,14 +387,20 @@ TRACE = perl $(top_srcdir)/bin/trace
# *.clog are from the MPE option.
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 = 3
LT_VERS_AGE = 0
# Include src directory
INCLUDES = -I$(top_srcdir)/src
# This is our main target
lib_LTLIBRARIES = libhdf5_cpp.la
# Shared C++ libraries aren't universally supported.
@CXX_SHARED_CONDITIONAL_FALSE@AM_LDFLAGS = -static
# Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am)
libhdf5_cpp_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
bin_SCRIPTS = h5c++
# Source files for the library
@@ -367,7 +427,7 @@ include_HEADERS = H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h
DISTCLEANFILES = h5c++ libhdf5.settings
# Mark this directory as part of the C++ API
HDF_CXX = yes
CXX_API = yes
# 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.,
@@ -388,18 +448,18 @@ all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/conclude.am $(am__configure_deps)
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/lt_vers.am $(top_srcdir)/config/conclude.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/src/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/src/Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -417,25 +477,30 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
h5c++: $(top_builddir)/config.status $(srcdir)/h5c++.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
list2="$$list2 $$p"; \
else :; fi; \
done
done; \
test -z "$$list2" || { \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
done
clean-libLTLIBRARIES:
@@ -447,26 +512,41 @@ clean-libLTLIBRARIES:
rm -f "$${dir}/so_locations"; \
done
libhdf5_cpp.la: $(libhdf5_cpp_la_OBJECTS) $(libhdf5_cpp_la_DEPENDENCIES)
$(CXXLINK) -rpath $(libdir) $(libhdf5_cpp_la_OBJECTS) $(libhdf5_cpp_la_LIBADD) $(LIBS)
$(libhdf5_cpp_la_LINK) -rpath $(libdir) $(libhdf5_cpp_la_OBJECTS) $(libhdf5_cpp_la_LIBADD) $(LIBS)
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_SCRIPTS)'; for p in $$list; do \
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f $$d$$p; then \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
$(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
else :; fi; \
done
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n' \
-e 'h;s|.*|.|' \
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
if (++n[d] == $(am__install_max)) { \
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
else { print "f", d "/" $$4, $$1 } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
@list='$(bin_SCRIPTS)'; for p in $$list; do \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
rm -f "$(DESTDIR)$(bindir)/$$f"; \
done
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 's,.*/,,;$(transform)'`; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -503,21 +583,21 @@ distclean-compile:
.cpp.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
@@ -530,65 +610,72 @@ clean-libtool:
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
$(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
rm -f "$(DESTDIR)$(includedir)/$$f"; \
done
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(includedir)" && rm -f $$files
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -609,13 +696,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -647,6 +738,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -669,6 +761,8 @@ dvi-am:
html: html-am
html-am:
info: info-am
info-am:
@@ -677,18 +771,28 @@ install-data-am: install-includeHEADERS
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-binSCRIPTS install-libLTLIBRARIES
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -712,7 +816,7 @@ ps-am:
uninstall-am: uninstall-binSCRIPTS uninstall-includeHEADERS \
uninstall-libLTLIBRARIES
.MAKE: install-am install-strip
.MAKE: check-am install-am install-strip
.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
clean clean-generic clean-libLTLIBRARIES clean-libtool ctags \
@@ -743,6 +847,19 @@ uninstall-am: uninstall-binSCRIPTS uninstall-includeHEADERS \
help:
@$(top_srcdir)/bin/makehelp
# 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.
# Some C++ compilers/linkers (PGI?) create a directory named "ii_files" that
# holds *.ii files, which are template entity instantiations.
# This entire directory should be cleaned.
@@ -839,10 +956,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -878,10 +995,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \
@@ -945,6 +1062,7 @@ check-vfd: $(LIB) $(PROGS) $(TESTS)
HDF5_DRIVER=$$vfd $(MAKE) $(AM_MAKEFLAGS) check || exit 1; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -56,9 +56,9 @@ get_output_file="no"
SHOW="eval"
CXXBASE="@CXX@"
CXXLINKERBASE="@CXX@"
CXXFLAGS="@CXXFLAGS@"
CPPFLAGS="@CPPFLAGS@"
LDFLAGS="@LDFLAGS@"
CXXFLAGS="@AM_CXXFLAGS@ @CXXFLAGS@"
CPPFLAGS="@AM_CPPFLAGS@ @CPPFLAGS@"
LDFLAGS="@AM_LDFLAGS@ @LDFLAGS@"
LIBS="@LIBS@"
CXX="${HDF5_CXX:-$CXXBASE}"
@@ -317,7 +317,7 @@ if test "x$do_link" = "xyes"; then
# module. It's okay if they're included twice in the compile line.
link_args="$link_args $LIBS"
$SHOW $CXXLINKER $CPPFLAGS $CXXFLAGS $LDFLAGS $clibpath $link_objs $link_args $shared_link
$SHOW $CXXLINKER $CPPFLAGS $CXXFLAGS $clibpath $link_objs $link_args $shared_link $LDFLAGS
status=$?
fi

View File

@@ -26,7 +26,7 @@ INCLUDES=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src
# Shared C++ libraries aren't universally supported.
if CXX_SHARED_CONDITIONAL
else
AM_LDFLAGS=-static
AM_LDFLAGS+=-static
endif
# These are our main targets. They should be listed in the order to be
@@ -39,10 +39,10 @@ LDADD=$(LIBH5TEST) $(LIBH5CPP) $(LIBHDF5)
dsets_SOURCES=dsets.cpp h5cpputil.cpp
testhdf5_SOURCES=testhdf5.cpp tattr.cpp tcompound.cpp tfile.cpp tfilter.cpp \
th5s.cpp trefer.cpp ttypes.cpp tvlstr.cpp h5cpputil.cpp
th5s.cpp tlinks.cpp trefer.cpp ttypes.cpp tvlstr.cpp h5cpputil.cpp
# Tell conclude.am that these are C++ tests.
HDF_CXX=yes
CXX_API=yes
# Some C++ compilers/linkers (PGI?) create a directory named "ii_files" that
# holds *.ii files, which are template entity instantiations.

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in 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.
@@ -32,8 +33,9 @@
#
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -51,6 +53,9 @@ host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am
# Shared C++ libraries aren't universally supported.
@CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
check_PROGRAMS = $(am__EXEEXT_1)
TESTS = $(check_PROGRAMS)
subdir = c++/test
@@ -61,6 +66,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__EXEEXT_1 = dsets$(EXEEXT) testhdf5$(EXEEXT)
am_dsets_OBJECTS = dsets.$(OBJEXT) h5cpputil.$(OBJEXT)
dsets_OBJECTS = $(am_dsets_OBJECTS)
@@ -68,14 +74,15 @@ dsets_LDADD = $(LDADD)
dsets_DEPENDENCIES = $(LIBH5TEST) $(LIBH5CPP) $(LIBHDF5)
am_testhdf5_OBJECTS = testhdf5.$(OBJEXT) tattr.$(OBJEXT) \
tcompound.$(OBJEXT) tfile.$(OBJEXT) tfilter.$(OBJEXT) \
th5s.$(OBJEXT) trefer.$(OBJEXT) ttypes.$(OBJEXT) \
tvlstr.$(OBJEXT) h5cpputil.$(OBJEXT)
th5s.$(OBJEXT) tlinks.$(OBJEXT) trefer.$(OBJEXT) \
ttypes.$(OBJEXT) tvlstr.$(OBJEXT) h5cpputil.$(OBJEXT)
testhdf5_OBJECTS = $(am_testhdf5_OBJECTS)
testhdf5_LDADD = $(LDADD)
testhdf5_DEPENDENCIES = $(LIBH5TEST) $(LIBH5CPP) $(LIBHDF5)
DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -89,10 +96,22 @@ SOURCES = $(dsets_SOURCES) $(testhdf5_SOURCES)
DIST_SOURCES = $(dsets_SOURCES) $(testhdf5_SOURCES)
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@ $(am__append_1)
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -106,46 +125,47 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -154,11 +174,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -166,11 +189,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LINUX_LFS = @LINUX_LFS@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -179,13 +207,19 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
@@ -198,22 +232,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -222,13 +255,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -244,8 +278,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -253,15 +291,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -274,6 +311,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -322,9 +360,6 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Include src, test, and c++/src directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src
# Shared C++ libraries aren't universally supported.
@CXX_SHARED_CONDITIONAL_FALSE@AM_LDFLAGS = -static
# 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 = dsets testhdf5
@@ -333,11 +368,11 @@ TEST_PROG = dsets testhdf5
LDADD = $(LIBH5TEST) $(LIBH5CPP) $(LIBHDF5)
dsets_SOURCES = dsets.cpp h5cpputil.cpp
testhdf5_SOURCES = testhdf5.cpp tattr.cpp tcompound.cpp tfile.cpp tfilter.cpp \
th5s.cpp trefer.cpp ttypes.cpp tvlstr.cpp h5cpputil.cpp
th5s.cpp tlinks.cpp trefer.cpp ttypes.cpp tvlstr.cpp h5cpputil.cpp
# Tell conclude.am that these are C++ tests.
HDF_CXX = yes
CXX_API = yes
# 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.,
@@ -362,14 +397,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/test/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/test/Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/test/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -387,13 +422,16 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-checkPROGRAMS:
@list='$(check_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
dsets$(EXEEXT): $(dsets_OBJECTS) $(dsets_DEPENDENCIES)
@rm -f dsets$(EXEEXT)
$(CXXLINK) $(dsets_OBJECTS) $(dsets_LDADD) $(LIBS)
@@ -415,27 +453,28 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tfile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tfilter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/th5s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlinks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trefer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttypes.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tvlstr.Po@am__quote@
.cpp.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
@@ -451,45 +490,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -510,13 +553,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -546,6 +593,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -567,6 +615,8 @@ dvi-am:
html: html-am
html-am:
info: info-am
info-am:
@@ -575,18 +625,28 @@ install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -609,7 +669,7 @@ ps-am:
uninstall-am:
.MAKE: install-am install-strip
.MAKE: check-am install-am install-strip
.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
clean clean-checkPROGRAMS clean-generic clean-libtool ctags \
@@ -733,10 +793,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -772,10 +832,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \
@@ -839,6 +899,7 @@ check-vfd: $(LIB) $(PROGS) $(TESTS)
HDF5_DRIVER=$$vfd $(MAKE) $(AM_MAKEFLAGS) check || exit 1; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -352,7 +352,7 @@ test_tconv( H5File& file)
} // test_tconv
/* This message derives from H5Z */
const H5Z_class_t H5Z_BOGUS[1] = {{
const H5Z_class2_t H5Z_BOGUS[1] = {{
H5Z_CLASS_T_VERS, /* H5Z_class_t version number */
H5Z_FILTER_BOGUS, /* Filter id number */
1, 1, /* Encode and decode enabled */
@@ -413,8 +413,10 @@ filter_bogus(unsigned int flags, size_t cd_nelmts,
static herr_t
test_compression(H5File& file)
{
#ifndef H5_HAVE_FILTER_DEFLATE
const char *not_supported;
not_supported = " Deflate compression is not enabled.";
#endif /* H5_HAVE_FILTER_DEFLATE */
int points[100][200];
int check[100][200];
hsize_t i, j, n;
@@ -423,7 +425,7 @@ test_compression(H5File& file)
for (i = n = 0; i < 100; i++)
{
for (j = 0; j < 200; j++) {
points[i][j] = n++;
points[i][j] = (int)n++;
}
}
char* tconv_buf = new char [1000];
@@ -487,7 +489,7 @@ test_compression(H5File& file)
{
for (j=0; j<size[1]; j++)
{
points[i][j] = n++;
points[i][j] = (int)n++;
}
}

View File

@@ -112,7 +112,7 @@ void issue_fail_msg(const char* where, int line, const char* file_name,
* different, the function will print out a message and the
* different values. This function is made to reuse the code
* segment that is used in various places throughout
* the test code. Where the C version of this code segment
* the test code. Where the C version of this code segment
* "goto error," this function will return -1.
*
* Return: Success: 0

View File

@@ -113,25 +113,27 @@ template <class Type1, class Type2>
#ifdef __cplusplus
extern "C" {
#endif
void test_attr(void);
void test_compound(void);
void test_file(void);
void test_filters(void);
void test_h5s(void);
void test_reference(void);
void test_types(void);
void test_vlstrings(void);
void test_attr();
void test_compound();
void test_file();
void test_filters();
void test_links();
void test_h5s();
void test_reference();
void test_types();
void test_vlstrings();
/* Prototypes for the cleanup routines */
void cleanup_attr(void);
void cleanup_compound(void);
void cleanup_dsets(void);
void cleanup_file(void);
void cleanup_filters(void);
void cleanup_h5s(void);
void cleanup_reference(void);
void cleanup_types(void);
void cleanup_vlstrings(void);
void cleanup_attr();
void cleanup_compound();
void cleanup_dsets();
void cleanup_file();
void cleanup_filters();
void cleanup_links();
void cleanup_h5s();
void cleanup_reference();
void cleanup_types();
void cleanup_vlstrings();
#ifdef __cplusplus
}

View File

@@ -356,7 +356,7 @@ static void test_attr_basic_read()
for(i=0; i<ATTR2_DIM1; i++)
for(j=0; j<ATTR2_DIM2; j++)
if(attr_data2[i][j]!=read_data2[i][j]) {
TestErrPrintf("%d: attribute data different: attr_data2[%d][%d]=%d, read_data2[%d][%d]=%d\n",__LINE__, i,j,attr_data2[i][j],i,j,read_data1[i]);
TestErrPrintf("%d: attribute data different: attr_data2[%d][%d]=%d, read_data2[%d][%d]=%d\n",__LINE__, i,j,attr_data2[i][j],i,j,read_data2[i][j]);
}
PASSED();
} // end try block
@@ -1043,13 +1043,18 @@ static void test_attr_dtype_shared()
// Get size of file
h5_stat_size_t empty_filesize; // Size of empty file
empty_filesize = h5_get_file_size(FILENAME.c_str());
empty_filesize = h5_get_file_size(FILENAME.c_str(), H5P_DEFAULT);
if (empty_filesize < 0)
TestErrPrintf("Line %d: file size wrong!\n",__LINE__);
TestErrPrintf("Line %d: file size wrong!\n", __LINE__);
// Open the file again
fid1.openFile(FILENAME, H5F_ACC_RDWR);
// Enclosing to work around the issue of unused variables and/or
// objects created by copy constructors stay around until end of
// scope, causing incorrect number of ref counts.
{ // First enclosed block
// Create a datatype to commit and use
IntType dtype(PredType::NATIVE_INT);
@@ -1065,13 +1070,6 @@ static void test_attr_dtype_shared()
// Create dataspace for dataset
DataSpace dspace;
// Enclose the following so that all temporary objects can be
// destroyed before testing reference count - this is to overcome
// the different time when the temporary objects are to be destroyed
// by different compilers.
{
// Create dataset
DataSet dset = fid1.createDataSet(DSET1_NAME, dtype, dspace);
#ifndef H5_NO_DEPRECATED_SYMBOLS
@@ -1089,8 +1087,8 @@ static void test_attr_dtype_shared()
verify_val((int)statbuf.nlink, 3, "DataSet::getObjinfo", __LINE__, __FILE__);
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Close attribute
attr.close();
// Close attribute
attr.close();
// Delete attribute
dset.removeAttr(ATTR1_NAME);
@@ -1101,8 +1099,8 @@ static void test_attr_dtype_shared()
verify_val((int)statbuf.nlink, 2, "DataSet::getObjinfo after DataSet::removeAttr", __LINE__, __FILE__);
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Create attribute on dataset
attr = dset.createAttribute(ATTR1_NAME,dtype,dspace);
// Create attribute on dataset
attr = dset.createAttribute(ATTR1_NAME,dtype,dspace);
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Check reference count on named datatype
@@ -1118,11 +1116,15 @@ static void test_attr_dtype_shared()
dset.close();
dspace.close();
dtype.close();
} // end of first enclosing
fid1.close();
// Open the file again
fid1.openFile(FILENAME, H5F_ACC_RDWR);
{ // Second enclosed block...
// Open dataset
DataSet *dset2 = new DataSet (fid1.openDataSet(DSET1_NAME));
@@ -1142,12 +1144,11 @@ static void test_attr_dtype_shared()
fid1.getObjinfo(TYPE1_NAME, statbuf);
verify_val((int)statbuf.nlink, 3, "DataSet::openAttribute", __LINE__, __FILE__);
#endif /* H5_NO_DEPRECATED_SYMBOLS */
} // end of second enclosing
// Unlink the dataset
fid1.unlink(DSET1_NAME);
} // end of enclosing to test reference counts
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Check reference count on named datatype
fid1.getObjinfo(TYPE1_NAME, statbuf);
@@ -1161,7 +1162,7 @@ static void test_attr_dtype_shared()
fid1.close();
// Check size of file
filesize=h5_get_file_size(FILENAME.c_str());
filesize = h5_get_file_size(FILENAME.c_str(), H5P_DEFAULT);
verify_val((long)filesize, (long)empty_filesize, "Checking file size", __LINE__, __FILE__);
PASSED();
@@ -1179,20 +1180,26 @@ static void test_attr_dtype_shared()
**
****************************************************************/
/* Info for a string attribute */
const H5std_string ATTRSTR_NAME("String_attr");
const H5std_string ATTR1_FL_STR_NAME("String_attr 1");
const H5std_string ATTR2_FL_STR_NAME("String_attr 2");
const H5std_string ATTR_VL_STR_NAME("String_attr");
const H5std_string ATTRSTR_DATA("String Attribute");
const int ATTR_LEN = 17;
static void test_string_attr()
{
// Output message about test being performed
SUBTEST("Testing Basic Attribute Writing Functions");
SUBTEST("Testing I/O on FL and VL String Attributes");
try {
// Create file
H5File fid1(FILENAME, H5F_ACC_RDWR);
// Create a variable length string datatype to refer to.
StrType type(0, H5T_VARIABLE);
//
// Fixed-lenth string attributes
//
// Create a fixed-length string datatype to refer to.
StrType fls_type(0, ATTR_LEN);
// Open the root group.
Group root = fid1.openGroup("/");
@@ -1200,24 +1207,88 @@ static void test_string_attr()
// Create dataspace for the attribute.
DataSpace att_space (H5S_SCALAR);
/* Test Attribute::write(...,const void *buf) with Fixed len string */
// Create an attribute for the root group.
Attribute gr_attr = root.createAttribute(ATTRSTR_NAME, type, att_space);
Attribute gr_flattr1 = root.createAttribute(ATTR1_FL_STR_NAME, fls_type, att_space);
// Write data to the attribute.
gr_attr.write(type, ATTRSTR_DATA);
gr_flattr1.write(fls_type, ATTRSTR_DATA.c_str());
/* Test Attribute::write(...,const H5std_string& strg) with FL string */
// Create an attribute for the root group.
Attribute gr_flattr2 = root.createAttribute(ATTR2_FL_STR_NAME, fls_type, att_space);
// Write data to the attribute.
gr_flattr2.write(fls_type, ATTRSTR_DATA);
/* Test Attribute::read(...,void *buf) with FL string */
// Read and verify the attribute string as a string of chars.
char *string_att_check;
gr_attr.read(type, &string_att_check);
if(HDstrcmp(string_att_check, ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,string_att_check=%s\n",__LINE__, ATTRSTR_DATA.c_str(), string_att_check);
char flstring_att_check[ATTR_LEN];
gr_flattr1.read(fls_type, flstring_att_check);
if(HDstrcmp(flstring_att_check, ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,flstring_att_check=%s\n",__LINE__, ATTRSTR_DATA.c_str(), flstring_att_check);
// Read and verify the attribute string as a string of chars; buffer
// is dynamically allocated.
size_t attr_size = gr_flattr1.getInMemDataSize();
char *fl_dyn_string_att_check;
fl_dyn_string_att_check = new char[attr_size+1];
gr_flattr1.read(fls_type, fl_dyn_string_att_check);
if(HDstrcmp(fl_dyn_string_att_check, ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,flstring_att_check=%s\n",__LINE__, ATTRSTR_DATA.c_str(), fl_dyn_string_att_check);
delete []fl_dyn_string_att_check;
/* Test Attribute::read(...,H5std_string& strg) with FL string */
// Read and verify the attribute string as an std::string.
H5std_string read_flstr1;
gr_flattr1.read(fls_type, read_flstr1);
if (read_flstr1 != ATTRSTR_DATA)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,read_flstr1=%s\n",__LINE__, ATTRSTR_DATA.c_str(), read_flstr1.c_str());
// Read and verify the attribute string as a string of chars.
HDstrcpy(flstring_att_check, "");
gr_flattr2.read(fls_type, flstring_att_check);
if(HDstrcmp(flstring_att_check, ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,flstring_att_check=%s\n",__LINE__, ATTRSTR_DATA.c_str(), flstring_att_check);
/* Test Attribute::read(...,H5std_string& strg) with FL string */
// Read and verify the attribute string as an std::string.
H5std_string read_flstr2;
gr_flattr2.read(fls_type, read_flstr2);
if (read_flstr2 != ATTRSTR_DATA)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,read_flstr2=%s\n",__LINE__, ATTRSTR_DATA.c_str(), read_flstr2.c_str());
//
// Variable-lenth string attributes
//
// Create a variable length string datatype to refer to.
StrType vls_type(0, H5T_VARIABLE);
// Create an attribute for the root group.
Attribute gr_vlattr = root.createAttribute(ATTR_VL_STR_NAME, vls_type, att_space);
// Write data to the attribute.
gr_vlattr.write(vls_type, ATTRSTR_DATA);
/* Test Attribute::read(...,void *buf) with Variable len string */
// Read and verify the attribute string as a string of chars.
char *string_att_check;
gr_vlattr.read(vls_type, &string_att_check);
if(HDstrcmp(string_att_check, ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,string_att_check=%s\n",__LINE__, ATTRSTR_DATA.c_str(), string_att_check);
HDfree(string_att_check);
/* Test Attribute::read(...,H5std_string& strg) with VL string */
// Read and verify the attribute string as an std::string.
H5std_string read_str;
gr_attr.read(type, read_str);
gr_vlattr.read(vls_type, read_str);
if (read_str != ATTRSTR_DATA)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,read_str=%s\n",__LINE__, ATTRSTR_DATA.c_str(), read_str.c_str());
PASSED();
} // end try block

View File

@@ -178,13 +178,13 @@ static void test_compound_2()
s_ptr->e != d_ptr->e) {
H5_FAILED();
cerr << " i=" << i << endl;
cerr << " src={a=" << s_ptr->a << ", b=" << s_ptr->b
<< "c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << ", d="
cerr << " src={a=" << s_ptr->a << ", b=" << s_ptr->b
<< "c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << ", d="
<< s_ptr->d << ", e=" << s_ptr->e << "}" << endl;
cerr << " dst={a=" << s_ptr->a << ", b=" << s_ptr->b
<< "c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << ", d="
cerr << " dst={a=" << s_ptr->a << ", b=" << s_ptr->b
<< "c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << ", d="
<< s_ptr->d << ", e=" << s_ptr->e << "}" << endl;
}
}
@@ -294,13 +294,13 @@ static void test_compound_3()
s_ptr->e != d_ptr->e) {
H5_FAILED();
cerr << " i=" << i << endl;
cerr << " src={a=" << s_ptr->a << ", b=" << s_ptr->b
<< ", c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << "], d="
cerr << " src={a=" << s_ptr->a << ", b=" << s_ptr->b
<< ", c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << "], d="
<< s_ptr->d << ", e=" << s_ptr->e << "}" << endl;
cerr << " dst={a=" << d_ptr->a
<< ", c=[" << d_ptr->c[0] << "," << d_ptr->c[1] << ","
<< d_ptr->c[2] << "," << d_ptr->c[3] << "], e="
<< ", c=[" << d_ptr->c[0] << "," << d_ptr->c[1] << ","
<< d_ptr->c[2] << "," << d_ptr->c[3] << "], e="
<< d_ptr->e << "}" << endl;
} // if
} // for
@@ -391,7 +391,7 @@ static void test_compound_4()
st.insertMember("d", HOFFSET(src_typ_t, d), PredType::NATIVE_INT);
st.insertMember("e", HOFFSET(src_typ_t, e), PredType::NATIVE_INT);
array_dt->close();
array_dt = new ArrayType(PredType::NATIVE_INT, 1, &four);
// Create an empty compound datatype
@@ -402,7 +402,7 @@ static void test_compound_4()
dt.insertMember("d", HOFFSET(dst_typ_t, d), PredType::NATIVE_SHORT);
dt.insertMember("e", HOFFSET(dst_typ_t, e), PredType::NATIVE_INT);
array_dt->close();
/* Perform the conversion */
st.convert(dt, (size_t)nelmts, buf, bkg);
@@ -421,17 +421,17 @@ static void test_compound_4()
{
H5_FAILED();
cerr << " i=" << i << endl;
cerr << " src={a=" << s_ptr->a << ", b=" << s_ptr->b
<< "c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << ", d="
cerr << " src={a=" << s_ptr->a << ", b=" << s_ptr->b
<< "c=[" << s_ptr->c[0] << "," << s_ptr->c[1] << ","
<< s_ptr->c[2] << "," << s_ptr->c[3] << ", d="
<< s_ptr->d << ", e=" << s_ptr->e << "}" << endl;
cerr << " dst={a=" << d_ptr->a << ", b=" << d_ptr->b
<< "c=[" << d_ptr->c[0] << "," << d_ptr->c[1] << ","
<< d_ptr->c[2] << "," << d_ptr->c[3] << ", d="
cerr << " dst={a=" << d_ptr->a << ", b=" << d_ptr->b
<< "c=[" << d_ptr->c[0] << "," << d_ptr->c[1] << ","
<< d_ptr->c[2] << "," << d_ptr->c[3] << ", d="
<< d_ptr->d << ", e=" << d_ptr->e << "}" << endl;
} // if
} // for
/* Release resources */
free(buf);
free(bkg);
@@ -493,13 +493,13 @@ static void test_compound_5()
try {
/* Build datatypes */
ArrayType* array_dt = new ArrayType(PredType::NATIVE_SHORT, 1, dims);
ArrayType* array_dt = new ArrayType(PredType::NATIVE_SHORT, 1, dims);
CompType short_array(4*sizeof(short));
short_array.insertMember("_", 0, *array_dt);
array_dt->close();
CompType int_array(4*sizeof(int));
array_dt = new ArrayType(PredType::NATIVE_INT, 1, dims);
array_dt = new ArrayType(PredType::NATIVE_INT, 1, dims);
int_array.insertMember("_", 0, *array_dt);
array_dt->close();
@@ -532,7 +532,7 @@ static void test_compound_5()
src[1].coll_ids[0]!=dst[1].coll_ids[0] ||
src[1].coll_ids[1]!=dst[1].coll_ids[1] ||
src[1].coll_ids[2]!=dst[1].coll_ids[2] ||
src[1].coll_ids[3]!=dst[1].coll_ids[3])
src[1].coll_ids[3]!=dst[1].coll_ids[3])
{ H5_FAILED(); }
/* Free memory buffers */
@@ -614,17 +614,17 @@ static void test_compound_6()
s_ptr = ((src_typ_t*)orig) + i;
d_ptr = ((dst_typ_t*)buf) + i;
if (s_ptr->b != d_ptr->b ||
s_ptr->d != d_ptr->d)
s_ptr->d != d_ptr->d)
{
H5_FAILED();
cerr << " i=" << i << endl;
cerr << " src={b=" << s_ptr->b << ", d=" << s_ptr->d
cerr << " src={b=" << s_ptr->b << ", d=" << s_ptr->d
<< "}" << endl;
cerr << " dst={b=" << d_ptr->b << ", d=" << d_ptr->d
cerr << " dst={b=" << d_ptr->b << ", d=" << d_ptr->d
<< "}" << endl;
} // if
} // for
/* Release resources */
free(buf);
free(bkg);

View File

@@ -85,6 +85,7 @@ main(int argc, char *argv[])
AddTest("types", test_types, cleanup_types, "Generic Data Types", NULL);
AddTest("compound", test_compound, cleanup_compound, "Compound Data Types", NULL);
AddTest("filter", test_filters, cleanup_filters, "Various Filters", NULL);
AddTest("links", test_links, cleanup_links, "Various Links", NULL);
/* Comment out tests that are not done yet. - BMR, Feb 2001
AddTest("select", test_select, cleanup_select, "Selections", NULL);
AddTest("time", test_time, cleanup_time, "Time Datatypes", NULL);

View File

@@ -48,7 +48,7 @@
#define FILTER_CHUNK_DIM2 25
// will do this function later or use it as guideline - BMR - 2007/01/26
static herr_t test_filter_internal(hid_t fid, const char *name, hid_t dcpl,
static herr_t test_filter_internal(hid_t fid, const char *name, hid_t dcpl,
int if_fletcher32, int corrupted, hsize_t *dset_size)
{
cerr << "do nothing right now" << endl;
@@ -58,9 +58,9 @@ static herr_t test_filter_internal(hid_t fid, const char *name, hid_t dcpl,
/* Temporary filter IDs used for testing */
#define 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);
const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf);
/* This message derives from H5Z */
const H5Z_class_t H5Z_BOGUS[1] = {{
const H5Z_class2_t H5Z_BOGUS[1] = {{
H5Z_CLASS_T_VERS, /* H5Z_class_t version */
H5Z_FILTER_BOGUS, /* Filter id number */
1, 1, /* Encoding and decoding enabled */
@@ -118,7 +118,7 @@ static void test_null_filter()
// Output message about test being performed
SUBTEST("'Null' filter");
try {
hsize_t null_size; // Size of dataset with null filter
//hsize_t null_size; // Size of dataset with null filter
// Prepare dataset create property list
DSetCreatPropList dsplist;
@@ -168,7 +168,6 @@ void test_szip_filter(H5File& file1)
{
#ifdef H5_HAVE_FILTER_SZIP
int points[DSET_DIM1][DSET_DIM2], check[DSET_DIM1][DSET_DIM2];
hsize_t szip_size; /* Size of dataset with szip filter */
unsigned szip_options_mask=H5_SZIP_NN_OPTION_MASK;
unsigned szip_pixels_per_block=4;
@@ -203,7 +202,7 @@ void test_szip_filter(H5File& file1)
{
for (j=0; j<size[1]; j++)
{
points[i][j] = n++;
points[i][j] = (int)n++;
}
}
@@ -228,7 +227,7 @@ void test_szip_filter(H5File& file1)
{
issue_fail_msg("test_szip_filter()", __LINE__, __FILE__, E.getCDetailMsg());
}
} // if szip presents
} // if szip presents
else {
SKIPPED();
}

View File

@@ -300,7 +300,7 @@ static void test_h5s_scalar_write()
verify_val(ext_type, H5S_SCALAR, "DataSpace::getSimpleExtentType", __LINE__, __FILE__);
// Create and write a dataset
DataSet dataset = fid1.createDataSet("Dataset1", PredType::NATIVE_UINT,sid1);
DataSet dataset = fid1.createDataSet("Dataset1", PredType::NATIVE_UINT,sid1);
dataset.write(&space3_data, PredType::NATIVE_UINT);
PASSED();

722
c++/test/tlinks.cpp Normal file
View File

@@ -0,0 +1,722 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the 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. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*****************************************************************************
FILE
tlinks.cpp - HDF5 C++ testing functionalities associated with the
C attribute interface (H5L)
***************************************************************************/
#ifdef OLD_HEADER_FILENAME
#include <iostream.h>
#else
#include <iostream>
#endif
#include <string>
#ifndef H5_NO_NAMESPACE
#ifndef H5_NO_STD
using std::cerr;
using std::endl;
#endif // H5_NO_STD
#endif
#include "testhdf5.h" // C test header file
#include "H5Cpp.h" // C++ API header file
#ifndef H5_NO_NAMESPACE
using namespace H5;
#endif
#include "h5cpputil.h" // C++ test utilility header file
// A lot of the definition inherited from C test links.c is left here until
// the H5L API is implemented and tests are completed - BMR 10/19/2009
/*
* This file needs to access private information from the H5G package.
* This file also needs to access the group testing code.
*/
//#define H5G_PACKAGE
//#define H5G_TESTING
//#include "h5test.h"
//#include "H5Gpkg.h" /* Groups */
//#include "H5Iprivate.h" /* IDs */
//#include "H5Lprivate.h" /* Links */
/* File for external link test. Created with gen_udlinks.c */
#define LINKED_FILE "be_extlink2.h5"
#ifdef H5_VMS
#if 0
const char *FILENAME[] = {
"links0",
"links1",
"links2",
"links3",
"links4a", /* 4 */
"links4b", /* 5 */
"links4c", /* 6 */
"links4d", /* 7 */
"links5", /* 8 */
"links6", /* 9 */
"links7", /* 10 */
"links8", /* 11 */
"extlinks0", /* 12: main files */
"[.tmp]extlinks0", /* 13: */
"extlinks1", /* 14: target files */
"[.tmp]extlinks1", /* 15: */
"extlinks2", /* 16: */
"[.tmp]extlinks2", /* 17: */
"extlinks3", /* 18: */
"[.tmp]extlinks3", /* 19: */
"extlinks4", /* 20: */
"[.tmp]extlinks4", /* 21: */
"extlinks5", /* 22: */
"[.tmp]extlinks6", /* 23: */
"extlinks7", /* 24: */
"[.tmp]extlinks7", /* 25: */
"[.tmp]extlinks8", /* 26: */
"extlinks9", /* 27: */
"[.tmp]extlinks9", /* 28: */
"extlinks10", /* 29: */ /* TESTS for windows */
"[.tmp]extlinks10", /* 30: */
"[.tmp]extlinks11", /* 31: */
"[.tmp]extlinks12", /* 32: */
"extlinks13", /* 33: */
"[.tmp]extlinks13", /* 34: */
"[.tmp]extlinks14", /* 35: */
"[.tmp]extlinks15", /* 36: */
"extlinks16A", /* 37: */ /* TESTS for H5P_set_elink_fapl */
"extlinks16B", /* 38: */
"extlinks17", /* 39: */
"extlinks18A", /* 40: */
"extlinks18B", /* 41: */
"extlinks19A", /* 42: */
"extlinks19B", /* 43: */
"extlinks20", /* 44: */
NULL
};
#endif // 0
#define TMPDIR "[.tmp]"
#else
#if 0
const char *FILENAME[] = {
"links0",
"links1",
"links2",
"links3",
"links4a", /* 4 */
"links4b", /* 5 */
"links4c", /* 6 */
"links4d", /* 7 */
"links5", /* 8 */
"links6", /* 9 */
"links7", /* 10 */
"links8", /* 11 */
"extlinks0", /* 12: main files */
"tmp/extlinks0", /* 13: */
"extlinks1", /* 14: target files */
"tmp/extlinks1", /* 15: */
"extlinks2", /* 16: */
"tmp/extlinks2", /* 17: */
"extlinks3", /* 18: */
"tmp/extlinks3", /* 19: */
"extlinks4", /* 20: */
"tmp/extlinks4", /* 21: */
"extlinks5", /* 22: */
"tmp/extlinks6", /* 23: */
"extlinks7", /* 24: */
"tmp/extlinks7", /* 25: */
"tmp/extlinks8", /* 26: */
"extlinks9", /* 27: */
"tmp/extlinks9", /* 28: */
"extlinks10", /* 29: */ /* TESTS for windows */
"tmp/extlinks10", /* 30: */
"tmp/extlinks11", /* 31: */
"tmp/extlinks12", /* 32: */
"extlinks13", /* 33: */
"tmp/extlinks13", /* 34: */
"tmp/extlinks14", /* 35: */
"tmp/extlinks15", /* 36: */
"extlinks16A", /* 37: */ /* TESTS for H5P_set_elink_fapl */
"extlinks16B", /* 38: */
"extlinks17", /* 39: */
"extlinks18A", /* 40: */
"extlinks18B", /* 41: */
"extlinks19A", /* 42: */
"extlinks19B", /* 43: */
"extlinks20", /* 44: */
NULL
};
#endif // 0
#define TMPDIR "tmp"
#endif
#define FAMILY_SIZE 1024
#define CORE_INCREMENT 1024
#define NUM400 400
/* do not do check_all_closed() for "ext*" files and "tmp/ext*" */
#define EXTSTOP 12
#define LINK_BUF_SIZE 1024
#define NAME_BUF_SIZE 1024
#define MAX_NAME_LEN ((64*1024)+1024)
/* Link type IDs */
#define UD_HARD_TYPE 201
#define UD_CB_TYPE H5L_TYPE_MAX
#define UD_PLIST_TYPE 128
#define UD_CBFAIL_TYPE UD_PLIST_TYPE
#define UD_ERROR_TYPE 189
#define UD_BAD_TYPE1 H5L_TYPE_HARD
#define UD_BAD_TYPE2 (H5L_TYPE_UD_MIN - 5)
#define UD_BAD_VERS (H5L_LINK_CLASS_T_VERS + 1)
#define DEST_PROP_NAME "destination_group"
#define REREG_TARGET_NAME "rereg_target"
#define UD_CB_LINK_NAME "ud_callback_link"
#define NEW_UD_CB_LINK_NAME "ud_callback_link2"
#define UD_CB_TARGET "ud_target"
#define UD_CB_TARGET_LEN 10
#define LE_FILENAME "le_extlink1.h5"
#define BE_FILENAME "be_extlink1.h5"
#define ELINK_CB_FAM_SIZE (hsize_t) 100
#define H5L_DIM1 100
#define H5L_DIM2 100
/* Creation order macros */
#define CORDER_GROUP_NAME "corder_group"
#define CORDER_SOFT_GROUP_NAME "corder_soft_group"
#define CORDER_NLINKS 18
#define CORDER_ITER_STOP 3
#define CORDER_EST_ENTRY_LEN 9
/* Timestamp macros */
#define TIMESTAMP_GROUP_1 "timestamp1"
#define TIMESTAMP_GROUP_2 "timestamp2"
/* Link iteration struct */
typedef struct {
H5_iter_order_t order; /* Direction of iteration */
unsigned ncalled; /* # of times callback is entered */
unsigned nskipped; /* # of links skipped */
int stop; /* # of iterations to stop after */
int64_t curr; /* Current creation order value */
size_t max_visit; /* Size of "visited link" flag array */
hbool_t *visited; /* Pointer to array of "visited link" flags */
} link_iter_info_t;
/* Link visit structs */
typedef struct {
const char *path; /* Path to link */
H5L_type_t type; /* Type of link */
} link_visit_t;
static const link_visit_t lvisit0[] = {
{"Dataset_zero", H5L_TYPE_HARD},
{"Group1", H5L_TYPE_HARD},
{"Group1/Dataset_one", H5L_TYPE_HARD},
{"Group1/Group2", H5L_TYPE_HARD},
{"Group1/Group2/Dataset_two", H5L_TYPE_HARD},
{"Group1/Group2/Type_two", H5L_TYPE_HARD},
{"Group1/Group2/hard_zero", H5L_TYPE_HARD},
{"Group1/Type_one", H5L_TYPE_HARD},
{"Group1/hard_one", H5L_TYPE_HARD},
{"Type_zero", H5L_TYPE_HARD},
{"ext_dangle", H5L_TYPE_EXTERNAL},
{"ext_one", H5L_TYPE_EXTERNAL},
{"hard_one", H5L_TYPE_HARD},
{"hard_two", H5L_TYPE_HARD},
{"hard_zero", H5L_TYPE_HARD},
{"soft_dangle", H5L_TYPE_SOFT},
{"soft_one", H5L_TYPE_SOFT},
{"soft_two", H5L_TYPE_SOFT}
};
static const link_visit_t lvisit1[] = {
{"Dataset_one", H5L_TYPE_HARD},
{"Group2", H5L_TYPE_HARD},
{"Group2/Dataset_two", H5L_TYPE_HARD},
{"Group2/Type_two", H5L_TYPE_HARD},
{"Group2/hard_zero", H5L_TYPE_HARD},
{"Group2/hard_zero/Dataset_zero", H5L_TYPE_HARD},
{"Group2/hard_zero/Group1", H5L_TYPE_HARD},
{"Group2/hard_zero/Type_zero", H5L_TYPE_HARD},
{"Group2/hard_zero/ext_dangle", H5L_TYPE_EXTERNAL},
{"Group2/hard_zero/ext_one", H5L_TYPE_EXTERNAL},
{"Group2/hard_zero/hard_one", H5L_TYPE_HARD},
{"Group2/hard_zero/hard_two", H5L_TYPE_HARD},
{"Group2/hard_zero/hard_zero", H5L_TYPE_HARD},
{"Group2/hard_zero/soft_dangle", H5L_TYPE_SOFT},
{"Group2/hard_zero/soft_one", H5L_TYPE_SOFT},
{"Group2/hard_zero/soft_two", H5L_TYPE_SOFT},
{"Type_one", H5L_TYPE_HARD},
{"hard_one", H5L_TYPE_HARD}
};
static const link_visit_t lvisit2[] = {
{"Dataset_two", H5L_TYPE_HARD},
{"Type_two", H5L_TYPE_HARD},
{"hard_zero", H5L_TYPE_HARD},
{"hard_zero/Dataset_zero", H5L_TYPE_HARD},
{"hard_zero/Group1", H5L_TYPE_HARD},
{"hard_zero/Group1/Dataset_one", H5L_TYPE_HARD},
{"hard_zero/Group1/Group2", H5L_TYPE_HARD},
{"hard_zero/Group1/Type_one", H5L_TYPE_HARD},
{"hard_zero/Group1/hard_one", H5L_TYPE_HARD},
{"hard_zero/Type_zero", H5L_TYPE_HARD},
{"hard_zero/ext_dangle", H5L_TYPE_EXTERNAL},
{"hard_zero/ext_one", H5L_TYPE_EXTERNAL},
{"hard_zero/hard_one", H5L_TYPE_HARD},
{"hard_zero/hard_two", H5L_TYPE_HARD},
{"hard_zero/hard_zero", H5L_TYPE_HARD},
{"hard_zero/soft_dangle", H5L_TYPE_SOFT},
{"hard_zero/soft_one", H5L_TYPE_SOFT},
{"hard_zero/soft_two", H5L_TYPE_SOFT}
};
typedef struct {
unsigned idx; /* Index in link visit structure */
const link_visit_t *info; /* Pointer to the link visit structure to use */
} lvisit_ud_t;
/* Object visit structs */
typedef struct {
const char *path; /* Path to object */
H5O_type_t type; /* Type of object */
} obj_visit_t;
static const obj_visit_t ovisit0_old[] = {
{".", H5O_TYPE_GROUP},
{"Dataset_zero", H5O_TYPE_DATASET},
{"Group1", H5O_TYPE_GROUP},
{"Group1/Dataset_one", H5O_TYPE_DATASET},
{"Group1/Group2", H5O_TYPE_GROUP},
{"Group1/Group2/Dataset_two", H5O_TYPE_DATASET},
{"Group1/Group2/Type_two", H5O_TYPE_NAMED_DATATYPE},
{"Group1/Type_one", H5O_TYPE_NAMED_DATATYPE},
{"Type_zero", H5O_TYPE_NAMED_DATATYPE}
};
static const obj_visit_t ovisit0_new[] = {
{".", H5O_TYPE_GROUP},
{"Dataset_zero", H5O_TYPE_DATASET},
{"Group1", H5O_TYPE_GROUP},
{"Group1/Dataset_one", H5O_TYPE_DATASET},
{"Group1/Group2", H5O_TYPE_GROUP},
{"Group1/Group2/Dataset_two", H5O_TYPE_DATASET},
{"Group1/Group2/Type_two", H5O_TYPE_NAMED_DATATYPE},
{"Group1/Type_one", H5O_TYPE_NAMED_DATATYPE},
{"Type_zero", H5O_TYPE_NAMED_DATATYPE}
};
static const obj_visit_t ovisit1_old[] = {
{".", H5O_TYPE_GROUP},
{"Dataset_one", H5O_TYPE_DATASET},
{"Group2", H5O_TYPE_GROUP},
{"Group2/Dataset_two", H5O_TYPE_DATASET},
{"Group2/Type_two", H5O_TYPE_NAMED_DATATYPE},
{"Group2/hard_zero", H5O_TYPE_GROUP},
{"Group2/hard_zero/Dataset_zero", H5O_TYPE_DATASET},
{"Group2/hard_zero/Type_zero", H5O_TYPE_NAMED_DATATYPE},
{"Type_one", H5O_TYPE_NAMED_DATATYPE}
};
static const obj_visit_t ovisit1_new[] = {
{".", H5O_TYPE_GROUP},
{"Dataset_one", H5O_TYPE_DATASET},
{"Group2", H5O_TYPE_GROUP},
{"Group2/Dataset_two", H5O_TYPE_DATASET},
{"Group2/Type_two", H5O_TYPE_NAMED_DATATYPE},
{"Group2/hard_zero", H5O_TYPE_GROUP},
{"Group2/hard_zero/Dataset_zero", H5O_TYPE_DATASET},
{"Group2/hard_zero/Type_zero", H5O_TYPE_NAMED_DATATYPE},
{"Type_one", H5O_TYPE_NAMED_DATATYPE}
};
static const obj_visit_t ovisit2_old[] = {
{".", H5O_TYPE_GROUP},
{"Dataset_two", H5O_TYPE_DATASET},
{"Type_two", H5O_TYPE_NAMED_DATATYPE},
{"hard_zero", H5O_TYPE_GROUP},
{"hard_zero/Dataset_zero", H5O_TYPE_DATASET},
{"hard_zero/Group1", H5O_TYPE_GROUP},
{"hard_zero/Group1/Dataset_one", H5O_TYPE_DATASET},
{"hard_zero/Group1/Type_one", H5O_TYPE_NAMED_DATATYPE},
{"hard_zero/Type_zero", H5O_TYPE_NAMED_DATATYPE}
};
static const obj_visit_t ovisit2_new[] = {
{".", H5O_TYPE_GROUP},
{"Dataset_two", H5O_TYPE_DATASET},
{"Type_two", H5O_TYPE_NAMED_DATATYPE},
{"hard_zero", H5O_TYPE_GROUP},
{"hard_zero/Dataset_zero", H5O_TYPE_DATASET},
{"hard_zero/Group1", H5O_TYPE_GROUP},
{"hard_zero/Group1/Dataset_one", H5O_TYPE_DATASET},
{"hard_zero/Group1/Type_one", H5O_TYPE_NAMED_DATATYPE},
{"hard_zero/Type_zero", H5O_TYPE_NAMED_DATATYPE}
};
typedef struct {
unsigned idx; /* Index in object visit structure */
const obj_visit_t *info; /* Pointer to the object visit structure to use */
} ovisit_ud_t;
static const char *FILENAME[] = {
"link0",
"link1.h5",
"link2.h5",
NULL
};
/*-------------------------------------------------------------------------
* Function: test_basic_links
*
* Purpose: Test building a file with assorted links.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Binh-Minh Ribler
* October 16, 2009
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static void test_basic_links(hid_t fapl_id, hbool_t new_format)
{
hsize_t size[1] = {1};
char filename[NAME_BUF_SIZE];
char* tconv_buf = new char [1000];
// Use the file access template id to create a file access prop. list.
FileAccPropList fapl(fapl_id);
try
{
if(new_format)
SUBTEST("Link creation (w/new group format)")
else
SUBTEST("Link creation")
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
H5File file(filename, H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, fapl);
// Create simple dataspace
DataSpace scalar (1, size, size);
// Create a group then close it by letting the object go out of scope
{
Group group(file.createGroup("grp1", 0));
}
// Create a dataset then close it by letting the object go out of scope
{
DataSet dset1(file.createDataSet("dset1", PredType::NATIVE_INT, scalar));
}
hid_t file_id = file.getId();
// Because these are not implemented in the C++ API yet, they are
// used so CommonFG::getLinkval can be tested.
// Create a hard link
if(H5Lcreate_hard(
file_id, "dset1", H5L_SAME_LOC, "grp1/hard1",
H5P_DEFAULT, H5P_DEFAULT) < 0)
throw Exception("test_basic_links", "H5Lcreate_hard failed");
// Create a symbolic link
if(H5Lcreate_soft(
"/dset1", file_id, "grp1/soft", H5P_DEFAULT, H5P_DEFAULT) < 0)
throw Exception("test_basic_links", "H5Lcreate_soft failed");
// Create a symbolic link to something that doesn't exist
if(H5Lcreate_soft(
"foobar", file_id, "grp1/dangle", H5P_DEFAULT, H5P_DEFAULT) < 0)
throw Exception("test_basic_links", "H5Lcreate_soft failed");
// Create a recursive symbolic link
if(H5Lcreate_soft(
"/grp1/recursive", file_id, "/grp1/recursive",
H5P_DEFAULT, H5P_DEFAULT) < 0)
throw Exception("test_basic_links", "H5Lcreate_soft failed");
// Verify link values before closing the file
H5std_string softlink_val = file.getLinkval("grp1/soft");
verify_val(softlink_val, "/dset1", "H5File::getLinkval grp1/soft", __LINE__, __FILE__);
H5std_string dngllink_val = file.getLinkval("grp1/dangle");
verify_val(dngllink_val, "foobar", "H5File::getLinkval grp1/dangle", __LINE__, __FILE__);
H5std_string reclink_val = file.getLinkval("grp1/recursive");
verify_val(reclink_val, "/grp1/recursive", "H5File::getLinkval grp1/recursive", __LINE__, __FILE__);
} // end of try block
catch (Exception E)
{
issue_fail_msg("test_basic_links()", __LINE__, __FILE__, E.getCDetailMsg());
}
// Open the file and check on the links in it
try
{
// Open the file above
H5File file(filename, H5F_ACC_RDWR, FileCreatPropList::DEFAULT, fapl);
// Verify link existence
if(H5Lexists(file.getId(), "dset1", H5P_DEFAULT) != TRUE)
throw InvalidActionException("H5Lexists", "dset1 doesn't exist");
if(H5Lexists(file.getId(), "grp1/soft", H5P_DEFAULT) != TRUE)
throw InvalidActionException("H5Lexists", "grp1/soft doesn't exist");
// Verify link values
H5std_string softlink_val = file.getLinkval("grp1/soft");
verify_val(softlink_val, "/dset1", "H5File::getLinkval grp1/soft", __LINE__, __FILE__);
H5std_string reclink_val = file.getLinkval("grp1/recursive");
verify_val(reclink_val, "/grp1/recursive", "H5File::getLinkval grp1/recursive", __LINE__, __FILE__);
PASSED();
} // end of try block
catch (Exception E)
{
issue_fail_msg("test_basic_links()", __LINE__, __FILE__, E.getCDetailMsg());
}
}
/*-------------------------------------------------------------------------
* Function: test_links
*
* Purpose: Test links
*
* Return: None
*
* Programmer: Binh-Minh Ribler
* October 16, 2009
*
*-------------------------------------------------------------------------
*/
#ifdef __cplusplus
extern "C"
#endif
void test_links()
{
hid_t fapl_id, fapl2_id; /* File access property lists */
hbool_t new_format; /* Whether to use the new format or not */
const char *envval;
envval = HDgetenv("HDF5_DRIVER");
if(envval == NULL)
envval = "nomatch";
fapl_id = h5_fileaccess();
// Output message about test being performed
MESSAGE(5, ("Testing Various Links\n"));
try
{
/* Copy the file access property list */
if((fapl2_id = H5Pcopy(fapl_id)) < 0)
throw Exception("test_links", "H5Pcopy failed");
/* Set the "use the latest version of the format" bounds for creating objects in the file */
if(H5Pset_libver_bounds(fapl2_id, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
throw Exception("test_links", "H5Pset_libver_bounds failed");
/* Loop over using new group format */
for(new_format = FALSE; new_format <= TRUE; new_format++)
{
hid_t my_fapl_id;
/* Check for FAPL to use */
if(new_format)
my_fapl_id = fapl2_id;
else
my_fapl_id = fapl_id;
/* General tests... (on both old & new format groups */
// FileAccPropList may be passed in instead of fapl id
test_basic_links(my_fapl_id, new_format);
#if 0
// these tests are from the C test links.c and left here for future
// implementation of H5L API
nerrors += test_basic_links(fapl_id, new_format) < 0 ? 1 : 0;
nerrors += cklinks(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += new_links(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += ck_new_links(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += long_links(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += toomany(my_fapl, new_format) < 0 ? 1 : 0;
/* Test new H5L link creation routine */
nerrors += test_lcpl(my_fapl, new_format);
nerrors += test_move(my_fapl, new_format);
nerrors += test_copy(my_fapl, new_format);
nerrors += test_move_preserves(my_fapl, new_format);
#ifndef H5_NO_DEPRECATED_SYMBOLS
nerrors += test_deprec(my_fapl, new_format);
#endif /* H5_NO_DEPRECATED_SYMBOLS */
#ifndef H5_CANNOT_OPEN_TWICE
nerrors += external_link_root(my_fapl, new_format) < 0 ? 1 : 0;
#endif /* H5_CANNOT_OPEN_TWICE */
nerrors += external_link_path(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_mult(my_fapl, new_format) < 0 ? 1 : 0;
#ifndef H5_CANNOT_OPEN_TWICE
nerrors += external_link_self(envval, my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_pingpong(envval, my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_toomany(my_fapl, new_format) < 0 ? 1 : 0;
#endif /* H5_CANNOT_OPEN_TWICE */
nerrors += external_link_dangling(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_recursive(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_query(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_unlink_compact(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_unlink_dense(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_move(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_ride(my_fapl, new_format) < 0 ? 1 : 0;
#ifndef H5_CANNOT_OPEN_TWICE
nerrors += external_link_closing(envval, my_fapl, new_format) < 0 ? 1 : 0;
#endif /* H5_CANNOT_OPEN_TWICE */
nerrors += external_link_endian(new_format) < 0 ? 1 : 0;
nerrors += external_link_strong(my_fapl, new_format) < 0 ? 1 : 0;
/* tests for external link */
nerrors += external_link_env(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_prefix(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_abs_mainpath(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_rel_mainpath(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_cwd(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_abstar(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_abstar_cur(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_reltar(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_chdir(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_set_elink_fapl1(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_set_elink_fapl2(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_set_elink_fapl3(new_format) < 0 ? 1 : 0;
nerrors += external_set_elink_acc_flags(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_set_elink_cb(my_fapl, new_format) < 0 ? 1 : 0;
#ifdef H5_HAVE_WINDOW_PATH
nerrors += external_link_win1(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win2(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win3(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win4(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win5(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win6(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win7(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win8(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += external_link_win9(my_fapl, new_format) < 0 ? 1 : 0;
#endif
/* These tests assume that external links are a form of UD links,
* so assume that everything that passed for external links
* above has already been tested for UD links.
*/
if(new_format == TRUE) {
nerrors += ud_hard_links(fapl2) < 0 ? 1 : 0; /* requires new format groups */
nerrors += ud_link_reregister(fapl2) < 0 ? 1 : 0; /* requires new format groups */
} /* end if */
nerrors += ud_callbacks(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += ud_link_errors(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += lapl_udata(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += lapl_nlinks(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += linkinfo(my_fapl, new_format) < 0 ? 1 : 0;
/* Misc. extra tests, useful for both new & old format files */
nerrors += link_visit(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += link_visit_by_name(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += obj_visit(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += obj_visit_by_name(my_fapl, new_format) < 0 ? 1 : 0;
nerrors += obj_visit_stop(my_fapl, new_format) < 0 ? 1 : 0;
/* Keep this test last, it's testing files that are used above */
/* do not do this for files used by external link tests */
nerrors += check_all_closed(my_fapl, new_format, EXTSTOP) < 0 ? 1 : 0;
#endif // 0
} /* end for */
#if 0
/* New group revision feature tests */
nerrors += corder_create_empty(fapl2) < 0 ? 1 : 0;
/* XXX: when creation order indexing is fully working, go back and add checks
* to these tests to make certain that the creation order values are
* correct.
*/
nerrors += corder_create_compact(fapl2) < 0 ? 1 : 0;
nerrors += corder_create_dense(fapl2) < 0 ? 1 : 0;
nerrors += corder_transition(fapl2) < 0 ? 1 : 0;
nerrors += corder_delete(fapl2) < 0 ? 1 : 0;
nerrors += link_info_by_idx(fapl2) < 0 ? 1 : 0;
nerrors += delete_by_idx(fapl2) < 0 ? 1 : 0;
nerrors += link_iterate(fapl2) < 0 ? 1 : 0;
nerrors += open_by_idx(fapl2) < 0 ? 1 : 0;
nerrors += object_info(fapl2) < 0 ? 1 : 0;
nerrors += group_info(fapl2) < 0 ? 1 : 0;
nerrors += timestamps(fapl2) < 0 ? 1 : 0;
/* Test new API calls on old-style groups */
nerrors += link_info_by_idx_old(fapl) < 0 ? 1 : 0;
nerrors += delete_by_idx_old(fapl) < 0 ? 1 : 0;
nerrors += link_iterate_old(fapl) < 0 ? 1 : 0;
nerrors += open_by_idx_old(fapl) < 0 ? 1 : 0;
nerrors += object_info_old(fapl) < 0 ? 1 : 0;
nerrors += group_info_old(fapl) < 0 ? 1 : 0;
#endif
/* Close 2nd FAPL */
H5Pclose(fapl2_id);
h5_cleanup(FILENAME, fapl_id);
/* Test that external links can be used after a library reset. MUST be
* called last so the reset doesn't interfere with the property lists. This
* routine will delete its own file. */
/* nerrors += external_reset_register() < 0 ? 1 : 0;
*/
}
catch (Exception E)
{
issue_fail_msg("test_links()", __LINE__, __FILE__, E.getCDetailMsg());
}
}
/*-------------------------------------------------------------------------
* Function: cleanup_links
*
* Purpose: Cleanup temporary test files
*
* Return: none
*
* Programmer: Binh-Minh Ribler
* October 16, 2009
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
#ifdef __cplusplus
extern "C"
#endif
void cleanup_links()
{
HDremove(FILENAME[0]);
}

View File

@@ -59,17 +59,9 @@ const int SPACE1_DIM1 = 4;
// 2-D dataset with fixed dimensions
const H5std_string SPACE2_NAME("Space2");
const int SPACE2_RANK = 2;
const int SPACE2_DIM1 = 10;
const int SPACE2_DIM2 = 10;
// Larger 1-D dataset with fixed dimensions
const H5std_string SPACE3_NAME("Space3");
const int SPACE3_RANK = 1;
const int SPACE3_DIM1 = 100;
// Element selection information
const int POINT1_NPOINTS = 10;
// Compound datatype
typedef struct s1_t {
@@ -84,7 +76,7 @@ typedef struct s1_t {
** Tests references to various kinds of objects
**
****************************************************************/
static void test_reference_obj()
static void test_reference_obj(void)
{
int i; // counting variables
const H5std_string write_comment="Foo!"; // Comments for group
@@ -100,9 +92,9 @@ static void test_reference_obj()
// Allocate write & read buffers
int temp_size = MAX(sizeof(unsigned),sizeof(hobj_ref_t));
wbuf=(hobj_ref_t*)malloc(temp_size*SPACE1_DIM1);
rbuf=(hobj_ref_t*)malloc(temp_size*SPACE1_DIM1);
tbuf=(hobj_ref_t*)malloc(temp_size*SPACE1_DIM1);
wbuf=(hobj_ref_t*)HDmalloc(temp_size*SPACE1_DIM1);
rbuf=(hobj_ref_t*)HDmalloc(temp_size*SPACE1_DIM1);
tbuf=(hobj_ref_t*)HDmalloc(temp_size*SPACE1_DIM1);
// Create file FILE1
file1 = new H5File (FILE1, H5F_ACC_TRUNC);
@@ -190,7 +182,7 @@ static void test_reference_obj()
sid1.close();
dataset.close();
delete file1;
// Re-open the file
file1 = new H5File(FILE1, H5F_ACC_RDWR);
@@ -198,16 +190,16 @@ static void test_reference_obj()
dataset = file1->openDataSet("/Dataset3");
// Read selection from disk
dataset.read(rbuf, PredType::STD_REF_OBJ);
dataset.read(rbuf, PredType::STD_REF_OBJ);
// Dereference dataset object by ctor, from the location where
// Dereference dataset object by ctor, from the location where
// 'dataset' is located
DataSet dset2(dataset, &rbuf[0]);
// Check information in the referenced dataset
sid1 = dset2.getSpace();
hssize_t n_elements = sid1.getSimpleExtentNpoints();
verify_val((long)n_elements, (long)4, "DataSpace::getSimpleExtentNpoints", __LINE__, __FILE__);
verify_val((long)n_elements, 4, "DataSpace::getSimpleExtentNpoints", __LINE__, __FILE__);
// Read from disk
dset2.read(tbuf, PredType::NATIVE_UINT);
@@ -234,14 +226,14 @@ static void test_reference_obj()
verify_val(read_comment2, write_comment, "Group::getComment", __LINE__, __FILE__);
group.close();
// Dereference group object by ctor and using dataset to specify
// Dereference group object by ctor and using dataset to specify
// location
Group new_group(dataset, &rbuf[2]);
H5std_string read_comment3 = new_group.getComment(".", 10);
verify_val(read_comment3, write_comment, "Group::getComment", __LINE__, __FILE__);
group.close();
new_group.close();
// Dereference datatype object from the location where 'dataset'
// Dereference datatype object from the location where 'dataset'
// is located
dtype1.dereference(dataset, &rbuf[3]);
@@ -270,9 +262,9 @@ static void test_reference_obj()
file1->close();
// Free memory buffers
free(wbuf);
free(rbuf);
free(tbuf);
HDfree(wbuf);
HDfree(rbuf);
HDfree(tbuf);
PASSED();
} // end try
@@ -289,7 +281,7 @@ static void test_reference_obj()
#ifdef __cplusplus
extern "C"
#endif
void test_reference()
void test_reference(void)
{
// Output message about test being performed
MESSAGE(5, ("Testing References\n"));
@@ -307,7 +299,7 @@ void test_reference()
#ifdef __cplusplus
extern "C"
#endif
void cleanup_reference()
void cleanup_reference(void)
{
HDremove(FILE1.c_str());
}

View File

@@ -121,7 +121,7 @@ static void test_classes()
}
PASSED();
} // end of try block
catch (Exception E) {
catch (Exception E) {
issue_fail_msg("test_classes", __LINE__, __FILE__, E.getCDetailMsg());
}
}
@@ -178,8 +178,8 @@ static void test_copy()
another_int_type = new_int_type;
PASSED();
}
catch (Exception E) {
}
catch (Exception E) {
issue_fail_msg("test_copy", __LINE__, __FILE__, E.getCDetailMsg());
}
}
@@ -191,12 +191,12 @@ static void test_copy()
* Purpose: Tests query functions of compound and enumeration types.
*
* Return: Success: 0
*
*
* Failure: number of errors
*
* Programmer: Binh-Minh Ribler (use C version)
* January, 2007
*
*
* Modifications:
*
*-------------------------------------------------------------------------
@@ -289,7 +289,7 @@ static void test_query()
issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg());
}
} // test_query
/*-------------------------------------------------------------------------
* Function: test_transient
@@ -311,7 +311,7 @@ const char* filename1 = "dtypes1.h5";
static void test_transient ()
{
static hsize_t ds_size[2] = {10, 20};
SUBTEST("Transient datatypes");
try {
@@ -345,7 +345,7 @@ static void test_transient ()
} catch (DataTypeIException err) {}
itype.close();
// Get a copy of the dataset's datatype by applying DataType::copy()
// Get a copy of the dataset's datatype by applying DataType::copy()
// to the dataset. The resulted datatype should be modifiable.
itype.copy(dset);
itype.setPrecision(256);
@@ -393,7 +393,7 @@ static void test_named ()
hsize_t i;
unsigned attr_data[10][20];
char filename[1024];
SUBTEST("Named datatypes");
try {
// Create the file.
@@ -416,7 +416,7 @@ static void test_named ()
itype.commit(file, "native-int");
// Check that it is committed.
if (itype.committed() <= 0)
if (itype.committed() == false)
cerr << "IntType::committed() returned false" << endl;
// We should not be able to modify a type after it has been committed.
@@ -437,7 +437,7 @@ static void test_named ()
// It should be possible to define an attribute for the named type
Attribute attr1 = itype.createAttribute("attr1", PredType::NATIVE_UCHAR, space);
for (i=0; i<ds_size[0]*ds_size[1]; i++)
for (i=0; i<ds_size[0]*ds_size[1]; i++)
attr_data[0][i] = (int)i;/*tricky*/
attr1.write(PredType::NATIVE_UINT, attr_data);
attr1.close();
@@ -454,7 +454,7 @@ static void test_named ()
/*
* Close the committed type and reopen it. It should return a named type.
* This had something to do with the way IntType was returned and assigned
and caused itype.committed not working correctly. So, use another_type for
and caused itype.committed not working correctly. So, use another_type for
now.
itype.close();
itype = file.openIntType("native-int");
@@ -475,7 +475,7 @@ now.
dset.close();
ds_type->close();
// Reopen the dataset and its type, then make sure the type is
// Reopen the dataset and its type, then make sure the type is
// a named type.
dset = file.openDataSet("dset1");
ds_type = new DataType(dset.getDataType());
@@ -497,7 +497,7 @@ now.
if (!iscommitted)
throw InvalidActionException("DataType::iscommitted()", "Dataset type should be named type!");
ds_type->close();
// Get the dataset datatype by applying DataType::copy() to the
// dataset. The resulted datatype should be modifiable.
IntType copied_type;

View File

@@ -18,7 +18,6 @@
tvlstr.cpp - HDF5 C++ testing the Variable-Length String functionality
EXTERNAL ROUTINES/VARIABLES:
These routines are in the test directory of the C library:
***************************************************************************/
@@ -40,7 +39,7 @@
#include "H5Cpp.h" // C++ API header file
#ifndef H5_NO_NAMESPACE
using namespace H5;
using namespace H5;
#endif
#include "h5cpputil.h" // C++ utilility header file
@@ -52,47 +51,48 @@ const H5std_string FILENAME("tvlstr.h5");
const int SPACE1_RANK = 1;
const hsize_t SPACE1_DIM1 = 4;
// Utility functions
// Utility functions - not used now, later though.
void *test_vlstr_alloc_custom(size_t size, void *info);
void test_vlstr_free_custom(void *mem, void *info);
/****************************************************************
**
** test_vlstr_alloc_custom(): Test VL datatype custom memory
** allocation routines. This routine just uses malloc to
** allocate the memory and increments the amount of memory
** allocated. It is passed into setVlenMemManager.
** allocation routines. This routine just uses malloc to
** allocate the memory and increments the amount of memory
** allocated. It is passed into setVlenMemManager.
**
** Note: exact copy from the C version.
**
****************************************************************/
void *test_vlstr_alloc_custom(size_t size, void *info)
{
void *ret_value=NULL; // Pointer to return
int *mem_used=(int *)info; // Get the pointer to the memory used
size_t extra; // Extra space needed
void *ret_value=NULL; // Pointer to return
size_t *mem_used=(size_t *)info; // Get the pointer to the memory used
size_t extra; // Extra space needed
/*
* This weird contortion is required on the DEC Alpha to keep the
* alignment correct - QAK
*/
extra=MAX(sizeof(void *),sizeof(size_t));
if((ret_value=HDmalloc(extra+size))!=NULL) {
*(size_t *)ret_value=size;
*mem_used+=size;
*(size_t *)ret_value=size;
*mem_used+=size;
} // end if
ret_value=((unsigned char *)ret_value)+extra;
ret_value = ((unsigned char *)ret_value) + extra;
return(ret_value);
}
/****************************************************************
**
** test_vlstr_free_custom(): Test VL datatype custom memory
** allocation routines. This routine just uses free to
** release the memory and decrements the amount of memory
** allocated. It is passed into setVlenMemManager.
** allocation routines. This routine just uses free to
** release the memory and decrements the amount of memory
** allocated. It is passed into setVlenMemManager.
**
** Note: exact copy from the C version.
**
@@ -100,14 +100,14 @@ void *test_vlstr_alloc_custom(size_t size, void *info)
void test_vlstr_free_custom(void *_mem, void *info)
{
unsigned char *mem;
int *mem_used=(int *)info; // Get the pointer to the memory used
size_t extra; // Extra space needed
size_t *mem_used=(size_t *)info; // Get the pointer to the memory used
size_t extra; // Extra space needed
/*
* This weird contortion is required on the DEC Alpha to keep the
* alignment correct - QAK
*/
extra=MAX(sizeof(void *),sizeof(size_t));
if(_mem!=NULL) {
@@ -118,9 +118,9 @@ void test_vlstr_free_custom(void *_mem, void *info)
}
/*-------------------------------------------------------------------------
* Function: test_vlstrings_basic
* Function: test_vlstring_dataset
*
* Purpose: Test simple VL string I/O.
* Purpose: Test writing/reading VL strings on datasets.
*
* Return: None
*
@@ -129,98 +129,171 @@ void test_vlstr_free_custom(void *_mem, void *info)
*
*-------------------------------------------------------------------------
*/
static void test_vlstrings_basic()
// String for testing datasets
static char *dynstring_ds_write=NULL;
static char stastring_ds_write[1]={'A'};
// Info for a string dataset
const H5std_string DSET1_NAME("String_ds");
const H5std_string DSET1_DATA("String Dataset");
static void test_vlstring_dataset()
{
const char *wdata[SPACE1_DIM1]= {
"Four score and seven years ago our forefathers brought forth on this continent a new nation,",
"conceived in liberty and dedicated to the proposition that all men are created equal.",
"Now we are engaged in a great civil war,",
"testing whether that nation or any nation so conceived and so dedicated can long endure."
// Output message about test being performed
SUBTEST("Testing VL String on Datasets");
try {
// Open the file
H5File file1(FILENAME, H5F_ACC_TRUNC);
// Create a datatype to refer to.
StrType vlst(0, H5T_VARIABLE);
// Open the root group.
Group root = file1.openGroup("/");
// Create dataspace for the dataset.
DataSpace ds_space (H5S_SCALAR);
// Create an dataset in the root group.
DataSet dset1 = root.createDataSet(DSET1_NAME, vlst, ds_space);
// Write data to the dataset.
dset1.write(DSET1_DATA, vlst);
// Read and verify the dataset string as a string of chars.
char *string_ds_check;
dset1.read(&string_ds_check, vlst);
if(HDstrcmp(string_ds_check, DSET1_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: DSET1_DATA=%s,string_ds_check=%s\n",__LINE__, DSET1_DATA.c_str(), string_ds_check);
HDfree(string_ds_check); // note: no need for std::string test
// Read and verify the dataset string as an std::string.
H5std_string read_str;
dset1.read(read_str, vlst);
if (read_str != DSET1_DATA)
TestErrPrintf("Line %d: Attribute data different: DSET1_DATA=%s,read_str=%s\n",__LINE__, DSET1_DATA.c_str(), read_str.c_str());
// Close the dataset.
dset1.close();
// Test scalar type dataset with 1 value.
dset1 = root.createDataSet("test_scalar_small", vlst, ds_space);
dynstring_ds_write = (char*)HDcalloc(1, sizeof(char));
HDmemset(dynstring_ds_write, 'A', 1);
// Write data to the dataset, then read it back.
dset1.write(&dynstring_ds_write, vlst);
dset1.read(&string_ds_check, vlst);
// Verify data read.
if(HDstrcmp(string_ds_check,dynstring_ds_write)!=0)
TestErrPrintf("VL string datasets don't match!, dynstring_ds_write=%s, string_ds_check=%s\n",dynstring_ds_write,string_ds_check);
HDfree(string_ds_check);
dset1.close();
// Open dataset DSET1_NAME again.
dset1 = root.openDataSet(DSET1_NAME);
// Close dataset and file
dset1.close();
file1.close();
PASSED();
} // end try block
// Catch all exceptions.
catch (Exception E) {
issue_fail_msg("test_vlstring_dataset()", __LINE__, __FILE__, E.getCDetailMsg());
}
} // test_vlstring_dataset()
/*-------------------------------------------------------------------------
* Function: test_vlstring_array_dataset
*
* Purpose: Test writing/reading VL string array to/from datasets.
*
* Return: None
*
* Programmer: Binh-Minh Ribler
* July, 2009
*
*-------------------------------------------------------------------------
*/
const H5std_string DSSTRARR_NAME("StringArray_dset");
static void test_vlstring_array_dataset()
{
const char *string_ds_array[SPACE1_DIM1]= {
"Line 1", "Line 2", "Line 3", "Line 4"
}; // Information to write
// Output message about test being performed
SUBTEST("Testing Basic VL String Functionality");
SUBTEST("Testing VL String Array on Datasets");
H5File* file1 = NULL;
H5File* file1;
try {
// Create file.
file1 = new H5File (FILENAME, H5F_ACC_TRUNC);
file1 = new H5File (FILENAME, H5F_ACC_RDWR);
// Create dataspace for datasets.
hsize_t dims1[] = {SPACE1_DIM1};
DataSpace sid1(SPACE1_RANK, dims1);
// Create dataspace for datasets.
hsize_t dims1[] = {SPACE1_DIM1};
DataSpace ds_space(SPACE1_RANK, dims1);
// Create a datatype to refer to.
StrType tid1(0, H5T_VARIABLE);
StrType vlst(0, H5T_VARIABLE);
// Create and write a dataset.
DataSet dataset(file1->createDataSet("Dataset1", tid1, sid1));
dataset.write(wdata, tid1);
DataSet dataset(file1->createDataSet(DSSTRARR_NAME, vlst, ds_space));
dataset.write(string_ds_array, vlst);
// Read and verify the dataset using strings of chars as buffer.
// Note: reading by array of H5std_string doesn't work yet.
char *string_ds_check[SPACE1_DIM1];
dataset.read(string_ds_check, vlst);
int ii;
for (ii = 0; ii < SPACE1_DIM1; ii++)
{
if(HDstrcmp(string_ds_check[ii], string_ds_array[ii])!=0)
TestErrPrintf("Line %d: Dataset data different: written=%s,read=%s\n",__LINE__, string_ds_array[ii], string_ds_check[ii]);
HDfree(string_ds_check[ii]);
}
// Close objects that are no longer needed.
dataset.close();
ds_space.close();
//
// Test with scalar data space.
//
// Create H5S_SCALAR data space.
DataSpace scalar_space;
// Create and write another dataset.
DataSet dataset2(file1->createDataSet("Dataset2", tid1, scalar_space));
DataSet dataset2(file1->createDataSet("Dataset2", vlst, scalar_space));
char *wdata2 = (char*)HDcalloc(65534, sizeof(char));
HDmemset(wdata2, 'A', 65533);
dataset2.write(&wdata2, tid1);
dataset2.write(&wdata2, vlst);
char *rdata2 = (char*)HDcalloc(65534, sizeof(char));
HDmemset(rdata2, 0, 65533);
dataset2.read(&rdata2, vlst);
if (HDstrcmp(wdata2, rdata2)!=0)
TestErrPrintf("Line %d: Dataset data different: written=%s,read=%s\n",__LINE__, wdata2, rdata2);
// Release resources from second dataset operation.
scalar_space.close();
dataset2.close();
HDfree(wdata2);
// Change to the custom memory allocation routines for reading
// VL string.
DSetMemXferPropList xfer;
int mem_used = 0; // Memory used during allocation
xfer.setVlenMemManager(test_vlstr_alloc_custom, &mem_used, test_vlstr_free_custom, &mem_used);
// Make certain the correct amount of memory will be used.
hsize_t vlsize = dataset.getVlenBufSize(tid1, sid1);
// Count the actual number of bytes used by the strings.
int str_used; // String data in memory
hsize_t i; // counting variable
for (i=0,str_used=0; i<SPACE1_DIM1; i++)
str_used+=HDstrlen(wdata[i])+1;
// Compare against the strings actually written.
verify_val((int)vlsize,str_used,"DataSet::getVlenBufSize", __LINE__, __FILE__);
// Read dataset from disk.
char *rdata[SPACE1_DIM1]; // Data read in
dataset.read(rdata, tid1, DataSpace::ALL, DataSpace::ALL, xfer);
// Make certain the correct amount of memory has been used.
verify_val(mem_used, str_used, "DataSet::read", __LINE__, __FILE__);
// Compare data read in.
for (i=0; i<SPACE1_DIM1; i++) {
int wlen = HDstrlen(wdata[i]);
int rlen = HDstrlen(rdata[i]);
if(wlen != rlen) {
TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%d, strlen(rdata[%d])=%d\n", (int)i, wlen, (int)i, rlen);
continue;
} // end if
if( HDstrcmp(wdata[i],rdata[i]) != 0 ) {
TestErrPrintf("VL data values don't match!, wdata[%d]=%s, rdata[%d]=%s\n", (int)i, wdata[i], (int)i, rdata[i]);
continue;
} // end if
} // end for
// Reclaim the read VL data.
DataSet::vlenReclaim((void *)rdata, tid1, sid1, xfer);
// Make certain the VL memory has been freed.
verify_val(mem_used, 0, "DataSet::vlenReclaim", __LINE__, __FILE__);
HDfree(rdata2);
// Close objects and file.
dataset.close();
tid1.close();
sid1.close();
xfer.close();
dataset2.close();
vlst.close();
file1->close();
PASSED();
@@ -229,16 +302,15 @@ static void test_vlstrings_basic()
// Catch all exceptions.
catch (Exception E)
{
issue_fail_msg("test_vlstrings_basic()", __LINE__, __FILE__, E.getCDetailMsg());
if (file1 != NULL) // clean up
delete file1;
issue_fail_msg("test_vlstring_array_dataset()", __LINE__, __FILE__, E.getCDetailMsg());
delete file1;
}
} // end test_vlstrings_basic()
} // end test_vlstring_array_dataset()
/*-------------------------------------------------------------------------
* Function: test_vlstrings_special
*
* Purpose: Test VL string code for special string cases, nil and
* Purpose: Test VL string code for special string cases, nil and
* zero-sized.
*
* Return: None
@@ -266,71 +338,71 @@ static void test_vlstrings_special()
DataSpace sid1(SPACE1_RANK, dims1);
// Create a datatype to refer to.
StrType tid1(0, H5T_VARIABLE);
StrType vlst(0, H5T_VARIABLE);
// Create a dataset.
DataSet dataset(file1.createDataSet("Dataset3", tid1, sid1));
DataSet dataset(file1.createDataSet("Dataset3", vlst, sid1));
// Read from the dataset before writing data.
dataset.read(rdata, tid1);
dataset.read(rdata, vlst);
// Check data read in.
hsize_t i; // counting variable
for (i=0; i<SPACE1_DIM1; i++)
if(rdata[i] != NULL)
if(rdata[i]!=NULL)
TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]);
// Write dataset to disk, then read it back.
dataset.write(wdata, tid1);
dataset.read(rdata, tid1);
dataset.write(wdata, vlst);
dataset.read(rdata, vlst);
// Compare data read in.
for (i=0; i<SPACE1_DIM1; i++) {
int wlen = HDstrlen(wdata[i]);
int rlen = HDstrlen(rdata[i]);
for (i = 0; i < SPACE1_DIM1; i++) {
size_t wlen = HDstrlen(wdata[i]);
size_t rlen = HDstrlen(rdata[i]);
if(wlen != rlen) {
TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%d, strlen(rdata[%d])=%d\n", (int)i, wlen, (int)i, rlen);
TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%u, strlen(rdata[%d])=%u\n", (int)i, (unsigned)wlen, (int)i, (unsigned)rlen);
continue;
} // end if
if( HDstrcmp(wdata[i],rdata[i]) != 0 ) {
if(HDstrcmp(wdata[i],rdata[i]) != 0) {
TestErrPrintf("VL data values don't match!, wdata[%d]=%s, rdata[%d]=%s\n", (int)i, wdata[i], (int)i, rdata[i]);
continue;
} // end if
} // end for
// Reclaim the read VL data.
DataSet::vlenReclaim((void *)rdata, tid1, sid1);
DataSet::vlenReclaim((void *)rdata, vlst, sid1);
// Close Dataset.
dataset.close();
/*
/*
* Create another dataset to test nil strings.
*/
// Create the property list and set the fill value for the second
// Create the property list and set the fill value for the second
// dataset.
DSetCreatPropList dcpl;
char *fill = NULL; // Fill value
dcpl.setFillValue(tid1, &fill);
dataset = file1.createDataSet("Dataset4", tid1, sid1, dcpl);
dcpl.setFillValue(vlst, &fill);
dataset = file1.createDataSet("Dataset4", vlst, sid1, dcpl);
// Close dataset creation property list.
dcpl.close();
// Read from dataset before writing data.
dataset.read(rdata, tid1);
dataset.read(rdata, vlst);
// Check data read in.
for (i=0; i<SPACE1_DIM1; i++)
if(rdata[i] != NULL)
TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i, rdata[i]);
if(rdata[i]!=NULL)
TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]);
// Try to write nil strings to disk.
dataset.write(wdata2, tid1);
dataset.write(wdata2, vlst);
// Read nil strings back from disk.
dataset.read(rdata, tid1);
dataset.read(rdata, vlst);
// Check data read in.
for (i=0; i<SPACE1_DIM1; i++)
@@ -339,7 +411,7 @@ static void test_vlstrings_special()
// Close objects and file.
dataset.close();
tid1.close();
vlst.close();
sid1.close();
file1.close();
@@ -349,7 +421,7 @@ static void test_vlstrings_special()
// Catch all exceptions.
catch (Exception E)
{
issue_fail_msg(E.getCFuncName(), __LINE__, __FILE__, E.getCDetailMsg());
issue_fail_msg("test_vlstrings_special()", __LINE__, __FILE__, E.getCDetailMsg());
}
} // test_vlstrings_special
@@ -369,7 +441,7 @@ const H5std_string VLSTR_TYPE("vl_string_type");
static void test_vlstring_type()
{
// Output message about test being performed.
SUBTEST("Testing VL String type");
SUBTEST("Testing VL String Type");
H5File* file1 = NULL;
try {
@@ -377,55 +449,55 @@ static void test_vlstring_type()
file1 = new H5File(FILENAME, H5F_ACC_RDWR);
// Create a datatype to refer to.
StrType vlstr_type(PredType::C_S1);
StrType vlst(PredType::C_S1);
// Change padding and verify it.
vlstr_type.setStrpad(H5T_STR_NULLPAD);
H5T_str_t pad = vlstr_type.getStrpad();
vlst.setStrpad(H5T_STR_NULLPAD);
H5T_str_t pad = vlst.getStrpad();
verify_val(pad, H5T_STR_NULLPAD, "StrType::getStrpad", __LINE__, __FILE__);
// Convert to variable-length string.
vlstr_type.setSize(H5T_VARIABLE);
vlst.setSize(H5T_VARIABLE);
// Check if datatype is VL string.
H5T_class_t type_class = vlstr_type.getClass();
H5T_class_t type_class = vlst.getClass();
verify_val(type_class, H5T_STRING, "DataType::getClass", __LINE__, __FILE__);
bool is_variable_str = vlstr_type.isVariableStr();
verify_val(is_variable_str, TRUE, "DataType::isVariableStr", __LINE__, __FILE__);
bool is_variable_str = vlst.isVariableStr();
verify_val(is_variable_str, true, "DataType::isVariableStr", __LINE__, __FILE__);
// Check default character set and padding.
H5T_cset_t cset = vlstr_type.getCset();
H5T_cset_t cset = vlst.getCset();
verify_val(cset, H5T_CSET_ASCII, "StrType::getCset", __LINE__, __FILE__);
pad = vlstr_type.getStrpad();
pad = vlst.getStrpad();
verify_val(pad, H5T_STR_NULLPAD, "StrType::getStrpad", __LINE__, __FILE__);
// Commit variable-length string datatype to storage.
vlstr_type.commit(*file1, VLSTR_TYPE);
vlst.commit(*file1, VLSTR_TYPE);
// Close datatype.
vlstr_type.close();
vlst.close();
// Try opening datatype again.
vlstr_type = file1->openStrType(VLSTR_TYPE);
vlst = file1->openStrType(VLSTR_TYPE);
// Close datatype and file.
vlstr_type.close();
vlst.close();
file1->close();
// Open file.
file1 = new H5File(FILENAME, H5F_ACC_RDWR);
// Open the variable-length string datatype just created
vlstr_type.setId((file1->openStrType(VLSTR_TYPE)).getId());
vlst = file1->openStrType(VLSTR_TYPE);
// Verify character set and padding
cset = vlstr_type.getCset();
cset = vlst.getCset();
verify_val(cset, H5T_CSET_ASCII, "StrType::getCset", __LINE__, __FILE__);
pad = vlstr_type.getStrpad();
pad = vlst.getStrpad();
verify_val(pad, H5T_STR_NULLPAD, "StrType::getStrpad", __LINE__, __FILE__);
// Close datatype and file
vlstr_type.close();
vlst.close();
file1->close();
PASSED();
@@ -435,6 +507,7 @@ static void test_vlstring_type()
catch (Exception E)
{
issue_fail_msg("test_vlstring_type()", __LINE__, __FILE__, E.getCDetailMsg());
delete file1;
}
} // end test_vlstring_type()
@@ -453,7 +526,7 @@ static void test_vlstring_type()
static void test_compact_vlstring()
{
// Output message about test being performed
SUBTEST("Testing VL Strings in compact dataset");
SUBTEST("Testing VL Strings on Compact Dataset");
try {
// Create file
@@ -464,22 +537,22 @@ static void test_compact_vlstring()
DataSpace sid1(SPACE1_RANK, dims1);
// Create a datatype to refer to
StrType tid1(0, H5T_VARIABLE);
StrType vlst(0, H5T_VARIABLE);
// Create dataset create property list and set layout
DSetCreatPropList plist;
plist.setLayout(H5D_COMPACT);
// Create a dataset
DataSet dataset(file1.createDataSet("Dataset5", tid1, sid1, plist));
DataSet dataset(file1.createDataSet("Dataset5", vlst, sid1, plist));
// Write dataset to disk
const char *wdata[SPACE1_DIM1] = {"one", "two", "three", "four"};
dataset.write(wdata, tid1);
dataset.write(wdata, vlst);
// Read dataset from disk
char *rdata[SPACE1_DIM1]; // Information read in
dataset.read(rdata, tid1);
dataset.read(rdata, vlst);
// Compare data read in
hsize_t i;
@@ -495,11 +568,11 @@ static void test_compact_vlstring()
} // end for
// Reclaim the read VL data
DataSet::vlenReclaim((void *)rdata, tid1, sid1);
DataSet::vlenReclaim((void *)rdata, vlst, sid1);
// Close objects and file
dataset.close();
tid1.close();
vlst.close();
sid1.close();
plist.close();
file1.close();
@@ -515,9 +588,9 @@ static void test_compact_vlstring()
} // test_compact_vlstrings
/*-------------------------------------------------------------------------
* Function: test_write_vl_string_attribute
* Function: test_vlstring_attribute
*
* Purpose: Test writing VL strings as attributes.
* Purpose: Test writing/reading VL strings on attributes.
*
* Return: None
*
@@ -526,25 +599,24 @@ static void test_compact_vlstring()
*
*-------------------------------------------------------------------------
*/
// String for testing attributes
static const char *string_att = "This is the string for the attribute";
// String for writing to attribute
static char *string_att_write=NULL;
// Info for a string attribute
const H5std_string ATTRSTR_NAME("String_attr");
const H5std_string ATTRSTR_DATA("String Attribute");
static void test_write_vl_string_attribute()
static void test_vlstring_attribute()
{
// Output message about test being performed
SUBTEST("Testing writing VL String as attributes");
SUBTEST("Testing VL String on Attributes");
try {
// Open the file
H5File file1(FILENAME, H5F_ACC_RDWR);
// Create a datatype to refer to.
StrType tid1(0, H5T_VARIABLE);
StrType vlst(0, H5T_VARIABLE);
// Open the root group.
Group root = file1.openGroup("/");
@@ -553,14 +625,14 @@ static void test_write_vl_string_attribute()
DataSpace att_space (H5S_SCALAR);
// Create an attribute for the root group.
Attribute gr_attr = root.createAttribute(ATTRSTR_NAME, tid1, att_space);
Attribute gr_attr = root.createAttribute(ATTRSTR_NAME, vlst, att_space);
// Write data to the attribute.
gr_attr.write(tid1, ATTRSTR_DATA);
gr_attr.write(vlst, ATTRSTR_DATA);
// Read and verify the attribute string as a string of chars.
char *string_att_check;
gr_attr.read(tid1, &string_att_check);
gr_attr.read(vlst, &string_att_check);
if(HDstrcmp(string_att_check, ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,string_att_check=%s\n",__LINE__, ATTRSTR_DATA.c_str(), string_att_check);
@@ -568,7 +640,7 @@ static void test_write_vl_string_attribute()
// Read and verify the attribute string as an std::string.
H5std_string read_str;
gr_attr.read(tid1, read_str);
gr_attr.read(vlst, read_str);
if (read_str != ATTRSTR_DATA)
TestErrPrintf("Line %d: Attribute data different: ATTRSTR_DATA=%s,read_str=%s\n",__LINE__, ATTRSTR_DATA.c_str(), read_str.c_str());
@@ -576,28 +648,22 @@ static void test_write_vl_string_attribute()
gr_attr.close();
// Test creating a "large" sized string attribute
gr_attr = root.createAttribute("test_scalar_large", tid1, att_space);
gr_attr = root.createAttribute("test_scalar_large", vlst, att_space);
string_att_write = (char*)HDcalloc(8192, sizeof(char));
HDmemset(string_att_write, 'A', 8191);
// Write data to the attribute, then read it back.
gr_attr.write(tid1, &string_att_write);
gr_attr.read(tid1, &string_att_check);
gr_attr.write(vlst, &string_att_write);
gr_attr.read(vlst, &string_att_check);
// Verify data read.
if(HDstrcmp(string_att_check,string_att_write)!=0)
TestErrPrintf("VL string attributes don't match!, string_att_write=%s, string_att_check=%s\n",string_att_write,string_att_check);
// Release resources.
HDfree(string_att_check);
gr_attr.close();
// Open attribute ATTRSTR_NAME again.
gr_attr = root.openAttribute(ATTRSTR_NAME);
// The attribute string written is freed below, in the
// test_read_vl_string_attribute() test
// Close attribute and file
HDfree(string_att_write);
gr_attr.close();
file1.close();
@@ -606,9 +672,9 @@ static void test_write_vl_string_attribute()
// Catch all exceptions.
catch (Exception E) {
issue_fail_msg("test_string_attr()", __LINE__, __FILE__, E.getCDetailMsg());
issue_fail_msg("test_vlstring_attribute()", __LINE__, __FILE__, E.getCDetailMsg());
}
} // test_string_attr()
} // test_vlstring_attribute()
/*-------------------------------------------------------------------------
* Function: test_read_vl_string_attribute
@@ -633,7 +699,7 @@ static void test_read_vl_string_attribute()
H5File file1(FILENAME, H5F_ACC_RDONLY);
// Create a datatype to refer to.
StrType tid1(0, H5T_VARIABLE);
StrType vlst(0, H5T_VARIABLE);
// Open the root group and its attribute named ATTRSTR_NAME.
Group root = file1.openGroup("/");
@@ -641,7 +707,7 @@ static void test_read_vl_string_attribute()
// Test reading "normal" sized string attribute
char *string_att_check;
att.read(tid1, &string_att_check);
att.read(vlst, &string_att_check);
if(HDstrcmp(string_att_check,ATTRSTR_DATA.c_str())!=0)
TestErrPrintf("VL string attributes don't match!, string_att=%s, string_att_check=%s\n",ATTRSTR_DATA.c_str(),string_att_check);
HDfree(string_att_check);
@@ -649,7 +715,7 @@ static void test_read_vl_string_attribute()
// Test reading "large" sized string attribute
att = root.openAttribute("test_scalar_large");
att.read(tid1, &string_att_check);
att.read(vlst, &string_att_check);
if(HDstrcmp(string_att_check,string_att_write)!=0)
TestErrPrintf("VL string attributes don't match!, string_att_write=%s, string_att_check=%s\n",string_att_write,string_att_check);
HDfree(string_att_check);
@@ -657,7 +723,7 @@ static void test_read_vl_string_attribute()
// Close objects and file.
att.close();
tid1.close();
vlst.close();
root.close();
file1.close();
@@ -670,8 +736,78 @@ static void test_read_vl_string_attribute()
}
} // test_read_vl_string_attribute
/*-------------------------------------------------------------------------
* Function: test_vlstring_array_attribute
*
* Purpose: Test writing/reading VL string array to/from attributes.
*
* Return: None
*
* Programmer: Binh-Minh Ribler
* July, 2009
*
*-------------------------------------------------------------------------
*/
const H5std_string ATTRSTRARR_NAME("StringArray_attr");
static void test_vlstring_array_attribute()
{
const char *string_att_array[SPACE1_DIM1]= {
"Line 1", "Line 2", "Line 3", "Line 4"
}; // Information to write
// Output message about test being performed
SUBTEST("Testing VL String Array on Attributes");
try {
// Open the file
H5File file1(FILENAME, H5F_ACC_RDWR);
// Create a datatype to refer to.
StrType vlst(0, H5T_VARIABLE);
// Open the root group.
Group root = file1.openGroup("/");
// Create dataspace for datasets.
hsize_t dims1[] = {SPACE1_DIM1};
DataSpace att_space(SPACE1_RANK, dims1);
// Create an attribute for the root group.
Attribute gr_attr = root.createAttribute(ATTRSTRARR_NAME, vlst, att_space);
// Write data to the attribute.
gr_attr.write(vlst, string_att_array);
// Read and verify the attribute string as a string of chars.
// Note: reading by array of H5std_string doesn't work yet.
char *string_att_check[SPACE1_DIM1];
gr_attr.read(vlst, &string_att_check);
int ii;
for (ii = 0; ii < SPACE1_DIM1; ii++)
{
if(HDstrcmp(string_att_check[ii], string_att_array[ii])!=0)
TestErrPrintf("Line %d: Attribute data different: written=%s,read=%s\n",__LINE__, string_att_check[ii], string_att_check[ii]);
HDfree(string_att_check[ii]); // note: no need for std::string test
}
// Close group's attribute.
gr_attr.close();
file1.close();
PASSED();
} // end try block
// Catch all exceptions.
catch (Exception E) {
issue_fail_msg("test_vlstring_array_attribute()", __LINE__, __FILE__, E.getCDetailMsg());
}
} // test_vlstring_array_attribute()
/* Helper routine for test_vl_rewrite() */
static void write_scalar_dset(H5File& file, DataType& type, DataSpace& space,
static void write_scalar_dset(H5File& file, DataType& type, DataSpace& space,
char *name, char *data)
{
DataSet dset;
@@ -689,7 +825,7 @@ static void write_scalar_dset(H5File& file, DataType& type, DataSpace& space,
}
/* Helper routine for test_vl_rewrite() */
static void read_scalar_dset(H5File& file, DataType& type, DataSpace& space,
static void read_scalar_dset(H5File& file, DataType& type, DataSpace& space,
char *name, char *data)
{
char *data_read;
@@ -814,14 +950,17 @@ void test_vlstrings()
// These tests use the same file
// Test basic VL string datatype
test_vlstrings_basic();
test_vlstring_dataset();
test_vlstrings_special();
test_vlstring_type();
test_compact_vlstring();
// Test using VL strings in attributes
test_write_vl_string_attribute();
test_read_vl_string_attribute();
test_vlstring_attribute();
// Test using VL string array in attributes and datasets
test_vlstring_array_attribute();
test_vlstring_array_dataset();
// Test writing VL datasets in files with lots of unlinking
test_vl_rewrite();

View File

@@ -72,7 +72,7 @@ fi
# `-pg'). This may or may not include debugging
# or production flags.
#
# CFLAGS Flags can be added to this variable which
# H5_CFLAGS Flags can be added to this variable which
# might already be partially initialized. These
# flags will always be passed to the compiler
# and should include switches to turn on full
@@ -81,16 +81,14 @@ fi
# practices resulting in few if any
# warnings.
#
# Warning flags do not have to be added to CFLAGS
# Warning flags do not have to be added to H5_CFLAGS
# variable if the compiler is the GNU gcc
# compiler or a descendent of gcc such as EGCS or PGCC.
#
# The CFLAGS should contains *something* or else
# configure will probably add `-g'. For most
# systems this isn't a problem but some systems
# will disable optimizations in favor of the
# `-g'.
#
# AM_CFLAGS Flags added directly into this variable will
# be propogated to the compiler wrapper scripts (h5cc,
# h5c++, et cetera) in addition to being used to compile
# the library.
#
# These flags should be set according to the compiler being used.
# There are two ways to check the compiler. You can try using `-v' or
@@ -101,7 +99,7 @@ fi
case $CC_BASENAME in
gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS=
PROD_CFLAGS="-O3 -fomit-frame-pointer"
@@ -111,7 +109,7 @@ case $CC_BASENAME in
;;
*)
CFLAGS="$CFLAGS -ansi"
H5_CFLAGS="$H5_CFLAGS -ansi"
DEBUG_CFLAGS="-g"
DEBUG_CPPFLAGS=
PROD_CFLAGS="-O"

View File

@@ -1,5 +1,5 @@
Copyright by The HDF Group (THG) and
Copyright by The HDF Group and
The Board of Trustees of the University of Illinois.
All rights reserved.

View File

@@ -28,54 +28,30 @@ fi
# Figure out compiler flags
. $srcdir/config/gnu-flags
# The default Fortran 90 compiler
. $srcdir/config/intel-flags
if test "X-" = "X-$FC"; then
# Assume Absoft compiler
FC=xlf
FC_BASENAME=xlf
else
case $CC_BASENAME in
gcc*)
FC=gfortran
FC_BASENAME=gfortran
;;
icc*)
FC=ifort
FC_BASENAME=ifort
;;
esac
fi
# Figure out compiler flags
. $srcdir/config/gnu-fflags
. $srcdir/config/intel-fflags
# Neither xlf nor f95 have a working "version" command.
# If FC is set, try to guess which one is being used by examining
# the last element in the path to the compiler.
TEMP_BASENAME=`basename $FC`
if test "xlf" = "${TEMP_BASENAME}"; then
FC_BASENAME=xlf
else
FC_BASENAME=f95
fi
# Fortran doesn't work with shared libraries
#
if test "X-" != "X-$enable_fortran"; then
echo ' Warning: shared libraries are not supported with Fortran'
echo ' Disabling shared libraries'
enable_shared="no"
fi
case $FC_BASENAME in
xlf)
F9XSUFFIXFLAG="-qsuffix=f=f90 -qfree=f90"
FCFLAGS="$FCFLAGS ${F9XSUFFIXFLAG}"
H5_FCFLAGS="$H5_FCFLAGS -qmoddir=./ "
FSEARCH_DIRS="-I./ -I../src"
DEBUG_FCFLAGS="-g"
PROD_FCFLAGS="-O"
PROFILE_FCFLAGS="-g"
f9x_flags_set=yes
;;
f95)
F9XSUFFIXFLAG=""
# We force compiler to use upper case for external names
# (just in case since this should be a default EIP)
H5_FCFLAGS="$H5_FCFLAGS"
FSEARCH_DIRS=""
DEBUG_FCFLAGS="-g"
PROD_FCFLAGS="-O"
PROFILE_FCFLAGS="-g -pg"
f9x_flags_set=yes
# f95 doesn't support shared libraries
echo ' warning: shared libraries are not supported for f95!'
echo ' disabling shared libraries'
enable_shared="no"
;;
esac

View File

@@ -22,12 +22,6 @@
RM=rm -f
CP=cp
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL=/bin/sh
# Some machines need a command to run executables; this is that command
# so that our tests will run.
# We use RUNTESTS instead of RUNSERIAL directly because it may be that
@@ -49,7 +43,6 @@ LIBH5F_HL=$(top_builddir)/hl/fortran/src/libhdf5hl_fortran.la
LIBH5CPP_HL=$(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
docdir = $(exec_prefix)/doc
# Scripts used to build examples
@@ -62,13 +55,15 @@ H5FC_PP=$(bindir)/h5pfc
H5CPP=$(bindir)/h5c++
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
CFLAGS=@CFLAGS@ @H5_CFLAGS@
CPPFLAGS=@CPPFLAGS@ @H5_CPPFLAGS@
FCFLAGS=@FCFLAGS@ @H5_FCFLAGS@
CXXFLAGS=@CXXFLAGS@ @H5_CXXFLAGS@
AM_CFLAGS=@AM_CFLAGS@ @H5_CFLAGS@
AM_FCFLAGS=@AM_FCFLAGS@ @H5_FCFLAGS@
AM_CXXFLAGS=@AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_CPPFLAGS=@AM_CPPFLAGS@ @H5_CPPFLAGS@
# The trace script; this is used on source files from the C library to
# insert tracing macros.

View File

@@ -122,10 +122,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -161,10 +161,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \

View File

@@ -21,7 +21,7 @@
# Disabling Dependency Tracking
# ---------------------
#
# The Cray X1 machines that THG tests on seem to have trouble doing
# The Cray X1 machines that The HDF Group tests on seem to have trouble doing
# dependency tracking (probably because they use Cray's C++ compiler,
# which autoconf may not recognize). Until this is fixed by autoconf
# or a user complains, disable dependency tracking on Crays.
@@ -68,25 +68,23 @@ RANLIB=:
# `-pg'). This may or may not include debugging
# or production flags.
#
# CFLAGS Flags can be added to this variable which
# might already be partially initialized. These
# flags will always be passed to the compiler
# and should include switches to turn on full
# warnings. HDF5 attempts to be ANSI and Posix
# compliant and employ good programming
# practices resulting in few if any
# warnings.
# H5_CFLAGS Flags can be added to this variable which
# might already be partially initialized. These
# flags will always be passed to the compiler
# and should include switches to turn on full
# warnings. HDF5 attempts to be ANSI and Posix
# compliant and employ good programming
# practices resulting in few if any
# warnings.
#
# Warning flags do not have to be added to CFLAGS
# variable if the compiler is the GNU gcc
# compiler or a descendent of gcc such as EGCS or PGCC.
# Warning flags do not have to be added to H5_CFLAGS
# variable if the compiler is the GNU gcc
# compiler or a descendent of gcc such as EGCS or PGCC.
#
# The CFLAGS should contains *something* or else
# configure will probably add `-g'. For most
# systems this isn't a problem but some systems
# will disable optimizations in favor of the
# `-g'.
#
# AM_CFLAGS Flags added directly into this variable will
# be propogated to the compiler wrapper scripts (h5cc,
# h5c++, et cetera) in addition to being used to compile
# the library.
#
# These flags should be set according to the compiler being used.
# There are two ways to check the compiler. You can try using `-v' or
@@ -162,7 +160,7 @@ if test "X-" = "X-$f9x_flags_set"; then
# The -em flag enables .mod files, which is what HDF5 builds.
F9XSUFFIXFLAG=""
FSEARCH_DIRS=""
FCFLAGS="$FCFLAGS -em"
H5_FCFLAGS="$H5_FCFLAGS -em"
DEBUG_FCFLAGS="-g"
PROD_FCFLAGS=""
PROFILE_FCFLAGS=""

View File

@@ -26,7 +26,7 @@
#
if test X = "X$cc_flags_set"; then
cc_vendor=DEC
cc_version="`$CC $CFLAGS -V 2>&1 |head -1`"
cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |head -1`"
case "$cc_version" in
DEC*)
cc_version="`echo $cc_version |\
@@ -111,7 +111,7 @@ fi
if test "X-" = "X-$f9x_flags_set"; then
F9XSUFFIXFLAG=""
FSEARCH_DIRS=""
FCFLAGS="$FCFLAGS -Olimit 2048 -std1"
H5_FCFLAGS="$H5_FCFLAGS -Olimit 2048 -std1"
DEBUG_FCFLAGS="-Olimit 2048 -std1"
PROD_FCFLAGS="-Olimit 2048 -std1"
PROFILE_FCFLAGS="-Olimit 2048 -std1"
@@ -128,7 +128,7 @@ fi
case $CXX_BASENAME in
g++)
CXXFLAGS="$CXXFLAGS -Wsign-compare" #Only works for some versions
H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CXXFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS=
PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
@@ -138,7 +138,7 @@ case $CXX_BASENAME in
;;
*)
CXXFLAGS="$CXXFLAGS -tlocal -D__USE_STD_IOSTREAM"
H5_CXXFLAGS="$H5_CXXFLAGS -tlocal -D__USE_STD_IOSTREAM"
DEBUG_CXXFLAGS="-g"
DEBUG_CPPFLAGS=
PROD_CXXFLAGS="-O"

Some files were not shown because too many files have changed in this diff Show More