GSI Object Oriented Online Offline (Go4) GO4-6.4.0
|
Handle object to access datasets in hdf5 formatted file with go4 event data implementation for std::vector collections. More...
#include <TGo4HDF5DataHandle.h>
Public Member Functions | |
TGo4HDF5VectorDataHandle (const char *name, size_t datasize) | |
create new data handle | |
virtual | ~TGo4HDF5VectorDataHandle () |
void | BuildReadDataset (H5::H5File *file, TGo4HDF5Source *parent) override |
create datasets and buffers for reading this structure from hdf5 file. | |
void | BuildWriteDataset (H5::H5File *file) override |
create datasets for writing memory structure of type into file. | |
void | Read (hsize_t sequencenum, H5::H5File *file) override |
Read event of sequence number from file. | |
void | SetElementSize (size_t len) |
remember size of a single element (structure) in this collection, if it is one. | |
void | SetObjectPointer (void *memptr) override |
define location of corresponding object in memory. | |
void | Write (hsize_t sequencenum, H5::H5File *ile) override |
Write event of sequence number from file. | |
![]() | |
TGo4HDF5BasicDataHandle (const char *name, size_t datasize) | |
create new data handle | |
virtual | ~TGo4HDF5BasicDataHandle () |
![]() | |
TGo4HDF5DataHandle (const char *name, size_t datasize) | |
create new data handle | |
virtual | ~TGo4HDF5DataHandle () |
TGo4HDF5DataHandle * | AddSubMember (const char *name, size_t datasize, const char *collectiontype=nullptr) |
create new subhandle for complex member component on heap. | |
void * | Data () const |
TGo4HDF5DataHandle * | FindSubMember (const char *name) |
lookup if subcomponent of name already is in list. | |
TGo4HDF5DataHandle * | GetSubMember (UInt_t ix) |
H5::CompType * | GetType () const |
return handle for type descriptor. | |
const char * | GetTypeName () const |
void | InsertTypeMember (const H5std_string &name, size_t offset, const H5::DataType &new_member) |
wrapper function to define contained structure member. | |
void | SetActive (Bool_t on) |
void | SetAllSubMembersActive (Bool_t on) |
void | SetMemberClass (const char *clname) |
type of the member to access from outside | |
void | SetMemberName (const char *name) |
identifier for the member to access from outside using the top event handle | |
void | SetParentOffset (size_t off) |
remember location of this object relative to upper level object. | |
void | SetTopEvent (TGo4EventElement *eve) |
pass the top level event element down the member hierarchy. | |
void | SetTopEventClass (const char *classname) |
pass the top level event element class down the member hierarchy. | |
Protected Attributes | |
size_t | fiElementSize {0} |
size of the (collection element) structure | |
H5::CompType * | fxCollection {nullptr} |
collection type with fxType as entries | |
TGo4HDF5VarContainer | fxVarHandle |
handle for variable arrays | |
![]() | |
Char_t * | fxReadBuffer {nullptr} |
secondary read bounce buffer for hdf5 | |
![]() | |
Bool_t | fbDataSetActive {kFALSE} |
we may disable this dataset temporarily from writing or reading useful for dynamic vector of vector components | |
Bool_t | fbDataSetExists {kFALSE} |
check on the fly if this handle has already created a dataset | |
size_t | fiDataSize {0} |
size of data structure in bytes, for redefining output dataset | |
ULong_t | fiEntries {0} |
number of event entries found in file dataspace | |
size_t | fiParentOffset {0} |
offset of this data structure relative to top level event object | |
size_t | fiReadOffset {0} |
begin of real eventdata payload after event object pointer | |
void * | fxData {nullptr} |
pointer to begin of data in memory | |
H5::DataSet | fxDataSet |
dataset containing the structure | |
H5::DataSpace * | fxDataSpace {nullptr} |
dataspace in memory | |
TGo4EventElement * | fxEvent {nullptr} |
the top level event element to access the current data member from outside | |
TString | fxEventClass |
the top level event element classname to access the current data member from outside | |
H5::DataSpace | fxFileSpace |
dataspace in file | |
TString | fxMemberClass |
classname of the entry for interpreter to operate e.g. | |
TString | fxMemberHandle |
predefined interpreter access command e.g. | |
TGo4HDF5Source * | fxParentSource {nullptr} |
backpointer to parent source for exceptions | |
std::vector< TGo4HDF5DataHandle * > | fxSubcomponents |
collect sub-components of the referenced data object | |
H5::CompType * | fxType {nullptr} |
component type representing the data structure | |
TString | fxTypeName |
identifier of the dataset | |
Additional Inherited Members | |
![]() | |
static TGo4HDF5DataHandleFactory | fxFactory |
![]() | |
void | AllocReadBuffer (size_t size) |
(Re-)allocate read buffer depending on the object size read from file | |
Handle object to access datasets in hdf5 formatted file with go4 event data implementation for std::vector collections.
Definition at line 279 of file TGo4HDF5DataHandle.h.
TGo4HDF5VectorDataHandle::TGo4HDF5VectorDataHandle | ( | const char * | name, |
size_t | datasize ) |
create new data handle
Definition at line 505 of file TGo4HDF5DataHandle.cxx.
References TGo4HDF5BasicDataHandle::TGo4HDF5BasicDataHandle(), fiElementSize, fxCollection, TGo4HDF5DataHandle::fxType, TGo4HDF5DataHandle::fxTypeName, and go4hdfdbg.
Referenced by TGo4HDF5SubVectorDataHandle::TGo4HDF5SubVectorDataHandle().
|
virtual |
Definition at line 524 of file TGo4HDF5DataHandle.cxx.
References fxCollection, TGo4HDF5DataHandle::fxTypeName, and go4hdfdbg.
|
overridevirtual |
create datasets and buffers for reading this structure from hdf5 file.
parent pointer is given for error handling case
Reimplemented from TGo4HDF5BasicDataHandle.
Definition at line 587 of file TGo4HDF5DataHandle.cxx.
References TGo4HDF5BasicDataHandle::BuildReadDataset().
|
overridevirtual |
create datasets for writing memory structure of type into file.
Reimplemented from TGo4HDF5BasicDataHandle.
Definition at line 593 of file TGo4HDF5DataHandle.cxx.
References TGo4HDF5DataHandle::BuildWriteDataset(), TGo4HDF5DataHandle::fbDataSetExists, TGo4HDF5DataHandle::fxDataSet, TGo4HDF5DataHandle::fxDataSpace, TGo4HDF5DataHandle::fxType, TGo4HDF5DataHandle::fxTypeName, fxVarHandle, and go4hdfdbg.
Referenced by Write().
|
overridevirtual |
Read event of sequence number from file.
Reimplemented from TGo4HDF5BasicDataHandle.
Definition at line 616 of file TGo4HDF5DataHandle.cxx.
References TGo4HDF5DataHandle::fbDataSetActive, fiElementSize, TGo4HDF5DataHandle::fxData, TGo4HDF5DataHandle::fxDataSet, TGo4HDF5DataHandle::fxDataSpace, TGo4HDF5DataHandle::fxEvent, TGo4HDF5DataHandle::fxEventClass, TGo4HDF5DataHandle::fxFileSpace, TGo4HDF5DataHandle::fxMemberClass, TGo4HDF5DataHandle::fxMemberHandle, TGo4HDF5DataHandle::fxType, TGo4HDF5DataHandle::fxTypeName, fxVarHandle, go4hdfdbg, and TGo4HDF5DataHandle::Read().
|
inline |
remember size of a single element (structure) in this collection, if it is one.
Otherwise this is size of this class itself
Definition at line 290 of file TGo4HDF5DataHandle.h.
References fiElementSize.
Referenced by TGo4HDF5DataHandleFactory::CreateDataHandle().
|
overridevirtual |
define location of corresponding object in memory.
This is base pointer for all member specific offsets.
Reimplemented from TGo4HDF5DataHandle.
Definition at line 530 of file TGo4HDF5DataHandle.cxx.
References TGo4HDF5DataHandle::fbDataSetActive, fiElementSize, TGo4HDF5DataHandle::fxData, fxVarHandle, go4hdfdbg, and TGo4HDF5DataHandle::SetObjectPointer().
Referenced by TGo4HDF5SubVectorDataHandle::SetObjectPointer().
|
overridevirtual |
Write event of sequence number from file.
Reimplemented from TGo4HDF5BasicDataHandle.
Definition at line 724 of file TGo4HDF5DataHandle.cxx.
References BuildWriteDataset(), TGo4HDF5DataHandle::fbDataSetActive, TGo4HDF5DataHandle::fxDataSet, TGo4HDF5DataHandle::fxDataSpace, TGo4HDF5DataHandle::fxFileSpace, TGo4HDF5DataHandle::fxType, TGo4HDF5DataHandle::fxTypeName, fxVarHandle, go4hdfdbg, TGo4HDF5DataHandle::SetActive(), and TGo4HDF5DataHandle::Write().
|
protected |
size of the (collection element) structure
Definition at line 318 of file TGo4HDF5DataHandle.h.
Referenced by TGo4HDF5VectorDataHandle(), Read(), SetElementSize(), TGo4HDF5SubVectorDataHandle::SetObjectPointer(), and SetObjectPointer().
|
protected |
collection type with fxType as entries
Definition at line 311 of file TGo4HDF5DataHandle.h.
Referenced by TGo4HDF5VectorDataHandle(), and ~TGo4HDF5VectorDataHandle().
|
protected |
handle for variable arrays
Definition at line 315 of file TGo4HDF5DataHandle.h.
Referenced by BuildWriteDataset(), Read(), TGo4HDF5SubVectorDataHandle::SetObjectPointer(), SetObjectPointer(), and Write().