#include <FragmentProcessor.h>
Public Member Functions | |
FragmentProcessor (xdaq::Application *app, SharedResourcesPtr sr) | |
bool | processMessages (toolbox::task::WorkLoop *) |
void | startWorkLoop (std::string workloopName) |
~FragmentProcessor () | |
Private Member Functions | |
void | processAllCommands () |
void | processAllRegistrations () |
void | processOneFragment () |
void | processOneFragmentIfPossible () |
Private Attributes | |
bool | actionIsActive_ |
xdaq::Application * | app_ |
EventDistributor | eventDistributor_ |
FragmentStore | fragmentStore_ |
toolbox::task::WorkLoop * | processWL_ |
SharedResourcesPtr | sharedResources_ |
StateMachinePtr | stateMachine_ |
boost::posix_time::time_duration | timeout_ |
WrapperNotifier | wrapperNotifier_ |
Processes I2O event fragments
It pops the next fragment from the FragmentQueue and adds it to the FragmentStore. If this completes the event, it hands it to the EventDistributor.
Definition at line 40 of file FragmentProcessor.h.
FragmentProcessor::FragmentProcessor | ( | xdaq::Application * | app, |
SharedResourcesPtr | sr | ||
) |
Definition at line 20 of file FragmentProcessor.cc.
References eventDistributor_, stor::WorkerThreadParams::FPdeqWaitTime_, fragmentStore_, sharedResources_, stateMachine_, timeout_, and wrapperNotifier_.
FragmentProcessor::~FragmentProcessor | ( | ) |
Definition at line 39 of file FragmentProcessor.cc.
References actionIsActive_, and processWL_.
|
private |
Processes all state machine events in the command queue
Definition at line 162 of file FragmentProcessor.cc.
References stor::WorkerThreadParams::FPdeqWaitTime_, sharedResources_, stateMachine_, and timeout_.
Referenced by processMessages().
|
private |
Processes all consumer registrations in the registration queue
Definition at line 185 of file FragmentProcessor.cc.
References eventDistributor_, and sharedResources_.
Referenced by processMessages().
bool FragmentProcessor::processMessages | ( | toolbox::task::WorkLoop * | ) |
The workloop action processing state machine commands from the command queue and handling I2O messages retrieved from the FragmentQueue
Definition at line 74 of file FragmentProcessor.cc.
References actionIsActive_, alignCSCRings::e, stor::AlarmHandler::ERROR, cppFunctionSkipper::exception, edm::hlt::Exception, processAllCommands(), processAllRegistrations(), processOneFragmentIfPossible(), sharedResources_, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by startWorkLoop().
|
private |
Process a single fragment. This should only be called if it has already been determined there is a place to put it.
Definition at line 136 of file FragmentProcessor.cc.
References stor::utils::getCurrentTime(), stor::I2OChain::memoryUsed(), sharedResources_, stateMachine_, and timeout_.
Referenced by processOneFragmentIfPossible().
|
private |
Process a single fragment, if there is place to put it.
Definition at line 118 of file FragmentProcessor.cc.
References stor::FragmentStore::addToStaleEventTimes(), eventDistributor_, fragmentStore_, stor::EventDistributor::full(), stor::FragmentStore::full(), stor::utils::getCurrentTime(), processOneFragment(), sharedResources_, stor::utils::sleep(), and timeout_.
Referenced by processMessages().
void FragmentProcessor::startWorkLoop | ( | std::string | workloopName | ) |
Create and start the fragment processing workloop
Definition at line 48 of file FragmentProcessor.cc.
References app_, alignCSCRings::e, edm::hlt::Exception, stor::utils::getIdentifier(), lumiQueryAPI::msg, processMessages(), processWL_, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
Definition at line 92 of file FragmentProcessor.h.
Referenced by processMessages(), and ~FragmentProcessor().
|
private |
Definition at line 84 of file FragmentProcessor.h.
Referenced by startWorkLoop().
|
private |
Definition at line 89 of file FragmentProcessor.h.
Referenced by FragmentProcessor(), processAllRegistrations(), and processOneFragmentIfPossible().
|
private |
Definition at line 88 of file FragmentProcessor.h.
Referenced by FragmentProcessor(), and processOneFragmentIfPossible().
|
private |
Definition at line 94 of file FragmentProcessor.h.
Referenced by startWorkLoop(), and ~FragmentProcessor().
|
private |
Definition at line 85 of file FragmentProcessor.h.
Referenced by FragmentProcessor(), processAllCommands(), processAllRegistrations(), processMessages(), processOneFragment(), and processOneFragmentIfPossible().
|
private |
Definition at line 87 of file FragmentProcessor.h.
Referenced by FragmentProcessor(), processAllCommands(), and processOneFragment().
|
private |
Definition at line 91 of file FragmentProcessor.h.
Referenced by FragmentProcessor(), processAllCommands(), processOneFragment(), and processOneFragmentIfPossible().
|
private |
Definition at line 86 of file FragmentProcessor.h.
Referenced by FragmentProcessor().