Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ITimerMng.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/* ITimerMng.h (C) 2000-2019 */
9/* */
10/* Interface d'un gestionnaire de timer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITIMERMNG_H
13#define ARCANE_ITIMERMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27class Timer;
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Interface d'un gestionnaire de timer.
33 *
34 * Ce gestionnaire est utilisé exclusivement par les timers de
35 * l'architecture (Timer) et ne doit pas être utilisé directement.
36 *
37 * Un timer utilise la méthode beginTimer() pour indiquer
38 * à ce gestionnaire qu'il souhaite débuter une mesure temporelle et
39 * la méthode endTimer() pour indiquer que la mesure est terminée et
40 * obtenir le temps écoulé depuis l'appel à beginTimer(). Il est aussi
41 * possible d'obtenir le temps écoulé sans arrêter le timer par appel
42 * à la fonction getTime().
43 *
44 * Les timers de même type s'imbriquent les uns dans les autres et doivent respecter
45 * le principe des piles pour les appels à beginTimer() et endTimer(): le
46 * timer qui appelle endTimer() doit être le dernier à avoir appelé beginTimer().
47 *
48 * Le type de temps utilisé est déterminé par le Timer::type(). Il s'agit soit du
49 * temps CPU, soit du temps réel.
50 *
51 */
53{
54 public:
55
56 /*!
57 * \brief Libère les ressources.
58 * \pre !hasTimer()
59 */
60 virtual ~ITimerMng() {}
61
62 public:
63
64 /*!
65 * \brief Attache le timer \a timer à ce gestionnaire.
66 *
67 * \pre !\a timer
68 * \pre !hasTimer(\a timer)
69 * \post hasTimer(\a timer)
70 */
71 virtual void beginTimer(Timer* timer) =0;
72
73 /*!
74 * \brief Relâche le timer \a timer.
75 *
76 * \return le temps écoulé depuis l'appel à beginTimer().
77 *
78 * \pre !\a timer
79 * \pre hasTimer(\a timer)
80 * \post !hasTimer(\a timer)
81 */
82 virtual Real endTimer(Timer* timer) =0;
83
84 /*!
85 * \brief Temps écoulé depuis le dernier appel à beginTimer().
86 *
87 * \pre !\a timer
88 * \pre hasTimer(\a timer)
89 */
90 virtual Real getTime(Timer* timer) =0;
91
92 /*!
93 * \brief Indique si le timer \a timer est enregistré.
94 *
95 * \pre !\a timer
96 * \deprecated Cette fonction sera supprimé à terme. Ne plus utiliser.
97 */
98 ARCCORE_DEPRECATED_2019("Do not use this method")
99 virtual bool hasTimer(Timer* timer) =0;
100};
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105ARCANE_END_NAMESPACE
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110#endif
111
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
virtual Real endTimer(Timer *timer)=0
Relâche le timer timer.
virtual void beginTimer(Timer *timer)=0
Attache le timer timer à ce gestionnaire.
virtual Real getTime(Timer *timer)=0
Temps écoulé depuis le dernier appel à beginTimer().
virtual ~ITimerMng()
Libère les ressources.
Definition ITimerMng.h:60
Gestion d'un timer.
Definition Timer.h:62