38 info() <<
"End of event input reached." <<
endmsg;
42 always() <<
"Reading Event record " << count + 1 <<
". Record number within stream " << iter->
ID() + 1 <<
": "
46 info() <<
"End of event input reached." <<
endmsg;
58 if ( s->isInitialized() ) {
60 if ( s->selector() && iter.
context() ) {
62 s->selector()->releaseContext( ctxt ).ignore();
77 if ( !s->isInitialized() ) {
85 Context* ctxt =
nullptr;
86 status = sel->createContext( ctxt );
88 status = sel->resetCriteria( s->criteria(), *ctxt );
90 iter.
set(
this, iter_id, ctxt, 0 );
103 iter.
set(
this, -1, 0, 0 );
114 if ( s->isInitialized() ) {
116 if ( s->selector() && iter.
context() ) {
117 Context* ctxt = iter.
context();
118 if ( status = s->selector()->releaseContext( ctxt ); !status )
return status;
133 if ( !s->isInitialized() ) {
140 Context* ctxt =
nullptr;
141 status = sel->createContext( ctxt );
143 status = sel->resetCriteria( s->criteria(), *ctxt );
145 iter.
set(
this, iter_id, ctxt, 0 );
154 iter.
set(
this, -1, 0, 0 );
169 ctxt->set( 0, -1, 0, 0 );
172 while ( --nskip > 0 ) {
191 if ( pIt->
ID() != -1 ) {
229 if ( pIt && jump > 0 ) {
231 for (
int i = 0; i < jump && sc.
isSuccess(); ++i ) {
237 sc = sel->previous( *it );
267 ctxt->
set( 0, -1, 0, 0 );
270 while ( --nskip > 0 ) {
286 auto it = pIt->context();
287 auto sel = s->selector();
290 sc = sel->createAddress( *it, pAddr );
291 if ( sc.
isSuccess() ) { refpAddr = pAddr; }
292 pIt->set( it, pAddr );
303 if ( pIt && pIt->ID() >= 0 && pIt->ID() < (
long)
m_streamtool->size() ) {
305 auto it = pIt->context();
306 auto sel = s->selector();
307 if ( it && sel ) { sc = sel->releaseContext( it ); }
318 error() <<
"Error initializing base class Service!" <<
endmsg;
324 fatal() <<
"Error retrieving IncidentSvc." <<
endmsg;
328 error() <<
"EvtMax is an obsolete property of the event selector." <<
endmsg;
329 error() <<
"Please set \"ApplicationMgr.EvtMax = " <<
m_evtMax <<
";\" to process the requested number of events."
336 error() <<
" Could not locate the Tool Service! " <<
endmsg;
343 auto prio = mgr->getPriority(
"ToolSvc" );
344 mgr->setPriority(
name(), prio + 1 ).ignore();
371 error() <<
"Cannot reinitialize: service not in state initialized" <<
endmsg;
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
#define DECLARE_COMPONENT(type)
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
MsgStream & always() const
shortcut for the method msgStream(MSG::ALWAYS)
MSG::Level msgLevel() const
Definition of class EventSelectorDataStream.
Definition of class EventSelector.
bool m_reconfigure
Reconfigure occurred.
StatusCode next(Context &refCtxt) const override
Get next iteration item from the event loop context.
StatusCode finalize() override
IService implementation: Service finalization.
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the indicent service.
StatusCode lastOfPreviousStream(bool shutDown, EvtSelectorContext &it) const
Retrieve last entry of the previous data stream.
StatusCode rewind(Context &refCtxt) const override
Rewind the dataset.
StatusCode reinitialize() override
Service override: Reinitialize service.
StreamSpecs m_streamSpecsLast
Input stream specifiers (last used)
StatusCode firstOfNextStream(bool shutDown, EvtSelectorContext &it) const
Retrieve first entry of the next data stream.
Gaudi::Property< int > m_evtMax
StatusCode initialize() override
IService implementation: Db event selector override.
StatusCode resetCriteria(const std::string &cr, Context &c) const override
Will set a new criteria for the selection of the next list of events and will change the state of the...
SmartIF< IToolSvc > m_toolSvc
StatusCode last(Context &c) const override
Access last item in the iteration.
StatusCode previous(Context &refCtxt) const override
Get previous iteration item from the event loop context.
StatusCode releaseContext(Context *&refCtxt) const override
Release existing event iteration context.
Gaudi::Property< StreamSpecs > m_streamSpecs
StatusCode createAddress(const Context &refCtxt, IOpaqueAddress *&refpAddr) const override
Create new Opaque address corresponding to the current record.
virtual void printEvtInfo(const EvtSelectorContext *iter) const
Progress report.
IDataStreamTool * m_streamtool
StatusCode createContext(Context *&refpCtxt) const override
Create a new event loop context.
Gaudi::Property< int > m_evtPrintFrequency
Gaudi::Property< std::string > m_streamManager
Gaudi::Property< int > m_firstEvent
Definition of class EventIterator.
long numEvent() const
Access counter.
virtual IDataStreamTool::size_type ID() const
Stream identifier.
IEvtSelector::Context * context() const
Access "real" iterator.
long numStreamEvent() const
Access counter within stream.
void set(const IEvtSelector *sel, IDataStreamTool::size_type id, IEvtSelector::Context *it, IOpaqueAddress *pA)
Set the address of the iterator.
IDataStreamTool::size_type increaseCounters(bool reset=false)
Increase counters.
The Event Selector Interface.
Opaque address interface definition.
virtual SmartIF< IService > & service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
Returns a smart pointer to a service.
Base class for all Incidents (computing events).
Gaudi::StateMachine::State FSMState() const override
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
StatusCode finalize() override
const std::string & name() const override
Retrieve name of the service.
StatusCode initialize() override
Small smart pointer class with automatic reference counting for IInterface.
This class is used for returning status codes from appropriate routines.
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
constexpr static const auto SUCCESS
constexpr static const auto FAILURE