// ------------------------------------------------------------------------------------- // ----- HadaqTrbIterator source file ----- // ----- ----- // ----- created by C. Simon on 2014-03-07 ----- // ----- ----- // ----- based on stream by S. Linev ----- // ----- https://subversion.gsi.de/go4/app/stream/framework/hadaq/TrbIterator.cxx ----- // ----- revision 1046, 2013-11-20 ----- // ------------------------------------------------------------------------------------- #include "HadaqTrbIterator.h" #include "TString.h" #include "FairLogger.h" hadaq::TrbIterator::TrbIterator(void* data, UInt_t datalen) : fData(data), fDatalen(datalen), fEvCursor(0), fSubCursor(0), fSubLen(0) { } hadaq::RawEvent* hadaq::TrbIterator::nextEvent() { if (fEvCursor == 0) { fEvCursor = fData; fEvLen = fDatalen; } else { hadaq::RawEvent* prev = (hadaq::RawEvent*) fEvCursor; UInt_t fulllen = prev->GetPaddedSize(); LOG(DEBUG3)<= fEvLen) { if (fulllen > fEvLen) { LOG(ERROR)<GetPaddedSize(); if (fSubLen >= sizeof(hadaq::RawEvent)) { fSubLen -= sizeof(hadaq::RawEvent); } else { LOG(ERROR)<GetSize(), (UInt_t) sizeof(hadaq::RawEvent))<GetPaddedSize(); LOG(DEBUG3)<= fSubLen) { if (fulllen > fSubLen) { LOG(ERROR)<