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

44 lines
1 KiB
C
Raw Normal View History

2023-01-12 19:29:45 +01:00
#ifndef __cxz_h5_file_h__
#define __cxz_h5_file_h__
#include "h5_content_base.h"
#include <hdf5.h>
namespace CNORXZ
{
namespace hdf5
{
// maybe introduce abstraction layer between as base for File and Group
class File : public ContentBase
{
public:
2023-01-15 03:18:21 +01:00
typedef URange<String> RangeT;
2023-01-12 19:29:45 +01:00
DEFAULT_MEMBERS(File);
File(const String& fname, bool _ro = true);
~File();
virtual ContentType type() const override final;
virtual bool ro() const override final;
virtual File& load() override final;
virtual File& write() override final;
virtual File& close() override final;
virtual MArray<Sptr<ContentBase>>* get() override final;
virtual const MArray<Sptr<ContentBase>>* get() const override final;
2023-01-12 19:29:45 +01:00
virtual String path() const override final;
virtual String filename() const override final;
Int exists() const;
2023-01-15 03:18:21 +01:00
File& set(const RangePtr& range);
File& append(const String& cname);
2023-01-12 19:29:45 +01:00
private:
bool mRo = true;
MArray<ContentPtr> mCont;
};
}
}
#endif