Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du fichier RefDeclarations.h
#include "arccore/base/ArccoreGlobal.h"
#include <type_traits>
#include <memory>
+ Graphe des dépendances par inclusion de RefDeclarations.h:
+ Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

struct  Arccore::ReferenceCounterTag
 Structure servant à tagger les interfaces/classes qui utilisent un compteur de référence interne. Plus de détails...
 
struct  Arccore::RefTraits< InstanceType, T >
 Caractéristiques pour gérer les compteurs de référence. Plus de détails...
 
struct  Arccore::RefTraits< InstanceType, std::enable_if_t< std::is_same_v< typename InstanceType::ReferenceCounterTagType, ReferenceCounterTag > > >
 Spécialisation de la classe gérant un compteur de référence si la classe utilise le tag 'ReferenceCounterTag'. Plus de détails...
 
struct  Arccore::impl::HasInternalRemoveReference< T, typename >
 Classe template pour vérifier si T a la méthode _internalRemoveReference() Plus de détails...
 
struct  Arccore::impl::HasInternalRemoveReference< T, decltype(&T::_internalRemoveReference, 0)>
 
struct  Arccore::impl::HasInternalAddReference< T, typename >
 Classe template pour vérifier si T a la méthode _internalAddReference() Plus de détails...
 
struct  Arccore::impl::HasInternalAddReference< T, decltype(&T::_internalAddReference, 0)>
 
class  Arccore::ReferenceCounterAccessor< T >
 Accesseur des méthodes de gestion de compteurs de référence. Plus de détails...
 
class  Arccore::ExternalReferenceCounterAccessor< T >
 

Espaces de nommage

namespace  Arccore
 Espace de nom de Arccore.
 

Macros

#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
 Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
 
#define ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS(class_name)
 Macro pour déclarer qu'une classe utilise un compteur de référence.
 

Variables

constexpr int Arccore::REF_TAG_SHARED_PTR = 0
 
constexpr int Arccore::REF_TAG_REFERENCE_COUNTER = 1
 

Description détaillée

Ce fichier contient les déclarations et macros pour gérer classes utilisant les compteurs de référence. Pour l'implémentation il faut utiliser le fichier 'ReferenceCounterImpl.h'

Définition dans le fichier RefDeclarations.h.

Documentation des macros

◆ ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS

#define ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS (   class_name)
Valeur :
namespace Arccore {\
template<> \
struct RefTraits<class_name> \
{\
static constexpr int TagId = Arccore::REF_TAG_REFERENCE_COUNTER;\
};\
template<>\
class ReferenceCounterAccessor<class_name>\
: public ExternalReferenceCounterAccessor<class_name>\
{}; \
}
Espace de nom de Arccore.
Definition ArcaneTypes.h:24

Macro pour déclarer qu'une classe utilise un compteur de référence.

La macro doit être utilisée en dehors de tout namespace. Par exemple:

namespace MyNamespace
{
class MyClass;
}
#define ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS(class_name)
Macro pour déclarer qu'une classe utilise un compteur de référence.

Il faudra ensuite utiliser la macro ARCCORE_DEFINE_REFERENCE_COUNTED_CLASS() dans le fichier source pour définir les méthodes et types nécessaires

Définition à la ligne 237 du fichier RefDeclarations.h.

◆ ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS

#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS ( )
Valeur :
private:\
template<typename T> friend class Arccore::ExternalReferenceCounterAccessor; \
template<typename T> friend class Arccore::ReferenceCounterAccessor;\
public: \
using ReferenceCounterTagType = Arccore::ReferenceCounterTag ; \
virtual ::Arccore::ReferenceCounterImpl* _internalReferenceCounter() =0; \
virtual void _internalAddReference() =0;\
[[nodiscard]] virtual bool _internalRemoveReference() =0
Accesseur des méthodes de gestion de compteurs de référence.
Structure servant à tagger les interfaces/classes qui utilisent un compteur de référence interne.

Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.

Cette macro s'utilise de la même manière que les déclarations de méthodes d'une interface. Elle permet de définir des méthodes virtuelles pure pour accèder aux informations des compteurs de référence.

La classe implémentant l'interface doit utiliser la macro ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS() pour définir les méthodes virtuelles utilisées.

class IMyInterface
{
public:
virtual ~IMyInterface() = default;
public:
virtual void myMethod1() = 0;
};
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.

Définition à la ligne 205 du fichier RefDeclarations.h.