Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TimerMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* TimerMng.h (C) 2000-2022 */
9/* */
10/* Implémentation d'un gestionnaire de timer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_TIMERMNG_H
13#define ARCANE_IMPL_TIMERMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/ITimerMng.h"
19
20#include <atomic>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
36class ARCANE_IMPL_EXPORT TimerMng
37: public TraceAccessor
38, public ITimerMng
39{
40 public:
41
43 explicit TimerMng(ITraceMng* msg);
44
45 public:
46
47 void beginTimer(Timer* timer) override;
48 Real endTimer(Timer* timer) override;
49 Real getTime(Timer* timer) override;
50 bool hasTimer(Timer* timer) override;
51
52 protected:
53
55 virtual Real _getRealTime();
56
58 virtual void _setRealTime() {}
59
60 private:
61
62 void _errorInTimer(const String& msg,int retcode);
63};
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
68} // End namespace Arcane
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73#endif
74
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
bool hasTimer(Timer *timer) override
Indique si le timer timer est enregistré.
Definition TimerMng.cc:83
TimerMng(ITraceMng *msg)
Construit un timer lié au gestionnaire mng.
Definition TimerMng.cc:39
virtual Real _getRealTime()
Retourne le temps réel.
Definition TimerMng.cc:93
virtual void _setRealTime()
Positionne un timer réel.
Definition TimerMng.h:58
Real getTime(Timer *timer) override
Temps écoulé depuis le dernier appel à beginTimer().
Definition TimerMng.cc:61
void beginTimer(Timer *timer) override
Attache le timer timer à ce gestionnaire.
Definition TimerMng.cc:51
Real endTimer(Timer *timer) override
Relâche le timer timer.
Definition TimerMng.cc:72
Gestion d'un timer.
Definition Timer.h:62
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
double Real
Type représentant un réel.