Loading [MathJax]/extensions/MathZoom.js
The Gaudi Framework  master (b9786168)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages Concepts
TimelineSvc.h
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3* *
4* This software is distributed under the terms of the Apache version 2 licence, *
5* copied verbatim in the file "LICENSE". *
6* *
7* In applying this licence, CERN does not waive the privileges and immunities *
8* granted to it by virtue of its status as an Intergovernmental Organization *
9* or submit itself to any jurisdiction. *
10\***********************************************************************************/
11
12#pragma once
13
15#include <GaudiKernel/Service.h>
16
17#include <string>
18
19#include <tbb/concurrent_vector.h>
20
21class TimelineSvc : public extends<Service, ITimelineSvc> {
22public:
23 using extends::extends;
24
25 StatusCode initialize() override;
26 StatusCode reinitialize() override;
27 StatusCode finalize() override;
28
29 TimelineRecorder getRecorder( std::string alg, const EventContext& ctx ) override;
30 bool getTimelineEvent( TimelineEvent& ) const override;
31
32 bool isEnabled() const override { return m_isEnabled; }
33
34private:
35 void outputTimeline();
36
37 Gaudi::Property<std::string> m_timelineFile{ this, "TimelineFile", "timeline.csv", "" };
38 Gaudi::Property<bool> m_isEnabled{ this, "RecordTimeline", false, "Enable recording of the timeline events" };
39 Gaudi::Property<bool> m_dumpTimeline{ this, "DumpTimeline", false, "Enable dumping of the timeline events" };
40 Gaudi::Property<bool> m_partial{ this, "Partial", false, "" };
41
42 tbb::concurrent_vector<TimelineEvent> m_events;
43};
This class represents an entry point to all the event specific data.
Implementation of property with value of concrete type.
Definition PropertyFwd.h:27
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64
Gaudi::Property< bool > m_isEnabled
Definition TimelineSvc.h:38
Gaudi::Property< bool > m_partial
Definition TimelineSvc.h:40
void outputTimeline()
bool getTimelineEvent(TimelineEvent &) const override
StatusCode initialize() override
StatusCode reinitialize() override
StatusCode finalize() override
Gaudi::Property< std::string > m_timelineFile
Definition TimelineSvc.h:37
bool isEnabled() const override
Definition TimelineSvc.h:32
TimelineRecorder getRecorder(std::string alg, const EventContext &ctx) override
Gaudi::Property< bool > m_dumpTimeline
Definition TimelineSvc.h:39
tbb::concurrent_vector< TimelineEvent > m_events
Definition TimelineSvc.h:42
Base class used to extend a class implementing other interfaces.
Definition extends.h:19