13 if(name.length() == 0) {
14 name =
"unpacking_loop";
26 fFragsReadFromRaw(0), fGoodFragsRead(0)
30 throw std::runtime_error(
"No data parser library supplied, can't open parser!");
41 std::shared_ptr<TRawEvent> singleEvent;
51 std::shared_ptr<TRawEvent> event;
63 std::this_thread::sleep_for(std::chrono::milliseconds(10));
78 std::ostringstream status;
83 status <<
"\rno fragments read from midas => none parsed!" << std::endl;
std::atomic_size_t & ItemsPopped()
std::atomic_long & InputSize()
static StoppableThread * Get(const std::string &name)
void IncrementItemsPopped()
virtual std::string OutputQueueStatus()
virtual void SetFinished()
virtual int Process(std::shared_ptr< TRawEvent >)=0
virtual void ClearQueue()
virtual void SetStatusVariables(std::atomic_size_t *itemsPopped, std::atomic_long *inputSize)
static TGRSIOptions * Get(int argc=0, char **argv=nullptr)
Do not use!
TDataParser * CreateDataParser()
static TParserLibrary * Get(bool verbose=false)
static TUnpackingLoop * Get(std::string name="")
TUnpackingLoop(const TUnpackingLoop &)=delete
void ClearQueue() override
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TRawEvent > > > fInputQueue
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > & ScalerOutputQueue()
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > & BadOutputQueue()
int64_t fFragsReadFromRaw
std::string EndStatus() override
bool Iteration() override