Go to the documentation of this file.
30 out <<
"#start end algorithm thread slot event" <<
std::endl;
61 auto& newTimelineEvent = *
m_events.emplace_back();
65 out << std::chrono::duration_cast<std::chrono::nanoseconds>( newTimelineEvent.start.time_since_epoch() ).count()
67 << std::chrono::duration_cast<std::chrono::nanoseconds>( newTimelineEvent.end.time_since_epoch() ).count()
68 <<
" " << newTimelineEvent.algorithm <<
" " << newTimelineEvent.thread <<
" " << newTimelineEvent.slot <<
" "
77 for (
const auto& candidate :
m_events ) {
78 if ( candidate.algorithm == e.
algorithm && candidate.event == e.
event ) {
89 out <<
"#start end algorithm thread slot event" <<
std::endl;
92 out << std::chrono::duration_cast<std::chrono::nanoseconds>( e.start.time_since_epoch() ).count() <<
" "
93 << std::chrono::duration_cast<std::chrono::nanoseconds>( e.end.time_since_epoch() ).count() <<
" "
94 << e.algorithm <<
" " << e.thread <<
" " << e.slot <<
" " << e.event <<
std::endl;
StatusCode initialize() override
Gaudi::Property< bool > m_partial
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
bool getTimelineEvent(TimelineEvent &) const override
const std::string & name() const override
Retrieve name of the service
RAII helper to record timeline events.
const ValueType & value() const
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
tbb::concurrent_vector< TimelineEvent > m_events
StatusCode finalize() override
TimelineRecorder getRecorder(std::string alg, const EventContext &ctx) override
StatusCode reinitialize() override
constexpr static const auto SUCCESS
#define DECLARE_COMPONENT(type)
StatusCode initialize() override
Gaudi::Property< bool > m_dumpTimeline
Gaudi::Property< std::string > m_timelineFile