5#ifndef ATHENAMPTOOLS_SHAREDEVTQUEUECONSUMER_H
6#define ATHENAMPTOOLS_SHAREDEVTQUEUECONSUMER_H
11#include "GaudiKernel/Timing.h"
12#include "GaudiKernel/IEvtSelector.h"
27 ,
const std::string& name
28 ,
const IInterface* parent);
33 virtual StatusCode
finalize()
override;
44 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
bootstrap_func()
override;
45 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
exec_func()
override;
46 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
fin_func()
override;
55 Gaudi::Property<bool>
m_useSharedReader{
this,
"UseSharedReader",
false,
"Work in pair with a SharedReader"};
56 Gaudi::Property<bool>
m_useSharedWriter{
this,
"UseSharedWriter",
false,
"Work in pair with a SharedWriter"};
57 Gaudi::Property<bool>
m_isRoundRobin{
this,
"IsRoundRobin",
false,
"Are we running in the 'reproducible mode'?"};
58 Gaudi::Property<bool>
m_debug{
this,
"Debug",
false};
61 Gaudi::Property<std::string>
m_eventOrdersFile{
this,
"EventOrdersFile",
"athenamp_eventorders.txt"};
Abstract interface for sharing data.
Abstract interface for seeking within an event stream.
Abstract interface for sharing within an event stream.
Abstract interface for seeking for an event selector.
virtual StatusCode finalize() override
virtual StatusCode initialize() override
std::map< pid_t, std::pair< int, TimeValType > > m_eventStat
SharedEvtQueueConsumer(const std::string &type, const std::string &name, const IInterface *parent)
int decodeProcessResult ATLAS_NOT_THREAD_SAFE(const AthenaInterprocess::ProcessResult *presult, bool doFinalize)
SmartIF< IEventShare > m_evtShare
std::queue< pid_t > m_finQueue
Gaudi::Property< std::string > m_eventOrdersFile
SmartIF< IEventSeek > m_evtSeek
std::vector< int > m_eventOrders
SmartIF< IEvtSelectorSeek > m_evtSelSeek
Gaudi::Property< int > m_nEventsBeforeFork
Gaudi::Property< bool > m_readEventOrders
Gaudi::Property< bool > m_useSharedWriter
Gaudi::Property< bool > m_useSharedReader
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > exec_func() override
ServiceHandle< IChronoStatSvc > m_chronoStatSvc
virtual StatusCode wait_once ATLAS_NOT_THREAD_SAFE(pid_t &pid) override
virtual void reportSubprocessStatuses() override
SmartIF< IDataShare > m_dataShare
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > bootstrap_func() override
Gaudi::Property< bool > m_isRoundRobin
AthenaInterprocess::SharedQueue * m_sharedEventQueue
Gaudi::Property< bool > m_debug
IEvtSelector::Context * m_evtContext
virtual int makePool ATLAS_NOT_THREAD_SAFE(int maxevt, int nprocs, const std::string &topdir) override
std::unique_ptr< AthenaInterprocess::SharedQueue > m_sharedRankQueue
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > fin_func() override
virtual ~SharedEvtQueueConsumer() override
virtual StatusCode exec ATLAS_NOT_THREAD_SAFE() override
System::ProcessTime::TimeValueType TimeValType
virtual void subProcessLogs(std::vector< std::string > &) override