The Gaudi Framework  v36r13 (995e4364)
precedence::StartTime Struct Reference

#include </builds/gaudi/Gaudi/GaudiHive/src/PRGraph/PrecedenceRulesGraph.h>

Collaboration diagram for precedence::StartTime:

Public Member Functions

 StartTime (const EventSlot &slot, SmartIF< ISvcLocator > &svcLocator)
 
std::string operator() (const AlgoProps &props) const
 
std::string operator() (const DecisionHubProps &) const
 
std::string operator() (const DataProps &) const
 

Public Attributes

const EventSlotm_slot
 
SmartIF< ITimelineSvcm_timelineSvc
 

Detailed Description

Definition at line 261 of file PrecedenceRulesGraph.h.

Constructor & Destructor Documentation

◆ StartTime()

precedence::StartTime::StartTime ( const EventSlot slot,
SmartIF< ISvcLocator > &  svcLocator 
)
inline

Definition at line 262 of file PrecedenceRulesGraph.h.

262  : m_slot( slot ) {
264  MsgStream log{ msgSvc, "StartTime.Getter" };
265 
266  // Figure if we can discover the algorithm timings
267  m_timelineSvc = svcLocator->service<ITimelineSvc>( "TimelineSvc", false );
268  if ( !m_timelineSvc.isValid() ) {
269  log << MSG::WARNING << "Failed to locate the TimelineSvc: no way to "
270  << "add algorithm start time to the TTT dumps" << endmsg;
271  }
272  }

Member Function Documentation

◆ operator()() [1/3]

std::string precedence::StartTime::operator() ( const AlgoProps props) const
inline

Definition at line 274 of file PrecedenceRulesGraph.h.

274  {
275 
276  std::string startTime;
277 
278  if ( m_timelineSvc.isValid() ) {
279 
280  TimelineEvent te{};
281  te.algorithm = props.m_name;
282  te.slot = m_slot.eventContext->slot();
283  te.event = m_slot.eventContext->evt();
284 
285  m_timelineSvc->getTimelineEvent( te );
286  startTime = std::to_string(
287  std::chrono::duration_cast<std::chrono::nanoseconds>( te.start.time_since_epoch() ).count() );
288  }
289 
290  return startTime;
291  }

◆ operator()() [2/3]

std::string precedence::StartTime::operator() ( const DataProps ) const
inline

Definition at line 295 of file PrecedenceRulesGraph.h.

295 { return ""; }

◆ operator()() [3/3]

std::string precedence::StartTime::operator() ( const DecisionHubProps ) const
inline

Definition at line 293 of file PrecedenceRulesGraph.h.

293 { return ""; }

Member Data Documentation

◆ m_slot

const EventSlot& precedence::StartTime::m_slot

Definition at line 297 of file PrecedenceRulesGraph.h.

◆ m_timelineSvc

SmartIF<ITimelineSvc> precedence::StartTime::m_timelineSvc

Definition at line 298 of file PrecedenceRulesGraph.h.


The documentation for this struct was generated from the following file:
EventSlot::eventContext
std::unique_ptr< EventContext > eventContext
Cache for the eventContext.
Definition: EventSlot.h:83
std::string
STL class.
Gaudi.Configuration.log
log
Definition: Configuration.py:30
MSG::WARNING
@ WARNING
Definition: IMessageSvc.h:25
TimelineEvent
Definition: ITimelineSvc.h:23
Gaudi::svcLocator
GAUDI_API ISvcLocator * svcLocator()
precedence::StartTime::m_timelineSvc
SmartIF< ITimelineSvc > m_timelineSvc
Definition: PrecedenceRulesGraph.h:298
SmartIF::isValid
bool isValid() const
Allow for check if smart pointer is valid.
Definition: SmartIF.h:72
ITimelineSvc
Definition: ITimelineSvc.h:37
EventContext::slot
ContextID_t slot() const
Definition: EventContext.h:51
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:97
std::to_string
T to_string(T... args)
SmartIF< IMessageSvc >
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:203
MsgStream
Definition: MsgStream.h:34
ProduceConsume.props
props
Definition: ProduceConsume.py:84
TimelineEvent::algorithm
std::string algorithm
Definition: ITimelineSvc.h:31
AsyncIncidents.msgSvc
msgSvc
Definition: AsyncIncidents.py:34
precedence::StartTime::m_slot
const EventSlot & m_slot
Definition: PrecedenceRulesGraph.h:297
EventContext::evt
ContextEvt_t evt() const
Definition: EventContext.h:50