| The Gaudi Framework v29r0 (ff2e7097)

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

- File List
- File Members

ITimelineSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ITIMELINESVC_H
2 #define GAUDIKERNEL_ITIMELINESVC_H
3
4 #include "GaudiKernel/IService.h"
5
6 #include <pthread.h>
7 #include <string>
8
9 #include <chrono>
10 typedef std::chrono::high_resolution_clock Clock;
11 typedef Clock::time_point time_point;
12
13 struct TimelineEvent {
14 pthread_t thread;
15 uint slot;
16 uint event;
17
18 std::string algorithm;
19
20 time_point start;
21 time_point end;
22 };
23
24 class GAUDI_API ITimelineSvc : virtual public IService
25 {
26
27 public:
29 DeclareInterfaceID( ITimelineSvc, 1, 0 );
30
31 virtual void registerTimelineEvent( const TimelineEvent& ) = 0;
32 // Augment a partially pre-filled TimelineEvent object with matching info
33 virtual void getTimelineEvent( TimelineEvent& ) const = 0;
34 virtual bool isEnabled() const = 0;
35 };
36
37 #endif
TimelineEvent::thread
pthread_t thread
Definition: ITimelineSvc.h:14
TimelineEvent::algorithm
std::string algorithm
Definition: ITimelineSvc.h:18
TimelineEvent::event
uint event
Definition: ITimelineSvc.h:16
TimelineEvent
Definition: ITimelineSvc.h:13
std::string
STL class.
TimelineEvent::end
time_point end
Definition: ITimelineSvc.h:21
std::chrono::high_resolution_clock
IService
General service interface definition.
Definition: IService.h:18
DeclareInterfaceID
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
Clock
std::chrono::high_resolution_clock Clock
Definition: ITimelineSvc.h:10
ITimelineSvc
Definition: ITimelineSvc.h:24
IService.h
TimelineEvent::start
time_point start
Definition: ITimelineSvc.h:20
time_point
Clock::time_point time_point
Definition: ITimelineSvc.h:11
TimelineEvent::slot
uint slot
Definition: ITimelineSvc.h:15
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:110