diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2004-06-24 22:19:05 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2004-06-24 22:19:05 (GMT) |
commit | ac54089f54775e12acf235e22b2595a884a0d470 (patch) | |
tree | 835ebb484849185f18168c8904e520c1c66c97df | |
parent | 097510137d908c35ea112012e4df0fadea50ee06 (diff) | |
download | hdf5-ac54089f54775e12acf235e22b2595a884a0d470.zip hdf5-ac54089f54775e12acf235e22b2595a884a0d470.tar.gz hdf5-ac54089f54775e12acf235e22b2595a884a0d470.tar.bz2 |
[svn-r8739] Purpose: New feature and Bug fix
Description: 1. Added H5Fget_filesize and test(in file_handle.c) which returns
the actual file size of an opened file. Also added to C++ API and test.
2. The error tests were messed up in test/Makefile.in.
Solution: 1. Call H5FDget_eof to return file size. 2. Corrected.
Platforms tested: h5committest
Misc. update: RELEASE.txt
-rw-r--r-- | c++/src/H5File.cpp | 18 | ||||
-rw-r--r-- | c++/src/H5File.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index 3a28543..3f3b714 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -468,6 +468,7 @@ DataSpace H5File::getRegion(void *ref, H5R_type_t ref_type) const DataSpace dataspace(p_get_region(ref, ref_type)); return(dataspace); } + //-------------------------------------------------------------------------- // Function: H5File::getLocId // Purpose: Get the id of this file @@ -482,6 +483,23 @@ hid_t H5File::getLocId() const } //-------------------------------------------------------------------------- +// Function: H5File::getFileSize +///\brief Retrieves the file size of the HDF5 file. This function +/// is called after an existing file is opened in order +/// to learn the true size of the underlying file. +///\exception H5::FileIException +// Programmer Raymond Lu - June 24, 2004 +//-------------------------------------------------------------------------- +haddr_t H5File::getFileSize(void) const +{ + haddr_t ret_value = H5Fget_filesize(id); + if( ret_value < 0 ) + { + throw FileIException("H5File::getFileSize", "H5Fget_filesize failed"); + } +} + +//-------------------------------------------------------------------------- // Function: H5File::p_close (private) ///\brief Closes this H5 file. ///\exception H5::FileIException diff --git a/c++/src/H5File.h b/c++/src/H5File.h index b3edbb6..e19f3f8 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -72,6 +72,9 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { // Retrieves a dataspace with the region pointed to selected. DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const; + // Retrieves the file size of an opened file. + haddr_t getFileSize() const; + // Reopens this file void reopen(); |