12#ifndef ALICEO2_ITSMFT_PAYLOADSG_H
13#define ALICEO2_ITSMFT_PAYLOADSG_H
41 mBuffer.emplace_back(
ptr,
n);
48 if (mCurrentPieceID < mBuffer.size()) {
49 const auto& piece = mBuffer[mCurrentPieceID];
50 if (mCurrentEntryInPiece < piece.size) {
51 v = piece.data[mCurrentEntryInPiece];
64 if (mCurrentPieceID < mBuffer.size()) {
65 const auto& piece = mBuffer[mCurrentPieceID];
66 if (mCurrentEntryInPiece < piece.size) {
67 v = piece.data[mCurrentEntryInPiece++];
91 mCurrentPieceID = mCurrentEntryInPiece = 0;
98 mCurrentPieceID = mCurrentEntryInPiece = 0;
108 void setDone() { mCurrentPieceID = mBuffer.size(); }
116 const SGPiece*
currentPiece()
const {
return mCurrentPieceID < mBuffer.size() ? &mBuffer[mCurrentPieceID] :
nullptr; }
121 mCurrentEntryInPiece = 0;
131 std::vector<SGPiece> mBuffer;
132 size_t mCurrentPieceID = 0;
133 size_t mCurrentEntryInPiece = 0;
const GPUTPCGMMerger::trackCluster & b1
size_t getNPieces() const
size_t & currentEntryInPiece()
const SGPiece * currentPiece() const
~PayLoadSG()=default
add n bytes to the buffer
size_t currentEntryInPiece() const
const SGPiece * nextPiece()
size_t currentPieceID() const
size_t & currentPieceID()
bool next(char &v)
read short value from buffer
void rewind()
make buffer empty
const SGPiece * getPiece(int i) const
bool current(char &v)
read character value from buffer
void add(const DataType *ptr, size_t n)
read current character value from buffer w/o stepping forward
bool next(uint16_t &v)
move current pointer to the head
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
SGPiece(const DataType *st, int n)