20#include "TDataMember.h"
21#include "TVirtualCollectionProxy.h"
22#include "TBaseClass.h"
39 GO4TRACE((15,
"TGo4HDF5Store::TGo4HDF5Store()", __LINE__, __FILE__));
47 GO4TRACE((15,
"TGo4HDF5Store::TGo4HDF5Store(char*,...)", __LINE__, __FILE__));
55 GO4TRACE((15,
"TGo4HDF5Store::TGo4HDF5Store(TGo4HDF5StoreParameter* par)", __LINE__, __FILE__));
57 TGo4Log::Error(
"TGo4HDF5Store::TGo4HDF5Store(.., TGo4HDF5StoreParameter* is not specified");
60 SetName(par->GetName());
68 GO4TRACE((15,
"TGo4HDF5Store::~TGo4HDF5Store()", __LINE__, __FILE__));
76 TString buffer(GetName());
84 TGo4Log::Info(
"TGo4HDF5Store: Open file %s RECREATE", buffer.Data());
85 }
else if (
fiFlags == H5F_ACC_RDWR) {
86 TGo4Log::Info(
"TGo4HDF5Store: Open file %s for UPDATE", buffer.Data());
87 }
else if (
fiFlags == H5F_ACC_EXCL) {
88 TGo4Log::Info(
"TGo4HDF5Store: Open file %s exclusively", buffer.Data());
93 }
catch (H5::Exception &ex) {
94 TString msg = TString::Format(
"OpenFile with HDF5 exception in %s : %s\n", ex.getCFuncName(), ex.getCDetailMsg());
114 catch (H5::Exception &ex) {
116 TString::Format(
"BuildDataSet with HDF5 exception in %s : %s\n", ex.getCFuncName(), ex.getCDetailMsg());
124 GO4TRACE((12,
"TGo4HDF5Store::Store(TGo4EventElement *)", __LINE__, __FILE__));
135 }
catch (H5::Exception &ex) {
136 TString msg = TString::Format(
"Store() with HDF5 exception in %s : %s\n", ex.getCFuncName(), ex.getCDetailMsg());
170 TGo4Log::Info(
"TGo4HDF5Store: WriteToStore not yet implemented for auxiliary objects of class %s (name:%s)\n",ob->Class()->GetName(), ob->GetName());
The abstract base class for the data elements of which the unpacked events (or detector structure dat...
Central class of Go4Fit package.
UInt_t fiFlags
remember file property flags.
void BuildDataType(TGo4EventElement *event, TGo4HDF5DataHandle *parent=nullptr, Int_t index=0)
Prepare data type from event structure for hdf5.
UInt_t ConvertFileMode(Go4_H5_File_Flags flags)
Convert common go4 filemode flags to hdf5 flags:
Bool_t fbDataSetExists
True if branch already exists.
TGo4HDF5DataHandle * fxHandle
handle object to recursively treat the io of nested event components
hsize_t fiFillCount
counter of filled events.
virtual void DeleteDataSet()
delete dataset resource
virtual void CloseFile()
opens the hdf5 file depending on the setup
TGo4EventElement * fxEvent
Points to event structure to be filled into dataset.
static const char * fgcFILESUF
Standard suffix for file name.
H5::H5File * fxFile
the currently open hdf5 file
Go4_H5_File_Flags GetHDF5Flags() const
Int_t Store(TGo4EventElement *event) override
Stores eventelement event into the storage implementation.
void WriteToStore(TNamed *ob)
used by all Store methods to write with referencing event number in name
void BuildDataSet(TGo4EventElement *event) override
initialize dataset from event structure
void OpenFile(const char *name=nullptr) override
opens the hdf5 file depending on the setup
static void Info(const char *text,...) GO4_PRINTF_ARGS
User shortcut for message with prio 1.
static void Error(const char *text,...) GO4_PRINTF_ARGS
User shortcut for message with prio 3.
Base class for all parameter aggregations, e.g.