| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Private Member Functions | Private Attributes | List of all members
TimelineSvc Class Reference

`#include <src/TimelineSvc.h>`

Inheritance diagram for TimelineSvc:
[legend]
Collaboration diagram for TimelineSvc:
[legend]

## Public Member Functions
virtual StatusCode | initialize ()
virtual StatusCode | reinitialize ()
virtual StatusCode | finalize ()
virtual void | registerTimelineEvent (const TimelineEvent &e)
bool | isEnabled () const
| TimelineSvc (const std::string &name, ISvcLocator *svc)
virtual | ~TimelineSvc ()
Public Member Functions inherited from extends< Service, ITimelineSvc >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from Service
const std::string & | name () const override
| Retrieve name of the service. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | reinitialize () override
StatusCode | restart () override
StatusCode | sysInitialize () override
| Initialize Service. More...
StatusCode | sysStart () override
| Initialize Service. More...
StatusCode | sysStop () override
| Initialize Service. More...
StatusCode | sysFinalize () override
| Finalize Service. More...
StatusCode | sysReinitialize () override
| Re-initialize the Service. More...
StatusCode | sysRestart () override
| Re-initialize the Service. More...
StatusCode | setProperty (const Property &p) override
StatusCode | setProperty (const std::string &s) override
StatusCode | setProperty (const std::string &n, const std::string &v) override
StatusCode | getProperty (Property *p) const override
const Property & | getProperty (const std::string &name) const override
StatusCode | getProperty (const std::string &n, std::string &v) const override
const std::vector< Property * > & | getProperties () const override
bool | hasProperty (const std::string &name) const override
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
| Service (std::string name, ISvcLocator *svcloc)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job. More...
template<class T >
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<typename IFace = IService>
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist. More...
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property. More...
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties. More...
template<class T >
StatusCode | declarePrivateTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Private tool. More...
template<class T >
StatusCode | declarePublicTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Public tool. More...
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces...>
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Private Member Functions
void | outputTimeline ()

## Private Attributes
bool | m_isEnabled
bool | m_partial
std::string | m_timelineFile
tbb::concurrent_vector< TimelineEvent > | m_events

## Additional Inherited Members
Public Types inherited from extends< Service, ITimelineSvc >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces...>
| Typedef to the base of this class. More...
Public Types inherited from Service
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > | Factory
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using | base_class = CommonMessaging
Public Types inherited from extend_interfaces< Interfaces...>
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids...>::type
| take union of the ext_iids of all Interfaces... More...
Protected Member Functions inherited from Service
| ~Service () override
| Standard Destructor. More...
int | outputLevel () const
| get the `Service's` output level More...
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...
Protected Attributes inherited from Service
IntegerProperty | m_outputLevel = MSG::NIL
| Service output level. More...
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...

## Detailed Description

Definition at line 12 of file TimelineSvc.h.

## Constructor & Destructor Documentation

TimelineSvc::TimelineSvc | ( | const std::string & | name,
|  | ISvcLocator * | svc
| ) |  |

Definition at line 7 of file TimelineSvc.cpp.

8 : base_class( name, svc ), m_partial(false)
9 {
10
11 declareProperty("TimelineFile", m_timelineFile = "timeline.csv");
12 declareProperty("RecordTimeline", m_isEnabled = false);
13 declareProperty("Partial",m_partial = false);
14
15 }
extends< Service, ITimelineSvc >::base_class
extends base_class
Typedef to this class.
Definition: extends.h:14
TimelineSvc::m_timelineFile
std::string m_timelineFile
Definition: TimelineSvc.h:36
TimelineSvc::m_partial
bool m_partial
Definition: TimelineSvc.h:35
Service::declareProperty
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:215
TimelineSvc::m_isEnabled
bool m_isEnabled
Definition: TimelineSvc.h:34

TimelineSvc::~TimelineSvc | ( |  | ) |
| virtual

Definition at line 19 of file TimelineSvc.cpp.

19 {
20
21 }

## Member Function Documentation

StatusCode TimelineSvc::finalize | ( |  | ) |
| virtual

Definition at line 63 of file TimelineSvc.cpp.

63 {
64
65 if (m_events.size() > 0) {
66 MsgStream log( msgSvc(), name() );
67
68 log << MSG::INFO << "Outputting timeline with " << m_events.size() << " entries to file " << m_timelineFile << endmsg;
69
70 outputTimeline();
71
72 }
73
74 return StatusCode::SUCCESS;
75
76 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
Gaudi.Configuration.log
tuple log
Definition: Configuration.py:13
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
TimelineSvc::m_timelineFile
std::string m_timelineFile
Definition: TimelineSvc.h:36
StatusCode::SUCCESS
Definition: StatusCode.h:30
TimelineSvc::m_events
tbb::concurrent_vector< TimelineEvent > m_events
Definition: TimelineSvc.h:37
CommonMessagingBase::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
Definition: CommonMessaging.h:73
MSG::INFO
Definition: IMessageSvc.h:19
TimelineSvc::outputTimeline
void outputTimeline()
Definition: TimelineSvc.cpp:105
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

StatusCode TimelineSvc::initialize | ( |  | ) |
| virtual

Definition at line 27 of file TimelineSvc.cpp.

27 {
28
29 StatusCode sc = Service::initialize();
30 if (!sc.isSuccess()) return sc;
31
32 if (msgLevel(MSG::DEBUG))
33 debug() << "initialize" << endmsg;
34
35 m_events.clear();
36
37 if (m_partial) {
38 std::ofstream out(m_timelineFile+".part", std::ofstream::trunc | std::ofstream::out);
39 out << "#start end algorithm thread slot event" << std::endl;
40 out.close();
41 }
42
43 return StatusCode::SUCCESS;
44
45 }
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:68
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
MSG::DEBUG
Definition: IMessageSvc.h:18
std::endl
T endl(T...args)
merge_files.sc
int sc
Definition: merge_files.py:167
std::ofstream
STL class.
TimelineSvc::m_timelineFile
std::string m_timelineFile
Definition: TimelineSvc.h:36
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
TimelineSvc::m_partial
bool m_partial
Definition: TimelineSvc.h:35
TimelineSvc::m_events
tbb::concurrent_vector< TimelineEvent > m_events
Definition: TimelineSvc.h:37
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:127
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the output level from the embedded MsgStream
Definition: CommonMessaging.h:136
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

bool TimelineSvc::isEnabled | ( |  | ) | const
| inline

Definition at line 23 of file TimelineSvc.h.

23 { return m_isEnabled; }
TimelineSvc::m_isEnabled
bool m_isEnabled
Definition: TimelineSvc.h:34

void TimelineSvc::outputTimeline | ( |  | ) |
| private

Definition at line 105 of file TimelineSvc.cpp.

105 {
106
107 std::ofstream out(m_timelineFile, std::ofstream::out | std::ofstream::trunc);
108
109 out << "#start end algorithm thread slot event" << std::endl;
110
111 for(const auto & e : m_events){
112 out << std::chrono::duration_cast<std::chrono::nanoseconds>(e.start.time_since_epoch()).count() << " "
113 << std::chrono::duration_cast<std::chrono::nanoseconds>(e.end.time_since_epoch()).count() << " "
114 << e.algorithm << " "
115 << e.thread << " "
116 << e.slot << " "
117 << e.event << std::endl;
118 }
119
120 out.close();
121
122 }
std::chrono::nanoseconds
std::endl
T endl(T...args)
std::chrono::duration_cast
T duration_cast(T...args)
std::ofstream
STL class.
TimelineSvc::m_timelineFile
std::string m_timelineFile
Definition: TimelineSvc.h:36
TimelineSvc::m_events
tbb::concurrent_vector< TimelineEvent > m_events
Definition: TimelineSvc.h:37
std::count
T count(T...args)

void TimelineSvc::registerTimelineEvent | ( | const TimelineEvent & | e | ) |
| virtual

Definition at line 82 of file TimelineSvc.cpp.

82 {
83
84 m_events.push_back(e);
85
86 if (m_partial) {
87 std::ofstream out(m_timelineFile+".part", std::ofstream::app | std::ofstream::out);
88 out << std::chrono::duration_cast<std::chrono::nanoseconds>(e.start.time_since_epoch()).count() << " "
89 << std::chrono::duration_cast<std::chrono::nanoseconds>(e.end.time_since_epoch()).count() << " "
90 << e.algorithm << " "
91 << e.thread << " "
92 << e.slot << " "
93 << e.event << std::endl;
94
95 out.close();
96 }
97
98 }
std::chrono::nanoseconds
std::endl
T endl(T...args)
TimelineEvent::algorithm
std::string algorithm
Definition: ITimelineSvc.h:23
std::chrono::duration_cast
T duration_cast(T...args)
TimelineEvent::event
uint event
Definition: ITimelineSvc.h:21
TimelineEvent::thread
uint thread
Definition: ITimelineSvc.h:19
TimelineEvent::end
time_point end
Definition: ITimelineSvc.h:26
std::ofstream
STL class.
TimelineSvc::m_timelineFile
std::string m_timelineFile
Definition: TimelineSvc.h:36
TimelineSvc::m_partial
bool m_partial
Definition: TimelineSvc.h:35
TimelineSvc::m_events
tbb::concurrent_vector< TimelineEvent > m_events
Definition: TimelineSvc.h:37
std::count
T count(T...args)
TimelineEvent::start
time_point start
Definition: ITimelineSvc.h:25
TimelineEvent::slot
uint slot
Definition: ITimelineSvc.h:20
AthenaScenario.app
tuple app
Definition: AthenaScenario.py:89

StatusCode TimelineSvc::reinitialize | ( |  | ) |
| virtual

Definition at line 50 of file TimelineSvc.cpp.

50 {
51
52 MsgStream log( msgSvc(), name() );
53 log << MSG::DEBUG << "reinitialize" << endmsg;
54
55 m_events.clear();
56
57 return StatusCode::SUCCESS;
58
59 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
Gaudi.Configuration.log
tuple log
Definition: Configuration.py:13
MSG::DEBUG
Definition: IMessageSvc.h:18
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
StatusCode::SUCCESS
Definition: StatusCode.h:30
TimelineSvc::m_events
tbb::concurrent_vector< TimelineEvent > m_events
Definition: TimelineSvc.h:37
CommonMessagingBase::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
Definition: CommonMessaging.h:73
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

## Member Data Documentation

tbb::concurrent_vector<TimelineEvent> TimelineSvc::m_events
| private

Definition at line 37 of file TimelineSvc.h.

bool TimelineSvc::m_isEnabled
| private

Definition at line 34 of file TimelineSvc.h.

bool TimelineSvc::m_partial
| private

Definition at line 35 of file TimelineSvc.h.

std::string TimelineSvc::m_timelineFile
| private

Definition at line 36 of file TimelineSvc.h.

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

- GaudiHive/src/TimelineSvc.h
- GaudiHive/src/TimelineSvc.cpp