Loading [MathJax]/extensions/tex2jax.js
Go to the documentation of this file.
26 # pragma warning( disable : 654 )
63 using extends::extends;
92 "enable optimization for Data-On-Demand Service" };
107 error() <<
"Could not retrieve 'ToolSvc' " <<
endmsg;
111 sc = m_toolSvc->retrieveTool(
"SequencerTimerTool/TIMER", m_timer,
this,
true );
113 error() <<
"Could not retrieve ISequencerTimerTool" <<
endmsg;
122 error() <<
"Could not retrieve 'IncidentSvc'" <<
endmsg;
125 m_incSvc->addListener(
this, IncidentType::BeginEvent );
126 m_incSvc->addListener(
this, IncidentType::EndEvent );
132 error() <<
"Could not retrieve 'ApplicationMgr'" <<
endmsg;
135 if ( m_map.end() == m_map.find( m_appMgr.get() ) ) {
136 m_map.insert( m_appMgr.get(), m_timer->addTimer(
"EVENT LOOP" ) );
145 m_incSvc->removeListener(
this, IncidentType::BeginEvent );
146 m_incSvc->removeListener(
this, IncidentType::EndEvent );
204 if ( !
alg ) {
return; }
206 if (
m_map.
end() != found ) {
return; }
212 debug() <<
"Insert non-structural component '" <<
alg->name() <<
"' of type '"
226 if ( !
alg ) {
return; }
230 debug() <<
"Insert non-structural component '" <<
alg->name() <<
"' of type '"
244 if ( !
alg ) {
return; }
246 if (
m_map.
end() == found ) {
return; }
265 timer = found->second;
280 warning() <<
"Trying to stop the measure of the timing for '" << nick
281 <<
"' but it was never started. Check the code" <<
endmsg;
288 if ( IncidentType::BeginEvent == i.
type() ) {
292 }
else if ( IncidentType::EndEvent == i.
type() ) {
SmartIF< INamedInterface > m_appMgr
ApplicationManager.
iterator find(const key_type &key)
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
void before(StandardEventType, INamedInterface *) override
The following methods are meant to be implemented by the child class...
StatusCode initialize() override
factory:
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Gaudi::Property< bool > m_goodForDOD
virtual StatusCode finalize()
void clear()
clear the container
SmartIF< IToolSvc > m_toolSvc
tool service
virtual StatusCode initialize()
const std::string & name() const override
bool m_inEvent
"In event" flag
void i_beforeFinalize(INamedInterface *alg)
TimingAuditor & operator=(const TimingAuditor &)=delete
void after(StandardEventType, INamedInterface *, const StatusCode &) override
StatusCode finalize() override
iterator end() const
"end" iterator for sequential access (const-only version!)
GaudiUtils::VectorMap< const INamedInterface *, int > m_map
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
TimingAuditor(const TimingAuditor &)=delete
Base class used to extend a class implementing other interfaces.
void i_afterInitialize(INamedInterface *alg)
GaudiUtils::HashMap< std::string, int > m_mapUser
map used to record user timing events
constexpr static const auto SUCCESS
TYPE * get() const
Get interface pointer.
void i_afterExecute(INamedInterface *alg)
#define DECLARE_COMPONENT(type)
result_type insert(const key_type &key, const mapped_type &mapped)
insert the (key,value) pair into the container
const std::string & type() const
Access to the incident type.
void i_beforeExecute(INamedInterface *alg)
void before(StandardEventType evt, INamedInterface *alg) override
constexpr static const auto FAILURE
void i_beforeInitialize(INamedInterface *alg)
int m_indent
indentation level
void after(StandardEventType evt, INamedInterface *alg, const StatusCode &sc) override
StatusCode service(std::string_view name, T *&svc, bool createIf=false) const
Access a service by name, creating it if it doesn't already exist.
iterator find(const key_type &key) const
find the element by key
ISequencerTimerTool * m_timer
the timer tool
SmartIF< IIncidentSvc > m_incSvc
incident service
void handle(const Incident &) override
Inform that a new incident has occurred.