This loop writes built events to file
Definition at line 27 of file TAnalysisWriteLoop.h.
Public Member Functions | |
~TAnalysisWriteLoop () override | |
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< TUnpackedEvent > > > & | InputQueue () |
bool | IsPaused () |
bool | IsRunning () |
void | Join () |
std::string | Name () const |
void | OnEnd () override |
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > & | OutOfOrderQueue () |
void | Pause () |
virtual std::string | Progress () |
void | Resume () |
virtual std::string | Status () |
void | Stop () |
void | Write () |
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 void | ColumnWidth (size_t val) |
static size_t | ColumnWidth () |
static TAnalysisWriteLoop * | Get (std::string name="", std::string output_filename="") |
static StoppableThread * | Get (const 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 void | StatusWidth (size_t val) |
static size_t | StatusWidth () |
static void | stop_status_thread () |
static void | StopAll () |
Static Public Attributes | |
static std::thread | fStatusThread |
static bool | fStatusThreadOn = false |
Protected Member Functions | |
bool | Iteration () override |
Protected Attributes | |
std::atomic_long | fInputSize {0} |
std::atomic_size_t | fItemsPopped {0} |
std::string | fName |
Static Protected Attributes | |
static std::map< std::string, StoppableThread * > | fThreadMap |
Private Member Functions | |
TAnalysisWriteLoop (std::string name, std::string output_filename) | |
void | AddBranch (TClass *cls) |
ClassDefOverride (TAnalysisWriteLoop, 0) | |
bool | Server () |
Private Attributes | |
std::vector< TAnalysisWriteLoopClient * > | fClients |
size_t | fCurrentClient |
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TUnpackedEvent > > > | fInputQueue |
bool | fOutOfOrder |
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > | fOutOfOrderQueue |
std::string | fOutputFilename |
std::future< bool > | fServerFuture |
TServerSocket * | fServerSocket |
#include <TAnalysisWriteLoop.h>
|
override |
Definition at line 62 of file TAnalysisWriteLoop.cxx.
References fServerFuture, fServerSocket, and Write().
|
private |
Open a server socket looking for connections on a named service or on a specific port.
Definition at line 43 of file TAnalysisWriteLoop.cxx.
References fClients, fOutOfOrder, fOutputFilename, fServerFuture, fServerSocket, TGRSIOptions::Get(), TGRSIOptions::NumberOfClients(), TGRSIOptions::SeparateOutOfOrder(), and Server().
Referenced by Get().
|
private |
|
staticinherited |
Definition at line 73 of file StoppableThread.cxx.
References StoppableThread::fColumnWidth, StoppableThread::fStatusWidth, and StoppableThread::fThreadMap.
Referenced by TGRSIint::ApplyOptions().
|
staticinherited |
Definition at line 59 of file StoppableThread.cxx.
References StoppableThread::fColumnWidth, StoppableThread::fStatusWidth, and StoppableThread::fThreadMap.
Referenced by TGRSIint::LoopUntilDone().
|
staticinherited |
Definition at line 83 of file StoppableThread.cxx.
References StoppableThread::fColumnWidth, StoppableThread::fStatusWidth, and StoppableThread::fThreadMap.
Referenced by TGRSIint::LoopUntilDone().
|
staticinherited |
Definition at line 37 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
Referenced by TChannel::GetChannel(), TGRSIint::LoopUntilDone(), and TGRSIInterruptHandler::Notify().
|
staticinherited |
Definition at line 47 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
|
private |
|
staticinherited |
Definition at line 166 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
Referenced by TGRSIInterruptHandler::Notify().
|
overridevirtual |
Reimplemented from StoppableThread.
Definition at line 71 of file TAnalysisWriteLoop.cxx.
References fClients, and fInputQueue.
|
inlinestaticinherited |
Definition at line 75 of file StoppableThread.h.
References StoppableThread::fColumnWidth.
|
inlinestaticinherited |
Definition at line 77 of file StoppableThread.h.
References StoppableThread::fColumnWidth.
Referenced by TGRSIint::SetupPipeline().
|
overridevirtual |
Reimplemented from StoppableThread.
Definition at line 82 of file TAnalysisWriteLoop.cxx.
References StoppableThread::fInputSize, StoppableThread::fItemsPopped, and StoppableThread::Name().
|
static |
Definition at line 26 of file TAnalysisWriteLoop.cxx.
References StoppableThread::Get(), and TAnalysisWriteLoop().
Referenced by TGRSIint::SetupPipeline().
|
staticinherited |
Definition at line 173 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
Referenced by ClassImp(), TTerminalLoop< T >::Get(), TFragHistLoop::Get(), TAnalysisHistLoop::Get(), Get(), TFragWriteLoop::Get(), TUnpackingLoop::Get(), TFragmentChainLoop::Get(), and TDataLoop::Get().
|
staticinherited |
Definition at line 315 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
|
inlineoverridevirtual |
Implements StoppableThread.
Definition at line 44 of file TAnalysisWriteLoop.h.
|
inlineoverridevirtual |
Implements StoppableThread.
Definition at line 43 of file TAnalysisWriteLoop.h.
|
inlineoverridevirtual |
Implements StoppableThread.
Definition at line 42 of file TAnalysisWriteLoop.h.
References StoppableThread::fItemsPopped.
|
staticinherited |
Definition at line 21 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
Referenced by StoppableThread::Print().
|
inlineoverridevirtual |
Implements StoppableThread.
Definition at line 45 of file TAnalysisWriteLoop.h.
|
inline |
Definition at line 34 of file TAnalysisWriteLoop.h.
References fInputQueue.
Referenced by TGRSIint::SetupPipeline().
|
inherited |
Definition at line 224 of file StoppableThread.cxx.
References StoppableThread::fPaused.
|
inherited |
Definition at line 219 of file StoppableThread.cxx.
References StoppableThread::fRunning.
Referenced by StoppableThread::status_out().
|
overrideprotectedvirtual |
Implements StoppableThread.
Definition at line 97 of file TAnalysisWriteLoop.cxx.
References fClients, fCurrentClient, fInputQueue, StoppableThread::fInputSize, StoppableThread::fItemsPopped, fOutOfOrder, and fOutOfOrderQueue.
|
inherited |
Definition at line 229 of file StoppableThread.cxx.
References StoppableThread::EndStatus(), and StoppableThread::fThread.
Referenced by StoppableThread::StopAll().
|
staticinherited |
Definition at line 280 of file StoppableThread.cxx.
References StoppableThread::fStatusThread, and StoppableThread::stop_status_thread().
|
inlineinherited |
Definition at line 58 of file StoppableThread.h.
References StoppableThread::fName.
Referenced by TAnalysisWriteLoopClient::AddBranch(), EndStatus(), TFragWriteLoop::EndStatus(), TUnpackingLoop::EndStatus(), and StoppableThread::status_out().
|
overridevirtual |
Reimplemented from StoppableThread.
Definition at line 90 of file TAnalysisWriteLoop.cxx.
References fClients.
|
inline |
Definition at line 35 of file TAnalysisWriteLoop.h.
References fOutOfOrderQueue.
Referenced by TGRSIint::SetupPipeline().
|
inherited |
Definition at line 202 of file StoppableThread.cxx.
References StoppableThread::fPaused, and StoppableThread::fRunning.
|
staticinherited |
Definition at line 97 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
|
staticinherited |
Definition at line 254 of file StoppableThread.cxx.
References StoppableThread::fColumnWidth, StoppableThread::fStatusWidth, StoppableThread::fThreadMap, StoppableThread::GetNThreads(), and hex().
|
virtualinherited |
Definition at line 119 of file StoppableThread.cxx.
References StoppableThread::fColumnWidth, StoppableThread::fInputSize, and StoppableThread::fItemsPopped.
|
inherited |
Definition at line 193 of file StoppableThread.cxx.
References StoppableThread::fPaused, StoppableThread::fPausedWait, StoppableThread::fPauseMutex, and StoppableThread::fRunning.
|
staticinherited |
Definition at line 104 of file StoppableThread.cxx.
References StoppableThread::fThreadMap.
Referenced by TGRSIint::SetupPipeline().
|
staticinherited |
Definition at line 135 of file StoppableThread.cxx.
References StoppableThread::fThreadMap, and StoppableThread::Stop().
Referenced by StoppableThread::StopAll(), and TGRSIint::Terminate().
|
private |
Definition at line 163 of file TAnalysisWriteLoop.cxx.
References fServerSocket, TParallelFileMerger::InitialMerge(), TParallelFileMerger::Merge(), pygui.grut-view::message, TParallelFileMerger::NeedFinalMerge(), NeedInitialMerge(), TParallelFileMerger::NeedMerge(), and TParallelFileMerger::RegisterClient().
Referenced by TAnalysisWriteLoop().
|
staticinherited |
Definition at line 265 of file StoppableThread.cxx.
References StoppableThread::fStatusThread, StoppableThread::fStatusThreadOn, and StoppableThread::status_out_loop().
Referenced by StoppableThread::StoppableThread().
|
virtualinherited |
Definition at line 111 of file StoppableThread.cxx.
References StoppableThread::fColumnWidth, StoppableThread::fInputSize, and StoppableThread::fItemsPopped.
|
staticinherited |
Definition at line 297 of file StoppableThread.cxx.
References StoppableThread::fThreadMap, StoppableThread::GetItemsCurrent(), StoppableThread::GetItemsPopped(), StoppableThread::GetItemsPushed(), StoppableThread::GetRate(), StoppableThread::IsRunning(), and StoppableThread::Name().
Referenced by StoppableThread::status_out_loop(), and StoppableThread::StopAll().
|
staticinherited |
Definition at line 286 of file StoppableThread.cxx.
References StoppableThread::fStatusThreadOn, and StoppableThread::status_out().
Referenced by StoppableThread::start_status_thread().
|
inlinestaticinherited |
Definition at line 76 of file StoppableThread.h.
References StoppableThread::fStatusWidth.
|
inlinestaticinherited |
Definition at line 78 of file StoppableThread.h.
References StoppableThread::fStatusWidth.
Referenced by TGRSIint::SetupPipeline().
|
inherited |
Definition at line 209 of file StoppableThread.cxx.
References StoppableThread::EndStatus(), StoppableThread::fPaused, StoppableThread::fPausedWait, StoppableThread::fPauseMutex, and StoppableThread::fRunning.
Referenced by StoppableThread::SendStop().
|
staticinherited |
Definition at line 273 of file StoppableThread.cxx.
References StoppableThread::fStatusThreadOn.
Referenced by StoppableThread::join_status_thread().
|
staticinherited |
Definition at line 147 of file StoppableThread.cxx.
References StoppableThread::fThreadMap, StoppableThread::Join(), StoppableThread::SendStop(), and StoppableThread::status_out().
Referenced by TGRSIint::Terminate().
void TAnalysisWriteLoop::Write | ( | ) |
Definition at line 132 of file TAnalysisWriteLoop.cxx.
References TGRSIOptions::AnalysisOptions(), fOutputFilename, TGRSIOptions::Get(), GValue::Get(), TSingleton< TSortingDiagnostics >::Get(), TSingleton< TPPG >::Get(), TSingleton< TRunInfo >::Get(), TChannel::GetNumberOfChannels(), GValue::Size(), TPPG::Write(), TGRSIOptions::WriteDiagnostics(), TAnalysisOptions::WriteToFile(), TRunInfo::WriteToRoot(), and TChannel::WriteToRoot().
Referenced by ~TAnalysisWriteLoop().
|
private |
Definition at line 66 of file TAnalysisWriteLoop.h.
Referenced by ClearQueue(), Iteration(), OnEnd(), and TAnalysisWriteLoop().
|
private |
Definition at line 60 of file TAnalysisWriteLoop.h.
Referenced by Iteration().
|
private |
Definition at line 64 of file TAnalysisWriteLoop.h.
Referenced by ClearQueue(), InputQueue(), and Iteration().
|
protectedinherited |
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 95 of file StoppableThread.h.
Referenced by EndStatus(), TFragWriteLoop::EndStatus(), TAnalysisWriteLoopClient::GetInputSize(), TEventBuildingLoop::Iteration(), TDataLoop::Iteration(), TDetBuildingLoop::Iteration(), Iteration(), TUnpackingLoop::Iteration(), TFragWriteLoop::Iteration(), TFragHistLoop::Iteration(), TFragmentChainLoop::Iteration(), TAnalysisHistLoop::Iteration(), TAnalysisWriteLoopClient::Iteration(), StoppableThread::Progress(), and StoppableThread::Status().
|
protectedinherited |
number of items popped from input queue
Definition at line 94 of file StoppableThread.h.
Referenced by EndStatus(), TFragWriteLoop::EndStatus(), TEventBuildingLoop::EndStatus(), TFragmentChainLoop::GetItemsPopped(), TFragWriteLoop::GetItemsPopped(), GetItemsPushed(), TFragmentChainLoop::GetItemsPushed(), TFragWriteLoop::GetItemsPushed(), TAnalysisWriteLoopClient::GetItemsPushed(), TEventBuildingLoop::Iteration(), TDataLoop::Iteration(), TDetBuildingLoop::Iteration(), Iteration(), TUnpackingLoop::Iteration(), TFragWriteLoop::Iteration(), TFragHistLoop::Iteration(), TAnalysisHistLoop::Iteration(), TAnalysisWriteLoopClient::Iteration(), TFragmentChainLoop::Iteration(), StoppableThread::Progress(), TFragmentChainLoop::Restart(), and StoppableThread::Status().
|
protectedinherited |
Definition at line 99 of file StoppableThread.h.
Referenced by StoppableThread::Name(), StoppableThread::StoppableThread(), and StoppableThread::~StoppableThread().
|
private |
Definition at line 61 of file TAnalysisWriteLoop.h.
Referenced by Iteration(), and TAnalysisWriteLoop().
|
private |
Definition at line 65 of file TAnalysisWriteLoop.h.
Referenced by Iteration(), and OutOfOrderQueue().
|
private |
Definition at line 59 of file TAnalysisWriteLoop.h.
Referenced by TAnalysisWriteLoop(), and Write().
|
private |
Definition at line 67 of file TAnalysisWriteLoop.h.
Referenced by TAnalysisWriteLoop(), and ~TAnalysisWriteLoop().
|
private |
Definition at line 62 of file TAnalysisWriteLoop.h.
Referenced by Server(), TAnalysisWriteLoop(), and ~TAnalysisWriteLoop().
|
staticinherited |
Definition at line 81 of file StoppableThread.h.
Referenced by StoppableThread::join_status_thread(), StoppableThread::start_status_thread(), and StoppableThread::~StoppableThread().
|
staticinherited |
Definition at line 83 of file StoppableThread.h.
Referenced by StoppableThread::start_status_thread(), StoppableThread::status_out_loop(), StoppableThread::stop_status_thread(), StoppableThread::StoppableThread(), and StoppableThread::~StoppableThread().
|
staticprotectedinherited |
Definition at line 91 of file StoppableThread.h.
Referenced by StoppableThread::AllThreadHeader(), StoppableThread::AllThreadProgress(), StoppableThread::AllThreadStatus(), StoppableThread::AnyThreadRunning(), StoppableThread::AnyThreadStatus(), StoppableThread::ClearAllQueues(), StoppableThread::Get(), StoppableThread::GetAll(), StoppableThread::GetNThreads(), StoppableThread::PauseAll(), StoppableThread::Print(), StoppableThread::ResumeAll(), StoppableThread::SendStop(), StoppableThread::status_out(), StoppableThread::StopAll(), StoppableThread::StoppableThread(), and StoppableThread::~StoppableThread().