20 out <<
"#start end algorithm thread slot event" <<
std::endl;
51 auto& newTimelineEvent = *
m_events.emplace_back();
52 TimelineRecorder recorder{newTimelineEvent,
std::move( alg ), ctx};
55 out << std::chrono::duration_cast<std::chrono::nanoseconds>( newTimelineEvent.start.time_since_epoch() ).count()
58 <<
" " << newTimelineEvent.algorithm <<
" " << newTimelineEvent.thread <<
" " << newTimelineEvent.slot <<
" " 67 for (
const auto& candidate :
m_events ) {
68 if ( candidate.algorithm == e.
algorithm && candidate.event == e.
event ) {
79 out <<
"#start end algorithm thread slot event" <<
std::endl;
82 out << std::chrono::duration_cast<std::chrono::nanoseconds>( e.start.time_since_epoch() ).count() <<
" " 84 << e.algorithm <<
" " << e.thread <<
" " << e.slot <<
" " << e.event <<
std::endl;
Definition of the MsgStream class used to transmit messages.
StatusCode initialize() override
const std::string & name() const override
Retrieve name of the service.
Gaudi::Property< bool > m_partial
constexpr static const auto SUCCESS
T duration_cast(T...args)
This class represents an entry point to all the event specific data.
#define DECLARE_COMPONENT(type)
This class is used for returning status codes from appropriate routines.
tbb::concurrent_vector< TimelineEvent > m_events
bool getTimelineEvent(TimelineEvent &) const override
StatusCode finalize() override
const SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
TimelineRecorder getRecorder(std::string alg, const EventContext &ctx) override
StatusCode initialize() override
Gaudi::Property< std::string > m_timelineFile
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
RAII helper to record timeline events.
StatusCode reinitialize() override
Gaudi::Property< bool > m_dumpTimeline
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)