BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnAbstractThread Class Reference

#include <BmnAbstractThread.h>

Inheritance diagram for BmnAbstractThread:

Public Member Functions

void Run ()
int32_t GetRunningThreads ()
int32_t GetWaitingThreads ()
CDuration GetWaitingCTime ()
CDuration GetCalculationCTime ()
int32_t GetId ()
virtual void Terminate ()
void Execute ()
void CancelReady ()
virtual void SetInitData (...)
virtual void SetData (...)
void Run ()
int32_t GetRunningThreads ()
int32_t GetWaitingThreads ()
CDuration GetWaitingCTime ()
CDuration GetCalculationCTime ()
int32_t GetId ()
virtual void Terminate ()
void Execute ()
void CancelReady ()
virtual void SetInitData (...)
virtual void SetData (...)

Protected Member Functions

 BmnAbstractThread (std::queue< int32_t > *threadQueue, std::mutex *queueAccess, std::condition_variable *queueWait, int32_t id, bool measureTime=false)
 ~BmnAbstractThread ()
virtual void Calculate ()
 BmnAbstractThread (std::queue< int32_t > *threadQueue, std::mutex *queueAccess, std::condition_variable *queueWait, int32_t id, bool measureTime=false)
 ~BmnAbstractThread ()
virtual void Calculate ()

Protected Attributes

int32_t threadId
int32_t taskId

Private Attributes

const bool measureTime
CPoint ctime
CDuration ctime1
CDuration ctime2
std::condition_variable * queueWait
std::queue< int32_t > * threadQueue
std::mutex * queueAccess
std::condition_variable proceed
std::mutex dataAccess
bool dataReady

Static Private Attributes

static const bool calcStatistics = false
static std::mutex statVarAccess
static int32_t curThreadWaiting = 0
static int32_t curThreadCount = 0

Detailed Description

Definition at line 20 of file BmnAbstractThread.h.

Constructor & Destructor Documentation

◆ BmnAbstractThread() [1/2]

BmnAbstractThread::BmnAbstractThread ( std::queue< int32_t > * threadQueue,
std::mutex * queueAccess,
std::condition_variable * queueWait,
int32_t id,
bool measureTime = false )
inlineprotected

Definition at line 130 of file BmnAbstractThread.h.

References dataReady, measureTime, queueAccess, queueWait, taskId, threadId, and threadQueue.

Referenced by BmnConverterThread::BmnConverterThread().

Here is the caller graph for this function:

◆ ~BmnAbstractThread() [1/2]

BmnAbstractThread::~BmnAbstractThread ( )
inlineprotected

Definition at line 146 of file BmnAbstractThread.h.

◆ BmnAbstractThread() [2/2]

BmnAbstractThread::BmnAbstractThread ( std::queue< int32_t > * threadQueue,
std::mutex * queueAccess,
std::condition_variable * queueWait,
int32_t id,
bool measureTime = false )
inlineprotected

Definition at line 130 of file BmnAbstractThread.h.

References dataReady, measureTime, queueAccess, queueWait, taskId, threadId, and threadQueue.

◆ ~BmnAbstractThread() [2/2]

BmnAbstractThread::~BmnAbstractThread ( )
inlineprotected

Definition at line 146 of file BmnAbstractThread.h.

Member Function Documentation

◆ Calculate() [1/2]

virtual void BmnAbstractThread::Calculate ( )
inlineprotectedvirtual

Reimplemented in BmnConverterThread, and BmnConverterThread.

Definition at line 154 of file BmnAbstractThread.h.

Referenced by Run().

Here is the caller graph for this function:

◆ Calculate() [2/2]

virtual void BmnAbstractThread::Calculate ( )
inlineprotectedvirtual

Reimplemented in BmnConverterThread, and BmnConverterThread.

Definition at line 154 of file BmnAbstractThread.h.

◆ CancelReady() [1/2]

void BmnAbstractThread::CancelReady ( )
inline

Definition at line 119 of file BmnAbstractThread.h.

References queueAccess, queueWait, threadId, and threadQueue.

◆ CancelReady() [2/2]

void BmnAbstractThread::CancelReady ( )
inline

Definition at line 119 of file BmnAbstractThread.h.

References queueAccess, queueWait, threadId, and threadQueue.

◆ Execute() [1/2]

void BmnAbstractThread::Execute ( )
inline

Definition at line 112 of file BmnAbstractThread.h.

References dataAccess, dataReady, and proceed.

Referenced by BmnConverter::OutputSpills(), BmnConverter::QuickConvertStatEvent(), BmnConverter::QuickConvertStatEvent(), BmnConverter::QuickProcessEvent(), BmnConverter::QuickProcessEvent(), BmnRawSource::QuickProcessEvent(), and BmnConverterThread::Terminate().

Here is the caller graph for this function:

◆ Execute() [2/2]

void BmnAbstractThread::Execute ( )
inline

Definition at line 112 of file BmnAbstractThread.h.

References dataAccess, dataReady, and proceed.

◆ GetCalculationCTime() [1/2]

CDuration BmnAbstractThread::GetCalculationCTime ( )
inline

Definition at line 103 of file BmnAbstractThread.h.

References ctime2.

Referenced by BmnConverterThread::Terminate().

Here is the caller graph for this function:

◆ GetCalculationCTime() [2/2]

CDuration BmnAbstractThread::GetCalculationCTime ( )
inline

Definition at line 103 of file BmnAbstractThread.h.

References ctime2.

◆ GetId() [1/2]

int32_t BmnAbstractThread::GetId ( )
inline

Definition at line 105 of file BmnAbstractThread.h.

References threadId.

◆ GetId() [2/2]

int32_t BmnAbstractThread::GetId ( )
inline

Definition at line 105 of file BmnAbstractThread.h.

References threadId.

◆ GetRunningThreads() [1/2]

int32_t BmnAbstractThread::GetRunningThreads ( )
inline

Definition at line 75 of file BmnAbstractThread.h.

References calcStatistics, and curThreadCount.

◆ GetRunningThreads() [2/2]

int32_t BmnAbstractThread::GetRunningThreads ( )
inline

Definition at line 75 of file BmnAbstractThread.h.

References calcStatistics, and curThreadCount.

◆ GetWaitingCTime() [1/2]

CDuration BmnAbstractThread::GetWaitingCTime ( )
inline

Definition at line 101 of file BmnAbstractThread.h.

References ctime1.

Referenced by BmnConverterThread::Terminate().

Here is the caller graph for this function:

◆ GetWaitingCTime() [2/2]

CDuration BmnAbstractThread::GetWaitingCTime ( )
inline

Definition at line 101 of file BmnAbstractThread.h.

References ctime1.

◆ GetWaitingThreads() [1/2]

int32_t BmnAbstractThread::GetWaitingThreads ( )
inline

Definition at line 83 of file BmnAbstractThread.h.

References calcStatistics, and curThreadWaiting.

◆ GetWaitingThreads() [2/2]

int32_t BmnAbstractThread::GetWaitingThreads ( )
inline

Definition at line 83 of file BmnAbstractThread.h.

References calcStatistics, and curThreadWaiting.

◆ Run() [1/2]

void BmnAbstractThread::Run ( )
inline

Definition at line 23 of file BmnAbstractThread.h.

References calcStatistics, Calculate(), ctime, ctime1, ctime2, curThreadCount, curThreadWaiting, dataAccess, dataReady, measureTime, proceed, queueAccess, queueWait, statVarAccess, taskId, threadId, and threadQueue.

Here is the call graph for this function:

◆ Run() [2/2]

void BmnAbstractThread::Run ( )
inline

Definition at line 23 of file BmnAbstractThread.h.

References calcStatistics, Calculate(), ctime, ctime1, ctime2, curThreadCount, curThreadWaiting, dataAccess, dataReady, measureTime, proceed, queueAccess, queueWait, statVarAccess, taskId, threadId, and threadQueue.

Here is the call graph for this function:

◆ SetData() [1/2]

virtual void BmnAbstractThread::SetData ( ...)
inlinevirtual

Definition at line 127 of file BmnAbstractThread.h.

◆ SetData() [2/2]

virtual void BmnAbstractThread::SetData ( ...)
inlinevirtual

Definition at line 127 of file BmnAbstractThread.h.

◆ SetInitData() [1/2]

virtual void BmnAbstractThread::SetInitData ( ...)
inlinevirtual

Definition at line 126 of file BmnAbstractThread.h.

◆ SetInitData() [2/2]

virtual void BmnAbstractThread::SetInitData ( ...)
inlinevirtual

Definition at line 126 of file BmnAbstractThread.h.

◆ Terminate() [1/2]

virtual void BmnAbstractThread::Terminate ( )
inlinevirtual

Reimplemented in BmnConverterThread, and BmnConverterThread.

Definition at line 107 of file BmnAbstractThread.h.

◆ Terminate() [2/2]

virtual void BmnAbstractThread::Terminate ( )
inlinevirtual

Reimplemented in BmnConverterThread, and BmnConverterThread.

Definition at line 107 of file BmnAbstractThread.h.

Member Data Documentation

◆ calcStatistics

const bool BmnAbstractThread::calcStatistics = false
staticprivate

Definition at line 158 of file BmnAbstractThread.h.

Referenced by GetRunningThreads(), GetWaitingThreads(), and Run().

◆ ctime

CPoint BmnAbstractThread::ctime
private

Definition at line 165 of file BmnAbstractThread.h.

Referenced by Run().

◆ ctime1

CDuration BmnAbstractThread::ctime1
private

Definition at line 167 of file BmnAbstractThread.h.

Referenced by GetWaitingCTime(), and Run().

◆ ctime2

CDuration BmnAbstractThread::ctime2
private

Definition at line 167 of file BmnAbstractThread.h.

Referenced by GetCalculationCTime(), and Run().

◆ curThreadCount

int32_t BmnAbstractThread::curThreadCount = 0
staticprivate

Definition at line 161 of file BmnAbstractThread.h.

Referenced by GetRunningThreads(), and Run().

◆ curThreadWaiting

int32_t BmnAbstractThread::curThreadWaiting = 0
staticprivate

Definition at line 160 of file BmnAbstractThread.h.

Referenced by GetWaitingThreads(), and Run().

◆ dataAccess

std::mutex BmnAbstractThread::dataAccess
private

Definition at line 174 of file BmnAbstractThread.h.

Referenced by Execute(), and Run().

◆ dataReady

bool BmnAbstractThread::dataReady
private

Definition at line 175 of file BmnAbstractThread.h.

Referenced by BmnAbstractThread(), Execute(), and Run().

◆ measureTime

const bool BmnAbstractThread::measureTime
private

Definition at line 163 of file BmnAbstractThread.h.

Referenced by BmnAbstractThread(), and Run().

◆ proceed

std::condition_variable BmnAbstractThread::proceed
private

Definition at line 173 of file BmnAbstractThread.h.

Referenced by Execute(), and Run().

◆ queueAccess

std::mutex * BmnAbstractThread::queueAccess
private

Definition at line 171 of file BmnAbstractThread.h.

Referenced by BmnAbstractThread(), CancelReady(), and Run().

◆ queueWait

std::condition_variable * BmnAbstractThread::queueWait
private

Definition at line 169 of file BmnAbstractThread.h.

Referenced by BmnAbstractThread(), CancelReady(), and Run().

◆ statVarAccess

std::mutex BmnAbstractThread::statVarAccess
staticprivate

Definition at line 159 of file BmnAbstractThread.h.

Referenced by Run().

◆ taskId

int32_t BmnAbstractThread::taskId
protected

◆ threadId

◆ threadQueue

std::queue< int32_t > * BmnAbstractThread::threadQueue
private

Definition at line 170 of file BmnAbstractThread.h.

Referenced by BmnAbstractThread(), CancelReady(), and Run().


The documentation for this class was generated from the following files: