halapi
hierarchichalalignmentformatapi
|
#include <hdf5ExternalArray.h>
Public Member Functions | |
HDF5ExternalArray () | |
virtual | ~HDF5ExternalArray () |
void | create (H5::CommonFG *file, const H5std_string &path, const H5::DataType &dataType, hsize_t numElements, const H5::DSetCreatPropList &cparms=H5::DSetCreatPropList::DEFAULT) |
void | load (H5::CommonFG *file, const H5std_string &path, hsize_t chunksInBuffer=1) |
void | write () |
const char * | get (hsize_t i) |
char * | getUpdate (hsize_t i) |
template<typename T > | |
T | getValue (hsize_t index, hsize_t offset) const |
template<typename T > | |
void | setValue (hsize_t index, hsize_t offset, T value) |
hsize_t | getSize () const |
const H5::DataType & | getDataType () const |
Protected Member Functions | |
void | page (hsize_t i) |
Protected Attributes | |
H5::CommonFG * | _file |
H5std_string | _path |
H5::DataType | _dataType |
H5::DataSpace | _dataSpace |
H5::DataSet | _dataSet |
hsize_t | _size |
hsize_t | _chunkSize |
hsize_t | _dataSize |
hsize_t | _bufStart |
hsize_t | _bufEnd |
hsize_t | _bufSize |
char * | _buf |
H5::DataSpace | _chunkSpace |
bool | _dirty |
Wrapper for a 1-dimensional HDF5 array of fixed length. Array objects are defined (and typed) by the input datatype. The array is paged into memory chunk-by-chunk as needed (using the HDF5 cache as a back-end). We can't use compiler tpying of the input objects (and instead just expose the raw void* data) because the elements' sizes are not known at compile time, and we don't want to move it around once its read.
HDF5ExternalArray::HDF5ExternalArray | ( | ) |
Constructor
HDF5ExternalArray::~HDF5ExternalArray | ( | ) | [virtual] |
Destructor
void HDF5ExternalArray::create | ( | H5::CommonFG * | file, |
const H5std_string & | path, | ||
const H5::DataType & | dataType, | ||
hsize_t | numElements, | ||
const H5::DSetCreatPropList & | cparms = H5::DSetCreatPropList::DEFAULT |
||
) |
Create a new dataset in specifed location
file | Pointer to the HDF5 parent in which to create array |
path | Path within the file for the new array |
dataType | HDF5 Datatype describing contents of array |
numElements | Fixed length of the new array |
cparms | HDF5 options (ie chunking and compression etc) |
const char * hal::HDF5ExternalArray::get | ( | hsize_t | i | ) | [inline] |
Access the raw data at given index
i | index of element to retrieve for reading |
const H5::DataType & hal::HDF5ExternalArray::getDataType | ( | ) | const [inline] |
Get the HDF5 Datatype
hsize_t hal::HDF5ExternalArray::getSize | ( | ) | const [inline] |
Write typed element in the the raw data index
offset | OFfset of element in struct (number of bytes) Number of elements in array |
char * hal::HDF5ExternalArray::getUpdate | ( | hsize_t | i | ) | [inline] |
Write the raw data at given index
i | index of element to retrieve for updating |
T hal::HDF5ExternalArray::getValue | ( | hsize_t | index, |
hsize_t | offset | ||
) | const [inline] |
Access typed value within element in a raw data array
index | Index of element (struct) in the array |
offset | Offset of value within struct (number of bytes) |
void HDF5ExternalArray::load | ( | H5::CommonFG * | file, |
const H5std_string & | path, | ||
hsize_t | chunksInBuffer = 1 |
||
) |
Load an existing dataset into memory
file | Pointer to the HDF5 file in which to create array |
path | Path within the file for the new array |
chunksInBuffer | HDF5 options (ie chunking and compression etc) 0: load entire array into buffer 1: use default chunking (from dataset) N: buffersize will be N chunks. |
void HDF5ExternalArray::page | ( | hsize_t | i | ) | [protected] |
Read chunk from file
void hal::HDF5ExternalArray::setValue | ( | hsize_t | index, |
hsize_t | offset, | ||
T | value | ||
) | [inline] |
Write typed value within element in raw data array
index | Index of element (struct) in the array |
offset | Offset of value within struct (number of bytes) |
value | New value to set |
void HDF5ExternalArray::write | ( | ) |
Write the memory buffer back to the file
char* hal::HDF5ExternalArray::_buf [protected] |
In-memory buffer
hsize_t hal::HDF5ExternalArray::_bufEnd [protected] |
Index of last element in memory buffer
hsize_t hal::HDF5ExternalArray::_bufSize [protected] |
Number of elements in memory buffer
hsize_t hal::HDF5ExternalArray::_bufStart [protected] |
Index of first element in memory buffer
hsize_t hal::HDF5ExternalArray::_chunkSize [protected] |
Size of chunk in elements
H5::DataSpace hal::HDF5ExternalArray::_chunkSpace [protected] |
Dimensional information for in-memory buffer
H5::DataSet hal::HDF5ExternalArray::_dataSet [protected] |
The HDF5 array object
hsize_t hal::HDF5ExternalArray::_dataSize [protected] |
Size of datatype in bytes
H5::DataSpace hal::HDF5ExternalArray::_dataSpace [protected] |
Dataspace (dimension information) of array
H5::DataType hal::HDF5ExternalArray::_dataType [protected] |
Datatype for array
bool hal::HDF5ExternalArray::_dirty [protected] |
Flag saying we should write to disk on write or page-out calls (set by getUpdate())
H5::CommonFG* hal::HDF5ExternalArray::_file [protected] |
Pointer to file that owns this dataset
H5std_string hal::HDF5ExternalArray::_path [protected] |
Path of dataset in file
hsize_t hal::HDF5ExternalArray::_size [protected] |
Number of elements in the array (fixed length)