The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
IChronoSvc.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#pragma once
12
14#include <string>
15
16class ChronoEntity;
17
31class GAUDI_API IChronoSvc : virtual public IInterface {
32public:
36 typedef std::string ChronoTag;
38 typedef double ChronoTime;
39
40public:
41 // status of Chrono objects
43 // types of Chrono objects
44 enum ChronoType { USER = 0, KERNEL, ELAPSED };
45
50 virtual ChronoEntity* chronoStart( const ChronoTag& t ) = 0;
55 virtual const ChronoEntity* chronoStop( const ChronoTag& t ) = 0;
61 virtual ChronoTime chronoDelta( const ChronoTag& t, ChronoType f ) = 0;
66 virtual void chronoPrint( const ChronoTag& t ) = 0;
71 virtual ChronoStatus chronoStatus( const ChronoTag& t ) = 0;
76 virtual const ChronoEntity* chrono( const ChronoTag& t ) const = 0;
77};
#define GAUDI_API
Definition Kernel.h:49
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
"Chrono"-related part of interface IChronoStatSvc
Definition IChronoSvc.h:31
virtual void chronoPrint(const ChronoTag &t)=0
prints (using message service) info about chrono, tagged by its name
virtual const ChronoEntity * chronoStop(const ChronoTag &t)=0
stop chrono, tagged by its name
virtual ChronoStatus chronoStatus(const ChronoTag &t)=0
return the status of named chrono
virtual ChronoEntity * chronoStart(const ChronoTag &t)=0
start chrono, tagged by its name
std::string ChronoTag
the actual type of identifier for Chrono objects
Definition IChronoSvc.h:36
DeclareInterfaceID(IChronoSvc, 3, 0)
InterfaceID.
virtual ChronoTime chronoDelta(const ChronoTag &t, ChronoType f)=0
return chrono delta time of last start/stop pair
double ChronoTime
Type of the delta-time.
Definition IChronoSvc.h:38
virtual const ChronoEntity * chrono(const ChronoTag &t) const =0
extract the chrono entity for the given tag (name)
Definition of the basic interface.
Definition IInterface.h:225