cnorxz/src/opt/hdf5/include/h5_table.h

48 lines
1 KiB
C
Raw Normal View History

2023-01-20 01:05:24 +01:00
#ifndef __cxz_h5_table_h__
#define __cxz_h5_table_h__
#include "h5_content_base.h"
namespace CNORXZ
{
namespace hdf5
{
class Table : public ContentBase
{
public:
DEFAULT_MEMBERS(Table);
Table(const String& name, const ContentBase* _parent);
~Table();
virtual ContentType type() const override final;
virtual bool ro() const override final;
virtual Table& open() override final;
virtual Table& close() override final;
virtual String path() const override final;
virtual String filename() const override final;
2023-01-22 15:41:42 +01:00
Table& openDSet();
2023-01-20 01:05:24 +01:00
template <class F>
2023-01-22 15:41:42 +01:00
decltype(auto) iterRecords(F&& f) const;
template <typename... Ts>
Table& appendRecord(const Tuple<Ts...>& t) const;
template <typename... Ts>
Table& appendRecord(const MArray<Tuple<Ts...>>& t) const;
2023-01-20 01:05:24 +01:00
private:
RangePtr mRecords;
RangePtr mFields; // -> FIndex (position -> offset)
2023-01-22 15:41:42 +01:00
MArray<SizeT> mSizes;
MArray<SizeT> mOffsets;
MArray<hid_t> mTypes;
hid_t mType;
2023-01-20 01:05:24 +01:00
};
}
}
#endif