This class enhances ROOT custom streamer base TClassStreamer and can choose a converter function based on the streamerinfo checksum.
More...
#include <AthenaRootStreamer.h>
|
void | FindVersion (TBuffer *buf, UInt_t *startpos, UInt_t *bcnt) |
|
This class enhances ROOT custom streamer base TClassStreamer and can choose a converter function based on the streamerinfo checksum.
Definition at line 32 of file AthenaRootStreamer.h.
◆ ChecksumSet
◆ ConverterMap
◆ AthenaRootStreamer()
AthenaRootStreamer::AthenaRootStreamer |
( |
const std::string & |
class_name, |
|
|
::Service * |
service = 0 |
|
) |
| |
Constructor.
- Parameters
-
class_name | [IN] name of the class that is stored in the file (in most cases of schema evolution this is the same name as in the dictionary, but it may be different) |
service | [IN] pointer to parent service, used to write out messages to log |
Definition at line 21 of file AthenaRootStreamer.cxx.
◆ ~AthenaRootStreamer()
AthenaRootStreamer::~AthenaRootStreamer |
( |
| ) |
|
|
virtual |
◆ AddConverter()
Add a converter to this streamer.
- Parameters
-
converter | [IN] - converter handle holding user defined converter object |
Definition at line 36 of file AthenaRootStreamer.cxx.
38 return(StatusCode::SUCCESS);
40 return(StatusCode::FAILURE);
◆ Adopt()
StatusCode AthenaRootStreamer::Adopt |
( |
| ) |
|
Adopt (enable) this ROOT custom streamer.
Definition at line 45 of file AthenaRootStreamer.cxx.
48 return(StatusCode::FAILURE);
51 return(StatusCode::SUCCESS);
◆ FindVersion()
void AthenaRootStreamer::FindVersion |
( |
TBuffer * |
buf, |
|
|
UInt_t * |
startpos, |
|
|
UInt_t * |
bcnt |
|
) |
| |
|
protected |
Definition at line 82 of file AthenaRootStreamer.cxx.
83 const UInt_t kByteCountMask = 0x40000000;
84 const Version_t kByteCountVMask = 0x4000;
86 if (startpos && bcnt) {
88 *startpos =
buf->Length();
106 if( !(
v.cnt & kByteCountMask) ) {
108 buf->SetBufferOffset(
buf->Length() -
sizeof(UInt_t));
111 *bcnt = (
v.cnt & ~kByteCountMask);
124 TFile* fParent = (TFile*)
buf->GetParent();
137 }
else if (fParent && fParent->GetVersion() < 40000) {
141 m_class->GetStreamerInfos()->GetLast() > 1) {
142 const TList*
list = fParent->GetStreamerInfoList();
◆ operator()()
void AthenaRootStreamer::operator() |
( |
TBuffer & |
b, |
|
|
void * |
obj |
|
) |
| |
|
virtual |
◆ R__FindStreamerInfoVersion()
Version_t AthenaRootStreamer::R__FindStreamerInfoVersion |
( |
const TClass * |
cl, |
|
|
UInt_t |
checksum |
|
) |
| |
|
staticprotected |
Definition at line 163 of file AthenaRootStreamer.cxx.
166 Int_t ninfos =
cl->GetStreamerInfos()->GetEntriesFast();
167 for (Int_t
i = 1;
i < ninfos;
i++) {
170 TStreamerInfo*
info = (TStreamerInfo*)
cl->GetStreamerInfos()->At(
i);
174 if (
info->GetCheckSum() == checksum) {
◆ m_class
TClass* AthenaRootStreamer::m_class |
|
private |
◆ m_className
std::string AthenaRootStreamer::m_className |
|
private |
◆ m_converterMap
◆ m_lastFile
TFile* AthenaRootStreamer::m_lastFile |
|
private |
◆ m_seenChecksums
◆ m_service
Service* AthenaRootStreamer::m_service |
|
private |
◆ m_streamerChecksum
UInt_t AthenaRootStreamer::m_streamerChecksum |
|
private |
◆ m_streamerVersion
Version_t AthenaRootStreamer::m_streamerVersion |
|
private |
The documentation for this class was generated from the following files: