Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du fichier RefDeclarations.h
#include "arccore/base/BaseTypes.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

class  Arccore::ExternalReferenceCounterAccessor< T >
 
struct  Arcane::ReferenceCounterTag
 Structure servant à tagger les interfaces/classes qui utilisent un compteur de référence interne. Plus de détails...
 
struct  Arcane::RefTraits< InstanceType, T >
 Caractéristiques pour gérer les compteurs de référence. Plus de détails...
 
struct  Arcane::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  Arcane::impl::HasInternalRemoveReference< T, typename >
 Classe template pour vérifier si T a la méthode _internalRemoveReference() Plus de détails...
 
struct  Arcane::impl::HasInternalRemoveReference< T, decltype(&T::_internalRemoveReference, 0)>
 
struct  Arcane::impl::HasInternalAddReference< T, typename >
 Classe template pour vérifier si T a la méthode _internalAddReference() Plus de détails...
 
struct  Arcane::impl::HasInternalAddReference< T, decltype(&T::_internalAddReference, 0)>
 
class  Arcane::ReferenceCounterAccessor< T >
 Accesseur des méthodes de gestion de compteurs de référence. Plus de détails...
 
class  Arcane::ExternalReferenceCounterAccessor< T >
 
struct  Arccore::ReferenceCounterTag
 Structure servant à tagger les interfaces/classes qui utilisent un compteur de référence interne. Plus de détails...
 

Espaces de nommage

namespace  Arccore
 Espace de nom de Arccore.
 
namespace  Arcane
 -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
 

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 Arcane::REF_TAG_SHARED_PTR = 0
 
constexpr int Arcane::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 Arcane \
{ \
template <> \
struct RefTraits<class_name> \
{ \
static constexpr int TagId = ::Arcane::REF_TAG_REFERENCE_COUNTER; \
}; \
template<>\
class ReferenceCounterAccessor<class_name>\
: public ExternalReferenceCounterAccessor<class_name>\
{}; \
}
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-

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 241 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 Arcane::ReferenceCounterAccessor; \
\
public: \
\
using ReferenceCounterTagType = ::Arcane::ReferenceCounterTag; \
virtual ::Arcane::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 206 du fichier RefDeclarations.h.