diff options
Diffstat (limited to 'c++')
-rw-r--r-- | c++/src/H5Attribute.cpp | 4 | ||||
-rw-r--r-- | c++/src/H5File.cpp | 21 | ||||
-rw-r--r-- | c++/src/H5File.h | 3 |
3 files changed, 25 insertions, 3 deletions
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp index e8573c3..89d72a8 100644 --- a/c++/src/H5Attribute.cpp +++ b/c++/src/H5Attribute.cpp @@ -102,7 +102,7 @@ void Attribute::write( const DataType& mem_type, const string& strg ) const const char* strg_C; strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str - herr_t ret_value = H5Awrite( id, mem_type.getId(), strg_C ); + herr_t ret_value = H5Awrite( id, mem_type.getId(), &strg_C ); if( ret_value < 0 ) { throw AttributeIException("Attribute::write", "H5Awrite failed"); @@ -139,7 +139,7 @@ void Attribute::read( const DataType& mem_type, string& strg ) const { size_t size = mem_type.getSize(); char* strg_C = new char[size+1]; // temporary C-string for C API - herr_t ret_value = H5Aread( id, mem_type.getId(), strg_C ); + herr_t ret_value = H5Aread( id, mem_type.getId(), &strg_C ); if( ret_value < 0 ) { throw AttributeIException("Attribute::read", "H5Aread failed"); diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index abcbc6b..b3f1c35 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -148,6 +148,25 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro H5File::H5File( const H5File& original ) : IdComponent( original ) {} //-------------------------------------------------------------------------- +// 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. ///\param name - IN: Name of the file @@ -155,7 +174,7 @@ H5File::H5File( const H5File& original ) : IdComponent( original ) {} ///\exception H5::FileIException // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -bool H5File::isHdf5(const char* name ) +bool H5File::isHdf5(const char* name) { // Calls C routine H5Fis_hdf5 to determine whether the file is in // HDF5 format. It returns positive value, 0, or negative value diff --git a/c++/src/H5File.h b/c++/src/H5File.h index 7e73ef3..84947fd 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -39,6 +39,9 @@ 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; |