A class representing an HDF5 file. More...
#include <HDF5File.h>
Public Member Functions | |
HDF5File (const String &name, ByteIO::OpenOption=ByteIO::Old) | |
Create an HDF5 file object with the given file name (possible tilde or environment variables in it will be expanded). | |
~HDF5File () | |
The destructor closes the file and deletes it when it was opened using ByteIO::Scratch or ByteIO::Delete. | |
void | reopenRW () |
Reopen the underlying file for read/write access. | |
Bool | isWritable () const |
Is the file writable? | |
Bool | isOpenedForDelete () const |
Is the file opened for delete? | |
Bool | isClosed () const |
Is the file temporarily closed? | |
virtual void | close () |
Close the file (temporarily). | |
void | reopen () |
Reopen the file if closed (which may change the HID). | |
void | flush () |
Flush the data to disk. | |
size_t | getChunkCacheSize () const |
Get or set the chunk cache size (in bytes). | |
void | setChunkCacheSize (size_t nbytes) |
Static Public Member Functions | |
static Bool | isHDF5 (const String &name) |
Test if the file with the given name is an HDF5 file. | |
Private Member Functions | |
void | doOpen () |
Open or create the file. | |
HDF5File (const HDF5File &that) | |
Copy constructor cannot be used. | |
HDF5File & | operator= (const HDF5File &that) |
Assignment cannot be used. | |
Private Attributes | |
ByteIO::OpenOption | itsOption |
String | itsName |
Bool | itsDelete |
A class representing an HDF5 file.
Public interface
This class wraps the HDF5 functions to open, create, or close an HDF5 file. If the file is opened as readonly, it is possible to reopen it for read/write (provided the user has the correct privileges). It is also possible to temporarily close the file and reopen it later.
Note: It is ensured that the class and the static function isHDF5
are also defined if HDF5 is not compiled in;
It was overkill to use the HDF5 C++ interface. Instead little wrappers have been written. HDF5File can be embedded in a shared pointer making it possible to share an HDF5 file amongst various HDF5Array objects.
Definition at line 68 of file HDF5File.h.
casacore::HDF5File::HDF5File | ( | const String & | name, | |
ByteIO::OpenOption | = ByteIO::Old | |||
) | [explicit] |
casacore::HDF5File::~HDF5File | ( | ) |
The destructor closes the file and deletes it when it was opened using ByteIO::Scratch or ByteIO::Delete.
casacore::HDF5File::HDF5File | ( | const HDF5File & | that | ) | [private] |
Copy constructor cannot be used.
virtual void casacore::HDF5File::close | ( | ) | [virtual] |
Close the file (temporarily).
Note it will not delete the file; that is only done by the destructor.
Implements casacore::HDF5Object.
void casacore::HDF5File::doOpen | ( | ) | [private] |
Open or create the file.
void casacore::HDF5File::flush | ( | ) |
Flush the data to disk.
size_t casacore::HDF5File::getChunkCacheSize | ( | ) | const |
Get or set the chunk cache size (in bytes).
Note that all data sets in a file share the cache.
Bool casacore::HDF5File::isClosed | ( | ) | const [inline] |
Is the file temporarily closed?
Definition at line 100 of file HDF5File.h.
References casacore::HDF5Object::getHid().
Bool casacore::HDF5File::isOpenedForDelete | ( | ) | const [inline] |
Bool casacore::HDF5File::isWritable | ( | ) | const [inline] |
Is the file writable?
Definition at line 92 of file HDF5File.h.
References itsOption, and casacore::ByteIO::Update.
Assignment cannot be used.
Reimplemented from casacore::HDF5Object.
void casacore::HDF5File::reopen | ( | ) |
Reopen the file if closed (which may change the HID).
void casacore::HDF5File::reopenRW | ( | ) |
Reopen the underlying file for read/write access.
Nothing will be done if the stream is writable already. Otherwise it will be reopened and an exception will be thrown if it is not possible to reopen it for read/write access.
void casacore::HDF5File::setChunkCacheSize | ( | size_t | nbytes | ) |
Bool casacore::HDF5File::itsDelete [private] |
Definition at line 128 of file HDF5File.h.
Referenced by isOpenedForDelete().
String casacore::HDF5File::itsName [private] |
Reimplemented from casacore::HDF5Object.
Definition at line 127 of file HDF5File.h.
Definition at line 126 of file HDF5File.h.
Referenced by isWritable().