The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
ITimelineSvc::TimelineRecorder Class Referencefinal

RAII helper to record timeline events. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/ITimelineSvc.h>

Collaboration diagram for ITimelineSvc::TimelineRecorder:

Public Member Functions

 TimelineRecorder ()=default
 TimelineRecorder (TimelineEvent &record, std::string alg, const EventContext &ctx)
 TimelineRecorder (TimelineEvent &record)
 TimelineRecorder (const TimelineRecorder &)=delete
TimelineRecorder & operator= (const TimelineRecorder &)=delete
 TimelineRecorder (TimelineRecorder &&other)
TimelineRecorder & operator= (TimelineRecorder &&other)
 ~TimelineRecorder ()

Private Attributes

TimelineEvent * m_record = nullptr

Detailed Description

RAII helper to record timeline events.

Definition at line 27 of file ITimelineSvc.h.

Constructor & Destructor Documentation

◆ TimelineRecorder() [1/5]

ITimelineSvc::TimelineRecorder::TimelineRecorder ( )
default

◆ TimelineRecorder() [2/5]

ITimelineSvc::TimelineRecorder::TimelineRecorder ( TimelineEvent & record,
std::string alg,
const EventContext & ctx )

Definition at line 17 of file ITimelineSvc.cpp.

18 : m_record{ &record } {
19 m_record->thread = pthread_self();
20 m_record->slot = ctx.slot();
21 m_record->event = ctx.evt();
22 m_record->algorithm = std::move( alg );
23 m_record->start = TimelineEvent::Clock::now();
24}

◆ TimelineRecorder() [3/5]

ITimelineSvc::TimelineRecorder::TimelineRecorder ( TimelineEvent & record)

Definition at line 26 of file ITimelineSvc.cpp.

26 : m_record{ &record } {
27 m_record->thread = pthread_self();
28 // m_record->slot, m_record->event, m_record->algorithm are expected to be pre-filled
29 m_record->start = TimelineEvent::Clock::now();
30}

◆ TimelineRecorder() [4/5]

ITimelineSvc::TimelineRecorder::TimelineRecorder ( const TimelineRecorder & )
delete

◆ TimelineRecorder() [5/5]

ITimelineSvc::TimelineRecorder::TimelineRecorder ( TimelineRecorder && other)
inline

Definition at line 37 of file ITimelineSvc.h.

37: m_record{ std::exchange( other.m_record, nullptr ) } {}

◆ ~TimelineRecorder()

ITimelineSvc::TimelineRecorder::~TimelineRecorder ( )

Definition at line 32 of file ITimelineSvc.cpp.

32 {
33 if ( m_record ) m_record->end = TimelineEvent::Clock::now();
34}

Member Function Documentation

◆ operator=() [1/2]

TimelineRecorder & ITimelineSvc::TimelineRecorder::operator= ( const TimelineRecorder & )
delete

◆ operator=() [2/2]

TimelineRecorder & ITimelineSvc::TimelineRecorder::operator= ( TimelineRecorder && other)
inline

Definition at line 39 of file ITimelineSvc.h.

39 {
40 m_record = std::exchange( other.m_record, nullptr );
41 return *this;
42 }

Member Data Documentation

◆ m_record

TimelineEvent* ITimelineSvc::TimelineRecorder::m_record = nullptr
private

Definition at line 47 of file ITimelineSvc.h.


The documentation for this class was generated from the following files: