Compare commits

...

1425 Commits

Author SHA1 Message Date
Allen Byrne
a3f987daa9 [svn-r26230] Add def file comment when it is F2003 2015-02-19 08:57:48 -05:00
Dana Robinson
a7f70203b4 [svn-r26225] Removes broken open() call work-around that was specific to the now
unsupported Code Warrior compiler. Also removes the H5_NO_SHARED_WRITING
symbol from the pubconf file.

Fixes: HDFFV-9080

Tested on: jam only, after bin/reconfigure
           (all platforms should see no source changes)
2015-02-19 00:24:09 -05:00
Mohamad Chaarawi
32c030ad2b [svn-r26223] add another H5close before finalize so with-mpe does not fail. 2015-02-18 16:37:25 -05:00
Mohamad Chaarawi
79d94c7bb7 [svn-r26222] call H5close before MPI_Finalize() and close some objects that could be potentially left open. 2015-02-18 16:17:15 -05:00
Dana Robinson
63d38ca75a [svn-r26219] Merge r26029 from autotools_rework feature branch.
Adds a comment to configure.ac indicating that Cygwin still has
problems with srcdir and time.

Fixes: HDFFV-9082

Tested on: jam (comment only change) w/ bin/reconfigure
2015-02-18 16:06:47 -05:00
Scot Breitenfeld
93379cf58f [svn-r26217] Added H5T_PROVISIONAL_mp_H5TENUM_INSERT_F 2015-02-18 15:03:45 -05:00
Dana Robinson
c3385d9010 [svn-r26216] Removed inappropriate TEXT() macro from the plugin name and changed a few Win32 API calls to use the <function>A version, which forces char behavior (vs. wchar_t) when UNICODE is defined. This only affects Windows.
Fixes HDFFV-8927

Tested on 64-bit Windows 7 with Visual Studio 2012 and CMake 3.2 with UNICODE/_UNICODE both defined and undefined.
2015-02-18 14:41:43 -05:00
Scot Breitenfeld
27a385d557 [svn-r26214] Fix for HDFFV-8908:
h5tenum_insert_f does not work with default 8 byte integers (xlf compiler)
2015-02-18 13:51:13 -05:00
Quincey Koziol
41aeac4504 [svn-r26213] Description:
Minor code cleanups, to align with revise_chunks branch.

Tested on:
    Mac OSX/64 10.10.2 (amazon) w/serial & parallel
    Linux/32 2.6.x (jam) w/serial
2015-02-18 13:25:05 -05:00
Scot Breitenfeld
3a303d3dd3 [svn-r26211] revert ci 26204 2015-02-18 12:45:42 -05:00
Scot Breitenfeld
f1ffd2202b [svn-r26210] Removed debugging statement and typos. 2015-02-18 12:30:31 -05:00
Allen Byrne
73bb11dda3 [svn-r26208] Update cmake minimums 2015-02-18 11:56:22 -05:00
Scot Breitenfeld
69d4bda97c [svn-r26206] Reverting change r26204 2015-02-18 11:45:03 -05:00
Scot Breitenfeld
a75fd4c960 [svn-r26205] Fix for HDFFV-8908:
h5tenum_insert_f does not work with default 8 byte integers (xlf compiler)
2015-02-18 11:42:47 -05:00
Mohamad Chaarawi
546899dcd6 [svn-r26203] increase string size to 128 for MPE function event name. 2015-02-18 10:53:08 -05:00
Dana Robinson
3db1c5f635 [svn-r26200] Fixed mixed tabs and spaces before making changes.
No code changes.
2015-02-17 16:30:33 -05:00
Quincey Koziol
85504f5376 [svn-r26195] Description:
Switch from enum H5D_CHUNK_BTREE to H5D_CHUNK_IDX_BTREE, along with a couple
of minor whitespace touchups.

Tested on:
    Mac OSX/64 10.10.2 (amazon) w/serial & parallel
    Linux/32 2.6.x (jam) w/serial
2015-02-17 15:11:39 -05:00
Quincey Koziol
595b01658e [svn-r26193] Description:
Fix locking error when splitting root node of v1 B-tree, and simplify
the iteration over entries in a v1 B-tree (avoiding using the sibling pointer
also).

Tested on:
    Mac OSX/64 10.10.2 (amazon) w/serial & parallel
    Linux/32 2.6.x (jam) w/serial
2015-02-17 14:30:27 -05:00
Quincey Koziol
fd79bc3c1a [svn-r26191] Description:
Track the min & max keys for a v2 B-tree, so it can more efficiently
determine if a key is present in the B-tree.

Tested on:
    Mac OSX/64 10.10.2 (amazon) w/parallel & serial
    Linux/32 2.6.x (jam) w/serial
2015-02-17 10:38:54 -05:00
Scot Breitenfeld
b28b5fade9 [svn-r26188] Merged autotools fixes into the trunk:
HDFFV-9089, HDFFV-9091, HDFFV-9092, HDFFV-9094, HDFFV-9095
2015-02-16 12:17:49 -05:00
Mohamad Chaarawi
74fbb9e327 [svn-r26180] merge configure fixes for HDFFV-9068,9069,9096,9097,9135 from autotools_rework branch:
- Remove Infering parallel compilers (C and Fortran) from configure.ac
- Remove restriction to build shared with parallel
- Cleanup parallel sections in configure.ac
- remove large file support checks
- MPE fixes.

tested with h5committest.
2015-02-16 11:17:03 -05:00
HDF Tester
9a376e4ee9 [svn-r26177] Snapshot version 1.9 release 214 2015-02-15 06:13:34 -05:00
Albert Cheng
d0c224ae18 [svn-r26173] HDF5-9117: if testing for proper working 'tr' command is needed.
Long time ago, the tr command in some platform does not work properly and this test was added
to detect broken tr and abort the configure process.
We are not aware of such broken tr command in current systems and decided to retire this test.

The setup of ${TR} is still needed as it is used to process DEBUG_PKG.

Tested: h5committested plus using "./configure --enable-debug=all" in jam.
2015-02-13 19:24:50 -05:00
Scot Breitenfeld
7fcba33763 [svn-r26172] Fix for: HDFFV-8685 -- Have one include file to use for HL libraries
added hdf5.h to hdf5_hl.h
2015-02-13 16:32:44 -05:00
Scot Breitenfeld
999440cbf8 [svn-r26170] Fix for HDFFV-8559
Correction of mistyped variable and removed implicit typing for interfaces.
2015-02-13 15:57:52 -05:00
Allen Byrne
d1897cb038 [svn-r26162] Update versions 2015-02-12 16:56:21 -05:00
Allen Byrne
ab75986b8c [svn-r26161] Fix cmake case.
Turn on F2003 by default.
Set source properties in fortran cmake files.
2015-02-12 16:52:48 -05:00
Neil Fortner
1b78408184 [svn-r26149] Fix potential memory error reported by valgrind in
H5D__link_chunk_collective_io.  This would occur when performing collective I/O
on a dataset with only 1 chunk, and a participating process had nothing to read
or write.

Tested: jam, koala, ostrich (h5committest)
2015-02-09 11:31:28 -05:00
HDF Tester
f4a60fc34c [svn-r26146] Snapshot version 1.9 release 213 2015-02-08 06:05:07 -05:00
Scot Breitenfeld
06d1971f41 [svn-r26124] Fixed issue with deprecated symbols for H5G constants 2015-02-04 09:38:16 -05:00
Scot Breitenfeld
5060fb1050 [svn-r26122] Fix for HDFFV-9040 h5rget_object_type_f returns different types than indicated by API
Slight change of global variable definitions from C.

Tested: jam.
2015-02-03 13:52:27 -05:00
Allen Byrne
3946ec882b [svn-r26112] Add quotes around name 2015-02-02 13:02:57 -05:00
Allen Byrne
ba35eb0f05 [svn-r26109] Correct name of source file 2015-02-02 13:00:34 -05:00
Allen Byrne
fc93c6fe70 [svn-r26106] Disable flush1/flush2 test under debug VFD on Windows. 2015-02-02 12:01:15 -05:00
HDF Tester
67f41bf9f8 [svn-r26092] Snapshot version 1.9 release 212 2015-02-01 06:03:18 -05:00
Mohamad Chaarawi
a9cf3b658b [svn-r26087] update build procedure for Hopper (Cray).. only static now.
Will add shared when we introduce support later.
2015-01-30 15:49:39 -05:00
Allen Byrne
e05c75ea4e [svn-r26074] fix test destination 2015-01-29 12:58:27 -05:00
Allen Byrne
055348122d [svn-r26040] HDFFV-9018: Install pdb files to bin folder with dlls. 2015-01-26 15:23:19 -05:00
Allen Byrne
eb3900554e [svn-r26036] HDFFV-8736: Patch H5PL.c and test for cygwin plugin support.
Tested: local linux and cygwin
2015-01-26 13:03:18 -05:00
Mohamad Chaarawi
f4e69ad579 [svn-r26012] make the print format for address overflow error windows friendly. 2015-01-23 09:57:35 -05:00
Scot Breitenfeld
374f064f82 [svn-r26011] Added (i.e. re-added) missing h5oget_info_c definition. 2015-01-23 08:54:04 -05:00
Scot Breitenfeld
1e3f530848 [svn-r26010] Fix for:
HDFFV-9049
Intel 15.0 15.0.1 Fails with --enable-fortran2003

Added BIND to the Fortran 2003 functions.

Tested: windows (tested concept)
        linux (--enable-fortran and --enable-fortran2003)
2015-01-22 16:56:03 -05:00
Scot Breitenfeld
324f087d05 [svn-r26009] Code Comment cleanup:
-----------------------
Remove the numbers in the comments associated with:

       H5G_UNKNOWN_F (-1)
       H5G_LINK_F      0
       H5G_GROUP_F     1
       H5G_DATASET_F   2
       H5G_TYPE_F      3

These should not be defined as a number since they can changed. They should be considered named parameters, not actual values. 

HDFFV-9040
h5rget_object_type_f returns different types than indicated by API
2015-01-22 16:53:30 -05:00
Mohamad Chaarawi
543a8d9d86 [svn-r26005] fix error return value. minor change. 2015-01-22 14:26:42 -05:00
Mohamad Chaarawi
5eee1d7d7e [svn-r26002] move checks on reading/writing beyond file eoa outside of the file drivers and into a centralized place in H5FD_read/write.
tested h5committest.
2015-01-22 12:15:21 -05:00
Mohamad Chaarawi
a24e3e5c86 [svn-r25994] revert adding the has_mpi_atomicity feature flag and use the has_mpi
flag instead.
2015-01-21 13:57:55 -05:00
Mohamad Chaarawi
de47d219c9 [svn-r25993] remove last usage of IS_H5FD_MPIO. 2015-01-21 12:05:03 -05:00
Allen Byrne
21ef17f951 [svn-r25990] Add VFD flush2 depends on flush1 property to test 2015-01-21 09:31:46 -05:00
Allen Byrne
3b742b733b [svn-r25987] Use variable instead of hard coded value 2015-01-20 15:02:17 -05:00
Allen Byrne
aafac8d770 [svn-r25986] HDFFV-9060: Changed test folder to use different test folders for VFDs and regular. Needed to set srcdir env var and specify working folder to the folders where all the reference files were copied.
Tested: local linux
2015-01-20 14:44:28 -05:00
Mohamad Chaarawi
aac2bb6182 [svn-r25984] change the message flag H5O_MSG_FLAG_FAIL_IF_UNKNOWN to
H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE. Will add a new
H5O_MSG_FLAG_FAIL_IF_UNKNOWN_ALWAYS with the new avoid_truncate patch
coming later.

tested h5committest
2015-01-20 12:17:05 -05:00
Mohamad Chaarawi
1949c40bfd [svn-r25983] HDFFV-1125: Eliminate IS_H5FD_MPI() macro use in the library and replace with driver feature flag(s).
Add an MPI atomicity feature flag and remove the macro from the library.

tested Parallel on Jam.
2015-01-20 10:26:45 -05:00
HDF Tester
234e77b3f9 [svn-r25981] Snapshot version 1.9 release 211 2015-01-18 06:01:21 -05:00
Scot Breitenfeld
485faa47e7 [svn-r25980] Reverting check-in 25978, C_LONG_DOUBLE seems to be 16 bytes sometimes and 10 bytes other times. Not sure why. 2015-01-15 10:18:45 -05:00
Scot Breitenfeld
c6cf45e3e7 [svn-r25978] Bug fix for HDFFV-8847
Tested: h5committest
2015-01-13 11:23:07 -05:00
HDF Tester
d3ddfe842d [svn-r25975] Snapshot version 1.9 release 210 2015-01-11 06:05:36 -05:00
Albert Cheng
0ebac5f389 [svn-r25971] Update with retirement of AIX 5.3 and addition of AIX 6.1 support. 2015-01-09 10:33:54 -05:00
Mohamad Chaarawi
50c5f1ab2c [svn-r25963] Do not remove the prefix in the chunk alloc file, otherwise it makes
the H5Fcreate fail when prefix is specified.

tested parallel on Jam.
2015-01-08 12:36:10 -05:00
Allen Byrne
5da20c221e [svn-r25955] Added Perform and io_timer back into build.
Tested: local linux cmake
2015-01-05 16:52:26 -05:00
Albert Cheng
6a982a7690 [svn-r25954] HDFFV-9046: reorganize hdf5/perform, step 2
Last changes had caused problems with Windows platform:
1. H5private.h in io_timer.h is not accessible in the distributed shared library of tools.
   Need to move it to io_timer.c.
2. debug_start_stop_time() would not be available outside of h5perf. Some favor of compiler
   does not like it.  Screened it out for now.
3. mere "extern" is not good enough for Windows shared library. Must mark them as DLL. Need to mark them as 
   "H5TOOLS_DLL".
4. STANDALONE mode is broken. Screened out the code for now.

Tested; h5committest.
2015-01-05 16:47:34 -05:00
Allen Byrne
671006a10d [svn-r25953] Comment out printf statement as it caused system resource issues on Windows. Test now executes in 1/10 of time.
Tested: local linux and Windows
2015-01-05 16:32:43 -05:00
Allen Byrne
6b109315f5 [svn-r25951] HDFFV-9054: disable io_timer in tools lib and perform sub-folder due to SHARED compile issues and other issues. 2015-01-05 11:21:22 -05:00
HDF Tester
509cd32da2 [svn-r25949] Snapshot version 1.9 release 209 2015-01-04 06:04:11 -05:00
Albert Cheng
fe1bf91042 [svn-r25946] Removed debug statments that use //.
Tested: env CFLAGS=-ansi buildhdf5 in jam and parallel platypus.
2015-01-03 23:51:03 -05:00
Albert Cheng
c803666ec2 [svn-r25940] HDFFV-9046: reorganize hdf5/perform, step 2
Move timing measurement routines used by h5perf and h5perf_serial to tools/lib
so that they can be used by other tools too.

tools/lib/io_timer.c
tools/lib/io_timer.h
tools/perform/io_timer.c
tools/perform/io_timer.h
    renamed perform/io_timer.[ch] to lib/io_timer.[ch]

tools/lib/Makefile.am
tools/lib/Makefile.in
tools/lib/CMakeLists.txt
tools/perform/Makefile.in
tools/perform/Makefile.am
tools/perform/CMakeLists.txt
MANIFEST
    updated due to the move.

Tested; h5committest and jam (serial)
2015-01-01 11:24:55 -05:00
Allen Byrne
dcc956f594 [svn-r25938] Remove build and test commands for deleted benchpar.c 2014-12-31 13:06:27 -05:00
Allen Byrne
7affd93d05 [svn-r25934] Fix incorrectly combined check. 2014-12-31 12:50:47 -05:00
Albert Cheng
f5d2975018 [svn-r25933] updated. 2014-12-30 09:49:02 -05:00
Albert Cheng
aebc4ae149 [svn-r25932] HDFFV-8902: merge the source code of h5perf and h5perf_serial, stage 1.
tools/perform/sio_timer.h:
tools/perform/pio_timer.c:
tools/perform/io_timer.h:
tools/perform/io_timer.c:
    Renamed pio_timer.[ch] as io_timer.[ch];
    merged content of sio_timer.[ch] into io_timer.[ch] so that both h5perf and h5perf_serial
    call the combined io_timer.[ch].
    Moved the debug printing code segment in set_time() in [sp]io_timer.c to as debug_start_stop_time() in [sp]io_perf.c where it belongs.
    Screened out set_timer_type() and get_timer_type() which were not used by any code.

tools/perform/Makefile.am:
tools/perform/Makefile.in:
tools/perform/CMakeLists.txt
    Adjusted to use io_timer.c for both h5perf and h5perf_serial.

tools/perform/pio_perf.c:
tools/perform/sio_perf.c:
tools/perform/pio_perf.h:
tools/perform/sio_perf.h:
    Renamed [sp]io_time_destory() to same io_time_destroy();
    Moved the debug printing code segment in set_time() in [sp]io_timer.c to as debug_start_stop_time() in [sp]io_perf.c where it belongs.

tools/perform/pio_engine.c:
tools/perform/sio_engine.c:
    Removed #include io_timer.h since it was already #include by [sp]io_perf.h.

MANIFEST:
    Updated the merge of [sp]io_timer.[ch] into io_timer.[ch].

Tested: h5committest and jam in extra.
2014-12-30 00:56:05 -05:00
Quincey Koziol
b65eae7aee [svn-r25929] Description:
Clean up EOF code within library and add 'mem_type' parameter to 'get_eof'
VFD callback, to avoid various ambiguous situations, particularly with the
multi VFD.  (Supports changes for 'avoid_truncate' feature also)

Tested on:
    MacOSX/64 10.10.1 (amazon) w/serial & parallel
    h5committest forthcoming
2014-12-29 01:02:06 -05:00
Quincey Koziol
662892e8b1 [svn-r25928] Description:
Minor code cleanups found while reviewing 'avoid_truncate' changes.

Tested on:
    MacOSX/64 10.10.1 (amazon) w/serial & parallel
    (too minor to require h5committest)
2014-12-29 00:17:22 -05:00
HDF Tester
b7047b6425 [svn-r25924] Snapshot version 1.9 release 208 2014-12-28 06:03:37 -05:00
Scot Breitenfeld
fc8767cf82 [svn-r25923] Added name to the BIND(C) attribute, removed the !DEC$ statements for windows. 2014-12-23 10:08:55 -05:00
Mohamad Chaarawi
d4e70e8cae [svn-r25922] mpi version check for new mpi 3 features should be >= 3 rather than == 3. 2014-12-23 10:02:40 -05:00
Mohamad Chaarawi
cbd0460b1b [svn-r25921] - wrap MPI 3 usage with MPI_VERSION compile time check.
- build out unbuffered stdout/err for windows
2014-12-23 09:54:47 -05:00
Scot Breitenfeld
443bc1200f [svn-r25920] Undo BIND(C) addition. 2014-12-23 09:34:17 -05:00
Allen Byrne
e0c586cd98 [svn-r25918] If not testing skip building test only programs. 2014-12-22 09:45:46 -05:00
Scot Breitenfeld
51abd359f3 [svn-r25917] Added BIND(C) to fortran functions that pass a VALUE. 2014-12-22 09:12:04 -05:00
HDF Tester
c8fea60113 [svn-r25915] Snapshot version 1.9 release 207 2014-12-21 05:45:34 -05:00
Albert Cheng
9747e63938 [svn-r25913] Updated. 2014-12-19 15:05:23 -05:00
Larry Knox
1d83ae98b9 [svn-r25912] Revert change r25701: Add LD path to HDF5 install directory to address HDFFV-8944.
The change broke DESTDIR builds where an older HDF5 is installed in the --prefix directory.
The original problem remains.

Tested with h5committest
2014-12-19 14:50:58 -05:00
Albert Cheng
91f7c2797f [svn-r25909] HDFFV-8156: perform/benchpar failed to run
Benchpar.c is retired/deleted. If it is ever needed, it can be retrieved from the SVN repository
or even previous version of HDF5 source code.

Tested: jam parallel make passed.
2014-12-19 12:02:04 -05:00
Albert Cheng
73ccd8a4b3 [svn-r25908] Cleaned up typos comments from last commit.
Tested: just eyeball since changes are cosmetic.
2014-12-19 11:03:58 -05:00
Allen Byrne
6b3e39f9e7 [svn-r25905] Fix CMP0054 warning 2014-12-19 10:14:29 -05:00
Allen Byrne
98958b530a [svn-r25904] Fix CMP0054 warning 2014-12-19 10:13:55 -05:00
Allen Byrne
3f2ce7aebc [svn-r25902] Fix CMP0053 warning 2014-12-19 09:20:48 -05:00
Albert Cheng
d9ba0ae35f [svn-r25900] HDFFV-9046: reorganize hdf5/perform/ directory
Moved perform/ to tools/perform. Updated all the configure related files for the new location.

Tested: h5committested plus tested in jam and kite.
2014-12-17 18:07:24 -05:00
Allen Byrne
4c24346fe1 [svn-r25898] Replace 7zip required command with cmake command 2014-12-17 16:24:51 -05:00
Albert Cheng
3eaa80b0d3 [svn-r25891] Updated online help page to match what the command does now.
Tested: "bin/release -h" and visual inspect the output to be correct.
2014-12-17 05:44:35 -05:00
HDF Tester
118710f360 [svn-r25886] Snapshot version 1.9 release 206 2014-12-14 05:46:08 -05:00
Quincey Koziol
c0ec3bf38e [svn-r25884] Description:
Minor code cleanups found while reviewing 'avoid truncate' branch.

Tested on:
    MacOSX/64 10.10.1 (amazon) w/serial & parallel
    (too minor to require h5committest)
2014-12-10 22:00:08 -05:00
Quincey Koziol
8368e9b684 [svn-r25881] Description:
Minor code/comment cleanups, found while reviewing 'avoid truncate' code.

Tested on:
    MacOSX/64 10.10.1 (amazon) w/serial & parallel
    (Too minor to require h5committest)
2014-12-10 15:29:47 -05:00
Allen Byrne
bb9460b27d [svn-r25880] Test if binary folder exists 2014-12-10 15:20:04 -05:00
Albert Cheng
609636acaa [svn-r25876] DAILYTEST-31: Fix cmakehdf5 for Daily Test use
Fix cmakehdf5 so that it can figure out where the source directory is.
It expects cmakehdf5 itself resides at $srcdir/bin/cmamkehdf5.

Tested: Jam by invoking cmakehdf4 with different paths.
2014-12-09 19:51:29 -05:00
Albert Cheng
ff7783bbc8 [svn-r25871] Updated with new options of cmakehdf5. 2014-12-09 17:04:01 -05:00
Albert Cheng
b3852a9f1e [svn-r25870] HDFFV-8932: configure options added to enable or disable the building of
different language API's and testings. See "cmakehdf5 --help" for details.

Tested: jam using different combinations of option and verified correctness
by inspeacting libhdf5.settings output.
2014-12-09 17:03:39 -05:00
Allen Byrne
b21f51c38f [svn-r25868] HDFFV-9041: Definitions needed to be a semi-colon separated list. 2014-12-09 14:55:10 -05:00
HDF Tester
c1763bef53 [svn-r25864] Snapshot version 1.9 release 205 2014-12-07 05:51:49 -05:00
HDF Tester
ccbd46e914 [svn-r25855] Snapshot version 1.9 release 204 2014-11-30 05:49:53 -05:00
Albert Cheng
4d34b79730 [svn-r25851] INSTALL_parallel already has a known issues section for Hopper.
I moved all hopper known problems from RELEASE.txt to INSTALL_parallel
so that they are all in one place.
2014-11-25 18:21:39 -05:00
Allen Byrne
0a21243303 [svn-r25847] Correct typos in linux export of mod 2014-11-25 16:33:04 -05:00
Allen Byrne
5816073846 [svn-r25842] Change WiX program check to use the ENV variable for path.
Tested: Windows
2014-11-25 09:18:06 -05:00
HDF Tester
b59663156d [svn-r25834] Snapshot version 1.9 release 203 2014-11-23 05:47:28 -05:00
Allen Byrne
36a847bc0c [svn-r25818] Add checks for windows installers 2014-11-17 15:57:46 -05:00
Allen Byrne
59132dec15 [svn-r25800] Add utilities and expected output 2014-11-06 16:18:21 -05:00
Allen Byrne
05716e2239 [svn-r25798] correct example cmake info 2014-11-06 15:29:11 -05:00
Mohamad Chaarawi
3ba28fb7ee [svn-r25790] fix bug in shapesame test where test fails with more than 10
procs. This is a fix in the test itself and does not have to do with
the library code.

tested cloud machine with parallel.
2014-11-05 10:47:44 -05:00
Allen Byrne
a096202edd [svn-r25784] Add STATUS to message in script 2014-11-04 17:06:04 -05:00
Mohamad Chaarawi
5362b49bec [svn-r25779] fix bug in parallel tests where a compact dset is being created
proportional to the process count without regard to the 64KB limit for
compact datasets.

tested on jam with parallel.
2014-11-04 12:52:38 -05:00
Albert Cheng
52bff896a7 [svn-r25771] Bug fix: HDFFV-8954
Previously, ph5diff may hang in a test in Linux 32 platform(HDFFV-587).
No solution was available and a patch to bypass the test is implemented.

Since the company is changing domain name soon, the patch would not be valid any more.
Tests were done (repeat 100 mpiexec -np 6 ./ph5diff -v h5diff_hyper1.h5 h5diff_hyper2.h5)
and the previous hanging problem did not occur. It is likely the newer versions of
mpich no longer have this problem.  Therefore, it is decide to remove this patch
to make the test script cleaner, if nothing else.

Tested: ran build and test in Jam (linux 32) and the repeat 100 command mentioned above.
All passed.
2014-11-03 19:37:29 -05:00
Quincey Koziol
89e2c8822d [svn-r25766] Description:
Revert r25273, 25283 & 25439 (the hyperslab improvement changes).  They
are buggy and it's taking me a long time to correct the problem.  I'll check
in a revised form of the changes when I've got them straightened out.

Tested on:
    Mac OSX 10.10.0 (amazon) w/gcc 4.9.x, C++, FORTRAN
    Linux 2.6.x (jam) w/parallel
2014-11-03 15:13:25 -05:00
HDF Tester
2fcec016a8 [svn-r25762] Snapshot version 1.9 release 202 2014-11-02 04:51:44 -05:00
Dana Robinson
d5f913731d [svn-r25756] Removed the -Wunsuffixed-float-constants warning from the gnu-flags
script. The warnings that this generates cannot easily be resolved in
platform-independent C code since gnu expects the non-standard (gnu)
'D' suffix for double constants.

It's still technically useful for catching float and long double
constants, but should probably be enabled by developers on an
as-needed basis for that purpose so the spurious warnings are
avoided.

Tested on a local linux VM with gcc 4.8.2. This is a very minor change.
2014-10-31 17:09:12 -05:00
Dana Robinson
81f7e6b1d3 [svn-r25755] Removed spurious casts in a few HDfree() statements.
Discovered when I temporarily #defined HDfree() to a more complicated
function while investigating something. 

Tested on a local linux VM. This is a very minor change.
2014-10-31 13:11:42 -05:00
Mohamad Chaarawi
6735f59f7d [svn-r25750] use MPI_File_get_size() instead of stat when retrieving the file size for the MPIO driver. 2014-10-28 11:59:36 -05:00
Allen Byrne
73465a6bc2 [svn-r25745] Testfiles for h5dump bitfields and opaques 2014-10-27 16:47:24 -05:00
Allen Byrne
573d47083b [svn-r25744] Add bitfield and opague datatype file for tests.
Tested: local linux
2014-10-27 15:50:33 -05:00
Allen Byrne
3fa8cd322f [svn-r25741] Remove obsolete comment and add test to suite. 2014-10-27 13:34:25 -05:00
Allen Byrne
429dce1736 [svn-r25740] HDFFV-8953: remove svn url references 2014-10-27 13:30:50 -05:00
HDF Tester
290dfb8799 [svn-r25736] Snapshot version 1.9 release 201 2014-10-26 06:00:38 -05:00
Albert Cheng
b6e694cb32 [svn-r25721] The return type of H5A_create was changed from hid_t to H5A_t *
but the test was not changed (still doing H5A_create(...) < 0).
Fixed the error by changing to compare against NULL.

Tested: ADA AIX machine where the old code was flagged as an error by the AIX compiler.
2014-10-19 21:39:58 -05:00
HDF Tester
2a668bd0fc [svn-r25720] Snapshot version 1.9 release 200 2014-10-19 05:31:05 -05:00
Allen Byrne
ad3e91f0c3 [svn-r25714] remove reference to deleted sub-folder 2014-10-17 10:09:52 -05:00
Scot Breitenfeld
d527a825d4 [svn-r25707] Added missing type cast for hid_t_f ids. 2014-10-15 16:29:29 -05:00
Allen Byrne
d3dbcf313f [svn-r25706] Change hdf5 config install location. 2014-10-15 11:25:05 -05:00
Larry Knox
6d82d6c7cd [svn-r25701] Add LD path to HDF5 install directory to address HDFFV-8944.
Tested with h5committest and failed external daily tests.
2014-10-13 22:14:29 -05:00
Elena Pourmal
b402201745 [svn-r25695] Maintenance: Addressing bug HDFFV-8836 - information in section 3.2 about the SZIP binaries distribution was wrong. Fixed. 2014-10-13 07:17:11 -05:00
Albert Cheng
a65212ed9f [svn-r25694] HDFFV-8932:
added Fortran interface to the default build.

Tested: jam, koala, platypus
2014-10-13 00:51:00 -05:00
HDF Tester
e8ffff6853 [svn-r25693] Snapshot version 1.9 release 199 2014-10-12 05:28:29 -05:00
Allen Byrne
6fdac87ac1 [svn-r25691] File is not generated by non-2003 compliant fortran compilers.
Tested: jam and local linux
2014-10-10 12:41:13 -05:00
Larry Knox
c7da369bfd [svn-r25690] Update RELEASE.txt for 1.8.14 release:
Reviewed and revised version information for unix daily tested machines in supported
and tested platforms sections.
2014-10-09 17:11:16 -05:00
Albert Cheng
9a074a6679 [svn-r25685] HDFFV-8932:
added C++ and High level interface to the default build.

Tested: jam, koala, platypus
2014-10-09 07:42:21 -05:00
Albert Cheng
18f671c064 [svn-r25679] Added instruction to run bin/reconfigure after changes. 2014-10-07 11:54:54 -05:00
Albert Cheng
9645159614 [svn-r25677] HDFFV-8933:
Did not provide default values for clang++ options.
Also, applied wrong values for the *_CPPFLAGS.

Solution:
Added default values for *_CXXFLAGS.
Fixed the *_CPPFLAGS values.

Tested: wren with and without --enable-production.
2014-10-07 11:35:58 -05:00
Larry Knox
ab33b7f34d [svn-r25670] Update compiler fersion information for XL compilers on ostrich.
Text only - no test.

This line, and those below, will be ignored--

M    RELEASE.txt
2014-10-06 08:27:47 -05:00
HDF Tester
e6702f2cae [svn-r25668] Snapshot version 1.9 release 198 2014-10-05 05:27:58 -05:00
Allen Byrne
6cc1d95b5f [svn-r25662] Correct packaging paths 2014-10-03 11:13:55 -05:00
Mohamad Chaarawi
ca6ffd477d [svn-r25661] Update the default setting for the memb_addr array when use passes NULL to equally divide all the address space between all the members.
Before there was one chunk of the address space not being used.

tested h5committest, and multi vfd make check on jam.
2014-10-03 10:51:50 -05:00
Mohamad Chaarawi
26400c392b [svn-r25659] fix filename generation with prefix for perf test.
tested h5commitest, jam & platypus parallel.
2014-10-02 10:56:09 -05:00
Binh-Minh Ribler
bd9c6d829a [svn-r25658] Purpose: Fixed HDFFV-8922
Description:
    Added notes regarding UTF-8 and extended ASCII, provided in HDFFV-8899,
    to C++ API.
Platforms tested:
    Linux/32 2.6 (jam) - only in comments
2014-10-02 09:59:01 -05:00
Albert Cheng
cbd0112b16 [svn-r25654] Bug fix: HDFFV-8933
Description:
Mac has changed to use the clang/clang++ compilers but compiler settings for production, debug and profile
were not setup.

Solution:
Setup default values for PROD_CFLAGS, PROD_CPPFLAGS, DEBUG_CFLAGS, DEBUG_CPPFLAGS.
PROFILE_CFLAGS and PROFILE_CPPFLAGS were set too but clang does not -pg or such for
profiling. Need to fix it later.

Tested: duck, swallow, and quail using --enable-production.
2014-10-01 23:30:53 -05:00
Mohamad Chaarawi
87bed2c752 [svn-r25651] Fix for: HDFFV-8715
HDF5_PARAPREFIX is ignored in parallel dense attribute and performance tests.

tested on Jam w/ parallel.
2014-10-01 17:02:41 -05:00
Allen Byrne
bfdf663569 [svn-r25646] Fix missing endif 2014-10-01 09:29:42 -05:00
Binh-Minh Ribler
1df7b415ab [svn-r25645] Description:
Removed the try/block with new/bad_alloc that were unintentionally
    committed previously.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 23:31:37 -05:00
Binh-Minh Ribler
22d0d32716 [svn-r25644] Purpose: Fixed HDFFV-8928
Description:
    Followed hints on the JIRA issue to remove several potential memory
    leaks.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 23:05:57 -05:00
Binh-Minh Ribler
10f1e6acf8 [svn-r25640] Purpose: Fixed HDFFV-4259
Description:
    - Used H5I_INVALID_HID instead of 0 to initialized member "id" in classes
      that represent HDF5 objects.  For PropList, H5P_DEFAULT has to be used
      instead of H5I_INVALID_HID.
    - Added try/catch block to some dynamically allocating memory code and
      re-throw the bad_alloc exception with a message informing the location of
      the failure.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 13:20:36 -05:00
Binh-Minh Ribler
0befe65753 [svn-r25632] Purpose: Fixed HDFFV-8852
Description:
    H5F_ACC_CREAT was included in the C++ API while the C library doesn't
    allow it yet.  Possibly, in the future, but not now.  In addition, the
    two flags H5F_ACC_RDONLY and H5F_ACC_RDWR were missing from the
    documentation, causing confusion that appending is not supported.
Solution:
    - Removed H5F_ACC_CREAT from the function until the C library support it
    - Added H5F_ACC_RDONLY and H5F_ACC_RDWR to the comments to update the
      documentation
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-29 15:52:08 -05:00
Scot Breitenfeld
9140500b86 [svn-r25631] Fix fo HDFFV-8912 2014-09-29 11:23:57 -05:00
Scot Breitenfeld
17893b24ea [svn-r25629] Fix for hdffv-8855. 2014-09-29 10:31:40 -05:00
HDF Tester
c617cbdfb0 [svn-r25627] Snapshot version 1.9 release 197 2014-09-28 05:34:35 -05:00
Scot Breitenfeld
6f2f584c42 [svn-r25626] Changed the callback function integer type from INTEGER to INTEGER(C_INT) for portability, HDFFV-8909. 2014-09-26 09:25:04 -05:00
Allen Byrne
8bd91611f4 [svn-r25624] Define symbol for other compilers as nothing.
Tested: platypus
2014-09-26 09:12:55 -05:00
Allen Byrne
38ffe94174 [svn-r25623] Update from 1.8 docs - docs team changes from last release 2014-09-25 16:11:54 -05:00
Mohamad Chaarawi
a881862802 [svn-r25620] Fix a bug in multi VFD when the memb_addr in H5Pset_fapl_multi is passed
as NULL. The library is supposed in that case to equally divide the
address space among all members, but there was a bug causing an
overflow in the assignment.

tested with h5commitest
2014-09-25 14:30:36 -05:00
Scot Breitenfeld
52d5e22956 [svn-r25618] Added tests for HDFFV-8879 2014-09-25 09:48:33 -05:00
Allen Byrne
51e9f7091c [svn-r25617] Upgrade packaging process with cmake helper functions.
Tested: local linux
2014-09-25 09:37:09 -05:00
Allen Byrne
510e79af7c [svn-r25615] Include plugin header change. H5PLextern.h and H5PLprivate.h have two opposing use cases, only the enum is common.
Tested: local linux and windows
2014-09-25 08:51:40 -05:00
Scot Breitenfeld
0324181acc [svn-r25614] Fixed HDFFV-8670
*H5DSis_scale and other HL APIs do not null terminate string (and other issues)
2014-09-24 16:56:47 -05:00
Allen Byrne
b2fa3069d9 [svn-r25608] Windows needs extra slashes 2014-09-23 15:21:17 -05:00
Allen Byrne
148097511c [svn-r25607] Add 10 sec timeout to VFD - flush2 tests instead of default 20 min. 2014-09-22 13:46:21 -05:00
HDF Tester
ae00b7b591 [svn-r25604] Snapshot version 1.9 release 196 2014-09-21 05:29:14 -05:00
Allen Byrne
9a5a86e873 [svn-r25595] Update VMs on other tested 2014-09-17 09:20:58 -05:00
HDF Tester
7f2fa8340b [svn-r25591] Snapshot version 1.9 release 195 2014-09-14 05:30:20 -05:00
Mohamad Chaarawi
1064f6cd03 [svn-r25586] need to use MPI_Count and corresponding _x check routines post read/write to handle big counts. 2014-09-11 10:59:04 -05:00
Mohamad Chaarawi
ace4fef4d6 [svn-r25573] fix error output when dataset verify detects wrong data. 2014-09-05 14:30:42 -05:00
Allen Byrne
5a4357e4fb [svn-r25570] UNDO:Added option to build tools static when building shared libraries. This will prevent 'dll' being appended to the tool name on windows. See HDFFV-8292.
Windows DLL linkage problem because of defines needed.

Tested: local linux
2014-09-03 14:04:18 -05:00
Allen Byrne
c23f3a7ea5 [svn-r25569] Added option to build tools static when building shared libraries. This will prevent 'dll' being appended to the tool name on windows. See HDFFV-8292.
Tested: local linux
2014-09-03 12:12:52 -05:00
HDF Tester
2154d1c6f1 [svn-r25563] Snapshot version 1.9 release 194 2014-08-31 05:31:14 -05:00
Allen Byrne
38251c0765 [svn-r25552] JAVA-1880: hdfview failure to load plugins identified default value was incorrectly formed.
Tested: windows
2014-08-25 16:11:48 -05:00
HDF Tester
77e7e788c8 [svn-r25546] Snapshot version 1.9 release 193 2014-08-24 05:32:01 -05:00
Allen Byrne
32c3fec56c [svn-r25536] HDFFV-8897: remove include extra paths. 2014-08-19 09:59:17 -05:00
HDF Tester
3f11676e9d [svn-r25534] Snapshot version 1.9 release 192 2014-08-17 04:54:45 -05:00
Mohamad Chaarawi
88fb6b1374 [svn-r25531] remove use of C99 PRI that failed on windows in dtypes.c
fix bugs where hid_t were assumed to be 32 bit ints or herr_t.
2014-08-11 14:13:45 -05:00
Mohamad Chaarawi
2a5454616a [svn-r25527] fix printf format warnings in dtypes test. 2014-08-11 09:19:43 -05:00
Mohamad Chaarawi
f98f792fe3 [svn-r25524] remove usage of // comment styles. 2014-08-10 19:01:41 -05:00
Allen Byrne
a794cc9103 [svn-r25518] HDFFV-8880: Remove t_posix_compliant test references 2014-08-06 16:49:19 -05:00
Mohamad Chaarawi
333f1d4783 [svn-r25516] remove use of MPI_LB and MPI_UB deprecated markers and use resize instead. 2014-08-06 12:10:54 -05:00
Mohamad Chaarawi
7433fb9dc1 [svn-r25514] Replace MPI deprecated routines with undeprecated ones. 2014-08-05 10:36:38 -05:00
Scot Breitenfeld
a72cb6e43e [svn-r25510] Added the parameters to the code comment section:
H5T_VLEN_F (9)
             H5T_ARRAY_F (10)

No source changes.
2014-08-05 09:06:35 -05:00
Mohamad Chaarawi
db51b55049 [svn-r25509] HDFFV-8878:
Make the fill value operation for chunked datasets in parallel collective/fast.

tested with h5committest
2014-08-04 14:58:03 -05:00
Dana Robinson
4defea0020 [svn-r25508] Added a check that ensures page_size is not set to zero in
H5Pset_core_write_tracking(). This ensures that the behavior
matches the description in the reference manual.

Tested on a local linux VM. This is a very minor change.
2014-08-04 13:37:55 -05:00
HDF Tester
1bd45cb96f [svn-r25506] Snapshot version 1.9 release 191 2014-08-03 05:01:09 -05:00
Mohamad Chaarawi
d4ebdeadad [svn-r25504] fix ret_value in H5Oexists_by_name to be htri_t instead of hid_t. Bug exposed in VOL branch. 2014-08-01 15:13:27 -05:00
Mohamad Chaarawi
8771fba1de [svn-r25503] - fix bug in encode/decode plist parallel test when 1 proccess is used to run the test.
- fix warning in t_chunk_alloc.
2014-08-01 14:24:52 -05:00
Mohamad Chaarawi
beb6f83cfd [svn-r25500] fix HDFFV-8888 - H5Ldelete_by_idx fails on non-existent group name.
tested Jam. minor change.
2014-07-31 14:26:19 -05:00
Quincey Koziol
33ea1ada24 [svn-r25496] Description:
Merge 64-bit ID changes from branch to trunk.  (Plus a few minor cleanups
that aren't on the branch)

Tested on:
    Mac OSX/64 10.9.4 (amazon) w/C++ & FORTRAN
    (h5committested on branch already for a week)
2014-07-30 15:55:14 -05:00
Mohamad Chaarawi
3f701fda65 [svn-r25487] store all members of the driver info in the file structs since they
will be needed if H5Pget_create_plist is called.

tested jam. minor change.
2014-07-29 11:51:24 -05:00
HDF Tester
2173d36d66 [svn-r25484] Snapshot version 1.9 release 190 2014-07-27 05:38:25 -05:00
Scot Breitenfeld
f41ac60621 [svn-r25483] Fixed code comments. 2014-07-24 16:11:24 -05:00
Scot Breitenfeld
65e3b596e3 [svn-r25480] Added error if Fortran's default real is double precision. If it is and HL is being built then configure returns an error. This is due to HDFFV-889.
Tested: jam with intel

cmake options:
-DCMAKE_Fortran_FLAGS:STRING="-r8" (should fail) 
and 
-DHDF5_BUILD_HL_LIB:BOOL=OFF (should pass)
2014-07-24 12:07:08 -05:00
Allen Byrne
161ab14bbd [svn-r25479] update ubuntu info 2014-07-24 11:34:51 -05:00
Allen Byrne
ed9115f283 [svn-r25478] update ubuntu info 2014-07-24 11:13:48 -05:00
Scot Breitenfeld
f793c50e47 [svn-r25477] Added error if Fortran's default real is double precision. If it is and HL is being built then configure returns an error. This is due to HDFFV-889.
Tested: jam with intel and -r8 flag, both with and without --disable-hl.
2014-07-24 10:55:16 -05:00
Scot Breitenfeld
c85497442b [svn-r25475] Fixed for nh5pget_fill_valuec_c where we called the wrong function
ret_value = nh5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue))

HDFFV-8879

Tested: jam( intel, gnu)
2014-07-23 13:50:06 -05:00
Scot Breitenfeld
00e4cbc963 [svn-r25473] Added VALUE to callback group_id type. Needed to fix problem when hid_t is 64-bit.
Tested: jam (intel, gnu)
2014-07-23 12:01:51 -05:00
Scot Breitenfeld
1ebce1bfcf [svn-r25469] Removed duplicate BIND(C) type defintion.
Tested: (jam: gnu, intel)
2014-07-22 15:55:08 -05:00
Mohamad Chaarawi
bd66cdd5d6 [svn-r25468] some code refactoring to align trunk with VOL branch.
tested with h5committest.
2014-07-22 14:54:51 -05:00
Albert Cheng
f1f7b15e50 [svn-r25465] BUg fix: HDFFV-8881
testfrome.c has incorrectly exit code (using -1). Fixed by replacing them
with C defined EXIT_FAILURE. Verified by temporary decreaing MAXNUMTESTS
to introduce failure in testhdf to see the changed code did work.
Also replaced all other correctly coded exit codes with the C defined
EXIT_SUCCESS and EXIT_FAILURE. This would help portability for non-Unix
systems.

Tested: h5committest.
2014-07-22 14:06:18 -05:00
Mark Evans
d4d24390a2 [svn-r25460] The contents of this directory is the C++ Reference Manual and
is generated by Doxygen.
2014-07-22 08:12:36 -05:00
Mark Evans
ee28a1ad8b [svn-r25459] Merged revision(s) 25457 from branches/hdf5_1_8_13/c++/src/H5CppDoc.h:
Added a sentence suggested by Barbara to the Installation section. Part of HDFFV-8868 work. 

Tested: Doxygen and Firefox
2014-07-21 13:51:56 -05:00
Quincey Koziol
61a411b02f [svn-r25450] Description:
Initial tweaks to align with VOL branch.

Tested on:
    Mac OSX/64 10.9.3 (amazon) w/gcc 4.9
    (h5committest not required, too small)
2014-07-21 11:05:04 -05:00
Mark Evans
4344c1d70b [svn-r25446] Changed file in Installation section where users should look for instructions from release_docs\INSTALL_Windows.txt to release_docs\INSTALL. Fixes HDFFV-8868.
Tested: Doxygen
2014-07-21 11:00:55 -05:00
Mark Evans
ae25c80cc0 [svn-r25441] Changed file in Installation section where users should look for instructions from release_docs\INSTALL_Windows.txt to release_docs\INSTALL.
Tested: Doxygen
2014-07-21 10:30:23 -05:00
Scot Breitenfeld
7595d00ae5 [svn-r25440] Fixed type conversion in h5pset_fill_value and fixed for
nh5pget_fill_valuec_c we call the wrong function
ret_value = nh5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue))

HDFFV-8879

Tested: jam( intel, gnu)
2014-07-21 10:09:56 -05:00
Quincey Koziol
453f9d7b20 [svn-r25439] Description:
Minor tweaks to updated hyperslab code, before larger revision coming.

Tested on:
    Mac OSX/64 10.9.3 (amazon) w/gcc 4.9 & parallel
    (h5committest forthcoming)
2014-07-21 09:41:39 -05:00
HDF Tester
84d0a9f7cb [svn-r25434] Snapshot version 1.9 release 189 2014-07-20 05:09:27 -05:00
Allen Byrne
186aca8b49 [svn-r25412] Add ASPRINTF define - check already in configure 2014-07-14 11:26:49 -05:00
HDF Tester
06e4e32ba0 [svn-r25407] Snapshot version 1.9 release 188 2014-07-13 07:32:17 -05:00
Mohamad Chaarawi
92cc75bfae [svn-r25401] add serial and parallel regression tests for zero dset read/write bug. 2014-07-09 14:01:25 -05:00
Mohamad Chaarawi
6d637e03f7 [svn-r25399] bug fixes where a wrong type was used instead of hid_t. 2014-07-09 12:12:38 -05:00
Mohamad Chaarawi
382976f3e9 [svn-r25398] add a check to make sure MPI_File_get_size() returns correct value (HDFFV-8856). 2014-07-09 10:19:11 -05:00
Mohamad Chaarawi
06ef71a37f [svn-r25397] - remove configure checks for MPI_File_get_size and Big
MPI_File_set_size as they are supported by most MPI implementations.
- fix bug in t_mpi.c (HDFFV-8856)
2014-07-07 13:22:48 -05:00
HDF Tester
5ad9bfb322 [svn-r25395] Snapshot version 1.9 release 187 2014-07-06 07:31:55 -05:00
Mohamad Chaarawi
ee9d595a8c [svn-r25392] fix HDFFV-8761:
allocating space for zero-length chunked dataset and asserting.
2014-07-03 10:43:48 -05:00
Mohamad Chaarawi
43b3c20c93 [svn-r25386] remove double declaration of off and len. 2014-07-01 15:06:22 -05:00
HDF Tester
8925b39181 [svn-r25378] Snapshot version 1.9 release 186 2014-06-29 05:24:43 -05:00
Allen Byrne
28ec2d2693 [svn-r25357] Change default timeout to 1200 seconds or 20 mins
adjust up for certain tests.
2014-06-25 09:15:13 -05:00
Allen Byrne
d9c1c23c38 [svn-r25350] Add more vfd tests to smaller timeout limits 2014-06-24 10:14:32 -05:00
Allen Byrne
e90941e86a [svn-r25343] Add more vfd tests to smaller timeout limits 2014-06-23 16:57:13 -05:00
Allen Byrne
5849a90e16 [svn-r25341] HDFFV-8845: Propagated changes made to configure.ac to cmake. Enabled MSVC for two tests as suggested in the issue. 2014-06-23 13:26:41 -05:00
HDF Tester
fbaf82bc3c [svn-r25339] Snapshot version 1.9 release 185 2014-06-22 05:26:37 -05:00
John Mainzer
12ee3deb82 [svn-r25321] Reworked and enhanced extreme sanity check in H5C.c, fixing an
uninitialized variable bug in passing.

Added the H5C_get_entry_ptr_from_addr() and H5C_verify_entry_type()
in H5C.c, along with their pass through functions in H5AC.c.  Note
that H5C_get_entry_ptr_from_addr() is quite slimey, and should be
avoided if possible.

Updated fractal heap to use flush ordering to force children
in the hdr / iblock / dblock tree to be flushed prior to parents.
This is part of a port of the fractal heap to the V3 cache, although
I gather that it will also be useful for SWMR.

Added sanity checking code to the fractal heap to verify that direct 
blocks are flushed before their parent indirect blocks, child indirect
block are flushed prior to their parent indirect blocks, and that the
root iblock or dblock is flushed prior to the header

Tested on:

        Jam: Serial and parallel
        Phoenix (Debian): serial, debug and production
        amazon (MacOS): serial
2014-06-18 13:18:36 -05:00
Mark Evans
471aedb1e8 [svn-r25317] Edited the Introduction section.
Tested: Doxygen and Firefox
2014-06-18 11:10:27 -05:00
Allen Byrne
c194e9c9a7 [svn-r25313] Use cmake var to store name of created h5_test_kind_xxxx mod file.
Tested: local linux
2014-06-18 09:28:09 -05:00
Allen Byrne
9c4e646c1a [svn-r25310] Add max time for VFD objcopy test 2014-06-18 08:39:37 -05:00
Scot Breitenfeld
bfb60a0cc1 [svn-r25304] Fixes latest check-in errors for:
HDFFV-8653
replace non-standard sizeof in the fortran tests with c_sizeof

(1) Removed the overloaded h5_sizeof functions for characters and integer arrays since Sun compilers don't allow them to be passed into a function that uses sizeof.

(2) Requested min. precision for reals to avoid duplicate interfaces when the flag -r8 (or equiv.) is set.

tested:
*jam: intel, -i8 -r8 --enable-fortran2003
*jam: pgi, --enable-fortran2003
*emu: sun, --enable-fortran2003
2014-06-17 13:09:39 -05:00
Allen Byrne
0b75068901 [svn-r25302] Add nounistd option to flex command for windows caompatibility 2014-06-17 09:50:49 -05:00
Allen Byrne
890a76ea64 [svn-r25300] Add flex / bison commands to bin script and regenerate hl files using latest versions.
No other files touched.
Tested: h5committest
2014-06-16 15:12:42 -05:00
Allen Byrne
8c56c5096e [svn-r25299] correct case of CMake commands 2014-06-16 14:26:18 -05:00
Scot Breitenfeld
90757478c2 [svn-r25294] added implicit none 2014-06-16 12:06:46 -05:00
Scot Breitenfeld
7d3ff84d59 [svn-r25291] Fix for:
HDFFV-8653
replace non-standard sizeof in the fortran tests with c_sizeof
2014-06-16 11:56:01 -05:00
Scot Breitenfeld
9cf0844928 [svn-r25290] Fix for:
HDFFV-8653
replace non-standard sizeof in the fortran tests with c_sizeof
2014-06-16 11:38:07 -05:00
Scot Breitenfeld
59517a164b [svn-r25287] Fix for:
HDFFV-8653
replace non-standard sizeof in the fortran tests with c_sizeof
2014-06-16 10:33:06 -05:00
Scot Breitenfeld
744bc7d236 [svn-r25286] Fix for:
HDFFV-8653
replace non-standard sizeof in the fortran tests with c_sizeof 

Tested: jam (gnu, intel) with make and cmake.
2014-06-16 10:15:25 -05:00
HDF Tester
588a733b18 [svn-r25285] Snapshot version 1.9 release 184 2014-06-15 04:58:19 -05:00
Quincey Koziol
ec408ef083 [svn-r25283] Description:
Correct error in new hyperslab selection test to use the right # of
dimensions for start/stride/count/block arrays.  Also, switch H5Sselect_select
to H5Smodify_select.

Tested on:
    MacOSX/64 10.9.3 (amazon) w/gcc 4.9.1, OpenMPI, C++, FORTRAN & threadsafe
    (Too minor to require h5committest)
2014-06-13 22:23:54 -05:00
Allen Byrne
e23830d29f [svn-r25282] remove obsolete file 2014-06-13 16:16:34 -05:00
Dana Robinson
25ba47bc97 [svn-r25274] Adds #defines that ensures that DllMain is only compiled in when the thread-safe shared library is built on Windows.
Fixes HDFFV-8837.

Tested on 64-bit Windows 7 with VS2012.
2014-06-13 03:44:34 -05:00
Quincey Koziol
4ccb865c70 [svn-r25273] Description:
Bring in Chao/Neil/my changes to optimize hyperslab selection operations
further, along with 3 new public API routines: H5Scombine_hyperslab(),
H5Sselect_select() and H5Scombine_select(), along with many minor cleanups to
the code and fixing a few compiler warnings.

Tested on:
    Mac OSX/64 10.9.3 w/gcc 4.9.x and parallel w/OpenMPI
    (h5commttest forthcoming)
2014-06-13 01:23:57 -05:00
Allen Byrne
c2bc22d51c [svn-r25266] update to m4 1.4.17 in reconfigure did not change any other files 2014-06-12 14:54:44 -05:00
Allen Byrne
d74b7fb7b8 [svn-r25261] limit vfd flush1 test time 2014-06-11 14:23:00 -05:00
Allen Byrne
0c07b68c92 [svn-r25260] Update versions 2014-06-11 13:51:18 -05:00
Allen Byrne
d867178192 [svn-r25249] change test to ignore h5diff warnings (endianess issue) 2014-06-10 11:21:30 -05:00
HDF Tester
99800edafb [svn-r25241] Snapshot version 1.9 release 183 2014-06-08 06:30:43 -05:00
Allen Byrne
80a2084bf7 [svn-r25239] Add set_property command for list option.
Minor doc edits
2014-06-04 16:22:31 -05:00
Scot Breitenfeld
cf71b7db57 [svn-r25238] Removed warning about the data type of the actual argument does not match the definition to verify function. Trivial fix.
tested: jam (gnu)
2014-06-04 09:08:17 -05:00
HDF Tester
4a8b02f838 [svn-r25216] Snapshot version 1.9 release 182 2014-05-25 06:51:16 -05:00
Quincey Koziol
60f8a4100e [svn-r25215] Description:
Bring changes from Coverity branch back to trunk:

r20914:
    Use HDstrncpy and HDstrncat! --gh

20915:
    Use HDstrncpy and HDstrncat! --gh

Tested on:
    Mac OSX/64 10.9.3 (amazon) w/gcc 4.9.0, C++, FORTRAN & parallel
    (too minor to require h5committest)
2014-05-25 00:55:39 -05:00
Allen Byrne
a8b48bc7f5 [svn-r25208] Make the header generation optional and depend on finding perl executable. Needed because window does not have perl. 2014-05-21 09:29:41 -05:00
Quincey Koziol
b6733f1109 [svn-r25207] Description:
Merge changes from Coverity branch to trunk:

r20907:
    Original issue was #338.

    Refactored code to clean up allocations consistantly, completely, check all returns, assign initialization values and handle errors.

Tested on:
    MacOSX/64 10.9.3 (amazon) w/gcc 4.9, FORTRAN, C++, parallel & multi-threaded
    (too minor to require h5committest)
2014-05-20 13:26:38 -05:00
Quincey Koziol
04c24b4624 [svn-r25206] Description:
Add new warning flags for gcc 4.9.x

Tested on:
    MacOSX/64 10.9.3 (amazon) w/gcc 4.9.0
2014-05-20 13:25:12 -05:00
Allen Byrne
e6a3a3cfad [svn-r25205] Fix CMP0040 Policy cmake usage 2014-05-20 10:41:01 -05:00
Binh-Minh Ribler
5444efe2b1 [svn-r25202] Description:
Set OUTPUT_DIRECTORY to cpplus_RM and HTML_OUTPUT to '.' because
    they were reset by accident causing "bin/release doc" to fail.

    Ran bin/release to verify the failure was gone.
2014-05-19 12:48:55 -05:00
HDF Tester
2c12b5d42d [svn-r25199] Snapshot version 1.9 release 181 2014-05-18 04:53:32 -05:00
Quincey Koziol
a613b70f93 [svn-r25197] Description:
Bring changes from hdf5_1_8_coverity branch back to trunk:

r20878:
    Issue 76: Check if H5Tget_nmembers(type) fails and simply return(FALSE). Also move printf to after check.

r20880:
    Issue 192: Create ret_val var set to -1. Add out label for failures to jump to, return ret_val at bottom.

r20882:
    Fixes for coverity:
    1) bug #1679: remove dead code in test/mf.c
    2) bug #1680: remove dead code in tools/lib/h5diff_dset.c

r20883:
    Fix coverity issue 585

    Description:
    Changed variable "c" in processStrData in h5import.c to an int, to match fgetc
    return value, and removed call to feof, instead checking if c == EOF.

Tested on:
    MacOSX/64 10.9.3 (amazon) w/C++, FORTRAN & parallel
    (too minor to require h5committest)
2014-05-16 22:22:51 -05:00
Allen Byrne
896a5e7992 [svn-r25191] Moved file back to cmake folder 2014-05-14 15:10:42 -05:00
Allen Byrne
ef494f08a2 [svn-r25189] Fix CMP0053 cmake usage 2014-05-14 14:51:54 -05:00
Allen Byrne
21474f8eee [svn-r25188] Implement change to cmake_ext_mod config folder
Tested: local linux
2014-05-14 14:50:28 -05:00
Allen Byrne
8f57e86ab9 [svn-r25185] update cmake command name case 2014-05-12 13:14:46 -05:00
Allen Byrne
22f9644670 [svn-r25183] correct path statement 2014-05-12 12:10:51 -05:00
HDF Tester
0774c92383 [svn-r25181] Snapshot version 1.9 release 180 2014-05-11 07:01:22 -05:00
Scot Breitenfeld
1ab0de9861 [svn-r25173] Removed unused module TH5F.
Tested: jam (intel, pgi)
2014-05-07 10:57:01 -05:00
Scot Breitenfeld
fb7e8562e2 [svn-r25169] Removed duplicate tests in fortranlib_test_1_8.f90 and fortranlib_test.f90. Thus removing the dependency on tH5F.f90, which was causing compilation race-conditions in cmake.
Tested: jam (gnu)
2014-05-06 09:18:30 -05:00
Allen Byrne
4545b87a09 [svn-r25163] Update file to match release changes 2014-05-05 14:40:19 -05:00
Dana Robinson
acff290b94 [svn-r25161] Removed some C++-style comments from H5FDcore.c.
Tested on:
    32-bit LE linux (jam) 

Tested with HDF5_DRIVER set to "core_paged".
2014-05-05 10:54:56 -05:00
HDF Tester
3f5886da9f [svn-r25158] Snapshot version 1.9 release 179 2014-05-04 07:15:58 -05:00
Albert Cheng
75044d8ae7 [svn-r25136] Bug: HDFFV-8433
The temporary directory used by zip is the same as the rest but it has to be different.
Changed tar2zip to use a different (ztmpdir) name.

Tested: by hand running "bin/release ... gzip zip md5".
2014-04-29 20:24:57 -05:00
Allen Byrne
d517af5086 [svn-r25135] Remove property will fail - This only is true on windows shared. 2014-04-29 10:26:35 -05:00
Scot Breitenfeld
a9fa46cf8e [svn-r25133] Rudimentary changes; changed the casting of hid_t_f variables that used a casting of int_f to use a casting of hid_t_f.
Tested: jam (gnu)
2014-04-28 16:44:33 -05:00
Allen Byrne
39681a594f [svn-r25130] Add clarification to download location and extlibs. 2014-04-28 16:40:17 -05:00
Allen Byrne
9fd8692663 [svn-r25128] HDFFV-8172: Add tests properties that indicate it will fail and to depend on PASSED in the output. 2014-04-28 15:20:11 -05:00
HDF Tester
9711359755 [svn-r25126] Snapshot version 1.9 release 178 2014-04-27 07:14:13 -05:00
Binh-Minh Ribler
6f46f25486 [svn-r25125] Description:
Made printError() virtual as the original; missed it from the previous fix.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-26 10:12:48 -05:00
Albert Cheng
3fde3a16b5 [svn-r25120] HDFFV-8755: Remove compress option from bin/release
Tested: by hand. "bin/release ... compress" to see it failed and to see it succeeded when compress is not used.
2014-04-25 18:24:19 -05:00
Larry Knox
c6e3e68297 [svn-r25117] Removed LT_ADD_LIBHDF5_DEPENDENCY configure conditional to roll back fix for removing rpaths from l
ib files.  The fix also removed dependencies on libhdf5, etc. when the --disable-sharedlib-rpath co
nfigure option was invoked.
Added instead configure variable hardcode_into_lib=no.  This removes rpath from lib files on Linux
and solaris machines.

Tested with h5committest on jam, koala, ostrich and platypus (cmake), and with configure option --disable-sharedlib-rpath on emu, platypus and quail.
2014-04-25 16:59:53 -05:00
Dana Robinson
7309bb5ab8 [svn-r25113] Fixed Subversion EOL and executable attributes. No code changes. 2014-04-25 16:27:37 -05:00
Quincey Koziol
1c3f945739 [svn-r25112] Description:
Revert r25081

Tested on:
    MacOSX/64 10.9.2 (amazon) w/FORTRAN & parallel
    (h5committest not necessary)
2014-04-25 16:21:55 -05:00
Binh-Minh Ribler
97525f97f2 [svn-r25108] Description:
- Put back Exception::printError for backward compatibility
    - Added static member function Exception::printErrorStack to print
      error stack without an instance of Exception.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-25 14:47:57 -05:00
Allen Byrne
01de7491b2 [svn-r25103] Correct installed menu name 2014-04-25 11:49:08 -05:00
Allen Byrne
b06947c433 [svn-r25100] Added -V to example command line.
Added note about INSTALLDIR.
2014-04-25 10:27:05 -05:00
Allen Byrne
4de2b5b559 [svn-r25098] Disable fortran by default 2014-04-25 09:34:54 -05:00
Quincey Koziol
95e0006dc2 [svn-r25097] Description:
Make progress toward moving from DXPL IDs to property list structures
within the library.  Also move the signature location code from the H5F
package to the H5FD package, where it's a better fit.  Also, clean up some
more compiler warnings along the way.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
    (h5committest forthcoming)
2014-04-25 09:32:17 -05:00
Albert Cheng
ead005cc27 [svn-r25096] Bug: HDFFV-8433
Need to unify Windows release process (zip file) and Unix release process (bin/release-> tarfile)

Solution:
Added a new option (zip) to generate Windows zip file from the release tarball.

Tested: by hand running "bin/release ... gzip zip" to verify zip file looks right.
Allen and Dana then confirmed the zip file can be used to build and test HDF5
library without error.
2014-04-24 16:38:54 -05:00
Quincey Koziol
3bdb116942 [svn-r25092] Description:
More migration to using H5F_io_info_t pointers and away from using
property list IDs internally.  Also, clean up some compiler warnings in the
cache code.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
    (h5committest forthcoming)
2014-04-24 11:30:24 -05:00
Quincey Koziol
cd973218bf [svn-r25088] Description:
Introduce "file I/O info" struct, to hold file & dxpl pointers, and start
propagating up through library.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
    (h5committest coming)
2014-04-23 14:10:11 -05:00
Allen Byrne
897806f3c7 [svn-r25085] Comment out under-development code 2014-04-23 12:44:00 -05:00
Quincey Koziol
7b6eae2ddf [svn-r25084] Description:
Begin process of migrating from using property list IDs internally to the
library to using the internal generic property list data structure.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
    (h5committest forthcoming)
2014-04-23 11:30:25 -05:00
Albert Cheng
3dc1e6dd38 [svn-r25081] Bug HDFFV-8625, HDFFV-8639, HDFFV-8745:
h5diff issues "unable to read attribute" error message when comparing two files

Description:
    h5diff did not handle attributes of variable length strings correctly. It created the wrong memory type if one but not both compared attributes are of the variable strings type. It ended in H5Aread() failure.

Solution:
    We decided to treat the case when one type is variable length string and the other is not as incomparable. That bypassed the above error.  We still need to figure out the proper way, if possible, to compare variable string with non-variable string types.

Tested: h5committested plus tested in Swallow (OS X 10.8).
2014-04-22 17:25:51 -05:00
Allen Byrne
2b11123a20 [svn-r25075] Correct the install folder logic.
Tested: local linux and Mac
2014-04-22 13:41:11 -05:00
Binh-Minh Ribler
a75e8dd654 [svn-r25061] Description:
Put back overloaded functions for backward compatibility:
    - were replaced by better prototyped versions, such as Attribute::getName.
    - were modified to add const to constant arguments.
    Added notes for future removal in documentation.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-17 18:25:01 -05:00
Frank Baker
ca6e13d3df [svn-r25057] Description:
Update copyright notice to include 2014.
2014-04-16 13:14:05 -05:00
Larry Knox
01cd10e0cd [svn-r25054] Merge changes to RELEASE.txt for 1.8.13 release:
Reviewed and revised version information for unix daily tested machines in supported a
d tested platforms sections.
Added description of LD_LIBRARY_PATH change to configure and using scripts to compile
nd run installed example files to Bug Fixes/Configuration section.

Text change only.
2014-04-16 12:11:51 -05:00
Dana Robinson
b4c44f8eeb [svn-r25045] Fixed a few missing lines of code that were not merged when the
core VFD paging changes were brought over.

Tested on:
    32-bit LE linux (jam)
    64-bit LE linux (koala)
    64-bit BE linux (ostrich)

All were tested with HDF5_DRIVER set to "core_paged".
2014-04-14 11:17:52 -05:00
Allen Byrne
94ede7a8ce [svn-r25043] Correct CPPFLAGS value.
Correct test DEPENDS format.
2014-04-14 10:50:13 -05:00
HDF Tester
6233002749 [svn-r25034] Snapshot version 1.9 release 177 2014-04-13 04:56:37 -05:00
Binh-Minh Ribler
9eec404f8b [svn-r25025] Description:
Added:
	./c++/src/header_files/hdf_logo.jpg
	./c++/src/header_files/help.jpg
2014-04-11 22:06:19 -05:00
Binh-Minh Ribler
d259d6e0ab [svn-r25020] Description:
- Fixed a few comments that Doxygen gave warnings on.
    - Removed stylesheet from configuration so Doxygen will use the default
        stylesheet and removed the CLANG-related lines to eliminate another
        error since we're not using that feature, so the lines should not
        present. (from cpp_doc_config)
Platforms tested:
    Linux/32 2.6 (jam) - only changing comments
2014-04-11 20:04:47 -05:00
Binh-Minh Ribler
1ae7c67a71 [svn-r25019] Description:
Updated configuration file to use Doxygen 1.8.5 properly.
    Verified with Doxygen 1.8.5 on Jam, using bin/release.
    After committing, this will be checked out and verified
    again to make sure.
2014-04-11 15:51:12 -05:00
Allen Byrne
e2bc556949 [svn-r25009] Add missing mod file to install
Tested: local linux
2014-04-10 08:27:28 -05:00
Allen Byrne
3edb726818 [svn-r25005] Update release docs 2014-04-09 13:56:19 -05:00
Allen Byrne
c0bb145242 [svn-r25002] By Permission: Add missing mod file to install
Tested: local linux
2014-04-09 10:11:04 -05:00
Scot Breitenfeld
3677c1cc8e [svn-r25001] Cast as integer to verify routine to remove intel warning.
Tested: jam (intel)
2014-04-09 09:45:04 -05:00
Albert Cheng
9734210966 [svn-r24999] Bugfix: HDFFV-8639
h5diff segfaults with user's files

Solution:
Added a variable to indicate if real data are in the buffer and will call H5Dvlen_reclaim()
only when real data are in the buffer.

Tested: with the user provided data files and no more segmentaion fault.
Also h5committ tested.
2014-04-09 06:23:16 -05:00
Quincey Koziol
3de25ee226 [svn-r24998] Description:
Check in Neil's changes for correctly handling case where library is
reinitialized through a deprecated routine.

Tested on:
    Linux 2.4.x/32 (jam)
2014-04-09 00:08:21 -05:00
Larry Knox
f32690b53c [svn-r24997] Added compiler versions for mpich to settings file and configure summary.
For make installcheck, compile and run installed examples using the installed scripts.  They were being compiled but not run.
Add Fortran2003 examples to the run-ex-fortran script when fortran2003 is enabled.
Set flag to -O3 in production mode for Intel compilers other than those with specified other settings.
Gentoo patches:
    Remove unnecessary setting of LD_LIBRARY_PATH from configure.
    Prevent potential array subscript out of bounds error in perform/pio_engine.c and sio_engine.c.

Tested with h5committest on jam, koala, ostrich and platypus, on emu and kite, and parallel tests on jam, koala and platypus with mpich built with gnu 4.8.2 and with intel compilers.
2014-04-08 23:55:49 -05:00
Binh-Minh Ribler
a2c8dc8972 [svn-r24996] Description:
Fixed some minor documentation mistakes.
    Updated configuration file for Doxygen.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
2014-04-08 23:40:46 -05:00
Quincey Koziol
c1163e0399 [svn-r24995] Description:
Improve checks for NULL buffer from user during H5Dread/H5Dwrite calls.

Tested on:
    Linux/32 2.4.x (jam) w/gcc
2014-04-08 23:16:53 -05:00
Binh-Minh Ribler
0dc4ce3704 [svn-r24994] Purpose: Removed some warnings
Description:
    Turned on warnings and removed some of those.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-08 23:03:03 -05:00
Dana Robinson
5ae7ad342d [svn-r24993] Purpose:
Adds write tracking to the core VFD, which can be configured
via the H5Pset/get_core_write_tracking() API call. When enabled
and writing to the backing store is enabled, this feature will
track writes and only write out the changed bytes on flush/close.

Tested on:
    32-bit LE linux (jam) w/ Fortran and C++
    64-bit BE linux (ostrich)
    64-bit Darwin 12.5.0 (kite)

All were tested using the core VFD w/ paging on (core_paged
in the VFD list). Make check-vfd was also tested on jam.
2014-04-08 22:35:16 -05:00
Binh-Minh Ribler
385b4b40ae [svn-r24991] Purpose: Fixed HDFFV-3384
Description:
    - Added const to const arguments
    - Fixed miscellaneous comments
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-08 21:36:48 -05:00
Albert Cheng
aaf5c1d400 [svn-r24989] Problem:
AIX compiler complains that:
ex_ds1.f90, line 89.16: 1512-050 (W) Field separator is missing, in literal FMT specifier, after edit descriptor X.  A comma is assumed.
Line 89:
  WRITE(*,'(/,5X 3(A,1X),I0,A,L1)') 'Is',TRIM(DS_1_NAME),&

Solution:
Added the missing comma after "5X".

Tested:
AIX system.
2014-04-08 20:08:08 -05:00
Allen Byrne
ae84631570 [svn-r24987] HDFFV-8709, HDFFV-8776, HDFFV-8777, HDFFV-8778
Apply user patches, regenerate and patch results for windows.

Miminum changes tested locally
2014-04-08 14:35:34 -05:00
Scot Breitenfeld
9cd1a1bb60 [svn-r24986] Comparing REALs now converts all REALs to double precision and then compares if the two numbers are equivalent.
Tested: jam (gnu, intel)
2014-04-08 14:34:42 -05:00
Scot Breitenfeld
d1f2b1a682 [svn-r24985] reverted the r24984 update. 2014-04-07 20:00:24 -05:00
Scot Breitenfeld
ff9a10cfda [svn-r24984] Added overload operatorZ to compare REALs for tests.
Tested on jam (gfortran, (-r8))
2014-04-07 19:18:20 -05:00
Binh-Minh Ribler
67a61ed22f [svn-r24983] Purpose: Fix HDFFV-8367
Description:
    - Added wrappers to CommomFG for H5Oget_info_by_name() to get a child
      object's type (requested by user)
        H5O_type_t childObjType(const H5std_string& objname) const;
        H5O_type_t childObjType(const char* objname) const;
        H5O_type_t childObjType(hsize_t index, H5_index_t index_type=H5_INDEX_NAME, H5_iter_order_t order=H5_ITER_INC, const char* objname=".") const;
    - Added tests to tobject.cpp
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-07 15:08:59 -05:00
Elena Pourmal
849177c7b6 [svn-r24979] Maintenance: Addressed DT failures on emu in 64-bit mode and on macs, linux, powerpc
for non-standard sizes of reals.

Platforms tested: jam, ostrich, platypus, kite, quail, emu
2014-04-07 12:05:22 -05:00
Scot Breitenfeld
f6a04cded9 [svn-r24978] Removed the .mod (and .raw) files when make clean is issued.
tested (emu).
2014-04-07 11:29:23 -05:00
Allen Byrne
c520294d67 [svn-r24977] Remove WIN32 AND NOT CYGWIN if blocks - should be just WIN32
Tested: local linux CMake
2014-04-07 10:39:13 -05:00
Binh-Minh Ribler
25b1330915 [svn-r24975] Description:
Added c++/test/tobject.cpp
2014-04-07 09:11:13 -05:00
Elena Pourmal
c455fdc4f1 [svn-r24974] Maintenance: Fixed daily tests parallel tests compilation failures
Platforms tested: jam
2014-04-07 08:49:00 -05:00
Binh-Minh Ribler
607634a69b [svn-r24973] Description:
Added c++/test/tobject.cpp
2014-04-06 22:27:14 -05:00
Elena Pourmal
805b1ec23c [svn-r24972] Maintenance: Fixed another typo; see HDFFV-8714 2014-04-06 17:57:04 -05:00
Elena Pourmal
dde80eef11 [svn-r24970] Maintenance: Fixed a typo in a comment line (see HDFFV-8714) 2014-04-06 17:52:44 -05:00
Binh-Minh Ribler
a08f75b073 [svn-r24969] Description:
- Added wrappers to H5Object for H5Iget_name() to get object's name
        ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
        ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
        H5std_string getObjName() const;
    - Added tests tobject.cpp
    - Added to various cleanup_* functions in tests to remove generated files
    - Added an overload H5I_type_t getHDFObjType() to get object's type
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu) with gmake
2014-04-06 17:36:15 -05:00
Elena Pourmal
70daa61a87 [svn-r24967] Maintenance: Reorganized and cleaned the code to remove compiler warnings in the Fortran test code
and examples. 

Platforms tested: Manual testing in place and using srcdir on jam, platypus, and emu with default and 
                  PGI, Intel and new GNU compilers. ifort compiler was also tested with -i8 and -r8 flags
                  on jam.  CMake tested on jam.
2014-04-06 10:56:21 -05:00
HDF Tester
a9724dfd6c [svn-r24966] Snapshot version 1.9 release 176 2014-04-06 04:20:59 -05:00
Dana Robinson
5d7af691c3 [svn-r24965] Fixed a typo in the thread-safe code.
Tested on:
    32-bit LE linux w/ thread-safe (jam)
2014-04-04 22:35:32 -05:00
Albert Cheng
785d65181d [svn-r24964] HDFFV-8704: Mac OS X 10.6 (Snow Leopard) is retired from supported platforms. 2014-04-04 17:35:51 -05:00
Dana Robinson
b17ef126a7 [svn-r24961] Updates to Win32 thread-local storage cleanup when the thread-safe library is built on Windows. Previously, thread-local storage was not cleaned up, causing resource leaks.
Fixes HDFFV-8518, HDFFV-8699

As a part of these changes, the thread-safe + static library options are declared unsupported since the solution relies on DllMain. A solution for the static library is probably doable, but requires much more complicated surgery and has been deferred to HDF5 1.8.14.

Tested on:
    64-bit Windows 7 using VS 2012 (changes only affect Windows)
2014-04-04 15:51:30 -05:00
Scot Breitenfeld
79a891c241 [svn-r24959] Updated the development procedures. 2014-04-03 15:51:16 -05:00
Allen Byrne
5f4562b2ea [svn-r24954] HDFFV-8700: lowercase CMake commands 2014-04-03 10:34:08 -05:00
Scot Breitenfeld
e26b78a04b [svn-r24953] Fixed --enable-production compilation error using Sun compilers.
Tested (emu)
2014-04-03 10:18:42 -05:00
Scot Breitenfeld
b0bdd25417 [svn-r24952] Fixed -i8 -r8 error with optimization on jam using intel compiler.
Tested: jam (intel)
2014-04-03 10:01:21 -05:00
Scot Breitenfeld
b87b1c965d [svn-r24951] Changed ordering of initiation of variable to remove warnings using sun compilers.
Tested: emu
2014-04-03 09:35:54 -05:00
Allen Byrne
6739a7f7ac [svn-r24950] Add missing prefix 2014-04-03 08:56:51 -05:00
Allen Byrne
98bbf4a36a [svn-r24948] Group tests by Common name
Remove WIN32 AND NOT CYGWIN if blocks - should be just WIN32

Tested: local linux CMake
2014-04-02 13:35:01 -05:00
Scot Breitenfeld
5555f057ae [svn-r24945] Fixed failed test on jam with intel compilers and -i8 -r8
Tested: jam (intel)
2014-04-02 09:17:14 -05:00
Scot Breitenfeld
c86aedeba1 [svn-r24939] Fix for HDFFV-8309 Fortran wrappers for H5Pget/set_file_image functions
Tested: jam (gnu, intel, pgi)
2014-04-01 10:15:26 -05:00
Binh-Minh Ribler
0fcac56705 [svn-r24938] Description:
- Overloaded Atribute::getName to take a char* for the attribute name:
        ssize_t Attribute::getName(char* attr_name, size_t buf_size)
    - Switched the arguments in this function:
        ssize_t getName(size_t buf_size, H5std_string& attr_name)
        so it became:
        ssize_t getName(H5std_string& attr_name, size_t buf_size)
        The second argument is default to 0, and can be skipped.
    - Removed this function:
        H5std_string getName(size_t buf_size); it'll collide with the
        first function when that function takes a NULL for the first
        argument, and uses default value for the second argument.
    - Added more tests
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-01 00:59:37 -05:00
Dana Robinson
d01ee66666 [svn-r24937] Adds an H5free_memory() function to the library for use with
functions that return library-allocated memory. The test and tool
code were modified to use this new function where it's appropriate.

Fixes HDFFV-7710, HDFFV-8519, and HDFFV-8551

Tested on:
    64-bit Windows 7 w/ VS2012
    32-bit LE linux w/ parallel and fortran (jam)
    32-bit LE linux w/ fortran and C++ (jam)
2014-03-31 18:35:09 -05:00
Allen Byrne
ef9db69bf3 [svn-r24936] Correct declaration name 2014-03-31 14:54:03 -05:00
Allen Byrne
f5f913436f [svn-r24935] Correct line numbers 2014-03-31 14:52:22 -05:00
Allen Byrne
163f4036ec [svn-r24934] Update file as referenced in configure 2014-03-31 13:37:22 -05:00
Allen Byrne
8faebe2aa8 [svn-r24933] Add file required by automake 2014-03-31 12:55:47 -05:00
Allen Byrne
c6fe8c70b2 [svn-r24932] HDFFV-8290: Remove unnecessary $(srcdir) and use AM_CPPFLAGS instead of INCLUDES. Update automake to 1.14.1
h5committest
2014-03-31 12:07:05 -05:00
Allen Byrne
cf482acf55 [svn-r24931] Add interface property to target 2014-03-31 10:45:07 -05:00
Binh-Minh Ribler
5f17eea9cd [svn-r24929] Description:
Added proper deallocation/allocation to test.
    Revised incorrect comments.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-03-31 00:27:17 -05:00
Binh-Minh Ribler
82df757e96 [svn-r24926] Description:
Added c++/test/tdspl.cpp
2014-03-30 11:16:04 -05:00
Binh-Minh Ribler
be38074a2f [svn-r24925] Purpose: Fix HDFFV-7907
Description:
    Added transform property list functions
        // Constructor creates a dataset transform property list.
        DSetMemXferPropList(const char* expression);

        // Sets data transform expression.
        void setDataTransform(const char* expression) const;
        void setDataTransform(const H5std_string& expression) const;

        // Gets data transform expression.
        ssize_t getDataTransform(char* exp, size_t buf_size=0) const;
        H5std_string getDataTransform() const;

    Added test file tdspl.cpp.

Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-03-30 11:15:11 -05:00
HDF Tester
d6cd6cabc2 [svn-r24924] Snapshot version 1.9 release 175 2014-03-30 04:18:22 -05:00
Allen Byrne
5ccbc671e4 [svn-r24919] Add MINGW check
Tested: MinGW on Windows 7
2014-03-27 15:34:35 -05:00
Allen Byrne
65ebbe2753 [svn-r24918] Fix command case 2014-03-27 15:32:47 -05:00
Binh-Minh Ribler
e79b0dece5 [svn-r24912] Purpose: Fix HDFFV-8642
Description:
    Added CompType::setSize(size_t size) to set size for compound data type
    as H5Tset_size had been changed.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-03-26 23:36:53 -05:00
Allen Byrne
448e1e05f1 [svn-r24904] Revert includes move 2014-03-26 09:38:18 -05:00
Allen Byrne
1e1f754fb0 [svn-r24903] Correct mod install lists
Tested: local linux
2014-03-26 09:36:08 -05:00
Binh-Minh Ribler
7ed2b997ba [svn-r24901] Description:
Fixed mismatched function prototype/definition that caused daily
    test failure on emu/production/HDF5TestExpress=1.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-03-25 19:47:07 -05:00
Allen Byrne
9db0c02b96 [svn-r24899] Add msmpi fortran libs to FindMPI 2014-03-25 16:57:30 -05:00
Allen Byrne
425408b5a1 [svn-r24895] Add INTERFACE properties to libs 2014-03-25 13:25:53 -05:00
Dana Robinson
84e27c4af1 [svn-r24893] CMake now prohibits configuring thread-safety w/ Fortran and C++.
These changes only apply to non-Cygwin Windows since CMake does not allow configuring thread-safety on any other platform.

Tested on 64-bit Windows 7.
2014-03-25 10:44:51 -05:00
Allen Byrne
403506efd4 [svn-r24889] Fix fortran mod file handling and packing 2014-03-24 16:58:59 -05:00
Scot Breitenfeld
8b27024edd [svn-r24888] Cleaned-up warning errors using --enable-fortran only and gcc 4.8.2
tested: gcc (4.8.2, jam)
2014-03-24 16:20:14 -05:00
Allen Byrne
075a5a9a3a [svn-r24887] Fix fortran mod file handling and packing 2014-03-24 16:03:32 -05:00
Allen Byrne
63e1b32068 [svn-r24886] Fix fortran mod file handling and packing 2014-03-24 16:00:34 -05:00
Allen Byrne
810285be8e [svn-r24876] Move includes command up before all programs 2014-03-24 11:29:13 -05:00
Quincey Koziol
f251a0219c [svn-r24875] Description:
Update with corresponding information that was changed in
hl/src/H5Tanalyze.l in r24869.

Tested on:
    Linux 2.6.32-431.5.1.el6.ppc64/64 (ostrich)
2014-03-24 10:48:36 -05:00
Quincey Koziol
f97d63cb95 [svn-r24869] Description:
Clean up more compiler warnings, plus merge a few Coverity bug fixes from
the hdf5_1_8_coverity branch back to the trunk:

r20877:
Purpose: Fix coverity issue 1723

Description:
Modified test_generate in hl/test_image to close file "f" before exit, even if
an error occurs.

r20879:
Issue 63: change check of return of H5Tget_nmembers to <=0. No need to go
futher if call fails as well as empty.

r20881:
Coverity #659 in Run 46: I changed the Line 442 where it tries to check whether
FLAG_PRINTED is TRUE.  But it had just been set to FALSE.  I took out the
condition check in the print statement.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & Parallel
    (too minor to require h5committest)
2014-03-23 01:27:57 -05:00
Binh-Minh Ribler
67be45610f [svn-r24867] Description:
- Added a null terminator to the comment returned from the C call, in
        getComment methods
    - Some minor cleanup
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (platypus)/PGI compilers
2014-03-22 15:39:44 -05:00
Scot Breitenfeld
958a762dd1 [svn-r24866] Fixed compiler warnings using gnu 4.8.1
Tested: jam( intel, gnu, pgi)
2014-03-22 15:01:58 -05:00
Binh-Minh Ribler
60df159d33 [svn-r24865] Description:
- Added another overload for char* argument:
        ssize_t getComment(const char* name, const size_t buf_size, char* comment)
    - Changed default value to 0 for the other two getComment methods
    - Added HDmemset to after every char string allocation to clear the buffer
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (platypus)/PGI compilers
2014-03-21 18:23:05 -05:00
Quincey Koziol
2e4302818a [svn-r24864] Description:
Remove all traces of MPI-POSIX VFD and GPFS detection/code.

    Remove remaining traces of stream VFD.

    Remove testpar/t_posix_compliant test (it's not actually verifying anything).

    Clean up H5D__mpio_opt_possible() further.

    Moved environment variable that disables MPI collective operations into
MPI-IO VFD (instead of it being in src/H5S.c).

    A few other small code cleanups.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/parallel & serial
2014-03-21 18:02:24 -05:00
Allen Byrne
c4f982abf1 [svn-r24859] Remove unnecessary use of $(srcdir).
Tested: local linux, h5committest
2014-03-21 13:50:30 -05:00
Dana Robinson
7a4727d80c [svn-r24857] --enable-threadsafe no longer requires --with-pthreads if Pthreads can
be found in the standard include and library paths.

Tested on:
    32-bit LE linux (jam)
    SunOS 5.11 (emu)
    64-bit Darwin 12.5 (kite)
    64-bit FreeBSD 8.2 (freedom)

Testing focused on making sure that Pthreads could be found on different
platforms and investigating the interaction of Fortran/C++/thread-safe
options.
2014-03-21 10:19:07 -05:00
Scot Breitenfeld
6515a1f8ac [svn-r24856] added missing common statement 2014-03-21 09:34:05 -05:00
Scot Breitenfeld
6c13c99ce9 [svn-r24855] added missing dllexport 2014-03-21 09:28:03 -05:00
Allen Byrne
da23edd24e [svn-r24851] example causes modal permission dialog to popup on windows. build but do not execute. 2014-03-20 16:18:30 -05:00
Allen Byrne
ba2c98d42a [svn-r24850] example causes modal permission dialog to popup on windows. Do not build. 2014-03-20 16:17:24 -05:00
Allen Byrne
0be0491ee4 [svn-r24849] Update to synch with latest cmake 2014-03-20 14:05:30 -05:00
Scot Breitenfeld
34bfba14d5 [svn-r24846] Bug fix for HDFFV-8689 : Mix-match of type in H5D_CHUNK_CACHE_NBYTES_DEFAULT, Review HDF5-184
Tested with -i8 flag with intel compilers and --enable-production
2014-03-20 09:06:42 -05:00
Binh-Minh Ribler
ff565cd175 [svn-r24830] Purpose: HDFFV-8623
Description:
    Applied patch from user Jason Newton.  JIRA issue HDFFV-8623, patch
    9, improve c++ compatibility with exceptions.  All additions of "throw()"
    are included.  Exception::what() is not added because it is not necessary.
    It was suggested for the name, which follows stdlib.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)/PGI compilers
2014-03-18 14:31:18 -05:00
Allen Byrne
44fe3cc19b [svn-r24826] HDFFV-8700 -
KitWare recommendations: Change CMake commands to lower case.
Bump up CMake minimum versions.
Split test file into separate file for h5repack test.

Tested: local linux
2014-03-18 11:55:05 -05:00
Allen Byrne
03d10edd23 [svn-r24824] HDFFV-8700 -
KitWare recommendations: Change CMake commands to lower case.
Bump up CMake minimum versions.
Split test file into separate file for h5repack test.

Tested: local linux
2014-03-18 11:21:46 -05:00
Allen Byrne
73a72c59b8 [svn-r24822] Update GYGWIN version 2014-03-18 10:03:21 -05:00
Allen Byrne
185b3c5dee [svn-r24816] HDFFV-8695:
Add notes about defining  
-DCMAKE_BUILD_TYPE:STRING=Release
2014-03-17 17:12:46 -05:00
Quincey Koziol
164b4c7534 [svn-r24804] Description:
Brought changes from Coverity branch back to trunk, and cleaned up misc.
other warnings & formatting issues:

r20833:
Fixed Coverity 667 and 668 with real integer overflow tests this time.

r20834:
Use HDstrncpy and HDstrncat. --gh 

r20835:
Change to use strncpy - use base_len + 1 for line 156, use HDstrlen(path) + 1 for line 159

r20836:
Fixed coverity 585 by casting output of fgetc() to a char.

r20837:
Changed sprintf calls to snprintf with size 1 less than the allocated buffer to address coverity issue #967.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
    (too minor to require h5committest)
2014-03-15 23:44:13 -05:00
Quincey Koziol
288c7760a4 [svn-r24803] Description:
Rename GCC_DIAG_OFF/ON macros to H5_GCC_DIAG_OFF/ON and move from
src/H5private.h to src/H5public.h.  Wrap typedef of hsize_t and hssize_t
in DIAG_OFF(long-long) macros.

    Clean up a bunch of "macro '-' is unused" warnings.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/gcc 4.8.2, C++, FORTRAN, parallel
    (too minor to require h5committest)
2014-03-15 22:13:52 -05:00
Allen Byrne
f5689224b5 [svn-r24789] Bump up the minimum cmake version 2014-03-13 10:05:09 -05:00
Scot Breitenfeld
b17f3e4183 [svn-r24783] fixed typo 2014-03-12 09:20:47 -05:00
Allen Byrne
6c5e74942d [svn-r24782] HDFFV-8700 -
KitWare recommendations: Change CMake commands to lower case.
2014-03-11 17:07:13 -05:00
Allen Byrne
a3292a77ce [svn-r24781] HDFFV-8700 -
KitWare recommendations: Change CMake commands to lower case.
Remove INCLUDE_DIRECTORIES in src for target level includes.
Change ADD_DEFINITIONS package debug defines into CMake option.
Remove -DNDEBUG
2014-03-11 16:14:57 -05:00
Quincey Koziol
5b7c8c7a7d [svn-r24772] Description:
Correct some dynamically sized arrays that fail on Windows.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/parallel
2014-03-10 13:03:35 -05:00
HDF Tester
4a9ea60adc [svn-r24770] Snapshot version 1.9 release 174 2014-03-09 05:17:47 -05:00
Quincey Koziol
ac0ef34a41 [svn-r24769] Description:
Check in Mohamad's changes to support collective I/O on point selections,
along with some other minor cleanups.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/parallel & serial
    (h5committest forthcoming)
2014-03-07 14:12:20 -05:00
Neil Fortner
e367f64e24 [svn-r24757] Change assertion to condition check/error return. Should fix periodic
assertion failure in fheap test (in test that is expected to fail cleanly).

Fix type in H5detect.c

Tested: ostrich, platypus (h5committest - jam and koala having issues)
2014-03-03 17:54:14 -05:00
HDF Tester
f683d9a035 [svn-r24753] Snapshot version 1.9 release 173 2014-03-02 04:16:37 -05:00
Allen Byrne
e1e136ea1d [svn-r24744] Correct NSIS name 2014-02-27 12:42:31 -05:00
Allen Byrne
f68f4be233 [svn-r24742] Synchronize Apple bundle packaging with latest changes discovered during hdf-java work. 2014-02-27 11:53:12 -05:00
Allen Byrne
db1b11b69b [svn-r24741] HDFFV-8684: Change Package name depending on CDASH_LOCAL configuration variable.
Tested: local linux
2014-02-27 10:43:08 -05:00
Albert Cheng
c2bf6ea162 [svn-r24739] Bug fix: HDFFV-8684
h5committest failed in platypus because cmakehdf5 failed in installation because cmake generates
a install-tarball based on incomplete version number (subrelease string is missing).

Solution:
Fixed $HDF5_PACKAGE_VERSION to contain the subrelease string.
Fixed $HDF5_PACKAGE_VERSION_STRING to be the same as $HDF5_PACKAGE_VERSION.

Tested: jam and platypus in both trunk and v18 branches because the current
version number is trunk has a null sub-release and v18 has a non-null sub-release.
That covers both grounds.
2014-02-26 16:29:55 -05:00
Quincey Koziol
1162465570 [svn-r24727] Description:
Revert change of sprintf -> snprintf, due to failures on Windows.  We'll
need to figure out the correct course of action in the future.

Tested on:
    MacOSX/64 10.9.1 (amazon) w/C++, FORTRAN
    (too minor to require h5committest)
2014-02-21 11:53:33 -05:00
Quincey Koziol
1e36b5a348 [svn-r24726] Description:
Revert some earlier usage of strncpy, which was incorrect.

    Bring Coverity changes from branch back to trunk:

r20821:
    Use HDstrncpy. --gh
    (Fixed already, with strdup)

r20822:
    (Not merged, incorrect use of HDstrncpy())

r20823:
    (Not merged, incorrect use of HDstrncpy())

r20824:
    Maintenance: Bug fix: addressed CID 666.
    Value stored at *expression_len should be used in the call to
        HD5packFstring to avoid overflow (and unnecessary arithmetic
        calculation and casting) 

r20825:
    Issue 642: Added check for error and handler with print to stderr and exit.

r20826:
    Undo revision 20818, as that issue has already been fixed in the 1.8 branch
        and trunk (but not coverity branch)

r20827:
    (Not merged, incorrect use of HDstrncpy())
    
r20828:
    Use HDstrncpy. --gh
    (Corrected use of strncpy())

r20829:
    Check return of H5Lget_val(print_udata->fid, path, targbuf,
        linfo->u.val_size + 1, H5P_DEFAULT) and if error set trgbuf[0] to 0.
        Check if  H5Lunpack_elink_val(targbuf, linfo->u.val_size, NULL,
        &filename, &objname) was successful and allow print. Otherwise filename
        and objname are not created. (init those to NULL)

r20830:
    resolved coverity issues 939, 940, 941, 944, and 947.

    all were complaints about use of sprintf, and in all cases, the
    buffers used were large enough for all eventualities.

    Resolved issue by replacing calls to sprintf with calls
    to snprintf.

r20831:
    Maintenance: Addressed CID 852
    Replaced sprintf with snprintf

r20832:
    Purpose: Fix valgrind issues with hl/examples/ex_image2

    Description:
    Modified hl/examples/ex_image2 to free global "gbuf" before exit.

Tested on:
    Mac OSX/64 10.9.1 (amaon) w/C++, FORTRAN & Threadsafety
    (too minor to require h5committest)
2014-02-20 16:29:26 -05:00
Allen Byrne
b30e37ea78 [svn-r24725] HDFFV-8629: h5repack will not attempt to remove UD filters. h5repack requires a check for UD filters that also must check if the filter can be dynamically loaded. This require a change in the library that checks for this.
Tested: locally and reviewed
2014-02-20 15:21:08 -05:00
Allen Byrne
d0ae86bc64 [svn-r24724] Fix MPI linker flags with quotes 2014-02-20 15:18:42 -05:00
Allen Byrne
bf908ca553 [svn-r24722] Set NSIS display name 2014-02-18 10:07:53 -05:00
HDF Tester
d7f00b8002 [svn-r24716] Snapshot version 1.9 release 172 2014-02-16 03:32:48 -05:00
Allen Byrne
7c54d413ae [svn-r24715] Add Windows VS version for README.txt 2014-02-14 09:30:30 -05:00
Allen Byrne
9dc573798d [svn-r24713] Update Windows VS version for README.txt 2014-02-14 09:15:28 -05:00
Mohamad Chaarawi
863ff882b6 [svn-r24709] rename H5V to H5VM since H5V is needed in the fastforward project for
view objects.  The addition of view objects in the fastforward project
is expected to be brough into the trunk sometimes in the future, which
is why we need to make this change.

Tested Manually on Jam and Ostrich.
Tested with h5commitest - Koala with intel compilers failed, but nothing had to do with those changes.
error on Koala: error while loading shared libraries: libirng.so
2014-02-13 17:12:46 -05:00
Allen Byrne
49a9979166 [svn-r24706] Add to instructions for install 2014-02-13 09:10:50 -05:00
Allen Byrne
82f62cd012 [svn-r24703] Add Binary README.txt file generation
Tested: local linux cmake
2014-02-13 09:00:00 -05:00
Allen Byrne
ab045c634c [svn-r24700] Updated packaging process to align with latest hdf cmake standards. 2014-02-11 15:22:16 -05:00
HDF Tester
1b6683e58f [svn-r24698] Snapshot version 1.9 release 171 2014-02-09 03:36:37 -05:00
Scot Breitenfeld
ecc60884a8 [svn-r24697] Fix for:
HDFFV-8651: H5F_Provisional missing from HDF5mpio.f90

Tested: jam (mpi 3.0.4/gnu)
2014-02-07 16:45:23 -05:00
Allen Byrne
6569d7437a [svn-r24682] Add IF SHARED block around Windows PDB file generation command. 2014-02-04 10:11:36 -05:00
Scot Breitenfeld
ee10548723 [svn-r24681] Description:
Fix for HDF5/HDFFV-8620 H5Rget_name with NULL name parameter fails.
The name parameter now excepts NULL, in which case the length of then
name is returned.


Tested: jam (intel and gnu)
2014-02-04 10:11:20 -05:00
HDF Tester
ddf75b10f6 [svn-r24676] Snapshot version 1.9 release 170 2014-02-02 03:34:20 -05:00
Allen Byrne
0a2ed24d0f [svn-r24672] Update document with ctest script changes. 2014-01-31 13:15:02 -05:00
Allen Byrne
a3e2fabb53 [svn-r24670] HDFFV-8567: Fix cmake tests for changes in reference files due to test script changes in autotools test scripts.
Tested: local linux
2014-01-31 09:15:59 -05:00
Allen Byrne
d9423717e4 [svn-r24668] HDFFV-8568: Remove Acknowledgements file from release binaries 2014-01-30 16:32:40 -05:00
Allen Byrne
b7b4e77f12 [svn-r24666] Fix test folder deletion issue
Tested: local linux autotools
2014-01-30 16:27:23 -05:00
Allen Byrne
2f8c7fbd5e [svn-r24659] Restore dsets test to cmake process 2014-01-28 17:20:41 -05:00
Allen Byrne
362ffa9f05 [svn-r24657] Add VS Express check 2014-01-28 16:48:36 -05:00
Allen Byrne
4f2f2cf6a2 [svn-r24656] Correct packaging variables and use standard cpack module. Remove file. 2014-01-28 16:30:10 -05:00
Allen Byrne
256b36e141 [svn-r24655] Correct packaging variables and use standard cpack module. 2014-01-28 16:25:21 -05:00
Albert Cheng
50bd3521af [svn-r24652] HDFFV-8572: test/testhdf5.c main() should not return number of errors
Solution: testhdf5 now exits EXIT_SUCCESS(0) if no errors, else
EXIT_FAILURE(1).

Tested: Jam only since it is a trivial fix.
2014-01-27 17:33:34 -05:00
Allen Byrne
2f86aa7551 [svn-r24646] HDFFV-8640: Remove xlate_utility by fixing reference files to not add extra lines.
Tested: cmake and autotools local linux
2014-01-27 09:26:21 -05:00
Allen Byrne
8235d9820a [svn-r24644] Correct numbering 2014-01-24 15:06:35 -05:00
Allen Byrne
cf543d258e [svn-r24643] Handle szip lib like zlib lib 2014-01-24 15:05:56 -05:00
Allen Byrne
146a357b90 [svn-r24642] Update other VMs to latest versions 2014-01-24 14:37:21 -05:00
Allen Byrne
63df298fcc [svn-r24641] Handle szip lib like zlib lib 2014-01-24 14:35:58 -05:00
Allen Byrne
25b90a558c [svn-r24639] Add SUN specific block skipping. 2014-01-21 16:37:52 -05:00
Scot Breitenfeld
4a428e25b8 [svn-r24636] typesetting changes for documentation 2014-01-17 16:10:29 -05:00
Neil Fortner
132601ba46 [svn-r24635] Change some range check assertions to errors in H5HF_man_remove in an attempt
to aid in diagnosing issue HDFFV-8647.

Tested: ummon
2014-01-16 16:31:26 -05:00
Allen Byrne
0ff7eb5cda [svn-r24632] Correct name of package location variable 2014-01-16 14:12:02 -05:00
Allen Byrne
1596d15623 [svn-r24631] Update change to relative install location for linux 2014-01-16 13:58:49 -05:00
Scot Breitenfeld
d4d0407a87 [svn-r24623] Enabled test for
HDFFV-8268 Fortran wrapper for H5Fget_file_image function

Tested: jam (pgi compilers)
        h5committest
2014-01-08 15:21:32 -05:00
Allen Byrne
d8b13f60ff [svn-r24621] Update files for changes to installation vars on windows. 2014-01-07 15:02:21 -05:00
Albert Cheng
f30276c462 [svn-r24617] Changed --old to --script as directed by Allen.
Tested: jam (only verify help message is correct and --script is invoked
correctly.)
2014-01-07 14:31:02 -05:00
Mohamad Chaarawi
6ceb9711b8 [svn-r24612] fix bugs in parallel tests exposed in corner cases when running with 1
or 2 processes.

First bug is in testpar/t_mdset.c, where the test reports an error in
addition to skipping the test if there are less than three procs. Fix
to just skip the test.

Second bug is in testpar/t_dset.c in actual_io_mode tests, where
incorrect expected value for IO mode was set if the number of procs
running the test is 1.

tested with h5committest.
2014-01-06 12:56:45 -05:00
Scot Breitenfeld
1febc8a453 [svn-r24611] This is a partial fix for HDFFV-8634. It fixes the problem without --enable-fortran2003, where the optional parameter should not be given as an option for an interface to a C function. --enable-fortran2003 does not work due to a compiler bug in intel 14.0
Tested: kite (intel 14.0 with --enable-fortran)
2014-01-06 10:53:56 -05:00
Albert Cheng
0a128b20a6 [svn-r24604] Feature: HDFFV-8336
Changed to use the quick steps described in INSTALL_CMake.txt.
Previous version is available by --old.
Added a help page to explain how to use.
Added a fix to figure out the current HDF5 version and use that to find the
correct file for install. (Still need to figure out the platform name.)

Tested: Jam and Koala
2014-01-01 13:31:36 -05:00
Mohamad Chaarawi
cdcf54a614 [svn-r24598] allocate and use the H5AC_aux_t struct even if num_procs == 1. This
was a bug exposed by running a single process with a program that
generates lots of dirty metadata that needs to be flushed.

h5committest done!
2013-12-30 15:22:28 -05:00
Allen Byrne
92d4f32514 [svn-r24588] Add sunos compile option changes 2013-12-19 09:55:17 -05:00
Allen Byrne
6a77f9821b [svn-r24505] Correct MacOSX bundle packaging 2013-12-05 15:46:09 -05:00
Allen Byrne
ebb6e8e3be [svn-r24504] HDFFV-8629: disable test until review is complete 2013-12-05 12:53:00 -05:00
Allen Byrne
0cffc628ba [svn-r24492] Correct autotools path 2013-12-03 16:47:56 -05:00
Allen Byrne
3b23b7eb1a [svn-r24487] HDFFV-8629: repack plugin_none test files.
CMake only until library updates approved.
2013-12-03 08:31:05 -05:00
Allen Byrne
008f2e4017 [svn-r24484] Update version and test name. 2013-12-02 16:00:22 -05:00
Allen Byrne
99a54a3056 [svn-r24483] Commit change from 1.8.12 src patch 2013-12-02 15:46:37 -05:00
Allen Byrne
624a466600 [svn-r24482] HDFFV-8635: remove test of whole file and just test dsets that have szip compression.
Tested local linux with cmake and autotools
2013-12-02 15:32:22 -05:00
Allen Byrne
5e695ce4bc [svn-r24481] HDFFV-8635: disable test because of szip causing different read call then expected. 2013-12-02 14:31:25 -05:00
Quincey Koziol
2d79ba29ed [svn-r24480] Description:
Bring r24479 from 1.8 branch to trunk:

    Fix ph5diff worker command handling so it can correctly respond to
situations where there's no work to perform.  Also, a few minor code cleanups.

Tested on:
    Mac OSX/64 10.9.0 (amazon) w/parallel
    (too minor to require h5committest)
2013-11-30 13:10:36 -05:00
Quincey Koziol
0a506a625b [svn-r24476] Description:
Remove duplicate "intent" flags from top & shared file structures, leaving
    them only in the shared file structure.

Tested on:
    Mac OSX/64 10.9.0 (amazon) w/gcc 4.8, both parallel & serial
    (too minor to require h5committest)
2013-11-30 00:51:42 -05:00
Allen Byrne
a25c08e9e2 [svn-r24472] remove line for file that does not exist 2013-11-27 11:34:03 -05:00
Allen Byrne
2f097704ca [svn-r24471] JAVA-1798: Add the testfiles for hdf-java and the h5dump tests including the test to read filter data.
Tested: cmake and autotools - local linux
2013-11-27 11:01:16 -05:00
Allen Byrne
6c90fd5b0b [svn-r24467] tfilters.h5 was created and checked in on 21 Feb 05, rev 10060, and never regenerated. The code for scaleoffset continued to change and the number of params for scaleoffset changed from 7 to 20 on the checkin of 23 Mar 05, rev 10384.
The h5dump tests only looked at headers and never the data. Data reads would fail with invalid number of params (7 expected 20).
Regenerated file and replacement ddls updated.
New h5dump test will be added to read the data.
2013-11-26 17:08:09 -05:00
HDF Tester
bc09cdc302 [svn-r24465] Snapshot version 1.9 release 169 2013-11-24 22:31:26 -05:00
Raymond Lu
200e48e08c [svn-r24463] Issue 8484 - Segfault during H5Fopen of corrupt file. I put a condition check to make sure a pointer isn't NULL.
Tested on jam - very simple change.
2013-11-22 15:59:07 -05:00
Allen Byrne
21cecf09fa [svn-r24432] Update examples package install location and text files 2013-11-12 16:31:01 -05:00
Dana Robinson
3a976e0aa7 [svn-r24416] Fixed some compiler warnings in the dsets test.
Tested on:
    32-bit LE linux (jam)

(These are just minor casting changes in the tests, hence the minimal
testing.)
2013-11-07 16:19:53 -05:00
Allen Byrne
93197c0257 [svn-r24412] Updated information on how to build examples with cmake installed binary. 2013-11-07 13:37:49 -05:00
Allen Byrne
43690b681c [svn-r24411] Correct file generation 2013-11-07 11:45:25 -05:00
Allen Byrne
8190a5e4b3 [svn-r24408] Add compound integer tests files
Tested: local linux cmake
2013-11-06 13:28:12 -05:00
Allen Byrne
132dfca7d0 [svn-r24403] Cleanup temp test files 2013-11-04 16:12:29 -05:00
Elena Pourmal
7aa4a180e4 [svn-r24400] Maintenance: When the libraries are built and tested in place, several files are left
behind by "make distclean" (see below); modified appropriate Makefile.am files and ran
             bin/reconfigure to create Makefile.in to fix the problem.

Here is the list of the files "make disclean" doesn't remove:

       tools/h5dump/testfiles
       tools/h5repack/testfiles/h5diff_attr1.h5
       tools/h5repack/testfiles/tfamily00000.h5
       tools/h5repack/testfiles/tfamily00010.h5
       tools/h5repack/testfiles/tfamily00002.h5
       tools/h5repack/testfiles/tfamily00004.h5
       tools/h5repack/testfiles/tfamily00006.h5
       tools/h5repack/testfiles/tfamily00008.h5
       tools/h5repack/testfiles/tfamily00001.h5
       tools/h5repack/testfiles/tfamily00003.h5
       tools/h5repack/testfiles/tfamily00005.h5
       tools/h5repack/testfiles/tfamily00007.h5
       tools/h5repack/testfiles/tfamily00009.h5
       tools/h5jam/testfiles/h5jam-ub-nohdf5.txt.err-sav
       tools/h5jam/testfiles/h5jam-help.txt.err-sav
       tools/h5jam/testfiles/h5unjam-help.txt.err-sav
       tools/h5jam/testfiles/h5jam-ub-nohdf5.txt.out-sav
       tools/h5jam/testfiles/h5jam-help.txt.out-sav
       tools/h5jam/testfiles/h5unjam-help.txt.out-sav
       hl/fortran/test/dsetf5.h5
       c++/test/tattr_multi.h5
       c++/test/tattr_scalar.h5
       c++/test/tfattrs.h5
       c++/test/tattr_basic.h5
       c++/test/tattr_compound.h5
       c++/test/tattr_dtype.h5

Tested on jam and emu in place and using srcdir with the svn stat command.

This fix doesn't address two problems:

tool/h5dump/testfiles directory is not removed by "make distclean" and it should be
tools/misc/testfiles directory is removed by "make distclean" and it shouldn't be
2013-11-02 20:21:23 -05:00
Allen Byrne
819b8099e2 [svn-r24392] Cleanup testfiles from scripts. Update lists of files to be cleaned. CMake update to clean testfiles.
Tested: local cmake, autools, and h5committest
2013-11-01 16:15:37 -05:00
Dana Robinson
2136f11a47 [svn-r24390] Fixed a redefinition of HDfree in the HL library.
Tested on:
    32-bit LE linux (jam)

There are no behavior changes, so testing was minimal.
2013-11-01 12:13:00 -05:00
Allen Byrne
a3f7f83ed9 [svn-r24385] Add missing H5_ prefix
Tested: local linux
2013-10-31 09:39:37 -05:00
Dana Robinson
0aa06db0a4 [svn-r24380] The parallel test code now uses HDfree, HDmalloc, and HDcalloc
exclusively.

Part of the preparation for a fix for HDFFV-8551.

Tested on:
    32-bit LE linux (jam) w/ parallel and Fortran.

There are no behavior changes, so testing was minimal.
2013-10-31 02:44:00 -05:00
Dana Robinson
89f2019ecf [svn-r24378] Fixed some commenting typos in configure.ac and reconfigured.
Tested on:
    32-bit LE linux (jam) 

There are no code changes.  A build/test was done just to confirm.
2013-10-31 00:24:22 -05:00
Dana Robinson
e6cace9ee4 [svn-r24376] Updated all code to use HDmalloc, HDcalloc, and HDfree.
Prep work for adding a memory free function, part of HDFFV-8551.

Tested on:
    32-bit LE linux (jam) 
        * with C++, Fortran
        * with thread safety on

    These are minor changes (almost entirely renaming foo functions
    to HDfoo) that don't change functionality.  This should not
    require a full commit test.
2013-10-30 23:20:36 -05:00
Raymond Lu
2eb24b16da [svn-r24368] Issue 8147 - clang's -fcatch-undefined-behavior exposed undefined behavior in the alignment detection algorithm for integers in H5detect.c. Quincey decided to solve it in two steps. First, catch illegal instruction signal in the original algorithm. Second, use POSIX __alignof function to detect alignment if it's available. This checkin is the first step.
Tested on wren, jam, ostrich, platypas, and koala.
2013-10-28 16:25:46 -05:00
HDF Tester
56803a1970 [svn-r24362] Snapshot version 1.9 release 168 2013-10-27 04:33:34 -05:00
Raymond Lu
277ee2f7ee [svn-r24360] Jira issue 8528: H5Fget_obj_ids overfilled the list of object IDs by one. This is the second round of checkin after
receiving review comments from people. I put the safeguard in both H5F_get_objects and H5F_get_objects_cb to prevent 
overfill the list.

tested with h5committest.
2013-10-25 14:26:08 -05:00
Dana Robinson
b7a4e1a44e [svn-r24358] Changed the big test so that it runs using the h5_fileaccess() fapl.
The previous behavior was to execute a sec2, stdio, and family
test everytime it ran, which was very inefficient under check-vfd.

Tested on:
    32- and 64-bit LE linux (jam and koala)
    64-bit BE linux (ostrich)
    64-bit OS-X 10.6 (fred)
2013-10-24 23:57:01 -05:00
HDF Tester
8538cf61f9 [svn-r24334] Snapshot version 1.9 release 167 2013-10-20 04:21:31 -05:00
Dana Robinson
e9203a73e2 [svn-r24333] Added a few volatile keywords to H5detect.c to quiet Visual Studio warnings. Also added a void to a Windows-specific function.
These are both trivial changes that don't affect behavior.

Tested on: Visual Studio 2010 on 64-bit Windows 7
2013-10-19 18:43:06 -05:00
Raymond Lu
2aec2ec315 [svn-r24317] Fixed a typo. 2013-10-17 14:50:13 -05:00
Raymond Lu
28574d0bc7 [svn-r24307] Issue 8147: CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv
catches some defined behavior in the alignment algorithm of the macro DETECT_I      
  in H5detect.c. I documented it as a known problem.

No test is needed.
2013-10-16 16:38:56 -05:00
Binh-Minh Ribler
370e6f3f56 [svn-r24291] Description:
- Added a lot of documentation to classes for Reference Manual.
    - Fixed some format inconsistencies
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)/PGI compilers
2013-10-15 00:31:20 -05:00
Allen Byrne
82beeef272 [svn-r24289] Correct linux shared version numbering 2013-10-14 11:43:16 -05:00
HDF Tester
5092f5a30e [svn-r24287] Snapshot version 1.9 release 166 2013-10-13 03:43:04 -05:00
Larry Knox
06aa7b6641 [svn-r24285] Eliminate several "passing argument ... with different width due to prototype" warnings by casting constants to size_t where expected by string functions.
Tested on jam, koala,ostrich and platypus with h5committest.
2013-10-10 16:57:04 -05:00
Allen Byrne
52412564af [svn-r24273] Update URL 2013-10-09 12:05:51 -05:00
Mohamad Chaarawi
9d954e1136 [svn-r24270] checkin coverity changes from 10/4/2013.
tested with h5committest
2013-10-09 11:55:33 -05:00
Quincey Koziol
53827d4017 [svn-r24261] Description:
Correct H5I use of skip list to acquire the 'next' pointer in the skip
list after the ID's 'free' callback has been called, since it occasionally
deletes the 'next' node.

	Also a little bit of code cleanup in other modules.

Tested on:
        FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
        FreeBSD/64 8.2 (freedom) w/gcc4.6, 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 (koala) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.11 (emu) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, w/threadsafe, in production mode
        Linux/PPC 2.6 (ostrich) w/C++ & FORTRAN, w/threadsafe, in debug mode
2013-10-07 14:35:12 -05:00
Quincey Koziol
5f2a34b462 [svn-r24256] Description:
Clean up warnings

Tested on:
    Mac OSX/64 10.8.4 (amazon) w/C++ & FORTRAN
    (too minor for h5committest)
2013-10-04 14:28:22 -05:00
Quincey Koziol
2060d4f6b9 [svn-r24255] Description:
Switch H5I internal data structure from using hash table to skip lists.

Tested on:
    Mac OSX 10.8.4 (amazon) w/C++ & FORTRAN
    FreeBSD, Linux, etc. forthcoming
2013-10-04 12:03:07 -05:00
Allen Byrne
9d05904ae0 [svn-r24253] Add var for install file 2013-10-02 16:51:01 -05:00
Allen Byrne
738f1f0bd6 [svn-r24252] add log vars 2013-10-02 16:38:25 -05:00
Allen Byrne
80ff6d8fee [svn-r24251] Add packaging to process 2013-10-02 15:42:58 -05:00
Allen Byrne
f17fe28697 [svn-r24250] Updated version numbers and notes about CTest Scripting 2013-10-02 14:46:32 -05:00
Allen Byrne
7942fa417e [svn-r24240] Update WDTP test machines 2013-10-01 09:45:14 -05:00
Allen Byrne
91b41bad3a [svn-r24238] Update list of generated files for clear-objects 2013-10-01 09:02:16 -05:00
Binh-Minh Ribler
8597110837 [svn-r24235] Description:
- Appended h5tutr_ to names of data files to avoid name clashing with
      existing examples.
    - Added example dependencies to Makefile.*
    (pointed out by Allen)

Platforms tested:
    SunOS 5.11 (emu) with gmake
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)/PGI compilers
2013-09-30 21:40:32 -05:00
Albert Cheng
7fcd636cb3 [svn-r24234] Bug: tfile.c was failing in the ADA AIX system.
The reason was typo in the index variable in the newly added test_get_obj_ids().

Solution: fixed the typo.

Tested: AIX machine. (Did not run h5committest because the fix is in a remote
machine and the fix is quite obvious.)
2013-09-30 18:11:13 -05:00
Allen Byrne
7171c08a88 [svn-r24227] Add new examples to cmake lists
Tested: local linux
2013-09-30 12:49:05 -05:00
Allen Byrne
4611f95d4c [svn-r24224] HDFFV-8529: Space separate define strings
Tested: h5committest
2013-09-30 11:52:03 -05:00
Albert Cheng
2be5841984 [svn-r24221] Bug ID: HDFFV-8512
Mailing lists instructions are incorrect.

Fix by removing hdf5dev which has long retired (2009). Subscription requests
should be sent to new address due to server change.

Tested: tried to subscribe myself and it worked.
2013-09-30 06:53:35 -05:00
HDF Tester
a4ab8b0e1d [svn-r24218] Snapshot version 1.9 release 165 2013-09-29 03:41:59 -05:00
Albert Cheng
bbd9ad0b27 [svn-r24214] Put in proper error message if unexpected switch values happened.
Tested: h5committest.
2013-09-28 15:40:01 -05:00
Raymond Lu
421e7549a5 [svn-r24210] Jira issue 8528: H5Fget_obj_ids overfilled the list of object IDs by one. I moved the safeguard in H5F_get_objects_cb
to the beginning of the function to prevent overfill the list.  I added a new test case for this problem and fix in tfile.c.

Tested with h5committest.
2013-09-27 15:15:52 -05:00
Albert Cheng
ebc0b44fe1 [svn-r24202] Bug fix: HDFFV-8271 Big.c error in address generated by random number.
Description:
There is a bug in the current big.c tests. In a nut-shell,
the writing part randomly picks 50 locations and write 4KB
from that location. Random location range is from byte 0
to end of dataset. There is the problem--if the random location
is greater than (end of dataset - 4KB), then error.

Solution:
Adjust the random number to be at least 4KB less than the end of the
dataset. That allows it write 4KB more from the generated starting
position.

Tested: h5comittest plus jam serial build and test.
2013-09-26 01:51:10 -05:00
Allen Byrne
ae927c6070 [svn-r24200] Updated cygwin versions 2013-09-25 15:20:39 -05:00
Allen Byrne
b232b752a0 [svn-r24198] Change Internal CDash site. 2013-09-25 15:03:59 -05:00
Binh-Minh Ribler
b3f9cb8786 [svn-r24197] revert a changed committed by mistake, printf statement 2013-09-24 20:27:32 -05:00
Binh-Minh Ribler
91df66782e [svn-r24195] Description:
- Improved format/comments in tutorial examples
    - Added them to Makefile.* and run-c++-ex.sh.in
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)/PGI compilers
2013-09-23 21:12:40 -05:00
Larry Knox
ab239810e1 [svn-r24194] Don't add hdf5 library dependencies to lib files when --disable-sharedlib-rpath configure option is invoked. Fix for HDFFV-8276.
Tested with h5committest and on hdf-duck.
2013-09-23 20:14:24 -05:00
Allen Byrne
c19d87b1fc [svn-r24192] Correct test and usage of defines for cmake configure 2013-09-23 17:09:30 -05:00
Allen Byrne
b52c12bc1d [svn-r24190] remove comment that caused linux build warnings and correct use of cmakedefine vs define in template.
Tested: local linux
2013-09-23 14:10:53 -05:00
Binh-Minh Ribler
94b55940ea [svn-r24189] Purpose: Fixed bug HDFFV-1060
Description:
    Changed header guards from single underscore to double underscore.
Platforms tested:
    Linux/32 2.6 (jam) - very minor
    Linux/64 2.6 (koala)/PGI compilers
2013-09-22 23:04:26 -05:00
Binh-Minh Ribler
f8fb310610 [svn-r24188] Purpose: Fixed bug introduced in r24163
Description:
    - The failure in daily test was caused by missing initialization of member
    "id" in a few constructors.  This is now fixed.
    - Added two overloaded H5Location::setComment
    - Improved some error reporting in H5Location
    - Improved error reporting in tests
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/64 2.6 (koala)/PGI compilers
2013-09-22 19:39:44 -05:00
HDF Tester
f9a758f442 [svn-r24186] Snapshot version 1.9 release 164 2013-09-22 04:17:20 -05:00
Allen Byrne
5b4202c472 [svn-r24179] HDFFV-8321:Add note about changing FFLAGS to FCFLAGS in configure. 2013-09-20 15:34:36 -05:00
Binh-Minh Ribler
1b22cc435e [svn-r24178] Back out the changes that cause daily test to fail r24163 2013-09-20 13:53:21 -05:00
Binh-Minh Ribler
d567424783 [svn-r24175] Description:
Added the tutorial examples
	./c++/examples/h5tutr_cmprss.cpp
	./c++/examples/h5tutr_crtatt.cpp
	./c++/examples/h5tutr_crtdat.cpp
	./c++/examples/h5tutr_crtgrpar.cpp
	./c++/examples/h5tutr_crtgrp.cpp
	./c++/examples/h5tutr_crtgrpd.cpp
	./c++/examples/h5tutr_extend.cpp
	./c++/examples/h5tutr_rdwt.cpp
	./c++/examples/h5tutr_subset.cpp

    Verified with bin/chkmanifest
2013-09-20 08:23:24 -05:00
Binh-Minh Ribler
10a843ff7f [svn-r24174] Purpose: Add examples
Description:
    Added tutorial examples that Barbara made following the C tutorial examples.
    They will be configured for daily test.
Platforms tested:
    Linux/32 2.6 (jam) - tested by running a script that compiled them with
                h5c++ and executing the examples; output are checked manually
2013-09-20 07:16:23 -05:00
Allen Byrne
c965b5503b [svn-r24172] Position trunk/1.8 vars in similar location for comparison. 2013-09-19 14:42:45 -05:00
Neil Fortner
be3a331550 [svn-r24171] Purpose: Fix problem with gcc 4.8
Description:
With optimization enabled, gcc 4.8 inserts garbage into the padding bytes of
floating point types when assigning from a literal constant.  This caused
problems when H5detect.c scanned the bits in floating point types to determine
their properties.

Modified H5detect.c to scan for padding before further analyzing the type, and
to ignore all information in the padding areas.  Also removed code that
temporarily disabled optimization.

Tested: jam, koala, ostrich, platypus (h5committest)
2013-09-19 13:57:41 -05:00
Allen Byrne
0653325f0d [svn-r24167] HDFFV-8513, HDFFV-8522 Plugin testing in h5repack, h5dump.
Add more usage info for UserMacros.
Add new option information about the Plugin default path.

Tested: local linux, jam
2013-09-19 11:38:08 -05:00
Binh-Minh Ribler
4182c81add [svn-r24163] Purpose: More on HDFFV-7520 and HDFFV-533
Description:
    - Improved the changes in revisions r22836 and r23438, mainly on the
      wrappers of reference, dereference, get region, and set/getcomment.
    - Added more tests.

Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-18 22:08:28 -05:00
Binh-Minh Ribler
d95f5e293a [svn-r24162] backing out a commit that includes wrong files 2013-09-18 21:41:00 -05:00
Binh-Minh Ribler
18b896112c [svn-r24161] Purpose: More on HDFFV-7520 and HDFFV-533
Description:
    - Completed the changes in revisions r22836 and r23438 with improvement
    on wrappers such as reference, dereference, get region, and set/getcomment.
    - Added more tests.
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-18 20:54:54 -05:00
Allen Byrne
54a659cb99 [svn-r24157] Add back STGZ packaging - .sh compressed package 2013-09-18 16:56:48 -05:00
Binh-Minh Ribler
afb5fc5c35 [svn-r24143] Description:
Fixed comments, documentation, and mis-matched DOXYGEN_SHOULD_SKIP_THIS pairs.
Platforms tested:
    Linux/32 2.6 (jam)
    Regenerated and verified generated documentation.
2013-09-16 09:39:52 -05:00
Binh-Minh Ribler
27ed849cad [svn-r24142] Purpose: Fix bug in tests
Description:
    - Passing the c_str() of an std string into a C function caused failure
      on OpenVMS.  Added a work around using temporary string. (th5s.cpp)
    - Passing incorrect file access property list caused test_datasize() to
      fail.  Fixed.
    - Close a group in test_dset, before the file can be properly closed.
      This should fix the problem on OpenVMS.
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-14 22:53:59 -05:00
Neil Fortner
a80cf34324 [svn-r24140] Purpose: Remove problematic abandonment of error stack
Description:
H5Fis_hdf5 uses H5F_locate_signature to check if the file is hdf5.  If it does
not locate the signature, H5F_locate_signature would issue an error and return
HADDR_UNDEF.  H5Fis_hdf5 does not consider it an error if the signature is not
found, so it does not issue an error or clear the stack.  The filled stack could
then cause issues later on.

Changed H5F_locate_signature to return herr_t, not issue an error if the
signature is not found, and added a parameter for a pointer to the signature
address that the function fills in.

Tested: jam, koala, ostrich (h5committest)
2013-09-13 17:03:22 -05:00
Neil Fortner
309f3e7a23 [svn-r24139] Remove "will never be exectued" warnings in H5detect.c
Tested: jam, koala, ostrich (h5committest)
2013-09-13 16:49:39 -05:00
Allen Byrne
a8c63e28d5 [svn-r24138] Cast constants to specified type.
Cast smaller vars to larger type.
Cast calculation result to correct type.
Changed int member to hbool_t

Tested: local linux
2013-09-13 16:11:30 -05:00
Allen Byrne
3c021d3a77 [svn-r24137] Cast constants to specified type.
Cast smaller vars to larger type.
Cast calculation result to correct type.

Tested: local linux
2013-09-13 15:34:55 -05:00
Allen Byrne
f6949a66d7 [svn-r24136] Add base set of warnings for gcc 2013-09-13 14:22:57 -05:00
Allen Byrne
0682846479 [svn-r24128] Change option name for WDTP 2013-09-12 13:12:34 -05:00
Allen Byrne
d088d3285c [svn-r24127] Comment out bundle packing 2013-09-12 11:09:42 -05:00
Allen Byrne
9feb3e641d [svn-r24126] Correct mac pinifo.list vars 2013-09-12 10:13:37 -05:00
Allen Byrne
2465c432f0 [svn-r24124] HDFFV-8345: Changed usage txt to use dsetN instead ofletters for objects in examples.
Tested: local linux
2013-09-11 12:09:06 -05:00
Allen Byrne
175e82e484 [svn-r24120] HDFFV-8345: plugin test properly checks static-exec result to include test.
Tested: jam
2013-09-10 09:24:34 -05:00
Allen Byrne
b0d34310f5 [svn-r24119] Add new tests to memcheck ignore list 2013-09-10 08:59:22 -05:00
Allen Byrne
a1071ada16 [svn-r24118] Comment out test until configure sets conditional correctly 2013-09-09 17:43:57 -05:00
Allen Byrne
f79eac6049 [svn-r24116] Correct indentation and create single exit point.
Tested : local linux
2013-09-09 13:30:25 -05:00
Larry Knox
6b54dac504 [svn-r24115] Reduce warnings for conversions of different widths.
h5committested on jam, ostrich, koala, and platypus.
2013-09-06 17:48:28 -05:00
Larry Knox
2c6fc585fd [svn-r24114] Reverting the changes in r24113 for now because they break parallel make fortran. The changes aren't incorrect, but more work in needed on dependencies and also for enable-parallel.
Reverted to r24112.
2013-09-06 17:42:10 -05:00
Quincey Koziol
f825256c87 [svn-r24113] Description:
Reduce warnings w/gfortran in FORTRAN build by declaring interface for
utility test routines.

Tested on:
    Mac OSX/64 10.8.4 (amazon) w/gcc/g++/gfortran 4.8
2013-09-06 15:27:13 -05:00
Quincey Koziol
79c8e26fa7 [svn-r24111] Description:
Restrict GCC diagnostic pragmas to only gcc 4.6+

Tested on:
    Mac OSX/64 10.8.4 (amazon) w/gcc 4.8
2013-09-06 14:03:35 -05:00
Allen Byrne
2cb03fedde [svn-r24110] Add new h5repack info 2013-09-06 13:00:46 -05:00
Allen Byrne
8b4cf4c8cb [svn-r24109] Correct cygwin info 2013-09-06 12:59:07 -05:00
Allen Byrne
786526fd05 [svn-r24105] Correct filename extension 2013-09-06 10:35:00 -05:00
Allen Byrne
145f1ce9e3 [svn-r24104] HDFFV-8345: add User Defined filters to h5repack.
Reviewed in H5T-61

Tested: local linux - cmake and autotools
2013-09-06 10:15:50 -05:00
Allen Byrne
ddbc3c841c [svn-r24103] Force NO optimization of H5detect.c 2013-09-06 09:44:55 -05:00
Quincey Koziol
5b876c929f [svn-r24101] Description:
Clean up warnings, enable new compiler warning flag(s) and bring back
changes from Coverity branch:

r20813:
Remove the dead code as listed for coverity bug #1722. h5committested.

r20814:
Issue 69: Check return value and throw error if negative return. Also free datatype id on error

r20815:
Use HDstrncpy. --gh

r20816:
Replaced one last HDstrcat call with HDstrncat to resolve coverity issue 832.

r20817:
Use HDstrncpy and HDstrncat. --gh

r20818:
Purpose: Fix valgrind issues with h5jam

Description:
Modified h5jam to free strings strdup'd in parse_command_line before exit. Note
that they may still not be freed in case of error, due to the widespread use of
exit().

r20819:
Issue 80: change loop to use int as loop index.

r20820:
Maintenance: Fixed the bug found by coverity CID 788
There were two problems with this function:
    1) it tried to unnecessary free NULL pointer
    2) it tried to allocate c_name buffer that is done by H5Pget_class_name


Tested on:
    Mac OSX 10.8.4 (amazon) w/gcc 4.8.1, C++ & FORTRAN
    (too minor to require h5committest)
2013-09-05 15:44:14 -05:00
Raymond Lu
a1fe10691c [svn-r24098] Issue 8500 - H5detect.c has trouble to find info for long double with GCC 4.8. A user in the forum found the
problem in H5detect.c (uninitialized buffer) and provided the solution.  I checked it in yesterday.  But it 
turned out to be a false fix.  So I'm back it out.

Tested on jam - reverse of changes.
2013-09-04 17:09:23 -05:00
Allen Byrne
bf1c137c0c [svn-r24097] Correct indentation 2013-09-04 14:58:45 -05:00
Raymond Lu
d50c061d38 [svn-r24095] Issue 8500 - H5detect.c has trouble to find info for long double with GCC 4.8. A user in the forum found the
problem in H5detect.c (uninitialized buffer) and provided the solution.  Allen and I verified it.

Tested with h5committest and CMake on jam, koala, ostrich, playtus, and Allen's virtual machine.
2013-09-03 14:39:34 -05:00
HDF Tester
a4294ab3cc [svn-r24092] Snapshot version 1.9 release 163 2013-09-01 03:37:42 -05:00
Mohamad Chaarawi
a3e0aecb22 [svn-r24087] Rename the private H5RC (reference count) module to H5UC (Use Count).
This is needed to avoid a conflict with the Read Context object to be
introduced in another Project.

No impact on users, since this is a private module, and low for
developers as the RC module use is very sparse in the library.

Tested with h5committest.
2013-08-30 12:05:42 -05:00
Allen Byrne
7a0f38d807 [svn-r24078] Correct name of windows shared libraries 2013-08-27 09:19:11 -05:00
Larry Knox
d24404ae83 [svn-r24077] Updated -help output for compile scripts for changing default from -noshlib to -shlib when hdf5 is built without static libraries (--disable-static).
Tested with h5committest on jam, koala, ostrich and platypus.
2013-08-27 08:26:37 -05:00
Allen Byrne
0b572983e9 [svn-r24070] Fix typo in flags options 2013-08-26 10:02:13 -05:00
HDF Tester
ca60bda9fb [svn-r24068] Snapshot version 1.9 release 162 2013-08-25 03:44:51 -05:00
Allen Byrne
68dd16d8f0 [svn-r24066] Eliminate switch default warning by printing err message. 2013-08-23 15:02:32 -05:00
Allen Byrne
d2e10eefd7 [svn-r24058] Coorect usage text wrt dataset subsetting 2013-08-22 15:16:45 -05:00
Allen Byrne
e86655bbf4 [svn-r24057] Add --superblock long name to parser and add tests for both --boot-block and --superblock.
Tested: local linux
2013-08-22 14:57:31 -05:00
Allen Byrne
7e0bc29012 [svn-r24056] Move make_executable commands back from tests file 2013-08-22 13:41:25 -05:00
Allen Byrne
ff00749dfc [svn-r24055] Move make_executable commands back from tests file 2013-08-22 13:16:27 -05:00
Allen Byrne
13a0f5576a [svn-r24053] HDFFV-8498: --minimum option was disabled by HDFFV-8214. Reverted code change and changed default to 0 from 1024. Changed limit test to use h5dump to compare repacked file instead of h5diff.
Corrected test scripts for test folder path

Tested: h5committest and local linux with CMake
2013-08-21 17:11:32 -05:00
Allen Byrne
8c14af82c6 [svn-r24050] HDFFV-8498: --minimum option was disabled by HDFFV-8214. Reverted code change and changed default to 0 from 1024. Changed limit test to use h5dump to compare repacked file instead of h5diff.
Tested local linux with CMake
2013-08-21 15:59:49 -05:00
Allen Byrne
6bc36a0c46 [svn-r24046] HDFFV-8500: set h5detect compile optimization to -O0
will generate correct H5Tinit.c file.

Tested: local gcc 4.8.2 linux
2013-08-21 12:12:08 -05:00
Quincey Koziol
482a9c28e7 [svn-r24030] Description:
Clean up more compiler warnings.

Tested on:
    Mac OSX/64 10.8.4 (amazon) w/gcc, C++ & FORTRAN
    (too minor to require h5committest)
2013-08-19 17:13:15 -05:00
Allen Byrne
c502d81a8c [svn-r24029] Move TESTS to seperate file to allow easier editing by all developers.
Tested: local linux
2013-08-19 16:49:44 -05:00
Mohamad Chaarawi
fcb21bb3dd [svn-r24027] merge r 23938 from reduce warnings branch into trunk.
This is the fix for "switch missing default case" warnings in src.
Mohamad & Vailin worked on this patch.
2013-08-19 16:36:03 -05:00
Allen Byrne
b503983d85 [svn-r24023] Added tests to CMakeLists.txt that were only added to the *nix script.
Tested: local linux
2013-08-19 11:26:14 -05:00
Allen Byrne
28c2f17960 [svn-r24022] any_object option should be any_path 2013-08-19 11:02:29 -05:00
Quincey Koziol
308c378ccd [svn-r24020] Description:
Clean up compiler warnings

Tested on:
    Mac OSX/64 10.8.4 (amazon) w/C++ & FORTRAN
    (too minor to require h5committest)
2013-08-17 15:05:27 -05:00
Albert Cheng
d663d78cd2 [svn-r24017] Bug fix: HDFFV-8500
The new gcc v4.8.* compilers does not work well with dt_arith which failed
in production mode.

Solution:
A temporary patch by removing any optimization (-O*) from the PROD_CFLAGS
so that dt_arith will pass for now.  A more through investigation is needed.

Tested: Jam and Koala where it failed and now passes.
2013-08-16 18:14:23 -05:00
Vailin Choi
170b7275c0 [svn-r24015] A bug fix when merging changes from the trunk to 1.8 for h5stat bug fix HDFFV-1238:
Fix a problem when using opt_arg that is NULL for the new options added: -l N, -m N, -a N.
h5committested.
2013-08-16 14:36:32 -05:00
Quincey Koziol
453f95c192 [svn-r24011] Description:
Clean up a few warnings

Tested on:
    Mac OSX 10.8.4 (amazon) w/C++ & FORTRAN
    (too minor to require h5committest)
2013-08-15 08:24:28 -05:00
Allen Byrne
b6f7e6e79c [svn-r24007] Update configure to support 64-bit cygwin
Tested: cygwin
2013-08-13 15:29:09 -05:00
Allen Byrne
af92c5f1e0 [svn-r24005] Remove check for GetConsoleScreenBuffer in CYGWIN (false positive). 2013-08-13 14:01:21 -05:00
Allen Byrne
33d5f5d1e8 [svn-r24004] HDFFV-8319 and -8321: Cleanup autotools code.
Also remove GetConsoleScreenInfo check from cygwin configure.

Tested: h5committest
2013-08-13 12:53:23 -05:00
Allen Byrne
8b2f7c2183 [svn-r24003] Remove check for GetConsoleScreenBuffer in CYGWIN (false positive).
Updated CDash site name in cmake script.
2013-08-13 12:50:56 -05:00
Allen Byrne
e8d0919d43 [svn-r24002] Fix 32-bit and valgrind issues with new handle_paths code - correct math of adding a NULL to a string.
Tested: local linux (valgrind) and h5committest
2013-08-13 12:48:57 -05:00
Allen Byrne
4935d0bfab [svn-r23999] Move declaration to top of block - fix for windows. 2013-08-13 08:44:24 -05:00
Allen Byrne
5d0b400f69 [svn-r23996] HDFFV-7989: Add any_path option to search the file for paths. New test added, scripts updated, help text updated.
Tested: local linux
2013-08-12 16:58:31 -05:00
Allen Byrne
a3204d77e7 [svn-r23994] Correct printf % handling 2013-08-12 15:53:54 -05:00
Allen Byrne
f801cf4618 [svn-r23991] Reorder grouping 2013-08-12 14:52:09 -05:00
HDF Tester
407d3db6a4 [svn-r23989] Snapshot version 1.9 release 161 2013-08-11 03:37:02 -05:00
Quincey Koziol
5c3bd21963 [svn-r23988] Description:
Make compiler happier and issue less warnings.

Tested on:
	Mac OSX/64 10.8.4 (amazon) w/gcc 4.8
2013-08-10 13:20:38 -05:00
Neil Fortner
825fe56892 [svn-r23987] Merge r23939 from reduce_warning branch to trunk
Tested: jam, koala, ostrich (h5committest)

Log from r23939:
Fix unused variables warnings in trunk
Rename static functions in H5Adense.c, H5B2cache.c, H5Bcache.c
Switch these functions to use FUNC_ENTER_STATIC* macros

Tested: koala
2013-08-09 16:59:14 -05:00
Peter Cao
ef73979a41 [svn-r23986] merge warning fixes from Jonathan and Peter 2013-08-09 16:34:58 -05:00
Jerome Soumagne
345e57b0b1 [svn-r23985] Merge commit 23937 from reduce_warning branch
Remove unused param (src) and unused var (hl) warnings

Tested on koala
2013-08-09 16:06:46 -05:00
Larry Knox
5dcd9c2dfc [svn-r23984] Merged 2 23932 from reduced_warnings branch:
Changes applied to eliminate several compiler warnings in the test directory in
files:
dt_arith.c
filter_fail.c
big.c
dynlib2.c
dynlib3.c
Also an HDassert(0 && "Unknown type"); statement was added to all 29 combination
s of
case OTHER:
default:
See crucible review HDF5-145 for more details.

Tested with h5committest.
2013-08-09 15:42:27 -05:00
Allen Byrne
b5ad01c7e1 [svn-r23980] Add "_" to VS define. 2013-08-09 13:52:45 -05:00
Allen Byrne
f1bb1129f3 [svn-r23979] Correct Packaging var names. 2013-08-09 09:55:22 -05:00
Allen Byrne
111a57ca26 [svn-r23978] Add Bundle and plist file. Update script file add icon 2013-08-08 16:25:32 -05:00
Vailin Choi
bdeb1f6c43 [svn-r23977] Update MANIFEST for previous checkin #23976.
h5committested.
2013-08-08 16:04:52 -05:00
Vailin Choi
f09101079e [svn-r23976] The following files were missing from previous checkin rev #23975 for bug HDFFV-1238.
h5committested.
2013-08-08 14:19:03 -05:00
Vailin Choi
c902bbdd90 [svn-r23975] This checkin contains--
A) Fix for HDFFV-1238:
   --Add 3 new options to allow users in setting threshold for small groups/datasets/attributes (tools/h5stat/h5stat.c)
   --Generate new test file for testing the new options (tools/h5stat/h5stat_gentest.c)
   --Add tests for the new options (tools/h5stat/testh5stat.sh.in)
   --Update expected output files (tools/h5stat/testfiles/*.ddl)
B) Fix a bug in determining maximum dimension size for 1-D dataset in dataset_stats() (tools/h5stat/h5stat.c)
2013-08-08 12:24:43 -05:00
HDF Tester
f1b5d46cd0 [svn-r23968] Snapshot version 1.9 release 160 2013-08-04 03:35:17 -05:00
Larry Knox
bf9b274e27 [svn-r23964] Corrected "continuous" layout to "contiguous in h5repack -h output and comment.
Jira issue HDFFV-8493.

No test - text only change.
2013-08-02 16:23:39 -05:00
Allen Byrne
7a96201ee1 [svn-r23960] HDFFV-8490: Reorder and group h5dump help text.
Tested: local linux
2013-08-01 09:42:30 -05:00
Allen Byrne
4e1695576c [svn-r23953] Update stream handling to allow binary mode - due to unjam fix.
Tested: local linux
2013-07-31 11:22:40 -05:00
Allen Byrne
ba181d404d [svn-r23952] Update unjam file handling to eliminate infinite loops and use binary mode.
Tested: windows
2013-07-31 11:10:33 -05:00
Peter Cao
5b6ae0b603 [svn-r23945] fixed HDFFV-8306
using file stream for output data
2013-07-30 14:23:24 -05:00
Allen Byrne
ad7624ada3 [svn-r23944] Move stream functions into tools lib.
Tested: local linux
2013-07-30 12:04:23 -05:00
Neil Fortner
cd7ba8ad55 [svn-r23939] Fix unused variables warnings in trunk
Rename static functions in H5Adense.c, H5B2cache.c, H5Bcache.c
Switch these functions to use FUNC_ENTER_STATIC* macros

Tested: koala
2013-07-26 17:14:03 -05:00
Mohamad Chaarawi
69e501fc70 [svn-r23938] remove "switch missing default case" in src. 2013-07-26 12:28:26 -05:00
Jerome Soumagne
cb41664db2 [svn-r23937] Remove unused param / var warnings and fix H5HF_sect_single_dblock_info prototype 2013-07-26 12:05:38 -05:00
Larry Knox
a195bb78b9 [svn-r23932] Changes applied to eliminate several compiler warnings in the test directory in files:
dt_arith.c
filter_fail.c
big.c
dynlib2.c
dynlib3.c
Also an HDassert(0 && "Unknown type"); statement was added to all 29 combinations of
case OTHER:
default:
See crucible review HDF5-145 for more details.
2013-07-24 15:22:14 -05:00
HDF Tester
f26b04712e [svn-r23926] Snapshot version 1.9 release 159 2013-07-21 03:38:01 -05:00
Albert Cheng
2f8642a903 [svn-r23925] Updated with fix for HDFFV-8392.
Plus some indentation cleanup on other entries.
2013-07-19 17:10:13 -05:00
Albert Cheng
3a316cfc63 [svn-r23917] Bug fix: HDFFV-8392
tools/h5diff/testh5diff.sh is run in every "make check", even after it
has passed in the previous run.
The error was in the previous change made to Makefile.am
when testh5diff.sh.in was created.  The mistake was in the
SCRIPT_DEPEND=h5diff$(EXEEXT) $(H5PDIFF) $(srcdir)/testh5diff.sh
$(srcdir)/testh5diff.sh no longer existed. It is now generated in the
current built directory from $(srcdir)/testh5diff.sh.in (which configure
takes care of).

I updated the dependance to
SCRIPT_DEPEND=h5diff$(EXEEXT) $(H5PDIFF) testh5diff.sh
and that fixes the error.

Reviewed: HDF5-149

Tested: h5committested.
2013-07-18 00:12:27 -05:00
Allen Byrne
0bdce69c79 [svn-r23905] Alter option name to avoid conflict with WDTP 2013-07-16 08:48:45 -05:00
Allen Byrne
6d4656f116 [svn-r23899] Change name to avoid conflicts in WDTP 2013-07-15 13:29:49 -05:00
HDF Tester
4e12ec74ae [svn-r23895] Snapshot version 1.9 release 158 2013-07-14 03:31:23 -05:00
Quincey Koziol
25fe312b3c [svn-r23889] Description:
Merge changes from Coverity branch to trunk:

r20768:
Switch to snprintf, HDstrncat, HDstrncpy to address coverity issue 832.

r20812:
Use HDstrncpy. --gh

Tested on:
    Mac OSX/64 10.8.4 (amazon) w/debug
    Linux/32 2.4 (jam) w/debug
2013-07-11 17:33:35 -05:00
Frank Baker
ba44b1ae08 [svn-r23883] Description:
Add comment referring users to information regarding 
        SZIP copyright and license terms.
    -- Addresses HDFFV-300.
2013-07-09 16:00:53 -05:00
Allen Byrne
5c1ee8c836 [svn-r23882] Correct typo 2013-07-09 15:47:16 -05:00
Allen Byrne
e266d672e7 [svn-r23880] Update Windows and VMs for next release 2013-07-09 15:44:24 -05:00
Neil Fortner
70de2942b2 [svn-r23879] Add note to RELEASE.txt for r23859
Tested: kate
2013-07-09 14:58:35 -05:00
Allen Byrne
2efbc227cd [svn-r23875] HDFFV-8322: free allocation before throwing exception.
Tested: local linux
2013-07-09 08:36:26 -05:00
Allen Byrne
7cdea30a3a [svn-r23870] Correct name of file reference 2013-07-08 11:28:48 -05:00
HDF Tester
3cb8efae13 [svn-r23865] Snapshot version 1.9 release 157 2013-07-07 03:33:31 -05:00
Jonathan Kim
dad8a4ddef [svn-r23863] Remove compile warnings due to missing switch defaults 2013-07-03 17:33:25 -05:00
Mohamad Chaarawi
dfcb3cebf1 [svn-r23862] Change printfs in perform output and h5dump to prevent overflow.
This fixes: https://jira.hdfgroup.uiuc.edu/browse/HDFFV-8450

Tested on Jam.
2013-07-03 11:12:32 -05:00
Allen Byrne
6da129cef0 [svn-r23861] HDFFV-8322: Mismatched free() / delete / delete [] for cpp_testhdf5
Tested:" local linux
2013-07-03 09:58:09 -05:00
Allen Byrne
a0ccc0f0fa [svn-r23860] HDFFV-8322: reduce valgrind memory leaks for ex_image2
Tested:" local linux
2013-07-03 09:34:12 -05:00
Neil Fortner
259abfa839 [svn-r23859] Add const tag to source buffers for H5Dscatter and H5Dgather.
Tested: ummon
2013-07-02 16:17:16 -05:00
Allen Byrne
53afd20aeb [svn-r23854] HDFFV-8302: Add macros/code function to use coorect Windows (v)snprintf statement. Also fix use other uses of macros for windows.
Tested
2013-07-01 09:23:04 -05:00
HDF Tester
a157eb2f68 [svn-r23849] Snapshot version 1.9 release 156 2013-06-30 03:35:12 -05:00
Allen Byrne
1b6d1ca4f0 [svn-r23845] HDFFV-8394: Add Optional Examples source packaging option.
Tested: local linux
2013-06-28 10:37:41 -05:00
Allen Byrne
a4dc3ff34d [svn-r23830] HDFFV-8476: Add the optional arg to the help usage text.
Tested: local linux
2013-06-26 16:28:13 -05:00
Allen Byrne
308106c0e9 [svn-r23829] HDFFV-8134: allow exclusion of attributes. This implements the technique and creates a test. Help changes will be added after trunk tests pass the test cycle.
Tested: local linux
2013-06-26 16:04:20 -05:00
Albert Cheng
c2750822ff [svn-r23825] Bug HDFFV-8469: C++ comments in C code.
Found and removed two more "//" comments.

Tested: in Koala by
$ env CFLAGS="-ansi" ../hdf5/bin/buildhdf5 -fortran -cxx -config # enable fortran and cxx, configure only
$ make AM_CFLAGS=-ansi # compile all source file by setting HDF5 build CFLAGS as "-ansi" only
2013-06-26 01:25:44 -05:00
Allen Byrne
cf5071ad05 [svn-r23824] Remove unused warnings option 2013-06-25 13:48:49 -05:00
Allen Byrne
dc2de300b4 [svn-r23823] HDFFV-8428: Correct docs install list
HDFFV-8427: Add options to the help text of ALLOW_EXTERNAL_LIBS option.
2013-06-25 12:44:09 -05:00
Allen Byrne
a8b44cd899 [svn-r23821] HDFFV-8428: Corrected FAQ reference 2013-06-25 11:10:56 -05:00
Allen Byrne
dd89c8e90f [svn-r23819] Change name of generated file in test to use the macro based removal line.
Tested: local linux
2013-06-25 09:06:28 -05:00
Allen Byrne
e3a1fa7e57 [svn-r23813] Added the HD prefix to the system functions used in the file.
Tested: local linux
2013-06-24 15:03:54 -05:00
Allen Byrne
a8c227e175 [svn-r23812] Added the HD prefix to the system functions used in the links.c file.
Tested: local linux
2013-06-24 15:02:42 -05:00
Allen Byrne
66490d45e1 [svn-r23811] Remove unused label 2013-06-24 15:01:24 -05:00
Mohamad Chaarawi
1e38ef6718 [svn-r23810] revert printf format changes to do a better solution. 2013-06-24 13:16:58 -05:00
HDF Tester
6fedfb6124 [svn-r23806] Snapshot version 1.9 release 155 2013-06-23 03:36:24 -05:00
Mohamad Chaarawi
148fc61872 [svn-r23801] Change printfs in perform output for long long to use %lld instead of %Hd. The later is for shorts.
This fixes: https://jira.hdfgroup.uiuc.edu/browse/HDFFV-8450

Tested on Jam.
2013-06-20 17:21:42 -05:00
Allen Byrne
125e2a0a9d [svn-r23800] Added the HD prefix to the system functions used in the h5tools_str_replace function. 2013-06-20 17:02:17 -05:00
Allen Byrne
e71411f9cf [svn-r23799] HDFFV-8455: moved h5dump in order of subdirs under tools to in front of h5import.
Tested local linux: h5dump executed before h5import
2013-06-20 13:10:07 -05:00
Allen Byrne
74384b3c19 [svn-r23798] HDFFV-8465: dtd reference incorrect. Fixed loading of xml files with respect to XSD file.
Tested: local linux
2013-06-20 12:39:49 -05:00
Allen Byrne
60cce86d0e [svn-r23796] remove commented line with c++ style 2013-06-20 10:06:14 -05:00
Allen Byrne
8ae76fa4b8 [svn-r23793] Correct logic for packaging cygwin release docs 2013-06-19 12:48:44 -05:00
Allen Byrne
8f9fb4a106 [svn-r23789] Remove COMPILE_FLAGS value - already set in X_FLAGS 2013-06-17 11:43:33 -05:00
Allen Byrne
47190b32e5 [svn-r23786] Remove COMPILE_FLAGS value - already set in X_FLAGS
Tested: windows
2013-06-17 11:28:47 -05:00
Allen Byrne
6c3284f8b3 [svn-r23784] Remove ignored FLAGS from MSVC variant of C compile/link. Incorrect copy from Fortran macro 2013-06-17 09:13:30 -05:00
HDF Tester
bdbd06d85d [svn-r23778] Snapshot version 1.9 release 154 2013-06-16 03:34:51 -05:00
Allen Byrne
e35d1e08f3 [svn-r23763] Fix missing command
Tested: local linux
2013-06-13 08:22:43 -05:00
Allen Byrne
93ec8e0821 [svn-r23762] Change warning flag groups to match list of gcc 4.7 from the config/gnu-flags file. 2013-06-12 15:55:38 -05:00
Allen Byrne
c7e81f4894 [svn-r23759] HDFFV-8451/8453: add options to enable more warning messages.
MS VS compiler levels added to warning options.
2013-06-12 10:28:26 -05:00
Allen Byrne
26ef64312a [svn-r23754] HDFFV-8451/8453: add options to enable more warning messages.
Tested: local linux
2013-06-11 14:05:36 -05:00
Allen Byrne
6ca79dd149 [svn-r23753] HDFFV-8461: Add Windows /MT support
This adds the UserMacros.cmake Windows /MT support file.

Tested: local linux
2013-06-11 14:03:34 -05:00
Allen Byrne
f4a3f6412b [svn-r23751] Enable all warnings (do not filter warnings) 2013-06-11 10:10:18 -05:00
Allen Byrne
8f0c245f72 [svn-r23748] HDFFV-8461: Add Windows /MT support
This adds the UserMacros.cmake support needed.
Correct Properties tag name
2013-06-10 15:39:00 -05:00
Allen Byrne
7e2733da8c [svn-r23746] Correct Windows setting after tests on windows 2013-06-10 14:23:27 -05:00
Allen Byrne
feb14ea872 [svn-r23745] HDFFV-8461: Add Windows /MT support
This adds the UserMacros.cmake support needed.
2013-06-10 12:46:48 -05:00
Allen Byrne
001f6a53bf [svn-r23744] HDFFV-8468: Remove conversion tests which generate access violations on Windows 8 64 2013-06-10 12:41:33 -05:00
HDF Tester
70d440330d [svn-r23741] Snapshot version 1.9 release 153 2013-06-09 03:39:22 -05:00
Allen Byrne
f0a9b781f3 [svn-r23740] HDFFV-8447: subsetting broke data output file option.
Reviewed in H5T-59, tested local linux
2013-06-07 13:39:54 -05:00
Allen Byrne
a6d8395557 [svn-r23737] HDFFV-8434: Use lowecase for whether in confiure.ac
Trival change
2013-06-05 13:26:35 -05:00
Allen Byrne
06d9eb3c63 [svn-r23736] HDFFV-8437: CMake so version numbering - changed order of values to match libtool values.
Tested: local linux
2013-06-05 13:14:45 -05:00
Allen Byrne
10108d7e30 [svn-r23735] HDFFV-8445: unregonized character warning solved by changing '\/' to '\\'.
Tested: Windows
2013-06-05 12:55:09 -05:00
Allen Byrne
fab67b684e [svn-r23733] HDFFV-8366: Patches tested by Larry using h5committest, it creates the intermediate testfiles folder first. 2013-06-05 08:36:45 -05:00
HDF Tester
177a90f97a [svn-r23718] Snapshot version 1.9 release 152 2013-05-26 03:56:00 -05:00
Quincey Koziol
33bd53a7eb [svn-r23717] Description:
Fix return value from FAIL to NULL, to match the routines type.

Tested on:
    Mac OSX/64 10.8.3 (amazon)
2013-05-23 13:24:57 -05:00
Joel Plutchak
8cc6ceb4e3 [svn-r23715] Bug Fix: HDFFV-8247
Description:
  Failure to write fill values to the user's buffer when reading unallocated
  chunks from datasets that have a fill value set to H5D_FILL_VALUE_DEFAULT.
  A consequence of this was the reporting of spurious data values in h5dump
  and h5diff output.

Solution:
  Added check for fill value of H5D_FILL_VALUE_DEFAULT whenever fill value 
  setting was checked to decide whether or not to fill. This effectively
  treats H5D_FILL_VALUE_DEFAULT the same as H5D_FILL_VALUE_USER rather than
  H5D_FILL_VALUE_UNDEFINED.

Tested:
   h5committest (platypus, ostrich, jam-pp, koala) ran successfully
   (fillval test was modified to reveal and check for this error)

Note: RELEASE.txt was previously changed to reflect this fix. This
checkin was of a cleaner version of the code, but mostly to get this
full log message entered.


-This line, and those below, will be ignored--

M    H5Dchunk.c
2013-05-22 15:52:34 -05:00
Quincey Koziol
424a41f878 [svn-r23713] Description:
Clean up warnings, switch library code to use Standard C/POSIX wrapper
macros, remove internal calls to API routines, update checkapi and checkposix
scripts.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
    Big-Endian Linux/64 (ostrich)
2013-05-21 12:30:54 -05:00
Raymond Lu
7a3f473c04 [svn-r23710] I added H5Pencdec.c to make.com. I added
H5_HAVE_DIRENT_H
  H5_HAVE_LIBDL
  H5_HAVE_SETJMP
to h5pubconf.h.

Not tested yet.
2013-05-20 15:48:18 -05:00
HDF Tester
c09748b14e [svn-r23708] Snapshot version 1.9 release 151 2013-05-19 03:39:09 -05:00
Allen Byrne
b0235a2610 [svn-r23707] Vagrind memleak: bufferes only cleaned up if there was an error. 2013-05-15 08:38:41 -05:00
Quincey Koziol
7922ae388e [svn-r23698] Description:
Revert r23695, which breaks big-endian tests on ostrich, etc.  Will
investigate and submit correction later.

Tested on:
    BE & LE Linux systems (ostrich, koala, jam, emu)
2013-05-13 13:16:01 -05:00
Quincey Koziol
d38fe20df6 [svn-r23695] Description:
Clean up warnings in H5Tconv.c (down to _only_ 9000 lines of output now!)

    Merge changes from Coverity branch back to trunk:

r20684:
Fix for coverity bug #1721 which was due to the fix for coverity bug #943.

r20685:
Use HDstrncpy. --gh

r20761:
Purpose: Fix valgrind issues

Description:
Free image_data and data as appropriate in test_image.

r20762:
Purpose: Fix coverity issue 600

Description:
Add check for return value of H5O_close in H5Ocopy.  Also cleaned up various
warnings.

r20763:
Purpose: Fix valgrind issues with h5stat

Description:
Modified h5stat to free "iter" before exit, and free "hand" before exit if
parse_command_line exits directly.

r20764:
fixed coverity issues:
69, 327, 614, 684, 685, 696, 697, 1681, 967, 826, 660, 80

r20765:
Fixed coverity bug 668

Pulled x * y * z multiply out of malloc operand into a separate n_elements variable to quiet integer overflow warning.

No actual integer overflow tests are performed since it's just a test program but I did add a check that n_elements is >= 1.

I also changed an error condition from doing its own close and returning -1 to "goto out;" like the rest of the program.

r20766:
Fixed coverity bug 667

Pulled x * y * z multiply out of malloc operand into a separate n_elements variable to quiet integer overflow warning.

No actual integer overflow tests are performed since it's just a test program.


Tested on:
    Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
    (h5committest upcoming)
2013-05-11 10:59:48 -05:00
Allen Byrne
5ecebe5b9b [svn-r23692] Remove INSTALL_VMS file.
Added if block around INSTALL files
2013-05-09 13:07:36 -05:00
Allen Byrne
fb396557fc [svn-r23691] Fix valgrind leak by closing fapl
Tested: local linux
2013-05-09 09:56:18 -05:00
Raymond Lu
90ccb5c3c3 [svn-r23685] Issue 8380 H5Zunregister caused seg fault. I simplied the iteration process over datasets, groups, and files as Quincey suggested. I also removed H5I_search that I introduced in last commit but didn't actually used it.
Tested on jam and koala - simple change.
2013-05-08 11:36:58 -05:00
Raymond Lu
8ec42ced80 [svn-r23675] Issue 8380 - H5Zunregister caused seg fault. This is the followup commit. Quincey
reviewed my previous commit and suggested me to use H5I_iterate to iterate through
all opened objects in H5Z_unregister.  I changed it in this commit.

Tested with h5committest.
2013-05-06 15:51:26 -05:00
HDF Tester
8f3aee85de [svn-r23669] Snapshot version 1.9 release 150 2013-05-05 03:32:05 -05:00
Joel Plutchak
99e1300a0f [svn-r23668] Added fix report for Jira issue HDFFV-8247, and removed it from
the "Known Problem" section.
2013-05-03 14:23:50 -05:00
Joel Plutchak
30f904dbe9 [svn-r23667] Removed H5E call. 2013-05-03 10:39:44 -05:00
Joel Plutchak
62f6b579d0 [svn-r23666] Fix for fill value problem for chunked files with mixed allocated/unallocated chunks. 2013-05-02 14:20:14 -05:00
Joel Plutchak
7d205bba0a [svn-r23665] Added test cases to expose potential fill value issues. 2013-05-02 14:19:06 -05:00
Albert Cheng
7d0aded13a [svn-r23662] Bug fix: HDFFV-8236
Some files are not distributed when release tarball is created by bin/release
according to MANIFEST.  But --enable-build-all compiles them in test/.

Solution:
Distributed those missing files for now.  Need to resolve if these files
should be distributed or not.  And if not, fix --enable-build-all NOT to
compile them.

Tested: use bin/release to generate the tarball and run --enable-build-all with
it. Error is gone and all passed.
2013-05-02 07:50:08 -05:00
Raymond Lu
bada3f7a86 [svn-r23656] Issue 8380 H5Zunregister caused seg fault: I added some protection measures:
1. If any opened object uses the filter, let it fail.
  2. Flush all opened files to push any cached data to files.

Tested with h5committest.
2013-04-29 14:23:04 -05:00
Allen Byrne
029e143471 [svn-r23651] Add MPI configuration information to includes and libs 2013-04-29 10:12:47 -05:00
Allen Byrne
3c79c08dbe [svn-r23649] Correct file reference in pack list
Rename and update CMake docs.
2013-04-29 09:18:34 -05:00
HDF Tester
1f09e9d19e [svn-r23642] Snapshot version 1.9 release 149 2013-04-28 03:37:26 -05:00
Albert Cheng
613c5e8046 [svn-r23638] Removed INSTALL_MinGW because,
1. The file states that:
NOTE:
We are no longer actively supporting MinGW as of 1.8.5.
2. It is not tested for v1.8.11.
3. If we ever supports it again, it can be "restored" from previous
release (e.g. v1.8.10).)
2013-04-26 18:02:57 -05:00
Albert Cheng
357424423c [svn-r23618] Bug fix: HDFFV-8390
Threadsafe works in v1.8.10 release. But it fails v1.8.11-pre1 tarball in
configure stage now. There was a typo in the configure around the checking
of pthread library.  Fixed it.

Tested: AIX and also h5committested.
2013-04-24 13:27:04 -05:00
Allen Byrne
ed5a2bc1c1 [svn-r23614] Remove subfolders for includes 2013-04-23 12:50:15 -05:00
Albert Cheng
00648b6875 [svn-r23607] Purpose:
Daily test failed in koala with parallel and v16compat API from the previous
commit r22735.

Descriptoin:
    Changed to use H5Dopen2() instead of H5Dopen().

Tested: koala --enable-parallel --with-default-api-version=v16.
No h5committest test since this is limited to parallel test program.
2013-04-22 13:44:17 -05:00
Quincey Koziol
5acd9c4053 [svn-r23597] Description:
Bring r20683 from Coverity branch back to trunk:

Isues 1309-1333: Changed strcpy/strcat to strncpy/strncat with maximum size expected.

Tested on:
    Max OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
2013-04-17 07:49:56 -05:00
Raymond Lu
e112a68bf8 [svn-r23590] I added SunOS 5.11 (emu) as a newly supported system. 2013-04-15 11:12:13 -05:00
Scot Breitenfeld
c61fb7260a [svn-r23585] changed the integer kind in the enum to satisfy g95.
Tested: jam (g95, gfortran)
2013-04-14 16:19:40 -05:00
Quincey Koziol
608559dead [svn-r23584] Description:
Update with new compiler warnings for gcc 4.8.x

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/gcc 4.8.0
2013-04-13 18:18:05 -05:00
Raymond Lu
523675b2c1 [svn-r23580] I updated the compiler info, system info, and HDF5 support table of fred, emu, and ostrich.
No test is needed.
2013-04-12 14:48:07 -05:00
Scot Breitenfeld
337242feea [svn-r23576] added missing argument in check call.
tested: jam (g95,gcc))
2013-04-11 14:40:57 -05:00
Dana Robinson
dd577725d1 [svn-r23572] Removed inappropriate executable properties from a few files. These are
often added by Windows text editors.

Tested on: jam (just tested to make sure it builds - no code changes)
2013-04-10 11:49:28 -05:00
Raymond Lu
3e841b44be [svn-r23561] I added the info about dynamically loaded filter. 2013-04-08 11:22:00 -05:00
Albert Cheng
6b00c16d2a [svn-r23555] Bug fix: HDFFV-8358
The previous change set exec_prefix, libdir and includedir to actual values.
That removed the option for user to hand edit just the first prefix=...
to make "everything" to work.
Changed h5redeploy to do this by default:
## Installation directories:						  ##
## prefix	architecture-independent files.				  ##
## exec_prefix	architecture-dependent files, default is <prefix>.	  ##
## libdir	libraries, default is <exec_prefix>/lib.		  ##
## includedir	header files, default is <prefix/include>.		  ##
############################################################################
This allows users to just change the first line of prefix=<...> and the
effect will change libdir and includedir too.

This was also try to accommodate the -prefix option of h5XX. Unfortunately,
after changing h5redeploy, I found out the h5XX code to support -prefix
actually does not provide the stated efffect. This will be fixed in the
release.

Tested: h5committested plus hand test.
2013-04-05 13:29:46 -05:00
Joel Plutchak
a99e92e6a4 [svn-r23554] Added HDFFV-8247 to the Known Problems section. 2013-04-05 12:37:55 -05:00
Quincey Koziol
8277409a9b [svn-r23549] Description:
More misc. cleanups, but main change is to make an "extern" header file
for the plugin interface.

Tested on:
    Mac OSX/64 10.8.3 (amazon)
2013-04-04 15:57:59 -05:00
Allen Byrne
70e0f8e200 [svn-r23548] Fix typo in macro end macro
Warning only.
2013-04-04 11:35:22 -05:00
Allen Byrne
12616e370c [svn-r23547] Windows plugins will always be "dll"'s.
CMake also uses ";" as a separator - escape it

Tested: windows
2013-04-04 10:41:15 -05:00
Allen Byrne
a259cbdda7 [svn-r23546] Correct typo 2013-04-04 10:04:16 -05:00
Quincey Koziol
46342f6398 [svn-r23544] Description:
Correct API version mistake w/H5Acreate -> H5Acreate2

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/parallel
2013-04-04 08:30:45 -05:00
Quincey Koziol
9ab7c47000 [svn-r23543] Description:
Bring r23542 from desy_1_8 branch to trunk:

    Further revisions to dynamic library loading code, to clean it up.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/parallel
2013-04-04 08:29:14 -05:00
Raymond Lu
68b0945687 [svn-r23540] I took out the "const" symbol from H5PL_get_plugin_type and H5PL_get_plugin_info functions.
Tested on jam - simple change.
2013-04-03 15:53:13 -05:00
Allen Byrne
f2e9f4e8c6 [svn-r23538] Correct incorrect unset var name 2013-04-03 15:47:37 -05:00
Raymond Lu
86c0d2aa05 [svn-r23536] I corrected the copyright information and added some comment in H5Pocpl.c.
Tested on jam - no code change.
2013-04-03 14:15:13 -05:00
Raymond Lu
97caaff719 [svn-r23533] I changed the operation in dynlib2.c from math operations pow and sqrt to simpler multiplication and division
to avoid potential rounding problem in math operations.

Tested on jam - simple change.
2013-04-03 11:30:46 -05:00
Allen Byrne
f03301ce82 [svn-r23530] Moved test property into test macro.
Tested: local linux
2013-04-03 10:08:52 -05:00
Quincey Koziol
b4331b2ff3 [svn-r23529] Description:
Stop aliasing property to indicate internal collective metadata operations
with property to perform collective raw data operations from the application.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/paralllel
2013-04-02 21:50:50 -05:00
Larry Knox
0b16cecb99 [svn-r23527] Revised usage to reflect change to use -shlib as default when no static libraries were built.
No test - text only revision of compile scripts.
2013-04-02 17:54:20 -05:00
Albert Cheng
7ee9828c26 [svn-r23526] Bug fix: Mac system has dynamic library name in the form of libxyz.dylib. Changed test_plugin.in
to copy library file names in the form of libdynlib{123].*.

Another problem: Even when copy failed in copying the libray files (was in the form of *.so*),
the test still passed.  That was because .libs was included in $HDF5_PLUGIN_PATH and the needed
plug in libraries were generated there.
Fixed by copying the plug in library files to separate directories and seetup HDF5_PLUGIN_PATH
to include them but NOT .libs.

Tested: used desycommittest (duck, emu, jam, koala, ostrich) plus cmakehdf5 in jam.
The cmakehdf5 in jam reported a failure in 
Test #594: H5REPART-h5repart_test ....................................***Failed
Since this failure could not be caused by my change in test_plugin.sh, I reported it to Allen
and proceed to check this in.
2013-04-02 16:26:14 -05:00
Allen Byrne
26785f6af5 [svn-r23524] Use two plugin folders for testing plugin Path 2013-04-02 14:12:06 -05:00
Allen Byrne
91831f41ad [svn-r23520] Add new plugin library to build list for test.
Tested: local linux, windows
2013-04-02 11:27:46 -05:00
Raymond Lu
b8c258a970 [svn-r23519] I used H5Gcreate instead of H5Gcreate2 in plugin.c. I corrected it and added some real operation in the dummy filter library dynlib3.c.
Tested on jam and koala.
2013-04-02 11:12:20 -05:00
Albert Cheng
fc4c7a05f6 [svn-r23517] Rewrirte part of the script that copy the libdynlib libraries and check
for result.

h5committested. (Cmake in Duck has errors but the error are not related to
this change.
2013-04-02 00:07:20 -05:00
Scot Breitenfeld
1b6963230b [svn-r23516] Updated documentation. 2013-04-01 19:58:44 -05:00
Raymond Lu
46b63fe7d8 [svn-r23515] I added test/dynlib3.c. 2013-04-01 18:38:40 -05:00
Raymond Lu
075334af96 [svn-r23514] I forgot to add the new file dynlib3.c in last commit. 2013-04-01 18:30:08 -05:00
Raymond Lu
72e84fcd82 [svn-r23513] I added a test case in plugin.c for testing using filter for groups and created a dummy filter library for this test case.
Tested on jam and koala.
2013-04-01 18:28:48 -05:00
Larry Knox
e679eed61b [svn-r23511] Replaced install-data-local with install-exec-hook in test/Makefile.am.
tested with h5committest
2013-04-01 17:45:02 -05:00
Dana Robinson
47a25f0d0c [svn-r23509] Duplicated Bin-Minh's changes in the 1.8 branch (r23503) that
delete the removed multi dxpl function names from the class.

Tested on: jam w/ fortran & C++

I did not test on other platforms (h5committest) since there is nothing
even remotely platform-specific here.
2013-04-01 14:05:15 -05:00
Dana Robinson
581f5fc68d [svn-r23508] Removed some dead code that belonged to the multi dxpl functions that
were removed in HDF5 1.8.11.

Tested on: jam w/ fortran & C++, tested with check-vfd

I did not test on other platforms (h5committest) since there is nothing
even remotely platform-specific here.
2013-04-01 13:54:18 -05:00
Scot Breitenfeld
cc3fdd8ba4 [svn-r23505] reverted FFLAGS bug fix.
Tested: jam (intel)
2013-03-31 21:03:05 -05:00
Albert Cheng
913b88d15b [svn-r23497] Bug fix: HDFFV-8358
Change h5redeploy to change all 4 lines, prefix=..., exec_prefix=...,
libdir=..., and includedir=...  This way, it reset all 4 lines. Should work
for both version of h5cc created by configure or by rpm.

Tested: hand tested in jam.
2013-03-30 00:55:15 -05:00
Raymond Lu
b6e0e867d0 [svn-r23496] synced DESY branch with the trunk (tested with h5committest) 2013-03-29 18:58:07 -05:00
Raymond Lu
6c974c824d [svn-r23495] ported revisions 23433:23494 from the trunk 2013-03-29 18:13:05 -05:00
Raymond Lu
ed621aae38 [svn-r23494] I added another filter library dynlib2.c for plugin.c test. The test script moves the libdynlib2.so to /tmp then runs
plugin.c.

Tested on jam and koala.
2013-03-29 15:59:15 -05:00
Allen Byrne
5e5e9e3987 [svn-r23493] Correct improper addition 2013-03-29 15:46:48 -05:00
Albert Cheng
59bb6d185e [svn-r23492] Bug fix:
Test was not checking error result. It basically return succeess to make check
all the time.

Fixed it so that it does check the return code of the test (plugin) and set
nerror accordingly.  It then exit 1 if there is any error detected.

Test: use the desy committest to pass on jam, koala, ostrich, duck and emu.
Also hand test by "rm test/.lib/libdynlib1* to verify the test script can
indeed response to errors properly.
2013-03-29 15:22:40 -05:00
Allen Byrne
c1c11c021b [svn-r23491] Add test_plugin.sh to list of cleanup files 2013-03-29 14:51:49 -05:00
Raymond Lu
3374ffecf8 [svn-r23482] I changed the plugin library to be built as shared library only when configure enables shared. libtool will install the shared plugin library. I put a remove command in test/Makefile.am to delete the unnecessary plugin library.
Tested on jam, koala, and emu.
2013-03-28 15:14:11 -05:00
Allen Byrne
9138b343aa [svn-r23480] Reposition conditional and libtool commands. 2013-03-28 12:17:19 -05:00
Allen Byrne
02b1c11ecd [svn-r23476] HDFFV-8359: correct script function calls.
Tested: local linux
2013-03-28 11:38:12 -05:00
Scot Breitenfeld
d7724485b0 [svn-r23475] added dll for verify_Fortran_INTEGER_4 2013-03-28 11:11:34 -05:00
Raymond Lu
c76847d107 [svn-r23472] I updated the default search path for plugin module to be /usr/local/hdf5/lib/plugin for Unix and
"%ALLUSERSPROFILE%/hdf5/lib/plugin" for Windows.

Tested with Albert's committest on 6 systesm.
2013-03-27 17:30:21 -05:00
Mohamad Chaarawi
be4198eb41 [svn-r23470] update INSTALL_parallel with build instructions for Hopper. 2013-03-27 17:06:16 -05:00
Quincey Koziol
86f1fce5f7 [svn-r23469] Description:
Change h5diff_exit() routine to always return a zero exit code when running
in parallel, since returning a non-zero exit code can cause MPI implementations
to print output and that can throw off our "expected output" comparisons.

    Note that this change only changes the exit code for situations where an
incorrect command-line parameter was given - ph5diff was already returning a
zero exit code for all "normal" executions, including those where a serial
h5diff would return a non-zero exit code.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/parallel
    (Too minor to require h5committest)
2013-03-27 13:11:55 -05:00
Allen Byrne
5f8f3dcb79 [svn-r23467] Remove subdirectory.
Tested: local linux
2013-03-27 11:11:21 -05:00
Mohamad Chaarawi
5a14bf5fac [svn-r23466] more missed static declarations
tested on Jam, to minor for committest
2013-03-27 10:51:15 -05:00
Raymond Lu
5b12b8e122 [svn-r23465] I moved dynlib1.c to test/ directory and revised the Makefile.am in test/. I added the condition to skip
plugin.c test when the library is built for static.

Tested on jam, koala, and emu.
2013-03-27 10:39:16 -05:00
Scot Breitenfeld
881cdef5f8 [svn-r23463] Added dllexport for verify_real_kind_7 2013-03-27 10:04:33 -05:00
Scot Breitenfeld
a1db18bc05 [svn-r23462] Added definition for h5kind_to_type 2013-03-27 09:58:41 -05:00
Mohamad Chaarawi
d55bfb91a2 [svn-r23461] add missing static declarations of rotuines.
tested on Jam - too minor for committest
2013-03-27 08:41:44 -05:00
Allen Byrne
cb8e3dee9f [svn-r23460] Add missing infile assignment and error counts 2013-03-26 14:26:10 -05:00
Binh-Minh Ribler
782591cf13 [svn-r23456] Description:
A "return" was missing from a non-void function.  Fixed.
Platforms Tested:
    Linux/32 2.6 (jam)
    Linux/ppc64 (ostrich)
    Asked Allen check Windows.
2013-03-26 02:20:11 -05:00
Allen Byrne
bda2e5da5a [svn-r23454] Update script for reporting errors from configure, build, test.
Tested: jam
2013-03-25 16:38:42 -05:00
Allen Byrne
cfbbd94627 [svn-r23453] FIX plugin DLL decoration 2013-03-25 16:37:09 -05:00
Raymond Lu
b1c594d52d [svn-r23451] I took out RTLD_LAZY for dlopen.
Tested on koala.
2013-03-25 15:34:05 -05:00
Allen Byrne
52d1190883 [svn-r23449] Update script for reporting errors from configure, build, test.
Tested: jam
2013-03-25 14:22:10 -05:00
Allen Byrne
dabebe412f [svn-r23447] Add new env var to prevent filter plugin loading
Tested: jam
2013-03-25 12:39:14 -05:00
Allen Byrne
4ae0c873e0 [svn-r23446] HDFFV-8344, HDFFV-8346: merge from 1.8 branch 2013-03-25 12:35:39 -05:00
Albert Cheng
6e1122dda4 [svn-r23441] HDFFV-8245: bug fix. Snow Leopard (darwin 10.X) does not have clang++.
Reversed it to use gcc/g++ as the default C and CXX compilers for Darwin 10.X
systems.

Tested: duck (darwin 11), wren (darwin 12) and fred (darwin 10).
2013-03-25 00:28:47 -05:00
Binh-Minh Ribler
1f6cd26a93 [svn-r23438] Purpose: Fix bug HDFFV-7520
Description:
    Added wrappers for H5Aexists.
Platforms Tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)
    Linux/ppc64 (ostrich)
2013-03-23 12:37:49 -05:00
Elena Pourmal
01765e3079 [svn-r23437] Removed duplicated line in the MANIFEST file (exposed by the daily tests) 2013-03-23 10:40:50 -05:00
Raymond Lu
865bf6bcb2 [svn-r23435] ported revisions 23346:23432 from the trunk 2013-03-22 17:29:55 -05:00
Albert Cheng
5c45961845 [svn-r23434] Improvement: DFFV-8245
Use Clang as the compiler for the Mac platform.

Changed all Mac to use clang/clang++ as the default C and CXX compilers if
not provided by the user. Still use gfortran as the default fortran
compiler since Apple does not provide any fortran compiler.

Tested: passed all three macs OS, snow leapord (fred), lion (duck) and
mountain lion (wren). Also passed test using Apple gcc, Gnu gcc, Intel
as the C compilers and all corresponding CXX compilers fits in.
Did not run h5committest or other non-mac platform since this change
affect Apple platforms only.
2013-03-22 17:05:57 -05:00
Larry Knox
f593b6e712 [svn-r23433] Fix for HDFFV-7996.
Compile scripts will add paths for external libraries linked to executable files that they create.
Eliminates need for LD_LIBRARY_PATH for szip in locations not known to ld.

Teted on platypus and emu (64bit) in addition to h5committest.
2013-03-22 16:56:15 -05:00
Raymond Lu
8ffd55478e [svn-r23432] I added a new macro HDF5_PLUGIN_PRELOAD to skip plugin loading during data reading.
Tested on koala and jam.
2013-03-22 16:39:53 -05:00
Larry Knox
99b1524474 [svn-r23431] Fix for HDFFV-8141.
Changes default value for USE_SHARED_LIB in compile scripts to yes when static is disabled.
Comments in scripts about the order of flag variables containing library paths was also corrected.

Tested with h5committest on duck, jam, koala, and ostrich in addition to specific testing for the 
compile script change.
2013-03-22 16:02:07 -05:00
Binh-Minh Ribler
3f1c23b315 [svn-r23428] Description:
Fixed bug HDFFV-4272.  Just typos in documentation.
Platform tested:
    Jam
2013-03-22 14:16:38 -05:00
Binh-Minh Ribler
c8018386da [svn-r23427] Purpose: Fix bug HDFFV-8067
Description:
  + The C++ test failed with the new PGI compilers versions 12.4 and 12.5
  + An exception thrown by an internal function, which was called by
    a constructor, was not propagating to the test program during the stack
    unwinding, so it couldn't be caught by the test and the program terminated.
  + Various trials and errors indicated that the problem is where an STD string
    converted to a char* being passed to the internal function, but confirmation
    has not been found yet.  It could be a compiler bug.
Solution:
  + Added a try/catch in the constructor around the internal function and
    re-throw the exception when it is caught.  This is a workaround.
  + Unrelated minor fixes: removed unused variables and MESSAGE's; commented
    out tvlstr.cpp/test_read_vl_string_attribute because it may be redundant,
    and commented out H5Tpkg.h inclusion because TEST_ALIGNMENT is not added
    yet and probably not necessary in the C++ API.
Platforms tested:
    Linux/32 2.6 (jam) with PGI compilers
    Linux/32 2.6 (jam) with GNU compilers
    Linux/64 2.6 (koala)
2013-03-22 12:56:05 -05:00
Dana Robinson
030a17ca60 [svn-r23417] Fixes an issue (HDFFV-8159) where uninitialized memory was being read
during variable-length type conversion.  All variable-length type conversion
buffers are now initialized to contain 0s on allocation.

Tested on: jam(w/ fortran, C++, parallel, parallel fortran)
           ostrich

This is a very small change (basially changing malloc to calloc) and
is unlikely to cause issues on other platforms.
2013-03-21 14:22:19 -05:00
Quincey Koziol
535456397c [svn-r23415] Description:
Avoid using fpclassify() for detecting zero/non-zero values.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/debug
2013-03-21 13:19:53 -05:00
Allen Byrne
0596de6267 [svn-r23412] Add test depends on clear test. Occasional failures. 2013-03-21 09:19:09 -05:00
Allen Byrne
e7ced517bc [svn-r23411] HDDFV-8322: Free allocations in command line parsing.
Tested: local linux
2013-03-21 09:04:50 -05:00
Scot Breitenfeld
a0ec9c282b [svn-r23410] HDFFV-8264: Using F2003, build fails on Fedora with undefined reference to __h5r_MOD_h5rget_region_region_f
This turned out being an issue with configure. The reporter submitted a patch which fixed the fact that we should not be 
setting AM_FCFLAGS (an automake variable) with FFLAGS (a user variable). 

I removed this, and we now only set FFLAGS if the environment variable is set, otherwise we don't.

Tested: jam (gnu)
2013-03-20 23:04:19 -05:00
Jonathan Kim
e8955b876c [svn-r23407] Purpose:
HDFFV-8214 - h5repack failed converting small chunked dataset (size < 1K) to contiguous layout.

Description:
  h5repack failed converting small chunked dataset (size < 1K) to contiguous layout.
  The first case was when chunk dim is bigger than the dataset dim (at leat one), h5repack failed with displaying error stacks.
  The other case is when chunk dim is smaller than the dataset dim, h5repack failed to change layout.

    
Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), emu (solaris-BE),fred (mac64-LE), Windows (32-LE cmake), cmake (jam)
2013-03-20 15:33:33 -05:00
Allen Byrne
f0e328cc04 [svn-r23406] Correct typo 2013-03-20 15:24:55 -05:00
Allen Byrne
fb169f7aa9 [svn-r23405] Correct typo 2013-03-20 13:37:35 -05:00
Allen Byrne
59a9d9a0c6 [svn-r23403] Refactor windows code:
windows uses ';' as path separator
windows default path is different
windows find files needs '*.*'
2013-03-20 13:21:28 -05:00
Allen Byrne
6563fc39b1 [svn-r23402] Plugin Library needs own dll decorator
Tested: windows
2013-03-20 11:14:53 -05:00
Raymond Lu
76d6b9f4db [svn-r23401] I cleaned up the test.
Tested on koala.
2013-03-20 10:50:52 -05:00
Raymond Lu
61b39ecc7c [svn-r23400] I updated Makefile.in for Mac.
Tested on MacGoblin and koala.
2013-03-20 10:13:17 -05:00
Allen Byrne
7c70c816f5 [svn-r23399] Add missing CMakeLists.txt file 2013-03-20 09:26:04 -05:00
Quincey Koziol
59dd5665a5 [svn-r23395] Description:
Bring Coverity changes from branch to trunk:

r20682:
fixed coverity:
76, 77, 635, 636, 1164, 1165, 1166, 1121, 1122, 1117, 1343

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
    (too minor to require h5committest)
2013-03-19 22:44:28 -05:00
Allen Byrne
4f1c1bbf1a [svn-r23390] Remove dll decoration from local function 2013-03-19 16:10:39 -05:00
Allen Byrne
cec54e1fa0 [svn-r23389] HDFFV-8338: remove unused headers 2013-03-19 15:57:18 -05:00
Allen Byrne
8ad18f496a [svn-r23388] HDDFV-8322: Free allocations in parse_command_line function.
Tested: local linux
2013-03-19 15:51:14 -05:00
Allen Byrne
40b7936a5b [svn-r23387] Add dynamic windows decorations 2013-03-19 15:19:06 -05:00
Raymond Lu
721b337b15 [svn-r23386] More updates for Windows.
Tested on koala.
2013-03-19 15:07:03 -05:00
Allen Byrne
b587321096 [svn-r23384] Copy dynamic lib to a plugins folder for testing. This will avoid the segfault with looking for the library with other libraries.
Tested: local linux
2013-03-19 14:20:54 -05:00
Raymond Lu
a9de601138 [svn-r23382] I took out H5PLpkg.h. It no longer exist. 2013-03-19 11:27:45 -05:00
Raymond Lu
32ffaa8982 [svn-r23381] More update for Windows.
Tested on koala
2013-03-19 11:25:44 -05:00
Quincey Koziol
af9a3abb3d [svn-r23380] Description:
Review & cleanup code.
2013-03-18 23:22:34 -05:00
Scot Breitenfeld
626fb1b02f [svn-r23379] HDFFV-8297 h5fc does not recognize files ending in .f95, .f03, and .f08 as source files
added missing extensions.

Tested: jam (gnu)
2013-03-18 23:14:59 -05:00
Quincey Koziol
beccb8a0fc [svn-r23377] Description:
Re-run bon/reconfigure, to generate detection of dirent.h and set up
macro.
2013-03-18 22:14:28 -05:00
Quincey Koziol
00c4e5f00d [svn-r23376] Description:
Add dirent.h detection to configure.ac
2013-03-18 22:00:40 -05:00
Raymond Lu
c08dc5f646 [svn-r23373] Some updates for Windows.
Not tested.
2013-03-18 17:16:59 -05:00
Quincey Koziol
e4c9a6f3b6 [svn-r23372] Description:
Bring in missing r23248 from trunk.

Tested on:
    Not tested...
2013-03-18 17:06:28 -05:00
Allen Byrne
9a720f99fe [svn-r23370] Corrected macro name and removed optional function info in ERROR macro 2013-03-18 17:00:24 -05:00
Allen Byrne
f2b142f6ed [svn-r23369] Escape "\" char 2013-03-18 16:56:32 -05:00
Allen Byrne
23635d656a [svn-r23368] Correct names and add includes for windows 2013-03-18 15:44:02 -05:00
Raymond Lu
ebfebfd7d5 [svn-r23367] I took out a declaration of "DIR" for Windows support.
Not tested.
2013-03-18 15:11:19 -05:00
Dana Robinson
76a8599736 [svn-r23366] Removed the H5Pset_dxpl_multi and H5Pget_dxpl_multi functions from the
library.  The intended functionality for them was never fully implemented
and they are fundamentally broken.

The functions were removed from the C and C++ interfaces.  They were not
exported in the Fortran interface.

Tested on: jam(c++/fortran/hl)

I tested using check-vfd to ensure the multi VFD still works properly.
There is no reason to test this on other machines or on parallel.
2013-03-18 14:50:32 -05:00
Raymond Lu
c7e0a521db [svn-r23365] I opted out dirent.h for Windows.
Not tested yet.
2013-03-18 14:21:55 -05:00
HDF Tester
e188e7797b [svn-r23361] Snapshot version 1.9 release 148 2013-03-17 03:28:21 -05:00
Raymond Lu
296e21f2e2 [svn-r23360] I added Windows support to H5PL_find function.
Tested on koala but not on Windows yet.
2013-03-16 16:16:22 -05:00
Raymond Lu
f6f202dc71 [svn-r23359] I added some macros and refactoring the code to prepare for Windows support.
Tested on koala.
2013-03-15 16:25:30 -05:00
Allen Byrne
7f44286aa5 [svn-r23358] correct env var value for test 2013-03-15 14:10:16 -05:00
Allen Byrne
2923f64c28 [svn-r23357] HDFFV-8338: Add cmake support, this commit only tested for linux
Tested: local linux
2013-03-15 13:28:37 -05:00
Allen Byrne
c1ddb82ac1 [svn-r23356] Correct target name 2013-03-15 10:28:32 -05:00
Allen Byrne
dadea7dc74 [svn-r23354] Close prop list var 2013-03-15 10:26:55 -05:00
Allen Byrne
3a4c43cbd4 [svn-r23353] Correct target name 2013-03-15 10:26:14 -05:00
Raymond Lu
e37ee97a58 [svn-r23350] I cleaned up some code and added comments for my previous checkin of the DESY project.
Tested on koala.
2013-03-14 15:00:48 -05:00
Raymond Lu
08359be858 [svn-r23347] ported revision 23248:23346 from the trunk 2013-03-13 17:34:23 -05:00
Raymond Lu
55822485c6 [svn-r23346] First commit for DESY project. It has the basic functionality of loading dynamically filter libraries and a simple test for it.
Tested on koala.
2013-03-13 14:35:26 -05:00
HDF Tester
c896a5b7eb [svn-r23341] Snapshot version 1.9 release 147 2013-03-10 04:34:50 -05:00
Albert Cheng
1e057e17d2 [svn-r23338] Updated with HDFFV-8305 fix. 2013-03-07 15:58:41 -05:00
Albert Cheng
dd0a7fa13b [svn-r23336] Discovered some typo in the last added comment. Rewrote the comment.
Tested: no need since only comments are changed.
2013-03-07 14:58:45 -05:00
Allen Byrne
f667d55efe [svn-r23333] Update CMake documentation, remove obsolete info for windows. 2013-03-06 13:40:47 -05:00
Allen Byrne
dbd93b2c55 [svn-r23332] HDFFV-8322: for valgrind testing, split-up testhdf5 tests by excluding and running long running tests separately.
Tested: local linux
2013-03-06 12:26:48 -05:00
Albert Cheng
110d933a57 [svn-r23329] Bug fix: HDFFV-8305
Some systems, like Mac, strings inspect library files and older versions
of strings maybe know newer library format, resulting in errors.
Make it read the file as stdin, avoiding this problem. 

Tested: h5committest. all passed.
2013-03-06 01:13:45 -05:00
Albert Cheng
5b959f0bf9 [svn-r23327] Added the reference of the requirement of POSIX Compliance. 2013-03-05 17:35:23 -05:00
Allen Byrne
2195fe47db [svn-r23326] Refactor testhdf5 for memcheck testing. Test longest running options using only. 2013-03-05 15:16:51 -05:00
Scot Breitenfeld
ebb18c5186 [svn-r23325] Description
------------

Fix for:
HDFFV-8149: h5pset_external_f API - the offset is declared integer which can cause problem if use 64-bit integer  

Added new type off_t, modified source files and added a new test.

Tested (jam, intel, gnu)
2013-03-05 00:06:59 -05:00
HDF Tester
1cffcb401a [svn-r23323] Snapshot version 1.9 release 146 2013-03-03 11:20:00 -05:00
Allen Byrne
77dedb3c64 [svn-r23322] HDFFV-8322: Close resources, found from valgrind testing
Tested: local linux
2013-03-01 15:09:40 -05:00
Allen Byrne
00eea738d6 [svn-r23320] Close resources, found from valgrind testing
Tested: local linux
2013-02-27 12:32:56 -05:00
Allen Byrne
fbf49aeddf [svn-r23317] Fix indentation 2013-02-25 11:59:17 -05:00
Allen Byrne
54574a282d [svn-r23314] Correct typo in DEPENDS 2013-02-25 11:41:09 -05:00
Quincey Koziol
0fc1c9c519 [svn-r23313] Description:
Bring changes from Coverity branch to the trunk:

r20612:
Changed string functions to versions with string length to fix coverity issues
922, 942 and 943.

r20614:
Use HDsnprintf. --gh

r20675:
Fix for coverity #1714 due to the fix for #810.  
Use HDfree() instead of H5MM_xfree().

r20678:
Repaired coverity issue #598 -- failure to check return value from a
call to fstat(), or to tidy up in the event of failure.

r20679:
Use HDstrncpy. --gh

r20681:
Use HDstrncat and HDstrncpy. --gh


Tested on:
    Mac OSX/64 10.8.2 (amazon) w/Debug, etc.
    (too minor to require h5committest)
2013-02-25 09:48:42 -05:00
HDF Tester
66ba0b4f33 [svn-r23311] Snapshot version 1.9 release 145 2013-02-24 11:26:03 -05:00
Allen Byrne
47af32527b [svn-r23310] Correct duplicate test command 2013-02-21 14:39:29 -05:00
Allen Byrne
e142838d1f [svn-r23308] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-21 10:47:51 -05:00
Allen Byrne
2c0357db80 [svn-r23307] HDFFV-8311: Correct test dependency
Remove h5ls references

Tested: local linux
2013-02-20 13:43:47 -05:00
Allen Byrne
8a92fbce85 [svn-r23306] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-20 11:42:11 -05:00
Allen Byrne
aff5c20a6a [svn-r23305] HDFFV-8257: szip still used even if headers are not found. Change configure to test the result of the CHECK HEADERS call before checking for the library.
Tested: local linux, h5committest
2013-02-18 15:56:21 -05:00
Jonathan Kim
dbad502865 [svn-r23304] Purpose:
HDFFV-7643 - h5diff - incorrect exit-code returns for extra attribute exist

Description:
   h5diff: Fixed to return correct exit code 1 when detect unique
   attribute. Prior to this fix, h5diff returned exit code 0 indicating 
   two files are identical.

Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), fred (mac64-LE), emu (solaris-BE),  Windows (32-LE cmake), cmake (jam)
2013-02-18 14:46:03 -05:00
Scot Breitenfeld
f3da4919c4 [svn-r23297] Temporary fix: PGI COMPILERS seem to have a bug in the INQUIRE function,
waiting for an answer from PGI how to resolve the problem.

Tested: jam (pgi compiler)
2013-02-18 10:28:36 -05:00
Scot Breitenfeld
2ec529c035 [svn-r23296] Fix HDFFV-8312: Problem using NAG compiler and F2003 interface
added character bounds for C_LOC arguments.

Tested: jam (gnu)
2013-02-17 22:46:06 -05:00
Scot Breitenfeld
4e08487549 [svn-r23295] Did not intend to check in this file with the previous ci.
reverted check in.
2013-02-17 22:10:17 -05:00
Scot Breitenfeld
a4521b7901 [svn-r23294] Related to: HDFFV-8265
Fortran2003 option does not work under windows; Need to manage .def files more efficiently

Changed the comment notes from adding to the 'hdf5_fortrandll.def' to instead adding
to the 'hdf5_fortrandll.def.in' file.
2013-02-17 21:22:29 -05:00
Scot Breitenfeld
a976ca99a9 [svn-r23293] Fix for HDFFV-8268: Fortran wrapper for H5Fget_file_image function.
Tested: (jam, gnu,intel compilers)
2013-02-17 21:01:18 -05:00
HDF Tester
32da9c96ae [svn-r23290] Snapshot version 1.9 release 144 2013-02-17 11:30:06 -05:00
Allen Byrne
1eeac2048a [svn-r23289] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-15 16:46:45 -05:00
Allen Byrne
ff30c61329 [svn-r23288] Fix mismatched block statement 2013-02-15 16:46:24 -05:00
Allen Byrne
69ced48cf8 [svn-r23287] Correct file names 2013-02-15 15:12:18 -05:00
Allen Byrne
43189639fd [svn-r23286] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-15 14:35:21 -05:00
Allen Byrne
4149edf118 [svn-r23282] Add folder to outfile name 2013-02-14 15:32:15 -05:00
Allen Byrne
325c3b869f [svn-r23278] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 15:00:50 -05:00
Allen Byrne
8bdc6f991e [svn-r23277] Change name of output file. 2013-02-14 14:13:30 -05:00
Allen Byrne
ba355ce887 [svn-r23276] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 13:48:10 -05:00
Allen Byrne
bf80a61b14 [svn-r23275] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 13:43:03 -05:00
Allen Byrne
0336d9cdb4 [svn-r23274] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 13:37:52 -05:00
Allen Byrne
06e935bae9 [svn-r23273] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 13:37:02 -05:00
Allen Byrne
90f4f15617 [svn-r23272] Correct typos 2013-02-14 13:16:43 -05:00
Allen Byrne
7feda84aeb [svn-r23271] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 13:10:24 -05:00
Allen Byrne
115a5b36dd [svn-r23270] Cleanup old test comments 2013-02-14 11:37:37 -05:00
Allen Byrne
b9edfdfa25 [svn-r23269] HDFFV-8311: Correct test dependency
Tested: local linux
2013-02-14 11:35:56 -05:00
Frank Baker
a6b09480ff [svn-r23267] Description:
Update copyright to 2013.
Tested:  Firefox
2013-02-13 17:13:00 -05:00
Allen Byrne
366d729046 [svn-r23264] Remove tests from valgrind processing 2013-02-13 13:54:14 -05:00
Allen Byrne
3b1e202378 [svn-r23263] Test dependencies were incorrect and test outside macros did not always execute in the correct order.
Created new macro for h5import test verification. Corrected intra-macro test dependencies. Fixed clear tests.

Tested: local linux
2013-02-13 12:37:10 -05:00
Albert Cheng
d8b3b84ca2 [svn-r23262] Updated with bug fix entry of HDFFV-8267.
Since this is a testing code error that does not affect the function of the
library or tools, I started a new "Testing" section for this sort of changes.
2013-02-13 11:03:49 -05:00
Albert Cheng
e8a0753656 [svn-r23260] Bug fix: HDFFV-8267
The ERROR macro had a typo of missing a separator comma. When used, it seg.
fault. Added the comma back in.
Fix is reviewed in Crucible HDF5-107.

Tested: h5committest passed. Also tested using the ERROR macro in the
Mac (Owl) platform. Before fix, it seg. fault. After fix, it prints the
message as intended.
2013-02-12 16:36:54 -05:00
Allen Byrne
472566b543 [svn-r23254] Make tests independent of each other
Tested: local linux
2013-02-12 16:01:26 -05:00
Allen Byrne
7ca11cb3e0 [svn-r23253] update memcheck ignore tests 2013-02-12 15:47:31 -05:00
Allen Byrne
f08e413f1d [svn-r23252] Fix test dependency flow 2013-02-12 13:19:28 -05:00
Allen Byrne
334cebba07 [svn-r23251] Fix test dependency flow 2013-02-12 13:09:29 -05:00
Allen Byrne
4680324b24 [svn-r23250] Merge changes from normal cache file 2013-02-12 10:11:20 -05:00
Allen Byrne
6ad28abc14 [svn-r23249] Correct typo in normal depends statement.
Add MEMORY_CHECK settings to match existing VALGRIND statements
2013-02-12 08:41:43 -05:00
Scot Breitenfeld
9d07161dd9 [svn-r23248] Made modification of comments for h5rget_name_*f for the loc_id identifier.
Cleaned up comments.
2013-02-11 20:28:08 -05:00
Raymond Lu
d9baac8b0b [svn-r23245] I added the information about the new function H5DOwrite_chunk.
No test is needed.
2013-02-11 16:20:37 -05:00
Allen Byrne
23d2b5d557 [svn-r23244] Correct test dependency handling.
Tested: local linux
2013-02-11 15:15:17 -05:00
Scot Breitenfeld
b37820aecb [svn-r23242] Added info. about changed behavior of H5DSgetscale_name (HDFFV-7596) 2013-02-10 21:18:24 -05:00
Scot Breitenfeld
871b69723e [svn-r23241] Fix for: HDFFV-7596 H5DSget_scale returns size that includes NULL termination and H5DSget_label returns size
Updated tests.

Tested: jam( gnu, intel)
2013-02-10 21:06:01 -05:00
HDF Tester
944f0399ac [svn-r23240] Snapshot version 1.9 release 143 2013-02-10 11:25:10 -05:00
Quincey Koziol
d91625d139 [svn-r23238] Description:
Bring changes from Coverity branch to trunk:

r20528:
Purpose: Fix coverity issue 1372

Description: Rewrite file open secition of H5FD_stdio_open to avoid TOCTUO
condition.  No longer calls access, and uses a tentative open in "rb" or "rb+"
mode to check for existence of the file.

r20609:
Use HDstrncpy and HDstrncat. --gh

r20611:
Use HDstrncpy. --gh


Tested on:
    Mac OSX/64 10.8.2 (amazon) w/debug, C++ & FORTRAN
    (h5committest not required, already tested on branch)
2013-02-08 15:36:31 -05:00
Neil Fortner
692fa69934 [svn-r23237] Purpose: Implement H5Dscatter and H5Dgather
Description:
Adds 2 new API functions, H5Dscatter and H5Dgather.  H5Dscatter retrieves data
from a specified callback function and scatters it into a selection, defined by
a supplied dataspace, within a supplied memory buffer.  H5Dgather gathers data
from a selection within a supplied memory buffer and passes it in a contiguous
form to a supplied callback function.  Added tests for these functions

Tested: jam, ostrich, koala (h5committest); ummon
2013-02-08 11:49:21 -05:00
Scot Breitenfeld
386f73823a [svn-r23236] Fix for: HDFFV-8223
Write a Fortran test for conversion fron enum to numeric type 

Tested (jam, gnu, intel)
2013-02-07 19:28:55 -05:00
Scot Breitenfeld
69a777556e [svn-r23235] Fix for:
HDFFV-7909
When building with g95 on Mac OS X 64-bit, the wrong options (gfortran) are used 

Tested: duck (gfortran, g95 (which is not supported))
2013-02-07 19:09:24 -05:00
Neil Fortner
400bf73d17 [svn-r23234] Fix out-of-bounds errors on pgcc for H5Dscatter and H5Dgather tests.
Tested: jam (pgcc), ummon (gcc)
2013-02-07 16:57:57 -05:00
Neil Fortner
0e3517d34f [svn-r23230] Purpose: Implement H5Dscatter and H5Dgather
Description:
Adds 2 new API functions, H5Dscatter and H5Dgather.  H5Dscatter retrieves data
from a specified callback function and scatters it into a selection, defined by
a supplied dataspace, within a supplied memory buffer.  H5Dgather gathers data
from a selection within a supplied memory buffer and passes it in a contiguous
form to a supplied callback function.  Added tests for these functions

Tested: jam, ostrich, koala (h5committest); ummon
2013-02-05 12:07:02 -05:00
Jonathan Kim
d7a07d62a4 [svn-r23228] Purpose:
Revert back one of the coverity updates from previous checkin. "r20457: Coverity issue 691" in previous svn log.  Only revert the change about using "STDOUT_FILENO".

Description:
    Using "STDOUT_FILENO" caused error on Windows. On unix it's defined in <unistd.h>, but not in Windows.  After a little discussion with Allen, he remembered how the similar case were handled for h5dump redirecting those streams. (in h5dump.c) However it would requires more attention to apply, so this issue is entered as a separate task in jira HDDFV-8306.

    
Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), fred (mac64-LE)
2013-02-05 11:09:45 -05:00
Allen Byrne
b1e0f6c5a5 [svn-r23227] HDFFV-8215 - update help text to be cosistent with the RM entry.
Tested: local linux
2013-02-05 10:11:47 -05:00
Allen Byrne
c3e149d06f [svn-r23226] HDFFV-8285: suppress-ddl option: Changed file options to allow for filename F to be optional.
Tested: local linux
2013-02-04 15:15:59 -05:00
Quincey Koziol
c0b2724d4d [svn-r23223] Description:
Revert use of snprintf() for sprintf(), as it is not supported on Windows.
(And file a bug, http://jira.hdfgroup.uiuc.edu/browse/HDFFV-8302, for the
general problem)

Tested:
    Mac OSX/64 10.8.2 (amazon)
2013-02-04 09:42:21 -05:00
HDF Tester
b65a911b8a [svn-r23221] Snapshot version 1.9 release 142 2013-02-03 11:20:03 -05:00
Quincey Koziol
a3e98d0e36 [svn-r23219] Description:
Bring reviewed changes from Coverity branch back to trunk (QK & JK):

r20457:
Coverity issue 691: return of H5duo could be negative. Fixed by using
STDOUT_FILENO and redesign parse_command_line and main to cleanup file
allocations. The output_file var is null when using stdout. In cleanup do not
close output_file if NULL.

r20510:
Initialize ufid = -1 and predicate HDclose call on ufid != -1

r20511:
Purpose: Fix coverity issue 1715

Description: Free "file" and nested data on failure in H5FD_core_open.

r20512:
Initialize ifid = -1 and predicate HDclose call on ifid != -1

r20514:
Initialize h5fid = -1 and predicate HDclose call on h5fid != -1

r20516:
Added else branch to the if (ret_value < 0) check.

r20522:
Addressed coverity issues 930-933, 850, 836, 835, 1307.  All minor 
potential buffer overwrite bugs, or coverity errors.  Fixed by replacing
strcpy and sprintf with strncpy and snprintf.

r20523:
fixed coverity issues 68, 1120, 1116i

r20524:
Check  H5Z_SZIP->encoder_present < 1 assuming 0 represents absence.

r20601:
Purpose: Fix coverity issues 1703-1705

Description: Modified the cleanup code in test_free in accum.c to reset
allocated buffers to NULL after they are freed, and modified the error cleanup
code to check if these buffers are NULL before freeing them.  Also fixed some
unrelated warnings in accum.c.

r20602:
Use HDsnprintf and HDstrncat

r20603:
Purpose: Fix coverity issues 808-809

Description: Modified test_core in vfd.c to check the returns from malloc, and
keep track of whether points and check are allocated by setting them to NULL
when they are not.  Added code to free points and check on error if they are
not NULL.  Also fixed unrelated warnings in vfd.c.

r20604:
Use HDstrncpy.

r20605:
Use HDstrncpy and HDstrncat.

r20606:
Purpose: Fix coverity issue 807

Description: Modified long_compact in stab.c to keep track of whether objname is
allocated by setting it to NULL when it is not.  Added code to free objname on
error if it is not NULL.

r20607:
Changed string function calls to use versions that specify the string length
to fix coverity issues 832 and 839.


Tested on:
    Mac OSX/64 10.8.2 (amazon)
    (Too minor to require h5committest)
2013-02-01 20:53:32 -05:00
Peter Cao
5140343f45 [svn-r23217] add scalr vlen string datasets 2013-01-31 17:15:15 -05:00
Allen Byrne
415aa7e257 [svn-r23216] Add newline for special case of only raw data to stdout 2013-01-31 15:51:23 -05:00
Allen Byrne
b84234d23c [svn-r23209] Change "diff -b" to just "cmp" for tests. diff is for text files and the ddl redirect does not have an ending newline. 2013-01-31 09:28:04 -05:00
Peter Cao
9d23b171a5 [svn-r23208] adding a large compound dataset to the test file 2013-01-30 17:06:40 -05:00
Peter Cao
4cb3d328ca [svn-r23207] add the new test file to the list. 2013-01-30 16:09:56 -05:00
Peter Cao
d42db65e89 [svn-r23206] minor fixes for number of attributes to be created. 2013-01-30 15:53:15 -05:00
Peter Cao
7461ce3958 [svn-r23205] correct a typo in the instruction. 2013-01-30 15:06:46 -05:00
Peter Cao
1b4769d016 [svn-r23204] Update help information. 2013-01-30 15:00:19 -05:00
Peter Cao
ab2f0d00f3 [svn-r23203] Add test program to generate test file for checking performance. 2013-01-30 14:37:33 -05:00
Allen Byrne
3b787c97d3 [svn-r23202] Add another warning to ignore list 2013-01-29 14:33:55 -05:00
Allen Byrne
6fca8e80d0 [svn-r23201] Correct option text 2013-01-29 14:31:27 -05:00
Allen Byrne
82ac7b92e3 [svn-r23198] Remove -q option from diff as some OS do not support it.
Tested: local linux
2013-01-24 09:13:47 -05:00
Albert Cheng
cf1821d116 [svn-r23197] prints out what and where the log files are.
Set it NOT to submit result to the CDASH.
2013-01-23 18:22:39 -05:00
Raymond Lu
2233570f16 [svn-r23196] I changed the call to H5P_object_verify to H5I_object as the header file H5Iprivate.h is included but not H5Pprivate.h.
Tested on jam.
2013-01-23 10:37:51 -05:00
Allen Byrne
81a6f5be7c [svn-r23195] Compares without end of file newlines
Tested: duck
2013-01-23 10:16:14 -05:00
Allen Byrne
5650be2d1a [svn-r23193] Rename ddl export file and force file write on copy for windows.
Tested: local linux
2013-01-23 08:48:54 -05:00
Allen Byrne
ff421d9424 [svn-r23190] HDFFV-8285: Add suppress ddl option.
Tested: local linux
2013-01-22 15:43:12 -05:00
Allen Byrne
0b107827ec [svn-r23185] Comment out unimplemented tests 2013-01-22 09:00:05 -05:00
Albert Cheng
488453cdfc [svn-r23184] Addition of cmakehdf5. 2013-01-21 23:06:24 -05:00
HDF Tester
37d1a0330a [svn-r23180] Snapshot version 1.9 release 141 2013-01-20 11:23:56 -05:00
Allen Byrne
3ddf8006a1 [svn-r23178] Comment out unimplemented tests 2013-01-18 14:49:11 -05:00
Allen Byrne
b807327433 [svn-r23177] Adjust mkdir to create all dependent folders 2013-01-18 14:33:00 -05:00
Allen Byrne
c352249db1 [svn-r23176] Separate testfiles into subdirs of TestDir to avoid parallel test errors trying to copy a reference file over when already in use.
Tested: local linux
2013-01-18 10:51:59 -05:00
Allen Byrne
769c50cbdc [svn-r23175] Comment out uncommitted tests. 2013-01-18 08:19:58 -05:00
Allen Byrne
0068ead81c [svn-r23174] Correct list items 2013-01-17 14:57:29 -05:00
Allen Byrne
0aba80fb13 [svn-r23173] export files must be handled differently on windows 2013-01-17 14:55:39 -05:00
Allen Byrne
a02d99ab61 [svn-r23170] Switch script to copy files to TESTDIR and execute
Tested: h5committest
2013-01-16 14:23:25 -05:00
Allen Byrne
ceb07d21b0 [svn-r23169] HDFFV-8169: String binary dump test scripts 2013-01-16 13:38:58 -05:00
Allen Byrne
c80e3a0d13 [svn-r23168] HDFFV-8169: String binary dump testfiles 2013-01-16 13:35:48 -05:00
Albert Cheng
629b737016 [svn-r23167] Removed the working in Jam only statement since it works for all THG unix
platforms except Linew (SunOS).
2013-01-16 11:08:38 -05:00
Allen Byrne
35c2e47c60 [svn-r23166] Comment out redirect-ddl tests - incomplete 2013-01-15 11:36:09 -05:00
Mohamad Chaarawi
cb6d2f2a45 [svn-r23165] HDFF-8203 Break H5FDmpi.h header into public and private components
https://jira.hdfgroup.uiuc.edu/browse/HDFFV-8203

tested: h5committest
2013-01-15 10:32:23 -05:00
Allen Byrne
c326a3bd9c [svn-r23164] HDFFV-8285: H5dump suppress ddl option test script 2013-01-15 09:34:44 -05:00
Allen Byrne
2a7ae0367b [svn-r23163] HDFFV-8285: H5dump suppress ddl option testfile additions 2013-01-15 09:31:24 -05:00
Raymond Lu
ec704e0077 [svn-r23162] synchronized DECTRIS branch (r23161) with the trunk 2013-01-14 15:40:19 -05:00
Raymond Lu
c9aad08a90 [svn-r23161] ported revisions 23146:23160 from the trunk 2013-01-14 14:45:59 -05:00
Allen Byrne
2fba171a67 [svn-r23160] HDFFV-8227: Mac DARWIN requires CMake 2.8.10 2013-01-14 13:35:30 -05:00
Allen Byrne
7a775b6c59 [svn-r23158] HDFFV-8169: h5dump incorrectly dumps a string into a binary file
Tested: local linux
2013-01-14 11:26:22 -05:00
Allen Byrne
4b9482eaee [svn-r23154] HDFFV-8286: changed comments from // to /* */ 2013-01-14 10:42:17 -05:00
HDF Tester
2381dacdad [svn-r23153] Snapshot version 1.9 release 140 2013-01-13 11:18:18 -05:00
Raymond Lu
3a7b11863a [svn-r23152] I took out the obsolete function H5PSIwrite_chunk and its related test and performance test.
Tested on koala.
2013-01-11 16:34:31 -05:00
Allen Byrne
9ac4f9ad6b [svn-r23151] HDFFV-498: Eliminate a.exe file on cygwin configurations 2013-01-11 14:11:33 -05:00
Allen Byrne
fd07eb96af [svn-r23150] Revert changes because 1.8 branch files were improperly used. 2013-01-11 14:00:50 -05:00
Raymond Lu
7b895e1dd8 [svn-r23149] I put more condition checks with macro when DEFLATE filter is disabled.
Tested on koala.
2013-01-10 11:04:09 -05:00
Raymond Lu
8eab66f667 [svn-r23148] I added the macro condition check for the test of direct chunk write as it uses compress2 function.
Tested on koala.
2013-01-09 16:07:27 -05:00
Raymond Lu
81bcd314a9 [svn-r23147] ported revisions 23081:23145 from the trunk 2013-01-09 15:23:07 -05:00
Raymond Lu
cde5029461 [svn-r23146] The test on Windows shows it doesn't have zlib.h. I added a macro condition to verify it before include it.
Tested on koala.
2013-01-09 14:23:18 -05:00
Allen Byrne
39e26205e1 [svn-r23145] HDFFV-498: Eliminate a.exe file on cygwin configurations
Tested: cygwin, duck, jam, and local linux
2013-01-09 13:47:28 -05:00
Allen Byrne
b4f238fbd5 [svn-r23139] Only do line by line compare if compare files fail. 2013-01-07 15:38:34 -05:00
Allen Byrne
6e77ce012f [svn-r23138] Only do line by line compare if compare files fail.
Tested: local linux
2013-01-07 15:28:57 -05:00
Allen Byrne
6fd9729b82 [svn-r23137] HDFFV-8227: Add Message to stop configure id SHARED FORTRAN is selected.
Also added APPLE cpack section
Corrected FATAL to FATAL_ERROR in MESSAGEs

Tested: duck
2013-01-07 09:23:48 -05:00
HDF Tester
c1b0e4f686 [svn-r23136] Snapshot version 1.9 release 139 2013-01-06 11:19:19 -05:00
Scot Breitenfeld
99af0ce575 [svn-r23134] Revised the comments to reflect what is in the F2003 standard. 2013-01-03 19:49:06 -05:00
Allen Byrne
93bdf382dc [svn-r23133] Force static builds on MAC machines 2013-01-03 16:44:43 -05:00
Allen Byrne
0c50bcd929 [svn-r23131] Correct missing command name 2013-01-02 13:12:29 -05:00
Allen Byrne
d2e60f3110 [svn-r23130] Update CPack to 2.8.10 2013-01-02 12:21:55 -05:00
Allen Byrne
55e0df638b [svn-r23127] Add MAC options to script in IF(APPLE) block. 2013-01-02 12:01:06 -05:00
HDF Tester
72e8ef707b [svn-r23121] Snapshot version 1.9 release 138 2012-12-30 11:18:08 -05:00
Albert Cheng
8d5525df85 [svn-r23120] Removed -VV from the ctest command line so that it does not send debug output
to the standout.  This keeps command output terse and easier to tell if it
passes or not.

Added time stamps printing.
Added exit code and command executation summary.

All these will make it easier for user to tell if the command succeeds or not.

Tested: {jam,koala,ostrich} all passed. {Linew,fred,duck,owl} failed.
The failure is the cmake process, not cmakehdf5 itself.
2012-12-27 16:04:50 -05:00
HDF Tester
d1b7de066e [svn-r23119] Snapshot version 1.9 release 137 2012-12-23 11:31:26 -05:00
Scot Breitenfeld
16c2af26b6 [svn-r23118] HDFFV-2686 Remove the ptExampleVL.c example from the source code
FIX: Removed files and adjusted other files accordingly.

Tested: jam (gnu)
2012-12-22 14:33:27 -05:00
Scot Breitenfeld
07df6630f1 [svn-r23117] Changed extension of hdf5 files from .hdf5 to .h5 for consistancy.
HDFFV-422: Change extention of the binary files from hdf5 to h5

Tested: jam (gnu)
2012-12-21 00:00:08 -05:00
Scot Breitenfeld
31bbe63ebf [svn-r23116] Changed extension of hdf5 from .hdf5 to .h5 for consistancy.
HDFFV-422: Change extention of the binary files from hdf5 to h5

Tested: jam (gnu)
2012-12-20 23:51:38 -05:00
Scot Breitenfeld
f1e311ef7d [svn-r23115] Added a new test for KIND C_INT64_T, which some earlier windows Intel versions (<12.1)
did not support.
2012-12-20 19:47:03 -05:00
Allen Byrne
357d94328c [svn-r23114] remove "AT-" from buildname 2012-12-20 10:39:37 -05:00
Allen Byrne
f41c524ca9 [svn-r23113] Added corrections to treat ";" character as text for comparision.
Tested: local linux
2012-12-20 09:41:11 -05:00
Dana Robinson
7b5b6d239e [svn-r23111] Purpose:
Fixes for HDF5 1.8.10 p1

HDFFV-7975
Changed the max single I/O operation size on Darwin/Mac OS X.

HDFFV-8124 and HDFFV-8158
Fixed a core VFD bug when large blocks of data are read.

HDFFV-8246
Added more fields to the VFD read/write error messages.

Tested on:
64-bit Windows 7, Visual Studio 2010, CMake
64-bit Mac OS X Snow Leopard (Fred), Fortran, C++
64-bit BE Linux (Ostrich), Fortran, C++
32-bit LE Linux (jam), Fortran, C++ (also parallel w/ Fortran)
2012-12-19 16:51:55 -05:00
Allen Byrne
a50b051538 [svn-r23110] Correct comparison function 2012-12-19 15:05:03 -05:00
Scot Breitenfeld
a692fe88cd [svn-r23105] Changed Fortran examples to reflect tutorial examples via Barbara;
added: h5_cmprss.f90

Tested: jam (gnu compilers)
2012-12-15 17:59:00 -05:00
Raymond Lu
cf823b47ed [svn-r23103] I changed the H5Dopen in hl/test/dectris_hl_perf.c and perform/dectris_perf.c to H5Dopen2.
Tested on Koala.
2012-12-14 10:42:18 -05:00
Raymond Lu
6050e78143 [svn-r23097] I changed H5Dopen to H5Dopen2 in test/dectris_tst.c and hl/test/test_dset_opt.c. I added
hl/test/dectris_hl_perf.c
    perform/dectris_perf.c
    test/dectris_tst.c

Tested on koala.
2012-12-13 11:13:43 -05:00
Albert Cheng
4de0ac5388 [svn-r23096] Added bin/cmakehdf5. 2012-12-12 16:45:33 -05:00
Albert Cheng
8dd246fb2c [svn-r23094] cmakehdf5 is a build command script similar to buildhdf5.
This is an initial implementation and is known to work in
Jam only. More porting is in progress.

Tested: Jam
2012-12-12 14:37:20 -05:00
Scot Breitenfeld
8dc9f39570 [svn-r23093] Fixed API to be 1.6 compliant, removed deprecated APIs
Checked: jam (gnu, mpi) --disable-deprecated-symbols, --with-default-api-version=v16
2012-12-12 09:56:39 -05:00
Scot Breitenfeld
e92f4b1a7c [svn-r23092] Cleaned-up printed output and corrected output comments
Tested: jam (gnu)
2012-12-11 23:30:22 -05:00
Scot Breitenfeld
7155aa6f1d [svn-r23091] Changed C examples to reflect changes in documentation via Barbara;
mainly program additions from tutorial.

Tested: jam (gnu compilers)
2012-12-11 23:00:34 -05:00
Scot Breitenfeld
3079b8dde8 [svn-r23090] Fixed H5Dread input parameters.
Tested: gnu (jam)
2012-12-11 08:39:39 -05:00
Scot Breitenfeld
02fb07aa85 [svn-r23089] Changed Fortran examples to reflect changes in documentation via Barbara;
mainly program name changes. Two new examples added: h5_extend.f90 h5_subset.f90 and
example fileexample.f90 was removed.

Tested: jam (gnu compilers)
2012-12-10 17:41:13 -05:00
Scot Breitenfeld
17fd0e9ce4 [svn-r23088] Changed Fortran examples to reflect changes in documentation via Barbara;
mainly program name changes. Two new examples added: h5_extend.f90 h5_subset.f90 and
example fileexample.f90 was removed.

Tested: jam (gnu compilers)
2012-12-10 17:30:38 -05:00
Raymond Lu
fc9ed51a3a [svn-r23087] I updated MANIFEST to include the new files hl/src/H5DO.c, H5DOpublic.h, H5DOprivate.h. I included H5DOpublic.h into hl/src/hdf5_hl.h.
Tested on koala.
2012-12-10 14:08:30 -05:00
HDF Tester
f89d080191 [svn-r23085] Snapshot version 1.9 release 136 2012-12-09 11:14:57 -05:00
Allen Byrne
f45283113b [svn-r23083] Correct cmake statement to use SET instead of ADD_DEFINITIONS 2012-12-07 12:19:31 -05:00
Raymond Lu
c409265f9d [svn-r23082] I corrected an error for test_dectris.h5.
Tested on jam.
2012-12-06 14:48:50 -05:00
Raymond Lu
b7e1b629e9 [svn-r23081] ported revisions 22987 to 23080 from the trunk 2012-12-06 11:02:01 -05:00
Raymond Lu
6b1ef6ad02 [svn-r23079] I updated CMakefile for adding H5DO.c and H5DOpublic.h under hl/ directory.
Not test.
2012-12-05 16:11:49 -05:00
Raymond Lu
8f3a8710ca [svn-r23078] I took out O_SYNC flag from the code. I used it to do performance test. But
we decided not to support it.

Tested on koala.
2012-12-05 15:15:54 -05:00
Raymond Lu
bbeea7dd99 [svn-r23077] I adjusted the dataset and chunk to smaller sizes.
Tested on koala.
2012-12-05 11:57:30 -05:00
Raymond Lu
0c4cec81b2 [svn-r23075] I revised the code and test according to Quincey's review. I also added more test cases.
Tested on koala.
2012-12-04 14:47:35 -05:00
HDF Tester
0de4e03305 [svn-r23071] Snapshot version 1.9 release 135 2012-12-02 09:57:47 -05:00
Allen Byrne
5697dc8f80 [svn-r23066] HDFFV-8265: create .def file during configure, added F2003 optional functions and refactor ISO_C_BINDING usage in cmake files
Tested: local cmake
2012-11-29 09:50:21 -05:00
Allen Byrne
c7440f2f36 [svn-r23064] HDFFV-8202: Add diff display to cmake output on error. Merged changes from runTest.cmake. 2012-11-28 16:37:37 -05:00
Allen Byrne
b3c12e8d55 [svn-r23057] HDFFV-8265: create .def file during configure
Tested: windows
2012-11-27 10:53:30 -05:00
Albert Cheng
19a00efd98 [svn-r23055] Bug fix: HDFFV-8233
testh5stat.sh fails in LLNL uDawn. The test actually ran as expected
but it did not prepare for the extra error messages from the MPI
process.

Solution:
This sort of problem has been fixed by using the output filters in
output_filter.sh. testh5stat.sh is updated to use the output filters.

Tested:
uDawn.
2012-11-26 15:45:17 -05:00
Allen Byrne
e5d4ba944f [svn-r23053] Remove deleted file from CMake build list 2012-11-26 08:56:29 -05:00
Scot Breitenfeld
e53f4cce8a [svn-r23052] Description:
Removed example grpit.f90 which used undocumented/obsolete APIs, The equivalent and up-to-date example
to transverse through a file would be the example h5ex_g_traverse_F03.f90 in hdf5-examples.
2012-11-25 22:08:02 -05:00
HDF Tester
48b241d52d [svn-r23050] Snapshot version 1.9 release 134 2012-11-25 09:47:11 -05:00
Quincey Koziol
a20adf6924 [svn-r23048] Description:
Bring r20456 from Coverity branch to trunk:

fixed coverity 678, 679

Tested on:
    Mac OSX/64 10.8.2 (amazon) w/debug
    (too minor to require h5committest)
2012-11-21 17:25:46 -05:00
Allen Byrne
b1439fa810 [svn-r23044] Restore build configuration defines for cmake 2012-11-21 10:05:49 -05:00
HDF Tester
9ac4fea3b0 [svn-r23039] Snapshot version 1.9 release 133 2012-11-18 09:57:04 -05:00
Allen Byrne
670fb1977b [svn-r23038] Corrected last array assignment to use X-1 values for index. 2012-11-16 09:13:55 -05:00
Allen Byrne
b06253f597 [svn-r23037] Correct string variable handling/reference
Tested: local and windows
2012-11-16 09:03:49 -05:00
Allen Byrne
4e2e8d118c [svn-r23036] HDFFV-8202: cmake compare should show differences in log output
Tested: local linux
2012-11-15 16:18:17 -05:00
Allen Byrne
b23a2aebf0 [svn-r23035] Add scalar string test file and tests 2012-11-15 12:21:18 -05:00
Allen Byrne
3e7f74caf1 [svn-r23034] Add scalar string test file and tests 2012-11-15 12:20:05 -05:00
Albert Cheng
061f0b454c [svn-r23032] Updated the following sections with information from the v1.8 branch.
Supported Platforms
Tested Configuration Features Summary
More Tested Platforms
2012-11-14 13:10:03 -05:00
HDF Tester
82868270dc [svn-r23021] Snapshot version 1.9 release 132 2012-11-11 09:56:57 -05:00
Allen Byrne
a177131e71 [svn-r23020] HDFFV-498: lone colon test fails on cygwin and leaves a.exe file on system. Added test for CYGWIN and use a,exe instead of a.out.
Review: HHDF5-1-8-31

Tested: cygwin
2012-11-09 15:27:03 -05:00
Raymond Lu
6192c80307 [svn-r23019] I added dectris_hl_perf.c for testing performance.
Tested on koala.
2012-11-07 16:59:43 -05:00
Raymond Lu
e9a9c23a6d [svn-r23018] I forgot to add these new files in previous commit. 2012-11-07 12:11:22 -05:00
Raymond Lu
b7041a91cd [svn-r23017] I added a prototype function H5DOwrite_chunk in HL library for Dectris people to test performance. The library's API function H5PSIdirect_write
is still in.  I reorganized the internal library by adding H5D__pre_write function.

Tested on koala.
2012-11-07 12:08:46 -05:00
Allen Byrne
ee27a10d49 [svn-r23015] Update windows platforms 2012-11-06 13:54:08 -05:00
Raymond Lu
c5d62ca899 [svn-r23012] I added Sun's 5.9 C++ compiler problem as a known problem. It doesn't know a C99 predefined identifier __func__. 2012-11-05 15:29:31 -05:00
Quincey Koziol
308171a2ef [svn-r23010] Description:
Initialize cd_values pointer when cd_elemts is zero.

Tested on:
    Mac OSX/64 (amazon) w/debug
    Windows (via Allen's builds)
2012-11-05 13:21:11 -05:00
Quincey Koziol
b9d042d2d2 [svn-r22998] Description:
Clean up warnings and bring changes from Coverity branch back to trunk:

r20451:
Fixed coverity 810

r20454:
Purpose: Fix coverity issue 816

Description: Modified various file drivers to always check the return value from
H5P_get_driver_info.

r20455:
Purpose: Cleanup fix for coverity issue 816

Description: Removed redundant check for "fa" in H5FD_core_open.


Tested on:
    Mac OSX/64 10.8.2 (amazon) w/debug
    (Too minor to require h5committest)
2012-11-01 11:01:37 -05:00
Jonathan Kim
51c5bf8aa7 [svn-r22992] Purpose:
HDFFV-8146 - Remove "multi-chunk IO without optimization" sub-feature from MPI I/O optimization for chunked dataset feature

Description:
  The “multi-chunk IO without optimization” feature is removed and made the related xfer property (H5FD_MPIO_CHUNK_MULTI_IO) go directly to “multi-chunk-io” feature.
  Also update/fix/cleanup testings (chunk collective IO and actual chunk opt mode) accordingly.
    
Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), fred (mac64-LE), Windows (32-LE cmake), cmake (jam)
2012-10-30 11:28:17 -05:00
Raymond Lu
0cf58a4755 [svn-r22987] ported revisions from 22742 to 22986 from the trunk 2012-10-29 13:59:05 -05:00
Larry Knox
57d23e5062 [svn-r22984] Removed references to windows files for legacy builds with Visual Studio that were removed.
Tested on jam.
2012-10-27 22:39:07 -05:00
Dana Robinson
88885a82ae [svn-r22953] Purpose:
Removed legacy Visual Studio solutions and projects, which will
	no longer be supported after HDF5 1.8.10.
2012-10-23 13:27:33 -05:00
Raymond Lu
e96bb5fed1 [svn-r22951] I added an item in the new feature about the conversion from enumeration to numerica datatypes. 2012-10-23 12:06:59 -05:00
Raymond Lu
e00ffb3e51 [svn-r22945] I fixed a few minor casting problems in enum.c. It's a followup commit for the test of the conversion function H5T__conv_enum_numeric (numeric type means integer or floating number).
Tested on tejeda - failed on tejeda and ostrich in the daily test.
2012-10-22 14:46:03 -05:00
Mark Evans
29dec8ea7c [svn-r22943] Changed the spelling of accessability to accessibility. 2012-10-22 11:39:27 -05:00
Dana Robinson
fe00929980 [svn-r22936] Purpose:
Reorganize Windows release docs

Tested on:
	N/A (docs only), ran chkmanifest
2012-10-21 21:51:48 -05:00
Quincey Koziol
8430e2d4de [svn-r22935] Description:
Clean up a few warnings and minor code issues during review of enum ->
int/float conversion changes.

Tested on:
    Mac OSX/64 10.8.2 (amazon) w/debug
    (too minor to require h5committest)
2012-10-20 22:44:32 -05:00
Jonathan Kim
961a24ac3c [svn-r22933] Purpose:
HDFFV-8145 h5diff slowness with version >= 1.8.7

Description:
    Improved speed when comparing HDF5 files with lots of attributes. Much slower performance was identified with release version from 1.8.7 to 1.8.10 compared to 1.8.6.
    
Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), Windows (32-LE cmake), cmake (jam)
2012-10-19 16:28:14 -05:00
Quincey Koziol
14e7962b30 [svn-r22932] Description:
Update FreeBSD info.
2012-10-19 14:57:04 -05:00
Quincey Koziol
e9519f5e6a [svn-r22921] Description:
Review Coverity changes and bring them back to trunk. (QK & JK)

r20402:
Added #includes for h5tools.y or h5tools_utils.h as required to remedy implicit
function declarations which caused compiler warnings and coverity issues 703-4
and 708-11.

r20414:
This is related to the previous checkin r20399.  There were incorrect updates
which caused incorrect behavior when no file was given. Also possible segfault
when handling hyperslab options. Simplify the code changes.

r20449:
Description: Modified H5E_walk2_cb to check return value of H5I_object_verify.

r20450:
fixed coverity 813


Tested on:
    Mac OSX/64 10.8.2 (amazon) w/C++, FORTRAN, debug & threadsafe
    (too minor to require h5committest)
2012-10-18 14:47:39 -05:00
Quincey Koziol
0324f05566 [svn-r22915] Description:
Bring Coverity changes back to trunk:


r20399:
Change parse_command_line to free hand structure on error and only "leave()" at end of main.

r20400:
Purpose: Fix coverity issue 592

Description: Added void cast to call to H5F_sfile_assert_num() in
H5F_term)interface().  There is no need to check the return value of this
function in general, and there would be nothing to do even if it did fail.

r20401:
Added free(src_sizes) and free(src_offset). --gh


Tested on:
    Mac OSX/64 10.8.2 (amazon) w/C++, FORTRAN, threadsafe
    (too minor for h5committest)
2012-10-17 13:41:42 -05:00
Raymond Lu
1c45b31cc6 [svn-r22914] I checked in the conversion function H5T__conv_enum_numeric (numeric type means integer or floating number) and the C test for it. This is the work for Chicago.
Tested on jam, koala, and ostrich.
2012-10-17 13:38:38 -05:00
Larry Knox
33504deb83 [svn-r22908] Reverted changes in revision 22819
Tested with h5committest on jam, koala and ostrich.
2012-10-16 16:38:58 -05:00
Allen Byrne
6e6ba4f064 [svn-r22904] Fixed typo in name of cmake config file. Needed for installing multiple versions on windows. 2012-10-16 12:44:14 -05:00
Scot Breitenfeld
2f798dc842 [svn-r22897] Cleaned up the comments, formatted for automatic documentation. 2012-10-12 22:23:47 -05:00
Scot Breitenfeld
777884558a [svn-r22896] Updated the robodoc resource file with new keywords and new options
for generating the documentation.
2012-10-12 22:22:38 -05:00
Allen Byrne
348e91e02f [svn-r22881] Correct datatype of scalar array of doubles
Tested: local linux
2012-10-10 16:08:44 -05:00
Albert Cheng
10ab09069d [svn-r22879] Bug Fix: HDFFV 8017
dt_arith would fail in Lion and Mountain Lion system when GCC version 4.2.1
is used with --enable-production. Somehow the -O optimization will fail some of
the hard conversion code.

Solution:
This is just a temporary patch by detecting if this is a Lion or Mountain Lion
system using GCC 4.2.1, then just remove the any -O option from the PROD_CFLAGS.
A better fix should be deviced later.

Tested: Duck(lion) and Owl (mountain lion) tested with --enable-production.
Also tested in Fred and Tejeda, both Snow Leopard systems to verify there is
no undesired side effect.
2012-10-10 00:03:36 -05:00
Scot Breitenfeld
990fdaed07 [svn-r22878] Added bug fixes and enhancements since the last release. 2012-10-09 23:21:59 -05:00
Binh-Minh Ribler
f7e1da0cfb [svn-r22877] Description:
Changed uint to unsigned so that no hdf5-specific header file is needed.
Platform tested:
    Linux/32 2.6 (jam) - very minor
2012-10-09 22:32:21 -05:00
Scot Breitenfeld
ac472bb111 [svn-r22876] Fixed exporting subroutines that will not be compiled if --enable-fortran2003
was not used.
2012-10-09 18:59:33 -05:00
Quincey Koziol
cda42fdc77 [svn-r22866] Description:
Correct use of 'uint8_t' parameter type in public header file (which was
causing Windows builds to fail).

Tested on:
    Mac OSX/64 10.7.5 (amazon) w/debug
    (too minor to require h5committest)
2012-10-04 21:25:37 -05:00
Scot Breitenfeld
223bdd1173 [svn-r22859] Fixed new functions that are used in the _F03 files, updated to reflect the correct
module they are in.
2012-10-03 15:05:25 -05:00
Allen Byrne
9603f61cda [svn-r22857] Change def list of RGET_REGION to match other types declarations 2012-10-03 13:55:57 -05:00
Scot Breitenfeld
3e59374ccd [svn-r22854] Fixed issues with default 8-byte real and default 8-byte integers and the new H5O routines.
Tested: jam (gcc,intel)
2012-10-02 19:53:21 -05:00
Allen Byrne
7648354b80 [svn-r22853] Change def list of RGET_REGION to match other types declarations 2012-10-02 12:53:03 -05:00
Allen Byrne
0f76f393ed [svn-r22852] Add new files to library file lists
Tested: local linux
2012-10-02 12:38:24 -05:00
Albert Cheng
41c8a10740 [svn-r22849] Updated with changes. 2012-10-01 18:52:56 -05:00
Albert Cheng
fa935398b3 [svn-r22848] Bug fix: HDFFV-8156
benchpar.c is compiled when configure --enable-build-all --enable-paralllel.
But it failed to compile.  It is decided to retire or move it to example.
I removed it from the PARA_BUILD_ALL list so that --enable-build-all will
not fail.  The program file still need to be moved.

Tested: Koala using --enable-build-all --enable-parallel.
--in parallel mode.This line, and those below, will be ignored--

M    perform/Makefile.in
M    perform/Makefile.am
2012-10-01 18:41:55 -05:00
HDF Tester
d4657ce265 [svn-r22846] Snapshot version 1.9 release 131 2012-09-30 09:46:20 -05:00
Binh-Minh Ribler
9c3f82fbd7 [svn-r22845] Purpose: Misc fixes
Description:
    Fixed miscellaneous inconsistencies and typos, which also took
    care of the failure in Packet Table test on daily test today.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)
    Mac Lion (duck)
2012-09-28 17:18:33 -05:00
Scot Breitenfeld
51bb0fe2d2 [svn-r22843] Renamed variable to match C.
Tested: jam (gnu, mpich)
2012-09-28 15:42:33 -05:00
Scot Breitenfeld
cc2669fedf [svn-r22842] Fixed typo in variable.
Tested: jam (gnu,mpich)
2012-09-28 15:29:38 -05:00
Scot Breitenfeld
08a5424f60 [svn-r22839] removed unused variable.
tested: jam (pgi compiler)
2012-09-28 09:48:12 -05:00
Scot Breitenfeld
5fba5c2e3a [svn-r22838] Fixed typo in variable name.
Tested: jam (pgi compiler)
2012-09-28 08:36:39 -05:00
Binh-Minh Ribler
5aed216f47 [svn-r22837] Description:
Added
	c++/src/H5Location.h
	c++/src/H5Location.cpp
2012-09-27 18:33:03 -05:00
Binh-Minh Ribler
5fcec401bd [svn-r22836] Purpose: Fix bug HDFFV-533 and add other missing functions
Description:
    In this bug, H5File doesn't have the ability to create attribute.  The
    following changes will provide that functionality and several others that
    were also missing:
    - Added an abstract class H5Location in between IdComponent and H5Object.
    - New class structure of IdComponent, H5Location, H5Object, H5File
                                IdComponent
                                     |
                                H5Location
                                /        \
                        H5Object        H5File
    - Wrappers in H5Object were moved to H5Location because the related C
      functions take either file, group, dataset, or named datatype ID.
    - Added wrapper for H5Rget_obj_type2
    - Added tests for file attributes and H5Rget_obj_type2 wrapper
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)
    SunOS 5.10 (linew)
2012-09-27 18:26:16 -05:00
Albert Cheng
e488529430 [svn-r22834] Documented HDFFV-8069 fix. 2012-09-27 17:22:10 -05:00
Jonathan Kim
2752394064 [svn-r22832] Update the CMake reference files list correctly for newly added encoded property list files. 2012-09-27 16:31:33 -05:00
Albert Cheng
e554086467 [svn-r22830] Bug fix: HDFFV-8069 AIX config file Fortran flags need fix
Description: The Fortran compiler flags were all set to "-O". They should be
different setting for different situations. E.g, "-g" for debug and
"-pg" for profile, etc.

Fix: set them to appropriate different values.

Tested: in Remote ADA AIX machines using 3 different settings:
    configure --enable-fortran --enable-cxx     # default to --disable-production
    configure --enable-fortran --enable-cxx --enable-production
    configure --enable-fortran --enable-cxx --disable-production
2012-09-27 16:07:43 -05:00
Scot Breitenfeld
485b5dea69 [svn-r22829] Fixed merge mistake, merge removed part of the subroutine.
tested: jam (intel)
2012-09-27 15:24:03 -05:00
Scot Breitenfeld
7b9929e309 [svn-r22828]
HDFFV-8007:Add missing H5O Fortran functions 

Added new F03 test file for new H5O functions.
2012-09-27 14:48:54 -05:00
Scot Breitenfeld
0878e52087 [svn-r22827] HDFFV-8007: Add missing H5O Fortran functions.
Tested: jam(gnu,intel)
2012-09-27 14:43:48 -05:00
Scot Breitenfeld
393852a414 [svn-r22826] Fix for: HDFFV-7903 Fortran problem writing control character to a dataset
reconfigured
2012-09-27 14:21:45 -05:00
Scot Breitenfeld
32a131ea70 [svn-r22825] Fix for: HDFFV-7903 Fortran problem writing control character to a dataset
Tested: (jam, gfortran)
2012-09-27 14:20:09 -05:00
Scot Breitenfeld
a81cc2ac7e [svn-r22824] FIX: HDFFV-8118: Support Fortran compiler flags that change the default size of integer and real
Tested: jam(gnu,intel), machine with gcc 4.7 and C long double = 16 bytes.
2012-09-27 14:13:13 -05:00
Scot Breitenfeld
0710ab3955 [svn-r22823] Fix for HDFFV-7658: Add FORTRAN interface for H5Pget_mpio_actual_io_mode API routine
Test: jam (gnu)
2012-09-27 10:59:40 -05:00
Scot Breitenfeld
dbf542c008 [svn-r22822] Fix for HDFFV-7658: Add FORTRAN interface for H5Pget_mpio_actual_io_mode API routine
Test: jam (gnu)
2012-09-27 10:58:54 -05:00
Quincey Koziol
0ae06ebea6 [svn-r22820] Description:
Update the CMake reference files list for newly added encoded property list
files.
2012-09-27 06:34:40 -05:00
Larry Knox
c5371d7618 [svn-r22819] Added H5BLD_STATIC and HDF5_USE_SHLIB to configure.ac so that if configured with --disable-static the default for HDF5_USE_SHLIB in the compile scripts will be changed to yes. This is a fix for HDFFV-8141, where the compile scripts try to link to non-existant static hdf5 libraries.
Tested on jam,koala,ostrich(h5committest) and other THG machines.
2012-09-26 23:49:19 -05:00
Quincey Koziol
7702c7f760 [svn-r22817] Description:
Update CMake files for new encode/decode property list files.
2012-09-26 15:53:18 -05:00
Jonathan Kim
563990e64e [svn-r22816] Failed on Mac for testing tscalarintsize and tscalarattrintsize from daily test.
Larry mentioned that intel compiler was used on Mac for testing.
Allen requested comment it out.
"It is not scheduled for 1.8, I created the file for Java testing. Actually I 
have to create windows versions because of the use of floating point." - Allen
2012-09-26 15:21:36 -05:00
Raymond Lu
4f9adf902b [svn-r22815] Issue 8164 - test_image.c printed an extra "FAILED" after it succeeded. A test function doesn't return 0 after it succeeds.
It goes down to the error handling branch and prints "FAILED".  The fix is adding "return 0;" in the end of the function.  

Tested on jam - simple change.
2012-09-26 15:06:08 -05:00
Quincey Koziol
392b7d3249 [svn-r22808] Description:
Correct location of property list files.
2012-09-25 14:05:49 -05:00
Quincey Koziol
6a89177036 [svn-r22807] Description:
Add encode/decode API routines for property lists: H5Pencode/H5Pdecode.

Tested on:
        FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
        FreeBSD/64 8.2 (freedom) w/gcc4.6, 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 (koala) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (ostrich) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (ember) w/Intel compilers, w/parallel, C++ & FORTRAN,
                in production mode
        Mac OS X/32 10.7.3 (amazon) in debug mode
        Mac OS X/32 10.7.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.7.3 (amazon) w/parallel, in debug mode
2012-09-25 10:47:25 -05:00
Jonathan Kim
50e3990f2a [svn-r22805] Purpose:
HDFFV-8012 - h5repack changes max dims and cause failure if only "-f none" is used without changing layout for chunked dataset when a chunk dim is bigger than a dataset dim

Description:
    "h5repack -f <obj>:NONE <file.h5> out.h5" command failed if source file contains chunked dataset and a chunk dim is bigger than a dataset dim. 
    Another issue is that the command changed max dims if chunk dim is smaller than the dataset dim. 
    These issue occurred when dataset size is smaller than 64k (compact size limit)
    Fixed them.

Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), cmake (jam)
2012-09-24 18:13:57 -05:00
HDF Tester
528bd520b8 [svn-r22802] Snapshot version 1.9 release 130 2012-09-23 09:32:56 -05:00
Albert Cheng
443d342905 [svn-r22799] Documented the retiremen of mpi-perf. 2012-09-22 14:44:14 -05:00
Allen Byrne
d834917bca [svn-r22795] Create scalar test files and h5dump tests.
Tested: local linux
2012-09-20 13:57:03 -05:00
Albert Cheng
fcea67a3c2 [svn-r22793] Updated to reflect the removal of perform/mpi-perf.c. 2012-09-20 10:38:43 -05:00
Albert Cheng
e252013bee [svn-r22791] HDFFV-8110: Removed mpi-perf.c which was given with permission to freely
distribute by the author. It was an example program showing how to measure
parallel IO speed. Since then, we have created h5perf to do I/O performanace
measurement. This example is not needed any more.

mpi-perf.c:
    Removed.
Makefile.am:
Makefile.in:
    Removed the entry of mpi-perf.c so that "configure --enable-build-all ..."
    will not build it.

The change is trivial that I got permission to skip the code review step.

Tested: h5committest plus "--enable-parallel --enable-build-all" in koala.
2012-09-20 10:09:11 -05:00
Allen Byrne
eff696a3b0 [svn-r22785] HDFFV-8153: Pull POSIX_C_SOURCE define out to separate variable. Use ADD_DEFINITIONS (${HDF5_EXTRA_C_FLAGS}) in non-fortran CMakeLists.txt folders
Tested: jam with intel compilers
2012-09-18 17:08:07 -05:00
Allen Byrne
315ab68bd1 [svn-r22774] The matching configure file
Use 
  LT_PREREQ([2.2])
  LT_INIT([dlopen])
instead of
  AC_LIBTOOL_DLOPEN
  AM_PROG_LIBTOOL

Also add ALLOW_UNSUPPORTED on threadsafe check

Both from 1.8 configure
2012-09-17 11:18:05 -05:00
Allen Byrne
06eb364890 [svn-r22773] Use
LT_PREREQ([2.2])
  LT_INIT([dlopen])
instead of
  AC_LIBTOOL_DLOPEN
  AM_PROG_LIBTOOL

Also add ALLOW_UNSUPPORTED on threadsafe check

Both from 1.8 configure
2012-09-17 11:10:12 -05:00
Allen Byrne
ebcd96a9c1 [svn-r22772] Synch line spaces with 1.8 2012-09-17 11:03:19 -05:00
Allen Byrne
a90b492bff [svn-r22771] remove obsolete files 2012-09-17 11:02:21 -05:00
Allen Byrne
8c870f14c1 [svn-r22770] Update windows release docs to match 1.8 2012-09-17 11:00:07 -05:00
HDF Tester
786b220e46 [svn-r22766] Snapshot version 1.9 release 129 2012-09-16 09:27:43 -05:00
Quincey Koziol
52c7a6352b [svn-r22765] Description:
Propogate Coverity changes to trunk, also fix compiler warnings and
other minor code cleanups. (QK & JK)

r20393: (Not directly propogated, since trunk also had a similar fix)
    Move initialization ocrt_info.new_obj = NULL; before FUNC_ENTER_NOAPI -- gh

r20397:
    Added free(src_sizes) --gh

r20398:
    Added free(src_offset). --gh

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug, parallel, FORTRAN & C++
    (h5committest forthcoming)
2012-09-15 08:22:02 -05:00
Jonathan Kim
0a5b0304ad [svn-r22763] Purpose:
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access

Description:
    Fixed Daily test failed from the previous commit r22735. (ember)
    Also changed H5Pget_mpio_no_collective_cause() parameter type from
    H5D_mpio_no_collective_cause_t to uint32_t due to change to return
    combined bitmap value which can be not emun defined value.

Tested: 
    jam (linux32-LE), koala-pp (linux64-LE), ember, h5committest
2012-09-14 15:24:02 -05:00
Quincey Koziol
602c716f76 [svn-r22758] Description:
Bring generic improvements from encode/decode property list branch to
the trunk.  This includes a better version of the property list comparison
routine, cleaned up compiler warnings, and some cleaned up property list
callbacks.  Also, started on changes to clean up parallel test output, so that
it doesn't report successful tests from each process.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug, GCC 4.7.x, FORTRAN, C++, threadsafe and parallel
    Linux 2.6/32 (jam) w/debug
    Solaris 2.7/64 (linew) w/debug
2012-09-13 12:08:01 -05:00
Raymond Lu
0ffdaff795 [svn-r22755] When Scot Breitenfeld committed his test function test_valid_path in r22078 6 months ago, he replaced test_text_type
function with his function, thus skipped test_text_type test.  I'm restoring it back in this checkin.

Tested on jam - simple change.
2012-09-12 11:32:33 -05:00
Raymond Lu
6f1ae47a37 [svn-r22754] Issue 8140 - return value is missing for H5LTyyerror in H5LTanalyze.l. I put "return 0" in because the
program should continue even though there is an error.

Tested on jam - simple change.
2012-09-12 11:29:14 -05:00
Allen Byrne
c16ae673e3 [svn-r22752] Update autotools macros and comment indicators.
Added autotools quotation around parameters

h5committest
2012-09-11 15:11:44 -05:00
Jonathan Kim
89a2c4a783 [svn-r22751] Purpose:
HDFFV-5919 -  GMQS: h5diff - The number of object difference is not consistent between dataset and group/type when attribute(s) have differences

Description:
  Object differences are not consistent between dataset and group/datatype when their attribute(s) have differences. This is because attribute(s) differences is not accumulated to group or datatype object’s difference, but accumulated to dataset difference.
  To fix, do not accumulate attribute difference to dataset difference.  This is referred to h5diff’s default behavior and also past report from users that users were confused by the accumulated behavior. (also can’t figure out only for dataset difference , also hard to spot dataset difference when it has lots of attributes or differences)
  This also lead to fix inconsistent format indicating difference between dataset and group/datatype object.

Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), cmake (jam)
2012-09-10 16:40:47 -05:00
Scot Breitenfeld
f5efc5224f [svn-r22750] Removed check-in r22746 because it causes an error in objcopy on Linew 64 byte. Will check-in again after
the issue is resolved.
2012-09-10 14:38:55 -05:00
Dana Robinson
b951fb9fe1 [svn-r22749] Description:
Undo of accidental check-in of H5T code in last check-in.

Tested on:
    jam w/ parallel enabled (revert to pre-existing code)
2012-09-10 12:00:05 -05:00
Dana Robinson
d1060f63b7 [svn-r22748] Description:
H5FD_FLMAP_SINGLE changed to H5FD_FLMAP_DICHOTOMY in the MPI-POSIX VFD.

Tested on:
    jam w/ parallel and fortran enabled (minor change)
2012-09-10 11:53:19 -05:00
Scot Breitenfeld
2fae4fbfa6 [svn-r22746] Description:
Fix for HDFFV-7959 H5Rdereference should check for default (HADDR_UNDEF) value and not continue processing and return so that ret value can be checked and handled properly.

Added fix and test, reviewed:

Tested: jam (gnu, intel)
2012-09-09 14:08:12 -05:00
HDF Tester
0824b43ecd [svn-r22745] Snapshot version 1.9 release 128 2012-09-09 09:43:15 -05:00
Jonathan Kim
f4b0229467 [svn-r22744] Purpose:
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access                                                                 

Description:
    Daily test failed from the previous commit r22735. (ember)
    Skip tests not to disrupt other tests while finding a solution for ember.
2012-09-08 14:16:40 -05:00
Jonathan Kim
4990fdaba6 [svn-r22743] Purpose:
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access

Description:
    Daily test failed from the previous commit r22735. (ember)
    Follow actual_io function to sync before go futher as this is similar 
    function.

Tested: 
    jam (linux32-LE), koala-pp (linux64-LE), ember
2012-09-07 17:14:08 -05:00
Raymond Lu
78b07da7ae [svn-r22742] ported revisions 22738 to 22741 from the trunk 2012-09-06 11:10:52 -05:00
Jonathan Kim
394f5403a0 [svn-r22741] Purpose:
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access

Description:
    Daily test failed from the previous commit r22735. (koala , ember)
    Fixed failure due to not be able to read external-storage file from external test.

Tested: 
    jam (linux32-LE), koala-pp (linux64-LE)
2012-09-05 14:15:52 -05:00
Allen Byrne
6137e3add0 [svn-r22740] Correct typo on test command 2012-09-05 14:04:00 -05:00
Raymond Lu
9ce6dadd48 [svn-r22739] ported revisions 22615 to 22737 from the trunk 2012-09-05 13:13:15 -05:00
Scot Breitenfeld
fa7b8028af [svn-r22738] Fix for Windows and DLLEXPORT if statement.
Tested: jam (gnu)
2012-09-05 11:52:13 -05:00
Scot Breitenfeld
1c9e159ffe [svn-r22737] Fix for HDF5 HDFFV-8109 H5S_UNLIMITED_F has a wrong type
Tested: jam (gnu)
2012-09-04 22:46:58 -05:00
Scot Breitenfeld
7740e853f4 [svn-r22736] Fix for HDFFV-8132: Compile problem w/NAG Fortran due to too many continuation lines.
Tested: jam (gnu)
2012-09-04 19:59:46 -05:00
Jonathan Kim
0aa8d4d88a [svn-r22735] Purpose:
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access

Description:
    Added H5Pget_mpio_no_collective_cause() function that retrive reasons why the collective I/O was broken during Read/Write IO access.
    Reasons to break collective I/O:
     - SET_INDEPENDENT
     - DATATYPE_CONVERSION
     - DATA_TRANSFORMS
     - MPIPOSIX
     - NOT_SIMPLE_OR_SCALAR_DATASPACES  (NULL Space)
     - POINT_SELECTIONS
     - NOT_CONTIGUOUS_OR_CHUNKED_DATASET  (Compact or External-Storage)
     - FILTERS  

Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
2012-09-04 12:00:38 -05:00
HDF Tester
3ab17f5e04 [svn-r22732] Snapshot version 1.9 release 127 2012-09-02 09:34:02 -05:00
Raymond Lu
60daa9be2b [svn-r22728] I forgot to include H5MMprivate.h header file for using H5MM_free function.
Tested on koala.
2012-08-30 11:00:31 -05:00
Allen Byrne
3c69283e0b [svn-r22726] remove duplicate file line 2012-08-30 09:49:48 -05:00
Allen Byrne
6ce1aa0ffe [svn-r22725] Add other h5 files needed by pbits tests 2012-08-30 09:48:31 -05:00
Allen Byrne
1673b04a23 [svn-r22722] Update all references from configure.in to configure.ac
Tested: h5committest
2012-08-28 12:47:52 -05:00
Allen Byrne
b257bab294 [svn-r22720] Fix RelWithDebInfo packaging 2012-08-28 12:39:30 -05:00
Allen Byrne
1fa894c6b9 [svn-r22718] Remove unneeded srcdir test 2012-08-27 13:51:48 -05:00
Allen Byrne
7089b2cff0 [svn-r22716] HDFFV-8133: Add usage text to see Reference manual for compact subsetting. 2012-08-27 10:56:23 -05:00
Allen Byrne
5d88bae6df [svn-r22714] one more missed VAR change for parallel examples 2012-08-26 14:10:01 -05:00
Allen Byrne
f4a7d2cba2 [svn-r22712] Updated a missed example makefile. Tested locally with make installcheck (another h5committest understanding oversight) 2012-08-24 08:50:00 -05:00
Allen Byrne
caa51543a8 [svn-r22710] Remove reference to srcdir in TOOL path 2012-08-23 11:56:02 -05:00
Allen Byrne
1f8fb63581 [svn-r22709] HDFFV-8129: reconfigured on jam, Remove overloading of autotools TESTS var, rename configure.in to configure.ac, convert test scripts from hard *.sh to configure managed *sh.in files.
Tested: h5committest
2012-08-23 11:07:43 -05:00
Quincey Koziol
cac6687a6a [svn-r22707] Description:
Bring back some more cleanups from the plist_encode_decode branch, clean up
some formatting and compiler errors, and add a few more property comparison
routines that we've skipped implementing in the past.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug
    (Too minor to require h5committest)
2012-08-22 14:09:56 -05:00
Larry Knox
edf83e5d1f [svn-r22706] Updated autotools: autoconf 2.69, automake 1.12.3, m4 1.4.16, libtool 2.4.2
Tested THG machines.
2012-08-22 00:00:32 -05:00
Dana Robinson
e53af0ed74 [svn-r22703] Description:
Propagated Windows and POSIX correctness changes from SEC2 VFD to
    the MPI-POSIX VFD.  Fixes HDFFV-8058.

Tested on:
    jam w/ parallel and fortran enabled
2012-08-21 06:47:54 -05:00
Dana Robinson
d8f67a62cc [svn-r22700] Description:
Minor refactoring to extract managed object length determination.
    This makes the tiny, managed, and huge code work alike.

Tested on:
    jam (very minor change, no need for full commit test)
2012-08-20 13:44:14 -05:00
HDF Tester
1560a6ea38 [svn-r22697] Snapshot version 1.9 release 126 2012-08-19 09:35:47 -05:00
Dana Robinson
3f6b6fbe93 [svn-r22694] Description:
Minor change to consolidate odd bitmasking due to an old bugfix.

Tested on:
    jam (very minor change)
2012-08-17 16:54:21 -05:00
Allen Byrne
60dc75f4f4 [svn-r22693] Add missing H5Tclose(). 2012-08-17 13:36:45 -05:00
Jonathan Kim
bb11cbee94 [svn-r22691] Purpose:
HDFFV-7942 - h5diff: incorrect result for comparing attribute data with different type size in same class

Description:
   This is additional fix due to daily build fail against previous r22684.
   Refer to the svn -r22684 log for previous details

Tested: 
 jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), cmake (jam)
2012-08-16 10:50:25 -05:00
Jonathan Kim
231fc4d781 [svn-r22684] Purpose:
Address HDFFV-7942 - h5diff: incorrect result for comparing attribute data with different type size in same class

Description:
   When comparing attribute data values with same type class but different size, the result was incorrect.  It was due to the size difference and got truncated. 
   Fixed to match up the smaller type size to big type size like what dataset does.

  
Tested: 
 jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), Windows (32-LE cmake), cmake (jam)
2012-08-15 11:04:26 -05:00
Quincey Koziol
d27ec1d3bd [svn-r22681] Description:
Clean up file driver property handling, along with some misc. warnings.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug, gcc 4.7.1, C++, FORTRAN & threadsafe
    (h5committest upcoming)
2012-08-15 09:14:13 -05:00
Vailin Choi
8b72343753 [svn-r22679] Changed H5O_copy_search_comm_dt_check() to use H5O_obj_class() to get object type instead of H5O_get_info(...TRUE...) saving time in traversing metadata.
(This is part of the checkin to 1.8 branch #22677)
2012-08-14 11:56:06 -05:00
Vailin Choi
a9602d1b34 [svn-r22676] Changes needed to make the default free-list mapping from H5FD_FLMAP_SINGLE to H5FD_FLMAP_DICHOTOMY. 2012-08-13 15:04:20 -05:00
Allen Byrne
eb4fd07b5a [svn-r22674] Remove checks for filters are available because the h5dump tests never used the filters in the tests. "-H" option excludes data.
HDFFV-8125
2012-08-13 10:34:22 -05:00
Allen Byrne
4f4db8799c [svn-r22673] Add "_" to list of version separators 2012-08-13 08:39:17 -05:00
HDF Tester
2eb782130a [svn-r22670] Snapshot version 1.9 release 125 2012-08-12 15:28:06 -05:00
Quincey Koziol
d20da589dd [svn-r22668] Description:
Have free space manager use temporary address space for storing the
section info, until the file is flushed or closed.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug, gcc 4.7.x, C++, FORTRAN & threadsafe
    (h5committest forthcoming)
2012-08-11 16:27:58 -05:00
Quincey Koziol
3552beb08b [svn-r22666] Description:
Merge "flush me last" & "flush me collectively" feature from the
avoid_truncate branch back to the trunk.  (To help enable allowing the
free space section info to reside in temporary address space)

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug, gcc 4.7.x, C++, FORTRAN & threadsafe
    (h5committest forthcoming)
2012-08-10 21:26:34 -05:00
Albert Cheng
60c9d88951 [svn-r22657] Bug fix: previous commit has a mistake--it used the wrong type of return
value of FAIL. The function type is a pointer. Fixed it by changing it to NULL.

Tested: In remote machine ADA (aix).
2012-08-09 18:57:57 -05:00
Raymond Lu
527a6edb3e [svn-r22655] Dectris project - I changed the rank of the offset for H5PSIdirect_write from RANK+1 to RANK. But internally, it expands to RANK+1 as
the library requires it to terminate with a zero.

Tested on koala.
2012-08-09 15:24:56 -05:00
Raymond Lu
3b3ae10c5b [svn-r22653] Dectris project: I revised the code per Quincey's suggestion.
Tested on koala.
2012-08-09 14:59:43 -05:00
Mohamad Chaarawi
c3247876b1 [svn-r22651] fix a bug that would skip or include the parallel atomicity test with cmd arguments -o or -x 2012-08-09 13:09:56 -05:00
Allen Byrne
fcdc7614d7 [svn-r22650] Allow second find_package call for legacy libraries (not cmake-configured) 2012-08-09 09:46:15 -05:00
Quincey Koziol
88a94bbe7f [svn-r22646] Description:
Changes resulting from Klocwork static analysis tool, from Mark Miller
@ LLNL (miller86@llnl.gov).

Tested on:
    Mac OS X/64 10.7.4 (amazon) w/debug, C++ & FORTRAN, using gcc 4.7.x
    (too minor to require h5committest)
2012-08-08 18:01:20 -05:00
Allen Byrne
79b2eb993e [svn-r22642] Correct check for filters in tools test 2012-08-08 12:03:44 -05:00
Raymond Lu
faba610060 [svn-r22641] Dectris project: I revised the code per Quincey's and Neil's comments. I added a performance benchmark program dectris_perf.c in the test/ directory.
Tested on koala and jam.
2012-08-08 11:08:27 -05:00
Allen Byrne
9c547117ec [svn-r22637] Remove legacy command to kill MPI processes on obj to obj testing.
Tested: Windows, jam, koala
2012-08-06 15:08:12 -05:00
Allen Byrne
e7896ce1ce [svn-r22633] Correct packaing info 2012-08-06 11:39:13 -05:00
Allen Byrne
db5a8eaa54 [svn-r22631] Move executable statement to after declarations 2012-08-05 21:48:11 -05:00
Larry Knox
456b97b9fa [svn-r22629] Snapshot version 1.9 release 124 2012-08-05 13:42:13 -05:00
Quincey Koziol
f2bc1b43de [svn-r22627] Description:
Merge some of the changes on the plist_encode_decode branch back to the
trunk.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug
    (Too minor to require h5committest)
2012-08-03 18:44:17 -05:00
Allen Byrne
28943c415b [svn-r22625] HDFFV-8111: h5diff compare file to itself - removed path shortcut 2012-08-03 15:11:36 -05:00
Allen Byrne
c9cd62c1b5 [svn-r22624] The cmake folder needed a local variable to not include a "." as one of the path components on windows. 2012-08-03 12:46:47 -05:00
Allen Byrne
cc7ae0a7fe [svn-r22622] Windows config is up one level 2012-08-02 15:31:43 -05:00
Allen Byrne
49a11118ee [svn-r22620] Add ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} to default include_dirs
Correct cmake packaging names
2012-08-02 12:57:54 -05:00
Jonathan Kim
99ef5765f5 [svn-r22618]
Purpose:
  HDFFV-8003 - ph5diff (parallel h5diff): daily test failure on ember intermittently during non comparable test file comparison
  HDFFV-7755 - parallel h5diff : hanging on koala intermittently during non comparable test file comparison

Description:
  non-comparable test intermittently hung on koala and ember, but not on jam. it didn't occur until -np reaches 4 or bigger. it occurred once out of many repeated attempts of the same test.
  There was a incorrectly (mistakenly?) duplicated code in MPI section which caused such hang in a certain condition. The test used more processes than other tests, which increased chance to trigger more undone processes, and such process could enter the incorrect code section and wait for wrong pair of send. it explains why it occurred intermittently according to machine condition and using a certain feature. 
  Removed incorrect code which blocked correct code.
  
Tested: some manually repeated test performed
 jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE)
2012-08-01 12:07:46 -05:00
Jonathan Kim
840ad09105 [svn-r22617] Purpose:
Fix for HDFFV-8107 testh5diff will fail if build/test in HDF5 source tree

Description:
  This is sub-task for "HDFFV-8105 testh5diff.sh uses the wrong operator (-a) in an if statement."
  From the HDFFV-8105's update, h5diff test failed if build&test is performed in HDF5 source tree because 'cp' try to copy test files to self dir. 
  It's addressed by skipping if cp's src dir and dest dir is same.
  Also this applied for all other tools under src/tools dir.
  No change to the CMakeLists.txt files because CMake cautions/demands that in-source builds be avoided.

  
Tested: 
 jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), some manual tests as well
2012-08-01 10:37:40 -05:00
Raymond Lu
8a0b4729cd [svn-r22616] The code for H5PSIdirect_write and its test dectris_tst.c.
Tested on koala and jam.
2012-07-30 17:14:46 -05:00
Raymond Lu
305950acf9 [svn-r22615] porting revisions from 22586 to 22614 from the trunk 2012-07-30 16:22:35 -05:00
Allen Byrne
d4d9cbd52d [svn-r22614] Revert heading of summary. 2012-07-30 14:15:31 -05:00
Scot Breitenfeld
65100aa371 [svn-r22611] Fixed: HDFFV-8013 H5LTget_attribute_string appears to not close an object identifier
Tested: gnu and intel (jam)
2012-07-26 22:18:03 -05:00
Scot Breitenfeld
f385b0d537 [svn-r22610] HDFFV-8055 H5TBdelete_record destroys data after the deleted row
Added fix and test case.

Tested: gnu and intel (jam)
2012-07-26 21:51:04 -05:00
Quincey Koziol
7143164de9 [svn-r22608] Description:
Switch propert list/class iteration from internal to external form of
iteration, cleaning up and simplifying the code a bit.

    Bring other general improvements from plist_encode_decode branch back to
trunk.

    Clean up many warnings.


Tested on:
    Mac OSX/64 10.7.4 (amazon) w/gcc 4.7, debug and C++ & FORTRAN
    (too minor to require h5committest)
2012-07-26 14:33:59 -05:00
Allen Byrne
74e0060526 [svn-r22606] Correct typo from cut/paste 2012-07-26 09:21:15 -05:00
Allen Byrne
aeaab5204b [svn-r22605] Skip test that require h5diff to compress when the DEFALTE filter is unavailable 2012-07-26 08:54:06 -05:00
Allen Byrne
389e928176 [svn-r22604] cast void* to char* for calculation
Issue on windows
2012-07-26 08:32:12 -05:00
Allen Byrne
dd27fe612c [svn-r22602] 2012-07-25 17:17:48 -05:00
Neil Fortner
c04144fb39 [svn-r22601] Purpose: Fix HDFFV-5853
Description:
When jumping out from between H5_BEGIN_TAG and H5_END_TAG macros using
HGOTO_ERROR or HGOTO_DONE, the previous metadata tag is not reset on the dxpl.
This could cause problems when, for example, calling H5Ocopy within an
H5Literate callback.

Added new HGOTO_ERROR_TAG and HGOTO_DONE_TAG macros which must be used in place
of the above between H5_BEGIN_TAG and H5_END_TAG.

Tested:
jam, koala, ostrich (h5committest), durandal
2012-07-25 16:50:22 -05:00
Allen Byrne
b5ef63b550 [svn-r22599] FinHDF5 should be generated during build. 2012-07-24 09:10:05 -05:00
Allen Byrne
ab072288ad [svn-r22598] BE machines have a different offset in STORAGE_LAYOUT then the LE machines.
Use h5diff with -r to not report warnings.

Tested: local with CMake and ostrich with shell script
2012-07-23 10:58:30 -05:00
Albert Cheng
9e08a0d8c5 [svn-r22594] Bug fix: HDFFV-8105
Description:
The test command in COPY_TESTFILES_TO_TESTDIR used the wrong operator -a which
means and. It is not sufficient to test mere existence as $tstfile could have
been a directory or other non-file things.  If the file is not readable, the
$CP command would fail but its return code was not checked.

Solution:
Get rid of the test command and go ahead to $CP it and then check its returned
code and report errors if detected.

Tested; committested. (note that ostrick still failed on errors committed by
other staff).
2012-07-22 01:42:30 -05:00
Allen Byrne
23d32fec25 [svn-r22590] correct reference file location in runTest command 2012-07-20 11:55:37 -05:00
Allen Byrne
3a1c4de359 [svn-r22589] Change strto functions to the HD prefix versions.
Tested: local
2012-07-20 11:41:11 -05:00
Allen Byrne
4a6f93f895 [svn-r22588] HDFFV-721: h5dump supplies input for h5import
Tested: local linux with cmake
        jam with configure
2012-07-19 14:53:17 -05:00
Quincey Koziol
75f4e51a1a [svn-r22582] Description:
Refactor ID class registration to be more like how other "class"s in the
library are registered, and clean up compiler warnings.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug
    (Too minor to require h5comittest)
2012-07-16 14:54:26 -05:00
Allen Byrne
2e3ab09a52 [svn-r22581] HDFFV-588: hdump restrictions on filename for split files. Added text and example to usage.
Tested: local linux
2012-07-16 13:21:05 -05:00
Allen Byrne
d06dd11291 [svn-r22577] Windows compilers require declarations at top of routine. 2012-07-16 10:08:03 -05:00
Raymond Lu
feb79ce8ea [svn-r22575] Issue 8068 - A user reported some random data in the padding of fill value. The problem happened in H5P_get_fill_value. I believe it's because the background buffer wasn't big enough. So I corrected it in this checkin.
Tested on jam and koala - simple change.
2012-07-13 17:10:57 -05:00
Allen Byrne
c7513e1776 [svn-r22570] Correct name of error reference file 2012-07-13 09:12:17 -05:00
Allen Byrne
f48ae2195a [svn-r22569] On windows read/write error reference file just like reference file before comparision. This will set the line endings. 2012-07-13 08:58:18 -05:00
Allen Byrne
a947f3b755 [svn-r22568] fix another typo - due to wrong edit state! 2012-07-12 16:50:26 -05:00
Allen Byrne
210d04b05f [svn-r22567] HDFFV-7784: add attributes to the list of file contents option for h5dump. This is accomplished by adding an optional value to the option (-n)
Created test and reference files.

Tested: local linux with cmake
2012-07-12 15:30:30 -05:00
Allen Byrne
1942f47bcf [svn-r22566] correct typo of new files names 2012-07-12 11:51:30 -05:00
Allen Byrne
6e0eb24b7b [svn-r22564] HDFFV-8095: index order of links wrong
Create setters for indexing options in h5trav.c to be set before the obj table is created. 
Revert h5trav_print to remove now duplicated parameters.
Added test and testfiles.

Tested: local linux with cmake
2012-07-12 10:40:15 -05:00
Allen Byrne
b54b3fcf29 [svn-r22563] HDFFV-8095: index order of links wrong
Create setters for indexing options in h5trav.c to be set before the obj table is created. 
Revert h5trav_print to remove now duplicated parameters.
Added test and testfiles.

Tested: local linux with cmake
2012-07-12 10:38:44 -05:00
Allen Byrne
4bba12dbee [svn-r22562] tattr-3err file missing from list in cmake 2012-07-12 08:56:25 -05:00
Allen Byrne
fa28c69b55 [svn-r22561] Add errfile to list.
Create missing errfile, edit ddl file for test only on linux (not using cmake).
2012-07-12 08:52:31 -05:00
Allen Byrne
f1850c6156 [svn-r22560] Changes to allow tests to compare error files! 2012-07-12 08:32:47 -05:00
Allen Byrne
7bed6ec213 [svn-r22557] Add missing test file 2012-07-11 15:46:12 -05:00
Allen Byrne
d987b06112 [svn-r22556] HDFFV-7936: added error files in h5dump folder and adjusted scripts to compare error files.
Tested: local linux with cmake,
   jam with make check
2012-07-11 15:12:31 -05:00
Allen Byrne
4b29d11f74 [svn-r22552] update comment 2012-07-11 10:16:14 -05:00
Allen Byrne
61cb9cc547 [svn-r22550] Correct datatypes in generator and update files for test.
Tested: local linux with cmake
2012-07-11 09:03:53 -05:00
Allen Byrne
91d63fa0ae [svn-r22548] added test for "-w0" option
Tested: local linux
2012-07-10 14:51:56 -05:00
Allen Byrne
59da54f0fd [svn-r22547] Remove clear-objects from ignore list (like h5import) 2012-07-10 14:31:54 -05:00
Allen Byrne
912daba464 [svn-r22546] Correct generation of testfile 2012-07-10 13:58:20 -05:00
Allen Byrne
a7f482142e [svn-r22545] Enable H5IMPORT-clear-objects for valgrind
Tested: local linux
2012-07-10 13:36:01 -05:00
Allen Byrne
87fe8971ed [svn-r22544] Add test to verify use of named datatypes
HDFFV-2687
Tested: local linux with cmake
2012-07-10 12:12:06 -05:00
Jonathan Kim
bb696c61ac [svn-r22541] Purpose:
HDFFV-7602 - GMQS: HDF5 command tools: Provide framework for reusable test files among tools
  Stage2 working for h5dump tool.

Description:
  Update cmake script to fetch test files from any tools to a test directory
  and run test in organized manner. 
  Also keep the apperance similiar to shell script for better maintainance.
  
Tested:
  CMake (Windows and jam)
2012-07-10 10:37:14 -05:00
Allen Byrne
212cd31641 [svn-r22539] Correct indentation 2012-07-10 09:31:22 -05:00
Allen Byrne
a496d41ac7 [svn-r22537] Correct error string contents 2012-07-10 09:22:40 -05:00
Allen Byrne
a0aca32d35 [svn-r22535] added missing break to end of case statement 2012-07-10 08:57:58 -05:00
Allen Byrne
8019ed0b59 [svn-r22534] Correct contents of reference files 2012-07-10 08:22:14 -05:00
Allen Byrne
7417af566e [svn-r22533] Correct order of declarations in functions. 2012-07-10 08:16:26 -05:00
Allen Byrne
17eca872f1 [svn-r22531] HDFFV-5942: sort options with contents option
Added static local variables in h5trav to hold the index_by and index_order values. Defaults are set.
H5dump only use of the trav_print function, added two parameters and passed in the sort_by and sort_order variables.

Tested: local linux
2012-07-09 14:41:17 -05:00
Allen Byrne
637df34074 [svn-r22528] HDFFV-4206: h5dump -w0 needed to be tested within the get option function.
Tested: local linux and all H5DUMP tests still work
2012-07-09 13:02:24 -05:00
Allen Byrne
b3cafaa61d [svn-r22527] Update Ignore List for change to H5IMPORT tests 2012-07-09 12:32:07 -05:00
Allen Byrne
1a195c1ee0 [svn-r22526] ifdef around the text file generation in importtest.
reordered tests so that both scripts are in similar order.
Changed ADD_H5_TEST in CMake file to always delete the created h5 file.

Tested: local linux
2012-07-09 12:25:16 -05:00
Larry Knox
9e79829ab8 [svn-r22525] Snapshot version 1.9 release 124 2012-07-09 11:54:50 -05:00
Allen Byrne
6f5ba815f0 [svn-r22516] Add new testfiles for h5dump with eight varieties of ints and used in an Attribute and Compound datatypes.
Tested: local linux using CMake
2012-07-05 14:59:36 -05:00
Allen Byrne
862d74c6ff [svn-r22514] Correct failure REGEX test to test value of TEST_EXPECT 2012-07-05 09:36:53 -05:00
Scot Breitenfeld
ce47ef777f [svn-r22510] Enabled the compilation of tH5E_F03.f90 2012-07-02 20:16:45 -05:00
Allen Byrne
720769743e [svn-r22507] Correct file name typo 2012-07-02 14:09:37 -05:00
Allen Byrne
721e652427 [svn-r22506] HDFFV-7782: resolve names of tests files with tests - added two copies of references files and adjusted CMake and linux test script.
Tested: local linux w/ CMake
2012-07-02 12:35:11 -05:00
Elena Pourmal
732ae085dc [svn-r22504] Maintenance:
See HELPDESK-643 issue in JIRA.
NAG Fortran compiler doesn't like the current tH5E_F03.f90 file that has only comments
and no executable statements. Removed tH5E_F03.f90 from the list of modules to build.

Tested on jam with Intel compiler using --enable-fortran2003 flag.
2012-06-29 15:39:42 -05:00
Allen Byrne
2a3c0587ed [svn-r22499] Add seconf new file! 2012-06-27 14:41:21 -05:00
Allen Byrne
afb0efe139 [svn-r22498] Add new test to linux script 2012-06-27 14:27:19 -05:00
Allen Byrne
a30bf0f61a [svn-r22497] Added new file 2012-06-27 14:24:23 -05:00
Allen Byrne
a13344aefd [svn-r22496] Add file to test integer sizes for attributes
Tested: local linux
2012-06-27 13:26:16 -05:00
Larry Knox
4a7802b82b [svn-r22495] Skip the failing File Creation I/O subtest that causes c++ tests to fail with the new/PGI compiler (see HDFFV-
8067).

Tested jam, koala, ostrich.
2012-06-27 11:12:57 -05:00
Raymond Lu
9ded3f59ed [svn-r22490] I took out the "return an error" line in H5Dget_offset, to match what the RM says about the function behavior.
Quincey added it some time ago without realizing it caused test errors (Issue 8072).

Tested on ostrich, MacGoblin - simple change.
2012-06-25 17:00:06 -05:00
HDF Tester
02a0bd53e8 [svn-r22487] Snapshot version 1.9 release 122 2012-06-24 09:29:36 -05:00
Quincey Koziol
76c13682e4 [svn-r22486] Description:
Fix typo with last change and reformat a little bit
2012-06-23 18:42:09 -05:00
Quincey Koziol
5f8d6d5bb5 [svn-r22484] Description:
Copy the file image test file from the source directory to the build
directory, instead of trying to open the [in-memory] file R/W.

    Also, clean up a few other test files that were left lying around from
other tests.

Tested on:
    MacOSX/64 10.7.4 (amazon) w/debug
    Too minor to require h5committest
2012-06-23 18:32:02 -05:00
Elena Pourmal
24b1316f8b [svn-r22482] Maintenance:
- Fixed a typo in return value of the nh5dread_f_c function ( was 1
      instead of 0 on success); fixed the return value to make it consistent
      with other Fortran functions; cleaned the code from debug statements.

Platforms tested: jam with GNU and Intel compilers, fortran 2003 feature.
2012-06-23 18:31:40 -05:00
Allen Byrne
b608652f7e [svn-r22479] Remove subfolder tools from install command 2012-06-20 09:43:02 -05:00
Allen Byrne
d0347999e6 [svn-r22477] Removed subfolder tools from install command, need to correct install template 2012-06-20 09:38:23 -05:00
Allen Byrne
9b63d7d513 [svn-r22471] Add check for MINGW - ws2_32 library
Tested: windows - mingw
2012-06-18 15:01:59 -05:00
Allen Byrne
860fe3d4d7 [svn-r22470] Allow MinGW checks for fseek and the like
Tested: windows 32 mingw
2012-06-18 13:01:57 -05:00
Allen Byrne
79b36622aa [svn-r22469] MinGW Flags need to use dash
set WINSOCK2_H
      do not test for endianess
      
Tested: windows 32 minGW
2012-06-18 12:29:44 -05:00
Allen Byrne
603fc9dbe0 [svn-r22464] Correct name used for POSIX flag 2012-06-15 08:26:33 -05:00
Allen Byrne
7eb9d11fa2 [svn-r22460] Update CPack assignments. 2012-06-13 15:59:24 -05:00
Raymond Lu
0a6b3c2d4b [svn-r22458] I added an item in the known problem section for the data conversion problem on Mac Lion. 2012-06-12 15:55:52 -05:00
Allen Byrne
c02719a4c8 [svn-r22455] Add NOT WINDOWS blocking around VSNPRINTF works check. 2012-06-12 08:55:01 -05:00
Allen Byrne
20d45c853d [svn-r22453] Add missing property for resultcode of 1 to MEMCHECKER tests 2012-06-12 08:50:47 -05:00
Allen Byrne
75f3194882 [svn-r22450] Update winsock define to match autotools configure check 2012-06-11 10:49:25 -05:00
HDF Tester
d1b7eede73 [svn-r22448] Snapshot version 1.9 release 121 2012-06-10 08:53:06 -05:00
Allen Byrne
dde94c349e [svn-r22447] DAILYTEST-13: Remove check for vsnprintf works in config. Correct HAVE_WINSOCK name.
Tested: windows
2012-06-08 11:00:58 -05:00
Allen Byrne
0820bef83e [svn-r22445] Add new test to CMake file
Tested: local linux
2012-06-07 16:06:57 -05:00
Vailin Choi
73db2056a3 [svn-r22444] (1) fix for making MEM_GHEAP as MEM_DRAW
(2) fix to extend into the aggregator based on threshold
(3) fix for the "flavor" logging problem
(4) fix for test failures due to the above fixes
(5) bug fix for h5stat when h5stat against a non-existing file
2012-06-07 11:04:56 -05:00
Allen Byrne
a6d41f7a75 [svn-r22441] Move some tests into NOT WINDOWS blocks 2012-06-06 17:11:07 -05:00
Allen Byrne
a11a6d9b34 [svn-r22437] Correct Windows cmake config files
Tested: windows
2012-06-05 14:36:41 -05:00
Quincey Koziol
65bf87c4a6 [svn-r22432] Description:
Correct misspelled debugging #ifdef and remove unused variable.

Tested on:
    Mac OS X/64 10.7.4 (amazon) w/serial
    (too minor to require h5committest)
2012-06-04 15:14:59 -05:00
Allen Byrne
d419d8a417 [svn-r22431] Extension is cpp! 2012-06-04 12:41:26 -05:00
Allen Byrne
7b1ea8aa2a [svn-r22430] CMake and configure synchronization effort. CMake added most tests and options: DEBUGPKG not addressed.
Still needed: compiler wrapper scripts

Tested: local linux(cmake) and h5committest
2012-06-04 12:05:02 -05:00
HDF Tester
64fc9df55b [svn-r22427] Snapshot version 1.9 release 120 2012-06-03 09:29:20 -05:00
Larry Knox
f4990be635 [svn-r22426] Add examples/README file to be installed with examples.
Text file only, but tested with h5committest.
2012-06-02 13:54:58 -05:00
Jonathan Kim
71c9b82d5e [svn-r22419] Purpose:
HDFFV-7602 - GMQS: HDF5 command tools: Provide framework for reusable test files among tools
  Stage2 working for h5diff tool.

Description:
  Update cmake script to fetch test files from any tools to a test directory
  and run test in organized manner. 
  Also keep the apperance similiar to shell script for better maintainance.
  
Tested:
  CMake (Windows and jam)
2012-05-29 18:03:57 -05:00
Allen Byrne
ed84ad426b [svn-r22416] Missing ${TEST_FOLDER} path component in test script 2012-05-29 09:31:09 -05:00
Allen Byrne
bf24ca6741 [svn-r22415] Windows needs monolithic set for CPack (CMake 2.8.6) 2012-05-29 09:24:01 -05:00
HDF Tester
80955cf224 [svn-r22413] Snapshot version 1.9 release 119 2012-05-27 09:34:59 -05:00
Allen Byrne
eb5b8163f9 [svn-r22411] reduce compiler warnings by removing unreferenced variables and adding cast
Tested: local linux
2012-05-25 12:39:07 -05:00
Allen Byrne
d7bfa3617f [svn-r22410] reduce compiler warnings reported by CDash for non-critical issues 2012-05-25 12:36:01 -05:00
Allen Byrne
d54152f057 [svn-r22406] do not need warnings from utility program. 2012-05-25 08:36:04 -05:00
Allen Byrne
336a743068 [svn-r22405] HDFFV-8018: add INSTALL commands for packaging the pdb files for windows when configured with RelWithDebInfo
Tested: local linux and Windows
2012-05-24 16:50:06 -05:00
Allen Byrne
01553cb8f7 [svn-r22396] Correct missing clean filenames in h5dump make
Sync 518/trunk version and cpack info
2012-05-23 13:15:08 -05:00
Raymond Lu
955b84369e [svn-r22393] I forgot to close a few datatypes in test_str_create. I fixed them in this commit.
Tested on jam - very simple change.
2012-05-23 09:42:43 -05:00
Scot Breitenfeld
24810fd216 [svn-r22392] Added test for h5tcreate_f with H5T_STRING_F option.
Cleaned-up formating and comments for h5tcreate_f.

Tested: jam (gnu compiler)
2012-05-22 23:47:31 -05:00
Allen Byrne
b904ca7ec3 [svn-r22391] HDFFV-7999: h5dump did not display H5T_DSET_UTF8.
Changed if/else block to switch like in h5ls, and distinguished between ERROR and UNKNOWN.
Reviewed by JKM
Tested: local linux
2012-05-22 16:36:45 -05:00
Allen Byrne
2f8b5057c1 [svn-r22390] Break out the packed bits tests into a new script.
reconfigure on jam
Tested: local linux
2012-05-22 15:34:34 -05:00
Allen Byrne
0cbde329bd [svn-r22388] remove unbalanced bracket 2012-05-22 09:03:43 -05:00
Allen Byrne
56d35fd969 [svn-r22386] Add missing H5_VERS_SUBRELEASE of version info 2012-05-21 16:32:21 -05:00
Allen Byrne
5e388aa257 [svn-r22385] Skip tests using sparse file writes on Windows. JIRA issue (JIRA HDDFV-8064) created. 2012-05-21 15:37:19 -05:00
HDF Tester
823e63252b [svn-r22382] Snapshot version 1.9 release 118 2012-05-20 09:36:03 -05:00
Mohamad Chaarawi
b247ef2d89 [svn-r22378] removed the parallel #endif by mistake.. oops
remove an un-needed bool
2012-05-18 10:01:41 -05:00
Mohamad Chaarawi
886039ab68 [svn-r22377] make the file and memory MPI datatypes as default properties in the
DXPL so that we don't have to insert and remove them everytime we
perform collective I/O.

Test with h5committest
2012-05-18 09:51:41 -05:00
Mohamad Chaarawi
7aaa1ad229 [svn-r22375] add a test to expose a memory leak when adding/removing the same property in property list multiple times.
fix that bug.

test with h5committest
2012-05-18 09:08:58 -05:00
Jonathan Kim
27535adaa9 [svn-r22373] Purpose:
Fix h5repacktst (test file generating binary) to address HDFFV-8016  h5repacktst failed in AIX 32bit mode

Description:
  Segmentation fault occurred when h5repacktst try to generate a dataset when
  system memory is limited to 256MB. 
  Add error handling to display apporiate message to exit and adjust the test 
  dataset according to the original size which didn't causing out of memory.

Tested:  test was done by limit memory in csh.
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE)
2012-05-16 16:16:20 -05:00
Dana Robinson
6e1a85e781 [svn-r22371] Fix for HDFFV-7697
Minor change to error message text in H5R.c.

Minor change: tested on jam
2012-05-15 12:38:36 -05:00
Larry Knox
7e33b49405 [svn-r22369] Change case of filename to match file. 2012-05-14 22:12:31 -05:00
Allen Byrne
45e119b7d2 [svn-r22368] change file name case 2012-05-14 17:36:04 -05:00
Allen Byrne
987b0ac639 [svn-r22366] Added libsettings file to packaging 2012-05-14 15:09:13 -05:00
Allen Byrne
a4eb58bc33 [svn-r22361] Change library source properties: remove "LANGUAGE C" property from headers. Add "LINKER C" property to link.
Tested: local linux
2012-05-14 12:19:56 -05:00
HDF Tester
306a2e07e1 [svn-r22356] Snapshot version 1.9 release 117 2012-05-13 09:35:22 -05:00
Allen Byrne
b285c91189 [svn-r22346] replace C++ style comments 2012-05-07 12:47:46 -05:00
HDF Tester
825a2ae17e [svn-r22326] Snapshot version 1.9 release 116 2012-04-29 09:36:52 -05:00
Quincey Koziol
b1b8ff96bb [svn-r22324] Description:
Change name of MPE log file produced from "cpilog" (which was the name
used in the example code we were referencing) to "h5log".

Tested on:
    None, too trivial, eyeballed only...
2012-04-29 00:04:39 -05:00
Jonathan Kim
b9b39067e0 [svn-r22323] Description:
The ph5diff (parallel h5diff) can intermittently hang in parallel mode
  when comparing the two HDF5 files that contains common name objects with 
  different object types.  (HDFFV-8003)
  Skip only the specific test for parallel until the fix has made.

Tested:
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
2012-04-27 15:37:02 -05:00
Jonathan Kim
1b35c60118 [svn-r22319] Purpose:
Fix for HDFFV-7998-h5diff: incorrect behavior and output for comparing symbolic dangling links without following-symlinks option 

Description:
  Fix not to check and display dangling link status without --follow-symlinks option.
  Berfor the fix, when comparing symbolic link to symbolic link without follow-symlinks option, h5diff followed to check if those links are dangling or not. It caused to display output incorrectly (dangling link instead of symbolic link).
  
  The fix also improved performance when comparing lots of symbolic links without the --follow-symlinks option.
  Test cases were added and tagged with jira#.

Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), Cmake (jam)
2012-04-26 10:56:16 -05:00
Allen Byrne
8c138d7844 [svn-r22318] Use new function that combines two functions that check for vlen types. Based on code used in h5ls.
Tested: local linux
2012-04-26 09:51:36 -05:00
Quincey Koziol
447d13e82b [svn-r22312] Description:
Correct error reported by user (Martin Otte) where we weren't using
realloc'ed buffer in MPI datatype code.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/parallel
2012-04-23 14:21:23 -05:00
HDF Tester
3d90128b16 [svn-r22311] Snapshot version 1.9 release 115 2012-04-22 09:35:32 -05:00
Jonathan Kim
41b9ce962a [svn-r22300] Purpose:
Fix for HDFFV-8001 - h5unjam: segfault when used -V (show version) option

Description:
  h5unjam has an option '-V' to display version information.
  "h5unjam -V" caused segfulat for 1.8.9 pre-release.

Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), Cmake (jam)
2012-04-19 16:38:07 -05:00
Quincey Koziol
a07c8f9247 [svn-r22287] Description:
Clean up more FUNC_ENTER/FUNC_LEAVE macros and move H5D & H5T code toward
the final design (as exemplified by the H5EA & H5FA code).

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug & parallel
2012-04-16 16:20:26 -05:00
HDF Tester
bdb6e538ac [svn-r22286] Snapshot version 1.9 release 114 2012-04-15 09:36:51 -05:00
Jonathan Kim
10b62203a3 [svn-r22277] Purpose:
Fix for HDFFV-7993 - h5repack fails with error "chunk size must be <= maximum dimension size for fixed-sized dimensions"

Description:
  Fixed a failure when change the chunk size of a specified chunked dataset with unlimited max dims.
  Also took care of converting to contiguous and compact from the dataset.
  Test cases were added and tagged with jira#.

Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), Cmake (jam)
2012-04-11 15:57:10 -05:00
Allen Byrne
5044553875 [svn-r22275] Clear up examples vs applications instances and add minimum file. 2012-04-11 12:37:50 -05:00
Allen Byrne
09fa6e9c54 [svn-r22263] Use correct index for inserting null terminator
Tested: windows under debug
2012-04-09 12:25:17 -05:00
HDF Tester
e6d35a86f3 [svn-r22257] Snapshot version 1.9 release 113 2012-04-08 09:40:16 -05:00
Allen Byrne
fad3139684 [svn-r22247] Added new files and tests to CMakeLists.txt
Tested: local linux
2012-04-04 13:01:29 -05:00
Scot Breitenfeld
1a4865d8fe [svn-r22246] Changed code comments for h5ltpath_valid_f 2012-04-03 23:02:17 -05:00
Quincey Koziol
2bd76c2d86 [svn-r22244] Description:
Correct use of deprecated API routines in test routine.

Tested on:
        FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
        FreeBSD/64 8.2 (freedom) w/gcc4.6, 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 (koala) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (ostrich) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (ember) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Mac OS X/32 10.6.8 (amazon) in debug mode
        Mac OS X/32 10.6.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2012-04-03 16:42:18 -05:00
Scot Breitenfeld
2c75e81cde [svn-r22243] Updated the comments for robodoc inclusion and changed spacing formatting in the source
headers, cosmetic changes only.
2012-04-02 23:13:30 -05:00
Raymond Lu
3c017d7d37 [svn-r22242] Issue 7934 - The data sieve buffer size was for all the datasets in the file. It
could waste memory if any dataset size is smaller than the sieve buffer
      size.  Now the library picks the smaller one between the dataset size
      and the sieve buffer size from the file access property.

Tested on jam, koala, and ostrich.
2012-04-02 17:14:50 -05:00
Quincey Koziol
b797818c8b [svn-r22240] Description:
Update comment about metadata block size test.
2012-04-02 13:26:00 -05:00
Albert Cheng
41f7a9fb39 [svn-r22238] Added comment to explain why FNAME4 is used and cautioned other files may not
work.
2012-04-02 10:27:39 -05:00
Quincey Koziol
e7edf48b8d [svn-r22236] Description:
Switch 'snprintf' -> 'HDsnprintf'

Tested on:
	(eyeballed only, very simple)
2012-04-02 09:39:37 -05:00
Binh-Minh Ribler
88ce565d7d [svn-r22235] Purpose: Fixed bugs HDFFV-2761 & HDFFV-7852
Description:
    - Replaced PredType::NotAtexit() with PredType::AtExit(H5CPP_EXITED);
      and used PredType::AtExit as a flag to detect when all predefined
      types have been destroyed.  Then, H5close will be called to terminate
      the library after its being re-initiated when the PredType destructors
      were activated.  This change removed the memory leaks shown by the
      user's sample program.
    - Added H5CPP_EXITED for PredType::AtExit to use as a flag
    - Updated some inaccurate comments
    - Removed stream functions from FileAccPropList
    - Replaced H5_VMS with appropriate macro in H5IdComponent.cpp
    - Corrected many URLs (hdfgroup vs. ncsa) in comments
    - Replaced std::string with H5std_string in comments
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (amani)
    SunOS 5.10 (linew)
2012-04-01 22:14:19 -05:00
Quincey Koziol
42306f8ed4 [svn-r22233] Description:
Correct several errors in fractal heap code: root indirect block was
getting pinned/protected more than once, "single" free space sections weren't
getting "re-parented" correctly when the heap transitioned between having a
root indirect block and a root direct block, and several related issues.  Also
cleaned up some warnings in library/tests.

Tested on:
    FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
    FreeBSD/64 8.2 (freedom) w/gcc4.6, 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 (koala) w/Intel compilers, w/default API=1.6.x,
        w/C++ & FORTRAN, in production mode
    Mac OSX/64 10.7.3 (amazon) w/debug
2012-04-01 18:53:17 -05:00
Quincey Koziol
982f1ff8ff [svn-r22229] Description:
Add 'H5O_mcdt_search_cb_t' to bin/trace script and re-run the
bin/reconfigure script.

Tested on:
        FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
        FreeBSD/64 8.2 (freedom) w/gcc4.6, 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 (koala) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
2012-04-01 17:32:04 -05:00
Quincey Koziol
85594d2856 [svn-r22224] Description:
Clean up a few warnings and use constant values for free-space
parameters for the metadata block size test.

Tested on:
	Linux/64 2.6.18 (koala) w/production & szip
	(h5committested also)
2012-04-01 16:18:37 -05:00
Quincey Koziol
6783ce354c [svn-r22222] Description:
Update GCC compiler flags for new 4.7.0 release.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/gcc 4.7.0
2012-04-01 15:42:21 -05:00
Quincey Koziol
cb28551c3e [svn-r22221] Description:
Small code cleanup while tracking down h5repack issue.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
    (h5committest coming up)
2012-04-01 14:25:41 -05:00
Albert Cheng
8123f8221a [svn-r22220] Feature: HDFFV-7981
Added test to verify h5repack --metadata option produces bigger size file.

Tested: h5committest (koala, jam, ostrich).
2012-03-31 15:50:31 -05:00
Quincey Koziol
c2a9dcb897 [svn-r22219] Description:
Merge "file image" changes from feature branch back to trunk.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
    (h5committest upcoming)
2012-03-31 03:49:35 -05:00
Albert Cheng
b51ffb25fe [svn-r22214] Feature: HDFFV-7981
Added test to verify h5repack --metadata option produces bigger size file.

Tested: h5committest (koala, jam, ostrich).
2012-03-30 18:24:31 -05:00
Dana Robinson
ea8166cf62 [svn-r22211] STDIO VFD fixes (HDFFV-7917). Mainly Windows correctness issues (propagated from the SEC2 VFD and the old Windows VFD) and issues where large files are accessed.
Tested on:
64-bit Mac OS-X
64-bit Windows 7
jam
koala
ostrich
2012-03-30 16:42:47 -05:00
Allen Byrne
0911e4e78a [svn-r22202] Add extra search term 2012-03-29 17:26:29 -05:00
Allen Byrne
a3911962c7 [svn-r22199] Correct typo 2012-03-29 17:18:48 -05:00
Allen Byrne
3690a875f2 [svn-r22198] Update MINGW configuration (MinGW is Windows except for some issues) 2012-03-29 17:16:38 -05:00
Allen Byrne
40c3252951 [svn-r22195] Add PASS_REGULAR_EXPRESSION property to fortran tests to verify 0 errors. Some platforms do not return proper value in CMake ADD_TEST and results in a false positive.
Tested: local linux
2012-03-29 16:32:59 -05:00
Allen Byrne
45a0d7e3f4 [svn-r22190] Update MINGW configuration 2012-03-29 12:51:56 -05:00
Allen Byrne
7d347f2afd [svn-r22185] Update MINGW configuration to match HDFMacros settings for shared library 2012-03-29 10:59:34 -05:00
Allen Byrne
455c125685 [svn-r22183] Correct typo 2012-03-29 10:29:06 -05:00
Allen Byrne
f05aa59a26 [svn-r22182] Update MINGW configuration 2012-03-29 09:48:57 -05:00
Quincey Koziol
7ffa2b1bea [svn-r22181] Description:
Correct typo in test file name.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
2012-03-29 08:46:16 -05:00
Quincey Koziol
a3dcbef52b [svn-r22180] Description:
Add new "metadata block size" command line option ('-M <x>' or
'--metadata_block_size=<x>') for h5repack.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug)
    (h5committest upcoming)
2012-03-29 05:49:38 -05:00
Dana Robinson
e13eb463e0 [svn-r22178] Fixed a bad merge where truncate was called twice in the core VFD.
Minor change: tested on jam, koala, ostrich and 64-bit Windows 7 with the core
VFD set.
2012-03-28 18:03:17 -05:00
Jonathan Kim
6cef6bca1f [svn-r22176] Purpose:
Fix for HDFFV-7644 GMQS: h5diff - incorrect behaviors when comparing HDF5 files with different type of objects (dataset, group, type) as common objects

Description:
  Fixed failure for comparing same named object with different object types in comparing groups. (common object comparison)
  Prior to the fix, h5diff resulted in error. After the fix, h5diff detects such case as non-comparable and display messages accordingly.
  Test cases were added and tagged with jira#.

Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), Cmake (jam)
2012-03-28 17:09:38 -05:00
Allen Byrne
d4ab4456d0 [svn-r22175] MinGW compile issues fixed.
Reviewed

Tested: windows (big test using stdio ony fails - this will be filed for further investigation)
2012-03-28 17:00:41 -05:00
Neil Fortner
8448745891 [svn-r22173] Purpose: Fix HDFFV-7762
Description:
When copying an object with attribute creation order tracked, the attribute
creation order was not copied correctly to the destination file, causing an
error if the creation order was also indexed (due to attempting to insert
duplicate keys) or incorrect creation orders otherwise.  Fixed to copy the
creation order correctly.

Also fixed the attribute character set not being copied, and fixed an issue
where an attribute opened with H5Aopen (or similar, but not by_idx), from an
object using the latest format but without creation order being tracked, would
always report the creation order as 0 (and marked as valid).

Tested: jam, koala, ostrich (h5committest), durandal
2012-03-28 16:02:30 -05:00
Quincey Koziol
35a0e27e88 [svn-r22171] Description:
Bring "merge committed datatypes during H5Ocopy" feature from branch to
trunk.  (Also has some minor bugfixes with it)

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
    (h5committest coming up)
2012-03-28 14:45:49 -05:00
Dana Robinson
f1df456412 [svn-r22170] Removed extraneous svn executable properties from non-executable files. 2012-03-28 14:30:59 -05:00
Quincey Koziol
6c4187b4c9 [svn-r22169] Description:
Clean up formatting and whitespace.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
    (too minor to require h5committest)
2012-03-28 14:17:55 -05:00
Allen Byrne
a46cd31c83 [svn-r22166] Reduce warnings from unneeded windows incude file.
Reviewed HDF5-68

Tested: windows
2012-03-28 11:13:11 -05:00
Vailin Choi
b643da672a [svn-r22164] Fixed a bug in H5Ocopy(): When copying an opened object, call the object's
flush class action to ensure that cached data is flushed so that H5Ocopy will get
the correct data.  (HDFFV-7853)
2012-03-28 01:21:14 -05:00
Scot Breitenfeld
0ce5cbc925 [svn-r22163] Added tests for optional parameters in h5ocopy_f.
Cleaned up comments by removing "C" notation comments

Tested: jam (gnu, intel)
        koala (intel)
2012-03-28 00:43:22 -05:00
Dana Robinson
e4291accaa [svn-r22161] Added a message when the time-consuming test is skipped due to a lack of sparse file support.
Minor change: tested on 64-bit Windows 7
2012-03-27 16:49:08 -05:00
Scot Breitenfeld
a9e2b5463d [svn-r22154] Fixed comments for h5pcreate_f; added missing property classes.
Tested: N/A
2012-03-26 22:57:17 -05:00
Dana Robinson
2b3a190501 [svn-r22152] Added a "skipped" message to the istore sparse test function.
Minor change: tested on jam (test not skipped) and Mac OS-X Lion (test skipped
due to HFS not supporting sparse files).
2012-03-26 16:11:50 -05:00
Mike McGreevy
086035bede [svn-r22149] Purpose:
HDFFV-944: Fortran test problem with HDF5 182, intel 11.0, open-mpi-1.2.8

Description:

    Moved libtool post-processing 'ed' snippet that replaces wl=""
    with wl="-Wl," when intel compilers are used to the end of the
    configure script, after libtool is actually generated. (I imagine
    that at some point in time during a libtool version upgrade the
    libtool script ceased being generated immediately after the libtool
    initialization macro and is generated at the end of configure with
    all other files).

    Additionally, added a leading 'g' to the replacement invocation to
    change all instances of wl="" to wl="-Wl," instead of just the
    first that it comes across. (There's a separate one for each
    compiler used (C, Fortran, C++)).

Tested:

    Reproduced the reported make failure and tested resolution on
    NCSA's Forge with OpenMPI built with Intel 12.0.4.
    Also, h5committested.
2012-03-26 15:26:06 -05:00
Mike McGreevy
4d7d1ab871 [svn-r22147] Purpose:
Update RELEASE.txt for HDFFV-398
Tested:
    None needed, doc only.
2012-03-26 14:34:42 -05:00
Mike McGreevy
22a432b587 [svn-r22146] Purpose:
HDFFV-398: h5cc doesn't work with automake                                        
                                                                                      
Description:                                                                          
                                                                                      
    Fixed compiler wrapper scripts to correctly detect compilation when               
    -MT preprocessor flag is provided, fixing a bug in which its *.o                  
    argument was added to link_objs but not compile_args.                             
                                                                                      
    This previously broke usage of h5cc as the provided compiler in                   
    configure scripts (like with h5edit) as automake may supply the -MT               
    option to the compiler via the makefiles.                                         
                                                                                      
Tested:                                                                               
                                                                                      
    Tested using h5edit and h5committested.
2012-03-26 14:30:45 -05:00
Scot Breitenfeld
286c8ac306 [svn-r22144] Added DLL h5ocopy_f entry for windows. 2012-03-26 08:33:59 -05:00
Scot Breitenfeld
14d6c0ee9a [svn-r22143] Description: added info about h5ocopy_f and h5ltget_attribute_string_f 2012-03-25 23:30:48 -05:00
Scot Breitenfeld
e002bb98e1 [svn-r22142] Description : New Fortran wrapper (h5ocopy_f) for the C API H5Ocopy
HDFFV-7965

Tested: jam (gnu), koala (gnu)
2012-03-25 23:12:59 -05:00
HDF Tester
cdc63fc21a [svn-r22140] Snapshot version 1.9 release 112 2012-03-25 09:30:39 -05:00
Neil Fortner
1e0306a7c9 [svn-r22138] Add check for valid number of children in H5B_decode(). See HDFFV-5897.
Tested: jam, durandal (too minor for full h5committest)
2012-03-24 22:18:31 -05:00
Jonathan Kim
ec04239a6f [svn-r22136] Purpose:
update for HDFFV-7837 - h5diff: incorrect behavior with exclude-path option when unique object exist only in one file

Description:
  Add the new test output list to test shell script.
  This is based on the previous commit r22114.

Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE)
2012-03-23 16:05:22 -05:00
Raymond Lu
1116fc1e5e [svn-r22135] I added an item for Issue 7785. No test is needed. 2012-03-23 11:09:08 -05:00
Raymond Lu
97483389cb [svn-r22134] Issue 7785 - follow-up checkin. I forgot to initialize a structure in H5D_read as I did in H5D_write.
Tested on jam - simple change.
2012-03-23 10:45:39 -05:00
Scot Breitenfeld
3682dd9ae0 [svn-r22133] Description: fixed problem with closing a non-existing file id.
Tested: koala (gnu 4.1)
2012-03-23 09:25:05 -05:00
Scot Breitenfeld
38a1ea7b99 [svn-r22130] Test for HDFFV-7777 h5ltget_attribure_string_f added
Added check that HLDS fortran function do remove NULL character.
2012-03-22 23:20:51 -05:00
Scot Breitenfeld
213ab6eb36 [svn-r22129] HDFFV-7777: Fix for removing NULL character from fortran string in h5lt_get_attribute_string_f
Fixed size +1 error in HD5f2cstring
2012-03-22 23:18:59 -05:00
Binh-Minh Ribler
19a6303205 [svn-r22128] Purpose: Fixed bug 4279
Description:
    Closed various HDF5 objects in DataSet::getInMemDataSize and
    Attribute::getInMemDataSize to remove some memory leaks.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (amani)
    SunOS 5.10 (linew)
2012-03-22 19:50:36 -05:00
Allen Byrne
c9f0f2ec22 [svn-r22126] Fixes for Component installation 2012-03-22 17:21:37 -05:00
Raymond Lu
daef205d04 [svn-r22122] Issue 7785 - Writing or reading many small chunks ran out of memory and caused seg fault. I added checks in two places to make sure the library returns error stack
when it fails to allocate memory.  I didn't add any test to the test suite since there is no good way to test it.  But I tested and verified the error stack by hand.

Tested on jam, koala, ostrich.
2012-03-22 14:31:01 -05:00
Dana Robinson
0d2f2074cb [svn-r22117] Fix for HDFFV-7916 (Windows/POSIX correctness issues in the core VFD) and HDFFV-7603 (core VFD has trouble with 2GB+ files on Windows).
Propagates the SEC2 driver fixes from HDF5 1.8.8 to the core VFD (mainly concerning the backing store).  These fixes also conveniently fixed 7603 as well.

Tested on:

64-bit Windows 7
jam
koala
ostrich
2012-03-21 17:11:05 -05:00
Raymond Lu
0d118ea88a [svn-r22116] #Issue 7922 - follow-up checkin. I changed the order of two private functions and a macro according to Quincey's suggestion.
Tested on jam - simple change.
2012-03-21 16:08:52 -05:00
Mohamad Chaarawi
dd1b2c3208 [svn-r22115] Add 2 new API routines to set/unset file atomicity for files opened with the MPI-IO VFD
Add test cases for these two routines
Jira issue HDFFV-7961
2012-03-21 16:00:48 -05:00
Jonathan Kim
d476ce138b [svn-r22114] Purpose:
Fix for HDFFV-7837 - h5diff: incorrect behavior with exclude-path option when unique object exist only in one file

Description:
  If unique objects exists only in one file and try to exclude
  the unique objects with --exclude-path option, h5diff missed 
  excluding some objects. 
  Fixed to exclude objects correctly in such case.
  Test cases were added and tagged with jira#.


Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), Cmake (jam)
2012-03-21 16:00:15 -05:00
Quincey Koziol
b7d9ed39c2 [svn-r22112] Description:
Minor code safety issue in test/fheap.c and whitespace in other files.

Tested on:
	Mac OSX/64 10.7.3 (amazon) w/debug
	(Too minor to require h5committest)
2012-03-21 15:25:52 -05:00
Dana Robinson
ada561507a [svn-r22111] Removed incorrect 'executable' svn properties. 2012-03-21 15:01:10 -05:00
Dana Robinson
48688a2dbc [svn-r22110] Removed incorrect 'executable' svn properties. 2012-03-21 14:50:28 -05:00
Dana Robinson
8de7487ffd [svn-r22109] Removed the executable flag from the COPYING file. 2012-03-21 14:40:02 -05:00
Jonathan Kim
26cab92853 [svn-r22108] Purpose:
HDFFV-7523 JPSS: h5dump fails to open an attribute when using the -a option to specify an attribute with a slash in the name

Description:
  Update command line help page and test generating file. 
  Previous commits: r22052, r22063

Tested:
  jam (linux32-LE), koala (linux64-LE), cmake (jam)
2012-03-21 13:56:36 -05:00
Dana Robinson
9f18db936f [svn-r22103] Fix for HDFFV-7769 (HDF5 tests time out on Windows when core VFD is set).
This occurs due to the istore test creating very large files on systems which
do not have POSIX-like sparse file semantics.  The large amount of I/O causes
the test to run for a very long period of time.

The fix was to copy the "big" test's sparse file check and only run the
largest sparse file test when POSIX-like sparse file semantics are found.

Tested on:

jam (nfs)
ostrich (nfs)
loyalty (ufs)
64-bit linux VM (ext4)
64-bit OS-X Lion (hfs, detected as not POSIX sparse)
64-bit Windows 7 (NTFS, detected as not POSIX sparse)

The OS-X failure to pass the sparse check is likely an error and will be
entered as a new bug.
2012-03-20 16:42:38 -05:00
Allen Byrne
be410798d0 [svn-r22098] Add reference file extensions in new tests.
Remove "STAR" test as some platforms vary in interpretation.
2012-03-20 08:50:03 -05:00
HDF Tester
2c428c1bd7 [svn-r22097] Snapshot version 1.9 release 111 2012-03-20 08:00:55 -05:00
Scot Breitenfeld
5e202882c9 [svn-r22096] Desciption: Added cyclic path test for H5LTpath_valid.
Tested: jam (gnu and intel)
2012-03-19 23:23:10 -05:00
Raymond Lu
16591dbcc5 [svn-r22094] Issue 7922 - follow-up checkin. Daily test reported that PGCC (11.8-0) on jam and koala has trouble with the command "*p++ = *p OP tree_val" in the macro definition of H5Z_XFORM_DO_OP1 of H5Ztrans.c. It increments P first before doing the operation. So I break down the command into two lines: "*p = *p OP tree_val; p++;" I also reported the problem to PGI.
Tested on jam, koala, and ostrich.
2012-03-19 16:10:40 -05:00
Allen Byrne
14bc79b1b8 [svn-r22090] Reorder tools/h5jam/testfiles ordering 2012-03-19 10:05:19 -05:00
Allen Byrne
a51eaab41a [svn-r22087] Minor formatting changes to sync with 1.8 2012-03-19 09:03:12 -05:00
Raymond Lu
c8ad738d4e [svn-r22084] I updated the item for Issue 7756.
No test is needed.
2012-03-16 11:12:20 -05:00
Scot Breitenfeld
18a18f7f10 [svn-r22082] Description: replaced strncopy with passing path name directly. 2012-03-16 10:13:46 -05:00
Scot Breitenfeld
e37a9c67d8 [svn-r22081] Description:
Changed H5G*() to H5G*2() APIs for compatability.

Tested: (jam intel, --with-default-api-version=v16)
2012-03-16 09:54:18 -05:00
Scot Breitenfeld
e4c1c566d4 [svn-r22080] Description: aligned H5_FC_FUNC with the H5_FC_FUNC in the line above
tested: none
2012-03-15 23:27:47 -05:00
Scot Breitenfeld
c9ebe22dd0 [svn-r22079] Added H5LTpath_valid(_f) description. 2012-03-15 23:24:55 -05:00
Scot Breitenfeld
29e7e2890b [svn-r22078] New API: H5ltpath_valid
REF: HDFFV-1233

A high-level "H5LTpath_valid" routine for checking if a path is correct
Both Fortran and C version.

Tested: jam (gnu and intel)
2012-03-15 19:53:56 -05:00
Allen Byrne
f261344af9 [svn-r22077] Add example of multiple files for h5dump help text.
Tested: local linux
2012-03-15 16:21:46 -05:00
Raymond Lu
b337ae979d [svn-r22076] #Issue 7922 - H5Pset_data_transform had seg fault with some operations like x*-100.
The parser mistaked "-" as substraction.  I fixed it and also fixed another problem
with some special cases like 100-x and 2/x.

Tested on jam, koala, and ostrich.
2012-03-15 15:53:14 -05:00
Allen Byrne
207c05e2e9 [svn-r22075] Add test for multiple files with h5ls and h5dump.
Tested: local linux
2012-03-15 15:44:51 -05:00
Allen Byrne
956fde680a [svn-r22074] Remove , from list of file char substitutions. 2012-03-15 14:50:36 -05:00
Neil Fortner
3ee8b91dee [svn-r22072] Purpose: Fix rare corruption bug (HDFFV-7879)
Description:
When using the new object header format, it was possible for corruption to occur
if the first object header chunk changed size such that the lenght of the "chunk
0 size" field changed.  This only occurred if there were messages that had not
been decoded.  The original algorithm that changed the object header chunk size
marked all messages as dirty, causing those that had not been decoded to have
both the raw and native form invalidated.  Changed the algorithm to avoid
marking messages dirty and added assertions to catch the case where messages
are dirtied without being decoded (or recently created) first.

Tested: jam, koala, ostrich (h5committest), durandal
2012-03-15 14:16:24 -05:00
Neil Fortner
d849a118c2 [svn-r22070] Purpose: Fix rare corruption bug
Description:
When using the new object header format and adding an attribute with a size near
64K, it was possible for file corruption to occur.  This happened only if the
first object header chunk was smaller than 256 bytes and then grew to larger
than 64K after the attribute was added.

Tested: ostrich, jam, koala (h5committest), durandal
2012-03-15 13:42:51 -05:00
Allen Byrne
9f35a8b04e [svn-r22068] HDFFV-7876: wildcard filenames
The test scripts for cmake, on windows, and the h5ls shell script do not work properly.

Tested: h5committest
2012-03-14 13:36:21 -05:00
Allen Byrne
67f67925b8 [svn-r22066] Comment out linux non-cmake only files 2012-03-14 10:49:52 -05:00
Allen Byrne
63df2d99fd [svn-r22063] escape char in test needed multiple slashes to get through cmake parsing 2012-03-13 14:57:00 -05:00
Quincey Koziol
46a289c796 [svn-r22061] Description:
Change to use versioned API call, to avoid problems when defaulting to
older AI versions.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
2012-03-13 09:38:37 -05:00
Quincey Koziol
c17a5d1278 [svn-r22058] Description:
Better fix for zero-sized dataset error (r22053).

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug & parallel
2012-03-12 23:19:46 -05:00
Peter Cao
57295db6c7 [svn-r22054] Use HDmalloc/free. 2012-03-12 16:53:24 -05:00
Quincey Koziol
f698c360f5 [svn-r22053] Description:
Correct corner case for creating a contiguous dataset with a zero-sized
dataspace, when the allocation time is set to early.

    Also clean up a few compiler warnings in the dataspace code.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug & parallel
2012-03-12 16:45:38 -05:00
Peter Cao
fcf96afeb2 [svn-r22052] - h5dump: Added capability for "-a" option to show attributes containing "/"
by using an escape character. For example, for a dataset "/dset" 
               containing attribute "speed(m/h)", use "h5dump -a "/dset/speed(\/h)" 
               to show the content of the attribute. See details at HDFFV-7523
2012-03-12 16:27:11 -05:00
Allen Byrne
d7f3dc097e [svn-r22049] Add working folder to test properties when not using runTest.cmake script 2012-03-12 16:21:00 -05:00
Allen Byrne
0c323c00b7 [svn-r22047] Add h5dump issues fixed 2012-03-12 15:36:10 -05:00
Allen Byrne
bec199165a [svn-r22042] HDFFV-7957-7958:
Add tools error stack and check return from H5Dreference call.
Tested: CMake and h5committest
2012-03-12 11:33:15 -05:00
HDF Tester
80b2b54f41 [svn-r22040] Snapshot version 1.9 release 110 2012-03-11 10:52:04 -05:00
Jonathan Kim
0a46593a38 [svn-r22038] Purpose:
Fix for HDFFV-7835 h5diff: incorrect result for comparing the two same type symlinks as dangling links.

Description:
  When two symbolic dangling links are compared with --follow-symlinks option,
  the result should be same. It works for comparing two files, but didn't work
  for comparing two objects. 
  Test cases were added and tagged with jira#.


Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE),  Windows (32-LE cmake), Cmake (jam)
2012-03-09 15:34:37 -05:00
Jonathan Kim
3ac8dfa8b7 [svn-r22036] Purpose:
HDFFV-7602 - GMQS: HDF5 command tools: Provide framework for reusable test files among tools
  Stage2 working for h5ls tool.

Description:
  Update cmake script to fetch test files from any tools to a test directory
  and run test in organized manner. 
  Also keep the apperance similiar to shell script for better maintainance.
  
Tested:
  CMake (Windows and jam)
2012-03-08 16:35:23 -05:00
Allen Byrne
3723a9591e [svn-r22033] Remove unnecessary INCLUDE_DIR command
Tested: local linux and windows
2012-03-07 09:39:38 -05:00
Allen Byrne
5ee3764068 [svn-r22029] Add reference file to test list
Add error-stack to tests

Tested: local linux
2012-03-06 08:35:27 -05:00
Allen Byrne
7149676a0b [svn-r22028] add new test file 2012-03-05 14:41:11 -05:00
Allen Byrne
386b3e971b [svn-r22027] HDFFV-7839: Dangling link should not display error
If a link is specified on the command with the -d option, call the handle_links function on error from the H5Dopen command. 
Updated test file results with error stack when link not found.

Tested: local linux and jam
2012-03-05 14:33:30 -05:00
Allen Byrne
058f9c2056 [svn-r22024] Add HD prefix to tools library based tests. Cleaned allocation/free in tests.
Tested: local linux/ changes h5committetest against 1.8 version
2012-03-05 09:17:14 -05:00
HDF Tester
e7bbbd07df [svn-r22022] Snapshot version 1.9 release 109 2012-03-04 09:34:49 -05:00
Larry Knox
cfc1dffd14 [svn-r22020] Fix for HDFFV-7878.
gnu-flags
	Don't add gcc flags for intel compiler even though its version display includes "gcc".
intel-flags
	Extend intel version to include icc-12*.
2012-03-03 00:00:33 -05:00
Allen Byrne
f99cdd5afe [svn-r22019] Cleanup warnings from compiles
Tested: local linux
2012-03-02 16:30:30 -05:00
Jonathan Kim
b994a10148 [svn-r22012] Purpose:
Task for HDFFV-7862 - Select data by chunk direction to improve performance in h5repack

Description:
  h5repack sometimes became very slow when handling big chunked datasets in
  certain cases. (when chunk boundary doesn't match with a hyperslab boundary.)
  The main issue was from figuring out a hypeslab without considering chunk
  boundary to read from and write to such datasets.
  The update was made to figure out a better hyperslab unit with considering
  chunk boundary to improve performance for such cases prior to the update.


Tested:
  jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), Windows
2012-03-01 17:59:46 -05:00
Allen Byrne
196080ac0f [svn-r22010] Variable used to determine if the MS Visual Studio compiler is being used incorrectly limited setting the H5_HAVE_VISUAL_STUDIO define to only when the IDE was being used to build on Windows.
Tested: windows
2012-03-01 15:34:32 -05:00
Allen Byrne
e49c1ba04e [svn-r22007] Remove duplicated functions by using h5tools library calls
HDFFV-7949

Tested: local linux and h5committest
2012-02-29 12:51:24 -05:00
Allen Byrne
e53a56af53 [svn-r22005] function calls must be after assignments on windows 2012-02-29 09:04:51 -05:00
Allen Byrne
df6c92e506 [svn-r22004] Reduced warnings and fixed conflicts resulting from including h5tools.h
Tested: local linux
2012-02-28 13:26:34 -05:00
Albert Cheng
9423da6a4d [svn-r21999] Updated for the changes made to IBM configure.
Also update the IBM tested platform information.
2012-02-28 07:45:45 -05:00
Albert Cheng
2ac614f94d [svn-r21997] Feature: HDFFV-7793: AIX Fortran and C++ Compiler version information
Added code to display the version information of XL fortran and C++ compiler
version information. (This is just a quick fix for the AIX XL compilers.
The overall algorithm of compilers version information needs an overhaul.)

Tested: ADA machine. (No committest because the changes applied to AIX XL
compilers only.)
2012-02-28 07:32:22 -05:00
Allen Byrne
fc48c675e1 [svn-r21996] Add tools_init to main 2012-02-27 15:26:55 -05:00
Allen Byrne
9ae8cffe92 [svn-r21995] Updated changes to h5dump fix 2012-02-27 15:18:51 -05:00
Allen Byrne
009522483e [svn-r21994] Add tools_init to main 2012-02-27 15:10:18 -05:00
Allen Byrne
3a713f8075 [svn-r21993] Add tools_init to main 2012-02-27 15:05:23 -05:00
Allen Byrne
deec94bf4a [svn-r21992] Remove old testfile 2012-02-27 14:41:27 -05:00
Allen Byrne
6765de0c65 [svn-r21991] Cleanup minor issues found during 518 merge 2012-02-27 14:25:22 -05:00
Allen Byrne
c8458f779c [svn-r21990] Tools library uses alais variables for stdout, stderr and tools library uses HDfprintf() functions.
Tested: local linux, jam-pp
2012-02-27 11:56:09 -05:00
Allen Byrne
fb6eace960 [svn-r21988] Tools must call h5tools_init before command_line parsing or using tools_mesg functions.
Tools library uses alias variables for stdout, stderr and tools library uses HDfprintf() functions.
2012-02-27 09:50:27 -05:00
Allen Byrne
3d3bf48b9a [svn-r21987] Remove unnecessary dependancies on tools library for h5 file gentests.
Tested: local linux
2012-02-27 09:42:48 -05:00
Allen Byrne
8405400213 [svn-r21986] Updated haddr_t format for print of STORAGE_LAYOUT - linew 32 issue 2012-02-24 18:27:42 -05:00
Allen Byrne
202c36682b [svn-r21985] Tools must call h5tools_init before command_line parsing or using tools_mesg functions.
Tools library uses alais variables for stdout, stderr and tools library uses HDfprintf() functions.

Tested: local linux
2012-02-24 16:14:47 -05:00
Allen Byrne
2dffa66ef7 [svn-r21984] Correct HD prefix in tools
Checked for HD support.
2012-02-24 11:03:17 -05:00
Allen Byrne
67a1e576db [svn-r21983] Correct HD prefix in tools
Checked for HD support.
2012-02-24 10:53:42 -05:00
Allen Byrne
827cbbba31 [svn-r21982] Correct HD prefix in tools for exit
Checked for HD support.
2012-02-24 10:45:54 -05:00
Allen Byrne
cec338c647 [svn-r21981] Correct HD prefix in tools for fprintf
Checked for HD support.
2012-02-24 10:32:36 -05:00
Allen Byrne
5b1c9ffe2d [svn-r21980] Correct HD prefix in tools for *alloc
Checked for HD support.
2012-02-24 09:39:17 -05:00
Allen Byrne
944f2cdf8d [svn-r21979] Correct HD prefix in tools for strlen and memcpy
Checked for HD support.
2012-02-24 09:27:57 -05:00
Allen Byrne
b2ec30bfe3 [svn-r21978] undo HD prefix 2012-02-24 08:29:03 -05:00
Allen Byrne
0b4463911f [svn-r21974] Update HSIZE_T print statements to use correct macro.
Fix some more HD prefix issues in tools.

Tested: local linux
2012-02-23 14:08:09 -05:00
Allen Byrne
9974e02bc0 [svn-r21973] Correct limited reallocation on windows.
Tested: local linux, windows, h5committest
2012-02-23 12:45:46 -05:00
Allen Byrne
c47f6becf2 [svn-r21972] Split append statement into two parts - linew hsize_t issue 2012-02-23 09:16:26 -05:00
Allen Byrne
108c788d37 [svn-r21971] Correct HD prefix 2012-02-22 17:23:08 -05:00
Allen Byrne
bd11f8643d [svn-r21970] Added missing HD prefix 2012-02-22 17:03:07 -05:00
Allen Byrne
d59da45c98 [svn-r21969] Added missing HD prefix
Correct indentation
2012-02-22 16:58:50 -05:00
Allen Byrne
6ef73c4282 [svn-r21968] Added missing HD prefix 2012-02-22 16:40:23 -05:00
Allen Byrne
60030b5631 [svn-r21967] Checked all %lu references and corrected 2 that should have been '%"H5_PRINTF_LL_WIDTH"u'
Moved lib variables windows linking declarations to proper file location.

Tested: local linux windows
2012-02-22 09:03:59 -05:00
Allen Byrne
147edec689 [svn-r21966] Index used in printing data uses hsize_t variables. Changed h5ls format to use HSIZE_T_FORMAT.
Tested: local linux and windows 32
2012-02-21 10:00:37 -05:00
Allen Byrne
1d0c7360ef [svn-r21963] Fixed issue with compression value not printing - format parameter was wrong, needed to be long long.
Enabled compression tests

Tested: 32-bit windows
2012-02-20 12:41:00 -05:00
Allen Byrne
e808e596ab [svn-r21962] Reference file missing a return - now "be" version is similiar to "le" version whitespace 2012-02-20 08:40:46 -05:00
Allen Byrne
8bc0ed5a5a [svn-r21960] Fix unsigned long long format string in xml code.
Re-enable xml tests

Tested: 32-bits
2012-02-19 14:30:26 -05:00
Allen Byrne
97ab252c0c [svn-r21959] SKIP h5dump XML until MaxDims issue is resolved 2012-02-17 22:38:38 -05:00
Allen Byrne
9c15560115 [svn-r21958] SKIP failing filter tests until compression values can be verifed 2012-02-17 21:33:08 -05:00
Allen Byrne
d195d4bf55 [svn-r21957] Windows DLL macro missing on data in header 2012-02-17 21:11:12 -05:00
Allen Byrne
f55a1344ad [svn-r21956] Windows DLL macro missing on functions in header 2012-02-17 21:05:56 -05:00
Allen Byrne
fbd74f00cf [svn-r21955] Missed bin/reconfigure on h5dump and tools/lib 2012-02-17 20:05:16 -05:00
Allen Byrne
3cdc486039 [svn-r21954] HDFFV-7560: refactoring note. 2012-02-17 16:50:40 -05:00
Allen Byrne
fb762aa6b0 [svn-r21953] HDDFV-7560: h5dump refactoring
Tested: local linux
2012-02-17 16:41:58 -05:00
Allen Byrne
5b03d4b08d [svn-r21952] HDFFV-5874: -c and -k subsetting
Tested:local linux
2012-02-17 15:14:03 -05:00
Allen Byrne
e5b940c6cb [svn-r21949] Add H5detect warning ignore 2012-02-16 11:33:17 -05:00
Quincey Koziol
bec75e8c14 [svn-r21947] Description:
Catch a missing FUNC_ENTER that escaped the recent pass through the source
code.

Tested on:
    None, too minor, just eyeballed.
2012-02-16 11:02:36 -05:00
1779 changed files with 177704 additions and 210939 deletions

124
CMakeFilters.cmake Normal file
View File

@@ -0,0 +1,124 @@
#-----------------------------------------------------------------------------
# Options for HDF5 Filters
#-----------------------------------------------------------------------------
MACRO (HDF5_SETUP_FILTERS FILTER)
option (HDF5_USE_FILTER_${FILTER} "Use the ${FILTER} Filter" ON)
if (HDF5_USE_FILTER_${FILTER})
set (H5_HAVE_FILTER_${FILTER} 1)
set (FILTERS "${FILTERS} ${FILTER}")
endif (HDF5_USE_FILTER_${FILTER})
# message (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}")
ENDMACRO (HDF5_SETUP_FILTERS)
HDF5_SETUP_FILTERS (SHUFFLE)
HDF5_SETUP_FILTERS (FLETCHER32)
HDF5_SETUP_FILTERS (NBIT)
HDF5_SETUP_FILTERS (SCALEOFFSET)
include (ExternalProject)
#option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO SVN TGZ)" "NO")
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)")
set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO SVN TGZ)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 1)
option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 1)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
set (ZLIB_URL ${ZLIB_SVN_URL})
set (SZIP_URL ${SZIP_SVN_URL})
elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (NOT TGZPATH)
set (TGZPATH ${HDF5_SOURCE_DIR})
endif (NOT TGZPATH)
set (ZLIB_URL ${TGZPATH}/${ZLIB_TGZ_NAME})
set (SZIP_URL ${TGZPATH}/${SZIP_TGZ_NAME})
else (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
set (ZLIB_USE_EXTERNAL 0)
set (SZIP_USE_EXTERNAL 0)
endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
#-----------------------------------------------------------------------------
# Option for ZLib support
#-----------------------------------------------------------------------------
option (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF)
if (HDF5_ENABLE_Z_LIB_SUPPORT)
if (NOT H5_ZLIB_HEADER)
if (NOT ZLIB_USE_EXTERNAL)
find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT})
if (NOT ZLIB_FOUND)
find_package (ZLIB) # Legacy find
endif (NOT ZLIB_FOUND)
endif (NOT ZLIB_USE_EXTERNAL)
if (ZLIB_FOUND)
set (H5_HAVE_FILTER_DEFLATE 1)
set (H5_HAVE_ZLIB_H 1)
set (H5_HAVE_LIBZ 1)
set (H5_ZLIB_HEADER "zlib.h")
set (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR})
set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
else (ZLIB_FOUND)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
set (H5_HAVE_FILTER_DEFLATE 1)
set (H5_HAVE_ZLIB_H 1)
set (H5_HAVE_LIBZ 1)
message (STATUS "Filter ZLIB is built")
else (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
message (FATAL_ERROR " ZLib is Required for ZLib support in HDF5")
endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
endif (ZLIB_FOUND)
else (NOT H5_ZLIB_HEADER)
# This project is being called from within another and ZLib is already configured
set (H5_HAVE_FILTER_DEFLATE 1)
set (H5_HAVE_ZLIB_H 1)
set (H5_HAVE_LIBZ 1)
endif (NOT H5_ZLIB_HEADER)
if (H5_HAVE_FILTER_DEFLATE)
set (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} DEFLATE")
endif (H5_HAVE_FILTER_DEFLATE)
set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES})
INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS})
message (STATUS "Filter ZLIB is ON")
endif (HDF5_ENABLE_Z_LIB_SUPPORT)
#-----------------------------------------------------------------------------
# Option for SzLib support
#-----------------------------------------------------------------------------
option (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF)
if (HDF5_ENABLE_SZIP_SUPPORT)
option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF)
if (NOT SZIP_USE_EXTERNAL)
find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT})
if (NOT SZIP_FOUND)
find_package (SZIP) # Legacy find
endif (NOT SZIP_FOUND)
endif (NOT SZIP_USE_EXTERNAL)
if (SZIP_FOUND)
set (H5_HAVE_FILTER_SZIP 1)
set (H5_HAVE_SZLIB_H 1)
set (H5_HAVE_LIBSZ 1)
set (SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR})
set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR})
else (SZIP_FOUND)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE} ${HDF5_ENABLE_SZIP_ENCODING})
set (H5_HAVE_FILTER_SZIP 1)
set (H5_HAVE_SZLIB_H 1)
set (H5_HAVE_LIBSZ 1)
message (STATUS "Filter SZIP is built")
else (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
message (FATAL_ERROR "SZIP is Required for SZIP support in HDF5")
endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
endif (SZIP_FOUND)
set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS})
message (STATUS "Filter SZIP is ON")
if (H5_HAVE_FILTER_SZIP)
set (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} DECODE")
endif (H5_HAVE_FILTER_SZIP)
if (HDF5_ENABLE_SZIP_ENCODING)
set (H5_HAVE_SZIP_ENCODER 1)
set (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} ENCODE")
endif (HDF5_ENABLE_SZIP_ENCODING)
endif (HDF5_ENABLE_SZIP_SUPPORT)

573
CMakeInstallation.cmake Normal file
View File

@@ -0,0 +1,573 @@
include (${HDF_RESOURCES_DIR}/CMakePackageConfigHelpers.cmake)
#-----------------------------------------------------------------------------
# Check for Installation Utilities
#-----------------------------------------------------------------------------
if (WIN32)
set (PF_ENV_EXT "(x86)")
find_program (NSIS_EXECUTABLE NSIS.exe PATHS "$ENV{ProgramFiles}\\NSIS" "$ENV{ProgramFiles${PF_ENV_EXT}}\\NSIS")
if(NOT CPACK_WIX_ROOT)
file(TO_CMAKE_PATH "$ENV{WIX}" CPACK_WIX_ROOT)
endif()
find_program (WIX_EXECUTABLE candle PATHS "${CPACK_WIX_ROOT}/bin")
endif (WIN32)
#-----------------------------------------------------------------------------
# Add file(s) to CMake Install
#-----------------------------------------------------------------------------
if (NOT HDF5_INSTALL_NO_DEVELOPMENT)
install (
FILES ${PROJECT_BINARY_DIR}/H5pubconf.h
DESTINATION ${HDF5_INSTALL_INCLUDE_DIR}
COMPONENT headers
)
endif (NOT HDF5_INSTALL_NO_DEVELOPMENT)
#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED)
install (
EXPORT ${HDF5_EXPORTED_TARGETS}
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
COMPONENT configinstall
)
endif (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Export all exported targets to the build tree for use by parent project
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED)
export (
TARGETS ${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES}
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
)
endif (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Set includes needed for build
#-----------------------------------------------------------------------------
set (HDF5_INCLUDES_BUILD_TIME
${HDF5_SRC_DIR} ${HDF5_CPP_SRC_DIR} ${HDF5_HL_SRC_DIR}
${HDF5_TOOLS_SRC_DIR} ${HDF5_BINARY_DIR}
)
#-----------------------------------------------------------------------------
# Set variables needed for installation
#-----------------------------------------------------------------------------
set (HDF5_VERSION_STRING ${HDF5_PACKAGE_VERSION})
set (HDF5_VERSION_MAJOR ${HDF5_PACKAGE_VERSION_MAJOR})
set (HDF5_VERSION_MINOR ${HDF5_PACKAGE_VERSION_MINOR})
#-----------------------------------------------------------------------------
# Configure the hdf5-config.cmake file for the build directory
#-----------------------------------------------------------------------------
set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
set (SHARE_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_INSTALL_CMAKE_DIR}" )
set (CURRENT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
configure_package_config_file (
${HDF_RESOURCES_DIR}/hdf5-config.cmake.in
"${HDF5_BINARY_DIR}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake"
INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}"
PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
)
#-----------------------------------------------------------------------------
# Configure the FindHDF5.cmake file for the install directory
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED)
configure_file (
${HDF_RESOURCES_DIR}/FindHDF5.cmake.in
${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY
)
install (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
COMPONENT configinstall
)
endif (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Configure the hdf5-config.cmake file for the install directory
#-----------------------------------------------------------------------------
set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${HDF5_INSTALL_CMAKE_DIR}" )
set (CURRENT_BUILD_DIR "${CMAKE_INSTALL_PREFIX}" )
configure_package_config_file (
${HDF_RESOURCES_DIR}/hdf5-config.cmake.in
"${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake"
INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}"
PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
)
if (NOT HDF5_EXTERNALLY_CONFIGURED)
install (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
COMPONENT configinstall
)
endif (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Configure the hdf5-config-version .cmake file for the install directory
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED)
configure_file (
${HDF_RESOURCES_DIR}/hdf5-config-version.cmake.in
${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY
)
install (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
COMPONENT configinstall
)
endif (NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Configure the libhdf5.settings file for the lib info
#-----------------------------------------------------------------------------
if (H5_WORDS_BIGENDIAN)
set (BYTESEX big-endian)
else (H5_WORDS_BIGENDIAN)
set (BYTESEX little-endian)
endif (H5_WORDS_BIGENDIAN)
configure_file (
${HDF_RESOURCES_DIR}/libhdf5.settings.cmake.in
${HDF5_BINARY_DIR}/libhdf5.settings @ONLY
)
install (
FILES ${HDF5_BINARY_DIR}/libhdf5.settings
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
COMPONENT libraries
)
#-----------------------------------------------------------------------------
# Create pkgconfig files
#-----------------------------------------------------------------------------
#foreach (libs ${LINK_LIBS})
# set (LIBS "${LIBS} -l${libs}")
#endforeach (libs ${LINK_LIBS})
#foreach (libs ${HDF5_LIBRARIES_TO_EXPORT})
# set (HDF5LIBS "${HDF5LIBS} -l${libs}")
#endforeach (libs ${HDF5_LIBRARIES_TO_EXPORT})
#configure_file (
# ${HDF_RESOURCES_DIR}/libhdf5.pc.in
# ${HDF5_BINARY_DIR}/CMakeFiles/libhdf5.pc @ONLY
#)
#install (
# FILES ${HDF5_BINARY_DIR}/CMakeFiles/libhdf5.pc
# DESTINATION ${HDF5_INSTALL_LIB_DIR}/pkgconfig
#)
#-----------------------------------------------------------------------------
# Configure the HDF518_Examples.cmake file and the examples
#-----------------------------------------------------------------------------
option (HDF5_PACK_EXAMPLES "Package the HDF5 Library Examples Compressed File" OFF)
if (HDF5_PACK_EXAMPLES)
configure_file (
${HDF_RESOURCES_DIR}/HDF518_Examples.cmake.in
${HDF5_BINARY_DIR}/HDF518_Examples.cmake @ONLY
)
install (
FILES ${HDF5_BINARY_DIR}/HDF518_Examples.cmake
DESTINATION ${HDF5_INSTALL_DATA_DIR}
COMPONENT hdfdocuments
)
if (EXISTS "${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}")
install (
FILES
${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}
${HDF5_SOURCE_DIR}/release_docs/USING_CMake_Examples.txt
DESTINATION ${HDF5_INSTALL_DATA_DIR}
COMPONENT hdfdocuments
)
endif (EXISTS "${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}")
endif (HDF5_PACK_EXAMPLES)
#-----------------------------------------------------------------------------
# Configure the README.txt file for the binary package
#-----------------------------------------------------------------------------
HDF_README_PROPERTIES(HDF5_BUILD_FORTRAN)
#-----------------------------------------------------------------------------
# Configure the COPYING.txt file for the windows binary package
#-----------------------------------------------------------------------------
if (WIN32)
configure_file (${HDF5_SOURCE_DIR}/COPYING ${HDF5_BINARY_DIR}/COPYING.txt @ONLY)
endif (WIN32)
#-----------------------------------------------------------------------------
# Add Document File(s) to CMake Install
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED)
install (
FILES
${HDF5_SOURCE_DIR}/COPYING
DESTINATION ${HDF5_INSTALL_DATA_DIR}
COMPONENT hdfdocuments
)
if (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs")
set (release_files
${HDF5_SOURCE_DIR}/release_docs/USING_HDF5_CMake.txt
${HDF5_SOURCE_DIR}/release_docs/COPYING
${HDF5_SOURCE_DIR}/release_docs/RELEASE.txt
)
if (WIN32)
set (release_files
${release_files}
${HDF5_SOURCE_DIR}/release_docs/USING_HDF5_VS.txt
)
endif (WIN32)
if (HDF5_PACK_INSTALL_DOCS)
set (release_files
${release_files}
${HDF5_SOURCE_DIR}/release_docs/INSTALL_CMake.txt
${HDF5_SOURCE_DIR}/release_docs/HISTORY-1_8.txt
${HDF5_SOURCE_DIR}/release_docs/INSTALL
)
if (WIN32)
set (release_files
${release_files}
${HDF5_SOURCE_DIR}/release_docs/INSTALL_Windows.txt
)
endif (WIN32)
if (CYGWIN)
set (release_files
${release_files}
${HDF5_SOURCE_DIR}/release_docs/INSTALL_Cygwin.txt
)
endif (CYGWIN)
if (HDF5_ENABLE_PARALLEL)
set (release_files
${release_files}
${HDF5_SOURCE_DIR}/release_docs/INSTALL_parallel
)
endif (HDF5_ENABLE_PARALLEL)
endif (HDF5_PACK_INSTALL_DOCS)
install (
FILES ${release_files}
DESTINATION ${HDF5_INSTALL_DATA_DIR}
COMPONENT hdfdocuments
)
endif (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs")
endif (NOT HDF5_EXTERNALLY_CONFIGURED)
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if (CMAKE_HOST_UNIX)
set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
else (CMAKE_HOST_UNIX)
GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
set (CMAKE_INSTALL_PREFIX
"${CMAKE_GENERIC_PROGRAM_FILES}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
set (CMAKE_GENERIC_PROGRAM_FILES)
endif (CMAKE_HOST_UNIX)
endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
#-----------------------------------------------------------------------------
# Set the cpack variables
#-----------------------------------------------------------------------------
if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
set (CPACK_PACKAGE_VENDOR "HDF_Group")
set (CPACK_PACKAGE_NAME "${HDF5_PACKAGE_NAME}")
if (CDASH_LOCAL)
set (CPACK_PACKAGE_VERSION "${HDF5_PACKAGE_VERSION}")
else (CDASH_LOCAL)
set (CPACK_PACKAGE_VERSION "${HDF5_PACKAGE_VERSION_STRING}")
endif (CDASH_LOCAL)
set (CPACK_PACKAGE_VERSION_MAJOR "${HDF5_PACKAGE_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${HDF5_PACKAGE_VERSION_MINOR}")
set (CPACK_PACKAGE_VERSION_PATCH "")
if (EXISTS "${HDF5_SOURCE_DIR}/release_docs")
set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/release_docs/RELEASE.txt")
set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/release_docs/COPYING")
set (CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/release_docs/RELEASE.txt")
endif (EXISTS "${HDF5_SOURCE_DIR}/release_docs")
set (CPACK_PACKAGE_RELOCATABLE TRUE)
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.bmp")
set (CPACK_GENERATOR "TGZ")
if (WIN32)
set (CPACK_GENERATOR "ZIP")
if (NSIS_EXECUTABLE)
list (APPEND CPACK_GENERATOR "NSIS")
endif (NSIS_EXECUTABLE)
# Installers for 32- vs. 64-bit CMake:
# - Root install directory (displayed to end user at installer-run time)
# - "NSIS package/display name" (text used in the installer GUI)
# - Registry key used to store info about the installation
set (CPACK_NSIS_PACKAGE_NAME "${HDF5_PACKAGE_STRING}")
if (CMAKE_CL_64)
set (CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION} (Win64)")
else (CMAKE_CL_64)
set (CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
endif (CMAKE_CL_64)
# set the install/unistall icon used for the installer itself
# There is a bug in NSI that does not handle full unix paths properly.
set (CPACK_NSIS_MUI_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.ico")
set (CPACK_NSIS_MUI_UNIICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.ico")
# set the package header icon for MUI
set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.bmp")
set (CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_PACKAGE_NAME}")
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAME}\\\\${CPACK_PACKAGE_VERSION}")
set (CPACK_MONOLITHIC_INSTALL ON)
set (CPACK_NSIS_CONTACT "${HDF5_PACKAGE_BUGREPORT}")
set (CPACK_NSIS_MODIFY_PATH ON)
if (WIX_EXECUTABLE)
list (APPEND CPACK_GENERATOR "WIX")
endif (WIX_EXECUTABLE)
#WiX variables
set (CPACK_WIX_UNINSTALL "1")
# .. variable:: CPACK_WIX_LICENSE_RTF
# RTF License File
#
# If CPACK_RESOURCE_FILE_LICENSE has an .rtf extension it is used as-is.
#
# If CPACK_RESOURCE_FILE_LICENSE has an .txt extension it is implicitly
# converted to RTF by the WiX Generator.
# The expected encoding of the .txt file is UTF-8.
#
# With CPACK_WIX_LICENSE_RTF you can override the license file used by the
# WiX Generator in case CPACK_RESOURCE_FILE_LICENSE is in an unsupported
# format or the .txt -> .rtf conversion does not work as expected.
set (CPACK_RESOURCE_FILE_LICENSE "${HDF5_BINARY_DIR}/COPYING.txt")
# .. variable:: CPACK_WIX_PRODUCT_ICON
# The Icon shown next to the program name in Add/Remove programs.
set(CPACK_WIX_PRODUCT_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.ico")
#
# .. variable:: CPACK_WIX_UI_BANNER
#
# The bitmap will appear at the top of all installer pages other than the
# welcome and completion dialogs.
#
# If set, this image will replace the default banner image.
#
# This image must be 493 by 58 pixels.
#
# .. variable:: CPACK_WIX_UI_DIALOG
#
# Background bitmap used on the welcome and completion dialogs.
#
# If this variable is set, the installer will replace the default dialog
# image.
#
# This image must be 493 by 312 pixels.
#
elseif (APPLE)
list (APPEND CPACK_GENERATOR "DragNDrop")
set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
if (HDF5_PACK_MACOSX_BUNDLE)
list (APPEND CPACK_GENERATOR "Bundle")
set (CPACK_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
set (CPACK_BUNDLE_LOCATION "/") # make sure CMAKE_INSTALL_PREFIX ends in /
set (CMAKE_INSTALL_PREFIX "/${CPACK_BUNDLE_NAME}.framework/Versions/${CPACK_PACKAGE_VERSION}/${CPACK_PACKAGE_NAME}/")
set (CPACK_BUNDLE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
set (CPACK_BUNDLE_PLIST "${HDF5_BINARY_DIR}/CMakeFiles/Info.plist")
set (CPACK_APPLE_GUI_INFO_STRING "HDF5 (Hierarchical Data Format 5) Software Library and Utilities")
set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2014 by The HDF Group. All rights reserved.")
set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
set (CPACK_APPLE_GUI_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
set (CPACK_APPLE_GUI_VERSION_STRING "${CPACK_PACKAGE_VERSION_STRING}")
set (CPACK_APPLE_GUI_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
#-----------------------------------------------------------------------------
# Configure the Info.plist file for the install bundle
#-----------------------------------------------------------------------------
configure_file (
${HDF_RESOURCES_EXT_DIR}/CPack.Info.plist.in
${HDF5_BINARY_DIR}/CMakeFiles/Info.plist @ONLY
)
configure_file (
${HDF_RESOURCES_DIR}/PkgInfo.in
${HDF5_BINARY_DIR}/CMakeFiles/PkgInfo @ONLY
)
configure_file (
${HDF_RESOURCES_EXT_DIR}/version.plist.in
${HDF5_BINARY_DIR}/CMakeFiles/version.plist @ONLY
)
install (
FILES ${HDF5_BINARY_DIR}/CMakeFiles/PkgInfo
${HDF5_BINARY_DIR}/CMakeFiles/version.plist
DESTINATION ..
)
endif (HDF5_PACK_MACOSX_BUNDLE)
else (WIN32)
list (APPEND CPACK_GENERATOR "STGZ")
set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
set (CPACK_DEBIAN_PACKAGE_SECTION "Libraries")
set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${HDF5_PACKAGE_BUGREPORT}")
# list (APPEND CPACK_GENERATOR "RPM")
set (CPACK_RPM_PACKAGE_RELEASE "1")
set (CPACK_RPM_COMPONENT_INSTALL ON)
set (CPACK_RPM_PACKAGE_RELOCATABLE ON)
set (CPACK_RPM_PACKAGE_LICENSE "BSD-style")
set (CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
set (CPACK_RPM_PACKAGE_URL "${HDF5_PACKAGE_URL}")
set (CPACK_RPM_PACKAGE_SUMMARY "HDF5 is a unique technology suite that makes possible the management of extremely large and complex data collections.")
set (CPACK_RPM_PACKAGE_DESCRIPTION
"The HDF5 technology suite includes:
* A versatile data model that can represent very complex data objects and a wide variety of metadata.
* A completely portable file format with no limit on the number or size of data objects in the collection.
* A software library that runs on a range of computational platforms, from laptops to massively parallel systems, and implements a high-level API with C, C++, Fortran 90, and Java interfaces.
* A rich set of integrated performance features that allow for access time and storage space optimizations.
* Tools and applications for managing, manipulating, viewing, and analyzing the data in the collection.
The HDF5 data model, file format, API, library, and tools are open and distributed without charge.
"
)
#-----------------------------------------------------------------------------
# Configure the spec file for the install RPM
#-----------------------------------------------------------------------------
# configure_file ("${HDF5_RESOURCES_DIR}/hdf5.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_PACKAGE_NAME}.spec" @ONLY IMMEDIATE)
# set (CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_PACKAGE_NAME}.spec")
endif (WIN32)
# By default, do not warn when built on machines using only VS Express:
if (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
endif (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
include (InstallRequiredSystemLibraries)
set (CPACK_INSTALL_CMAKE_PROJECTS "${HDF5_BINARY_DIR};HDF5;ALL;/")
if (HDF5_PACKAGE_EXTLIBS)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/")
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/")
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/")
endif (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
if (SZIP_FOUND AND SZIP_USE_EXTERNAL)
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/")
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/")
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/")
endif (SZIP_FOUND AND SZIP_USE_EXTERNAL)
endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
endif (HDF5_PACKAGE_EXTLIBS)
include (CPack)
#---------------------------------------------------------------------------
# Now list the cpack commands
#---------------------------------------------------------------------------
CPACK_ADD_COMPONENT (hdfapplications
DISPLAY_NAME "HDF5 Applications"
DEPENDS libraries
GROUP Applications
)
CPACK_ADD_COMPONENT (libraries
DISPLAY_NAME "HDF5 Libraries"
GROUP Runtime
)
CPACK_ADD_COMPONENT (headers
DISPLAY_NAME "HDF5 Headers"
DEPENDS libraries
GROUP Development
)
CPACK_ADD_COMPONENT (hdfdocuments
DISPLAY_NAME "HDF5 Documents"
GROUP Documents
)
CPACK_ADD_COMPONENT (configinstall
DISPLAY_NAME "HDF5 CMake files"
DEPENDS libraries
GROUP Development
)
if (HDF5_BUILD_FORTRAN)
CPACK_ADD_COMPONENT (fortlibraries
DISPLAY_NAME "HDF5 Fortran Libraries"
DEPENDS libraries
GROUP Runtime
)
CPACK_ADD_COMPONENT (fortheaders
DISPLAY_NAME "HDF5 Fortran Headers"
DEPENDS fortlibraries
GROUP Development
)
endif (HDF5_BUILD_FORTRAN)
if (HDF5_BUILD_CPP_LIB)
CPACK_ADD_COMPONENT (cpplibraries
DISPLAY_NAME "HDF5 C++ Libraries"
DEPENDS libraries
GROUP Runtime
)
CPACK_ADD_COMPONENT (cppheaders
DISPLAY_NAME "HDF5 C++ Headers"
DEPENDS cpplibraries
GROUP Development
)
endif (HDF5_BUILD_CPP_LIB)
if (HDF5_BUILD_TOOLS)
CPACK_ADD_COMPONENT (toolsapplications
DISPLAY_NAME "HDF5 Tools Applications"
DEPENDS toolslibraries
GROUP Applications
)
CPACK_ADD_COMPONENT (toolslibraries
DISPLAY_NAME "HDF5 Tools Libraries"
DEPENDS libraries
GROUP Runtime
)
CPACK_ADD_COMPONENT (toolsheaders
DISPLAY_NAME "HDF5 Tools Headers"
DEPENDS toolslibraries
GROUP Development
)
endif (HDF5_BUILD_TOOLS)
if (HDF5_BUILD_HL_LIB)
CPACK_ADD_COMPONENT (hllibraries
DISPLAY_NAME "HDF5 HL Libraries"
DEPENDS libraries
GROUP Runtime
)
CPACK_ADD_COMPONENT (hlheaders
DISPLAY_NAME "HDF5 HL Headers"
DEPENDS hllibraries
GROUP Development
)
CPACK_ADD_COMPONENT (hltoolsapplications
DISPLAY_NAME "HDF5 HL Tools Applications"
DEPENDS hllibraries
GROUP Applications
)
CPACK_ADD_COMPONENT (hlcpplibraries
DISPLAY_NAME "HDF5 HL C++ Libraries"
DEPENDS hllibraries
GROUP Runtime
)
CPACK_ADD_COMPONENT (hlcppheaders
DISPLAY_NAME "HDF5 HL C++ Headers"
DEPENDS hlcpplibraries
GROUP Development
)
CPACK_ADD_COMPONENT (hlfortlibraries
DISPLAY_NAME "HDF5 HL Fortran Libraries"
DEPENDS fortlibraries
GROUP Runtime
)
endif (HDF5_BUILD_HL_LIB)
endif (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities
-----------------------------------------------------------------------------
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 2006-2012 by The HDF Group.
Copyright 2006-2014 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.
@@ -87,6 +87,12 @@ and/or accompanying materials:
opinions of authors expressed herein do not necessarily state or reflect
those of the United States Government or the University of California,
and shall not be used for advertising or product endorsement purposes.
-----------------------------------------------------------------------------
HDF5 is available with the SZIP compression library but SZIP is not part
of HDF5 and has separate copyright and license terms. See “Szip Compression
in HDF Products” (www.hdfgroup.org/doc_resource/SZIP/) for further details.
-----------------------------------------------------------------------------

View File

@@ -4,26 +4,28 @@
## # The following are required to uses Dart and the Cdash dashboard
## ENABLE_TESTING()
## INCLUDE(CTest)
SET (CTEST_PROJECT_NAME "HDF5")
SET (CTEST_NIGHTLY_START_TIME "18:00:00 CST")
set (CTEST_PROJECT_NAME "HDF5")
set (CTEST_NIGHTLY_START_TIME "18:00:00 CST")
SET (CTEST_DROP_METHOD "http")
IF (CDASH_LOCAL)
SET (CTEST_DROP_SITE "nei.hdfgroup.uiuc.edu")
SET (CTEST_DROP_LOCATION "/cdash/submit.php?project=HDF5+Trunk")
ELSE (CDASH_LOCAL)
SET (CTEST_DROP_SITE "cdash.hdfgroup.uiuc.edu")
SET (CTEST_DROP_LOCATION "/submit.php?project=HDF5+Trunk")
ENDIF (CDASH_LOCAL)
SET (CTEST_DROP_SITE_CDASH TRUE)
set (CTEST_DROP_METHOD "http")
if (CDASH_LOCAL)
set (CTEST_DROP_SITE "72.36.68.252")
set (CTEST_DROP_LOCATION "/submit.php?project=HDF5Trunk")
else (CDASH_LOCAL)
set (CTEST_DROP_SITE "cdash.hdfgroup.uiuc.edu")
set (CTEST_DROP_LOCATION "/submit.php?project=HDF5+Trunk")
endif (CDASH_LOCAL)
set (CTEST_DROP_SITE_CDASH TRUE)
SET (UPDATE_TYPE svn)
SET (VALGRIND_COMMAND "/usr/bin/valgrind")
SET (VALGRIND_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe")
set (UPDATE_TYPE svn)
set (VALGRIND_COMMAND "/usr/bin/valgrind")
set (VALGRIND_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe")
set (CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind")
set (CTEST_MEMORYCHECK_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe")
SET (CTEST_TEST_TIMEOUT 3600 CACHE STRING
set (CTEST_TEST_TIMEOUT 1200 CACHE STRING
"Maximum time allowed before CTest will kill the test.")
SET (DART_TESTING_TIMEOUT 3600 CACHE STRING
set (DART_TESTING_TIMEOUT 1200 CACHE STRING
"Maximum time allowed before CTest will kill the test." FORCE)
SET(CTEST_SUBMIT_RETRY_DELAY 20 CACHE STRING

1166
MANIFEST

File diff suppressed because it is too large Load Diff

View File

@@ -73,8 +73,8 @@ else
endif
SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
$(HDF5_HL_DIR) perform
DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
$(HDF5_HL_DIR)
DIST_SUBDIRS = src test testpar tools . c++ fortran hl examples
# Some files generated during configure that should be cleaned
DISTCLEANFILES=config/stamp1 config/stamp2
@@ -93,25 +93,17 @@ lib progs check-p check-s:
fi; \
done
# Make all, tests, and (un)install also recurse into perform directory
all-local:
@cd perform && $(MAKE) $(AM_MAKEFLAGS) all
# Make all, tests, and (un)install
tests:
@@SETX@; for d in $(SUBDIRS) perform; do \
@@SETX@; for d in $(SUBDIRS); do \
if test $$d != .; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
install-exec-local:
@cd perform && $(MAKE) $(AM_MAKEFLAGS) install
uninstall-local:
@cd perform && $(MAKE) $(AM_MAKEFLAGS) uninstall
done
# Check-clean also recurses into examples directory
check-clean:
@@SETX@; for d in $(SUBDIRS) examples perform; do \
@@SETX@; for d in $(SUBDIRS) examples; do \
if test $$d != .; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@@ -201,4 +193,4 @@ check-vfd:
$(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.
# recurse into reguar subdirs.

View File

@@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2013 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,6 +47,51 @@
$(MAKE) all
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -66,14 +110,19 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/config/commence.am \
$(top_srcdir)/configure COPYING bin/COPYING bin/README \
bin/compile bin/config.guess bin/config.sub bin/depcomp \
bin/install-sh bin/ltmain.sh bin/missing bin/mkinstalldirs
DIST_COMMON = $(top_srcdir)/config/commence.am $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(top_srcdir)/bin/mkinstalldirs COPYING \
bin/COPYING bin/README bin/compile bin/config.guess \
bin/config.sub bin/depcomp bin/install-sh bin/missing \
bin/mkinstalldirs bin/ltmain.sh $(top_srcdir)/bin/compile \
$(top_srcdir)/bin/config.guess $(top_srcdir)/bin/config.sub \
$(top_srcdir)/bin/install-sh $(top_srcdir)/bin/ltmain.sh \
$(top_srcdir)/bin/missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -82,35 +131,71 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
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
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
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)"; }; }
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -138,9 +223,12 @@ am__relativize = \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
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
ACLOCAL = @ACLOCAL@
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
@@ -158,12 +246,9 @@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
AS = @AS@
# Set the paths for AFS installs of autotools for Linux machines
# Ideally, these tools should never be needed during the build.
AUTOCONF = /home1/packages/autoconf/autoconf-2.60/bin/autoconf
AUTOHEADER = /home1/packages/autoconf/autoconf-2.60/bin/autoheader
AUTOMAKE = /home1/packages/automake/automake-1.9.6/bin/automake-1.9
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BYTESEX = @BYTESEX@
CC = @CC@
@@ -213,7 +298,6 @@ FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -227,6 +311,7 @@ H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HAVE_PTHREAD = @HAVE_PTHREAD@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
@@ -244,7 +329,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LARGEFILE = @LARGEFILE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
@@ -260,7 +344,6 @@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
@@ -278,7 +361,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PTHREAD = @PTHREAD@
RANLIB = @RANLIB@
ROOT = @ROOT@
RUNPARALLEL = @RUNPARALLEL@
@@ -443,16 +525,16 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *-tmp
@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) perform
$(HDF5_HL_DIR)
DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
DIST_SUBDIRS = src test testpar tools . c++ fortran hl examples
# Some files generated during configure that should be cleaned
DISTCLEANFILES = config/stamp1 config/stamp2
all: all-recursive
.SUFFIXES:
am--refresh:
am--refresh: Makefile
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(am__configure_deps)
@for dep in $?; do \
@@ -477,6 +559,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/config/commence.am:
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
@@ -494,22 +577,25 @@ distclean-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.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -524,57 +610,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(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" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
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; 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-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -590,12 +631,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
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; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -607,15 +643,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
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; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -624,9 +656,31 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
$(am__remove_distdir)
@@ -662,13 +716,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -697,36 +748,42 @@ distdir: $(DISTFILES)
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
dist-tarZ: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-shar: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
$(am__post_remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist dist-all:
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
@@ -737,8 +794,8 @@ distcheck: dist
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
@@ -748,17 +805,19 @@ distcheck: dist
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(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-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
&& ../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
@@ -781,13 +840,21 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
$(am__post_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:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
@@ -805,7 +872,7 @@ distcleancheck: distclean
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile all-local
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
install-exec: install-exec-recursive
@@ -816,10 +883,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
@@ -860,7 +932,7 @@ install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-exec-local
install-exec-am:
install-html: install-html-recursive
@@ -901,27 +973,26 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-local
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.MAKE: $(am__recursive_targets) install-am install-strip
.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-lzma dist-shar dist-tarZ \
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip 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 \
install-dvi-am install-exec install-exec-am 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
tags-am uninstall uninstall-am
# List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
@@ -946,25 +1017,17 @@ lib progs check-p check-s:
fi; \
done
# Make all, tests, and (un)install also recurse into perform directory
all-local:
@cd perform && $(MAKE) $(AM_MAKEFLAGS) all
# Make all, tests, and (un)install
tests:
@@SETX@; for d in $(SUBDIRS) perform; do \
@@SETX@; for d in $(SUBDIRS); do \
if test $$d != .; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
install-exec-local:
@cd perform && $(MAKE) $(AM_MAKEFLAGS) install
uninstall-local:
@cd perform && $(MAKE) $(AM_MAKEFLAGS) uninstall
done
# Check-clean also recurses into examples directory
check-clean:
@@SETX@; for d in $(SUBDIRS) examples perform; do \
@@SETX@; for d in $(SUBDIRS) examples; do \
if test $$d != .; then \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
@@ -1054,7 +1117,7 @@ check-vfd:
$(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.
# recurse into 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.

View File

@@ -1,4 +1,4 @@
HDF5 version 1.9.109 currently under development
HDF5 version 1.9.215 currently under development
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------
@@ -21,20 +21,17 @@ The following mailing lists are currently set up for HDF5 Library 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.
To subscribe to a list, send mail to "<list>-subscribe@hdfgroup.org".
To subscribe to a list, send mail to "<list>-subscribe@lists.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
news-subscribe@lists.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>@lists.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/

22
UserMacros.cmake Normal file
View File

@@ -0,0 +1,22 @@
########################################################
# Include file for user options
########################################################
#-----------------------------------------------------------------------------
#------------------- E X A M P L E B E G I N--------------------------------
#-----------------------------------------------------------------------------
# Option to Build with User Defined Values
#-----------------------------------------------------------------------------
MACRO (MACRO_USER_DEFINED_LIBS)
set (USER_DEFINED_VALUE "FALSE")
ENDMACRO (MACRO_USER_DEFINED_LIBS)
#-------------------------------------------------------------------------------
option (BUILD_USER_DEFINED_LIBS "Build With User Defined Values" OFF)
if (BUILD_USER_DEFINED_LIBS)
MACRO_USER_DEFINED_LIBS ()
endif (BUILD_USER_DEFINED_LIBS)
#-----------------------------------------------------------------------------
#------------------- E X A M P L E E N D -----------------------------------
#-----------------------------------------------------------------------------

1009
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@@ -17,33 +17,51 @@ require 5.003;
# Purpose: insures that API functions aren't called internally.
# Usage: checkapi H5*.c
my $comment = 0;
while (<>) {
my $filename = "";
my $lastname = "";
# Remove comments within the line.
s/\/\*.*?\*\///g;
if(<>) {
while (<>) {
if($ARGV =~ /\//) {
($filename) = ($ARGV =~ /^.*\/([A-Za-z0-9_]*)\.c$/);
} else {
($filename) = ($ARGV =~ /([A-Za-z0-9_]*)\.c$/);
}
# Process comment begin and end tokens on this line.
$comment-- if /\*\//; # count comment ends
next if $comment; # skip line if in comment
$comment++ if /\/\*/; # count comment starts
s/(.*)\/\*.*/$1/; # remove comments that begin on this line
if($filename =~ /H5FDmulti|H5FDstdio/) {
if($filename ne $lastname) {
print "$ARGV is exempt from checking\n";
$lastname = $filename;
}
} else {
# Get rid of comments by removing the inside part.
s|/\*.*?\*/||g;
if ($in_comment) {
if (/\*\//) {
s|.*?\*/||;
$in_comment = 0;
} else {
$_="\n";
}
} elsif (m|/\*|) {
s|/\*.*||;
$in_comment = 1;
}
# Remove character strings
s/\\.//g; # remove escaped characters
s/\".*?\"//g; # remove string constants
# Remove character strings
s/\\.//g; # remove escaped characters
s/\".*?\"//g; # remove string constants
# Disregard the following hits
next if /^H5/;
next if /^\#/;
next if /FUNC_ENTER(_NOINIT)*/;
# Disregard the following hits
next if /^H5/;
next if /^\#/;
next if /FUNC_ENTER(_NOINIT)*/;
next unless /(H5[A-Z]{1,2}[a-z]\w*)/;
print "$ARGV:$.: $1\n";
} continue {
if (eof) {
print "$ARGV:$.: bad comment nesting\n" if $comment;
$comment = 0;
close ARGV; # reset line number
}
next unless /(H5[A-Z]{1,2}[a-z]\w*)/;
print "$ARGV:$.: $1\n";
}
} continue {
close ARGV if eof; # reset line number
}
}

View File

@@ -1,4 +1,4 @@
#!/usr/local/bin/perl -w
#!/usr/bin/perl -w
require 5.003;
#
@@ -27,60 +27,89 @@ require 5.003;
# use `next-error' (usually bound to M-`) to find each name
# violation.
while (<>) {
if(<>) {
if($ARGV =~ /\//) {
($filename) = ($ARGV =~ /^.*\/([A-Za-z0-9_]*)\.c$/);
} else {
($filename) = ($ARGV =~ /([A-Za-z0-9_]*)\.c$/);
}
# Get rid of comments by removing the inside part.
s|/\*.*?\*/||g;
if ($in_comment) {
if (/\*\//) {
s|.*?\*/||;
$in_comment = 0;
} else {
$_="\n";
}
} elsif (m|/\*|) {
s|/\*.*||;
$in_comment = 1;
}
if($filename =~ /H5FDmulti|H5FDstdio/) {
print "$ARGV is exempt from using Standard library macro wrappers\n";
} else {
while (<>) {
# Get rid of string constants if they begin and end on this line.
s/([\'\"])([^\1]|\\\1)*?\1/$1$1/g;
# Get rid of comments by removing the inside part.
s|/\*.*?\*/||g;
if ($in_comment) {
if (/\*\//) {
s|.*?\*/||;
$in_comment = 0;
} else {
$_="\n";
}
} elsif (m|/\*|) {
s|/\*.*||;
$in_comment = 1;
}
# Get rid of preprocessor directives
s/^\#.*//;
# Get rid of string constants if they begin and end on this line.
s/([\'\"])([^\1]|\\\1)*?\1/$1$1/g;
# Now find all function calls on this line
while (($name)=/\b([a-gi-z_A-GI-Z]\w*)\s*\(/) {
$_ = $';
# Ignore C statements that look sort of like function
# calls.
next if $name =~ /^(if|for|return|sizeof|switch|while|void)$/;
# Get rid of preprocessor directives
s/^\#.*//;
# Ignore things that get misdetected because of the simplified
# parsing that takes place here.
next if $name =~ /^int$/;
# Skip callbacks invoked as methods in a struct
next if $_ =~ /\b(\)?->|\.)\(?([a-z_A-Z]\w*)\s*\(/;
# These are really HDF5 functions/macros even though they don't
# start with `h' or `H'.
next if $name =~ /^FUNC_(ENTER|LEAVE)(_INIT)?$/;
next if $name =~ /^U?INT(8|16|32|64)(ENCODE|DECODE)$/;
next if $name =~ /^(MIN3?|MAX3?|NELMTS|BOUND|CONSTR)$/;
next if $name =~ /^IS_H5FD_MPIO$/;
next if $name =~ /^addr_defined$/;
# Now find all function calls on this line which don't start with 'H'
while (($name)=/\b([a-z_A-GI-Z]\w*)\s*\(/) {
$_ = $';
# Ignore C statements that look sort of like function
# calls.
next if $name =~ /^(if|for|offsetof|return|sizeof|switch|while|void)$/;
# These functions/macros are exempt.
next if $name =~ /^(assert|main|[fs]?printf|va_(start|arg|end))$/;
# Ignore things that get misdetected because of the simplified
# parsing that takes place here.
next if $name =~ /^(int|herr_t|_term_interface)$/;
# These are MPI function calls. Ignore them.
next if $name =~ /^MPI_/;
# These are really HDF5 functions/macros even though they don't
# start with `h' or `H'.
next if $name =~ /^FUNC_(ENTER|LEAVE)(_(NO)?API|_PACKAGE|_STATIC)?(_NOFS|_NOCLEAR|_NOINIT)?(_NOFUNC|_TAG)?$/;
next if $name =~ /^(BEGIN|END)_FUNC$/;
next if $name =~ /^U?INT(8|16|32|64)(ENCODE|DECODE)(_VAR)?$/;
next if $name =~ /^CI_(PRINT_STATS|INC_SRC|INC_DST)$/;
next if $name =~ /^(ABS|ADDR_OVERFLOW|ALL_MEMBERS|BOUND|CONSTR|DETECT_[I|F|M]|DOWN)$/;
next if $name =~ /^(MIN3?|MAX3?|NELMTS|POWER_OF_TWO|REGION_OVERFLOW)$/;
next if $name =~ /^(UNIQUE_MEMBERS)$/;
next if $name =~ /^addr_defined$/;
# These are POSIX threads function calls. Ignore them.
next if $name =~ /^pthread_/;
# These functions/macros are exempt.
next if $name =~ /^(main|[fs]?printf|va_(start|arg|end))$/;
print "$ARGV:$.: $name\n";
}
# These are Windows system calls. Ignore them.
next if $name =~ /^(_get_osfhandle|GetFileInformationByHandle|SetFilePointer|GetLastError|SetEndOfFile)$/;
next if $name =~ /^(FindNextFile|FindClose|_tzset|Wgettimeofday|GetSystemTimeAsFileTime|Wgetlogin|GetUserName)$/;
} continue {
close ARGV if eof;
# These are MPI function calls. Ignore them.
next if $name =~ /^(MPI_|MPE_)/;
# These are POSIX threads function calls. Ignore them.
next if $name =~ /^pthread_/;
# These are Windows threads function calls. Ignore them.
next if $name =~ /^(_beginthread|(Initialize|Enter|Leave)CriticalSection|TlsAlloc)$/;
# These are zlib & szlib function calls. Ignore them.
next if $name =~ /^(inflate|SZ_)/;
next if $name =~ /^compress2$/;
print "$ARGV:$.: $name\n";
}
} continue {
close ARGV if eof; # reset line number
}
}
}

View File

@@ -18,12 +18,12 @@
# Created Date: 2004/12/07
#
# Configure: should be generated by autoconf version 2.68.
# autoconf: should be of version 2.68.
# Configure: should be generated by autoconf version 2.69.
# autoconf: should be of version 2.69.
# variable initialization
nerrors=0
AUTOCONFVERSION=2.68
AUTOCONFVERSION=2.69
AUTOCONFVERSIONLEAD='Generated by GNU Autoconf'
CONFIGUREFILES="configure"

View File

@@ -57,7 +57,7 @@ SH_COPYRIGHT=/tmp/h5chkright_SH.$$ # SHELL style copyright
SH_COPYRIGHT2=/tmp/h5chkright_SH2.$$ # SHELL style copyright, 2nd style.
WINBAT_COPYRIGHT=/tmp/h5chkright_WINBAT.$$ # Windows Batch file Copyright notice
VMSCMD_COPYRIGHT=/tmp/h5chkright_VMSCMD.$$ # VMS command file Copyright notice
CONFIGURE_IN_COPYRIGHT=/tmp/h5chkright_CONFIGURE_IN.$$ # configure.in file Copyright notice
CONFIGURE_AC_COPYRIGHT=/tmp/h5chkright_CONFIGURE_AC.$$ # configure.ac file Copyright notice
tmpfixfile=/tmp/h5chkright_fix.$$ # Temporary fixed copy of file
@@ -207,8 +207,8 @@ EOF
@REM access to either file, you may request a copy from help@hdfgroup.org.
EOF
# configure.in file Copyright notice
cat > ${CONFIGURE_IN_COPYRIGHT} << \EOF
# configure.ac file Copyright notice
cat > ${CONFIGURE_AC_COPYRIGHT} << \EOF
dnl Copyright by The HDF Group.
dnl Copyright by the Board of Trustees of the University of Illinois.
dnl All rights reserved.
@@ -635,10 +635,10 @@ VMSCMD_FILE()
# Check Configure.in type files
#
CONFIGURE_IN_FILE()
CONFIGURE_AC_FILE()
{
f=$1
case `MATCH_COPYRIGHT $CONFIGURE_IN_COPYRIGHT $f` in
case `MATCH_COPYRIGHT $CONFIGURE_AC_COPYRIGHT $f` in
PASSED)
PASSED $f
return
@@ -646,9 +646,9 @@ CONFIGURE_IN_FILE()
FAILED)
# show the difference
FAILED $f
$DIFF ${EXTRACTEDFILE} ${CONFIGURE_IN_COPYRIGHT}
$DIFF ${EXTRACTEDFILE} ${CONFIGURE_AC_COPYRIGHT}
if [ -n "$FIXIT" ]; then
FIX_COPYRIGHT $CONFIGURE_IN_COPYRIGHT $f
FIX_COPYRIGHT $CONFIGURE_AC_COPYRIGHT $f
fi
;;
esac
@@ -681,8 +681,8 @@ GUESS_File_Type()
# Put this after C_SOURCE which may have #define and such lines.
echo SHELL_FILE
elif grep '^dnl' < $tmpfile > /dev/null; then
# Some lines start with a "dnl". It may be a configure.in type file.
echo CONFIGURE_IN_FILE
# Some lines start with a "dnl". It may be a configure.ac type file.
echo CONFIGURE_AC_FILE
elif grep -i '^<html>' < $tmpfile > /dev/null || \
grep '^<!--' < $tmpfile > /dev/null ; then
# Some lines start with a "<html>" or having an html comment tag.
@@ -827,8 +827,8 @@ while read file; do
*Makefile | *Makefile.in | *Makefile.am | Makefile.dist )
MAKE_FILE ${file}
;;
configure.in )
CONFIGURE_IN_FILE ${file}
configure.ac )
CONFIGURE_AC_FILE ${file}
;;
*.bat | *.BAT )
# Windows Batch files

483
bin/cmakehdf5 Executable file
View File

@@ -0,0 +1,483 @@
#! /bin/sh
# Build and Test HDF5 using cmake.
# Author: Allen Byrne
# Albert Cheng
# Creation Date: Nov 2012
# Modified:
# Changed to use the quick steps described in INSTALL_CMake.txt. (AKC 2014/1/1)
# Copyright: The HDF Group, 2012-14
# Debug Print: remove the comment hash if you want DPRINT to do echo
DPRINT=:
#DPRINT=echo
# use the ctest scripting method if --script is given
if [ "$1" != "--script" ]; then
# variable names
# The "extra" number is the step number and easier to see all logfiles in
# the sorted order of steps
progname=`basename $0` # program name
configlog="#${progname}_1config.log"
makelog="#${progname}_2build.log"
testlog="#${progname}_3test.log"
packlog="#${progname}_4pack.log"
installlog="#${progname}_5install.log"
exit_code=0
# This command should be in the source directory's bin/
# and should have invoked as "$srcdir/bin/$progname" or
# "bin/$progname". So, by striping bin/$program from $0,
# we can find $srcdir.
if [ $0 == bin/$progname ]; then
srcdir="." # current directory
else
# $0 is $srdir/bin/$progname
srcdir=`echo $0 | sed -e s%/bin/$progname\$%%`
fi
# Sanity check
if [ ! -r $srcdir/bin/$progname ]; then
echo "encountered error while trying to find srcdir($srdir)"
exit 1
fi
# Cmake build options
cacheinit=$srcdir/config/cmake/cacheinit.cmake
build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF # C++ interface default off
build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF # Fortran interface default off
build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON # High Level interface default on
build_testing=-DBUILD_TESTING:BOOL=ON # Build tests default on
build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON # Build tools default on
#=============
# Function definitions
#=============
# Show user brief help page
HELP_BRIEF()
{
cat << EOF
Usage: $progname [options]
--help: shows details help page
EOF
}
# Show user detail help page
HELP()
{
cat << EOF
Usage: $progname [<options>]
where options are:
--enable-fortran | --disable-fortran:
enable or disable fortran API. Default is off.
--enable-cxx | --disable-cxx:
enable or disable c++ API. Default is off.
--enable-hl | --disable-hl:
enable or disable high level API. Default is on.
--enable-tools | --disable-tools:
enable or disable building tools. Default is on.
--enable-testing | --disable-testing:
enable or disable building tests. Default is on.
--help: shows details help page
EOF
}
# Display a time stamp
TIMESTAMP()
{
echo "=====" "`date`" "====="
}
# Do one step bracketed with time stamps
# The '< /dev/null' is needed to prevent some applications like MPI
# jobs blocked for reading when they read stdin unnecessary.
# $1 is banner message to be displayed.
# $2 is command to run
# $3 is logfile name for saving output from the command
STEP()
{
banner="$1"
command="$2"
logfile="$3"
echo "$banner" with output saved in $logfile
(TIMESTAMP; nerror=0 ;
echo "eval $command"
eval $command || nerror=1 ;
TIMESTAMP; exit $nerror) < /dev/null >> "$logfile" 2>&1
if [ $? -ne 0 ]; then
echo "error in '$banner'. $progname aborted."
exit 1
fi
}
#==========
# main
#==========
# Show a start time stamp
TIMESTAMP
# Parse Cmake configure options
# --enable-XXX or --disable-XXX will enable or disable feature XXX.
# XXX can be:
# fortran Fortran interface
# cxx C++ interface
# hl Highlevel interface
# testing Build tests
# tools Build tools
while [ $# -gt 0 ]; do
case "$1" in
--enable-fortran)
build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=ON
;;
--disable-fortran)
build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF
;;
--enable-cxx)
build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON
;;
--disable-cxx)
build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF
;;
--enable-hl)
build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON
;;
--disable-hl)
build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=OFF
;;
--enable-tools)
build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON
;;
--disable-tools)
build_tools=-DHDF5_BUILD_TOOLS:BOOL=OFF
;;
--enable-testing)
build_testing=-DBUILD_TESTING:BOOL=ON
;;
--disable-testing)
build_testing=-DBUILD_TESTING:BOOL=OFF
;;
--help)
# print the detail help page and exit
HELP
exit 0
;;
*)
echo "Unknown options"
HELP
;;
esac
shift
done
# Always display the brief help page
HELP_BRIEF
# Verify there is a valid hdf5 source directory present
if [ ! -d $srcdir ]; then
echo $srcdir not found. Aborted.
exit 1
fi
# figure out version information
vers=bin/h5vers
if [ ! -x $srcdir/$vers ]; then
echo $srcdir/$vers not found or not executable. Aborted.
exit 1
fi
version=`cd $srcdir; $vers`
if [ $? != 0 ]; then
echo $vers failed. Aborted.
exit 1
fi
echo Running Cmake for HDF5-${version} ...
# 4. Configure the C library, tools and tests with this command:
STEP "Configure..." "cmake \
$build_cpp_lib \
$build_fortran \
$build_hl_lib \
$build_testing \
$build_tools \
$srcdir" $configlog
# 5. Build the C library, tools and tests with this command:
STEP "Build the library, tools and tests, ..." "cmake --build . --config Release" $makelog
# 6. Test the C library and tools with this command:
STEP "Test the library and tools..." "ctest . -C Release" $testlog
# 7. Create an install image with this command:
STEP "Create an install image..." "cpack -C Release CPackConfig.cmake" $packlog
# 8. Install with this command:
STEP "Install..." "./HDF5-${version}-Linux.sh --skip-license" $installlog
# save the last exit code
exit_code=$?
# Show a closing time stamp
TIMESTAMP
exit $exit_code
else
# ---------------
# older version
# ---------------
# variable names
progname=`basename $0` # program name
cminfile="cmakemin.$$" # Cmake minimum file
cfgfile=$progname.$$ # configure file
ctest_log=ctest.log # output of ctest script
install_log=install.log # output of installation
$DPRINT $cfgfile
# Remove temporary generated files if exit 0
trap "rm -f $cminfile $cfgfile" 0
#=============
# Function definitions
#=============
TIMESTAMP()
{
echo "=====" "`date`" "====="
}
#==========
# main
#==========
# Show a start time stamp
TIMESTAMP
# Explain what and where log files are.
cat <<EOF
$ctest_log: output of ctest script.
$install_log: output of installation
Log files will be stored in Testing/Temporary:
LastConfigure_<timestamp>.log: output of configure
LastBuild_<timestamp>.log: output of build
LastTest_<timestamp>.log: output of testing
LastTestsFailed_<timestamp>.log: list of failed tests
EOF
# First generate the two needed input files, the $cimnfile and $cfgfile.
# Then use ctest to use the two input files.
#==========
# create the configure file
#==========
# Create the cmake minimum required file to be used by the following
# configure file. Though not absolute needed, it is better to generate
# this file before the configure file. Quote the EOF to preven substitution
# in the text.
#==========
#==========
cat > $cfgfile <<'EOF'
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
########################################################
# This dashboard is maintained by The HDF Group
# For any comments please contact cdashhelp@hdfgroup.org
#
########################################################
set (CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
set (CTEST_SOURCE_DIRECTORY "../hdf5")
set (CTEST_BINARY_DIRECTORY ".")
set (CTEST_CMAKE_GENERATOR "Unix Makefiles")
set (CTEST_BUILD_CONFIGURATION "Release")
set (CTEST_MAX_N 8)
# -- CDash variables
set (LOCAL_NO_SUBMIT TRUE) # No CDash submit.
set (MODEL "Experimental")
set (CDASH_LOCAL TRUE)
set (SITE_BUILDNAME_SUFFIX "cmakehdf5")
# -- URL set for internal check, default is to not update
set (LOCAL_SKIP_UPDATE TRUE)
set (REPOSITORY_URL "http://svn.${hdfgroup_url}/hdf5/branches/hdf5_1_8")
# -- Standard build options
set (ADD_BUILD_OPTIONS "-DCMAKE_INSTALL_PREFIX:PATH=${CTEST_BINARY_DIRECTORY} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=\"SVN\" -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
# Use multiple CPU cores to build
include(ProcessorCount)
ProcessorCount(N)
if(NOT N EQUAL 0)
if(N GREATER ${CTEST_MAX_N})
set(N ${CTEST_MAX_N})
endif(N GREATER ${CTEST_MAX_N})
set(CTEST_BUILD_FLAGS -j${N})
set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
endif()
# -----------------------------------------------------------
# -- Get environment
# -----------------------------------------------------------
## -- set hostname
## --------------------------
find_program (HOSTNAME_CMD NAMES hostname)
exec_program (${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME)
set (CTEST_SITE "${HOSTNAME}${CTEST_SITE_EXT}")
find_program (UNAME NAMES uname)
macro (getuname name flag)
exec_program ("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}")
endmacro (getuname)
getuname (osname -s)
getuname (osrel -r)
getuname (cpu -m)
if (SITE_BUILDNAME_SUFFIX)
set (CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}-${SITE_BUILDNAME_SUFFIX}")
else (SITE_BUILDNAME_SUFFIX)
set (CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}")
endif (SITE_BUILDNAME_SUFFIX)
# -----------------------------------------------------------
set (BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}")
#-----------------------------------------------------------------------------
# MAC machines need special option
#-----------------------------------------------------------------------------
if (APPLE)
# Compiler choice
execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
SET(ENV{CC} "${XCODE_CC}")
SET(ENV{CXX} "${XCODE_CXX}")
# Shared fortran is not supported, build static
set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
set (BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
endif (APPLE)
# -----------------------------------------------------------
find_package (Subversion)
set (CTEST_UPDATE_COMMAND "${Subversion_SVN_EXECUTABLE}")
# -- Only clean build folder if LOCAL_CLEAR_BUILD is set
if (LOCAL_CLEAR_BUILD)
set (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
ctest_empty_binary_directory (${CTEST_BINARY_DIRECTORY})
endif (LOCAL_CLEAR_BUILD)
#-----------------------------------------------------------------------------
# Send the main script as a note.
list (APPEND CTEST_NOTES_FILES
"${CMAKE_CURRENT_LIST_FILE}"
"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake"
)
# Check for required variables.
foreach (req
CTEST_CMAKE_GENERATOR
CTEST_SITE
CTEST_BUILD_NAME
)
if (NOT DEFINED ${req})
message(FATAL_ERROR "The containing script must set ${req}")
endif (NOT DEFINED ${req})
endforeach (req)
## -- set output to english
set($ENV{LC_MESSAGES} "en_EN")
#-----------------------------------------------------------------------------
# Initialize the CTEST commands
#------------------------------
set (CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
set (CTEST_CONFIGURE_COMMAND
"${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\"")
# Print summary information.
foreach (v
CTEST_SITE
CTEST_BUILD_NAME
CTEST_SOURCE_DIRECTORY
CTEST_BINARY_DIRECTORY
CTEST_CMAKE_GENERATOR
CTEST_BUILD_CONFIGURATION
CTEST_CONFIGURE_COMMAND
CTEST_SCRIPT_DIRECTORY
)
set (vars "${vars} ${v}=[${${v}}]\n")
endforeach (v)
message ("Dashboard script configuration:\n${vars}\n")
CTEST_START (${MODEL} TRACK ${MODEL})
if (NOT LOCAL_SKIP_UPDATE)
CTEST_UPDATE (SOURCE "${CTEST_SOURCE_DIRECTORY}")
endif (NOT LOCAL_SKIP_UPDATE)
CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
if(NOT res STREQUAL "0")
message (FATAL_ERROR "Configure FAILED")
endif()
message ("Configure DONE")
CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}")
if (NOT LOCAL_NO_SUBMIT)
CTEST_SUBMIT (PARTS Update Configure Notes)
endif (NOT LOCAL_NO_SUBMIT)
CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND RETURN_VALUE res)
if (NOT LOCAL_NO_SUBMIT)
CTEST_SUBMIT (PARTS Build)
endif (NOT LOCAL_NO_SUBMIT)
if(NOT res STREQUAL "0")
message (FATAL_ERROR "Build FAILED")
endif()
message ("build DONE")
if (NOT LOCAL_SKIP_TEST)
CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
if (NOT LOCAL_NO_SUBMIT)
CTEST_SUBMIT (PARTS Test)
endif (NOT LOCAL_NO_SUBMIT)
if(NOT res STREQUAL "0")
message (FATAL_ERROR "Test FAILED")
endif()
message ("test DONE")
endif (NOT LOCAL_SKIP_TEST)
if(NOT LOCAL_MEMCHECK_TEST)
##-----------------------------------------------
## Package the product
##-----------------------------------------------
execute_process(COMMAND cpack -C ${CTEST_BUILD_CONFIGURATION} -V
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY}
RESULT_VARIABLE cpackResult
OUTPUT_VARIABLE cpackLog
ERROR_VARIABLE cpackLog.err
)
file(WRITE ${CTEST_BINARY_DIRECTORY}/cpack.log "${cpackLog.err}" "${cpackLog}")
endif(NOT LOCAL_MEMCHECK_TEST)
#-----------------------------------------------------------------------------
message ("DONE")
EOF
# Run ctest
ctest -S $cfgfile -C Release -V -O $ctest_log
exit_code=$?
if [ $exit_code = 0 ]; then
echo CTest script completed without error
else
echo Error encountered CTest script
fi
# Using HDF5-*.sh because actual name is unavailable
install_sh=HDF5-*.sh
echo installing with $install_sh ...
./$install_sh --skip-license > $install_log
exit_code=$?
if [ $exit_code = 0 ]; then
echo Complete without error
else
echo Error encountered
fi
TIMESTAMP
exit $exit_code
fi

8
bin/config.guess vendored
View File

@@ -778,9 +778,9 @@ EOF
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
i*:CYGWIN*:* | x*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
@@ -815,7 +815,7 @@ EOF
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
amd64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
p*:CYGWIN*:*)

65
bin/genltanalyze Executable file
View File

@@ -0,0 +1,65 @@
#!/bin/sh
##
## 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
##
# regenerate hl/src/H5LTanalyze.c
# HDF5 currently uses the following versions of the bison flex:
BISON_VERSION="bison (GNU Bison) 2.7"
FLEX_VERSION="flex 2.5.37"
# If paths to bison flex are not specified by the user, assume tools are
# running on jam in /mnt/hdf/packages and set paths accordingly.
if test -z ${BISON}; then
BISON=/usr/hdf/bin/bison
fi
if test -z ${FLEX}; then
FLEX=/usr/hdf/bin/flex
fi
# Check version numbers of all bison flex against the "correct" versions
BI_VERS=`${BISON} --version 2>&1 | grep "^${BISON_VERSION}"`
if test -z "${BI_VERS}"; then
echo "${BISON} version is not ${BISON_VERSION}"
exit 1
fi
FL_VERS=`${FLEX} --version 2>&1 | grep "^${FLEX_VERSION}"`
if test -z "${FL_VERS}"; then
echo "${FLEX} version is not ${FLEX_VERSION}"
exit 1
fi
# Make sure that the tools are in the path.
BISON_DIR=`dirname ${BISON}`
FLEX_DIR=`dirname ${FLEX}`
# Main body
cd hl/src
echo "Generate hl/src/H5LTparse.c from hl/src/H5LTparse.y"
bison -pH5LTyy -o H5LTparse.c -d H5LTparse.y
echo "Generate hl/src/H5LTanalyze.c from hl/src/H5LTanalyze.l"
flex --nounistd -PH5LTyy -oH5LTanalyze.c H5LTanalyze.l
# fix H5LTparse.c to declare H5LTyyparse return type as an hid_t
# instead of int. Currently the generated function H5LTyyparse is
# generated with a return value of type int, which is a mapping to the
# flex yyparse function. The return value in the HL library should be
# an hid_t.
# I propose to not use flex to generate this function, but for now I am
# adding a perl command to find and replace this function declaration in
# H5LTparse.c.
perl -0777 -pi -e 's/int\nyyparse/hid_t\nyyparse/igs' H5LTparse.c
perl -0777 -pi -e 's/int H5LTyyparse/hid_t H5LTyyparse/igs' H5LTparse.c
cd ../..
exit 0

View File

@@ -71,7 +71,7 @@ use strict;
# the command line) then the first line of the README.txt and RELEASE.txt files
# one directory above the H5public.h file is also modified so it looks
# 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
# The AC_INIT macro in configure.ac 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.
@@ -159,10 +159,10 @@ 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, windows/src/H5pubconf.h,
# vms/src/h5pubcof.h and config/lt_vers.am.
# The README.txt, release_docs/RELEASE.txt, configure.in,
# windows/src/H5pubconf.h, vms/src/h5pubconf.h and config/lt_vers.am
# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h,
# vms/src/h5pubconf.h and config/lt_vers.am.
# The README.txt, release_docs/RELEASE.txt, configure.ac,
# 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) {
@@ -183,14 +183,10 @@ die "unable to read file: $README\n" unless -r $file;
my $RELEASE = $file;
$RELEASE =~ s/[^\/]*$/..\/release_docs\/RELEASE.txt/;
die "unable to read file: $RELEASE\n" unless -r $file;
# configure.in
# configure.ac
my $CONFIGURE = $file;
$CONFIGURE =~ s/[^\/]*$/..\/configure.in/;
$CONFIGURE =~ s/[^\/]*$/..\/configure.ac/;
die "unable to read file: $CONFIGURE\n" unless -r $file;
# windows/src/H5pubconf.h
my $H5PUBCONF = $file;
$H5PUBCONF =~ s/[^\/]*$/..\/windows\/src\/H5pubconf.h/;
die "unable to read file: $H5PUBCONF\n" unless -r $file;
# vms/src/h5pubconf.h
my $H5VMSPUBCONF = $file;
$H5VMSPUBCONF =~ s/[^\/]*$/..\/vms\/src\/h5pubconf.h/;
@@ -242,7 +238,6 @@ if ($set) {
$README = "";
$RELEASE = "";
$CONFIGURE = "";
$H5PUBCONF = "";
$H5VMSPUBCONF = "";
$LT_VERS = "";
@newver = @curver;
@@ -339,7 +334,7 @@ sub gen_configure {
print FILE @contents;
close FILE;
$conf =~ /^(.*?)\/?configure.in$/;
$conf =~ /^(.*?)\/?configure.ac$/;
if ($1) {
$rc = system("cd $1 && bin/reconfigure >/dev/null 2>/dev/null && rm -rf autom4te.cache");
@@ -352,7 +347,7 @@ sub gen_configure {
}
}
# Update the configure.in files and regenerate them
# Update the configure.ac files and regenerate them
gen_configure("HDF5", $CONFIGURE) if $CONFIGURE;
sub gen_h5pubconf {
@@ -392,9 +387,6 @@ sub gen_h5pubconf {
close FILE;
}
# Update the Windows-maintained H5pubconf.h file
gen_h5pubconf("HDF5", $H5PUBCONF, @newver) if $H5PUBCONF;
# Update the VMS-maintained h5pubconf.h file
gen_h5pubconf("HDF5", $H5VMSPUBCONF, @newver) if $H5VMSPUBCONF;

View File

@@ -1,9 +1,9 @@
# libtool (GNU libtool) 2.4
# libtool (GNU libtool) 2.4.2
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -41,6 +41,7 @@
# --quiet, --silent don't print informational messages
# --no-quiet, --no-silent
# print informational messages (default)
# --no-warn don't display warning messages
# --tag=TAG use configuration variables from tag TAG
# -v, --verbose print more informational messages than default
# --no-verbose don't print the extra informational messages
@@ -69,7 +70,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
# $progname: (GNU libtool) 2.4
# $progname: (GNU libtool) 2.4.2
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -79,9 +80,9 @@
PROGRAM=libtool
PACKAGE=libtool
VERSION=2.4
VERSION=2.4.2
TIMESTAMP=""
package_revision=1.3293
package_revision=1.3337
# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -136,15 +137,10 @@ progpath="$0"
: ${CP="cp -f"}
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
: ${EGREP="grep -E"}
: ${FGREP="grep -F"}
: ${GREP="grep"}
: ${LN_S="ln -s"}
: ${MAKE="make"}
: ${MKDIR="mkdir"}
: ${MV="mv -f"}
: ${RM="rm -f"}
: ${SED="sed"}
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
: ${Xsed="$SED -e 1s/^X//"}
@@ -387,7 +383,7 @@ case $progpath in
;;
*)
save_IFS="$IFS"
IFS=:
IFS=${PATH_SEPARATOR-:}
for progdir in $PATH; do
IFS="$save_IFS"
test -x "$progdir/$progname" && break
@@ -771,8 +767,8 @@ func_help ()
s*\$LTCFLAGS*'"$LTCFLAGS"'*
s*\$LD*'"$LD"'*
s/\$with_gnu_ld/'"$with_gnu_ld"'/
s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
p
d
}
@@ -1052,6 +1048,7 @@ opt_finish=false
opt_help=false
opt_help_all=false
opt_silent=:
opt_warning=:
opt_verbose=:
opt_silent=false
opt_verbose=false
@@ -1118,6 +1115,10 @@ esac
;;
--no-silent|--no-quiet)
opt_silent=false
func_append preserve_args " $opt"
;;
--no-warning|--no-warn)
opt_warning=false
func_append preserve_args " $opt"
;;
--no-verbose)
@@ -2059,7 +2060,7 @@ func_mode_compile ()
*.[cCFSifmso] | \
*.ada | *.adb | *.ads | *.asm | \
*.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
*.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
*.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
func_xform "$libobj"
libobj=$func_xform_result
;;
@@ -3201,11 +3202,13 @@ func_mode_install ()
# Set up the ranlib parameters.
oldlib="$destdir/$name"
func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
tool_oldlib=$func_to_tool_file_result
func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
if test -n "$stripme" && test -n "$old_striplib"; then
func_show_eval "$old_striplib $oldlib" 'exit $?'
func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
fi
# Do each command in the postinstall commands.
@@ -3470,7 +3473,7 @@ static const void *lt_preloaded_setup() {
# linked before any other PIC object. But we must not use
# pic_flag when linking with -static. The problem exists in
# FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
*-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
*-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
*-*-hpux*)
pic_flag_for_symtable=" $pic_flag" ;;
@@ -3982,14 +3985,17 @@ func_exec_program_core ()
# launches target application with the remaining arguments.
func_exec_program ()
{
for lt_wr_arg
do
case \$lt_wr_arg in
--lt-*) ;;
*) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
esac
shift
done
case \" \$* \" in
*\\ --lt-*)
for lt_wr_arg
do
case \$lt_wr_arg in
--lt-*) ;;
*) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
esac
shift
done ;;
esac
func_exec_program_core \${1+\"\$@\"}
}
@@ -5057,9 +5063,15 @@ void lt_dump_script (FILE* f)
{
EOF
func_emit_wrapper yes |
$SED -e 's/\([\\"]\)/\\\1/g' \
-e 's/^/ fputs ("/' -e 's/$/\\n", f);/'
$SED -n -e '
s/^\(.\{79\}\)\(..*\)/\1\
\2/
h
s/\([\\"]\)/\\\1/g
s/$/\\n/
s/\([^\n]*\).*/ fputs ("\1", f);/p
g
D'
cat <<"EOF"
}
EOF
@@ -5643,7 +5655,8 @@ func_mode_link ()
continue
;;
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
|-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
func_append compiler_flags " $arg"
func_append compile_command " $arg"
func_append finalize_command " $arg"
@@ -6147,7 +6160,8 @@ func_mode_link ()
lib=
found=no
case $deplib in
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
|-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
if test "$linkmode,$pass" = "prog,link"; then
compile_deplibs="$deplib $compile_deplibs"
finalize_deplibs="$deplib $finalize_deplibs"
@@ -6831,7 +6845,7 @@ func_mode_link ()
test "$hardcode_direct_absolute" = no; then
add="$dir/$linklib"
elif test "$hardcode_minus_L" = yes; then
add_dir="-L$dir"
add_dir="-L$absdir"
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
@@ -7316,6 +7330,7 @@ func_mode_link ()
# which has an extra 1 added just for fun
#
case $version_type in
# correct linux to gnu/linux during the next big refactor
darwin|linux|osf|windows|none)
func_arith $number_major + $number_minor
current=$func_arith_result
@@ -7432,7 +7447,7 @@ func_mode_link ()
versuffix="$major.$revision"
;;
linux)
linux) # correct to gnu/linux during the next big refactor
func_arith $current - $age
major=.$func_arith_result
versuffix="$major.$age.$revision"
@@ -8020,6 +8035,11 @@ EOF
# Test again, we may have decided not to build it any more
if test "$build_libtool_libs" = yes; then
# Remove ${wl} instances when linking with ld.
# FIXME: should test the right _cmds variable.
case $archive_cmds in
*\$LD\ *) wl= ;;
esac
if test "$hardcode_into_libs" = yes; then
# Hardcode the library paths
hardcode_libdirs=
@@ -8050,7 +8070,7 @@ EOF
elif test -n "$runpath_var"; then
case "$perm_rpath " in
*" $libdir "*) ;;
*) func_apped perm_rpath " $libdir" ;;
*) func_append perm_rpath " $libdir" ;;
esac
fi
done
@@ -8058,11 +8078,7 @@ EOF
if test -n "$hardcode_libdir_separator" &&
test -n "$hardcode_libdirs"; then
libdir="$hardcode_libdirs"
if test -n "$hardcode_libdir_flag_spec_ld"; then
eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
else
eval dep_rpath=\"$hardcode_libdir_flag_spec\"
fi
eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
fi
if test -n "$runpath_var" && test -n "$perm_rpath"; then
# We should set the runpath_var.
@@ -9152,6 +9168,8 @@ EOF
esac
done
fi
func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
tool_oldlib=$func_to_tool_file_result
eval cmds=\"$old_archive_cmds\"
func_len " $cmds"
@@ -9261,7 +9279,8 @@ EOF
*.la)
func_basename "$deplib"
name="$func_basename_result"
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
func_resolve_sysroot "$deplib"
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
test -z "$libdir" && \
func_fatal_error "\`$deplib' is not a valid libtool archive"
func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"

View File

@@ -1,11 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2005-02-08.22
scriptversion=2013-10-28.13; # UTC
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,9 +17,7 @@ scriptversion=2005-02-08.22
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -28,63 +25,40 @@ scriptversion=2005-02-08.22
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
run=:
case $1 in
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
msg="missing on your system"
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
@@ -96,262 +70,146 @@ Send bug reports to <bug-automake@gnu.org>."
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
case "$1" in
lex|yacc)
# Not GNU programs, they don't have --version.
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=http://www.perl.org/
flex_URL=http://flex.sourceforge.net/
gnu_software_URL=http://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
tar)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
touch $file
;;
tar)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@@ -28,11 +28,13 @@
# 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.68"
AUTOMAKE_VERSION="automake (GNU automake) 1.11.1"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.68"
ACLOCAL_VERSION="aclocal (GNU automake) 1.11.1"
LIBTOOL_VERSION="(GNU libtool) 2.4"
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.69"
AUTOMAKE_VERSION="automake (GNU automake) 1.14.1"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.69"
ACLOCAL_VERSION="aclocal (GNU automake) 1.14.1"
LIBTOOL_VERSION="(GNU libtool) 2.4.2"
M4_VERSION="m4 (GNU M4) 1.4.17"
#
# When upgrading automake's version, don't forget to also update its
# helper utilities, especially depcomp.
@@ -40,20 +42,26 @@ LIBTOOL_VERSION="(GNU libtool) 2.4"
# If paths to autotools are not specified by the user, assume tools are
# running on jam in /mnt/hdf/packages and set paths accordingly.
if test -z ${AUTORECONF}; then
AUTORECONF=/mnt/hdf/packages/autoconf/autoconf-2.69/bin/autoreconf
fi
if test -z ${AUTOCONF}; then
AUTOCONF=/mnt/hdf/packages/autoconf/autoconf-2.68/bin/autoconf
AUTOCONF=/mnt/hdf/packages/autoconf/autoconf-2.69/bin/autoconf
fi
if test -z ${AUTOMAKE}; then
AUTOMAKE=/mnt/hdf/packages/automake/automake-1.11.1/bin/automake-1.11
AUTOMAKE=/mnt/hdf/packages/automake/automake-1.14.1/bin/automake-1.14
fi
if test -z ${AUTOHEADER}; then
AUTOHEADER=/mnt/hdf/packages/autoconf/autoconf-2.68/bin/autoheader
AUTOHEADER=/mnt/hdf/packages/autoconf/autoconf-2.69/bin/autoheader
fi
if test -z ${ACLOCAL}; then
ACLOCAL=/mnt/hdf/packages/automake/automake-1.11.1/bin/aclocal-1.11
ACLOCAL=/mnt/hdf/packages/automake/automake-1.14.1/bin/aclocal-1.14
fi
if test -z ${LIBTOOL}; then
LIBTOOL=/mnt/hdf/packages/libtool/libtool-2.4/bin/libtool
LIBTOOL=/mnt/hdf/packages/libtool/libtool-2.4.2/bin/libtool
fi
if test -z ${M4}; then
M4=/mnt/hdf/packages/m4/m4-1.4.17/bin/m4
fi
# Check version numbers of all autotools against the "correct" versions
@@ -82,14 +90,17 @@ if test -z "${LT_VERS}"; then
echo "${LIBTOOL} version is not ${LIBTOOL_VERSION}"
exit 1
fi
# Use the latest version of M4
PATH=/mnt/hdf/packages/m4/m4-1.4.15/bin:/mnt/hdf/packages/m4/m4-1.4.15/share:$PATH
M4_VERS=`${M4} --version 2>&1 | grep "${M4_VERSION}"`
if test -z "${M4_VERS}"; then
echo "${M4} version is not ${M4_VERSION}"
exit 1
fi
# Make sure that the tools are in the path.
AUTOCONF_DIR=`dirname ${AUTOCONF}`
LIBTOOL_DIR=`dirname ${LIBTOOL}`
PATH=${AUTOCONF_DIR}:$PATH
M4_DIR=`dirname ${M4}`
PATH=${AUTOCONF_DIR}:${M4_DIR}:$PATH
# Run autoconf/automake commands in order
echo ${ACLOCAL} -I ${LIBTOOL_DIR}/../share/aclocal
@@ -132,4 +143,10 @@ echo
echo " Running API version generation script:"
bin/make_vers src/H5vers.txt || exit 1
# Run flex
# automatically generates the lexical file for hl/src/H5LTanalyze.c
echo
echo " Running flex generation script:"
bin/genltanalyze || exit 1
exit 0

View File

@@ -40,45 +40,114 @@
USAGE()
{
cat << EOF
Usage: $0 [--nocheck] [-d <dir>] [-h] <methods> ...
Usage: $0 -d <dir> [-h] [--nocheck] [--private] <methods> ...
-d DIR The name of the directory where the releas(es) should be
placed. By default, the directory is ./releases
placed.
-h print the help page.
--nocheck Ignore errors in MANIFEST file.
--private Make a private release with today's date in version information.
This must be run at the top level of the source directory.
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.
zip -- convert all text files to DOS style and form a zip file for Windows use.
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
$ bin/release -d /tmp
/tmp/hdf5-1.8.13-RELEASE.txt
/tmp/hdf5-1.8.13.tar
/tmp/hdf5-1.8.13.tar.md5
$ release gzip
releases/hdf5-1.0.38.tar.gz
$ bin/release -d /tmp gzip
/tmp/hdf5-1.8.13-RELEASE.txt
/tmp/hdf5-1.8.13.tar.gz
$ release -d /tmp tar compress gzip bzip2 md5
/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
$ bin/release -d /tmp tar gzip zip md5
/tmp/hdf5-1.8.13-RELEASE.txt
/tmp/hdf5-1.8.13.tar
/tmp/hdf5-1.8.13.tar.gz
/tmp/hdf5-1.8.13.tar.md5
/tmp/hdf5-1.8.13.tar.zip
EOF
}
# Function name: tar2zip
# Convert the release tarball to a Windows zipball.
#
# Programmer: Albert Cheng
# Creation date: 2014-04-23
#
# Modifications
#
# Steps:
# 1. untar the tarball in a temporay directory;
# Note: do this in a temporary directory to avoid changing
# the original source directory which maybe around.
# 2. convert all its text files to DOS (LF-CR) style;
# 3. form a zip file which is usable by Windows users.
#
# Parameters:
# $1 version
# $2 release tarball
# $3 output zipball file name
#
# Returns 0 if successful; 1 otherwise
#
tar2zip()
{
if [ $# -ne 3 ]; then
echo "usage: tar2zip <tarfilename> <zipfilename>"
return 1
fi
ztmpdir=/tmp/tmpdir$$
mkdir -p $ztmpdir
version=$1
tarfile=$2
zipfile=$3
# step 1: untar tarball in ztmpdir
(cd $ztmpdir; tar xf -) < $tarfile
# sanity check
if [ ! -d $ztmpdir/$version ]; then
echo "untar did not create $ztmpdir/$version source dir"
# cleanup
rm -rf $ztmpdir
return 1
fi
# step 2: convert text files
# There maybe a simpler way to do this.
# options used in unix2dos:
# -k Keep the date stamp
# -q quiet mode
# grep redirect output to /dev/null because -q or -s are not portable.
find $ztmpdir/$version | \
while read inf; do \
if file $inf | grep "$inf\: .*text" > /dev/null 2>&1 ; then \
unix2dos -q -k $inf; \
fi\
done
# step 3: make zipball
# -9 maximum compression
# -y Store symbolic links as such in the zip archive
# -r recursive
# -q quiet
(cd $ztmpdir; zip -9 -y -r -q $version.zip $version)
mv $ztmpdir/$version.zip $zipfile
# cleanup
rm -rf $ztmpdir
}
# This command must be run at the top level of the hdf5 source directory.
# Verify this requirement.
if [ ! \( -f configure -a -f bin/release \) ]; then
@@ -225,10 +294,6 @@ for comp in $methods; do
tar)
cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar
;;
compress)
test "$verbose" && echo " Running compress..." 1>&2
compress -c <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.Z
;;
gzip)
test "$verbose" && echo " Running gzip..." 1>&2
gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz
@@ -237,6 +302,10 @@ for comp in $methods; do
test "$verbose" && echo " Running bzip2..." 1>&2
bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2
;;
zip)
test "$verbose" && echo " Creating zip ball..." 1>&2
tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2
;;
md5)
test "$verbose" && echo " Creating checksum..." 1>&2
(cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5
@@ -255,6 +324,10 @@ for comp in $methods; do
(cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs)
mv $tmpdir/${HDF5_VERS}_docs.tar $DEST
;;
*)
echo "***Error*** Unknown method $comp"
exit 1
;;
esac
done

View File

@@ -68,7 +68,7 @@ ZLIB_default=
ZLIB=$ZLIB_default
# What compression methods to use? (md5 does checksum).
METHODS="gzip bzip2 md5 doc"
METHODS="gzip zip bzip2 md5 doc"
# Use User's MAKE if set. Else use generic make.
MAKE=${MAKE:-make}

139
bin/test-driver Executable file
View File

@@ -0,0 +1,139 @@
#! /bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2013-07-13.22; # UTC
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# Make unconditional expansion of undefined variables an error. This
# helps a lot in preventing typo-related bugs.
set -u
usage_error ()
{
echo "$0: $*" >&2
print_usage >&2
exit 2
}
print_usage ()
{
cat <<END
Usage:
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
[--expect-failure={yes|no}] [--color-tests={yes|no}]
[--enable-hard-errors={yes|no}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
END
}
test_name= # Used for reporting.
log_file= # Where to save the output of the test script.
trs_file= # Where to save the metadata of the test run.
expect_failure=no
color_tests=no
enable_hard_errors=yes
while test $# -gt 0; do
case $1 in
--help) print_usage; exit $?;;
--version) echo "test-driver $scriptversion"; exit $?;;
--test-name) test_name=$2; shift;;
--log-file) log_file=$2; shift;;
--trs-file) trs_file=$2; shift;;
--color-tests) color_tests=$2; shift;;
--expect-failure) expect_failure=$2; shift;;
--enable-hard-errors) enable_hard_errors=$2; shift;;
--) shift; break;;
-*) usage_error "invalid option: '$1'";;
*) break;;
esac
shift
done
missing_opts=
test x"$test_name" = x && missing_opts="$missing_opts --test-name"
test x"$log_file" = x && missing_opts="$missing_opts --log-file"
test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
if test x"$missing_opts" != x; then
usage_error "the following mandatory options are missing:$missing_opts"
fi
if test $# -eq 0; then
usage_error "missing argument"
fi
if test $color_tests = yes; then
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
red='' # Red.
grn='' # Green.
lgn='' # Light green.
blu='' # Blue.
mgn='' # Magenta.
std='' # No color.
else
red= grn= lgn= blu= mgn= std=
fi
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
trap "st=129; $do_exit" 1
trap "st=130; $do_exit" 2
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
# Test script is run here.
"$@" >$log_file 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
estatus=1
fi
case $estatus:$expect_failure in
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
0:*) col=$grn res=PASS recheck=no gcopy=no;;
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
esac
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
# Register the test result, and other relevant metadata.
echo ":test-result: $res" > $trs_file
echo ":global-test-result: $res" >> $trs_file
echo ":recheck: $recheck" >> $trs_file
echo ":copy-in-global-log: $gcopy" >> $trs_file
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# 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:

View File

@@ -38,6 +38,7 @@ $Source = "";
"H5FD_mpio_chunk_opt_t" => "Dh",
"H5D_mpio_actual_io_mode_t" => "Di",
"H5D_layout_t" => "Dl",
"H5D_mpio_no_collective_cause_t" => "Dn",
"H5D_mpio_actual_chunk_opt_mode_t" => "Do",
"H5D_space_status_t" => "Ds",
"H5FD_mpio_xfer_t" => "Dt",
@@ -63,6 +64,7 @@ $Source = "";
"int32_t" => "Is",
"unsigned" => "Iu",
"unsigned int" => "Iu",
"uint32_t" => "Iu",
"H5I_type_t" => "It",
"H5G_link_t" => "Ll", #Same as H5L_type_t now
"H5L_type_t" => "Ll",
@@ -75,6 +77,7 @@ $Source = "";
"hobj_ref_t" => "r",
"H5R_type_t" => "Rt",
"char" => "s",
"unsigned char" => "s",
"H5S_class_t" => "Sc",
"H5S_seloper_t" => "Ss",
"H5S_sel_type" => "St",
@@ -97,7 +100,9 @@ $Source = "";
"H5A_operator2_t" => "x",
"H5A_info_t" => "x",
"H5AC_cache_config_t" => "x",
"H5D_gather_func_t" => "x",
"H5D_operator_t" => "x",
"H5D_scatter_func_t" => "x",
"H5E_auto_t" => "x",
"H5E_auto1_t" => "x",
"H5E_auto2_t" => "x",
@@ -109,6 +114,7 @@ $Source = "";
"H5FD_t" => "x",
"H5FD_class_t" => "x",
"H5FD_stream_fapl_t" => "x",
"H5FD_file_image_callbacks_t" => "x",
"H5G_iterate_t" => "x",
"H5G_info_t" => "x",
"H5I_free_t" => "x",
@@ -119,6 +125,7 @@ $Source = "";
"H5MM_free_t" => "x",
"H5O_info_t" => "x",
"H5O_iterate_t" => "x",
"H5O_mcdt_search_cb_t" => "x",
"H5P_cls_create_func_t" => "x",
"H5P_cls_copy_func_t" => "x",
"H5P_cls_close_func_t" => "x",
@@ -135,6 +142,7 @@ $Source = "";
"H5T_conv_except_func_t" => "x",
"H5Z_func_t" => "x",
"H5Z_filter_func_t" => "x",
"va_list" => "x",
"size_t" => "z",
"H5Z_SO_scale_type_t" => "Za",
"H5Z_class_t" => "Zc",

View File

@@ -1,19 +1,24 @@
cmake_minimum_required (VERSION 2.8.6)
cmake_minimum_required (VERSION 3.1.0)
PROJECT (HDF5_CPP)
#-----------------------------------------------------------------------------
# Apply Definitions to compiler in this directory and below
#-----------------------------------------------------------------------------
add_definitions (${HDF_EXTRA_C_FLAGS})
#-----------------------------------------------------------------------------
# Shared/Static Libs
#-----------------------------------------------------------------------------
IF (BUILD_SHARED_LIBS)
SET (CPP_BUILT_AS_DYNAMIC_LIB 1)
ELSE (BUILD_SHARED_LIBS)
SET (CPP_BUILT_AS_STATIC_LIB 1)
ENDIF (BUILD_SHARED_LIBS)
if (BUILD_SHARED_LIBS)
set (CPP_BUILT_AS_DYNAMIC_LIB 1)
else (BUILD_SHARED_LIBS)
set (CPP_BUILT_AS_STATIC_LIB 1)
endif (BUILD_SHARED_LIBS)
#-----------------------------------------------------------------------------
# Generate configure file
#-----------------------------------------------------------------------------
CONFIGURE_FILE (${HDF5_RESOURCES_DIR}/H5cxx_config.h.in
configure_file (${HDF_RESOURCES_DIR}/H5cxx_config.h.in
${HDF5_BINARY_DIR}/H5cxx_pubconf.h
)
@@ -26,23 +31,23 @@ INCLUDE_DIRECTORIES (${HDF5_BINARY_DIR})
#-----------------------------------------------------------------------------
# Parallel/MPI, prevent spurious cpp/cxx warnings
#-----------------------------------------------------------------------------
IF (H5_HAVE_PARALLEL)
ADD_DEFINITIONS ("-DMPICH_SKIP_MPICXX")
ADD_DEFINITIONS ("-DMPICH_IGNORE_CXX_SEEK")
ENDIF (H5_HAVE_PARALLEL)
if (H5_HAVE_PARALLEL)
add_definitions ("-DMPICH_SKIP_MPICXX")
add_definitions ("-DMPICH_IGNORE_CXX_SEEK")
endif (H5_HAVE_PARALLEL)
ADD_SUBDIRECTORY (${HDF5_CPP_SOURCE_DIR}/src ${HDF5_CPP_BINARY_DIR}/src)
add_subdirectory (${HDF5_CPP_SOURCE_DIR}/src ${HDF5_CPP_BINARY_DIR}/src)
#-----------------------------------------------------------------------------
# Build the CPP Examples
#-----------------------------------------------------------------------------
IF (HDF5_BUILD_EXAMPLES)
ADD_SUBDIRECTORY (${HDF5_CPP_SOURCE_DIR}/examples ${HDF5_CPP_BINARY_DIR}/examples)
ENDIF (HDF5_BUILD_EXAMPLES)
if (HDF5_BUILD_EXAMPLES)
add_subdirectory (${HDF5_CPP_SOURCE_DIR}/examples ${HDF5_CPP_BINARY_DIR}/examples)
endif (HDF5_BUILD_EXAMPLES)
#-----------------------------------------------------------------------------
# Build the CPP unit tests
#-----------------------------------------------------------------------------
IF (BUILD_TESTING)
ADD_SUBDIRECTORY (${HDF5_CPP_SOURCE_DIR}/test ${HDF5_CPP_BINARY_DIR}/test)
ENDIF (BUILD_TESTING)
if (BUILD_TESTING)
add_subdirectory (${HDF5_CPP_SOURCE_DIR}/test ${HDF5_CPP_BINARY_DIR}/test)
endif (BUILD_TESTING)

0
c++/COPYING Executable file → Normal file
View File

View File

@@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2013 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,6 +31,51 @@
# Top-level HDF5-C++ Makefile(.in)
#
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -50,43 +94,274 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am COPYING
DIST_COMMON = $(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \
$(top_srcdir)/bin/test-driver COPYING
TESTS =
subdir = c++
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
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
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
check recheck distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
am__tty_colors = { \
$(am__tty_colors_dummy); \
if test "X$(AM_COLOR_TESTS)" = Xno; then \
am__color_tests=no; \
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
am__color_tests=yes; \
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
am__color_tests=yes; \
fi; \
if test $$am__color_tests = yes; then \
red=''; \
grn=''; \
lgn=''; \
blu=''; \
mgn=''; \
brg=''; \
std=''; \
fi; \
}
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 = 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__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__recheck_rx = ^[ ]*:recheck:[ ]*
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
# A command that, given a newline-separated list of test names on the
# standard input, print the name of the tests that are to be re-run
# upon "make recheck".
am__list_recheck_tests = $(AWK) '{ \
recheck = 1; \
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
{ \
if (rc < 0) \
{ \
if ((getline line2 < ($$0 ".log")) < 0) \
recheck = 0; \
break; \
} \
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
{ \
recheck = 0; \
break; \
} \
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
{ \
break; \
} \
}; \
if (recheck) \
print $$0; \
close ($$0 ".trs"); \
close ($$0 ".log"); \
}'
# A command that, given a newline-separated list of test names on the
# standard input, create the global log from their .trs and .log files.
am__create_global_log = $(AWK) ' \
function fatal(msg) \
{ \
print "fatal: making $@: " msg | "cat >&2"; \
exit 1; \
} \
function rst_section(header) \
{ \
print header; \
len = length(header); \
for (i = 1; i <= len; i = i + 1) \
printf "="; \
printf "\n\n"; \
} \
{ \
copy_in_global_log = 1; \
global_test_result = "RUN"; \
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
{ \
if (rc < 0) \
fatal("failed to read from " $$0 ".trs"); \
if (line ~ /$(am__global_test_result_rx)/) \
{ \
sub("$(am__global_test_result_rx)", "", line); \
sub("[ ]*$$", "", line); \
global_test_result = line; \
} \
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
copy_in_global_log = 0; \
}; \
if (copy_in_global_log) \
{ \
rst_section(global_test_result ": " $$0); \
while ((rc = (getline line < ($$0 ".log"))) != 0) \
{ \
if (rc < 0) \
fatal("failed to read from " $$0 ".log"); \
print line; \
}; \
printf "\n"; \
}; \
close ($$0 ".trs"); \
close ($$0 ".log"); \
}'
# Restructured Text title.
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
# Solaris 10 'make', and several other traditional 'make' implementations,
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
# by disabling -e (using the XSI extension "set +e") if it's set.
am__sh_e_setup = case $$- in *e*) set +e;; esac
# Default flags passed to test drivers.
am__common_driver_flags = \
--color-tests "$$am__color_tests" \
--enable-hard-errors "$$am__enable_hard_errors" \
--expect-failure "$$am__expect_failure"
# To be inserted before the command running the test. Creates the
# directory for the log if needed. Stores in $dir the directory
# containing $f, in $tst the test, in $log the log. Executes the
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
# will run the test scripts (or their associated LOG_COMPILER, if
# thy have one).
am__check_pre = \
$(am__sh_e_setup); \
$(am__vpath_adj_setup) $(am__vpath_adj) \
$(am__tty_colors); \
srcdir=$(srcdir); export srcdir; \
case "$@" in \
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
*) am__odir=.;; \
esac; \
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
if test -f "./$$f"; then dir=./; \
elif test -f "$$f"; then dir=; \
else dir="$(srcdir)/"; fi; \
tst=$$dir$$f; log='$@'; \
if test -n '$(DISABLE_HARD_ERRORS)'; then \
am__enable_hard_errors=no; \
else \
am__enable_hard_errors=yes; \
fi; \
case " $(XFAIL_TESTS) " in \
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
am__expect_failure=yes;; \
*) \
am__expect_failure=no;; \
esac; \
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
# A shell command to get the names of the tests scripts with any registered
# extension removed (i.e., equivalently, the names of the test logs, with
# the '.log' extension removed). The result is saved in the shell variable
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
# since that might cause problem with VPATH rewrites for suffix-less tests.
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
am__set_TESTS_bases = \
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
RECHECK_LOGS = $(TEST_LOGS)
TEST_SUITE_LOG = test-suite.log
am__test_logs1 = $(TESTS:=.log)
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
TEST_LOGS = $(am__test_logs2:.sh.log=.log)
SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/bin/test-driver
SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS)
am__set_b = \
case '$@' in \
*/*) \
case '$*' in \
*/*) b='$*';; \
*) b=`echo '$@' | sed 's/\.log$$//'`; \
esac;; \
*) \
b='$*';; \
esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -113,7 +388,7 @@ am__relativize = \
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
ACLOCAL = @ACLOCAL@
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
@@ -131,12 +406,9 @@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
AS = @AS@
# Set the paths for AFS installs of autotools for Linux machines
# Ideally, these tools should never be needed during the build.
AUTOCONF = /home1/packages/autoconf/autoconf-2.60/bin/autoconf
AUTOHEADER = /home1/packages/autoconf/autoconf-2.60/bin/autoheader
AUTOMAKE = /home1/packages/automake/automake-1.9.6/bin/automake-1.9
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BYTESEX = @BYTESEX@
CC = @CC@
@@ -186,7 +458,6 @@ FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -200,6 +471,7 @@ H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HAVE_PTHREAD = @HAVE_PTHREAD@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
@@ -217,7 +489,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LARGEFILE = @LARGEFILE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
@@ -233,7 +504,6 @@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
@@ -251,7 +521,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PTHREAD = @PTHREAD@
RANLIB = @RANLIB@
ROOT = @ROOT@
RUNPARALLEL = @RUNPARALLEL@
@@ -408,6 +677,10 @@ LIB = $(lib_LIBRARIES) $(lib_LTLIBRARIES) $(noinst_LIBRARIES) \
PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
chk_TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_EXTENSIONS = .sh
SH_LOG_COMPILER = $(SHELL)
AM_SH_LOG_FLAGS =
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chkexe_)
@@ -415,6 +688,7 @@ TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chkexe_)
all: all-recursive
.SUFFIXES:
.SUFFIXES: .log .sh .sh$(EXEEXT) .trs
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/conclude.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -436,6 +710,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/config/commence.am $(top_srcdir)/config/conclude.am:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -453,22 +728,25 @@ clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -483,57 +761,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(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" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
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; 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-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -549,12 +782,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
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; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -566,15 +794,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
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; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -583,10 +807,170 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
# Recover from deleted '.trs' file; this should ensure that
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
# to avoid problems with "make -n".
.log.trs:
rm -f $< $@
$(MAKE) $(AM_MAKEFLAGS) $<
# Leading 'am--fnord' is there to ensure the list of targets does not
# expand to empty, as could happen e.g. with make check TESTS=''.
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
am--force-recheck:
@:
$(TEST_SUITE_LOG): $(TEST_LOGS)
@$(am__set_TESTS_bases); \
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
redo_bases=`for i in $$bases; do \
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
done`; \
if test -n "$$redo_bases"; then \
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
if $(am__make_dryrun); then :; else \
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
fi; \
if test -n "$$am__remaking_logs"; then \
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
"recursion detected" >&2; \
else \
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
fi; \
if $(am__make_dryrun); then :; else \
st=0; \
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
for i in $$redo_bases; do \
test -f $$i.trs && test -r $$i.trs \
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
test -f $$i.log && test -r $$i.log \
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
done; \
test $$st -eq 0 || exit 1; \
fi
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
ws='[ ]'; \
results=`for b in $$bases; do echo $$b.trs; done`; \
test -n "$$results" || results=/dev/null; \
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
success=true; \
else \
success=false; \
fi; \
br='==================='; br=$$br$$br$$br$$br; \
result_count () \
{ \
if test x"$$1" = x"--maybe-color"; then \
maybe_colorize=yes; \
elif test x"$$1" = x"--no-color"; then \
maybe_colorize=no; \
else \
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
shift; \
desc=$$1 count=$$2; \
if test $$maybe_colorize = yes && test $$count -gt 0; then \
color_start=$$3 color_end=$$std; \
else \
color_start= color_end=; \
fi; \
echo "$${color_start}# $$desc $$count$${color_end}"; \
}; \
create_testsuite_report () \
{ \
result_count $$1 "TOTAL:" $$all "$$brg"; \
result_count $$1 "PASS: " $$pass "$$grn"; \
result_count $$1 "SKIP: " $$skip "$$blu"; \
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
result_count $$1 "FAIL: " $$fail "$$red"; \
result_count $$1 "XPASS:" $$xpass "$$red"; \
result_count $$1 "ERROR:" $$error "$$mgn"; \
}; \
{ \
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
$(am__rst_title); \
create_testsuite_report --no-color; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for b in $$bases; do echo $$b; done \
| $(am__create_global_log); \
} >$(TEST_SUITE_LOG).tmp || exit 1; \
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
if $$success; then \
col="$$grn"; \
else \
col="$$red"; \
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
if $$success; then :; else \
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
if test -n "$(PACKAGE_BUGREPORT)"; then \
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
fi; \
echo "$$col$$br$$std"; \
fi; \
$$success || exit 1
recheck: all
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@set +e; $(am__set_TESTS_bases); \
bases=`for i in $$bases; do echo $$i; done \
| $(am__list_recheck_tests)` || exit 1; \
log_list=`for i in $$bases; do echo $$i.log; done`; \
log_list=`echo $$log_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
am__force_recheck=am--force-recheck \
TEST_LOGS="$$log_list"; \
exit $$?
.sh.log:
@p='$<'; \
$(am__set_b); \
$(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
@am__EXEEXT_TRUE@.sh$(EXEEXT).log:
@am__EXEEXT_TRUE@ @p='$<'; \
@am__EXEEXT_TRUE@ $(am__set_b); \
@am__EXEEXT_TRUE@ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -619,13 +1003,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -661,11 +1042,19 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
@@ -743,23 +1132,21 @@ ps-am:
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
ctags-recursive install-am install-strip tags-recursive
.MAKE: $(am__recursive_targets) check-am install-am install-strip
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-local check check-TESTS check-am clean \
clean-generic clean-libtool ctags ctags-recursive distclean \
distclean-generic distclean-libtool distclean-tags distdir 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-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
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
check check-TESTS check-am clean clean-generic clean-libtool \
cscopelist-am ctags ctags-am distclean distclean-generic \
distclean-libtool distclean-tags distdir 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-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 recheck tags tags-am uninstall uninstall-am
# List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
@@ -793,7 +1180,7 @@ check-clean ::
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
build-tests: $(LIB) $(PROGS) $(chk_TESTS)
# General rule for recursive building targets.
# BUILT_SOURCES contain targets that need to be built before anything else
@@ -819,7 +1206,7 @@ check-clean ::
# Tell Automake to build tests when the user types `make all' (this is
# not its default behavior). Also build EXTRA_LIB and EXTRA_PROG since
# Automake won't build them automatically, either.
all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(chk_TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
@@ -843,7 +1230,7 @@ check-install: installcheck
# Set HDF5_Make_Ignore to a non-blank string to ignore errors inside the loop.
# The timestamps give a rough idea how much time the tests use.
#
# Note that targets in TESTS (defined above) will be built when the user
# Note that targets in chk_TESTS (defined above) will be built when the user
# types 'make tests' or 'make check', but only programs in TEST_PROG,
# TEST_PROG_PARA, or TEST_SCRIPT will actually be executed.
check-TESTS: test
@@ -853,7 +1240,7 @@ test _test:
@$(MAKE) build-check-p
# Actual execution of check-s.
build-check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(chk_TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@@ -943,7 +1330,7 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
fi
# Actual execution of check-p.
build-check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(chk_TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@@ -973,7 +1360,7 @@ build-check-p: $(LIB) $(PROGS) $(TESTS)
fi
# Run test with different Virtual File Driver
check-vfd: $(LIB) $(PROGS) $(TESTS)
check-vfd: $(LIB) $(PROGS) $(chk_TESTS)
@for vfd in $(VFD_LIST) dummy; do \
if test $$vfd != dummy; then \
echo "============================"; \

View File

@@ -1,4 +1,4 @@
cmake_minimum_required (VERSION 2.8.6)
cmake_minimum_required (VERSION 3.1.0)
# --------------------------------------------------------------------
# Notes: When creating examples they should be prefixed
# with "cpp_ex_". This allows for easier filtering of the examples.
@@ -10,7 +10,7 @@ PROJECT (HDF5_CPP_EXAMPLES)
# Define examples
#-----------------------------------------------------------------------------
SET (examples
set (examples
create
readdata
writedata
@@ -20,35 +20,34 @@ SET (examples
h5group
)
FOREACH (example ${examples})
ADD_EXECUTABLE (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
set (tutr_examples
h5tutr_cmprss
h5tutr_crtdat
h5tutr_crtatt
h5tutr_crtgrpar
h5tutr_crtgrp
h5tutr_crtgrpd
h5tutr_extend
h5tutr_rdwt
h5tutr_subset
)
foreach (example ${examples})
add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
TARGET_LINK_LIBRARIES (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
SET_TARGET_PROPERTIES (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
ENDFOREACH (example ${examples})
TARGET_C_PROPERTIES (cpp_ex_${example} " " " ")
target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
endforeach (example ${examples})
IF (BUILD_TESTING)
# Remove any output file left over from previous test run
ADD_TEST (
NAME cpp_ex-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
Group.h5
SDS.h5
SDScompound.h5
SDSextendible.h5
Select.h5
)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (cpp_ex-clear-objects PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "cpp_ex-clear-objects")
foreach (example ${tutr_examples})
add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
TARGET_C_PROPERTIES (cpp_ex_${example} " " " ")
target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
endforeach (example ${tutr_examples})
FOREACH (example ${examples})
ADD_TEST (NAME cpp_ex_${example} COMMAND $<TARGET_FILE:cpp_ex_${example}>)
IF (NOT "${last_test}" STREQUAL "")
SET_TESTS_PROPERTIES (cpp_ex_${example} PROPERTIES DEPENDS ${last_test})
ENDIF (NOT "${last_test}" STREQUAL "")
SET (last_test "cpp_ex_${example}")
ENDFOREACH (example ${examples})
ENDIF (BUILD_TESTING)
if (BUILD_TESTING)
include (CMakeTests.cmake)
endif (BUILD_TESTING)

View File

@@ -0,0 +1,61 @@
##############################################################################
##############################################################################
### T E S T I N G ###
##############################################################################
##############################################################################
# Remove any output file left over from previous test run
add_test (
NAME CPP_ex-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
Group.h5
SDS.h5
SDScompound.h5
SDSextendible.h5
Select.h5
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (CPP_ex-clear-objects PROPERTIES DEPENDS ${last_test})
endif (NOT "${last_test}" STREQUAL "")
set (last_test "CPP_ex-clear-objects")
foreach (example ${examples})
add_test (NAME CPP_ex_${example} COMMAND $<TARGET_FILE:cpp_ex_${example}>)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (CPP_ex_${example} PROPERTIES DEPENDS ${last_test})
endif (NOT "${last_test}" STREQUAL "")
set (last_test "CPP_ex_${example}")
endforeach (example ${examples})
#the following dependicies are handled by the order of the files
# SET_TESTS_PROPERTIES(CPP_ex_readdata PROPERTIES DEPENDS CPP_ex_create)
# SET_TESTS_PROPERTIES(CPP_ex_chunks PROPERTIES DEPENDS CPP_ex_extend_ds)
add_test (
NAME CPP_ex_tutr-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
h5tutr_cmprss.h5
h5tutr_dset.h5
h5tutr_extend.h5
h5tutr_group.h5
h5tutr_groups.h5
h5tutr_subset.h5
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (CPP_ex_tutr-clear-objects PROPERTIES DEPENDS ${last_test})
endif (NOT "${last_test}" STREQUAL "")
set (last_test "CPP_ex_tutr-clear-objects")
foreach (example ${tutr_examples})
add_test (NAME CPP_ex_${example} COMMAND $<TARGET_FILE:cpp_ex_${example}>)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (CPP_ex_${example} PROPERTIES DEPENDS ${last_test})
endif (NOT "${last_test}" STREQUAL "")
set (last_test "CPP_ex_${example}")
endforeach (example ${tutr_examples})
#the following dependicies are handled by the order of the files
# SET_TESTS_PROPERTIES(CPP_ex_h5tutr_crtatt PROPERTIES DEPENDS CPP_ex_h5tutr_crtdat)
# SET_TESTS_PROPERTIES(CPP_ex_h5tutr_rdwt PROPERTIES DEPENDS CPP_ex_h5tutr_crtdat)
# SET_TESTS_PROPERTIES(CPP_ex_h5tutr_crtgrpd PROPERTIES DEPENDS CPP_ex_h5tutr_crtgrpar)

View File

@@ -21,19 +21,30 @@
include $(top_srcdir)/config/commence.am
INSTALL_SCRIPT_FILES = run-c++-ex.sh
# These are the programs that 'make all' or 'make prog' will build and
# which 'make check' will run. List them in the order they should be run.
TEST_PROG=create readdata writedata compound extend_ds chunks h5group
EXAMPLE_PROG=create readdata writedata compound extend_ds chunks h5group \
h5tutr_cmprss h5tutr_crtatt h5tutr_crtdat h5tutr_crtgrpar \
h5tutr_crtgrp h5tutr_crtgrpd h5tutr_extend h5tutr_rdwt \
h5tutr_subset
TEST_SCRIPT=testh5c++.sh
TEST_EXAMPLES_SCRIPT=$(INSTALL_SCRIPT_FILES)
# These are the example files to be installed
INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \
extend_ds.cpp chunks.cpp h5group.cpp
INSTALL_SCRIPT_FILES = run-c++-ex.sh
extend_ds.cpp chunks.cpp h5group.cpp \
h5tutr_cmprss.cpp h5tutr_crtatt.cpp h5tutr_crtdat.cpp \
h5tutr_crtgrpar.cpp h5tutr_crtgrp.cpp h5tutr_crtgrpd.cpp \
h5tutr_extend.cpp h5tutr_rdwt.cpp h5tutr_subset.cpp
# Some of the examples depend on files created by running other examples
readdata.chkexe_: create.chkexe_
chunks.chkexe_: extend_ds.chkexe_
h5tutr_rdwt.chkexe_: h5tutrcrtdat.chkexe
h5tutrcrtatt.chkexe_: h5tutrcrtdat.chkexe
h5tutr_crtgrpd.chkexe_: h5tutr_crtgrpar.chkexe
# Tell conclude.am that these are C++ tests.
CXX_API=yes
@@ -58,5 +69,15 @@ extend_ds: $(srcdir)/extend_ds.cpp
chunks: $(srcdir)/chunks.cpp
h5group: $(srcdir)/h5group.cpp
h5tutr_cmprss: $(srcdir)/h5tutr_cmprss.cpp
h5tutr_crtatt: $(srcdir)/h5tutr_crtatt.cpp
h5tutr_crtdat: $(srcdir)/h5tutr_crtdat.cpp
h5tutr_crtgrpar: $(srcdir)/h5tutr_crtgrpar.cpp
h5tutr_crtgrp: $(srcdir)/h5tutr_crtgrp.cpp
h5tutr_crtgrpd: $(srcdir)/h5tutr_crtgrpd.cpp
h5tutr_extend: $(srcdir)/h5tutr_extend.cpp
h5tutr_rdwt: $(srcdir)/h5tutr_rdwt.cpp
h5tutr_subset: $(srcdir)/h5tutr_subset.cpp
include $(top_srcdir)/config/examples.am
include $(top_srcdir)/config/conclude.am

View File

@@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2013 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,6 +35,51 @@
# built using h5cc (or h5fc, etc.) instead of the standard compilers.
# This creates some extra work for us.
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -54,33 +98,245 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
DIST_COMMON = $(top_srcdir)/config/commence.am \
$(top_srcdir)/config/examples.am \
$(top_srcdir)/config/conclude.am $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \
$(srcdir)/run-c++-ex.sh.in $(srcdir)/testh5c++.sh.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am \
$(top_srcdir)/config/examples.am
TESTS =
$(top_srcdir)/bin/test-driver
TESTS = $(TEST_SCRIPT)
subdir = c++/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES = run-c++-ex.sh testh5c++.sh
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
am__tty_colors = { \
$(am__tty_colors_dummy); \
if test "X$(AM_COLOR_TESTS)" = Xno; then \
am__color_tests=no; \
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
am__color_tests=yes; \
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
am__color_tests=yes; \
fi; \
if test $$am__color_tests = yes; then \
red=''; \
grn=''; \
lgn=''; \
blu=''; \
mgn=''; \
brg=''; \
std=''; \
fi; \
}
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 = 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__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__recheck_rx = ^[ ]*:recheck:[ ]*
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
# A command that, given a newline-separated list of test names on the
# standard input, print the name of the tests that are to be re-run
# upon "make recheck".
am__list_recheck_tests = $(AWK) '{ \
recheck = 1; \
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
{ \
if (rc < 0) \
{ \
if ((getline line2 < ($$0 ".log")) < 0) \
recheck = 0; \
break; \
} \
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
{ \
recheck = 0; \
break; \
} \
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
{ \
break; \
} \
}; \
if (recheck) \
print $$0; \
close ($$0 ".trs"); \
close ($$0 ".log"); \
}'
# A command that, given a newline-separated list of test names on the
# standard input, create the global log from their .trs and .log files.
am__create_global_log = $(AWK) ' \
function fatal(msg) \
{ \
print "fatal: making $@: " msg | "cat >&2"; \
exit 1; \
} \
function rst_section(header) \
{ \
print header; \
len = length(header); \
for (i = 1; i <= len; i = i + 1) \
printf "="; \
printf "\n\n"; \
} \
{ \
copy_in_global_log = 1; \
global_test_result = "RUN"; \
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
{ \
if (rc < 0) \
fatal("failed to read from " $$0 ".trs"); \
if (line ~ /$(am__global_test_result_rx)/) \
{ \
sub("$(am__global_test_result_rx)", "", line); \
sub("[ ]*$$", "", line); \
global_test_result = line; \
} \
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
copy_in_global_log = 0; \
}; \
if (copy_in_global_log) \
{ \
rst_section(global_test_result ": " $$0); \
while ((rc = (getline line < ($$0 ".log"))) != 0) \
{ \
if (rc < 0) \
fatal("failed to read from " $$0 ".log"); \
print line; \
}; \
printf "\n"; \
}; \
close ($$0 ".trs"); \
close ($$0 ".log"); \
}'
# Restructured Text title.
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
# Solaris 10 'make', and several other traditional 'make' implementations,
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
# by disabling -e (using the XSI extension "set +e") if it's set.
am__sh_e_setup = case $$- in *e*) set +e;; esac
# Default flags passed to test drivers.
am__common_driver_flags = \
--color-tests "$$am__color_tests" \
--enable-hard-errors "$$am__enable_hard_errors" \
--expect-failure "$$am__expect_failure"
# To be inserted before the command running the test. Creates the
# directory for the log if needed. Stores in $dir the directory
# containing $f, in $tst the test, in $log the log. Executes the
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
# will run the test scripts (or their associated LOG_COMPILER, if
# thy have one).
am__check_pre = \
$(am__sh_e_setup); \
$(am__vpath_adj_setup) $(am__vpath_adj) \
$(am__tty_colors); \
srcdir=$(srcdir); export srcdir; \
case "$@" in \
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
*) am__odir=.;; \
esac; \
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
if test -f "./$$f"; then dir=./; \
elif test -f "$$f"; then dir=; \
else dir="$(srcdir)/"; fi; \
tst=$$dir$$f; log='$@'; \
if test -n '$(DISABLE_HARD_ERRORS)'; then \
am__enable_hard_errors=no; \
else \
am__enable_hard_errors=yes; \
fi; \
case " $(XFAIL_TESTS) " in \
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
am__expect_failure=yes;; \
*) \
am__expect_failure=no;; \
esac; \
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
# A shell command to get the names of the tests scripts with any registered
# extension removed (i.e., equivalently, the names of the test logs, with
# the '.log' extension removed). The result is saved in the shell variable
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
# since that might cause problem with VPATH rewrites for suffix-less tests.
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
am__set_TESTS_bases = \
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
TEST_SUITE_LOG = test-suite.log
am__test_logs1 = $(TESTS:=.log)
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
TEST_LOGS = $(am__test_logs2:.sh.log=.log)
SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/bin/test-driver
SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS)
am__set_b = \
case '$@' in \
*/*) \
case '$*' in \
*/*) b='$*';; \
*) b=`echo '$@' | sed 's/\.log$$//'`; \
esac;; \
*) \
b='$*';; \
esac
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
ACLOCAL = @ACLOCAL@
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
@@ -98,12 +354,9 @@ AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
AS = @AS@
# Set the paths for AFS installs of autotools for Linux machines
# Ideally, these tools should never be needed during the build.
AUTOCONF = /home1/packages/autoconf/autoconf-2.60/bin/autoconf
AUTOHEADER = /home1/packages/autoconf/autoconf-2.60/bin/autoheader
AUTOMAKE = /home1/packages/automake/automake-1.9.6/bin/automake-1.9
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BYTESEX = @BYTESEX@
CC = @CC@
@@ -153,7 +406,6 @@ FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -167,6 +419,7 @@ H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HAVE_PTHREAD = @HAVE_PTHREAD@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
@@ -184,7 +437,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LARGEFILE = @LARGEFILE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
@@ -200,7 +452,6 @@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
@@ -218,7 +469,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PTHREAD = @PTHREAD@
RANLIB = @RANLIB@
ROOT = @ROOT@
RUNPARALLEL = @RUNPARALLEL@
@@ -361,17 +611,25 @@ TRACE = perl $(top_srcdir)/bin/trace
# .chklog files are output from those tests.
# *.clog are from the MPE option.
CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
INSTALL_SCRIPT_FILES = run-c++-ex.sh
# These are the programs that 'make all' or 'make prog' will build and
# which 'make check' will run. List them in the order they should be run.
TEST_PROG = create readdata writedata compound extend_ds chunks h5group
EXAMPLE_PROG = create readdata writedata compound extend_ds chunks h5group \
h5tutr_cmprss h5tutr_crtatt h5tutr_crtdat h5tutr_crtgrpar \
h5tutr_crtgrp h5tutr_crtgrpd h5tutr_extend h5tutr_rdwt \
h5tutr_subset
TEST_SCRIPT = testh5c++.sh
TEST_EXAMPLES_SCRIPT = $(INSTALL_SCRIPT_FILES)
# These are the example files to be installed
INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \
extend_ds.cpp chunks.cpp h5group.cpp
extend_ds.cpp chunks.cpp h5group.cpp \
h5tutr_cmprss.cpp h5tutr_crtatt.cpp h5tutr_crtdat.cpp \
h5tutr_crtgrpar.cpp h5tutr_crtgrp.cpp h5tutr_crtgrpd.cpp \
h5tutr_extend.cpp h5tutr_rdwt.cpp h5tutr_subset.cpp
INSTALL_SCRIPT_FILES = run-c++-ex.sh
# Tell conclude.am that these are C++ tests.
CXX_API = yes
@@ -382,12 +640,11 @@ EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
# Assume that all tests in this directory are examples, and tell
# conclude.am when to build them.
EXAMPLE_PROG = $(TEST_PROG_PARA) $(TEST_PROG)
EXTRA_PROG = $(EXAMPLE_PROG)
EXTRA_PROG = $(EXAMPLE_PROG) $(EXAMPLE_PROG_PARA)
# We need to tell automake what to clean
MOSTLYCLEANFILES = *.raw *.meta *.o
CLEANFILES = $(TEST_PROG) $(TEST_PROG_PARA)
CLEANFILES = $(EXAMPLE_PROG) $(EXAMPLE_PROG_PARA)
# 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.,
@@ -400,6 +657,10 @@ LIB = $(lib_LIBRARIES) $(lib_LTLIBRARIES) $(noinst_LIBRARIES) \
PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
chk_TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
TEST_EXTENSIONS = .sh
SH_LOG_COMPILER = $(SHELL)
AM_SH_LOG_FLAGS =
TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_)
TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_)
TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chkexe_)
@@ -407,6 +668,7 @@ TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chkexe_)
all: all-am
.SUFFIXES:
.SUFFIXES: .log .sh .sh$(EXEEXT) .trs
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/examples.am $(top_srcdir)/config/conclude.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -428,6 +690,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/config/commence.am $(top_srcdir)/config/examples.am $(top_srcdir)/config/conclude.am:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -447,12 +710,157 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
tags: TAGS
TAGS:
tags TAGS:
ctags: CTAGS
CTAGS:
ctags CTAGS:
cscope cscopelist:
# Recover from deleted '.trs' file; this should ensure that
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
# to avoid problems with "make -n".
.log.trs:
rm -f $< $@
$(MAKE) $(AM_MAKEFLAGS) $<
# Leading 'am--fnord' is there to ensure the list of targets does not
# expand to empty, as could happen e.g. with make check TESTS=''.
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
am--force-recheck:
@:
$(TEST_SUITE_LOG): $(TEST_LOGS)
@$(am__set_TESTS_bases); \
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
redo_bases=`for i in $$bases; do \
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
done`; \
if test -n "$$redo_bases"; then \
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
if $(am__make_dryrun); then :; else \
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
fi; \
if test -n "$$am__remaking_logs"; then \
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
"recursion detected" >&2; \
else \
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
fi; \
if $(am__make_dryrun); then :; else \
st=0; \
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
for i in $$redo_bases; do \
test -f $$i.trs && test -r $$i.trs \
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
test -f $$i.log && test -r $$i.log \
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
done; \
test $$st -eq 0 || exit 1; \
fi
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
ws='[ ]'; \
results=`for b in $$bases; do echo $$b.trs; done`; \
test -n "$$results" || results=/dev/null; \
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
success=true; \
else \
success=false; \
fi; \
br='==================='; br=$$br$$br$$br$$br; \
result_count () \
{ \
if test x"$$1" = x"--maybe-color"; then \
maybe_colorize=yes; \
elif test x"$$1" = x"--no-color"; then \
maybe_colorize=no; \
else \
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
shift; \
desc=$$1 count=$$2; \
if test $$maybe_colorize = yes && test $$count -gt 0; then \
color_start=$$3 color_end=$$std; \
else \
color_start= color_end=; \
fi; \
echo "$${color_start}# $$desc $$count$${color_end}"; \
}; \
create_testsuite_report () \
{ \
result_count $$1 "TOTAL:" $$all "$$brg"; \
result_count $$1 "PASS: " $$pass "$$grn"; \
result_count $$1 "SKIP: " $$skip "$$blu"; \
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
result_count $$1 "FAIL: " $$fail "$$red"; \
result_count $$1 "XPASS:" $$xpass "$$red"; \
result_count $$1 "ERROR:" $$error "$$mgn"; \
}; \
{ \
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
$(am__rst_title); \
create_testsuite_report --no-color; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for b in $$bases; do echo $$b; done \
| $(am__create_global_log); \
} >$(TEST_SUITE_LOG).tmp || exit 1; \
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
if $$success; then \
col="$$grn"; \
else \
col="$$red"; \
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
if $$success; then :; else \
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
if test -n "$(PACKAGE_BUGREPORT)"; then \
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
fi; \
echo "$$col$$br$$std"; \
fi; \
$$success || exit 1
recheck: all
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@set +e; $(am__set_TESTS_bases); \
bases=`for i in $$bases; do echo $$i; done \
| $(am__list_recheck_tests)` || exit 1; \
log_list=`for i in $$bases; do echo $$i.log; done`; \
log_list=`echo $$log_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
am__force_recheck=am--force-recheck \
TEST_LOGS="$$log_list"; \
exit $$?
.sh.log:
@p='$<'; \
$(am__set_b); \
$(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
@am__EXEEXT_TRUE@.sh$(EXEEXT).log:
@am__EXEEXT_TRUE@ @p='$<'; \
@am__EXEEXT_TRUE@ $(am__set_b); \
@am__EXEEXT_TRUE@ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -499,12 +907,20 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -586,17 +1002,18 @@ uninstall-am: uninstall-local
.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 \
distclean-libtool distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am \
install-data-local install-dvi install-dvi-am install-exec \
install-exec-am 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 \
clean-generic clean-libtool cscopelist-am ctags-am distclean \
distclean-generic distclean-libtool distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-local install-dvi install-dvi-am \
install-exec install-exec-am 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 \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
pdf-am ps ps-am uninstall uninstall-am uninstall-local
pdf-am ps ps-am recheck tags-am uninstall uninstall-am \
uninstall-local
# List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
@@ -613,6 +1030,9 @@ help:
# Some of the examples depend on files created by running other examples
readdata.chkexe_: create.chkexe_
chunks.chkexe_: extend_ds.chkexe_
h5tutr_rdwt.chkexe_: h5tutrcrtdat.chkexe
h5tutrcrtatt.chkexe_: h5tutrcrtdat.chkexe
h5tutr_crtgrpd.chkexe_: h5tutr_crtgrpar.chkexe
# How to build programs using h5c++
$(EXTRA_PROG): $(H5CPP)
@@ -630,6 +1050,16 @@ extend_ds: $(srcdir)/extend_ds.cpp
chunks: $(srcdir)/chunks.cpp
h5group: $(srcdir)/h5group.cpp
h5tutr_cmprss: $(srcdir)/h5tutr_cmprss.cpp
h5tutr_crtatt: $(srcdir)/h5tutr_crtatt.cpp
h5tutr_crtdat: $(srcdir)/h5tutr_crtdat.cpp
h5tutr_crtgrpar: $(srcdir)/h5tutr_crtgrpar.cpp
h5tutr_crtgrp: $(srcdir)/h5tutr_crtgrp.cpp
h5tutr_crtgrpd: $(srcdir)/h5tutr_crtgrpd.cpp
h5tutr_extend: $(srcdir)/h5tutr_extend.cpp
h5tutr_rdwt: $(srcdir)/h5tutr_rdwt.cpp
h5tutr_subset: $(srcdir)/h5tutr_subset.cpp
# How to create EXAMPLEDIR if it doesn't already exist
$(EXAMPLEDIR):
-$(top_srcdir)/bin/mkdirs $@
@@ -643,7 +1073,7 @@ install-data-local:
uninstall-local:
@$(MAKE) $(AM_MAKEFLAGS) uninstall-examples
install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
@for f in X $(INSTALL_FILES); do \
if test $$f != X; then \
(set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1); \
@@ -655,6 +1085,12 @@ install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
(set -x; $(INSTALL) $$f $(EXAMPLEDIR)/. || exit 1);\
fi; \
done
@for f in X $(INSTALL_TOP_FILES); do \
if test $$f != X; then \
(set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \
chmod a-x $(EXAMPLETOPDIR)/$$f;\
fi; \
done
@for f in X $(INSTALL_TOP_SCRIPT_FILES); do \
if test $$f != X; then \
(set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \
@@ -664,30 +1100,40 @@ install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
uninstall-examples:
@if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
fi
fi
@if test -n "$(INSTALL_SCRIPT_FILES)" -a -d $(EXAMPLEDIR); then \
set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_SCRIPT_FILES); \
fi
fi
@if test -n "$(INSTALL_TOP_FILES)" -a -d $(EXAMPLETOPDIR); then \
set -x; cd $(EXAMPLETOPDIR) && $(RM) $(INSTALL_TOP_FILES); \
fi
@if test -n "$(INSTALL_TOP_SCRIPT_FILES)" -a -d $(EXAMPLETOPDIR); then \
set -x; cd $(EXAMPLETOPDIR) && $(RM) $(INSTALL_TOP_SCRIPT_FILES); \
fi
fi
installcheck-local:
@if test "$(STATIC_SHARED)" = "static, shared"; then \
H5CCFLAGS="-shlib" $(MAKE) $(AM_MAKEFLAGS) check; \
$(MAKE) $(AM_MAKEFLAGS) clean; \
H5CCFLAGS="" $(MAKE) $(AM_MAKEFLAGS) check; \
elif test "$(STATIC_SHARED)" = "shared"; then \
elif test "$(STATIC_SHARED)" = "shared"; then \
H5CCFLAGS="-shlib" $(MAKE) $(AM_MAKEFLAGS) check; \
else \
else \
$(MAKE) $(AM_MAKEFLAGS) check; \
fi
fi
@if test "$(INSTALL_FILES)" -a $(TEST_EXAMPLES_SCRIPT) -a -d $(EXAMPLEDIR); then \
echo "============================"; \
echo "Testing $(TEST_EXAMPLES_SCRIPT)"; \
echo "============================"; \
(cd $(EXAMPLEDIR); \
/bin/sh ./$(TEST_EXAMPLES_SCRIPT);) \
fi
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
build-progs: $(LIB) $(PROGS)
build-tests: $(LIB) $(PROGS) $(TESTS)
build-tests: $(LIB) $(PROGS) $(chk_TESTS)
# General rule for recursive building targets.
# BUILT_SOURCES contain targets that need to be built before anything else
@@ -713,7 +1159,7 @@ check-clean ::
# Tell Automake to build tests when the user types `make all' (this is
# not its default behavior). Also build EXTRA_LIB and EXTRA_PROG since
# Automake won't build them automatically, either.
all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(chk_TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
@@ -737,7 +1183,7 @@ check-install: installcheck
# Set HDF5_Make_Ignore to a non-blank string to ignore errors inside the loop.
# The timestamps give a rough idea how much time the tests use.
#
# Note that targets in TESTS (defined above) will be built when the user
# Note that targets in chk_TESTS (defined above) will be built when the user
# types 'make tests' or 'make check', but only programs in TEST_PROG,
# TEST_PROG_PARA, or TEST_SCRIPT will actually be executed.
check-TESTS: test
@@ -747,7 +1193,7 @@ test _test:
@$(MAKE) build-check-p
# Actual execution of check-s.
build-check-s: $(LIB) $(PROGS) $(TESTS)
build-check-s: $(LIB) $(PROGS) $(chk_TESTS)
@if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \
echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@@ -837,7 +1283,7 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
fi
# Actual execution of check-p.
build-check-p: $(LIB) $(PROGS) $(TESTS)
build-check-p: $(LIB) $(PROGS) $(chk_TESTS)
@if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \
echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
fi
@@ -867,7 +1313,7 @@ build-check-p: $(LIB) $(PROGS) $(TESTS)
fi
# Run test with different Virtual File Driver
check-vfd: $(LIB) $(PROGS) $(TESTS)
check-vfd: $(LIB) $(PROGS) $(chk_TESTS)
@for vfd in $(VFD_LIST) dummy; do \
if test $$vfd != dummy; then \
echo "============================"; \

View File

@@ -0,0 +1,162 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to create a compressed dataset.
* It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#ifndef H5_NO_STD
using std::cout;
using std::endl;
#endif // H5_NO_STD
#endif
const H5std_string FILE_NAME("h5tutr_cmprss.h5");
const H5std_string DATASET_NAME("Compressed_Data");
const int DIM0 = 100;
const int DIM1 = 20;
int main (void)
{
hsize_t dims[2] = { DIM0, DIM1 }; // dataset dimensions
hsize_t chunk_dims[2] = { 20, 20 }; // chunk dimensions
int i,j, buf[DIM0][DIM1];
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Create a new file using the default property lists.
H5File file(FILE_NAME, H5F_ACC_TRUNC);
// Create the data space for the dataset.
DataSpace *dataspace = new DataSpace(2, dims);
// Modify dataset creation property to enable chunking
DSetCreatPropList *plist = new DSetCreatPropList;
plist->setChunk(2, chunk_dims);
// Set ZLIB (DEFLATE) Compression using level 6.
// To use SZIP compression comment out this line.
plist->setDeflate(6);
// Uncomment these lines to set SZIP Compression
// unsigned szip_options_mask = H5_SZIP_NN_OPTION_MASK;
// unsigned szip_pixels_per_block = 16;
// plist->setSzip(szip_options_mask, szip_pixels_per_block);
// Create the dataset.
DataSet *dataset = new DataSet(file.createDataSet( DATASET_NAME,
PredType::STD_I32BE, *dataspace, *plist) );
for (i = 0; i< DIM0; i++)
for (j=0; j<DIM1; j++)
buf[i][j] = i+j;
// Write data to dataset.
dataset->write(buf, PredType::NATIVE_INT);
// Close objects and file. Either approach will close the HDF5 item.
delete dataspace;
delete dataset;
delete plist;
file.close();
// -----------------------------------------------
// Re-open the file and dataset, retrieve filter
// information for dataset and read the data back.
// -----------------------------------------------
int rbuf[DIM0][DIM1];
int numfilt;
size_t nelmts={1}, namelen={1};
unsigned flags, filter_info, cd_values[1], idx;
char name[1];
H5Z_filter_t filter_type;
// Open the file and the dataset in the file.
file.openFile(FILE_NAME, H5F_ACC_RDONLY);
dataset = new DataSet(file.openDataSet( DATASET_NAME));
// Get the create property list of the dataset.
plist = new DSetCreatPropList(dataset->getCreatePlist ());
// Get the number of filters associated with the dataset.
numfilt = plist->getNfilters();
cout << "Number of filters associated with dataset: " << numfilt << endl;
for (idx=0; idx < numfilt; idx++) {
nelmts = 0;
filter_type = plist->getFilter(idx, flags, nelmts, cd_values, namelen, name , filter_info);
cout << "Filter Type: ";
switch (filter_type) {
case H5Z_FILTER_DEFLATE:
cout << "H5Z_FILTER_DEFLATE" << endl;
break;
case H5Z_FILTER_SZIP:
cout << "H5Z_FILTER_SZIP" << endl;
break;
default:
cout << "Other filter type included." << endl;
}
}
// Read data.
dataset->read(rbuf, PredType::NATIVE_INT);
delete plist;
delete dataset;
file.close(); // can be skipped
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch(DataSetIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSpace operations
catch(DataSpaceIException error)
{
error.printError();
return -1;
}
return 0; // successfully terminated
}

View File

@@ -0,0 +1,95 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to create an attribute attached to a
* dataset. It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#endif
const H5std_string FILE_NAME( "h5tutr_dset.h5" );
const H5std_string DATASET_NAME( "dset" );
const H5std_string ATTR_NAME( "Units" );
const int DIM1 = 2;
int main (void)
{
int attr_data[2] = { 100, 200};
hsize_t dims[1] = { DIM1 };
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Open an existing file and dataset.
H5File file( FILE_NAME, H5F_ACC_RDWR );
DataSet dataset = file.openDataSet( DATASET_NAME );
// Create the data space for the attribute.
DataSpace attr_dataspace = DataSpace (1, dims );
// Create a dataset attribute.
Attribute attribute = dataset.createAttribute( ATTR_NAME, PredType::STD_I32BE,
attr_dataspace);
// Write the attribute data.
attribute.write( PredType::NATIVE_INT, attr_data);
} // end of try block
// catch failure caused by the H5File operations
catch( DataSpaceIException error )
{
error.printError();
return -1;
}
// catch failure caused by the H5File operations
catch( AttributeIException error )
{
error.printError();
return -1;
}
// catch failure caused by the H5File operations
catch( FileIException error )
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch( DataSetIException error )
{
error.printError();
return -1;
}
return 0; // successfully terminated
}

View File

@@ -0,0 +1,82 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to create a dataset that is a 4 x 6
* array. It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#endif
const H5std_string FILE_NAME("h5tutr_dset.h5");
const H5std_string DATASET_NAME("dset");
const int NX = 4; // dataset dimensions
const int NY = 6;
const int RANK = 2;
int main (void)
{
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Create a new file using the default property lists.
H5File file(FILE_NAME, H5F_ACC_TRUNC);
// Create the data space for the dataset.
hsize_t dims[2]; // dataset dimensions
dims[0] = NX;
dims[1] = NY;
DataSpace dataspace(RANK, dims);
// Create the dataset.
DataSet dataset = file.createDataSet(DATASET_NAME, PredType::STD_I32BE, dataspace);
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch(DataSetIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSpace operations
catch(DataSpaceIException error)
{
error.printError();
return -1;
}
return 0; // successfully terminated
}

View File

@@ -0,0 +1,69 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to create and close a group.
* It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#ifndef H5_NO_STD
using std::cout;
using std::endl;
#endif // H5_NO_STD
#endif
const H5std_string FILE_NAME("h5tutr_group.h5");
int main(void)
{
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Create a new file using default property lists.
H5File file(FILE_NAME, H5F_ACC_TRUNC);
// Create a group named "/MygGroup" in the file
Group group(file.createGroup("/MyGroup"));
// File and group will be closed as their instances go out of scope.
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the Group operations
catch(GroupIException error)
{
error.printError();
return -1;
}
return 0;
}

View File

@@ -0,0 +1,92 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates the creation of groups using absolute and
* relative names. It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#ifndef H5_NO_STD
using std::cout;
using std::endl;
#endif // H5_NO_STD
#endif
const H5std_string FILE_NAME("h5tutr_groups.h5");
int main(void)
{
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately.
Exception::dontPrint();
// Create a new file using default properties.
H5File file(FILE_NAME, H5F_ACC_TRUNC);
// Create group "MyGroup" in the root group using an absolute name.
Group group1(file.createGroup( "/MyGroup"));
// Create group "Group_A" in group "MyGroup" using an
// absolute name.
Group group2(file.createGroup("/MyGroup/Group_A"));
// Create group "Group_B" in group "MyGroup" using a
// relative name.
Group group3(group1.createGroup ("Group_B"));
// Close the groups and file.
group1.close();
group2.close();
group3.close();
file.close();
} // end of try block
// catch failure caused by the File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the Group operations
catch(GroupIException error)
{
error.printError();
return -1;
}
return 0;
}

View File

@@ -0,0 +1,141 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to create a dataset in a group.
* It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#ifndef H5_NO_STD
using std::cout;
using std::endl;
#endif // H5_NO_STD
#endif
const H5std_string FILE_NAME("h5tutr_groups.h5");
const H5std_string DATASET_NAME1("/MyGroup/dset1");
const H5std_string DATASET_NAME2("dset2");
const int RANK = 2;
const int D1DIM1 = 3;
const int D1DIM2 = 3;
const int D2DIM1 = 2;
const int D2DIM2 = 10;
int main(void)
{
int dset1_data[D1DIM1][D1DIM2], dset2_data[D2DIM1][D2DIM2]; // data buffers
int i, j;
// Try block to catch exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Initialize the first dataset.
for (i = 0; i < D1DIM1; i++)
for (j = 0; j < D1DIM2; j++)
dset1_data[i][j] = j + 1;
// Initialize the second dataset.
for (i = 0; i < D2DIM1; i++)
for (j = 0; j < D2DIM2; j++)
dset2_data[i][j] = j + 1;
// Open an existing file and dataset.
H5File file(FILE_NAME, H5F_ACC_RDWR);
// Create the data space for the first dataset. Note the use of
// pointer for the instance 'dataspace'. It can be deleted and
// used again later for another data space. An HDF5 identifier is
// closed by the destructor or the method 'close()'.
hsize_t dims[RANK]; // dataset dimensions
dims[0] = D1DIM1;
dims[1] = D1DIM2;
DataSpace *dataspace = new DataSpace (RANK, dims);
// Create the dataset in group "MyGroup". Same note as for the
// dataspace above.
DataSet *dataset = new DataSet (file.createDataSet(DATASET_NAME1,
PredType::STD_I32BE, *dataspace));
// Write the data to the dataset using default memory space, file
// space, and transfer properties.
dataset->write(dset1_data, PredType::NATIVE_INT);
// Close the current dataset and data space.
delete dataset;
delete dataspace;
// Create the data space for the second dataset.
dims[0] = D2DIM1;
dims[1] = D2DIM2;
dataspace = new DataSpace (RANK, dims);
// Create group "Group_A" in group "MyGroup".
Group group(file.openGroup("/MyGroup/Group_A"));
// Create the second dataset in group "Group_A".
dataset = new DataSet (group.createDataSet(DATASET_NAME2,
PredType::STD_I32BE, *dataspace));
// Write the data to the dataset using default memory space, file
// space, and transfer properties.
dataset->write(dset2_data, PredType::NATIVE_INT);
// Close all objects.
delete dataspace;
delete dataset;
group.close();
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch(DataSetIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSpace operations
catch(DataSpaceIException error)
{
error.printError();
return -1;
}
// catch failure caused by the Group operations
catch(GroupIException error)
{
error.printError();
return -1;
}
return 0;
}

View File

@@ -0,0 +1,177 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to create a dataset that is a 4 x 6
* array. It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#ifndef H5_NO_STD
using std::cout;
using std::endl;
#endif // H5_NO_STD
#endif
const H5std_string FILE_NAME("h5tutr_extend.h5");
const H5std_string DATASETNAME("ExtendibleArray");
int main (void)
{
hsize_t dims[2] = {3,3}; // dataset dimensions at creation
hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
hsize_t chunk_dims[2] ={2, 5};
int data[3][3] = { {1, 1, 1}, // data to write
{1, 1, 1},
{1, 1, 1} };
// Variables used in extending and writing to the extended portion of dataset
hsize_t size[2];
hsize_t offset[2];
hsize_t dimsext[2] = {7, 3}; // extend dimensions
int dataext[7][3] = { {2, 3, 4},
{2, 3, 4},
{2, 3, 4},
{2, 3, 4},
{2, 3, 4},
{2, 3, 4},
{2, 3, 4} };
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Create a new file using the default property lists.
H5File file(FILE_NAME, H5F_ACC_TRUNC);
// Create the data space for the dataset. Note the use of pointer
// for the instance 'dataspace'. It can be deleted and used again
// later for another dataspace. An HDF5 identifier can be closed
// by the destructor or the method 'close()'.
DataSpace *dataspace = new DataSpace (2, dims, maxdims);
// Modify dataset creation property to enable chunking
DSetCreatPropList prop;
prop.setChunk(2, chunk_dims);
// Create the chunked dataset. Note the use of pointer.
DataSet *dataset = new DataSet(file.createDataSet( DATASETNAME,
PredType::STD_I32BE, *dataspace, prop) );
// Write data to dataset.
dataset->write(data, PredType::NATIVE_INT);
// Extend the dataset. Dataset becomes 10 x 3.
size[0] = dims[0] + dimsext[0];
size[1] = dims[1];
dataset->extend(size);
// Select a hyperslab in extended portion of the dataset.
DataSpace *filespace = new DataSpace(dataset->getSpace ());
offset[0] = 3;
offset[1] = 0;
filespace->selectHyperslab(H5S_SELECT_SET, dimsext, offset);
// Define memory space.
DataSpace *memspace = new DataSpace(2, dimsext, NULL);
// Write data to the extended portion of the dataset.
dataset->write(dataext, PredType::NATIVE_INT, *memspace, *filespace);
// Close all objects and file.
prop.close();
delete filespace;
delete memspace;
delete dataspace;
delete dataset;
file.close();
// ---------------------------------------
// Re-open the file and read the data back
// ---------------------------------------
int rdata[10][3];
int i,j, rank, rank_chunk;
hsize_t chunk_dimsr[2], dimsr[2];
// Open the file and dataset.
file.openFile(FILE_NAME, H5F_ACC_RDONLY);
dataset = new DataSet(file.openDataSet( DATASETNAME));
// Get the dataset's dataspace and creation property list.
filespace = new DataSpace(dataset->getSpace());
prop = dataset->getCreatePlist();
// Get information to obtain memory dataspace.
rank = filespace->getSimpleExtentNdims();
herr_t status_n = filespace->getSimpleExtentDims(dimsr);
if (H5D_CHUNKED == prop.getLayout())
rank_chunk = prop.getChunk(rank, chunk_dimsr);
cout << "rank chunk = " << rank_chunk << endl;;
memspace = new DataSpace(rank, dimsr, NULL);
dataset->read(rdata, PredType::NATIVE_INT, *memspace, *filespace);
cout << endl;
for (j = 0; j < dimsr[0]; j++) {
for (i = 0; i < dimsr[1]; i++)
cout << " " << rdata[j][i];
cout << endl;
}
// Close all objects and file.
prop.close();
delete filespace;
delete memspace;
delete dataset;
file.close();
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch(DataSetIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSpace operations
catch(DataSpaceIException error)
{
error.printError();
return -1;
}
return 0; // successfully terminated
}

View File

@@ -0,0 +1,79 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to write to and read from an existing
* dataset. It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#endif
const H5std_string FILE_NAME("h5tutr_dset.h5");
const H5std_string DATASET_NAME("dset");
const int DIM0 = 4; // dataset dimensions
const int DIM1 = 6;
int main (void)
{
// Data initialization.
int i, j;
int data[DIM0][DIM1]; // buffer for data to write
for (j = 0; j < DIM0; j++)
for (i = 0; i < DIM1; i++)
data[j][i] = i * 6 + j + 1;
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Open an existing file and dataset.
H5File file(FILE_NAME, H5F_ACC_RDWR);
DataSet dataset = file.openDataSet(DATASET_NAME);
// Write the data to the dataset using default memory space, file
// space, and transfer properties.
dataset.write(data, PredType::NATIVE_INT);
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch(DataSetIException error)
{
error.printError();
return -1;
}
return 0; // successfully terminated
}

View File

@@ -0,0 +1,183 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* This example illustrates how to read/write a subset of data (a slab)
* from/to a dataset in an HDF5 file. It is used in the HDF5 Tutorial.
*/
#include <iostream>
#include <string>
#include "H5Cpp.h"
#ifndef H5_NO_NAMESPACE
using namespace H5;
#ifndef H5_NO_STD
using std::cout;
using std::endl;
#endif // H5_NO_STD
#endif
const H5std_string FILE_NAME("h5tutr_subset.h5");
const H5std_string DATASET_NAME("IntArray");
const int RANK = 2;
const int DIM0_SUB = 3; // subset dimensions
const int DIM1_SUB = 4;
const int DIM0 = 8; // size of dataset
const int DIM1 = 10;
int main (void)
{
int i,j;
int data[DIM0][DIM1], sdata[DIM0_SUB][DIM1_SUB], rdata[DIM0][DIM1];
// Try block to detect exceptions raised by any of the calls inside it
try
{
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// ---------------------------------------------------
// Create a new file using the default property lists.
// Then create a dataset and write data to it.
// Close the file and dataset.
// ---------------------------------------------------
H5File file(FILE_NAME, H5F_ACC_TRUNC);
hsize_t dims[2];
dims[0] = DIM0;
dims[1] = DIM1;
DataSpace dataspace = DataSpace (RANK, dims);
DataSet dataset(file.createDataSet( DATASET_NAME,
PredType::STD_I32BE, dataspace) );
for (j = 0; j < DIM0; j++) {
for (i = 0; i < DIM1; i++)
if (i< (DIM1/2))
data[j][i] = 1;
else
data[j][i] = 2;
}
dataset.write(data, PredType::NATIVE_INT);
cout << endl << "Data Written to File:" << endl;
for (j = 0; j < DIM0; j++) {
for (i = 0; i < DIM1; i++)
cout << " " << data[j][i];
cout << endl;
}
dataspace.close();
dataset.close();
file.close();
// ---------------------------------------------------
// Reopen the file and dataset and write a subset of
// values to the dataset.
// ---------------------------------------------------
hsize_t offset[2], count[2], stride[2], block[2];
hsize_t dimsm[2];
file.openFile(FILE_NAME, H5F_ACC_RDWR);
dataset = file.openDataSet(DATASET_NAME);
// Specify size and shape of subset to write.
offset[0] = 1;
offset[1] = 2;
count[0] = DIM0_SUB;
count[1] = DIM1_SUB;
stride[0] = 1;
stride[1] = 1;
block[0] = 1;
block[1] = 1;
// Define Memory Dataspace. Get file dataspace and select
// a subset from the file dataspace.
dimsm[0] = DIM0_SUB;
dimsm[1] = DIM1_SUB;
DataSpace memspace(RANK, dimsm, NULL);
dataspace = dataset.getSpace();
dataspace.selectHyperslab(H5S_SELECT_SET, count, offset, stride, block);
// Write a subset of data to the dataset, then read the
// entire dataset back from the file.
cout << endl << "Write subset to file specifying: " << endl;
cout << " offset=1x2 stride=1x1 count=3x4 block=1x1" << endl;
for (j = 0; j < DIM0_SUB; j++) {
for (i = 0; i < DIM1_SUB; i++)
sdata[j][i] = 5;
}
dataset.write(sdata, PredType::NATIVE_INT, memspace, dataspace);
dataset.read(rdata, PredType::NATIVE_INT);
cout << endl << "Data in File after Subset is Written:" << endl;
for (i = 0; i < DIM0; i++) {
for (j = 0; j < DIM1; j++)
cout << " " << rdata[i][j];
cout << endl;
}
cout << endl;
// It is not necessary to close these objects because close() will
// be called when the object instances are going out of scope.
dataspace.close();
memspace.close();
dataset.close();
file.close();
} // end of try block
// catch failure caused by the H5File operations
catch(FileIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSet operations
catch(DataSetIException error)
{
error.printError();
return -1;
}
// catch failure caused by the DataSpace operations
catch(DataSpaceIException error)
{
error.printError();
return -1;
}
return 0; // successfully terminated
}

31
c++/examples/run-c++-ex.sh.in Executable file → Normal file
View File

@@ -64,6 +64,10 @@ RunTest()
# Run tests
if [ $? -eq 0 ]
then
echo "*************************************************"
echo "** Run C++ API Examples **"
echo "** **"
echo "*************************************************"
if (RunTest create &&\
rm create &&\
RunTest readdata &&\
@@ -82,6 +86,33 @@ then
else
EXIT_VALUE=${EXIT_FAILURE}
fi
echo
echo "***************************************************"
echo "** Run Tutorial Examples **"
echo "** **"
echo "***************************************************"
if (RunTest h5tutr_crtdat &&\
rm h5tutr_crtdat &&\
RunTest h5tutr_rdwt &&\
rm h5tutr_rdwt &&\
RunTest h5tutr_crtatt &&\
rm h5tutr_crtatt &&\
RunTest h5tutr_crtgrp &&\
rm h5tutr_crtgrp &&\
RunTest h5tutr_crtgrpar &&\
rm h5tutr_crtgrpar &&\
RunTest h5tutr_crtgrpd &&\
rm h5tutr_crtgrpd &&\
RunTest h5tutr_extend &&\
rm h5tutr_extend &&\
RunTest h5tutr_subset &&\
rm h5tutr_subset &&\
RunTest h5tutr_cmprss &&\
rm h5tutr_cmprss ); then
EXIT_VALUE=${EXIT_SUCCESS}
else
EXIT_VALUE=${EXIT_FAILURE}
fi
fi
# Cleanup

7
c++/examples/testh5c++.sh.in Executable file → Normal file
View File

@@ -19,6 +19,8 @@
# Modification:
#
srcdir=@srcdir@
# Initializations
TESTNAME=h5c++
EXIT_SUCCESS=0
@@ -41,11 +43,6 @@ verbose=yes
myos=`uname -s`
myhostnama=`uname -n`
# The build (current) directory might be different than the source directory.
if test -z "$srcdir"; then
srcdir=.
fi
# Generate some source files and library for tests.
suffix=cpp # source file suffix
hdf5main=${H5TOOL}_hdf5main.$suffix

View File

@@ -1,24 +1,24 @@
cmake_minimum_required (VERSION 2.8.6)
cmake_minimum_required (VERSION 3.1.0)
PROJECT (HDF5_CPP_SRC)
#-----------------------------------------------------------------------------
# Shared/Static Libs
#-----------------------------------------------------------------------------
IF (BUILD_SHARED_LIBS)
SET (CPP_BUILT_AS_DYNAMIC_LIB 1)
ENDIF (BUILD_SHARED_LIBS)
if (BUILD_SHARED_LIBS)
set (CPP_BUILT_AS_DYNAMIC_LIB 1)
endif (BUILD_SHARED_LIBS)
#-----------------------------------------------------------------------------
# Generate configure file
#-----------------------------------------------------------------------------
CONFIGURE_FILE (${HDF5_RESOURCES_DIR}/H5cxx_config.h.in
configure_file (${HDF_RESOURCES_DIR}/H5cxx_config.h.in
${HDF5_BINARY_DIR}/H5cxx_pubconf.h
)
#-----------------------------------------------------------------------------
# Define cpp Library
#-----------------------------------------------------------------------------
SET (CPP_SRCS
set (CPP_SRCS
${HDF5_CPP_SRC_SOURCE_DIR}/H5AbstractDs.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5ArrayType.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5AtomType.cpp
@@ -40,6 +40,7 @@ SET (CPP_SRCS
${HDF5_CPP_SRC_SOURCE_DIR}/H5IdComponent.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5IntType.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5Library.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5Location.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5Object.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5PredType.cpp
${HDF5_CPP_SRC_SOURCE_DIR}/H5PropList.cpp
@@ -47,7 +48,7 @@ SET (CPP_SRCS
${HDF5_CPP_SRC_SOURCE_DIR}/H5VarLenType.cpp
)
SET (CPP_HDRS
set (CPP_HDRS
${HDF5_CPP_SRC_SOURCE_DIR}/H5AbstractDs.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5Alltypes.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5ArrayType.h
@@ -74,6 +75,7 @@ SET (CPP_HDRS
${HDF5_CPP_SRC_SOURCE_DIR}/H5Include.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5IntType.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5Library.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5Location.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5Object.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5PredType.h
${HDF5_CPP_SRC_SOURCE_DIR}/H5PropList.h
@@ -81,20 +83,24 @@ SET (CPP_HDRS
${HDF5_CPP_SRC_SOURCE_DIR}/H5VarLenType.h
)
ADD_LIBRARY (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS})
TARGET_LINK_LIBRARIES (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
add_library (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS})
TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} " " " ")
target_link_libraries (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} ${LIB_TYPE})
SET_TARGET_PROPERTIES (${HDF5_CPP_LIB_TARGET} PROPERTIES FOLDER libraries/cpp)
set_target_properties (${HDF5_CPP_LIB_TARGET} PROPERTIES
FOLDER libraries/cpp
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
#-----------------------------------------------------------------------------
# Add file(s) to CMake Install
#-----------------------------------------------------------------------------
INSTALL (
install (
FILES
${CPP_HDRS}
DESTINATION
${HDF5_INSTALL_INCLUDE_DIR}/cpp
${HDF5_INSTALL_INCLUDE_DIR}
COMPONENT
cppheaders
)
@@ -102,8 +108,12 @@ INSTALL (
#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------
IF (HDF5_EXPORTED_TARGETS)
INSTALL (
if (HDF5_EXPORTED_TARGETS)
if (BUILD_SHARED_LIBS)
INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
endif (BUILD_SHARED_LIBS)
install (
TARGETS
${HDF5_CPP_LIB_TARGET}
EXPORT
@@ -112,4 +122,4 @@ IF (HDF5_EXPORTED_TARGETS)
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT cpplibraries
)
ENDIF (HDF5_EXPORTED_TARGETS)
endif (HDF5_EXPORTED_TARGETS)

View File

@@ -25,11 +25,6 @@
#include "H5CommonFG.h"
#include "H5Alltypes.h"
#include <iostream> // remove when done
using std::cerr;
using std::endl;
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif

View File

@@ -14,13 +14,8 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Class AbstractDs is an abstract base class, from which Attribute and
// DataSet inherit. It provides the services that are common to both
// Attribute and DataSet. It also inherits from H5Object and passes down
// the services that H5Object provides.
#ifndef _AbstractDs_H
#define _AbstractDs_H
#ifndef __AbstractDs_H
#define __AbstractDs_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -33,6 +28,14 @@ class FloatType;
class IntType;
class StrType;
class VarLenType;
/*! \class AbstractDs
\brief AbstractDs is an abstract base class, inherited by Attribute
and DataSet.
It provides a collection of services that are common to both Attribute
and DataSet. AbstractDs inherits from H5Object.
*/
class H5_DLLCPP AbstractDs {
public:
// Gets a copy the datatype of that this abstract dataset uses.
@@ -51,21 +54,20 @@ class H5_DLLCPP AbstractDs {
StrType getStrType() const;
VarLenType getVarLenType() const;
// Gets the size in memory of this abstract dataset.
///\brief Gets the size in memory of this abstract dataset.
virtual size_t getInMemDataSize() const = 0;
// Gets the dataspace of this abstract dataset - pure virtual.
///\brief Gets the dataspace of this abstract dataset - pure virtual.
virtual DataSpace getSpace() const = 0;
// Gets the class of the datatype that is used by this abstract
// dataset.
H5T_class_t getTypeClass() const;
// Returns the amount of storage size required for this abstract
// dataset - pure virtual.
///\brief Returns the amount of storage size required - pure virtual.
virtual hsize_t getStorageSize() const = 0;
// Returns this class name
///\brief Returns this class name.
virtual H5std_string fromClass() const = 0;
// Copy constructor
@@ -88,4 +90,4 @@ class H5_DLLCPP AbstractDs {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif // _AbstractDs_H
#endif // __AbstractDs_H

View File

@@ -54,15 +54,16 @@ ArrayType::ArrayType( const hid_t existing_id ) : DataType( existing_id )
rank = H5Tget_array_ndims(existing_id);
if (rank < 0)
{
throw DataTypeIException("ArrayType overloaded constructor", "H5Tget_array_ndims failed");
throw DataTypeIException("ArrayType constructor (existing id)", "H5Tget_array_ndims failed");
}
// Get the dimensions of the existing array and store it in this array
dimensions = new hsize_t[rank];
//hsize_t rdims2[H5S_MAX_RANK];
int ret_value = H5Tget_array_dims2(id, dimensions);
if (ret_value < 0)
throw DataTypeIException("ArrayType::getArrayDims", "H5Tget_array_dims2 failed");
// Allocate space for the dimensions
dimensions = new hsize_t[rank];
// Get the dimensions of the existing array and store it in this array
int ret_value = H5Tget_array_dims2(id, dimensions);
if (ret_value < 0)
throw DataTypeIException("ArrayType constructor (existing id)", "H5Tget_array_dims2 failed");
}
//--------------------------------------------------------------------------
@@ -72,10 +73,13 @@ ArrayType::ArrayType( const hid_t existing_id ) : DataType( existing_id )
//--------------------------------------------------------------------------
ArrayType::ArrayType( const ArrayType& original ) : DataType( original )
{
rank = original.rank;
dimensions = new hsize_t[rank];
for (int i = 0; i < rank; i++)
dimensions[i] = original.dimensions[i];
// Copy the rank of the original array
rank = original.rank;
// Allocate space then copy the dimensions from the original array
dimensions = new hsize_t[rank];
for (int i = 0; i < rank; i++)
dimensions[i] = original.dimensions[i];
}
//--------------------------------------------------------------------------
@@ -90,14 +94,19 @@ ArrayType::ArrayType( const ArrayType& original ) : DataType( original )
//--------------------------------------------------------------------------
ArrayType::ArrayType(const DataType& base_type, int ndims, const hsize_t* dims) : DataType()
{
hid_t new_type_id = H5Tarray_create2(base_type.getId(), ndims, dims);
if (new_type_id < 0)
throw DataTypeIException("ArrayType constructor", "H5Tarray_create2 failed");
id = new_type_id;
rank = ndims;
dimensions = new hsize_t[rank];
for (int i = 0; i < rank; i++)
dimensions[i] = dims[i];
// Call C API to create an array data type
hid_t new_type_id = H5Tarray_create2(base_type.getId(), ndims, dims);
if (new_type_id < 0)
throw DataTypeIException("ArrayType constructor", "H5Tarray_create2 failed");
// Set the id and rank for this object
id = new_type_id;
rank = ndims;
// Allocate space then set the dimensions as provided by caller
dimensions = new hsize_t[rank];
for (int i = 0; i < rank; i++)
dimensions[i] = dims[i];
}
//--------------------------------------------------------------------------
@@ -132,19 +141,19 @@ int ArrayType::getArrayNDims()
//--------------------------------------------------------------------------
int ArrayType::getArrayDims(hsize_t* dims)
{
// if the array's dimensions have not been stored, retrieve them via C API
// If the array's dimensions have not been stored, retrieve them via C API
if (dimensions == NULL)
{
int ndims = H5Tget_array_dims2(id, dims);
if (ndims < 0)
throw DataTypeIException("ArrayType::getArrayDims", "H5Tget_array_dims2 failed");
// store the array's info in memory
// Store the array's info in memory
rank = ndims;
dimensions = new hsize_t[rank];
for (int i = 0; i < rank; i++)
dimensions[i] = dims[i];
}
// otherwise, simply copy what's in 'dimensions' to 'dims'
// Otherwise, simply copy what's in 'dimensions' to 'dims'
for (int i = 0; i < rank; i++)
dims[i] = dimensions[i];
return(rank);

View File

@@ -14,16 +14,17 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Class ArrayType inherits from DataType and provides wrappers for the
// HDF5 C's Array Datatypes.
#ifndef _H5ArrayType_H
#define _H5ArrayType_H
#ifndef __H5ArrayType_H
#define __H5ArrayType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class ArrayType
\brief Class ArrayType inherits from DataType and provides wrappers for
the HDF5's Array Datatypes.
*/
class H5_DLLCPP ArrayType : public DataType {
public:
// Constructor that creates a new array data type based on the
@@ -36,7 +37,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.
@@ -59,4 +60,4 @@ class H5_DLLCPP ArrayType : public DataType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5ArrayType_H

View File

@@ -45,7 +45,6 @@ AtomType::AtomType() : DataType() {}
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AtomType::AtomType( const hid_t existing_id ) : DataType( existing_id ) {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: AtomType copy constructor
@@ -53,6 +52,7 @@ AtomType::AtomType( const hid_t existing_id ) : DataType( existing_id ) {}
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AtomType::AtomType( const AtomType& original ) : DataType( original ) {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: AtomType::setSize
@@ -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
@@ -285,12 +285,14 @@ void AtomType::setPad( H5T_pad_t lsb, H5T_pad_t msb ) const
}
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: AtomType destructor
///\brief Noop destructor.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AtomType::~AtomType() {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
#ifndef H5_NO_NAMESPACE
} // end namespace

View File

@@ -14,18 +14,20 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Class AtomType is a base class, from which IntType, FloatType, StrType,
// and PredType inherit. It provides the services that are common to these
// subclasses. It also inherits from DataType and passes down the
// services that are common to all the datatypes.
#ifndef _H5AtomType_H
#define _H5AtomType_H
#ifndef __H5AtomType_H
#define __H5AtomType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class AtomType
\brief AtomType is a base class, inherited by IntType, FloatType,
StrType, and PredType.
AtomType provides operations on HDF5 atomic datatypes. It also inherits
from DataType.
*/
class H5_DLLCPP AtomType : public DataType {
public:
// Returns the byte order of an atomic datatype.
@@ -57,14 +59,16 @@ 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"); }
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Copy constructor - makes copy of the original object
AtomType( const AtomType& original );
// Noop destructor
virtual ~AtomType();
#endif // DOXYGEN_SHOULD_SKIP_THIS
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -78,4 +82,4 @@ class H5_DLLCPP AtomType : public DataType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5AtomType_H

View File

@@ -44,12 +44,13 @@ namespace H5 {
#endif // H5_NO_STD
#endif
class H5_DLLCPP H5Object; // forward declaration for UserData4Aiterate
//--------------------------------------------------------------------------
// Function: Attribute default constructor
///\brief Default constructor: Creates a stub attribute
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
Attribute::Attribute() : AbstractDs(), IdComponent(), id(0) {}
Attribute::Attribute() : AbstractDs(), IdComponent(), id(H5I_INVALID_HID) {}
//--------------------------------------------------------------------------
// Function: Attribute copy constructor
@@ -161,13 +162,13 @@ void Attribute::read( const DataType& mem_type, void *buf ) const
// Mar 2008
// Corrected a misunderstanding that H5Aread would allocate
// space for the buffer. Obtained the attribute size and
// allocated memory properly. - BMR
// allocated memory properly. -BMR
// Apr 2009
// Used getInMemDataSize to get attribute data size. - BMR
// 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.
// p_read_variable_len. This should improve readability. -BMR
//--------------------------------------------------------------------------
void Attribute::read(const DataType& mem_type, H5std_string& strg) const
{
@@ -198,7 +199,7 @@ void Attribute::read(const DataType& mem_type, H5std_string& strg) const
//--------------------------------------------------------------------------
size_t Attribute::getInMemDataSize() const
{
char *func = "Attribute::getInMemDataSize";
const char *func = "Attribute::getInMemDataSize";
// Get the data type of this attribute
hid_t mem_type_id = H5Aget_type(id);
@@ -207,7 +208,8 @@ size_t Attribute::getInMemDataSize() const
throw AttributeIException(func, "H5Aget_type failed");
}
// Get the data type's size
// Get the data type's size by first getting its native type then getting
// the native type's size.
hid_t native_type = H5Tget_native_type(mem_type_id, H5T_DIR_DEFAULT);
if (native_type < 0)
{
@@ -219,7 +221,18 @@ size_t Attribute::getInMemDataSize() const
throw AttributeIException(func, "H5Tget_size failed");
}
// Get number of elements of the attribute
// Close the native type and the datatype of this attribute.
if (H5Tclose(native_type) < 0)
{
throw DataSetIException(func, "H5Tclose(native_type) failed");
}
if (H5Tclose(mem_type_id) < 0)
{
throw DataSetIException(func, "H5Tclose(mem_type_id) failed");
}
// Get number of elements of the attribute by first getting its dataspace
// then getting the number of elements in the dataspace
hid_t space_id = H5Aget_space(id);
if (space_id < 0)
{
@@ -231,6 +244,12 @@ size_t Attribute::getInMemDataSize() const
throw AttributeIException(func, "H5Sget_simple_extent_npoints failed");
}
// Close the dataspace
if (H5Sclose(space_id) < 0)
{
throw DataSetIException(func, "H5Sclose failed");
}
// Calculate and return the size of the data
size_t data_size = type_size * num_elements;
return(data_size);
@@ -280,75 +299,169 @@ H5std_string Attribute::getFileName() const
//--------------------------------------------------------------------------
// Function: Attribute::getName
///\brief Gets the name of this attribute, returning its length.
///\param buf_size - IN: Desired length of the name
///\param attr_name - OUT: Buffer for the name string
///\return Length of the attribute name
///\param attr_name - OUT: Buffer for the name string as char*
///\param buf_size - IN: Length of the buffer, default to 0
///\return Actual length of the attribute name
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Nov, 2001
///\par Description
/// This function retrieves \a buf_size chars of the attribute's
/// name including null termination. Thus, if the actual length
/// of the name is more than buf_size-1, the retrieved name will
/// be truncated to accommodate the null terminator.
/// To get length of the attribute's name for buffer allocation,
/// an application can call this function passing in NULL for the
/// first argument and ignore the second argument.
// Programmer Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
ssize_t Attribute::getName( size_t buf_size, H5std_string& attr_name ) const
ssize_t Attribute::getName(char* attr_name, size_t buf_size) const
{
char* name_C = new char[buf_size+1]; // temporary C-string for C API
// H5Aget_name will get buf_size-1 chars of the name to null terminate it
ssize_t name_size = H5Aget_name(id, buf_size, attr_name);
// Calls C routine H5Aget_name to get the name of the attribute
ssize_t name_size = H5Aget_name( id, buf_size, name_C );
// If H5Aget_name returns a negative value, raise an exception
if (name_size < 0)
{
throw AttributeIException("Attribute::getName", "H5Aget_name failed");
}
else if (name_size == 0)
{
throw AttributeIException("Attribute::getName", "Attribute must have a name, name length is 0");
}
// Return length of the name
return(name_size);
}
// If H5Aget_name returns a negative value, raise an exception,
if( name_size < 0 )
{
throw AttributeIException("Attribute::getName", "H5Aget_name failed");
}
// otherwise, convert the C attribute name and return
attr_name = name_C;
delete []name_C;
return( name_size );
//--------------------------------------------------------------------------
// Function: Attribute::getName
///\brief Returns the name of this attribute as an \a H5std_string.
///\return Name of the attribute
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - May, 2004
// Modification
// Mar 2014 - BMR
// Revised to use the modified getName() above
//--------------------------------------------------------------------------
H5std_string Attribute::getName() const
{
H5std_string attr_name(""); // attribute name to return
// Preliminary call to get the size of the attribute name
ssize_t name_size = H5Aget_name(id, (size_t)0, NULL);
// If H5Aget_name failed, throw exception
if (name_size < 0)
{
throw AttributeIException("Attribute::getName", "H5Aget_name failed");
}
else if (name_size == 0)
{
throw AttributeIException("Attribute::getName", "Attribute must have a name, name length is 0");
}
// Attribute's name exists, retrieve it
else if (name_size > 0)
{
char* name_C = new char[name_size+1]; // temporary C-string
HDmemset(name_C, 0, name_size+1); // clear buffer
// Use overloaded function
name_size = getName(name_C, name_size+1);
// Convert the C attribute name to return
attr_name = name_C;
// Clean up resource
delete []name_C;
}
// Return attribute's name
return(attr_name);
}
//--------------------------------------------------------------------------
// Function: Attribute::getName
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it returns the
/// attribute's name, not the length.
///\return Name of the attribute
///\param buf_size - IN: Desired length of the name
/// It differs from the above function in that it takes an integer
/// specifying a desired length to be retrieved of the name.
///\return Name (or part of name) of the attribute
///\param len - IN: Desired length of the name
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
// Modification
// Mar 2014 - BMR
// Revised to use the new getName() below
//--------------------------------------------------------------------------
H5std_string Attribute::getName( size_t buf_size ) const
H5std_string Attribute::getName(size_t len) const
{
H5std_string attr_name;
ssize_t name_size = getName( buf_size, attr_name );
return( attr_name );
ssize_t name_size = getName(attr_name, len);
return(attr_name);
// let caller catch exception if any
}
//--------------------------------------------------------------------------
// Function: Attribute::getName
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above functions in that it doesn't take
/// any arguments and returns the attribute's name.
///\return Name of the attribute
///\brief Gets the name of this attribute, returning its length.
///\param attr_name - OUT: Buffer for the name string as \a H5std_string
///\param len - IN: Desired length of the name, default to 0
///\return Actual length of the attribute name
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - May, 2004
///\par Description
/// This function retrieves the attribute's name as a string. The
/// buf_size can specify a specific length or default to 0, in
/// which case the entire name will be retrieved.
// Programmer Binh-Minh Ribler - Nov, 2001
// Modification
// Mar 2014 - BMR
// Added to replace getName(size_t, H5std_string&) so that it'll
// allow the argument "len" to be skipped.
//--------------------------------------------------------------------------
H5std_string Attribute::getName() const
ssize_t Attribute::getName(H5std_string& attr_name, size_t len) const
{
// Try with 256 characters for the name first, if the name's length
// returned is more than that then, read the name again with the
// appropriate space allocation
char* name_C = new char[256]; // temporary C-string for C API
ssize_t name_size = H5Aget_name(id, 255, name_C);
ssize_t name_size = 0;
H5std_string attr_name;
if (name_size >= 256)
name_size = getName(name_size, attr_name);
// If no length is provided, get the entire attribute name
if (len == 0)
{
attr_name = getName();
name_size = attr_name.length();
}
// If length is provided, get that number of characters in name
else
{
char* name_C = new char[len+1]; // temporary C-string
HDmemset(name_C, 0, len+1); // clear buffer
// otherwise, convert the C attribute name and return
else
attr_name = name_C;
// Use overloaded function
name_size = getName(name_C, len+1);
delete []name_C;
return( attr_name );
// Convert the C attribute name to return
attr_name = name_C;
// Clean up resource
delete []name_C;
}
// Otherwise, keep attr_name intact
// Return name size
return(name_size);
}
//--------------------------------------------------------------------------
// Function: Attribute::getName
///\brief This function is replaced by the previous function, which
/// provides more convenient prototype. It will be removed
/// in future release.
///\param len - IN: Desired length of the name
///\param attr_name - OUT: Buffer for the name string
///\return Actual length of the attribute name
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Nov, 2001
// Modification
// Modified to call its replacement. -BMR, 2014/04/16
//--------------------------------------------------------------------------
ssize_t Attribute::getName( size_t len, H5std_string& attr_name ) const
{
return (getName(attr_name, len));
}
//--------------------------------------------------------------------------
@@ -366,9 +479,35 @@ hsize_t Attribute::getStorageSize() const
return (storage_size);
}
//--------------------------------------------------------------------------
// Function: Attribute::flush
///\brief Flushes all buffers associated with a file specified by
/// this attribute, to disk.
///\param scope - IN: Specifies the scope of the flushing action,
/// which can be either of these values:
/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file
/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file
///\exception H5::AttributeIException
///\par Description
/// This attribute is used to identify the file to be flushed.
// Programmer Binh-Minh Ribler - 2012
// Modification
// Sep 2012 - BMR
// Duplicated from H5Location
//--------------------------------------------------------------------------
void Attribute::flush(H5F_scope_t scope) const
{
herr_t ret_value = H5Fflush(getId(), scope);
if( ret_value < 0 )
{
throw AttributeIException("Attribute::flush", "H5Fflush failed");
}
}
//--------------------------------------------------------------------------
// Function: Attribute::getId
// Purpose: Get the id of this attribute
///\brief Get the id of this attribute
///\return Attribute identifier
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
@@ -447,11 +586,10 @@ void Attribute::p_read_fixed_len(const DataType& mem_type, H5std_string& strg) c
// Modification
// Jul 2009
// Separated the variable length case from the original
// Attribute::read
// Attribute::read. -BMR
//--------------------------------------------------------------------------
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;
@@ -468,6 +606,7 @@ void Attribute::p_read_variable_len(const DataType& mem_type, H5std_string& strg
HDfree(strg_C);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: Attribute::p_setId
///\brief Sets the identifier of this object to a new value.
@@ -492,6 +631,7 @@ void Attribute::p_setId(const hid_t new_id)
// reset object's id to the given id
id = new_id;
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: Attribute::close
@@ -510,7 +650,7 @@ void Attribute::close()
throw AttributeIException("Attribute::close", "H5Aclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}

View File

@@ -14,13 +14,21 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5Attribute_H
#define _H5Attribute_H
#ifndef __H5Attribute_H
#define __H5Attribute_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class Attribute
\brief Class Attribute operates on HDF5 attributes.
An attribute has many characteristics similar to a dataset, thus both
Attribute and DataSet are derivatives of AbstractDs. Attribute also
inherits from IdComponent because an attribute is an HDF5 component that
is identified by an identifier.
*/
class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
public:
// Closes this attribute.
@@ -30,9 +38,13 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
H5std_string getFileName() const;
// Gets the name of this attribute.
ssize_t getName(char* attr_name, size_t buf_size = 0) const;
H5std_string getName(size_t len) const;
H5std_string getName() const;
ssize_t getName(H5std_string& attr_name, size_t len = 0) const;
// The overloaded function below is replaced by the one above and it
// is kept for backward compatibility purpose.
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
H5std_string getName() const; // returns name, no argument
// Gets a copy of the dataspace for this attribute.
virtual DataSpace getSpace() const;
@@ -51,7 +63,11 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
void write(const DataType& mem_type, const void *buf ) const;
void write(const DataType& mem_type, const H5std_string& strg ) const;
// Returns this class name
// Flushes all buffers associated with the file specified by this
// attribute to disk.
void flush( H5F_scope_t scope ) const;
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("Attribute"); }
// Creates a copy of an existing attribute using the attribute id
@@ -70,8 +86,10 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
virtual ~Attribute();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Sets the attribute id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 attribute id
@@ -95,4 +113,4 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5Attribute_H

View File

@@ -14,14 +14,15 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5Classes_H
#define _H5Classes_H
#ifndef __H5Classes_H
#define __H5Classes_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
class Exception;
class IdComponent;
class H5Location;
class H5Object;
class PropList;
class FileCreatPropList;
@@ -48,4 +49,4 @@ namespace H5 {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5Classes_H

View File

@@ -31,7 +31,10 @@
#include "H5DataSet.h"
#include "H5File.h"
#include "H5Alltypes.h"
#include "H5private.h" // for HDstrcpy
#include "H5private.h" // for HDstrcpy
#include <iostream>
using namespace std;
// There are a few comments that are common to most of the functions
// defined in this file so they are listed here.
@@ -68,25 +71,29 @@ namespace H5 {
//--------------------------------------------------------------------------
Group CommonFG::createGroup( const char* name, size_t size_hint ) const
{
// Create group creation property list for size_hint
hid_t gcpl_id = H5Pcreate(H5P_GROUP_CREATE);
// If the creation of the property list failed, throw an exception
if( gcpl_id < 0 )
throwException("createGroup", "H5Pcreate failed");
// Group creation property list for size_hint
hid_t gcpl_id = 0;
// Set the local heap size hint
if( H5Pset_local_heap_size_hint(gcpl_id, size_hint) < 0) {
H5Pclose(gcpl_id);
throwException("createGroup", "H5Pset_local_heap_size failed");
}
if(!(size_hint == (size_t)-1 || size_hint == 0)) {
// If the creation of the property list failed, throw an exception
if((gcpl_id = H5Pcreate(H5P_GROUP_CREATE)) < 0)
throwException("createGroup", "H5Pcreate failed");
if( H5Pset_local_heap_size_hint(gcpl_id, size_hint) < 0) {
H5Pclose(gcpl_id);
throwException("createGroup", "H5Pset_local_heap_size failed");
}
}
// Call C routine H5Gcreate2 to create the named group, giving the
// location id which can be a file id or a group id
hid_t group_id = H5Gcreate2( getLocId(), name, H5P_DEFAULT, gcpl_id, H5P_DEFAULT );
// Close the group creation property list
H5Pclose(gcpl_id);
// Close the group creation property list, if necessary
if(gcpl_id > 0)
H5Pclose(gcpl_id);
// If the creation of the group failed, throw an exception
if( group_id < 0 )
@@ -101,7 +108,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
@@ -126,9 +133,7 @@ Group CommonFG::openGroup( const char* name ) const
// If the opening of the group failed, throw an exception
if( group_id < 0 )
{
throwException("openGroup", "H5Gopen2 failed");
}
// No failure, create and return the Group object
Group group( group_id );
@@ -139,7 +144,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
@@ -170,9 +175,7 @@ DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, co
// If the creation of the dataset failed, throw an exception
if( dataset_id < 0 )
{
throwException("createDataSet", "H5Dcreate2 failed");
}
// No failure, create and return the DataSet object
DataSet dataset( dataset_id );
@@ -183,7 +186,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
@@ -218,7 +221,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
@@ -266,16 +269,15 @@ void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* ne
break;
} /* end switch */
if( ret_value < 0 ) {
if( ret_value < 0 )
throwException("link", "creating link failed");
}
}
//--------------------------------------------------------------------------
// 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
@@ -296,16 +298,14 @@ void CommonFG::unlink( const char* name ) const
{
herr_t ret_value = H5Ldelete( getLocId(), name, H5P_DEFAULT );
if( ret_value < 0 )
{
throwException("unlink", "H5Ldelete failed");
}
}
//--------------------------------------------------------------------------
// 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
@@ -322,8 +322,8 @@ void CommonFG::unlink( const H5std_string& name ) const
///\note
/// 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
/// to the Group Interface in the HDF5 User's Guide for details at:
/// http://www.hdfgroup.org/HDF5/doc/UG/UG_frame09Groups.html
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
@@ -332,16 +332,14 @@ void CommonFG::move( const char* src, const char* dst ) const
{
herr_t ret_value = H5Lmove( getLocId(), src, H5L_SAME_LOC, dst, H5P_DEFAULT, H5P_DEFAULT );
if( ret_value < 0 )
{
throwException("move", "H5Lmove failed");
}
}
//--------------------------------------------------------------------------
// 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
@@ -360,23 +358,21 @@ 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
{
herr_t ret_value = H5Gget_objinfo( getLocId(), name, follow_link, &statbuf );
if( ret_value < 0 )
{
throwException("getObjinfo", "H5Gget_objinfo failed");
}
}
//--------------------------------------------------------------------------
// 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
@@ -396,16 +392,14 @@ void CommonFG::getObjinfo( const char* name, H5G_stat_t& statbuf ) const
{
herr_t ret_value = H5Gget_objinfo( getLocId(), name, 0, &statbuf );
if( ret_value < 0 )
{
throwException("getObjinfo", "H5Gget_objinfo failed");
}
}
//--------------------------------------------------------------------------
// 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
@@ -436,9 +430,8 @@ H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
{
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;
}
@@ -446,12 +439,15 @@ H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
if (val_size > 0)
{
value_C = new char[val_size+1]; // temporary C-string for C API
HDmemset(value_C, 0, val_size+1); // clear buffer
ret_value = H5Lget_val(getLocId(), name, value_C, val_size, H5P_DEFAULT);
if( ret_value < 0 )
{
delete []value_C;
throwException("getLinkval", "H5Lget_val failed");
}
value = H5std_string(value_C);
delete []value_C;
}
@@ -462,7 +458,7 @@ H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
// 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
@@ -470,140 +466,6 @@ H5std_string CommonFG::getLinkval( const H5std_string& name, size_t size ) const
return( getLinkval( name.c_str(), size ));
}
//--------------------------------------------------------------------------
// Function: CommonFG::setComment
///\brief Sets or resets the comment for an object specified by its name.
///\param name - IN: Name of the object
///\param comment - IN: New comment
///\exception H5::FileIException or H5::GroupIException
///\par Description
/// If \a comment is an empty string or a null pointer, the comment
/// message is removed from the object.
/// Comments should be relatively short, null-terminated, ASCII
/// strings. They can be attached to any object that has an
/// 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
{
herr_t ret_value = H5Oset_comment_by_name( getLocId(), name, comment, H5P_DEFAULT );
if( ret_value < 0 )
{
throwException("setComment", "H5Oset_comment_by_name failed");
}
}
//--------------------------------------------------------------------------
// 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.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::setComment( const H5std_string& name, const H5std_string& comment ) const
{
setComment( name.c_str(), comment.c_str() );
}
//--------------------------------------------------------------------------
// Function: CommonFG::removeComment
///\brief Removes the comment from an object specified by its name.
///\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
{
herr_t ret_value = H5Oset_comment_by_name(getLocId(), name, NULL, H5P_DEFAULT);
if( ret_value < 0 )
{
throwException("removeComment", "H5Oset_comment_by_name failed");
}
}
//--------------------------------------------------------------------------
// 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.
// Programmer Binh-Minh Ribler - May 2005
//--------------------------------------------------------------------------
void CommonFG::removeComment(const H5std_string& name) const
{
removeComment (name.c_str());
}
//--------------------------------------------------------------------------
// 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
// 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 char* name, size_t bufsize ) const
{
// bufsize is default to 256
// temporary variable
hid_t loc_id = getLocId(); // temporary variable
// 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 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 the call to H5Oget_comment_by_name returned an error, skip this block
// and throw an exception below.
if (ret_value >= 0 && (size_t)ret_value > bufsize && bufsize == 256)
{
size_t new_size = ret_value;
delete []comment_C;
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,
// otherwise, throw an exception
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.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment( const H5std_string& name, size_t bufsize ) const
{
return( getComment( name.c_str(), bufsize ));
}
//--------------------------------------------------------------------------
// Function: CommonFG::mount
///\brief Mounts the file \a child onto this group.
@@ -611,9 +473,9 @@ H5std_string CommonFG::getComment( const H5std_string& name, size_t bufsize ) co
///\param child - IN: File to mount
///\param plist - IN: Property list to use
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
// Programmer Binh-Minh Ribler - 2014 (original 2000)
//--------------------------------------------------------------------------
void CommonFG::mount( const char* name, H5File& child, PropList& plist ) const
void CommonFG::mount(const char* name, const H5File& child, const PropList& plist ) const
{
// Obtain identifiers for C API
hid_t plist_id = plist.getId();
@@ -624,21 +486,46 @@ void CommonFG::mount( const char* name, H5File& child, PropList& plist ) const
// Raise exception if H5Fmount returns negative value
if( ret_value < 0 )
{
throwException("mount", "H5Fmount failed");
}
}
//--------------------------------------------------------------------------
// Function: CommonFG::mount
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param name - IN: Name of the group
///\param child - IN: File to mount
///\param plist - IN: Property list to use
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::mount(const char* name, H5File& child, PropList& plist) const
{
mount(name, (const H5File)child, (const PropList)plist);
}
//--------------------------------------------------------------------------
// 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.
/// It takes an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::mount( const H5std_string& name, H5File& child, PropList& plist ) const
void CommonFG::mount(const H5std_string& name, const H5File& child, const PropList& plist) const
{
mount( name.c_str(), child, plist );
mount(name.c_str(), child, plist);
}
//--------------------------------------------------------------------------
// Function: CommonFG::mount
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
// Programmer Binh-Minh Ribler - 2014
//--------------------------------------------------------------------------
void CommonFG::mount(const H5std_string& name, H5File& child, PropList& plist) const
{
mount(name.c_str(), (const H5File)child, (const PropList)plist);
}
//--------------------------------------------------------------------------
@@ -655,16 +542,14 @@ void CommonFG::unmount( const char* name ) const
// Raise exception if H5Funmount returns negative value
if( ret_value < 0 )
{
throwException("unmount", "H5Funmount failed");
}
}
//--------------------------------------------------------------------------
// 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
@@ -699,7 +584,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
@@ -734,7 +619,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
@@ -769,7 +654,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
@@ -804,7 +689,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
@@ -839,7 +724,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
@@ -874,7 +759,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
@@ -909,7 +794,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
@@ -944,7 +829,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
@@ -980,7 +865,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 )
@@ -1002,9 +887,7 @@ hsize_t CommonFG::getNumObjs() const
herr_t ret_value = H5Gget_info(getLocId(), &ginfo);
if(ret_value < 0)
{
throwException("getNumObjs", "H5Gget_info failed");
}
return (ginfo.nlinks);
}
@@ -1028,14 +911,20 @@ H5std_string CommonFG::getObjnameByIdx(hsize_t idx) const
// call H5Lget_name_by_idx with name as NULL to get its length
ssize_t name_len = H5Lget_name_by_idx(getLocId(), ".", H5_INDEX_NAME, H5_ITER_INC, idx, NULL, 0, H5P_DEFAULT);
if(name_len < 0)
{
throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
}
// now, allocate C buffer to get the name
char* name_C = new char[name_len+1];
HDmemset(name_C, 0, name_len+1); // clear buffer
name_len = H5Lget_name_by_idx(getLocId(), ".", H5_INDEX_NAME, H5_ITER_INC, idx, name_C, name_len+1, H5P_DEFAULT);
if (name_len < 0)
{
delete []name_C;
throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
}
// clean up and return the string
H5std_string name = H5std_string(name_C);
delete []name_C;
@@ -1063,9 +952,8 @@ ssize_t CommonFG::getObjnameByIdx(hsize_t idx, char* name, size_t size) const
{
ssize_t name_len = H5Lget_name_by_idx(getLocId(), ".", H5_INDEX_NAME, H5_ITER_INC, idx, name, size, H5P_DEFAULT);
if(name_len < 0)
{
throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
}
return (name_len);
}
@@ -1073,23 +961,147 @@ ssize_t CommonFG::getObjnameByIdx(hsize_t idx, char* name, size_t size) const
// Function: CommonFG::getObjnameByIdx
///\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 - January, 2003
//--------------------------------------------------------------------------
ssize_t CommonFG::getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size) const
{
char* name_C = new char[size];
ssize_t name_len = getObjnameByIdx(idx, name_C, size);
char* name_C = new char[size+1]; // temporary C-string for object name
HDmemset(name_C, 0, size+1); // clear buffer
// call overloaded function to get the name
ssize_t name_len = getObjnameByIdx(idx, name_C, size+1);
if(name_len < 0)
{
delete []name_C;
throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
}
// clean up and return the string
name = H5std_string(name_C);
delete []name_C;
return (name_len);
}
//--------------------------------------------------------------------------
// Function: CommonFG::childObjType
///\brief Returns the type of an object in this file/group, given the
/// object's name.
///\param objname - IN: Name of the object
///\return Object type, which can have the following values for group,
/// dataset, and named datatype
/// \li \c H5O_TYPE_GROUP
/// \li \c H5O_TYPE_DATASET
/// \li \c H5O_TYPE_NAMED_DATATYPE
/// Refer to the C API documentation for more details:
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5O.html#Object-GetInfo
///\exception H5::FileIException or H5::GroupIException
/// Exception will be thrown when:
/// - an error returned by the C API
/// - object type is not one of the valid values above
// Programmer Binh-Minh Ribler - April, 2014
//--------------------------------------------------------------------------
H5O_type_t CommonFG::childObjType(const char* objname) const
{
H5O_info_t objinfo;
H5O_type_t objtype = H5O_TYPE_UNKNOWN;
// Use C API to get information of the object
herr_t ret_value = H5Oget_info_by_name(getLocId(), objname, &objinfo, H5P_DEFAULT);
// Throw exception if C API returns failure
if (ret_value < 0)
throwException("childObjType", "H5Oget_info_by_name failed");
// Return a valid type or throw an exception for unknown type
else
switch (objinfo.type)
{
case H5O_TYPE_GROUP:
case H5O_TYPE_DATASET:
case H5O_TYPE_NAMED_DATATYPE:
objtype = objinfo.type;
break;
default:
throwException("childObjType", "Unknown type of object");
}
return(objtype);
}
//--------------------------------------------------------------------------
// Function: CommonFG::childObjType
///\brief This is an overloaded member function, provided for convenience.
/// It takes an \a H5std_string for the object's name.
///\brief Returns the type of an object in this group, given the
/// object's name.
///\param objname - IN: Name of the object (H5std_string&)
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - April, 2014
//--------------------------------------------------------------------------
H5O_type_t CommonFG::childObjType(const H5std_string& objname) const
{
// Use overloaded function
H5O_type_t objtype = childObjType(objname.c_str());
return(objtype);
}
//--------------------------------------------------------------------------
// Function: CommonFG::childObjType
///\brief Returns the type of an object in this file/group, given the
/// object's index and its type and order.
///\param index - IN: Position of the object
///\param index_type - IN: Type of the index, default to H5_INDEX_NAME
///\param order - IN: Traversing order, default to H5_ITER_INC
///\param objname - IN: Name of the object, default to "."
///\return Object type, which can have the following values for group,
/// dataset, and named datatype
/// \li \c H5O_TYPE_GROUP
/// \li \c H5O_TYPE_DATASET
/// \li \c H5O_TYPE_NAMED_DATATYPE
/// Refer to the C API documentation for more details:
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5O.html#Object-GetInfo
///\exception H5::FileIException or H5::GroupIException
/// Exception will be thrown when:
/// - an error returned by the C API
/// - object type is not one of the valid values above
// Developer's Notes:
// - this overload uses H5Oget_info_by_idx instead of H5Oget_info_by_name
// like the previous childObjType()
// - index is the required argument so, first
// - objname is last because it's more likely the location is already
// fully specified
// - Leave property list out for now because C API is not using it, it
// can be added later when needed.
// Programmer Binh-Minh Ribler - April, 2014
//--------------------------------------------------------------------------
H5O_type_t CommonFG::childObjType(hsize_t index, H5_index_t index_type, H5_iter_order_t order, const char* objname) const
{
herr_t ret_value;
H5O_info_t objinfo;
H5O_type_t objtype = H5O_TYPE_UNKNOWN;
// Use C API to get information of the object
ret_value = H5Oget_info_by_idx(getLocId(), objname, index_type, order, index, &objinfo, H5P_DEFAULT);
// Throw exception if C API returns failure
if (ret_value < 0)
throwException("childObjType", "H5Oget_info_by_idx failed");
// Return a valid type or throw an exception for unknown type
else
switch (objinfo.type)
{
case H5O_TYPE_GROUP:
case H5O_TYPE_DATASET:
case H5O_TYPE_NAMED_DATATYPE:
objtype = objinfo.type;
break;
default:
throwException("childObjType", "Unknown type of object");
}
return(objtype);
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: CommonFG::getObjTypeByIdx
///\brief Returns the type of an object in this group, given the
@@ -1103,9 +1115,8 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx) const
{
H5G_obj_t obj_type = H5Gget_objtype_by_idx(getLocId(), idx);
if (obj_type == H5G_UNKNOWN)
{
throwException("getObjTypeByIdx", "H5Gget_objtype_by_idx failed");
}
return (obj_type);
}
@@ -1115,7 +1126,7 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx) const
/// It differs from the above function because it also provides
/// the returned object type in text (char*)
///\param idx - IN: Transient index of the object
///\param type_name - IN: Object type in text
///\param type_name - OUT: Object type in text
///\return Object type
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - May, 2010
@@ -1131,9 +1142,7 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, char* type_name) const
case H5G_TYPE: HDstrcpy(type_name, "datatype"); break;
case H5G_UNKNOWN:
default:
{
throwException("getObjTypeByIdx", "H5Gget_objtype_by_idx failed");
}
}
return (obj_type);
}
@@ -1143,7 +1152,7 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, char* type_name) const
/// It differs from the above function because it also provides
/// the returned object type in text (H5std_string&)
///\param idx - IN: Transient index of the object
///\param type_name - IN: Object type in text
///\param type_name - OUT: Object type in text
///\return Object type
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - January, 2003
@@ -1159,14 +1168,14 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const
case H5G_TYPE: type_name = H5std_string("datatype"); break;
case H5G_UNKNOWN:
default:
{
throwException("getObjTypeByIdx", "H5Gget_objtype_by_idx failed");
}
}
return (obj_type);
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
#endif /* H5_NO_DEPRECATED_SYMBOLS */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: CommonFG default constructor
///\brief Default constructor.
@@ -1180,6 +1189,7 @@ CommonFG::CommonFG() {}
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
CommonFG::~CommonFG() {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
#ifndef H5_NO_NAMESPACE
}

View File

@@ -14,12 +14,8 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// CommonFG is a protocol class. Its existence is simply to provide the
// common services that are provided by H5File and Group. The file or
// group in the context of this class is referred to as 'location'.
#ifndef _CommonFG_H
#define _CommonFG_H
#ifndef __CommonFG_H
#define __CommonFG_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -29,6 +25,12 @@ class Group;
class H5File;
class ArrayType;
class VarLenType;
/*! \class CommonFG
\brief \a CommonFG is an abstract base class of H5File and H5Group.
It provides common operations of H5File and H5Group.
*/
class H5_DLLCPP CommonFG {
public:
// Creates a new group at this location which can be a file
@@ -49,18 +51,6 @@ class H5_DLLCPP CommonFG {
DataSet openDataSet(const char* name) const;
DataSet openDataSet(const H5std_string& name) const;
// Retrieves comment for the HDF5 object specified by its name.
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;
void removeComment(const H5std_string& name) const;
// Sets the comment for an HDF5 object specified by its name.
void setComment(const char* name, const char* comment) const;
void setComment(const H5std_string& name, const H5std_string& comment) 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;
@@ -74,6 +64,12 @@ class H5_DLLCPP CommonFG {
ssize_t getObjnameByIdx(hsize_t idx, char* name, size_t size) const;
ssize_t getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size) const;
// Retrieves the type of an object in this file or group, given the
// object's name
H5O_type_t childObjType(const H5std_string& objname) const;
H5O_type_t childObjType(const char* objname) const;
H5O_type_t childObjType(hsize_t index, H5_index_t index_type=H5_INDEX_NAME, H5_iter_order_t order=H5_ITER_INC, const char* objname=".") const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Returns the type of an object in this group, given the
// object's index.
@@ -104,8 +100,10 @@ class H5_DLLCPP CommonFG {
void unlink(const H5std_string& name) const;
// Mounts the file 'child' onto this location.
void mount(const char* name, H5File& child, PropList& plist) const;
void mount(const H5std_string& name, H5File& child, PropList& plist) const;
void mount(const char* name, const H5File& child, const PropList& plist) const;
void mount(const char* name, H5File& child, PropList& plist) const; // backward compatibility
void mount(const H5std_string& name, const H5File& child, const PropList& plist) const;
void mount(const H5std_string& name, H5File& child, PropList& plist) const; // backward compatibility
// Unmounts the file named 'name' from this parent location.
void unmount(const char* name) const;
@@ -152,7 +150,6 @@ class H5_DLLCPP CommonFG {
/// object id, i.e. file or group id.
virtual hid_t getLocId() const = 0;
#endif // DOXYGEN_SHOULD_SKIP_THIS
/// For subclasses, H5File and Group, to throw appropriate exception.
virtual void throwException(const H5std_string& func_name, const H5std_string& msg) const = 0;
@@ -162,11 +159,12 @@ class H5_DLLCPP CommonFG {
// Noop destructor.
virtual ~CommonFG();
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of CommonFG declaration
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __CommonFG_H

View File

@@ -123,7 +123,7 @@ H5std_string CompType::getMemberName( unsigned member_num ) const
"H5Tget_member_name returns NULL for member name");
}
H5std_string member_name = H5std_string(member_name_C); // convert C string to string
HDfree(member_name_C); // free the C string
H5free_memory(member_name_C); // free the C string
return( member_name ); // return the member name string
}
@@ -450,6 +450,25 @@ void CompType::pack() const
}
}
//--------------------------------------------------------------------------
// Function: CompType::setSize
///\brief Sets the total size for this compound datatype.
///\param size - IN: Size to set
///\exception H5::DataTypeIException
// Note
// H5Tset_size works on atom datatypes and compound datatypes only
// Programmer Binh-Minh Ribler - 2014
//--------------------------------------------------------------------------
void CompType::setSize(size_t size) const
{
// Call C routine H5Tset_size to set the total size
herr_t ret_value = H5Tset_size(id, size);
if (ret_value < 0)
{
throw DataTypeIException("CompType::setSize", "H5Tset_size failed");
}
}
//--------------------------------------------------------------------------
// Function: CompType destructor
///\brief Properly terminates access to this compound datatype.

View File

@@ -14,24 +14,34 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Class CompType inherits from DataType and provides accesses to a compound
// datatype.
#ifndef _H5CompType_H
#define _H5CompType_H
#ifndef __H5CompType_H
#define __H5CompType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class CompType
\brief CompType is a derivative of a DataType and operates on HDF5
compound datatypes.
*/
class H5_DLLCPP CompType : public DataType {
public:
// Default constructor
CompType();
// Creates a compound datatype using an existing id
CompType( const hid_t existing_id );
// Creates a new compound datatype, given the type's size
CompType( size_t size ); // H5Tcreate
// Gets the compound datatype of the specified dataset
CompType( const DataSet& dataset ); // H5Dget_type
// Copy constructor - makes a copy of original object
CompType( const CompType& original );
// Returns the type class of the specified member of this compound
// datatype. It provides to the user a way of knowing what type
// to create another datatype of the same class
@@ -88,18 +98,12 @@ class H5_DLLCPP CompType : public DataType {
// Recursively removes padding from within this compound datatype.
void pack() const;
// Returns this class name
// Sets the total size for this compound datatype.
void setSize(size_t size) const;
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("CompType"); }
// Default constructor
CompType();
// Creates a compound datatype using an existing id
CompType( const hid_t existing_id );
// Copy constructor - makes a copy of original object
CompType( const CompType& original );
// Noop destructor.
virtual ~CompType();
@@ -111,4 +115,4 @@ class H5_DLLCPP CompType : public DataType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5CompType_H

View File

@@ -14,14 +14,15 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5CPP_H
#define _H5CPP_H
#ifndef __H5Cpp_H
#define __H5Cpp_H
#include "H5Include.h"
#include "H5Exception.h"
#include "H5IdComponent.h"
#include "H5DataSpace.h"
#include "H5PropList.h"
#include "H5Location.h"
#include "H5Object.h"
#include "H5AbstractDs.h"
#include "H5Attribute.h"
@@ -55,4 +56,4 @@
#define HOFFSET(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
#endif
#endif // __H5Cpp_H

View File

@@ -14,8 +14,8 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5CPPDOC_H
#define _H5CPPDOC_H
#ifndef __H5CppDoc_H
#define __H5CppDoc_H
//-------------------------------------------------------------------------
// The following section will be used to generate the 'Mainpage'
@@ -23,39 +23,48 @@
// ------------------------------------------------------------------------
/*! \mainpage notitle
*
* <br />
* \section intro_sec Introduction
*
* The C++ API provides C++ wrappers for the HDF5 C library.
* It is assumed that the user has knowledge of the HDF5 file format
* and its components. If you are not familiar with HDF5 file format,
* and would like to find out more, please refer to the HDF5 documentation
* at http://hdf.ncsa.uiuc.edu/HDF5/doc/H5.intro.html
* The C++ API provides C++ wrappers for the HDF5 C Library.
*
* It is assumed that the user has knowledge of the
* <a href="http://www.hdfgroup.org/HDF5/doc/H5.format.html">
* HDF5 file format</a> and its components.
* For more information on the HDF5 C Library, see the
* <a href="http://www.hdfgroup.org/HDF5/doc/index.html">
* HDF5 Software Documentation</a> page.
*
* Because the HDF5 library maps very well to
* Because the HDF5 C Library maps very well to
* the object oriented design approach, classes in the C++ API can
* closely represent the interfaces of the HDF5 APIs, as followed:
* closely represent the interfaces of the C APIs as follows:
*
* \verbatim
HDF5 C APIs C++ Classes
----------- -----------
Attribute Interface (H5A) Attribute
Datasets Interface (H5D) DataSet
Error Interface (H5E) Exception
File Interface (H5F) H5File
Group Interface (H5G) Group
Identifier Interface (H5I) IdComponent
Property List Interface (H5P) PropList and subclasses
Dataspace Interface (H5S) DataSpace
Datatype Interface (H5T) DataType and subclasses
HDF5 C APIs C++ Classes
----------- -----------
Attribute Interface (H5A) Attribute
Datasets Interface (H5D) DataSet
Error Interface (H5E) Exception
File Interface (H5F) H5File
Group Interface (H5G) Group
Identifier Interface (H5I) IdComponent
Property List Interface (H5P) PropList and subclasses
Dataspace Interface (H5S) DataSpace
Datatype Interface (H5T) DataType and subclasses
\endverbatim
* <br />
* \section install_sec Installation
*
* Please refer to the file release_docs/INSTALL_Windows.txt
* under the top directory for information about installing, building,
* The HDF5 C++ API is included with the HDF5 source code and can
* be obtained from
* <a href="http://www.hdfgroup.org/HDF5/release/obtainsrc.html">
* http://www.hdfgroup.org/HDF5/release/obtainsrc.html</a>.
*
* Please refer to the release_docs/INSTALL file under the top directory
* of the HDF5 source code for information about installing, building,
* and testing the C++ API.
*
*
* <br />
*/
/// This example shows how to create datasets.
@@ -88,4 +97,4 @@
/// This example shows how to work with groups.
///\example h5group.cpp
#endif
#endif // __H5CppDoc_H

View File

@@ -52,7 +52,7 @@ namespace H5 {
///\brief Default constructor: creates a stub DataSet.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet() : AbstractDs(), H5Object(), id(0) {}
DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {}
//--------------------------------------------------------------------------
// Function: DataSet overloaded constructor
@@ -79,75 +79,44 @@ DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(origi
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 dataset, creates a
///\brief Given a reference, ref, to an hdf5 location, creates a
/// DataSet object
///\param obj - IN: Dataset reference object is in or location of
///\param loc - 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
///\param plist - IN: Property list - default to PropList::DEFAULT
///\exception H5::DataSetIException
///\par Description
/// \c obj can be DataSet, Group, H5File, or named DataType, that
/// \c loc 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(H5Object& obj, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : AbstractDs(), H5Object(), id(H5I_INVALID_HID)
{
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by object",
deref_error.getDetailMsg());
}
id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereferenced");
}
//--------------------------------------------------------------------------
// 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
///\brief Given a reference, ref, to an hdf5 attribute, 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
///\param plist - IN: Property list - default to PropList::DEFAULT
///\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()
DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : AbstractDs(), H5Object(), id(H5I_INVALID_HID)
{
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by attribute",
deref_error.getDetailMsg());
}
id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference");
}
//--------------------------------------------------------------------------
@@ -238,7 +207,8 @@ size_t DataSet::getInMemDataSize() const
throw DataSetIException(func, "H5Dget_type failed");
}
// Get the data type's size
// Get the data type's size by first getting its native type then getting
// the native type's size.
hid_t native_type = H5Tget_native_type(mem_type_id, H5T_DIR_DEFAULT);
if (native_type < 0)
{
@@ -250,8 +220,19 @@ size_t DataSet::getInMemDataSize() const
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
// Close the native type and the datatype of this dataset.
if (H5Tclose(native_type) < 0)
{
throw DataSetIException(func, "H5Tclose(native_type) failed");
}
if (H5Tclose(mem_type_id) < 0)
{
throw DataSetIException(func, "H5Tclose(mem_type_id) failed");
}
// Get number of elements of the dataset by first getting its dataspace,
// then getting the number of elements in the dataspace
hid_t space_id = H5Dget_space(id);
if (space_id < 0)
{
throw DataSetIException(func, "H5Dget_space failed");
@@ -262,6 +243,12 @@ size_t DataSet::getInMemDataSize() const
throw DataSetIException(func, "H5Sget_simple_extent_npoints failed");
}
// Close the dataspace
if (H5Sclose(space_id) < 0)
{
throw DataSetIException(func, "H5Sclose failed");
}
// Calculate and return the size of the data
size_t data_size = type_size * num_elements;
return(data_size);
@@ -309,7 +296,7 @@ void DataSet::getSpaceStatus(H5D_space_status_t& status) const
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hsize_t DataSet::getVlenBufSize( DataType& type, DataSpace& space ) const
hsize_t DataSet::getVlenBufSize(const DataType& type, const DataSpace& space ) const
{
// Obtain identifiers for C API
hid_t type_id = type.getId();
@@ -325,6 +312,20 @@ hsize_t DataSet::getVlenBufSize( DataType& type, DataSpace& space ) const
return( size );
}
//--------------------------------------------------------------------------
// Function: DataSet::getVlenBufSize
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\return Amount of storage
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hsize_t DataSet::getVlenBufSize( DataType& type, DataSpace& space ) const
{
return(getVlenBufSize((const DataType)type, (const DataSpace)space));
}
//--------------------------------------------------------------------------
// Function: DataSet::vlenReclaim
///\brief Reclaims VL datatype memory buffers.
@@ -411,8 +412,8 @@ 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.
///\param buf - IN: Buffer for read data
/// It takes a reference to a \c H5std_string for the buffer.
///\param strg - IN: Buffer for read data string
///\param mem_type - IN: Memory datatype
///\param mem_space - IN: Memory dataspace
///\param file_space - IN: Dataset's dataspace in the file
@@ -487,7 +488,7 @@ 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
@@ -571,7 +572,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
@@ -590,9 +591,11 @@ void DataSet::extend( const hsize_t* size ) const
///\param buf_type - IN: Datatype of the elements in buffer
///\param space - IN: Dataspace describing memory buffer & containing selection to use
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
// Programmer Binh-Minh Ribler - 2014
// Modification
// Used the non-const version.
//--------------------------------------------------------------------------
void DataSet::fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace& space)
void DataSet::fillMemBuf(const void *fill, const DataType& fill_type, void *buf, const DataType& buf_type, const DataSpace& space) const
{
hid_t fill_type_id = fill_type.getId();
hid_t buf_type_id = buf_type.getId();
@@ -606,16 +609,32 @@ void DataSet::fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataT
//--------------------------------------------------------------------------
// Function: DataSet::fillMemBuf
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it only takes the
/// the last three arguments.
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param fill - IN: Pointer to fill value to use - default NULL
///\param fill_type - IN: Datatype of the fill value
///\param buf - IN/OUT: Memory buffer to fill selection within
///\param buf_type - IN: Datatype of the elements in buffer
///\param space - IN: Dataspace describing memory buffer & containing selection to use
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
void DataSet::fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace& space)
{
fillMemBuf(fill, (const DataType)fill_type, buf, (const DataType)buf_type, (const DataSpace)space);
}
//--------------------------------------------------------------------------
// Function: DataSet::fillMemBuf
///\brief Fills a selection in memory with 0.
///\param buf - IN/OUT: Memory buffer to fill selection within
///\param buf_type - IN: Datatype of the elements in buffer
///\param space - IN: Dataspace describing memory buffer & containing selection to use
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSet::fillMemBuf(void *buf, const DataType& buf_type, const DataSpace& space) const
{
hid_t buf_type_id = buf_type.getId();
hid_t space_id = space.getId();
@@ -626,57 +645,26 @@ void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: DataSet::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
///\param ref - IN: Reference to query
///\return An object type, which can be one of the following:
/// \li \c H5G_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
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - May, 2004
// Function: DataSet::fillMemBuf
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param buf - IN/OUT: Memory buffer to fill selection within
///\param buf_type - IN: Datatype of the elements in buffer
///\param space - IN: Dataspace describing memory buffer & containing selection to use
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5G_obj_t DataSet::getObjType(void *ref, H5R_type_t ref_type) const
void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
{
try {
return(p_get_obj_type(ref, ref_type));
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::getObjType", E.getDetailMsg());
}
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: DataSet::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.
///\param ref_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
//--------------------------------------------------------------------------
DataSpace DataSet::getRegion(void *ref, H5R_type_t ref_type) const
{
try {
DataSpace dataspace(p_get_region(ref, ref_type));
return(dataspace);
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::getRegion", E.getDetailMsg());
}
fillMemBuf(buf, (const DataType)buf_type, (const DataSpace)space);
}
//--------------------------------------------------------------------------
// Function: DataSet::getId
// Purpose: Get the id of this attribute
///\brief Get the id of this dataset.
///\return DataSet identifier
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDs and Attribute are moved out of H5Object. In
@@ -691,7 +679,7 @@ hid_t DataSet::getId() const
//--------------------------------------------------------------------------
// Function: DataSet::p_read_fixed_len (private)
// brief Reads a fixed length \a H5std_string from an dataset.
// brief Reads a fixed length \a H5std_string from a dataset.
// param mem_type - IN: DataSet datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::DataSetIException
@@ -705,14 +693,14 @@ void DataSet::p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id
// Only allocate for fixed-len string.
// Get the size of the dataset's data
size_t attr_size = getInMemDataSize();
size_t data_size = getInMemDataSize();
// If there is data, allocate buffer and read it.
if (attr_size > 0)
if (data_size > 0)
{
char *strg_C = NULL;
char *strg_C = new char [data_size+1];
HDmemset(strg_C, 0, data_size+1); // clear buffer
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 )
@@ -756,9 +744,10 @@ void DataSet::p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space
HDfree(strg_C);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: DataSet::p_setId (private)
///\brief Sets the identifier of this object to a new value.
// Function: DataSet::p_setId (protected)
///\brief Sets the identifier of this dataset to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
@@ -779,10 +768,8 @@ void DataSet::p_setId(const hid_t new_id)
}
// reset object's id to the given id
id = new_id;
// increment the reference counter of the new id
//incRefCount();
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: DataSet::close
@@ -801,7 +788,7 @@ void DataSet::close()
throw DataSetIException("DataSet::close", "H5Dclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}

View File

@@ -14,15 +14,20 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Class DataSet inherits from AbstractDs and provides accesses to a dataset.
#ifndef _H5DataSet_H
#define _H5DataSet_H
#ifndef __H5DataSet_H
#define __H5DataSet_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class DataSet
\brief Class DataSet operates on HDF5 datasets.
An datasets has many characteristics similar to an attribute, thus both
Attribute and DataSet are derivatives of AbstractDs. DataSet also
inherits from H5Object because a dataset is an HDF5 object.
*/
class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
public:
// Close this dataset.
@@ -32,9 +37,12 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
void extend( const hsize_t* size ) const;
// Fills a selection in memory with a value
void fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace& space);
void fillMemBuf(const void *fill, const DataType& fill_type, void *buf, const DataType& buf_type, const DataSpace& space) const;
void fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace& space); // kept for backward compatibility
// Fills a selection in memory with zero
void fillMemBuf(void *buf, DataType& buf_type, DataSpace& space);
void fillMemBuf(void *buf, const DataType& buf_type, const DataSpace& space) const;
void fillMemBuf(void *buf, DataType& buf_type, DataSpace& space); // kept for backward compatibility
// Gets the creation property list of this dataset.
DSetCreatPropList getCreatePlist() const;
@@ -55,7 +63,8 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
virtual size_t getInMemDataSize() const;
// Returns the number of bytes required to store VL data.
hsize_t getVlenBufSize( DataType& type, DataSpace& space ) const;
hsize_t getVlenBufSize(const DataType& type, const DataSpace& space ) const;
hsize_t getVlenBufSize(DataType& type, DataSpace& space) const; // kept for backward compatibility
// Reclaims VL datatype memory buffers.
static void vlenReclaim(const DataType& type, const DataSpace& space, const DSetMemXferPropList& xfer_plist, void* buf );
@@ -76,21 +85,12 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
// Iterates the selected elements in the specified dataspace - not implemented in C++ style yet
int iterateElems( void* buf, const DataType& type, const DataSpace& space, H5D_operator_t op, void* op_data = NULL );
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Returns this class name
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("DataSet"); }
// Creates a dataset by way of dereference.
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);
DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
// Default constructor.
DataSet();
@@ -107,6 +107,12 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
// Destructor: properly terminates access to this dataset.
virtual ~DataSet();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Sets the dataset id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 dataset id
@@ -119,12 +125,8 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
// 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);
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5DataSet_H

View File

@@ -279,7 +279,7 @@ H5S_class_t DataSpace::getSimpleExtentType () const
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::extentCopy ( DataSpace& dest_space ) const
void DataSpace::extentCopy (const DataSpace& dest_space) const
{
hid_t dest_space_id = dest_space.getId();
herr_t ret_value = H5Sextent_copy( dest_space_id, id );
@@ -289,6 +289,20 @@ void DataSpace::extentCopy ( DataSpace& dest_space ) const
}
}
//--------------------------------------------------------------------------
// Function: DataSpace::extentCopy
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const. This wrapper will be removed in future release.
///\param dest_space - IN: Dataspace to copy from
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::extentCopy( DataSpace& dest_space ) const
{
extentCopy((const DataSpace)dest_space);
}
//--------------------------------------------------------------------------
// Function: DataSpace::setExtentSimple
///\brief Sets or resets the size of an existing dataspace.
@@ -408,7 +422,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
@@ -432,7 +446,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
@@ -446,7 +460,7 @@ void DataSpace::getSelectBounds ( hsize_t* start, hsize_t* end ) const
}
//--------------------------------------------------------------------------
// Function: DataSpace::H5Sselect_elements
// Function: DataSpace::selectElements
///\brief Selects array elements to be included in the selection for
/// this dataspace.
///\param op - IN: Operator specifying how the new selection is to be
@@ -458,7 +472,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
@@ -540,7 +554,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
@@ -556,7 +570,8 @@ void DataSpace::selectHyperslab( H5S_seloper_t op, const hsize_t *count, const h
//--------------------------------------------------------------------------
// Function: DataSpace::getId
// Purpose: Get the id of this attribute
///\brief Get the id of this dataspace
///\return Dataspace identifier
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
@@ -570,6 +585,7 @@ hid_t DataSpace::getId() const
return(id);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: DataSpace::p_setId
///\brief Sets the identifier of this object to a new value.
@@ -594,6 +610,7 @@ void DataSpace::p_setId(const hid_t new_id)
// reset object's id to the given id
id = new_id;
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: DataSpace::close
@@ -613,7 +630,7 @@ void DataSpace::close()
throw DataSpaceIException("DataSpace::close", "H5Sclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}

View File

@@ -14,13 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5DataSpace_H
#define _H5DataSpace_H
#ifndef __H5DataSpace_H
#define __H5DataSpace_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! Class DataSpace operates on HDF5 dataspaces.
class H5_DLLCPP DataSpace : public IdComponent {
public:
// Default DataSpace objects
@@ -32,6 +33,12 @@ class H5_DLLCPP DataSpace : public IdComponent {
// Creates a simple dataspace
DataSpace(int rank, const hsize_t * dims, const hsize_t * maxdims = NULL);
// Creates a DataSpace object using an existing dataspace id.
DataSpace(const hid_t space_id);
// Copy constructor: makes a copy of the original DataSpace object.
DataSpace(const DataSpace& original);
// Assignment operator
DataSpace& operator=( const DataSpace& rhs );
@@ -42,7 +49,9 @@ class H5_DLLCPP DataSpace : public IdComponent {
void copy(const DataSpace& like_space);
// Copies the extent of this dataspace.
void extentCopy( DataSpace& dest_space ) const;
void extentCopy(const DataSpace& dest_space) const;
// Kept for backward compatibility only.
void extentCopy(DataSpace& dest_space) const;
// Gets the bounding box containing the current selection.
void getSelectBounds( hsize_t* start, hsize_t* end ) const;
@@ -103,29 +112,25 @@ 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.
DataSpace(const hid_t space_id);
// 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:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Sets the dataspace id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 dataspace id
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5DataSpace_H

View File

@@ -48,20 +48,25 @@ namespace H5 {
#endif // H5_NO_STD
#endif
//--------------------------------------------------------------------------
// Function: DataType default constructor
///\brief Default constructor: Creates a stub datatype
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType() : H5Object(), id(H5I_INVALID_HID) {}
//--------------------------------------------------------------------------
// 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;
// when a default datatype is created, this argument is set
// to true so H5Tclose will not be called on it later. - need
// a reassessment after changing to the new ref counting mech.
// - BMR 5/2004
// its id.
// Programmer Binh-Minh Ribler - 2000
// Modification
// Dec, 2005
// Removed second argument, "predefined", after changing to the
// new ref counting mechanism that relies on C's ref counting.
//--------------------------------------------------------------------------
DataType::DataType(const hid_t existing_id) : H5Object()
{
@@ -90,49 +95,19 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object()
// Function: DataType overload constructor - dereference
///\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
///\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(H5Object& obj, const void* ref, H5R_type_t ref_type) : H5Object()
{
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 loc - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\param plist - IN: Property list - default to PropList::DEFAULT
///\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()
DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID)
{
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an H5File",
deref_error.getDetailMsg());
}
id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference");
}
//--------------------------------------------------------------------------
@@ -142,29 +117,18 @@ DataType::DataType(H5File& h5file, const void* ref, H5R_type_t ref_type) : H5Obj
///\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
///\param plist - IN: Property list - default to PropList::DEFAULT
///\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()
DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID)
{
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an Attribute",
deref_error.getDetailMsg());
}
id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference");
}
//--------------------------------------------------------------------------
// Function: DataType default constructor
///\brief Default constructor: Creates a stub datatype
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType() : H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: DataType copy constructor
///\brief Copy constructor: makes a copy of the original DataType object.
@@ -210,7 +174,7 @@ void DataType::copy( const DataType& like_type )
///\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)
@@ -297,38 +261,27 @@ void DataType::p_commit(hid_t loc_id, const char* name)
// Function: DataType::commit
///\brief Commits a transient datatype to a file, creating a new
/// named datatype
///\param loc - IN: A file
///\param name - IN: Name of the datatype
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::commit(H5File& loc, const char* name)
{
p_commit(loc.getLocId(), name);
}
//--------------------------------------------------------------------------
// Function: DataType::commit
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in the type of the
/// argument \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::commit(H5File& loc, const H5std_string& name)
{
p_commit(loc.getLocId(), name.c_str());
}
//--------------------------------------------------------------------------
// Function: DataType::commit
///\brief Commits a transient datatype to a file, creating a new
/// named datatype
///\param loc - IN: Either a group, dataset, named datatype, or attribute.
///\param loc - IN: A location (file, dataset, datatype, or group)
///\param name - IN: Name of the datatype
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - Jan, 2007
//--------------------------------------------------------------------------
void DataType::commit(H5Object& loc, const char* name)
void DataType::commit(const H5Location& loc, const char* name)
{
p_commit(loc.getId(), name);
}
//--------------------------------------------------------------------------
// Function: DataType::commit
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param loc - IN: A location (file, dataset, datatype, or group)
///\param name - IN: Name of the datatype
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - Jan, 2007
//--------------------------------------------------------------------------
void DataType::commit(H5Location& loc, const char* name)
{
p_commit(loc.getId(), name);
}
@@ -340,7 +293,22 @@ void DataType::commit(H5Object& loc, const char* name)
/// argument \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::commit(H5Object& loc, const H5std_string& name)
void DataType::commit(const H5Location& loc, const H5std_string& name)
{
p_commit(loc.getId(), name.c_str());
}
//--------------------------------------------------------------------------
// Function: DataType::commit
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param loc - IN: A location (file, dataset, datatype, or group)
///\param name - IN: Name of the datatype
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - Jan, 2007
//--------------------------------------------------------------------------
void DataType::commit(H5Location& loc, const H5std_string& name)
{
p_commit(loc.getId(), name.c_str());
}
@@ -397,7 +365,7 @@ H5T_conv_t DataType::find( const DataType& dest, H5T_cdata_t **pcdata ) const
///\param buf - IN/OUT: Array containing pre- and post-conversion
/// values
///\param background - IN: Optional backgroud buffer
///\param plist - IN: Dataset transfer property list
///\param plist - IN: Property list - default to PropList::DEFAULT
///\return Pointer to a suitable conversion function
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
@@ -517,7 +485,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
@@ -627,7 +595,7 @@ H5std_string DataType::getTag() const
if( tag_Cstr != NULL )
{
H5std_string tag = H5std_string(tag_Cstr); // C string to string object
HDfree(tag_Cstr); // free the C string
H5free_memory(tag_Cstr); // free the C string
return (tag); // return the tag
}
else
@@ -681,54 +649,10 @@ bool DataType::isVariableStr() const
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: DataType::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference to query
///\return Object type, which can be one of the following:
/// \li \c H5G_LINK Object is a symbolic link.
/// \li \c H5G_GROUP Object is a group.
/// \li \c H5G_DATASET Object is a dataset.
/// \li \c H5G_TYPE Object is a named datatype
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t DataType::getObjType(void *ref, H5R_type_t ref_type) const
{
try {
return(p_get_obj_type(ref, ref_type));
}
catch (IdComponentException E) {
throw DataTypeIException(inMemFunc("getObjType"), E.getDetailMsg());
}
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: DataType::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.
///\param ref - IN: Reference to get region of
///\param ref_type - IN: Type of reference to get region of - default
///\return DataSpace instance
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
DataSpace DataType::getRegion(void *ref, H5R_type_t ref_type) const
{
try {
DataSpace dataspace(p_get_region(ref, ref_type));
return(dataspace);
}
catch (IdComponentException E) {
throw DataTypeIException(inMemFunc("getRegion"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType::getId
// Purpose: Get the id of this attribute
///\brief Get the id of this datatype
///\return Datatype identifier
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
@@ -742,6 +666,7 @@ hid_t DataType::getId() const
return(id);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: DataType::p_setId
///\brief Sets the identifier of this object to a new value.
@@ -766,6 +691,7 @@ void DataType::p_setId(const hid_t new_id)
// reset object's id to the given id
id = new_id;
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: DataType::close
@@ -784,7 +710,7 @@ void DataType::close()
throw DataTypeIException(inMemFunc("close"), "H5Tclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}
@@ -794,17 +720,33 @@ void DataType::close()
// Programmer Binh-Minh Ribler - 2000
// Modification
// - Replaced resetIdComponent() with decRefCount() to use C
// library ID reference counting mechanism - BMR, Jun 1, 2004
// library ID reference counting mechanism - BMR, Jun 1, 2004
// - Replaced decRefCount with close() to let the C library
// handle the reference counting - BMR, Jun 1, 2006
// handle the reference counting - BMR, Jun 1, 2006
// - Added the use of H5CPP_EXITED to terminate the HDF5 library
// and elimiate previous memory leaks. See comments in the
// header file "H5PredType.h" for details. - BMR, Mar 30, 2012
//--------------------------------------------------------------------------
DataType::~DataType()
{
try {
close();
} catch (Exception close_error) {
cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
try
{
/* If this is the object AtExit, terminate the HDF5 library. This is
to eliminate memory leaks due to the library being re-initiated
(after the program has ended) and not re-terminated. */
if (id == H5CPP_EXITED)
{
herr_t ret_value = H5close();
if (ret_value == FAIL)
throw DataTypeIException(inMemFunc("~DataType - "), "H5close failed");
}
// Close the HDF5 datatype
else
close();
}
catch (Exception close_error) {
cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
}
}
#ifndef H5_NO_NAMESPACE
} // end namespace

View File

@@ -14,13 +14,20 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5DataType_H
#define _H5DataType_H
#ifndef __H5DataType_H
#define __H5DataType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class DataType
\brief Class DataType provides generic operations on HDF5 datatypes.
DataType inherits from H5Object because a named datatype is an HDF5
object and is a base class of ArrayType, AtomType, CompType, EnumType,
and VarLenType.
*/
class H5_DLLCPP DataType : public H5Object {
public:
// Creates a datatype given its class and size
@@ -30,9 +37,8 @@ class H5_DLLCPP DataType : public H5Object {
DataType( const DataType& original );
// Creates a datatype by way of dereference.
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);
DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
// Closes this datatype.
virtual void close();
@@ -48,10 +54,12 @@ class H5_DLLCPP DataType : public H5Object {
// Commits a transient datatype to a file; this datatype becomes
// a named datatype which can be accessed from the location.
void commit( H5File& loc, const char* name);
void commit( H5File& loc, const H5std_string& name);
void commit( H5Object& loc, const char* name);
void commit( H5Object& loc, const H5std_string& name);
void commit(const H5Location& loc, const char* name);
void commit(const H5Location& loc, const H5std_string& name);
// These two overloaded functions are kept for backward compatibility
// only; they missed the const.
void commit(H5Location& loc, const char* name);
void commit(H5Location& loc, const H5std_string& name);
// Determines whether this datatype is a named datatype or
// a transient datatype.
@@ -101,15 +109,7 @@ class H5_DLLCPP DataType : public H5Object {
// Checks whether this datatype is a variable-length string.
bool isVariableStr() const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Returns this class name
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("DataType"); }
// Creates a copy of an existing DataType using its id
@@ -125,10 +125,12 @@ class H5_DLLCPP DataType : public H5Object {
virtual ~DataType();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
hid_t id; // HDF5 datatype id
// Sets the datatype id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
void p_commit(hid_t loc_id, const char* name);
@@ -136,4 +138,4 @@ class H5_DLLCPP DataType : public H5Object {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5DataType_H

View File

@@ -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
@@ -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
@@ -349,13 +349,16 @@ int DSetCreatPropList::getNfilters() const
///\param cd_nelmts - IN/OUT: Number of elements in \a cd_values /Number
/// of values defined by the filter
///\param cd_values - OUT: Array to hold the data; allocated by the user
///\param namelen - OUT: Length of \a name
///\param namelen - IN: Length of \a name
///\param name - OUT: Name of the filter
///\param filter_config - OUT: Flags indicating whether filter can encode/decode
///\return Filter id
///\exception H5::PropListIException
///\par Description
/// Failure occurs when \a filter_number is out of range.
// Note: the first argument was mistakenly typed as int instead
// of unsigned int, but for backward compatibility, it cannot be
// changed. -BMR (2014/04/15)
//--------------------------------------------------------------------------
H5Z_filter_t DSetCreatPropList::getFilter(int filter_number,
unsigned int &flags, size_t &cd_nelmts, unsigned int* cd_values,
@@ -459,7 +462,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
@@ -635,8 +638,8 @@ int DSetCreatPropList::getExternalCount() const
///\param idx - IN: Index of the external file, ranges [0-(N-1)] and
/// returned by getExternalCount()
///\param name_size - IN: Maximum length of \a name
///\param name - IN: Name of the external file
///\param offset - IN: Location to return an offset value
///\param name - OUT: Name of the external file
///\param offset - OUT: Location to return an offset value
///\param size - OUT: Location to return the size of the external file data
///\exception H5::PropListIException
///\par Description

View File

@@ -14,13 +14,17 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5DSCreatPropList_H
#define _H5DSCreatPropList_H
#ifndef __H5DSCreatPropList_H
#define __H5DSCreatPropList_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class DSetCreatPropList
\brief Class DSetCreatPropList represents the dataset creation property
list.
*/
class H5_DLLCPP DSetCreatPropList : public PropList {
public:
// Default dataset creation property list.
@@ -107,7 +111,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.
@@ -123,4 +127,4 @@ class H5_DLLCPP DSetCreatPropList : public PropList {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5DSCreatPropList_H

View File

@@ -20,6 +20,17 @@
#include "H5IdComponent.h"
#include "H5PropList.h"
#include "H5DxferProp.h"
#include "H5private.h" // for HDmemset
#include <iostream>
#ifndef H5_NO_NAMESPACE
#ifndef H5_NO_STD
using std::cerr;
using std::endl;
#endif // H5_NO_STD
#endif
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -38,6 +49,17 @@ const DSetMemXferPropList DSetMemXferPropList::DEFAULT;
//--------------------------------------------------------------------------
DSetMemXferPropList::DSetMemXferPropList() : PropList(H5P_DATASET_XFER) {}
//--------------------------------------------------------------------------
// Function DSetMemXferPropList constructor
///\brief Creates a dataset transfer property list with transform
/// expression.
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DSetMemXferPropList::DSetMemXferPropList(const char* exp) : PropList(H5P_DATASET_XFER)
{
setDataTransform(exp);
}
//--------------------------------------------------------------------------
// Function DSetMemXferPropList copy constructor
///\brief Copy constructor: makes a copy of the original
@@ -175,7 +197,110 @@ void DSetMemXferPropList::getBtreeRatios( double& left, double& middle, double&
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::setTypeConvCB
// Function: DSetMemXferPropList::setDataTransform
///\brief Sets data transform expression.
///\param expression - IN: null-terminated data transform expression (char*)
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
void DSetMemXferPropList::setDataTransform(const char* expression) const
{
herr_t ret_value = H5Pset_data_transform( id, expression);
if( ret_value < 0 )
{
throw PropListIException("DSetMemXferPropList::setDataTransform",
"H5Pset_data_transform failed");
}
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::setDataTransform
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c H5std_string for the expression.
///\param expression - IN: H5std_string data transform expression
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
void DSetMemXferPropList::setDataTransform(const H5std_string& expression) const
{
setDataTransform(expression.c_str());
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::getDataTransform
///\brief Sets data transform expression.
///\param exp - OUT: buffer for data transform expression (char*)
///\param buf_size - IN: size of buffer for expression, including the
/// null terminator
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
ssize_t DSetMemXferPropList::getDataTransform(char* exp, size_t buf_size) const
{
// H5Pget_data_transform will get buf_size characters of the expression
// including the null terminator
ssize_t exp_len;
exp_len = H5Pget_data_transform(id, exp, buf_size);
// H5Pget_data_transform returns a negative value, raise an exception
if (exp_len < 0)
{
throw PropListIException("DSetMemXferPropList::getDataTransform",
"H5Pget_data_transform failed");
}
// H5Pget_data_transform will put a null terminator at the end of the
// expression or at [buf_size-1] if the expression is at least the size
// of the buffer.
// Return the expression length, which might be different from buf_size
return(exp_len);
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::getDataTransform
///\brief This is an overloaded member function, provided for convenience.
/// It takes no parameter and returns a \c H5std_string for the expression.
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
H5std_string DSetMemXferPropList::getDataTransform() const
{
// Initialize string to "", so that if there is no expression, the returned
// string will be empty
H5std_string expression("");
// Preliminary call to get the expression's length
ssize_t exp_len = H5Pget_data_transform(id, NULL, (size_t)0);
// If H5Pget_data_transform returns a negative value, raise an exception
if (exp_len < 0)
{
throw PropListIException("DSetMemXferPropList::getDataTransform", "H5Pget_data_transform failed");
}
// If expression exists, calls C routine again to get it
else if (exp_len > 0)
{
// Temporary buffer for char* expression
char* exp_C = new char[exp_len+1];
HDmemset(exp_C, 0, exp_len+1); // clear buffer
// Used overloaded function
exp_len = getDataTransform(exp_C, exp_len+1);
// Convert the C expression to return
expression = exp_C;
// Clean up resource
delete []exp_C;
}
// Return the string expression
return(expression);
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::getTypeConvCB
///\brief Sets an exception handling callback for datatype conversion
/// for a dataset transfer property list.
///\param op - IN: User's function
@@ -265,43 +390,6 @@ void DSetMemXferPropList::getVlenMemManager( H5MM_allocate_t& alloc_func, void**
}
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::setMulti
///\brief Sets the data transfer property list for the multi-file driver.
///\param memb_dxpl - OUT: Array of data access property lists
///\exception H5::PropListIException
///\par Description
/// This function can only be used after the member map has
/// been set with FileAccPropList::setMulti (not done - BMR.)
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void DSetMemXferPropList::setMulti(const hid_t *memb_dxpl)
{
herr_t ret_value = H5Pset_dxpl_multi(id, memb_dxpl);
if (ret_value < 0)
{
throw PropListIException("DSetMemXferPropList::setMulti",
"H5Pset_dxpl_multi failed");
}
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::getMulti
///\brief Returns multi-file data transfer property list information.
///\param memb_dxpl - OUT: Array of data access property lists
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void DSetMemXferPropList::getMulti(hid_t *memb_dxpl)
{
herr_t ret_value = H5Pget_dxpl_multi(id, memb_dxpl);
if (ret_value < 0)
{
throw PropListIException("DSetMemXferPropList::getMulti",
"H5Pget_dxpl_multi failed");
}
}
//--------------------------------------------------------------------------
// Function: DSetMemXferPropList::setSmallDataBlockSize
///\brief Sets the size of a contiguous block reserved for small data.
@@ -309,7 +397,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 +437,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

@@ -14,13 +14,17 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5DSetMemXferPropList_H
#define _H5DSetMemXferPropList_H
#ifndef __H5DSetMemXferPropList_H
#define __H5DSetMemXferPropList_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class DSetMemXferPropList
\brief Class DSetMemXferPropList represents the dataset memory and
transfer property list.
*/
class H5_DLLCPP DSetMemXferPropList : public PropList {
public:
static const DSetMemXferPropList DEFAULT;
@@ -28,6 +32,9 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
// Creates a dataset memory and transfer property list.
DSetMemXferPropList();
// Creates a dataset transform property list.
DSetMemXferPropList(const char* expression);
// Sets type conversion and background buffers.
void setBuffer( size_t size, void* tconv, void* bkg ) const;
@@ -40,6 +47,14 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
// Gets B-tree split ratios for a dataset transfer property list.
void getBtreeRatios( double& left, double& middle, double& right ) const;
// Sets data transform expression.
void setDataTransform(const char* expression) const;
void setDataTransform(const H5std_string& expression) const;
// Gets data transform expression.
ssize_t getDataTransform(char* exp, size_t buf_size=0) const;
H5std_string getDataTransform() const;
// Sets the dataset transfer property list status to TRUE or FALSE.
void setPreserve( bool status ) const;
@@ -66,12 +81,6 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
void getVlenMemManager( H5MM_allocate_t& alloc, void** alloc_info,
H5MM_free_t& free, void** free_info ) const;
// Sets the data transfer property list for the multi-file driver.
void setMulti(const hid_t *memb_dxpl);
// Returns multi-file data transfer property list information.
void getMulti(hid_t *memb_dxpl);
// Sets the size of a contiguous block reserved for small data.
void setSmallDataBlockSize(hsize_t size);
@@ -92,7 +101,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.
@@ -108,4 +117,5 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5DSetMemXferPropList_H

View File

@@ -30,6 +30,7 @@
#include "H5AtomType.h"
#include "H5IntType.h"
#include "H5EnumType.h"
#include "H5private.h" // for HDmemset
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -150,6 +151,7 @@ void EnumType::insert( const H5std_string& name, void *value ) const
H5std_string EnumType::nameOf( void *value, size_t size ) const
{
char* name_C = new char[size+1]; // temporary C-string for C API
HDmemset(name_C, 0, size+1); // clear buffer
// Calls C routine H5Tenum_nameof to get the name of the specified enum type
herr_t ret_value = H5Tenum_nameof( id, value, name_C, size );
@@ -157,10 +159,11 @@ H5std_string EnumType::nameOf( void *value, size_t size ) const
// If H5Tenum_nameof returns a negative value, raise an exception,
if( ret_value < 0 )
{
delete []name_C;
throw DataTypeIException("EnumType::nameOf", "H5Tenum_nameof failed");
}
// otherwise, create the string to hold the datatype name and return it
H5std_string name = H5std_string(name_C);
H5std_string name(name_C);
delete []name_C;
return( name );
}

View File

@@ -14,13 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5EnumType_H
#define _H5EnumType_H
#ifndef __H5EnumType_H
#define __H5EnumType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! Class EnumType operates on HDF5 enum datatypes.
class H5_DLLCPP EnumType : public DataType {
public:
@@ -57,7 +58,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
@@ -74,4 +75,4 @@ class H5_DLLCPP EnumType : public DataType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5EnumType_H

View File

@@ -80,8 +80,11 @@ H5std_string Exception::getMajorString( hid_t err_major ) const
// Check for failure again
if( mesg_size < 0 )
{
delete []mesg_C;
throw IdComponentException("Exception::getMajorString",
"H5Eget_msg failed");
}
// Convert the C error description and return
H5std_string major_str(mesg_C);
@@ -116,8 +119,11 @@ H5std_string Exception::getMinorString( hid_t err_minor ) const
// Check for failure again
if( mesg_size < 0 )
{
delete []mesg_C;
throw IdComponentException("Exception::getMinorString",
"H5Eget_msg failed");
}
// Convert the C error description and return
H5std_string minor_str(mesg_C);
@@ -295,16 +301,33 @@ const char* Exception::getCFuncName() const
}
//--------------------------------------------------------------------------
// Function: Exception::printError
// Function: Exception::printErrorStack (static)
///\brief Prints the error stack in a default manner.
///\param stream - IN: File pointer
///\param stream - IN: File pointer, default to stderr
///\param err_stack - IN: Error stack ID, default to H5E_DEFAULT(0)
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void Exception::printError( FILE* stream ) const
void Exception::printErrorStack(FILE* stream, hid_t err_stack)
{
herr_t ret_value = H5Eprint2( H5E_DEFAULT, stream ); // print to stderr
herr_t ret_value = H5Eprint2(err_stack, stream);
if( ret_value < 0 )
throw Exception( "Exception::printError", "H5Eprint failed" );
throw Exception( "Printing error stack", "H5Eprint2 failed" );
}
//--------------------------------------------------------------------------
// Function: Exception::printError
///\brief Prints the error stack in a default manner. This member
/// function is replaced by the static function printErrorStack
/// and will be removed from the next major release.
///\param stream - IN: File pointer
// Programmer Binh-Minh Ribler - 2000
// Description:
// This function can be removed in next major release.
// -BMR, 2014/04/24
//--------------------------------------------------------------------------
void Exception::printError(FILE* stream) const
{
Exception::printErrorStack(stream, H5E_DEFAULT);
}
//--------------------------------------------------------------------------
@@ -312,7 +335,7 @@ void Exception::printError( FILE* stream ) const
///\brief Noop destructor
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Exception::~Exception() {}
Exception::~Exception() throw() {}
//--------------------------------------------------------------------------
// Subclass: FileIException
@@ -335,7 +358,7 @@ FileIException::FileIException(const H5std_string& func_name, const H5std_string
// Function: FileIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
FileIException::~FileIException() {}
FileIException::~FileIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: GroupIException
@@ -358,7 +381,7 @@ GroupIException::GroupIException(const H5std_string& func_name, const H5std_stri
// Function: GroupIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
GroupIException::~GroupIException() {}
GroupIException::~GroupIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: DataSpaceIException
@@ -381,7 +404,7 @@ DataSpaceIException::DataSpaceIException(const H5std_string& func_name, const H5
// Function: DataSpaceIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
DataSpaceIException::~DataSpaceIException() {}
DataSpaceIException::~DataSpaceIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: DataTypeIException
@@ -404,7 +427,7 @@ DataTypeIException::DataTypeIException(const H5std_string& func_name, const H5st
// Function: DataTypeIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
DataTypeIException::~DataTypeIException() {}
DataTypeIException::~DataTypeIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: PropListIException
@@ -427,7 +450,7 @@ PropListIException::PropListIException(const H5std_string& func_name, const H5st
// Function: PropListIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
PropListIException::~PropListIException() {}
PropListIException::~PropListIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: DataSetIException
@@ -450,7 +473,7 @@ DataSetIException::DataSetIException(const H5std_string& func_name, const H5std_
// Function: DataSetIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
DataSetIException::~DataSetIException() {}
DataSetIException::~DataSetIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: AttributeIException
@@ -473,7 +496,7 @@ AttributeIException::AttributeIException(const H5std_string& func_name, const H5
// Function: AttributeIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
AttributeIException::~AttributeIException() {}
AttributeIException::~AttributeIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: ReferenceException
@@ -496,7 +519,7 @@ ReferenceException::ReferenceException(const H5std_string& func_name, const H5st
// Function: ReferenceException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
ReferenceException::~ReferenceException() {}
ReferenceException::~ReferenceException() throw() {}
//--------------------------------------------------------------------------
// Subclass: LibraryIException
@@ -519,7 +542,30 @@ LibraryIException::LibraryIException(const H5std_string& func_name, const H5std_
// Function: LibraryIException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
LibraryIException::~LibraryIException() {}
LibraryIException::~LibraryIException() throw() {}
//--------------------------------------------------------------------------
// Subclass: LocationException
// Programmer Binh-Minh Ribler - 2014
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Function: LocationException default constructor
///\brief Default constructor.
//--------------------------------------------------------------------------
LocationException::LocationException():Exception(){}
//--------------------------------------------------------------------------
// Function: LocationException overloaded constructor
///\brief Creates a LocationException with the name of the function,
/// in which the failure occurs, and an optional detailed message.
///\param func_name - IN: Name of the function where failure occurs
///\param message - IN: Message on the failure
//--------------------------------------------------------------------------
LocationException::LocationException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: LocationException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
LocationException::~LocationException() throw() {}
//--------------------------------------------------------------------------
// Subclass: IdComponentException
@@ -542,7 +588,7 @@ IdComponentException::IdComponentException(const H5std_string& func_name, const
// Function: IdComponentException destructor
///\brief Noop destructor.
//--------------------------------------------------------------------------
IdComponentException::~IdComponentException() {}
IdComponentException::~IdComponentException() throw() {}
#ifndef H5_NO_NAMESPACE
} // end namespace
#endif

View File

@@ -14,8 +14,8 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5Exception_H
#define _H5Exception_H
#ifndef __H5Exception_H
#define __H5Exception_H
#include <string>
@@ -28,6 +28,11 @@ namespace H5 {
#endif
#endif
/*! \class Exception
\brief Exception provides wrappers of HDF5 error handling functions.
Many classes are derived from Exception for specific HDF5 C interfaces.
*/
class H5_DLLCPP Exception {
public:
// Creates an exception with a function name where the failure occurs
@@ -67,7 +72,9 @@ class H5_DLLCPP Exception {
H5E_walk2_t func, void* client_data);
// Prints the error stack in a default manner.
virtual void printError( FILE* stream = NULL ) const;
static void printErrorStack(FILE* stream = stderr,
hid_t err_stack = H5E_DEFAULT); // Static
virtual void printError(FILE* stream = NULL) const;
// Default constructor
Exception();
@@ -76,89 +83,96 @@ class H5_DLLCPP Exception {
Exception( const Exception& orig);
// virtual Destructor
virtual ~Exception();
private:
H5std_string detail_message;
H5std_string func_name;
virtual ~Exception() throw();
protected:
// Default value for detail_message
static const char DEFAULT_MSG[];
private:
H5std_string detail_message;
H5std_string func_name;
};
class H5_DLLCPP FileIException : public Exception {
public:
FileIException( const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
FileIException();
virtual ~FileIException();
virtual ~FileIException() throw();
};
class H5_DLLCPP GroupIException : public Exception {
public:
GroupIException( const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
GroupIException();
virtual ~GroupIException();
virtual ~GroupIException() throw();
};
class H5_DLLCPP DataSpaceIException : public Exception {
public:
DataSpaceIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
DataSpaceIException();
virtual ~DataSpaceIException();
virtual ~DataSpaceIException() throw();
};
class H5_DLLCPP DataTypeIException : public Exception {
public:
DataTypeIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
DataTypeIException();
virtual ~DataTypeIException();
virtual ~DataTypeIException() throw();
};
class H5_DLLCPP PropListIException : public Exception {
public:
PropListIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
PropListIException();
virtual ~PropListIException();
virtual ~PropListIException() throw();
};
class H5_DLLCPP DataSetIException : public Exception {
public:
DataSetIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
DataSetIException();
virtual ~DataSetIException();
virtual ~DataSetIException() throw();
};
class H5_DLLCPP AttributeIException : public Exception {
public:
AttributeIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
AttributeIException();
virtual ~AttributeIException();
virtual ~AttributeIException() throw();
};
class H5_DLLCPP ReferenceException : public Exception {
public:
ReferenceException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
ReferenceException();
virtual ~ReferenceException();
virtual ~ReferenceException() throw();
};
class H5_DLLCPP LibraryIException : public Exception {
public:
LibraryIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
LibraryIException();
virtual ~LibraryIException();
virtual ~LibraryIException() throw();
};
class H5_DLLCPP LocationException : public Exception {
public:
LocationException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
LocationException();
virtual ~LocationException() throw();
};
class H5_DLLCPP IdComponentException : public Exception {
public:
IdComponentException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
IdComponentException();
virtual ~IdComponentException();
virtual ~IdComponentException() throw();
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif // _H5Exception_H
#endif // __H5Exception_H

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
@@ -261,10 +261,10 @@ 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
void FileAccPropList::setSplit(const FileAccPropList& meta_plist, const FileAccPropList& raw_plist, const char* meta_ext, const char* raw_ext ) const
{
hid_t meta_pid = meta_plist.getId();
hid_t raw_pid = raw_plist.getId();
@@ -275,64 +275,61 @@ void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& ra
}
}
//--------------------------------------------------------------------------
// Function: FileAccPropList::setSplit
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param meta_plist - IN: File access plist for the metadata file
///\param raw_plist - IN: File access plist for the raw data file
///\param meta_ext - IN: Metadata filename extension as \c char*
///\param raw_ext - IN: Raw data filename extension as \c char*
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
// Note: Retiring April, 2014
//--------------------------------------------------------------------------
void FileAccPropList::setSplit(FileAccPropList& meta_plist, FileAccPropList& raw_plist, const char* meta_ext, const char* raw_ext ) const
{
setSplit((const FileAccPropList)meta_plist, (const FileAccPropList)raw_plist, meta_ext, raw_ext);
}
//--------------------------------------------------------------------------
// Function: FileAccPropList::setSplit
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
/// It takes character arguments as \c H5std_string.
///\param meta_plist - IN: File access plist for the metadata file
///\param raw_plist - IN: File access plist for the raw data file
///\param meta_ext - IN: Metadata filename extension as \c H5std_string
///\param raw_ext - IN: Raw data filename extension as \c H5std_string
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setSplit(const FileAccPropList& meta_plist, const FileAccPropList& raw_plist, const H5std_string& meta_ext, const H5std_string& raw_ext ) const
{
setSplit( meta_plist, raw_plist, meta_ext.c_str(), raw_ext.c_str() );
}
//--------------------------------------------------------------------------
// Function: FileAccPropList::setSplit
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const's. This wrapper will be removed in future release.
///\param meta_plist - IN: File access plist for the metadata file
///\param raw_plist - IN: File access plist for the raw data file
///\param meta_ext - IN: Metadata filename extension as \c string
///\param raw_ext - IN: Raw data filename extension as \c string
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
// Note: Retiring April, 2014
//--------------------------------------------------------------------------
void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist, const H5std_string& meta_ext, const H5std_string& raw_ext ) const
void FileAccPropList::setSplit(FileAccPropList& meta_plist, FileAccPropList& raw_plist, const H5std_string& meta_ext, const H5std_string& raw_ext ) const
{
setSplit( meta_plist, raw_plist, meta_ext.c_str(), raw_ext.c_str() );
setSplit((const FileAccPropList)meta_plist, (const FileAccPropList)raw_plist, meta_ext.c_str(), raw_ext.c_str() );
}
#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
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5FD_stream_fapl_t FileAccPropList::getStream() const
{
H5FD_stream_fapl_t fapl;
herr_t ret_value = H5Pget_fapl_stream(id, &fapl);
if( ret_value < 0 )
{
throw PropListIException("FileAccPropList::getStream", "H5Pget_fapl_stream failed");
}
return(fapl);
}
//--------------------------------------------------------------------------
// 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
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setStream(H5FD_stream_fapl_t &fapl) const
{
herr_t ret_value = H5Pset_fapl_stream (id, &fapl);
if( ret_value < 0 )
{
throw PropListIException("FileAccPropList::setStream", "H5Pset_fapl_stream failed");
}
}
#endif // Stream Virtual File Driver
// Stream Virtual File Driver had been removed from the main library.
// FileAccPropList::[s,g]etStream are now removed from the C++ API.
// -BMR, March, 2012
//--------------------------------------------------------------------------
// Function: FileAccPropList::getSieveBufSize
@@ -360,7 +357,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 +377,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 +417,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 +474,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 +511,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 +530,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 +631,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

@@ -14,14 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5FileAccPropList_H
#define _H5FileAccPropList_H
#ifndef __H5FileAccPropList_H
#define __H5FileAccPropList_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
// class for file access properties
//! Class FileAccPropList represents the HDF5 file access property list.
class H5_DLLCPP FileAccPropList : public PropList {
public:
static const FileAccPropList DEFAULT;
@@ -62,18 +62,21 @@ class H5_DLLCPP FileAccPropList : public PropList {
FileAccPropList getFamily(hsize_t& memb_size) const;
// Emulates the old split file driver,
void setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist,
const char* meta_ext = ".meta", const char* raw_ext = ".raw" ) const;
void setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist,
const H5std_string& meta_ext, const H5std_string& raw_ext ) const;
#ifdef H5_HAVE_STREAM // for Stream Virtual File Driver
// Modifies this file access property list to use the Stream driver.
void setStream(H5FD_stream_fapl_t &fapl) const;
// Retrieves the streaming I/O driver settings
H5FD_stream_fapl_t getStream() const;
#endif
void setSplit(const FileAccPropList& meta_plist,
const FileAccPropList& raw_plist,
const char* meta_ext = ".meta",
const char* raw_ext = ".raw" ) const;
void setSplit(const FileAccPropList& meta_plist,
const FileAccPropList& raw_plist,
const H5std_string& meta_ext = ".meta",
const H5std_string& raw_ext = ".raw") const;
// These two overloaded functions are kept for backward compatibility
// only; they missed the const's and will be removed in future release.
void setSplit(FileAccPropList& meta_plist, FileAccPropList& raw_plist,
const char* meta_ext=".meta", const char* raw_ext=".raw") const;
void setSplit(FileAccPropList& meta_plist, FileAccPropList& raw_plist,
const H5std_string& meta_ext=".meta",
const H5std_string& raw_ext=".raw") const;
// Sets the maximum size of the data sieve buffer.
void setSieveBufSize(size_t bufsize) const;
@@ -123,7 +126,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.
@@ -139,4 +142,4 @@ class H5_DLLCPP FileAccPropList : public PropList {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5FileAccPropList_H

View File

@@ -128,7 +128,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
@@ -168,7 +168,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
@@ -189,7 +189,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
@@ -210,7 +210,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
@@ -230,7 +230,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

@@ -14,14 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5FileCreatPropList_H
#define _H5FileCreatPropList_H
#ifndef __H5FileCreatPropList_H
#define __H5FileCreatPropList_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
// class for file access properties
//! Class FileCreatPropList represents the HDF5 file create property list.
class H5_DLLCPP FileCreatPropList : public PropList {
public:
// Default file creation property list.
@@ -62,7 +62,7 @@ class H5_DLLCPP FileCreatPropList : public PropList {
// indexing chunked datasets.
void setIstorek( unsigned ik ) const;
// Returns this class name
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("FileCreatPropList"); }
// Copy constructor: creates a copy of a FileCreatPropList object.
@@ -78,4 +78,4 @@ class H5_DLLCPP FileCreatPropList : public PropList {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5FileCreatPropList_H

View File

@@ -50,7 +50,7 @@ namespace H5 {
///\brief Default constructor: creates a stub H5File object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File() : IdComponent(), id(0) {}
H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {}
//--------------------------------------------------------------------------
// Function: H5File overloaded constructor
@@ -61,7 +61,7 @@ H5File::H5File() : IdComponent(), id(0) {}
/// modifying default file meta-data. Default to
/// FileCreatPropList::DEFAULT
///\param access_plist - IN: File access property list. Default to
/// FileCreatPropList::DEFAULT
/// FileAccPropList::DEFAULT
///\par Description
/// Valid values of \a flags include:
/// \li \c H5F_ACC_TRUNC - Truncate file, if it already exists,
@@ -69,6 +69,10 @@ H5File::H5File() : IdComponent(), id(0) {}
/// the file.
/// \li \c H5F_ACC_EXCL - Fail if file already exists.
/// \c H5F_ACC_TRUNC and \c H5F_ACC_EXCL are mutually exclusive
/// \li \c H5F_ACC_RDONLY - Open file as read-only, if it already
/// exists, and fail, otherwise
/// \li \c H5F_ACC_RDWR - Open file for read/write, if it already
/// exists, and fail, otherwise
/// \li \c H5F_ACC_DEBUG - print debug information. This flag is
/// used only by HDF5 library developers; it is neither
/// tested nor supported for use in applications.
@@ -76,42 +80,60 @@ H5File::H5File() : IdComponent(), id(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
// Notes With a PGI compiler (~2012-2013), the exception thrown by p_get_file
// could not be caught in the applications. Added try block here
// to catch then re-throw it. -BMR 2013/03/21
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : IdComponent(0)
H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID)
{
p_get_file(name, flags, create_plist, access_plist);
try {
p_get_file(name, flags, create_plist, access_plist);
} catch (FileIException open_file) {
throw open_file;
}
}
//--------------------------------------------------------------------------
// 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
/// FileCreatPropList::DEFAULT
///\param access_plist - IN: File access property list. Default to
/// FileCreatPropList::DEFAULT
/// FileAccPropList::DEFAULT
// Notes With a PGI compiler (~2012-2013), the exception thrown by p_get_file
// could not be caught in the applications. Added try block here
// to catch then re-throw it. -BMR 2013/03/21
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : IdComponent(0)
H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID)
{
p_get_file(name.c_str(), flags, create_plist, access_plist);
try {
p_get_file(name.c_str(), flags, create_plist, access_plist);
} catch (FileIException open_file) {
throw open_file;
}
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// This function is private and contains common code between the
// constructors taking a string or a char*
// Programmer Binh-Minh Ribler - 2000
// Modification
// - removed H5F_ACC_CREAT because H5Fcreate will fail with
// H5F_ACC_CREAT. - BMR, Sep 17, 2014
//--------------------------------------------------------------------------
void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist)
{
// These bits only set for creation, so if any of them are set,
// create the file.
if( flags & (H5F_ACC_CREAT|H5F_ACC_EXCL|H5F_ACC_TRUNC|H5F_ACC_DEBUG))
if( flags & (H5F_ACC_EXCL|H5F_ACC_TRUNC|H5F_ACC_DEBUG))
{
hid_t create_plist_id = create_plist.getId();
hid_t access_plist_id = access_plist.getId();
@@ -133,6 +155,8 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
}
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5File copy constructor
///\brief Copy constructor: makes a copy of the original
@@ -140,34 +164,15 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
///\param original - IN: H5File instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File(const H5File& original) : IdComponent(original)
H5File::H5File(const H5File& original) : H5Location(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: H5File::flush
///\brief Flushes all buffers associated with a file to disk.
///\param scope - IN: Specifies the scope of the flushing action,
/// which can be either of these values:
/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file
/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - Dec. 2005
//--------------------------------------------------------------------------
void H5File::flush(H5F_scope_t scope) const
{
herr_t ret_value = H5Fflush( id, scope );
if( ret_value < 0 )
{
throw FileIException("H5File::flush", "H5Fflush failed");
}
}
//--------------------------------------------------------------------------
// Function: H5File::isHdf5
///\brief Determines whether a file in HDF5 format.
// Function: H5File::isHdf5 (static)
///\brief Determines whether a file in HDF5 format. (Static)
///\param name - IN: Name of the file
///\return true if the file is in HDF5 format, and false, otherwise
///\exception H5::FileIException
@@ -189,10 +194,10 @@ bool H5File::isHdf5(const char* name)
}
//--------------------------------------------------------------------------
// Function: H5File::isHdf5
// Function: H5File::isHdf5 (static)
///\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. (Static)
///\param name - IN: Name of the file - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
bool H5File::isHdf5(const H5std_string& name )
@@ -206,7 +211,7 @@ bool H5File::isHdf5(const H5std_string& name )
///\param name - IN: Name of the file
///\param flags - IN: File access flags
///\param access_plist - IN: File access property list. Default to
/// FileCreatPropList::DEFAULT
/// FileAccPropList::DEFAULT
///\par Description
/// Valid values of \a flags include:
/// H5F_ACC_RDWR: Open with read/write access. If the file is
@@ -231,8 +236,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
@@ -269,28 +274,13 @@ void H5File::reOpen()
throw FileIException("H5File::reOpen", close_error.getDetailMsg());
}
// call C routine to reopen the file - Note: not sure about this
// does id need to be closed later? which id to be the parameter?
// call C routine to reopen the file - Note: not sure about this,
// which id to be the parameter when closing?
id = H5Freopen( id );
if( id < 0 ) // Raise exception when H5Freopen returns a neg value
throw FileIException("H5File::reOpen", "H5Freopen failed");
}
//--------------------------------------------------------------------------
// Function: H5File::reopen
///\brief Reopens this file.
///
///\exception H5::FileIException
///\par Description
/// This function will be replaced by the above function \c reOpen
/// in future releases.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5File::reopen()
{
H5File::reOpen();
}
//--------------------------------------------------------------------------
// Function: H5File::getCreatePlist
///\brief Returns the creation property list of this file
@@ -460,7 +450,7 @@ void H5File::getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const
/// closed and reopened or opened during a subsequent session.
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
void H5File::getVFDHandle(FileAccPropList& fapl, void **file_handle) const
void H5File::getVFDHandle(const FileAccPropList& fapl, void **file_handle) const
{
hid_t fapl_id = fapl.getId();
herr_t ret_value = H5Fget_vfd_handle(id, fapl_id, file_handle);
@@ -470,6 +460,23 @@ void H5File::getVFDHandle(FileAccPropList& fapl, void **file_handle) const
}
}
//--------------------------------------------------------------------------
// Function: H5File::getVFDHandle
///\brief This is an overloaded member function, kept for backward
/// compatibility. It differs from the above function in that it
/// misses const. This wrapper will be removed in future release.
///\param fapl - File access property list
///\param file_handle - Pointer to the file handle being used by
/// the low-level virtual file driver
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May 2004
// Note: Retiring April, 2014
//--------------------------------------------------------------------------
void H5File::getVFDHandle(FileAccPropList& fapl, void **file_handle) const
{
getVFDHandle((const FileAccPropList)fapl, file_handle);
}
//--------------------------------------------------------------------------
// Function: H5File::getVFDHandle
///\brief This is an overloaded member function, provided for convenience.
@@ -489,70 +496,6 @@ void H5File::getVFDHandle(void **file_handle) const
}
}
//--------------------------------------------------------------------------
// Function: H5File::getFileName
///\brief Gets the name of this file.
///\return File name
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
H5std_string H5File::getFileName() const
{
try {
return(p_get_file_name());
}
catch (IdComponentException E) {
throw FileIException("H5File::getFileName", E.getDetailMsg());
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: H5File::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
///\return Object type, which can be one of the following:
/// \li \c H5G_LINK - Object is a symbolic link.
/// \li \c H5G_GROUP - Object is a group.
/// \li \c H5G_DATASET - Object is a dataset.
/// \li \c H5G_TYPE - Object is a named datatype
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t H5File::getObjType(void *ref, H5R_type_t ref_type) const
{
try {
return(p_get_obj_type(ref, ref_type));
}
catch (IdComponentException E) {
throw FileIException("H5File::getObjType", E.getDetailMsg());
}
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: H5File::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.
///\param ref - IN: Reference to get region of
///\param ref_type - IN: Type of reference to get region of - default
///\return DataSpace instance
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
DataSpace H5File::getRegion(void *ref, H5R_type_t ref_type) const
{
try {
DataSpace dataspace(p_get_region(ref, ref_type));
return(dataspace);
}
catch (IdComponentException E) {
throw FileIException("H5File::getRegion", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::getFileSize
///\brief Returns the file size of the HDF5 file.
@@ -575,133 +518,23 @@ hsize_t H5File::getFileSize() const
}
//--------------------------------------------------------------------------
// Function: H5File::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
// Function: H5File::getId
///\brief Get the id of this file
///\return File identifier
// 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
//--------------------------------------------------------------------------
void H5File::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
hid_t H5File::getId() 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 \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 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 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 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);
return(id);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5File::getLocId
// Purpose: Get the id of this file
@@ -716,23 +549,20 @@ hid_t H5File::getLocId() const
}
//--------------------------------------------------------------------------
// 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
// Function: H5File::reopen
// Purpose: Reopens this file.
// Exception H5::FileIException
// Description
// This function is replaced by the above function reOpen.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hid_t H5File::getId() const
void H5File::reopen()
{
return(id);
H5File::reOpen();
}
//--------------------------------------------------------------------------
// Function: H5File::p_setId
// Function: H5File::p_setId (protected)
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
@@ -755,6 +585,7 @@ void H5File::p_setId(const hid_t new_id)
// reset object's id to the given id
id = new_id;
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5File::close
@@ -773,7 +604,7 @@ void H5File::close()
throw FileIException("H5File::close", "H5Fclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}

View File

@@ -14,14 +14,19 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5File_H
#define _H5File_H
#ifndef __H5File_H
#define __H5File_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
class H5_DLLCPP H5File : public IdComponent, public CommonFG {
/*! \class H5File
\brief Class H5File represents an HDF5 file.
It inherits from H5Location and CommonFG.
*/
class H5_DLLCPP H5File : public H5Location, public CommonFG {
public:
// Creates or opens an HDF5 file.
H5File( const char* name, unsigned int flags,
@@ -40,18 +45,12 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Close this file.
virtual void close();
// Flushes all buffers associated with this file to disk
void flush(H5F_scope_t scope) const;
// Gets the access property list of this file.
FileAccPropList getAccessPlist() const;
// Gets the creation property list of this file.
FileCreatPropList getCreatePlist() const;
// Gets the name of this file.
H5std_string getFileName() const;
// Retrieves the file size of an opened file.
hsize_t getFileSize() const;
@@ -67,17 +66,10 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// and datatypes) in the same file.
void getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Returns the pointer to the file handle of the low-level file driver.
void getVFDHandle(FileAccPropList& fapl, void **file_handle) const;
void getVFDHandle(void **file_handle) const;
void getVFDHandle(const FileAccPropList& fapl, void **file_handle) const;
void getVFDHandle(FileAccPropList& fapl, void **file_handle) const; // kept for backward compatibility
// Determines if a file, specified by its name, is in HDF5 format
static bool isHdf5(const char* name );
@@ -85,24 +77,21 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Reopens this file.
void reOpen(); // added for better name
void reopen();
// Creates a reference to a named HDF5 object or to a dataset region
// in this object.
void reference(void* ref, const char* name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
void reference(void* ref, const char* name) const;
void reference(void* ref, const H5std_string& name) const;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
void reopen(); // obsolete in favor of reOpen()
// Returns this class name
// Gets the file id
virtual hid_t getLocId() const;
#endif // DOXYGEN_SHOULD_SKIP_THIS
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("H5File"); }
// Throw file exception.
virtual void throwException(const H5std_string& func_name, const H5std_string& msg) const;
// Gets the file id
virtual hid_t getLocId() const;
// Default constructor
H5File();
@@ -115,34 +104,21 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// H5File destructor.
virtual ~H5File();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Sets the HDF5 file id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
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
}
#endif
#endif
#endif // __H5File_H

View File

@@ -14,13 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5FloatType_H
#define _H5FloatType_H
#ifndef __H5FloatType_H
#define __H5FloatType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! Class FloatType operates on HDF5 floating point datatype.
class H5_DLLCPP FloatType : public AtomType {
public:
// Creates a floating-point type using a predefined type
@@ -53,7 +54,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
@@ -71,4 +72,4 @@ class H5_DLLCPP FloatType : public AtomType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5FloatType_H

View File

@@ -51,7 +51,7 @@ namespace H5 {
///\brief Default constructor: creates a stub Group.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group() : H5Object(), id(0) {}
Group::Group() : H5Object(), id(H5I_INVALID_HID) {}
//--------------------------------------------------------------------------
// Function: Group copy constructor
@@ -79,7 +79,7 @@ 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 existing_id) : H5Object()
@@ -90,42 +90,19 @@ Group::Group(const hid_t existing_id) : H5Object()
//--------------------------------------------------------------------------
// Function: Group overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param obj - IN: Specifying location referenced object is in
///\param loc - IN: Specifying location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\param plist - IN: Property list - default to PropList::DEFAULT
///\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(H5Object& obj, const void* ref, H5R_type_t ref_type) : H5Object()
Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID)
{
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 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
//--------------------------------------------------------------------------
Group::Group(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("Group constructor - located by an H5File",
deref_error.getDetailMsg());
}
id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference");
}
//--------------------------------------------------------------------------
@@ -134,75 +111,25 @@ Group::Group(H5File& h5file, const void* ref, H5R_type_t ref_type) : H5Object()
///\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
///\param plist - IN: Property list - default to PropList::DEFAULT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
Group::Group(Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object()
Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID)
{
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
//--------------------------------------------------------------------------
// Function: Group::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference 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
///\exception H5::GroupIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t Group::getObjType(void *ref, H5R_type_t ref_type) const
{
try {
return(p_get_obj_type(ref, ref_type));
}
catch (IdComponentException E) {
throw GroupIException("Group::getObjType", E.getDetailMsg());
}
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: Group::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.
///\param ref - IN: Reference to get region of
///\param ref_type - IN: Type of reference to get region of - default
///\return DataSpace instance
///\exception H5::GroupIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
DataSpace Group::getRegion(void *ref, H5R_type_t ref_type) const
{
try {
DataSpace dataspace(p_get_region(ref, ref_type));
return(dataspace);
}
catch (IdComponentException E) {
throw GroupIException("Group::getRegion", E.getDetailMsg());
}
id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference");
}
//--------------------------------------------------------------------------
// Function: Group::getId
// Purpose: Get the id of this attribute
///\brief Get the id of this group
///\return Group identifier
// 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.
// 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
@@ -210,16 +137,17 @@ hid_t Group::getId() const
return(id);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// 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
/// 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
//--------------------------------------------------------------------------
void Group::p_setId(const hid_t new_id)
@@ -234,6 +162,7 @@ void Group::p_setId(const hid_t new_id)
// reset object's id to the given id
id = new_id;
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: Group::close
@@ -252,7 +181,7 @@ void Group::close()
throw GroupIException("Group::close", "H5Gclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}

View File

@@ -14,27 +14,24 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5Group_H
#define _H5Group_H
#ifndef __H5Group_H
#define __H5Group_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class Group
\brief Class Group represents an HDF5 group.
It inherits many operations from H5Location and CommonFG.
*/
class H5_DLLCPP Group : public H5Object, public CommonFG {
public:
// Close this group.
virtual void close();
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Returns this class name
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("Group"); }
// Throw group exception.
@@ -44,9 +41,8 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
virtual hid_t getLocId() const;
// Creates a group by way of dereference.
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);
Group(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
Group(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
// default constructor
Group();
@@ -63,14 +59,16 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Creates a copy of an existing group using its id.
Group( const hid_t group_id );
private:
hid_t id; // HDF5 group id
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Sets the group id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 group id
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5Group_H

View File

@@ -13,16 +13,19 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifdef H5_VMS
#ifdef OLD_HEADER_FILENAME
#include <iostream.h>
#else
#include <iostream>
#endif /*H5_VMS*/
#endif
#include <string>
#include "H5Include.h"
#include "H5Exception.h"
#include "H5Library.h"
#include "H5IdComponent.h"
#include "H5DataSpace.h"
#include "H5private.h" // for HDmemset
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -127,9 +130,9 @@ int IdComponent::getCounter() const
}
//--------------------------------------------------------------------------
// Function: hdfObjectType
// Function: getHDFObjType (static)
///\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
@@ -142,6 +145,8 @@ int IdComponent::getCounter() const
//--------------------------------------------------------------------------
H5I_type_t IdComponent::getHDFObjType(const hid_t obj_id)
{
if (obj_id <= 0)
return H5I_BADID; // invalid
H5I_type_t id_type = H5Iget_type(obj_id);
if (id_type <= H5I_BADID || id_type >= H5I_NTYPES)
return H5I_BADID; // invalid
@@ -149,6 +154,26 @@ H5I_type_t IdComponent::getHDFObjType(const hid_t obj_id)
return id_type; // valid type
}
//--------------------------------------------------------------------------
// Function: getHDFObjType
///\brief Returns the type of the object. It is an overloaded function
/// of the above function.
///\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
/// \li \c H5I_DATASPACE
/// \li \c H5I_DATASET
/// \li \c H5I_ATTR
/// \li or \c H5I_BADID, if no valid type can be determined or the
/// input object id is invalid.
// Programmer Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
H5I_type_t IdComponent::getHDFObjType() const
{
return(getHDFObjType(getId()));
}
//--------------------------------------------------------------------------
// Function: IdComponent::operator=
///\brief Assignment operator.
@@ -267,7 +292,7 @@ IdComponent::IdComponent() {}
// Description:
// This function is protected so that the user applications can
// only have access to its code via allowable classes, namely,
// H5File and H5Object subclasses.
// Attribute and H5Location subclasses.
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
H5std_string IdComponent::p_get_file_name() const
@@ -285,11 +310,14 @@ 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
HDmemset(name_C, 0, name_size+1); // clear buffer
name_size = H5Fget_name(temp_id, name_C, name_size+1);
// Check for failure again
if( name_size < 0 )
{
delete []name_C;
throw IdComponentException("", "H5Fget_name failed");
}
@@ -312,6 +340,9 @@ H5std_string IdComponent::p_get_file_name() const
//--------------------------------------------------------------------------
bool IdComponent::p_valid_id(const hid_t obj_id)
{
if (obj_id <= 0)
return false;
H5I_type_t id_type = H5Iget_type(obj_id);
if (id_type <= H5I_BADID || id_type >= H5I_NTYPES)
return false;
@@ -319,6 +350,14 @@ bool IdComponent::p_valid_id(const hid_t obj_id)
return true;
}
// Notes about IdComponent::id
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068...
// ...member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// (reasons: 1. encountered problems when adding H5Location;
// 2. Scott Meyers, item 33)
#endif // DOXYGEN_SHOULD_SKIP_THIS
#ifndef H5_NO_NAMESPACE

View File

@@ -14,16 +14,21 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _IdComponent_H
#define _IdComponent_H
// IdComponent represents an HDF5 object that has an identifier.
#ifndef __IdComponent_H
#define __IdComponent_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
class DataSpace;
/*! \class IdComponent
\brief Class IdComponent provides wrappers of the C functions that
operate on an HDF5 identifier.
In most cases, the C library handles these operations and an application
rarely needs them.
*/
class H5_DLLCPP IdComponent {
public:
// Increment reference counter.
@@ -41,11 +46,16 @@ class H5_DLLCPP IdComponent {
// Returns an HDF5 object type, given the object id.
static H5I_type_t getHDFObjType(const hid_t obj_id);
// Returns an HDF5 object type of this object.
H5I_type_t getHDFObjType() const;
// Assignment operator.
IdComponent& operator=( const IdComponent& rhs );
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Gets the identifier of this object.
virtual hid_t getId () const = 0;
#endif // DOXYGEN_SHOULD_SKIP_THIS
// Sets the identifier of this object to a new value.
void setId(const hid_t new_id);
@@ -65,7 +75,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
@@ -74,11 +84,10 @@ class H5_DLLCPP IdComponent {
virtual ~IdComponent();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Default constructor.
IdComponent();
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Gets the name of the file, in which an HDF5 object belongs.
H5std_string p_get_file_name() const;
@@ -96,4 +105,4 @@ class H5_DLLCPP IdComponent {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __IdComponent_H

View File

@@ -14,13 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5IntType_H
#define _H5IntType_H
#ifndef __H5IntType_H
#define __H5IntType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! Class IntType operates on HDF5 integer datatype.
class H5_DLLCPP IntType : public AtomType {
public:
// Creates a integer type using a predefined type
@@ -35,7 +36,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
@@ -53,4 +54,4 @@ class H5_DLLCPP IntType : public AtomType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5IntType_H

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

@@ -14,8 +14,8 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5Library_H
#define _H5Library_H
#ifndef __H5Library_H
#define __H5Library_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -29,6 +29,12 @@ namespace H5 {
// calling H5close
#endif // DOXYGEN_SHOULD_SKIP_THIS
/*! \class H5Library
\brief Class H5Library operates the HDF5 library globably.
It is not neccessary to construct an instance of H5Library to use the
methods.
*/
class H5_DLLCPP H5Library {
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -67,4 +73,4 @@ class H5_DLLCPP H5Library {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5Library_H

925
c++/src/H5Location.cpp Normal file
View File

@@ -0,0 +1,925 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include <string>
#include "H5Include.h"
#include "H5Exception.h"
#include "H5IdComponent.h"
#include "H5PropList.h"
#include "H5Location.h"
#include "H5Object.h"
#include "H5DcreatProp.h"
#include "H5DxferProp.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5CommonFG.h"
#include "H5DataType.h"
#include "H5DataSpace.h"
#include "H5AbstractDs.h"
#include "H5File.h"
#include "H5DataSet.h"
#include "H5Attribute.h"
#include "H5private.h" // for HDmemset
#include <iostream>
using namespace std;
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// userAttrOpWrpr simply interfaces between the user's function and the
// C library function H5Aiterate2; used to resolve the different prototype
// problem. May be moved to Iterator later.
extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name,
const H5A_info_t *ainfo, void *op_data)
{
H5std_string s_attr_name = H5std_string( attr_name );
#ifdef NO_STATIC_CAST
UserData4Aiterate* myData = (UserData4Aiterate *) op_data;
#else
UserData4Aiterate* myData = static_cast <UserData4Aiterate *> (op_data);
#endif
myData->op( *myData->location, s_attr_name, myData->opData );
return 0;
}
//--------------------------------------------------------------------------
// Function: H5Location default constructor (protected)
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Location::H5Location() : IdComponent() {}
//--------------------------------------------------------------------------
// Function: H5Location overloaded constructor (protected)
// Purpose Creates an H5Location object using the id of an existing HDF5
// object.
// Parameters object_id - IN: Id of an existing HDF5 object
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Location::H5Location(const hid_t object_id) : IdComponent(object_id) {}
//--------------------------------------------------------------------------
// Function: H5Location copy constructor
///\brief Copy constructor: makes a copy of the original H5Location
/// instance.
///\param original - IN: H5Location instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Location::H5Location( const H5Location& original ) : IdComponent( original ) {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::createAttribute
///\brief Creates an attribute for a group, dataset, or named datatype.
///\param name - IN: Name of the attribute
///\param data_type - IN: Datatype for the attribute
///\param data_space - IN: Dataspace for the attribute - only simple
/// dataspaces are allowed at this time
///\param create_plist - IN: Creation property list - default to
/// PropList::DEFAULT
///\return Attribute instance
///\exception H5::AttributeIException
///\par Description
/// The attribute name specified in \a name must be unique.
/// Attempting to create an attribute with the same name as an
/// existing attribute will raise an exception, leaving the
/// pre-existing attribute intact. To overwrite an existing
/// attribute with a new attribute of the same name, first
/// delete the existing one with \c H5Location::removeAttr, then
/// recreate it with this function.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Location::createAttribute( const char* name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const
{
hid_t type_id = data_type.getId();
hid_t space_id = data_space.getId();
hid_t plist_id = create_plist.getId();
hid_t attr_id = H5Acreate2(getId(), name, type_id, space_id, plist_id, H5P_DEFAULT );
// If the attribute id is valid, create and return the Attribute object
if( attr_id > 0 )
{
Attribute attr( attr_id );
return( attr );
}
else
throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::createAttribute
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Location::createAttribute( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const
{
return( createAttribute( name.c_str(), data_type, data_space, create_plist ));
}
//--------------------------------------------------------------------------
// Function: H5Location::openAttribute
///\brief Opens an attribute given its name.
///\param name - IN: Name of the attribute
///\return Attribute instance
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Location::openAttribute( const char* name ) const
{
hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
return( attr );
}
else
{
throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Location::openAttribute
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Location::openAttribute( const H5std_string& name ) const
{
return( openAttribute( name.c_str()) );
}
//--------------------------------------------------------------------------
// Function: H5Location::openAttribute
///\brief Opens an attribute given its index.
///\param idx - IN: Index of the attribute, a 0-based, non-negative integer
///\return Attribute instance
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Location::openAttribute( const unsigned int idx ) const
{
hid_t attr_id = H5Aopen_by_idx(getId(), ".", H5_INDEX_CRT_ORDER,
H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
return( attr );
}
else
{
throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Location::iterateAttrs
///\brief Iterates a user's function over all the attributes of an H5
/// object, which may be a group, dataset or named datatype.
///\param user_op - IN: User's function to operate on each attribute
///\param _idx - IN/OUT: Starting (IN) and ending (OUT) attribute indices
///\param op_data - IN: User's data to pass to user's operator function
///\return Returned value of the last operator if it was non-zero, or
/// zero if all attributes were processed
///\exception H5::AttributeIException
///\par Description
/// The signature of user_op is
/// void (*)(H5::H5Location&, H5std_string, void*).
/// For information, please refer to the C layer Reference Manual
/// at:
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5A.html#Annot-Iterate
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Location::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data )
{
// store the user's function and data
UserData4Aiterate* userData = new UserData4Aiterate;
userData->opData = op_data;
userData->op = user_op;
userData->location = this;
// call the C library routine H5Aiterate2 to iterate the attributes
hsize_t idx = _idx ? (hsize_t)*_idx : 0;
int ret_value = H5Aiterate2(getId(), H5_INDEX_NAME, H5_ITER_INC, &idx,
userAttrOpWrpr, (void *) userData);
// release memory
delete userData;
if( ret_value >= 0 ) {
/* Pass back update index value to calling code */
if (_idx)
*_idx = (unsigned)idx;
return( ret_value );
}
else // raise exception when H5Aiterate returns a negative value
throw AttributeIException(inMemFunc("iterateAttrs"), "H5Aiterate2 failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::getNumAttrs
///\brief Returns the number of attributes attached to this HDF5 object.
///\return Number of attributes
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Location::getNumAttrs() const
{
H5O_info_t oinfo; /* Object info */
if(H5Oget_info(getId(), &oinfo) < 0)
throw AttributeIException(inMemFunc("getNumAttrs"), "H5Oget_info failed");
else
return( (int)oinfo.num_attrs );
}
//--------------------------------------------------------------------------
// Function: H5Location::attrExists
///\brief Checks whether the named attribute exists at this location.
///\param name - IN: Name of the attribute to be queried
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2013
//--------------------------------------------------------------------------
bool H5Location::attrExists(const char* name) const
{
// Call C routine H5Aexists to determine whether an attribute exists
// at this location, which could be specified by a file, group, dataset,
// or named datatype.
herr_t ret_value = H5Aexists(getId(), name);
if( ret_value > 0 )
return true;
else if(ret_value == 0)
return false;
else // Raise exception when H5Aexists returns a negative value
throw AttributeIException(inMemFunc("attrExists"), "H5Aexists failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::attrExists
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
bool H5Location::attrExists(const H5std_string& name) const
{
return(attrExists(name.c_str()));
}
//--------------------------------------------------------------------------
// Function: H5Location::removeAttr
///\brief Removes the named attribute from this object.
///\param name - IN: Name of the attribute to be removed
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Location::removeAttr( const char* name ) const
{
herr_t ret_value = H5Adelete(getId(), name);
if( ret_value < 0 )
throw AttributeIException(inMemFunc("removeAttr"), "H5Adelete failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::removeAttr
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Location::removeAttr( const H5std_string& name ) const
{
removeAttr( name.c_str() );
}
//--------------------------------------------------------------------------
// Function: H5Location::renameAttr
///\brief Renames the named attribute from this object.
///\param oldname - IN: Name of the attribute to be renamed
///\param newname - IN: New name ame of the attribute
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Mar, 2005
//--------------------------------------------------------------------------
void H5Location::renameAttr(const char* oldname, const char* newname) const
{
herr_t ret_value = H5Arename(getId(), oldname, newname);
if (ret_value < 0)
throw AttributeIException(inMemFunc("renameAttr"), "H5Arename failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::renameAttr
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c H5std_string for the names.
// Programmer Binh-Minh Ribler - Mar, 2005
//--------------------------------------------------------------------------
void H5Location::renameAttr(const H5std_string& oldname, const H5std_string& newname) const
{
renameAttr (oldname.c_str(), newname.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Location::flush
///\brief Flushes all buffers associated with a location to disk.
///\param scope - IN: Specifies the scope of the flushing action,
/// which can be either of these values:
/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file
/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file
///\exception H5::Exception
///\par Description
/// This location is used to identify the file to be flushed.
// Programmer Binh-Minh Ribler - 2012
// Modification
// Sep 2012 - BMR
// Moved from H5File/H5Object
//--------------------------------------------------------------------------
void H5Location::flush(H5F_scope_t scope) const
{
herr_t ret_value = H5Fflush(getId(), scope);
if( ret_value < 0 )
{
throw LocationException(inMemFunc("flush"), "H5Fflush failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Location::getFileName
///\brief Gets the name of the file, in which this HDF5 object belongs.
///\return File name
///\exception H5::LocationException
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
H5std_string H5Location::getFileName() const
{
try {
return(p_get_file_name());
}
catch (LocationException E) {
throw FileIException(inMemFunc("getFileName"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Location::setComment
///\brief Sets or resets the comment for an object specified by its name.
///\param name - IN: Name of the object
///\param comment - IN: New comment
///\exception H5::LocationException
///\par Description
/// If \a comment is an empty string or a null pointer, the comment
/// message is removed from the object.
/// Comments should be relatively short, null-terminated, ASCII
/// strings. They can be attached to any object that has an
/// object header, e.g., data sets, groups, named data types,
/// and data spaces, but not symbolic links.
// Programmer Binh-Minh Ribler - 2000 (moved from CommonFG, Sep 2013)
// 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 H5Location::setComment(const char* name, const char* comment) const
{
herr_t ret_value = H5Oset_comment_by_name(getId(), name, comment, H5P_DEFAULT);
if( ret_value < 0 )
throw LocationException(inMemFunc("setComment"), "H5Oset_comment_by_name failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::setComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for \a name and \a comment.
// Programmer Binh-Minh Ribler - 2000 (moved from CommonFG, Sep 2013)
//--------------------------------------------------------------------------
void H5Location::setComment(const H5std_string& name, const H5std_string& comment) const
{
setComment(name.c_str(), comment.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Location::setComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it doesn't take
/// an object name.
// Programmer Binh-Minh Ribler - Sep 2013
// Modification
//--------------------------------------------------------------------------
void H5Location::setComment(const char* comment) const
{
herr_t ret_value = H5Oset_comment_by_name(getId(), ".", comment, H5P_DEFAULT);
if( ret_value < 0 )
throw LocationException(inMemFunc("setComment"), "H5Oset_comment_by_name failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::setComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for \a comment.
// Programmer Binh-Minh Ribler - Sep 2013
//--------------------------------------------------------------------------
void H5Location::setComment(const H5std_string& comment) const
{
setComment(comment.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Location::removeComment
///\brief Removes the comment from an object specified by its name.
///\param name - IN: Name of the object
///\exception H5::LocationException
// Programmer Binh-Minh Ribler - May 2005 (moved from CommonFG, Sep 2013)
// 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 H5Location::removeComment(const char* name) const
{
herr_t ret_value = H5Oset_comment_by_name(getId(), name, NULL, H5P_DEFAULT);
if( ret_value < 0 )
throw LocationException(inMemFunc("removeComment"), "H5Oset_comment_by_name failed");
}
//--------------------------------------------------------------------------
// Function: H5Location::removeComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - May 2005 (moved from CommonFG, Sep 2013)
//--------------------------------------------------------------------------
void H5Location::removeComment(const H5std_string& name) const
{
removeComment (name.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Location::getComment
///\brief Retrieves the comment for this location, returning its length.
///\param name - IN: Name of the object
///\param buf_size - IN: Length of the comment to retrieve
///\param comment - OUT: Retrieved comment
///\return Actual length of the comment
///\exception H5::LocationException
///\par Description
/// This function retrieves \a buf_size characters of the comment
/// including the null terminator. Thus, if the actual length
/// of the comment is more than buf_size-1, the retrieved comment
/// will be truncated to accommodate the null terminator.
// Programmer Binh-Minh Ribler - Mar 2014
//--------------------------------------------------------------------------
ssize_t H5Location::getComment(const char* name, size_t buf_size, char* comment) const
{
// H5Oget_comment_by_name will get buf_size chars of the comment including
// the null terminator
ssize_t comment_len;
comment_len = H5Oget_comment_by_name(getId(), name, comment, buf_size, H5P_DEFAULT);
// If H5Oget_comment_by_name returns a negative value, raise an exception
if (comment_len < 0)
{
throw LocationException("H5Location::getComment", "H5Oget_comment_by_name failed");
}
// If the comment is longer than the provided buffer size, the C library
// will not null terminate it
if ((size_t)comment_len >= buf_size)
comment[buf_size-1] = '\0';
// Return the actual comment length, which might be different from buf_size
return(comment_len);
}
//--------------------------------------------------------------------------
// Function: H5Location::getComment
///\brief Returns the comment as \a string for this location,
/// returning its length.
///\param name - IN: Name of the object
///\param buf_size - IN: Length of the comment to retrieve, default to 0
///\return Comment string
///\exception H5::LocationException
// Programmer Binh-Minh Ribler - 2000 (moved from CommonFG, Sep 2013)
//--------------------------------------------------------------------------
H5std_string H5Location::getComment(const char* name, size_t buf_size) const
{
// Initialize string to "", so that if there is no comment, the returned
// string will be empty
H5std_string comment("");
// Preliminary call to get the comment's length
ssize_t comment_len = H5Oget_comment_by_name(getId(), name, NULL, (size_t)0, H5P_DEFAULT);
// If H5Oget_comment_by_name returns a negative value, raise an exception
if (comment_len < 0)
{
throw LocationException("H5Location::getComment", "H5Oget_comment_by_name failed");
}
// If comment exists, calls C routine again to get it
else if (comment_len > 0)
{
size_t tmp_len = buf_size;
// If buffer size is not provided, use comment length
if (tmp_len == 0)
tmp_len = comment_len;
// Temporary buffer for char* comment
char* comment_C = new char[tmp_len+1];
HDmemset(comment_C, 0, tmp_len+1); // clear buffer
// Used overloaded function
ssize_t comment_len = getComment(name, tmp_len+1, comment_C);
if (comment_len < 0)
{
delete []comment_C;
throw LocationException("H5Location::getComment", "H5Oget_comment_by_name failed");
}
// Convert the C comment to return
comment = comment_C;
// Clean up resource
delete []comment_C;
}
// Return the string comment
return(comment);
}
//--------------------------------------------------------------------------
// Function: H5Location::getComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000 (moved from CommonFG, Sep 2013)
//--------------------------------------------------------------------------
H5std_string H5Location::getComment(const H5std_string& name, size_t buf_size) const
{
return(getComment(name.c_str(), buf_size));
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Exception H5::ReferenceException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Location::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
{
herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id);
if (ret_value < 0)
{
throw ReferenceException(inMemFunc("reference"), "H5Rcreate failed");
}
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::reference
///\brief Creates a reference to an HDF5 object or a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced
///\param dataspace - IN: Dataspace with selection
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
/// reference. (default)
///\exception H5::ReferenceException
///\note This method is more suitable for a dataset region reference.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Location::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
p_reference(ref, name, dataspace.getId(), ref_type);
}
catch (ReferenceException E) {
throw ReferenceException(inMemFunc("reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Location::reference
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for \a name.
///\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. (default)
///\exception H5::ReferenceException
///\note This method is more suitable for a dataset region reference.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Location::reference(void* ref, const H5std_string& name, const DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
p_reference(ref, name.c_str(), dataspace.getId(), ref_type);
}
catch (ReferenceException E) {
throw ReferenceException(inMemFunc("reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Location::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it does not take
/// a DataSpace object and the reference type must be specified.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference (default)
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
///\exception H5::ReferenceException
///\note This method is more suitable for an object reference.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Location::reference(void* ref, const char* name, H5R_type_t ref_type) const
{
try {
p_reference(ref, name, -1, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException(inMemFunc("reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Location::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for the object's name.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c H5std_string
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference (default)
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
///\note This method is more suitable for an object reference.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Location::reference(void* ref, const H5std_string& name, H5R_type_t ref_type) const
{
reference(ref, name.c_str(), ref_type);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::p_dereference (protected)
// Purpose Dereference a ref into an hdf5 object.
// Parameters
// loc_id - IN: An hdf5 identifier specifying the location of the
// referenced object
// ref - IN: Reference pointer
// ref_type - IN: Reference type
// plist - IN: Property list - default to PropList::DEFAULT
// from_func - IN: Name of the calling function
// Exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May 2008 - BMR
// Moved from IdComponent.
//--------------------------------------------------------------------------
hid_t H5Location::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type, const PropList& plist, const char* from_func)
{
hid_t plist_id;
if (p_valid_id(plist.getId()))
plist_id = plist.getId();
else
plist_id = H5P_DEFAULT;
hid_t temp_id = H5Rdereference2(loc_id, plist_id, ref_type, ref);
if (temp_id < 0)
{
throw ReferenceException(inMemFunc(from_func), "H5Rdereference failed");
}
return(temp_id);
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::dereference
///\brief Dereferences a reference into an HDF5 object, given an HDF5 object.
///\param loc - IN: Location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\param plist - IN: Property list - default to PropList::DEFAULT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Location::dereference(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist)
{
p_setId(p_dereference(loc.getId(), ref, ref_type, plist, "dereference"));
}
//--------------------------------------------------------------------------
// Function: H5Location::dereference
///\brief Dereferences a reference into an HDF5 object, given an attribute.
///\param attr - IN: Attribute specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\param plist - IN: Property list - default to PropList::DEFAULT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Location::dereference(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist)
{
p_setId(p_dereference(attr.getId(), ref, ref_type, plist, "dereference"));
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: H5Location::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - 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_UNKNOWN - A failure occurs. (-1)
/// \li \c H5G_GROUP - Object is a group.
/// \li \c H5G_DATASET - Object is a dataset.
/// \li \c H5G_TYPE Object - is a named datatype
/// \li \c H5G_LINK - Object is a symbolic link.
/// \li \c H5G_UDLINK - Object is a user-defined link.
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - May, 2004
// Modification
// Sep 2012: Moved up from H5File, Group, DataSet, and DataType
//--------------------------------------------------------------------------
H5G_obj_t H5Location::getObjType(void *ref, H5R_type_t ref_type) const
{
try {
return(p_get_obj_type(ref, ref_type));
}
catch (ReferenceException E) {
throw ReferenceException(inMemFunc("getObjType"), E.getDetailMsg());
}
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::p_get_obj_type (protected)
// Purpose Retrieves the type of object that an object reference points to.
// Parameters
// ref - IN: Reference to query
// ref_type - IN: Type of reference to query
// Return An object type, which can be one of the following:
// H5G_UNKNOWN \tFailure occurs (-1)
// H5G_GROUP \tObject is a group.
// H5G_DATASET \tObject is a dataset.
// H5G_TYPE Object \tis a named datatype.
// H5G_LINK \tObject is a symbolic link.
// H5G_UDLINK \tObject is a user-defined link.
// Exception H5::ReferenceException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t H5Location::p_get_obj_type(void *ref, H5R_type_t ref_type) const
{
H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref);
if (obj_type == H5G_UNKNOWN)
{
throw ReferenceException(inMemFunc("getObjType"), "H5Rget_obj_type1 failed");
}
return(obj_type);
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: H5Location::getRefObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference.
///\return An object type, which can be one of the following:
/// \li \c H5O_TYPE_UNKNOWN - Unknown object type (-1)
/// \li \c H5O_TYPE_GROUP - Object is a group
/// \li \c H5O_TYPE_DATASET - Object is a dataset
/// \li \c H5O_TYPE_NAMED_DATATYPE - Object is a named datatype
/// \li \c H5O_TYPE_NTYPES - Number of different object types
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5O_type_t H5Location::getRefObjType(void *ref, H5R_type_t ref_type) const
{
try {
return(p_get_ref_obj_type(ref, ref_type));
}
catch (ReferenceException E) {
throw ReferenceException(inMemFunc("getRefObjType"), E.getDetailMsg());
}
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: H5Location::p_get_ref_obj_type (protected)
// Purpose Retrieves the type of object that an object reference points to.
// Parameters
// ref - IN: Reference to query
// ref_type - IN: Type of reference to query
// Return An object type, which can be one of the following:
// H5O_TYPE_UNKNOWN - Unknown object type (-1)
// H5O_TYPE_GROUP - Object is a group
// H5O_TYPE_DATASET - Object is a dataset
// H5O_TYPE_NAMED_DATATYPE - Object is a named datatype
// H5O_TYPE_NTYPES - Number of object types
// Exception H5::ReferenceException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5O_type_t H5Location::p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const
{
H5O_type_t obj_type = H5O_TYPE_UNKNOWN;
herr_t ret_value = H5Rget_obj_type2(getId(), ref_type, ref, &obj_type);
if (ret_value < 0)
{
throw ReferenceException(inMemFunc("getRefObjType"), "H5Rget_obj_type2 failed");
}
if (obj_type == H5O_TYPE_UNKNOWN || obj_type >= H5O_TYPE_NTYPES)
{
throw ReferenceException(inMemFunc("getRefObjType"), "H5Rget_obj_type2 returned invalid type");
}
return(obj_type);
}
//--------------------------------------------------------------------------
// Function: H5Location::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.
///\param ref - IN: Reference to get region of
///\param ref_type - IN: Type of reference to get region of - default
// to H5R_DATASET_REGION
///\return DataSpace object
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const
{
hid_t space_id = H5Rget_region(getId(), ref_type, ref);
if (space_id < 0)
{
throw ReferenceException(inMemFunc("getRegion"), "H5Rget_region failed");
}
try {
DataSpace dataspace(space_id);
return(dataspace);
}
catch (DataSpaceIException E) {
throw ReferenceException(inMemFunc("getRegion"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Location destructor
///\brief Noop destructor.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Location::~H5Location() {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
#ifndef H5_NO_NAMESPACE
} // end namespace
#endif

172
c++/src/H5Location.h Normal file
View File

@@ -0,0 +1,172 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef __H5Location_H
#define __H5Location_H
#include "H5Classes.h" // constains forward class declarations
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
class H5_DLLCPP H5Location; // forward declaration for UserData4Aiterate
// Define the operator function pointer for H5Aiterate().
typedef void (*attr_operator_t)( H5Location& loc/*in*/,
const H5std_string attr_name/*in*/,
void *operator_data/*in,out*/);
//! User data for attribute iteration
class UserData4Aiterate {
public:
attr_operator_t op;
void* opData;
H5Location* location;
};
/*! \class H5Location
\brief H5Location is an abstract base class, added in version 1.8.12.
It provides a collection of wrappers for the C functions that take a
location identifier to specify the HDF5 object. The location identifier
can be either file, group, dataset, or named datatype.
*/
// Most of these methods were in H5Object but are now moved here because
// a location can be a file, group, dataset, or named datatype. -BMR, 2013-10-1
class H5_DLLCPP H5Location : public IdComponent {
public:
// Creates an attribute for the specified object at this location
// PropList is currently not used, so always be default.
Attribute createAttribute( const char* name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const;
Attribute createAttribute( const H5std_string& name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const;
// Given its name, opens the attribute that belongs to an object at
// this location.
Attribute openAttribute( const char* name ) const;
Attribute openAttribute( const H5std_string& name ) const;
// Given its index, opens the attribute that belongs to an object at
// this location.
Attribute openAttribute( const unsigned int idx ) const;
// Flushes all buffers associated with this location to disk.
void flush( H5F_scope_t scope ) const;
// Gets the name of the file, specified by this location.
H5std_string getFileName() const;
// Determines the number of attributes at this location.
int getNumAttrs() const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves the type of object that an object reference points to.
H5O_type_t getRefObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
// Note: getRefObjType deprecates getObjType, but getObjType's name is
// misleading, so getRefObjType is used in the new function instead.
// Iterate user's function over the attributes at this location.
int iterateAttrs(attr_operator_t user_op, unsigned* idx = NULL, void* op_data = NULL);
// Checks whether the named attribute exists at this location.
bool attrExists(const char* name) const;
bool attrExists(const H5std_string& name) const;
// Renames the named attribute to a new name.
void renameAttr(const char* oldname, const char* newname) const;
void renameAttr(const H5std_string& oldname, const H5std_string& newname) const;
// Removes the named attribute from this location.
void removeAttr(const char* name) const;
void removeAttr(const H5std_string& name) const;
// Sets the comment for an HDF5 object specified by its name.
void setComment(const char* name, const char* comment) const;
void setComment(const H5std_string& name, const H5std_string& comment) const;
void setComment(const char* comment) const;
void setComment(const H5std_string& comment) const;
// Retrieves comment for the HDF5 object specified by its name.
ssize_t getComment(const char* name, size_t buf_size, char* comment) const;
H5std_string getComment(const char* name, size_t buf_size=0) const;
H5std_string getComment(const H5std_string& name, size_t buf_size=0) const;
// Removes the comment for the HDF5 object specified by its name.
void removeComment(const char* name) const;
void removeComment(const H5std_string& name) const;
// Creates a reference to a named object or to a dataset region
// in this object.
void reference(void* ref, const char* name,
H5R_type_t ref_type = H5R_OBJECT) const;
void reference(void* ref, const H5std_string& name,
H5R_type_t ref_type = H5R_OBJECT) const;
void reference(void* ref, const char* name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
void reference(void* ref, const H5std_string& name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Open a referenced object whose location is specified by either
// a file, an HDF5 object, or an attribute.
void dereference(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
void dereference(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const PropList& plist = PropList::DEFAULT);
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
///\brief Returns an identifier. (pure virtual)
virtual hid_t getId() const = 0;
protected:
// Default constructor
H5Location();
// Creates a copy of an existing object giving the location id.
H5Location(const hid_t loc_id);
// Copy constructor.
H5Location(const H5Location& original);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// 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, const PropList& plist, const char* from_func);
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves the type of object that an object reference points to.
H5O_type_t p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const;
#endif // DOXYGEN_SHOULD_SKIP_THIS
// Noop destructor.
virtual ~H5Location();
}; /* end class H5Location */
#ifndef H5_NO_NAMESPACE
}
#endif
#endif // __H5Location_H

View File

@@ -31,36 +31,18 @@
#include "H5File.h"
#include "H5DataSet.h"
#include "H5Attribute.h"
#include "H5private.h" // for HDmemset
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// userAttrOpWrpr simply interfaces between the user's function and the
// C library function H5Aiterate2; used to resolve the different prototype
// problem. May be moved to Iterator later.
extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name,
const H5A_info_t *ainfo, void *op_data)
{
H5std_string s_attr_name = H5std_string( attr_name );
#ifdef NO_STATIC_CAST
UserData4Aiterate* myData = (UserData4Aiterate *) op_data;
#else
UserData4Aiterate* myData = static_cast <UserData4Aiterate *> (op_data);
#endif
myData->op( *myData->object, s_attr_name, myData->opData );
return 0;
}
//--------------------------------------------------------------------------
// Function: H5Object default constructor (protected)
// Description
// The id is set by IdComponent() but subclass constructor will
// set it to a valid HDF5 id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Object::H5Object() : IdComponent(0) {}
H5Object::H5Object() : H5Location() {}
//--------------------------------------------------------------------------
// Function: H5Object overloaded constructor (protected)
@@ -69,9 +51,118 @@ H5Object::H5Object() : IdComponent(0) {}
// Parameters object_id - IN: Id of an existing HDF5 object
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Object::H5Object( const hid_t object_id ) : IdComponent( object_id ) {}
H5Object::H5Object( const hid_t object_id ) : H5Location( object_id ) {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: getObjName
///\brief Given an id, returns the type of the object.
///\return The name of the object
// Programmer Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
ssize_t H5Object::getObjName(char *obj_name, size_t buf_size) const
{
// H5Iget_name will get buf_size-1 chars of the name to null terminate it
ssize_t name_size = H5Iget_name(getId(), obj_name, buf_size);
// If H5Iget_name returns a negative value, raise an exception
if (name_size < 0)
{
throw Exception(inMemFunc("getObjName"), "H5Iget_name failed");
}
else if (name_size == 0)
{
throw Exception(inMemFunc("getObjName"), "Object must have a name, but name length is 0");
}
// Return length of the name
return(name_size);
}
//--------------------------------------------------------------------------
// Function: H5Object::getObjName
///\brief Returns the name of this object as an \a H5std_string.
///\return Name of the object
///\exception H5::Exception
// Programmer Binh-Minh Ribler - Mar, 2014
// Modification
//--------------------------------------------------------------------------
H5std_string H5Object::getObjName() const
{
H5std_string obj_name(""); // object name to return
// Preliminary call to get the size of the object name
ssize_t name_size = H5Iget_name(getId(), NULL, (size_t)0);
// If H5Iget_name failed, throw exception
if (name_size < 0)
{
throw Exception(inMemFunc("getObjName"), "H5Iget_name failed");
}
else if (name_size == 0)
{
throw Exception(inMemFunc("getObjName"), "Object must have a name, but name length is 0");
}
// Object's name exists, retrieve it
else if (name_size > 0)
{
char* name_C = new char[name_size+1]; // temporary C-string
HDmemset(name_C, 0, name_size+1); // clear buffer
// Use overloaded function
name_size = getObjName(name_C, name_size+1);
// Convert the C object name to return
obj_name = name_C;
// Clean up resource
delete []name_C;
}
// Return object's name
return(obj_name);
}
//--------------------------------------------------------------------------
// Function: H5Object::getObjName
///\brief Gets the name of this object, returning its length.
///\param obj_name - OUT: Buffer for the name string as \a H5std_string
///\param len - IN: Desired length of the name, default to 0
///\return Actual length of the object name
///\exception H5::Exception
///\par Description
/// This function retrieves the object's name as an std string.
/// buf_size can specify a specific length or default to 0, in
/// which case the entire name will be retrieved.
// Programmer Binh-Minh Ribler - Mar, 2014
//--------------------------------------------------------------------------
ssize_t H5Object::getObjName(H5std_string& obj_name, size_t len) const
{
ssize_t name_size = 0;
// If no length is provided, get the entire object name
if (len == 0)
{
obj_name = getObjName();
name_size = obj_name.length();
}
// If length is provided, get that number of characters in name
else
{
char* name_C = new char[len+1]; // temporary C-string
HDmemset(name_C, 0, len+1); // clear buffer
// Use overloaded function
name_size = getObjName(name_C, len+1);
// Convert the C object name to return
obj_name = name_C;
// Clean up resource
delete []name_C;
}
// Otherwise, keep obj_name intact
// Return name size
return(name_size);
}
//--------------------------------------------------------------------------
// Function: H5Object copy constructor
@@ -80,494 +171,7 @@ H5Object::H5Object( const hid_t object_id ) : IdComponent( object_id ) {}
///\param original - IN: H5Object instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Object::H5Object( const H5Object& original ) : IdComponent( original ) {}
//--------------------------------------------------------------------------
// Function: H5Object::createAttribute
///\brief Creates an attribute for a group, dataset, or named datatype.
///\param name - IN: Name of the attribute
///\param data_type - IN: Datatype for the attribute
///\param data_space - IN: Dataspace for the attribute - only simple
/// dataspaces are allowed at this time
///\param create_plist - IN: Creation property list - default to
/// PropList::DEFAULT
///\return Attribute instance
///\exception H5::AttributeIException
///\par Description
/// The attribute name specified in \a name must be unique.
/// Attempting to create an attribute with the same name as an
/// existing attribute will raise an exception, leaving the
/// pre-existing attribute intact. To overwrite an existing
/// attribute with a new attribute of the same name, first
/// delete the existing one with \c H5Object::removeAttr, then
/// recreate it with this function.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::createAttribute( const char* name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const
{
hid_t type_id = data_type.getId();
hid_t space_id = data_space.getId();
hid_t plist_id = create_plist.getId();
hid_t attr_id = H5Acreate2(getId(), name, type_id, space_id, plist_id, H5P_DEFAULT );
// If the attribute id is valid, create and return the Attribute object
if( attr_id > 0 )
{
Attribute attr( attr_id );
return( attr );
}
else
throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed");
}
//--------------------------------------------------------------------------
// Function: H5Object::createAttribute
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::createAttribute( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const
{
return( createAttribute( name.c_str(), data_type, data_space, create_plist ));
}
//--------------------------------------------------------------------------
// Function: H5Object::openAttribute
///\brief Opens an attribute given its name.
///\param name - IN: Name of the attribute
///\return Attribute instance
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const char* name ) const
{
hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
return( attr );
}
else
{
throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Object::openAttribute
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const H5std_string& name ) const
{
return( openAttribute( name.c_str()) );
}
//--------------------------------------------------------------------------
// Function: H5Object::openAttribute
///\brief Opens an attribute given its index.
///\param idx - IN: Index of the attribute, a 0-based, non-negative integer
///\return Attribute instance
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const unsigned int idx ) const
{
hid_t attr_id = H5Aopen_by_idx(getId(), ".", H5_INDEX_CRT_ORDER,
H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
return( attr );
}
else
{
throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Object::iterateAttrs
///\brief Iterates a user's function over all the attributes of an H5
/// object, which may be a group, dataset or named datatype.
///\param user_op - IN: User's function to operate on each attribute
///\param idx - IN/OUT: Starting (IN) and ending (OUT) attribute indices
///\param op_data - IN: User's data to pass to user's operator function
///\return Returned value of the last operator if it was non-zero, or
/// zero if all attributes were processed
///\exception H5::AttributeIException
///\par Description
/// For information, please refer to the C layer Reference Manual
/// at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5A.html#Annot-Iterate
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data )
{
// store the user's function and data
UserData4Aiterate* userData = new UserData4Aiterate;
userData->opData = op_data;
userData->op = user_op;
userData->object = this;
// call the C library routine H5Aiterate2 to iterate the attributes
hsize_t idx = _idx ? (hsize_t)*_idx : 0;
int ret_value = H5Aiterate2(getId(), H5_INDEX_NAME, H5_ITER_INC, &idx,
userAttrOpWrpr, (void *) userData);
// release memory
delete userData;
if( ret_value >= 0 ) {
/* Pass back update index value to calling code */
if (_idx)
*_idx = (unsigned)idx;
return( ret_value );
}
else // raise exception when H5Aiterate returns a negative value
throw AttributeIException(inMemFunc("iterateAttrs"), "H5Aiterate2 failed");
}
//--------------------------------------------------------------------------
// Function: H5Object::getNumAttrs
///\brief Returns the number of attributes attached to this HDF5 object.
///\return Number of attributes
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Object::getNumAttrs() const
{
H5O_info_t oinfo; /* Object info */
if(H5Oget_info(getId(), &oinfo) < 0)
throw AttributeIException(inMemFunc("getNumAttrs"), "H5Oget_info failed");
else
return( (int)oinfo.num_attrs );
}
//--------------------------------------------------------------------------
// Function: H5Object::removeAttr
///\brief Removes the named attribute from this object.
///\param name - IN: Name of the attribute to be removed
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::removeAttr( const char* name ) const
{
herr_t ret_value = H5Adelete(getId(), name);
if( ret_value < 0 )
throw AttributeIException(inMemFunc("removeAttr"), "H5Adelete failed");
}
//--------------------------------------------------------------------------
// Function: H5Object::removeAttr
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::removeAttr( const H5std_string& name ) const
{
removeAttr( name.c_str() );
}
//--------------------------------------------------------------------------
// Function: H5Object::renameAttr
///\brief Renames the named attribute from this object.
///\param oldname - IN: Name of the attribute to be renamed
///\param newname - IN: New name ame of the attribute
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Mar, 2005
//--------------------------------------------------------------------------
void H5Object::renameAttr(const char* oldname, const char* newname) const
{
herr_t ret_value = H5Arename(getId(), oldname, newname);
if (ret_value < 0)
throw AttributeIException(inMemFunc("renameAttr"), "H5Arename failed");
}
//--------------------------------------------------------------------------
// Function: H5Object::renameAttr
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for the names.
// Programmer Binh-Minh Ribler - Mar, 2005
//--------------------------------------------------------------------------
void H5Object::renameAttr(const H5std_string& oldname, const H5std_string& newname) const
{
renameAttr (oldname.c_str(), newname.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Object::flush
///\brief Flushes all buffers associated with a file to disk.
///\param scope - IN: Specifies the scope of the flushing action,
/// which can be either of these values:
/// \li \c H5F_SCOPE_GLOBAL - Flushes the entire virtual file
/// \li \c H5F_SCOPE_LOCAL - Flushes only the specified file
///\exception H5::AttributeIException
///\par Description
/// This object is used to identify the file to be flushed.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::flush(H5F_scope_t scope) const
{
herr_t ret_value = H5Fflush(getId(), scope);
if( ret_value < 0 )
{
throw FileIException(inMemFunc("flush"), "H5Fflush failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Object::getFileName
///\brief Gets the name of the file, in which this HDF5 object belongs.
///\return File name
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
H5std_string H5Object::getFileName() const
{
try {
return(p_get_file_name());
}
catch (IdComponentException E) {
throw FileIException(inMemFunc("getFileName"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Object::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Object::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
{
herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Object::reference
///\brief Creates a reference to an HDF5 object or a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced
///\param dataspace - IN: Dataspace with selection
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT \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 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 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 H5Object::reference(void* ref, const H5std_string& name) const
{
reference(ref, name.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Object::p_dereference (protected)
// Purpose Dereference a ref into an hdf5 object.
// Parameters
// loc_id - IN: An hdf5 identifier specifying the location of the
// referenced object
// ref - IN: Reference pointer
// ref_type - IN: Reference type
// Exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May 2008 - BMR
// Moved from IdComponent.
//--------------------------------------------------------------------------
hid_t H5Object::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
temp_id = H5Rdereference2(loc_id, H5P_DEFAULT, ref_type, ref);
if (temp_id < 0)
{
throw ReferenceException("", "H5Rdereference failed");
}
// No failure, set id to the object
return(temp_id);
}
//--------------------------------------------------------------------------
// Function: H5Object::dereference
///\brief Dereferences a reference into an HDF5 object, given an HDF5 object.
///\param obj - IN: Object specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Object::dereference(H5Object& obj, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
try {
temp_id = p_dereference(obj.getId(), ref, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException("H5Object::dereference - located by object", E.getDetailMsg());
}
p_setId(temp_id);
}
//--------------------------------------------------------------------------
// Function: H5Object::dereference
///\brief Dereferences a reference into an HDF5 object, given an HDF5 file.
///\param h5file - IN: HDF5 file specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Object::dereference(H5File& h5file, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
try {
temp_id = p_dereference(h5file.getId(), ref, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException("H5Object::dereference - located by file", E.getDetailMsg());
}
p_setId(temp_id);
}
//--------------------------------------------------------------------------
// Function: H5Object::dereference
///\brief Dereferences a reference into an HDF5 object, given an attribute.
///\param attr - IN: Attribute specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Object::dereference(Attribute& attr, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
try {
temp_id = p_dereference(attr.getId(), ref, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException("H5Object::dereference - located by attribute", E.getDetailMsg());
}
p_setId(temp_id);
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: H5Object::p_get_obj_type (protected)
// Purpose Retrieves the type of object that an object reference points to.
// Parameters
// ref - IN: Reference to query
// ref_type - IN: Type of reference to query
// Return An object type, which can be one of the following:
// H5G_LINK Object is a symbolic link.
// H5G_GROUP Object is a group.
// H5G_DATASET Object is a dataset.
// H5G_TYPE Object is a named datatype
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t H5Object::p_get_obj_type(void *ref, H5R_type_t ref_type) const
{
H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref);
if (obj_type == H5G_UNKNOWN)
{
throw IdComponentException("", "H5Rget_obj_type failed");
}
return(obj_type);
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: H5Object::p_get_region (protected)
// Purpose Retrieves a dataspace with the region pointed to selected.
// Parameters
// ref_type - IN: Type of reference to get region of - default
// to H5R_DATASET_REGION
// ref - IN: Reference to get region of
// Return Dataspace id
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
hid_t H5Object::p_get_region(void *ref, H5R_type_t ref_type) const
{
hid_t space_id = H5Rget_region(getId(), ref_type, ref);
if (space_id < 0)
{
throw IdComponentException("", "H5Rget_region failed");
}
return(space_id);
}
H5Object::H5Object( const H5Object& original ) : H5Location( original ) {}
//--------------------------------------------------------------------------
// Function: H5Object destructor
@@ -575,6 +179,7 @@ hid_t H5Object::p_get_region(void *ref, H5R_type_t ref_type) const
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5Object::~H5Object() {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
#ifndef H5_NO_NAMESPACE
} // end namespace

View File

@@ -14,115 +14,58 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5Object_H
#define _H5Object_H
#ifndef __H5Object_H
#define __H5Object_H
#include "H5Location.h"
#include "H5Classes.h" // constains forward class declarations
// H5Object is a baseclass. It has these subclasses:
// Group, DataSet, and DataType.
// DataType, in turn, has several specific datatypes as subclasses.
// Modification:
// Sept 18, 2012: Added class H5Location in between IdComponent and
// H5Object. An H5File now inherits from H5Location. All HDF5
// wrappers in H5Object are moved up to H5Location. H5Object
// is left mostly empty for future wrappers that are only for
// group, dataset, and named datatype. Note that the reason for
// adding H5Location instead of simply moving H5File to be under
// H5Object is H5File is not an HDF5 object, and renaming H5Object
// to H5Location will risk breaking user applications.
// -BMR
// Apr 2, 2014: Added wrapper getObjName for H5Iget_name
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/*! \class H5Object
\brief Class H5Object is a bridge between H5Location and DataSet, DataType,
and Group.
All the wrappers in H5Object were moved to H5Location.
*/
class H5_DLLCPP H5Object : public H5Location {
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
class H5_DLLCPP H5Object; // forward declaration for UserData4Aiterate
// Define the operator function pointer for H5Aiterate().
typedef void (*attr_operator_t)( H5Object& loc/*in*/,
const H5std_string attr_name/*in*/,
void *operator_data/*in,out*/);
class UserData4Aiterate { // user data for attribute iteration
public:
attr_operator_t op;
void* opData;
H5Object* object;
};
#endif // DOXYGEN_SHOULD_SKIP_THIS
// The above part is being moved into Iterator, but not completed
class H5_DLLCPP H5Object : public IdComponent {
public:
// Creates an attribute for a group, dataset, or named datatype.
// PropList is currently not used, so always be default.
Attribute createAttribute( const char* name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const;
Attribute createAttribute( const H5std_string& name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const;
// Opens an attribute given its name.
Attribute openAttribute( const char* name ) const;
Attribute openAttribute( const H5std_string& name ) const;
// Opens an attribute given its index.
Attribute openAttribute( const unsigned int idx ) const;
// Flushes all buffers associated with this object to disk
void flush( H5F_scope_t scope ) const;
// Gets the name of the file, in which this HDF5 object belongs.
H5std_string getFileName() const;
// Determines the number of attributes attached to this object.
int getNumAttrs() const;
// Iterate user's function over the attributes of this object
int iterateAttrs( attr_operator_t user_op, unsigned* idx = NULL, void* op_data = NULL );
// Removes the named attribute from this object.
void removeAttr( const char* name ) const;
void removeAttr( const H5std_string& name ) const;
// Renames the attribute to a new name.
void renameAttr(const char* oldname, const char* newname) const;
void renameAttr(const H5std_string& oldname, const H5std_string& newname) const;
// Creates a reference to a named Hdf5 object or to a dataset region
// in this object.
void reference(void* ref, const char* name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
void reference(void* ref, const char* name) const;
void reference(void* ref, const H5std_string& name) const;
// Open a referenced HDF5 object whose location is specified by either
// a file, an HDF5 object, or an attribute.
void dereference(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
void dereference(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
void dereference(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// Copy constructor: makes copy of an H5Object object.
H5Object(const H5Object& original);
// Gets the name of this HDF5 object, i.e., Group, DataSet, or
// DataType.
ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
H5std_string getObjName() const;
// Noop destructor.
virtual ~H5Object();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Default constructor
H5Object();
// 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 */
@@ -130,4 +73,4 @@ class H5_DLLCPP H5Object : public IdComponent {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5Object_H

View File

@@ -44,7 +44,10 @@ namespace H5 {
//--------------------------------------------------------------------------
PredType::PredType( const hid_t predtype_id ) : AtomType( predtype_id )
{
id = H5Tcopy(predtype_id);
if (predtype_id == H5CPP_EXITED)
id = predtype_id;
else
id = H5Tcopy(predtype_id);
}
//--------------------------------------------------------------------------
@@ -53,6 +56,7 @@ PredType::PredType( const hid_t predtype_id ) : AtomType( predtype_id )
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PredType::PredType() : AtomType() {}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: PredType copy constructor
@@ -62,7 +66,9 @@ PredType::PredType() : AtomType() {}
//--------------------------------------------------------------------------
PredType::PredType( const PredType& original ) : AtomType( original ) {}
const PredType PredType::NotAtexit; // only for atexit/global dest. problem
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Flag to terminate HDF5 library in DataType::~DataType
const PredType PredType::AtExit(H5CPP_EXITED);
// Definition of pre-defined types
const PredType PredType::C_S1( H5T_C_S1 );
@@ -266,22 +272,12 @@ PredType& PredType::operator=( const PredType& rhs )
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// These dummy functions do not inherit from DataType - they'll
// throw an DataTypeIException if invoked.
void PredType::commit( H5File& loc, const char* name )
void PredType::commit(H5Location& loc, const char* name )
{
throw DataTypeIException("PredType::commit", "Error: Attempted to commit a predefined datatype. Invalid operation!" );
}
void PredType::commit( H5File& loc, const H5std_string& name )
{
commit( loc, name.c_str());
}
void PredType::commit( H5Object& loc, const char* name )
{
throw DataTypeIException("PredType::commit", "Error: Attempted to commit a predefined datatype. Invalid operation!" );
}
void PredType::commit( H5Object& loc, const H5std_string& name )
void PredType::commit(H5Location& loc, const H5std_string& name )
{
commit( loc, name.c_str());
}

View File

@@ -14,21 +14,33 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// PredType holds the definition of all the HDF5 predefined datatypes.
// These types can only be made copy of, not created by H5Tcreate or
// closed by H5Tclose. They are treated as constants.
/////////////////////////////////////////////////////////////////////
#ifndef _H5PredType_H
#define _H5PredType_H
#ifndef __H5PredType_H
#define __H5PredType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
/* This constant is defined for a workaround to eliminate memory leaks due to
the library being re-initiated when PredType destructors are invoked. A
PredType instant with H5CPP_EXITED as the value of its "id" is constructed
before the other PredType objects are created. At exit, when this special
PredType object is to be destructed, no HDF5 library function will be called
and the library will be terminated. -BMR, Mar 30, 2012 */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define H5CPP_EXITED -3 // -3 is less likely to be used elsewhere
#endif // DOXYGEN_SHOULD_SKIP_THIS
/*! \class PredType
\brief Class PredType holds the definition of all the HDF5 predefined
datatypes.
These types can only be made copy of, not created by H5Tcreate or
closed by H5Tclose. They are treated as constants.
*/
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
@@ -218,20 +230,18 @@ class H5_DLLCPP PredType : public AtomType {
static const PredType NATIVE_UINT_FAST64;
#endif /* H5_SIZEOF_UINT_FAST64_T */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// These dummy functions do not inherit from DataType - they'll
// throw a DataTypeIException if invoked.
void commit( H5File& loc, const H5std_string& name );
void commit( H5File& loc, const char* name );
void commit( H5Object& loc, const H5std_string& name );
void commit( H5Object& loc, const char* name );
/*! \brief This dummy function do not inherit from DataType - it will
throw a DataTypeIException if invoked.
*/
void commit(H5Location& loc, const H5std_string& name );
/*! \brief This dummy function do not inherit from DataType - it will
throw a DataTypeIException if invoked.
*/
void commit(H5Location& loc, const char* name );
/*! \brief This dummy function do not inherit from DataType - it will
throw a DataTypeIException if invoked.
*/
bool committed();
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
// added this to work around the atexit/global destructor problem
// temporarily - it'll prevent the use of atexit to clean up
static const PredType NotAtexit; // not working yet
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -243,8 +253,14 @@ class H5_DLLCPP PredType : public AtomType {
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
// Added this to work around the atexit/global destructor problem.
// It'll help to terminate the library after other PredType instances
// are closed. -BMR, Mar 30, 2012
static const PredType AtExit;
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5PredType_H

View File

@@ -39,14 +39,14 @@ namespace H5 {
//--------------------------------------------------------------------------
///\brief Constant for default property.
//--------------------------------------------------------------------------
const PropList PropList::DEFAULT( H5P_DEFAULT );
const PropList PropList::DEFAULT;
//--------------------------------------------------------------------------
// Function Default constructor
///\brief Default constructor: creates a stub property list object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList() : IdComponent(), id(0) {}
PropList::PropList() : IdComponent(), id(H5P_DEFAULT) {}
//--------------------------------------------------------------------------
// Function: PropList copy constructor
@@ -74,6 +74,9 @@ PropList::PropList(const PropList& original) : IdComponent(original)
//--------------------------------------------------------------------------
PropList::PropList( const hid_t plist_id ) : IdComponent()
{
if (plist_id <= 0)
id = H5P_DEFAULT;
H5I_type_t id_type = H5Iget_type(plist_id);
switch (id_type) {
case H5I_GENPROP_CLS:
@@ -216,7 +219,8 @@ void PropList::copyProp( PropList& dest, PropList& src, const H5std_string& name
//--------------------------------------------------------------------------
// Function: PropList::getId
// Purpose: Get the id of this attribute
///\brief Get the id of this property list
///\return Property list identifier
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
@@ -229,6 +233,7 @@ hid_t PropList::getId() const
return(id);
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: PropList::p_setId
///\brief Sets the identifier of this object to a new value.
@@ -253,6 +258,7 @@ void PropList::p_setId(const hid_t new_id)
// reset object's id to the given id
id = new_id;
}
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: PropList::close
@@ -271,7 +277,7 @@ void PropList::close()
throw PropListIException(inMemFunc("close"), "H5Pclose failed");
}
// reset the id
id = 0;
id = H5I_INVALID_HID;
}
}
@@ -384,13 +390,19 @@ void PropList::getProperty(const char* name, void* value) const
//--------------------------------------------------------------------------
H5std_string PropList::getProperty(const char* name) const
{
// Get property size first
size_t size = getPropSize(name);
// Allocate buffer then get the property
char* prop_strg_C = new char[size+1]; // temporary C-string for C API
HDmemset(prop_strg_C, 0, size+1); // clear buffer
herr_t ret_value = H5Pget(id, name, prop_strg_C); // call C API
// Throw exception if H5Pget returns failure
if (ret_value < 0)
{
delete []prop_strg_C;
throw PropListIException(inMemFunc("getProperty"), "H5Pget failed");
}
@@ -479,7 +491,7 @@ H5std_string PropList::getClassName() const
if (temp_str != NULL)
{
H5std_string class_name(temp_str);
HDfree(temp_str);
H5free_memory(temp_str);
return(class_name);
}
else
@@ -570,7 +582,7 @@ void PropList::setProperty(const H5std_string& name, void* value) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c H5std_string
///\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 H5std_string& name, H5std_string& strg) const

View File

@@ -14,13 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5PropList_H
#define _H5PropList_H
#ifndef __H5PropList_H
#define __H5PropList_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! Class PropList provides operations for generic property lists.
class H5_DLLCPP PropList : public IdComponent {
public:
// Default property list
@@ -94,7 +95,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.
@@ -110,13 +111,15 @@ class H5_DLLCPP PropList : public IdComponent {
virtual ~PropList();
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
hid_t id; // HDF5 property list id
// Sets the property list id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif // _H5PropList_H
#endif // __H5PropList_H

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
@@ -146,6 +146,13 @@ StrType::StrType( const DataSet& dataset ) : AtomType ()
///\brief Retrieves the character set type of this string datatype.
///\return Character set type, which can be:
/// \li \c H5T_CSET_ASCII (0) - Character set is US ASCII.
///\note
/// ASCII and UTF-8 Unicode are the only currently supported character
/// encodings. Extended ASCII encodings (for example, ISO 8859) are not
/// supported. This encoding policy is not enforced by the HDF5 Library.
/// Using encodings other than ASCII and UTF-8 can lead to compatibility
/// and usability problems. See the C API entry H5Pset_char_encoding for
/// more information.
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
@@ -166,6 +173,13 @@ H5T_cset_t StrType::getCset() const
///\brief Sets character set to be used.
///\param cset - IN: character set type, which can be:
/// \li \c H5T_CSET_ASCII (0) - Character set is US ASCII.
///\note
/// ASCII and UTF-8 Unicode are the only currently supported character
/// encodings. Extended ASCII encodings (for example, ISO 8859) are not
/// supported. This encoding policy is not enforced by the HDF5 Library.
/// Using encodings other than ASCII and UTF-8 can lead to compatibility
/// and usability problems. See the C API entry H5Pset_char_encoding for
/// more information.
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
@@ -209,7 +223,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

@@ -14,13 +14,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5StrType_H
#define _H5StrType_H
#ifndef __H5StrType_H
#define __H5StrType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! Class StrType operates on HDF5 string datatypes.
class H5_DLLCPP StrType : public AtomType {
public:
// Creates a string type using a predefined type
@@ -47,7 +48,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
@@ -65,4 +66,4 @@ class H5_DLLCPP StrType : public AtomType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5StrType_H

View File

@@ -14,23 +14,21 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Class VarLenType inherits from DataType and provides wrappers for
// the HDF5 C's Variable-length Datatypes.
#ifndef _H5VarLenType_H
#define _H5VarLenType_H
#ifndef __H5VarLenType_H
#define __H5VarLenType_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
//! VarLenType operates on the HDF5 C's Variable-length Datatypes.
class H5_DLLCPP VarLenType : public DataType {
public:
// Constructor that creates a variable-length datatype based
// 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.
@@ -49,4 +47,4 @@ class H5_DLLCPP VarLenType : public DataType {
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
#endif // __H5VarLenType_H

View File

@@ -22,7 +22,7 @@ include $(top_srcdir)/config/commence.am
include $(top_srcdir)/config/lt_vers.am
# Include src directory
INCLUDES=-I$(top_srcdir)/src
AM_CPPFLAGS+=-I$(top_srcdir)/src
# This is our main target
lib_LTLIBRARIES=libhdf5_cpp.la
@@ -40,12 +40,12 @@ bin_SCRIPTS=h5c++
# Source files for the library
libhdf5_cpp_la_SOURCES=H5Exception.cpp H5IdComponent.cpp H5Library.cpp \
H5Attribute.cpp H5Object.cpp H5PropList.cpp H5FaccProp.cpp \
H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp H5DataType.cpp \
H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp H5PredType.cpp \
H5EnumType.cpp H5IntType.cpp H5FloatType.cpp H5StrType.cpp \
H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp H5DataSet.cpp \
H5CommonFG.cpp H5Group.cpp H5File.cpp
H5Attribute.cpp H5Location.cpp H5Object.cpp H5PropList.cpp \
H5FaccProp.cpp H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp \
H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp \
H5PredType.cpp H5EnumType.cpp H5IntType.cpp H5FloatType.cpp \
H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp \
H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp
# HDF5 C++ library depends on HDF5 Library.
libhdf5_cpp_la_LIBADD=$(LIBHDF5)
@@ -55,8 +55,9 @@ include_HEADERS=H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h \
H5CommonFG.h H5CompType.h H5DataSet.h H5DataSpace.h H5DataType.h \
H5DcreatProp.h H5DxferProp.h H5EnumType.h H5Exception.h H5FaccProp.h \
H5FcreatProp.h H5File.h H5FloatType.h H5Group.h H5IdComponent.h \
H5Include.h H5IntType.h H5Library.h H5Object.h H5PredType.h \
H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h H5VarLenType.h
H5Include.h H5IntType.h H5Library.h H5Location.h H5Object.h \
H5PredType.h H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h \
H5VarLenType.h
# h5c++ and libhdf5.settings are generated during configure. Remove only when
# distclean.

Some files were not shown because too many files have changed in this diff Show More