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

Detailed Description

This loop builds detectors from vectors of fragments.

Definition at line 32 of file TDetBuildingLoop.h.

Public Member Functions

 TDetBuildingLoop (const TDetBuildingLoop &)=delete
 
 TDetBuildingLoop (TDetBuildingLoop &&) noexcept=delete
 
 ~TDetBuildingLoop ()
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TUnpackedEvent > > > & AddOutputQueue (size_t maxSize=50000)
 
void ClearQueue () override
 
virtual std::string EndStatus ()
 
size_t GetItemsCurrent () override
 
size_t GetItemsPopped () override
 
size_t GetItemsPushed () override
 
size_t GetRate () override
 
std::shared_ptr< ThreadsafeQueue< std::vector< std::shared_ptr< const TFragment > > > > & InputQueue ()
 
bool IsPaused ()
 
bool IsRunning ()
 
bool Iteration () override
 
void Join ()
 
std::string Name () const
 
virtual void OnEnd ()
 
TDetBuildingLoopoperator= (const TDetBuildingLoop &)=delete
 
TDetBuildingLoopoperator= (TDetBuildingLoop &&) noexcept=delete
 
void Pause ()
 
virtual std::string Progress ()
 
void Resume ()
 
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 TDetBuildingLoopGet (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

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

Private Attributes

std::atomic_bool fForceStop {false}
 
std::shared_ptr< ThreadsafeQueue< std::vector< std::shared_ptr< const TFragment > > > > fInputQueue
 
std::atomic_long fInputSize {0}
 
std::atomic_size_t fItemsPopped {0}
 
std::string fName
 
std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TUnpackedEvent > > > > fOutputQueues
 
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 TDetBuildingLoop:
+ Collaboration diagram for TDetBuildingLoop:

Constructor & Destructor Documentation

◆ TDetBuildingLoop() [1/3]

TDetBuildingLoop::TDetBuildingLoop ( const TDetBuildingLoop & )
delete

Referenced by Get().

◆ TDetBuildingLoop() [2/3]

TDetBuildingLoop::TDetBuildingLoop ( TDetBuildingLoop && )
deletenoexcept

◆ ~TDetBuildingLoop()

TDetBuildingLoop::~TDetBuildingLoop ( )
default

◆ TDetBuildingLoop() [3/3]

TDetBuildingLoop::TDetBuildingLoop ( std::string name)
explicitprivate

Definition at line 20 of file TDetBuildingLoop.cxx.

Member Function Documentation

◆ AddOutputQueue()

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TUnpackedEvent > > > & TDetBuildingLoop::AddOutputQueue ( size_t maxSize = 50000)
inline

Definition at line 46 of file TDetBuildingLoop.h.

References fOutputQueues.

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.

◆ ClearAllQueues()

void StoppableThread::ClearAllQueues ( )
staticinherited

Definition at line 166 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

Referenced by TGRSIInterruptHandler::Notify().

◆ ClearQueue()

void TDetBuildingLoop::ClearQueue ( )
overridevirtual

Reimplemented from StoppableThread.

Definition at line 59 of file TDetBuildingLoop.cxx.

References fInputQueue, and fOutputQueues.

◆ 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()

virtual std::string StoppableThread::EndStatus ( )
inlinevirtualinherited

◆ Get() [1/2]

◆ Get() [2/2]

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

Definition at line 8 of file TDetBuildingLoop.cxx.

References TDetBuildingLoop(), 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 TDetBuildingLoop::GetItemsCurrent ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 66 of file TDetBuildingLoop.h.

◆ GetItemsPopped()

size_t TDetBuildingLoop::GetItemsPopped ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 65 of file TDetBuildingLoop.h.

◆ GetItemsPushed()

size_t TDetBuildingLoop::GetItemsPushed ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 58 of file TDetBuildingLoop.h.

References fOutputQueues.

◆ GetNThreads()

int StoppableThread::GetNThreads ( )
staticinherited

Definition at line 21 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

Referenced by StoppableThread::Print().

◆ GetRate()

size_t TDetBuildingLoop::GetRate ( )
inlineoverridevirtual

Implements StoppableThread.

Definition at line 67 of file TDetBuildingLoop.h.

◆ IncrementItemsPopped()

◆ InputQueue()

std::shared_ptr< ThreadsafeQueue< std::vector< std::shared_ptr< const TFragment > > > > & TDetBuildingLoop::InputQueue ( )
inline

Definition at line 42 of file TDetBuildingLoop.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()

bool TDetBuildingLoop::Iteration ( )
overridevirtual

◆ 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]

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

◆ operator=() [2/2]

TDetBuildingLoop & TDetBuildingLoop::operator= ( TDetBuildingLoop && )
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().

◆ SendStop()

void StoppableThread::SendStop ( )
staticinherited

Definition at line 135 of file StoppableThread.cxx.

References StoppableThread::fThreadMap.

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

◆ 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.

◆ fInputQueue

std::shared_ptr<ThreadsafeQueue<std::vector<std::shared_ptr<const TFragment> > > > TDetBuildingLoop::fInputQueue
private

Definition at line 73 of file TDetBuildingLoop.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

◆ fOutputQueues

std::vector<std::shared_ptr<ThreadsafeQueue<std::shared_ptr<TUnpackedEvent> > > > TDetBuildingLoop::fOutputQueues
private

Definition at line 74 of file TDetBuildingLoop.h.

Referenced by AddOutputQueue(), ClearQueue(), GetItemsPushed(), and Iteration().

◆ 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