GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TUnpackingLoop Class Reference

Detailed Description

This loop parses raw events into fragments.

Definition at line 27 of file TUnpackingLoop.h.

Public Member Functions

 TUnpackingLoop (const TUnpackingLoop &)=delete
 
 TUnpackingLoop (TUnpackingLoop &&) noexcept=delete
 
 ~TUnpackingLoop ()
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > & AddGoodOutputQueue (size_t maxSize=50000)
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > & BadOutputQueue ()
 
void ClearQueue () override
 
std::string EndStatus () override
 
size_t GetItemsCurrent () override
 
size_t GetItemsPopped () override
 
size_t GetItemsPushed () override
 
size_t GetRate () override
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TRawEvent > > > & InputQueue ()
 
bool IsPaused ()
 
bool IsRunning ()
 
bool Iteration () override
 
void Join ()
 
std::string Name () const
 
virtual void OnEnd ()
 
TUnpackingLoopoperator= (const TUnpackingLoop &)=delete
 
TUnpackingLoopoperator= (TUnpackingLoop &&) noexcept=delete
 
void Pause ()
 
virtual std::string Progress ()
 
void Resume ()
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > & ScalerOutputQueue ()
 
void SetNoWaveForms (bool temp=true)
 
void SetRecordDiag (bool temp=true)
 
virtual std::string Status ()
 
void Stop ()
 

Static Public Member Functions

static std::string AllThreadHeader ()
 
static std::string AllThreadProgress ()
 
static std::string AllThreadStatus ()
 
static bool AnyThreadRunning ()
 
static std::string AnyThreadStatus ()
 
static void ClearAllQueues ()
 
static size_t ColumnWidth ()
 
static void ColumnWidth (size_t val)
 
static StoppableThreadGet (const std::string &name)
 
static TUnpackingLoopGet (std::string name="")
 
static std::vector< StoppableThread * > GetAll ()
 
static int GetNThreads ()
 
static void join_status_thread ()
 
static void PauseAll ()
 
static void Print ()
 
static void ResumeAll ()
 
static void SendStop ()
 
static void start_status_thread ()
 
static void status_out ()
 
static void status_out_loop ()
 
static size_t StatusWidth ()
 
static void StatusWidth (size_t val)
 
static void stop_status_thread ()
 
static void StopAll ()
 

Protected Member Functions

void IncrementItemsPopped ()
 
std::atomic_long & InputSize ()
 
void InputSize (int64_t val)
 
std::atomic_size_t & ItemsPopped ()
 
void ItemsPopped (size_t val)
 

Private Member Functions

 TUnpackingLoop (std::string name)
 
void Loop ()
 

Private Attributes

std::atomic_bool fForceStop {false}
 
int64_t fFragsReadFromRaw
 
int64_t fGoodFragsRead
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TRawEvent > > > fInputQueue
 
std::atomic_long fInputSize {0}
 
std::atomic_size_t fItemsPopped {0}
 
std::string fName
 
TDataParserfParser
 
std::atomic_bool fPaused {false}
 
std::condition_variable fPausedWait
 
std::mutex fPauseMutex
 
std::atomic_bool fRunning {false}
 
std::thread fThread
 

Static Private Attributes

static size_t fColumnWidth = 20
 
static std::thread fStatusThread
 
static bool fStatusThreadOn = false
 
static size_t fStatusWidth = 80
 
static std::map< std::string, StoppableThread * > fThreadMap
 
+ Inheritance diagram for TUnpackingLoop:
+ Collaboration diagram for TUnpackingLoop:

Constructor & Destructor Documentation

◆ TUnpackingLoop() [1/3]

TUnpackingLoop::TUnpackingLoop ( const TUnpackingLoop & )
delete

Referenced by Get().

◆ TUnpackingLoop() [2/3]

TUnpackingLoop::TUnpackingLoop ( TUnpackingLoop && )
deletenoexcept

◆ ~TUnpackingLoop()

TUnpackingLoop::~TUnpackingLoop ( )
default

◆ TUnpackingLoop() [3/3]

TUnpackingLoop::TUnpackingLoop ( std::string name)
explicitprivate

Member Function Documentation

◆ AddGoodOutputQueue()

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > & TUnpackingLoop::AddGoodOutputQueue ( size_t maxSize = 50000)
inline

Definition at line 44 of file TUnpackingLoop.h.

References TDataParser::AddGoodOutputQueue(), and fParser.

Referenced by TGRSIint::SetupPipeline().

◆ AllThreadHeader()

std::string StoppableThread::AllThreadHeader ( )
staticinherited

◆ AllThreadProgress()

std::string StoppableThread::AllThreadProgress ( )
staticinherited

◆ AllThreadStatus()

std::string StoppableThread::AllThreadStatus ( )
staticinherited

◆ AnyThreadRunning()

bool StoppableThread::AnyThreadRunning ( )
staticinherited

◆ AnyThreadStatus()

std::string StoppableThread::AnyThreadStatus ( )
staticinherited

Definition at line 47 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

◆ BadOutputQueue()

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > & TUnpackingLoop::BadOutputQueue ( )
inline

Definition at line 48 of file TUnpackingLoop.h.

References TDataParser::BadOutputQueue(), and fParser.

Referenced by Iteration(), and TGRSIint::SetupPipeline().

◆ ClearAllQueues()

void StoppableThread::ClearAllQueues ( )
staticinherited

Definition at line 166 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

Referenced by TGRSIInterruptHandler::Notify().

◆ ClearQueue()

void TUnpackingLoop::ClearQueue ( )
overridevirtual

Reimplemented from StoppableThread.

Definition at line 39 of file TUnpackingLoop.cxx.

References TDataParser::ClearQueue(), fInputQueue, and fParser.

◆ ColumnWidth() [1/2]

static size_t StoppableThread::ColumnWidth ( )
inlinestaticinherited

Definition at line 82 of file StoppableThread.h.

References StoppableThread::fColumnWidth.

Referenced by TGRSIint::SetupPipeline().

◆ ColumnWidth() [2/2]

static void StoppableThread::ColumnWidth ( size_t val)
inlinestaticinherited

Definition at line 80 of file StoppableThread.h.

References StoppableThread::fColumnWidth.

◆ EndStatus()

std::string TUnpackingLoop::EndStatus ( )
overridevirtual

◆ Get() [1/2]

◆ Get() [2/2]

TUnpackingLoop * TUnpackingLoop::Get ( std::string name = "")
static

Definition at line 11 of file TUnpackingLoop.cxx.

References TUnpackingLoop(), and StoppableThread::Get().

Referenced by TGRSIint::SetupPipeline().

◆ GetAll()

std::vector< StoppableThread * > StoppableThread::GetAll ( )
staticinherited

Definition at line 315 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

◆ GetItemsCurrent()

size_t TUnpackingLoop::GetItemsCurrent ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 64 of file TUnpackingLoop.h.

◆ GetItemsPopped()

size_t TUnpackingLoop::GetItemsPopped ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 63 of file TUnpackingLoop.h.

◆ GetItemsPushed()

size_t TUnpackingLoop::GetItemsPushed ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 62 of file TUnpackingLoop.h.

References fParser, and TDataParser::ItemsPushed().

◆ GetNThreads()

int StoppableThread::GetNThreads ( )
staticinherited

Definition at line 21 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

Referenced by StoppableThread::Print().

◆ GetRate()

size_t TUnpackingLoop::GetRate ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 65 of file TUnpackingLoop.h.

◆ IncrementItemsPopped()

◆ InputQueue()

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TRawEvent > > > & TUnpackingLoop::InputQueue ( )
inline

Definition at line 40 of file TUnpackingLoop.h.

References fInputQueue.

Referenced by TGRSIint::SetupPipeline().

◆ InputSize() [1/2]

◆ InputSize() [2/2]

void StoppableThread::InputSize ( int64_t val)
inlineprotectedinherited

Definition at line 94 of file StoppableThread.h.

References StoppableThread::fInputSize.

◆ IsPaused()

bool StoppableThread::IsPaused ( )
inherited

Definition at line 224 of file StoppableThread.cxx.

References StoppableThread::fPaused.

◆ IsRunning()

bool StoppableThread::IsRunning ( )
inherited

Definition at line 219 of file StoppableThread.cxx.

References StoppableThread::fRunning.

Referenced by StoppableThread::status_out().

◆ ItemsPopped() [1/2]

◆ ItemsPopped() [2/2]

void StoppableThread::ItemsPopped ( size_t val)
inlineprotectedinherited

Definition at line 93 of file StoppableThread.h.

References StoppableThread::fItemsPopped.

◆ Iteration()

◆ Join()

void StoppableThread::Join ( )
inherited

◆ join_status_thread()

void StoppableThread::join_status_thread ( )
staticinherited

◆ Loop()

◆ Name()

std::string StoppableThread::Name ( ) const
inlineinherited

◆ OnEnd()

virtual void StoppableThread::OnEnd ( )
inlinevirtualinherited

Reimplemented in TAnalysisWriteLoop, TDataLoop, and TFragmentChainLoop.

Definition at line 59 of file StoppableThread.h.

Referenced by StoppableThread::Loop().

◆ operator=() [1/2]

TUnpackingLoop & TUnpackingLoop::operator= ( const TUnpackingLoop & )
delete

◆ operator=() [2/2]

TUnpackingLoop & TUnpackingLoop::operator= ( TUnpackingLoop && )
deletenoexcept

◆ Pause()

void StoppableThread::Pause ( )
inherited

Definition at line 202 of file StoppableThread.cxx.

References StoppableThread::fPaused, and StoppableThread::fRunning.

◆ PauseAll()

void StoppableThread::PauseAll ( )
staticinherited

Definition at line 97 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

◆ Print()

void StoppableThread::Print ( )
staticinherited

◆ Progress()

std::string StoppableThread::Progress ( )
virtualinherited

◆ Resume()

void StoppableThread::Resume ( )
inherited

◆ ResumeAll()

void StoppableThread::ResumeAll ( )
staticinherited

Definition at line 104 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

Referenced by TGRSIint::SetupPipeline().

◆ ScalerOutputQueue()

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > & TUnpackingLoop::ScalerOutputQueue ( )
inline

Definition at line 52 of file TUnpackingLoop.h.

References fParser, and TDataParser::ScalerOutputQueue().

Referenced by Iteration(), and TGRSIint::SetupPipeline().

◆ SendStop()

void StoppableThread::SendStop ( )
staticinherited

Definition at line 135 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

Referenced by StoppableThread::StopAll(), and TGRSIint::Terminate().

◆ SetNoWaveForms()

void TUnpackingLoop::SetNoWaveForms ( bool temp = true)
inline

Definition at line 36 of file TUnpackingLoop.h.

References fParser, and TDataParser::SetNoWaveForms().

◆ SetRecordDiag()

void TUnpackingLoop::SetRecordDiag ( bool temp = true)
inline

Definition at line 37 of file TUnpackingLoop.h.

References fParser, and TDataParser::SetRecordDiag().

◆ start_status_thread()

void StoppableThread::start_status_thread ( )
staticinherited

◆ Status()

std::string StoppableThread::Status ( )
virtualinherited

◆ status_out()

◆ status_out_loop()

void StoppableThread::status_out_loop ( )
staticinherited

◆ StatusWidth() [1/2]

static size_t StoppableThread::StatusWidth ( )
inlinestaticinherited

Definition at line 83 of file StoppableThread.h.

References StoppableThread::fStatusWidth.

Referenced by TGRSIint::SetupPipeline().

◆ StatusWidth() [2/2]

static void StoppableThread::StatusWidth ( size_t val)
inlinestaticinherited

Definition at line 81 of file StoppableThread.h.

References StoppableThread::fStatusWidth.

◆ Stop()

◆ stop_status_thread()

void StoppableThread::stop_status_thread ( )
staticinherited

◆ StopAll()

void StoppableThread::StopAll ( )
staticinherited

Member Data Documentation

◆ fColumnWidth

◆ fForceStop

std::atomic_bool StoppableThread::fForceStop {false}
privateinherited

Definition at line 120 of file StoppableThread.h.

◆ fFragsReadFromRaw

int64_t TUnpackingLoop::fFragsReadFromRaw
private

Definition at line 75 of file TUnpackingLoop.h.

Referenced by EndStatus(), and Iteration().

◆ fGoodFragsRead

int64_t TUnpackingLoop::fGoodFragsRead
private

Definition at line 76 of file TUnpackingLoop.h.

Referenced by EndStatus(), and Iteration().

◆ fInputQueue

std::shared_ptr<ThreadsafeQueue<std::shared_ptr<TRawEvent> > > TUnpackingLoop::fInputQueue
private

Definition at line 71 of file TUnpackingLoop.h.

Referenced by ClearQueue(), InputQueue(), and Iteration().

◆ fInputSize

std::atomic_long StoppableThread::fInputSize {0}
privateinherited

number of items in the input (queue), only updated within Iteration(), so not always fully up-to-date (signed to hold error from queue::pop)

Definition at line 102 of file StoppableThread.h.

Referenced by StoppableThread::InputSize(), StoppableThread::InputSize(), StoppableThread::Progress(), and StoppableThread::Status().

◆ fItemsPopped

std::atomic_size_t StoppableThread::fItemsPopped {0}
privateinherited

◆ fName

std::string StoppableThread::fName
privateinherited

◆ fParser

◆ fPaused

std::atomic_bool StoppableThread::fPaused {false}
privateinherited

◆ fPausedWait

std::condition_variable StoppableThread::fPausedWait
privateinherited

◆ fPauseMutex

std::mutex StoppableThread::fPauseMutex
privateinherited

◆ fRunning

std::atomic_bool StoppableThread::fRunning {false}
privateinherited

◆ fStatusThread

std::thread StoppableThread::fStatusThread
staticprivateinherited

◆ fStatusThreadOn

◆ fStatusWidth

◆ fThread

std::thread StoppableThread::fThread
privateinherited

Definition at line 118 of file StoppableThread.h.

Referenced by StoppableThread::StoppableThread(), and StoppableThread::Join().

◆ fThreadMap