This commit is contained in:
parent
df228d545b
commit
e2e233b931
3 changed files with 28 additions and 2 deletions
18
src/opt/hdf5/include/h5_dataset.cc.h
Normal file
18
src/opt/hdf5/include/h5_dataset.cc.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
#ifndef __cxz_h5_dataset_cc_h__
|
||||||
|
#define __cxz_h5_dataset_cc_h__
|
||||||
|
|
||||||
|
namespace CNORXZ
|
||||||
|
{
|
||||||
|
namespace hdf5
|
||||||
|
{
|
||||||
|
template <typename T>
|
||||||
|
Dataset& Dataset::init(const ArrayBase<T>& data)
|
||||||
|
{
|
||||||
|
// !!!!
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -26,7 +26,10 @@ namespace CNORXZ
|
||||||
bool exists() const;
|
bool exists() const;
|
||||||
|
|
||||||
Dataset& init(const RangePtr& dataRange, hid_t type);
|
Dataset& init(const RangePtr& dataRange, hid_t type);
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
Dataset& init(const ArrayBase<T>& data);
|
||||||
|
|
||||||
const RangePtr& dataRange() const;
|
const RangePtr& dataRange() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -81,11 +81,16 @@ namespace CNORXZ
|
||||||
|
|
||||||
Dataset& Dataset::init(const RangePtr& dataRange, hid_t type)
|
Dataset& Dataset::init(const RangePtr& dataRange, hid_t type)
|
||||||
{
|
{
|
||||||
// check if type is valid type!!!
|
CXZ_ASSERT(not open(), "tried to initialize dataset that is already extisting");
|
||||||
|
const H5T_class_t tc = H5Tget_class(type);
|
||||||
|
CXZ_ASSERT(tc != H5T_NO_CLASS, "id does not correspond to a data type"); // (did not found anythng better to check if type id is valid)...
|
||||||
const hid_t dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
|
const hid_t dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
|
||||||
// TODO: all sub-ranges explicity!!!:
|
// TODO: all sub-ranges explicity!!!:
|
||||||
const SizeT ndim = dataRange->dim();
|
const SizeT ndim = dataRange->dim();
|
||||||
Vector<hsize_t> exts(ndim);
|
Vector<hsize_t> exts(ndim);
|
||||||
|
for(SizeT i = 0; i != ndim; ++i){
|
||||||
|
exts[i] = static_cast<hsize_t>( dataRange->sub(i)->size() );
|
||||||
|
}
|
||||||
mFilespace = H5Screate_simple(ndim, exts.data(), NULL);
|
mFilespace = H5Screate_simple(ndim, exts.data(), NULL);
|
||||||
mType = type;
|
mType = type;
|
||||||
mId = H5Dcreate(mParent->id(), mName.c_str(), mType, mFilespace,
|
mId = H5Dcreate(mParent->id(), mName.c_str(), mType, mFilespace,
|
||||||
|
|
Loading…
Reference in a new issue