OpendTect  6.6
hdf5accessimpl.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: Bert
7  Date: Feb 2018
8 ________________________________________________________________________
9 
10 -*/
11 
12 #include "hdf5common.h"
13 #include "H5Cpp.h"
14 
15 
16 namespace HDF5
17 {
18 
19 class ReaderImpl;
20 class WriterImpl;
21 
23 
25 {
26 public:
27 
30  virtual ~AccessImpl();
31 
32  static void setErrPrint(bool);
33 
34 protected:
35 
36  const char* gtFileName() const;
39 
40  bool haveGroup() const;
41  bool haveDataSet() const;
42  bool atGroup(const char*&) const;
43  bool atDataSet(const char*) const;
44 
45  // no throw
47 
48  H5::Group* selectGroup(const char*) const;
49  H5::DataSet* selectDataSet(const char*) const;
50  H5::H5Object* stScope(const DataSetKey*) const;
51  H5::H5Object* stScope(const DataSetKey*);
52  H5::Group* stGrpScope(const DataSetKey*) const;
53  H5::Group* stGrpScope(const DataSetKey*);
56 
57  void selectSlab(H5::DataSpace&,const SlabSpec&,
58  TypeSet<hsize_t>* pcounts=0) const;
60  static bool haveErrPrint();
61 
62  typedef H5::PredType H5DataType;
64 
66  mutable H5::Group group_;
69 
70 private:
71 
72  AccessImpl(const AccessImpl&) = delete;
73 
74  static bool validH5Obj(const H5::H5Object&);
75 
76  static void disableErrPrint(); // before action with 'normal' throw
77  static void restoreErrPrint(); // after such an action
78  static void enableErrPrint();
79 
80 };
81 
82 
84 {
85 public:
86 
88  "OD", toUiString("OD") );
89 
90  virtual Reader* getReader() const;
91  virtual Writer* getWriter() const;
92 
93  static void initHDF5();
94 
95 };
96 
97 } // namespace HDF5
98 
99 
100 #define mGetDataSpaceDims( dims, nrdims, dataspace ) \
101  TypeSet<hsize_t> dims( nrdims, (hsize_t)0 ); \
102  dataspace.getSimpleExtentDims( dims.arr() )
HDF5::AccessImpl::stDSScope
H5::DataSet * stDSScope(const DataSetKey &)
HDF5::AccessProviderImpl::mDefaultFactoryInstantiation
mDefaultFactoryInstantiation(AccessProvider, AccessProviderImpl, "OD", toUiString("OD"))
HDF5::AccessImpl::stScope
H5::H5Object * stScope(const DataSetKey *)
HDF5::AccessImpl::setErrPrint
static void setErrPrint(bool)
user switch on/off
HDF5::AccessImpl::selectDataSet
H5::DataSet * selectDataSet(const char *) const
HDF5::AccessImpl::selectGroup
H5::Group * selectGroup(const char *) const
HDF5::AccessImpl::atDataSet
bool atDataSet(const char *) const
HDF5::AccessImpl::stDSScope
H5::DataSet * stDSScope(const DataSetKey &) const
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
HDF5::AccessImpl::gtScope
DataSetKey gtScope() const
HDF5::ReaderImpl
Definition: hdf5readerimpl.h:22
od_int64
#define od_int64
Definition: plftypes.h:35
HDF5::Writer
writes to HDF5 file
Definition: hdf5writer.h:43
hdf5common.h
HDF5::Reader
Reads HDF5 file data.
Definition: hdf5reader.h:34
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
HDF5
Definition: hdf5access.h:22
HDF5::AccessImpl::doCloseFile
void doCloseFile(Access &)
HDF5::AccessImpl::h5DataTypeFor
static const H5DataType & h5DataTypeFor(ODDataType)
HDF5::AccessImpl::disableErrPrint
static void disableErrPrint()
sKey::DataSet
FixedString DataSet()
Definition: keystrs.h:56
HDF5::AccessProviderImpl
Definition: hdf5accessimpl.h:84
HDF5::AccessImpl::enableErrPrint
static void enableErrPrint()
HDF5::AccessImpl::group_
H5::Group group_
Definition: hdf5accessimpl.h:66
HDF5::AccessImpl::gtGroupID
od_int64 gtGroupID() const
HDF5::AccessImpl::AccessImpl
AccessImpl(ReaderImpl &)
HDF5::AccessImpl::~AccessImpl
virtual ~AccessImpl()
HDF5::AccessImpl::AccessImpl
AccessImpl(const AccessImpl &)=delete
HDF5::Access
Definition: hdf5access.h:164
HDF5::AccessImpl::acc_
Access & acc_
Definition: hdf5accessimpl.h:65
HDF5::AccessImpl::atGroup
bool atGroup(const char *&) const
HDF5::AccessImpl::AccessImpl
AccessImpl(WriterImpl &)
HDF5::AccessProviderImpl::initHDF5
static void initHDF5()
class initClass()
HDF5::AccessImpl::haveDataSet
bool haveDataSet() const
HDF5::AccessImpl::stGrpScope
H5::Group * stGrpScope(const DataSetKey *)
HDF5::AccessImpl::dataset_
H5::DataSet dataset_
Definition: hdf5accessimpl.h:67
HDF5::AccessImpl::stScope
H5::H5Object * stScope(const DataSetKey *) const
HDF5::AccessImpl::gtFileName
const char * gtFileName() const
OD::DataRepType
DataRepType
Definition: commontypes.h:49
HDF5::WriterImpl
Definition: hdf5writerimpl.h:22
HDF5::AccessProviderImpl::getReader
virtual Reader * getReader() const
HDF5::AccessImpl::selectSlab
void selectSlab(H5::DataSpace &, const SlabSpec &, TypeSet< hsize_t > *pcounts=0) const
can throw, use in try block
HDF5::AccessImpl::haveErrPrint
static bool haveErrPrint()
HDF5::AccessImpl::haveGroup
bool haveGroup() const
HDF5::AccessImpl::H5DataType
H5::PredType H5DataType
Definition: hdf5accessimpl.h:62
HDF5::AccessImpl::stGrpScope
H5::Group * stGrpScope(const DataSetKey *) const
ArrayNDInfo::nr_dims_type
short nr_dims_type
Definition: arrayndinfo.h:28
HDF5::DataSetKey
Definition: hdf5access.h:42
HDF5::AccessImpl::nrdims_
ArrayNDInfo::nr_dims_type nrdims_
Definition: hdf5accessimpl.h:68
HDF5::AccessProviderImpl::getWriter
virtual Writer * getWriter() const
HDF5::AccessProvider
Definition: hdf5access.h:228
HDF5::AccessImpl
brief Mixin for common stuff
Definition: hdf5accessimpl.h:25
HDF5::AccessImpl::validH5Obj
static bool validH5Obj(const H5::H5Object &)
HDF5::AccessImpl::restoreErrPrint
static void restoreErrPrint()
HDF5::SlabSpec
Definition: hdf5access.h:109
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021