Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ISharedReference.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/* ISharedReference.h (C) 2000-2006 */
9/* */
10/* Interface de la classe compteur de référence. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ISHAREDREFERENCE_H
13#define ARCANE_ISHAREDREFERENCE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Ptr.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26/*!
27 * \ingroup Core
28 * \brief Interface d'un compteur de référence.
29 *
30 Le compteur de référence permet à une instance classe de connaître le nombre
31 de références sur elle. Lorsque ce nombre arrive à zéro, cela signifie
32 que l'instance n'est plus utilisée. Ce système est utilisé principalement
33 pour libérer automatiquement la mémoire lorsque le nombre de références
34 tombe à zéro.
35
36 Cette classe s'utilise par l'intermédiaire de classes comme AutoRefT qui
37 permettent d'incrémenter ou de décrémenter automatiquement le compteur
38 de l'objet sur lesquelles elles pointent.
39
40 \since 0.2.9
41 \author Gilles Grospellier
42 \date 06/10/2000
43 */
44class ARCANE_CORE_EXPORT ISharedReference
45{
46 public:
47
48 //! Libère les ressources
50
51 public:
52
53 //! Incrémente le compteur de référence
54 virtual void addRef() =0;
55
56 //! Décrémente le compteur de référence
57 virtual void removeRef() =0;
58
59 //! Retourne la valeur du compteur de référence
60 virtual Int32 refCount() const =0;
61};
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
66ARCANE_END_NAMESPACE
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71#endif
72
Interface d'un compteur de référence.
virtual Int32 refCount() const =0
Retourne la valeur du compteur de référence.
virtual void removeRef()=0
Décrémente le compteur de référence.
virtual void addRef()=0
Incrémente le compteur de référence.
virtual ~ISharedReference()
Libère les ressources.