Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::VariableMng

Gestionnaire de variables. Plus de détails...

#include <arcane/impl/internal/VariableMng.h>

+ Graphe d'héritage de Arcane::VariableMng:
+ Graphe de collaboration de Arcane::VariableMng:

Classes

class  InternalApi
 
class  VariableNameInfo
 
class  VNIComparer
 

Types publics

using VNIMap = HashTableMapT<VariableNameInfo, IVariable*, VNIComparer>
 

Fonctions membres publiques

 VariableMng (ISubDomain *sd)
 Construit un gestionnaire de variable pour le cas pn.
 
 ~VariableMng () override
 Détruit le gestionnaire.
 
void build () override
 Construit les membres de l'instance.
 
void initialize () override
 Initialise l'instance. L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.
 
void removeAllVariables () override
 Supprime et détruit les variables gérées par ce gestionnaire.
 
void detachMeshVariables (IMesh *mesh) override
 Détache les variables associées au maillage mesh.
 
ISubDomainsubDomain () override
 Gestionnaire du sous-domaine.
 
IParallelMngparallelMng () const override
 Gestionnaire de parallélisme associé
 
ITraceMngtraceMng () override
 Gestionnaire de messages.
 
IVariablecheckVariable (const VariableInfo &infos) override
 Vérifie une variable.
 
void addVariableRef (VariableRef *ref) override
 Ajoute une référence à une variable.
 
void addVariable (IVariable *var) override
 Ajoute une variable.
 
void removeVariableRef (VariableRef *) override
 Supprime une référence à une variable.
 
void removeVariable (IVariable *var) override
 Supprime une variable.
 
void dumpList (std::ostream &, IModule *) override
 Affiche la liste des variables du gestionnaire lié à un module.
 
void dumpList (std::ostream &) override
 Affiche la liste de toutes les variables du gestionnaire.
 
void initializeVariables (bool) override
 Initialise les variables.
 
String generateTemporaryVariableName () override
 Génère un nom pour une variable temporaire.
 
void variables (VariableRefCollection, IModule *) override
 Donne l'ensemble des variables du module i.
 
VariableCollection variables () override
 Liste des variables.
 
VariableCollection usedVariables () override
 Liste des variables utilisées.
 
void notifyUsedVariableChanged () override
 Notifie au gestionnaire que l'état d'une variable a changé
 
Real exportSize (const VariableCollection &vars) override
 
IObservablewriteObservable () override
 Observable pour les variables en écriture.
 
IObservablereadObservable () override
 Observable pour les variables en lecture.
 
void writeVariables (IDataWriter *, const VariableCollection &vars) override
 Exporte les variables.
 
void writeVariables (IDataWriter *, IVariableFilter *) override
 Ecrit les variables.
 
void writeCheckpoint (ICheckpointWriter *) override
 Ecrit les variables pour une protection.
 
void writePostProcessing (IPostProcessorWriter *writer) override
 Ecrit les variables pour un post-traitement.
 
void readVariables (IDataReader *, IVariableFilter *) override
 Relit toutes les variables.
 
void readCheckpoint (ICheckpointReader *) override
 Relit toutes les variables d'une protection.
 
void readCheckpoint (const CheckpointReadInfo &infos) override
 Relit toutes les variables d'une protection.
 
IVariablefindVariable (const String &name) override
 Retourne la variable de nom name ou 0 si aucune de se nom existe.
 
IVariablefindMeshVariable (IMesh *mesh, const String &name) override
 Retourne la variable du maillage de nom name ou 0 si aucune de se nom existe.
 
IVariablefindVariableFullyQualified (const String &name) override
 Retourne la variable de nom complet name ou 0 si aucune de se nom existe.
 
void dumpStats (std::ostream &ostr, bool is_verbose) override
 Ecrit les statistiques sur les variables sur le flot ostr.
 
void dumpStatsJSON (JSONWriter &writer) override
 Ecrit les statistiques avec l'écrivain writer.
 
IVariableUtilitiesutilities () const override
 Interface des fonctions utilitaires associées.
 
EventObservable< const VariableStatusChangedEventArgs & > & onVariableAdded () override
 Evènement envoyé lorsqu'une variable est créée.
 
EventObservable< const VariableStatusChangedEventArgs & > & onVariableRemoved () override
 Evènement envoyé lorsqu'une variable est détruite.
 
IVariableSynchronizerMngsynchronizerMng () const override
 Interface du gestionnaire de synchronisation des variables.
 
ISubDomain_internalSubDomain () const override
 
IVariableMngInternal_internalApi () override
 API interne à Arcane.
 
- Fonctions membres publiques hérités de Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- Fonctions membres publiques hérités de Arcane::IVariableMng
virtual ~IVariableMng ()=default
 Libère les ressources.
 

Fonctions membres publiques statiques

static bool isVariableToSave (IVariable &var)
 

Types privés

using FullNameVariableMap = std::map<String, IVariable*>
 Type de la liste des variables par nom complet.
 
using FullNameVariablePair = FullNameVariableMap::value_type
 Paire de la liste des variables par nom complet.
 
using VariableFactoryMap = std::map<String, IVariableFactory*>
 Type de la liste des fabriques de variables par nom complet.
 
using VariableFactoryPair = VariableFactoryMap::value_type
 Paire de la liste des variables par nom complet.
 

Fonctions membres privées

void _dumpVariable (const VariableRef &v, std::ostream &o)
 Ecrit la valeur de la variable v sur le flot o.
 
VariableRef_createVariableFromType (const String &full_type, const VariableBuildInfo &vbi)
 

Fonctions membres privées statiques

static const char * _msgClassName ()
 

Attributs privés

ISubDomainm_sub_domain = nullptr
 Gestionnaire de sous-domaine.
 
IParallelMngm_parallel_mng = nullptr
 
ITimeStatsm_time_stats = nullptr
 
InternalApi m_internal_api { this }
 
VariableRefList m_variables_ref
 Liste des variables.
 
VariableList m_variables
 
VariableList m_used_variables
 
bool m_variables_changed = true
 
bool m_used_variables_changed = true
 
FullNameVariableMap m_full_name_variable_map
 Liste des variables par nom complet.
 
VNIMap m_vni_map
 
IObservablem_write_observable = nullptr
 
IObservablem_read_observable = nullptr
 
EventObservable< const VariableStatusChangedEventArgs & > m_on_variable_added
 
EventObservable< const VariableStatusChangedEventArgs & > m_on_variable_removed
 
List< IVariableFactory * > m_variable_factories
 
List< VariableRef * > m_auto_create_variables
 Liste des variables créées automatiquement lors d'une reprise.
 
VariableFactoryMap m_variable_factory_map
 
Integer m_generate_name_id = 0
 Numéro utilisé pour générer un nom de variable.
 
Int64 m_nb_created_variable_reference = 0
 
Int64 m_nb_created_variable = 0
 
std::map< IVariable *, IModule * > m_variable_creation_modules
 
IVariableUtilitiesm_utilities = nullptr
 
VariableIOWriterMngm_variable_io_writer_mng = nullptr
 
VariableIOReaderMngm_variable_io_reader_mng = nullptr
 
VariableSynchronizerMngm_variable_synchronizer_mng = nullptr
 
Ref< IAcceleratorMngm_accelerator_mng
 

Amis

class VariableIOWriterMng
 
class VariableIOReaderMng
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Gestionnaire de variables.

Définition à la ligne 53 du fichier VariableMng.h.

Documentation des définitions de type membres

◆ FullNameVariableMap

Type de la liste des variables par nom complet.

Définition à la ligne 221 du fichier VariableMng.h.

◆ FullNameVariablePair

using Arcane::VariableMng::FullNameVariablePair = FullNameVariableMap::value_type
private

Paire de la liste des variables par nom complet.

Définition à la ligne 223 du fichier VariableMng.h.

◆ VariableFactoryMap

Type de la liste des fabriques de variables par nom complet.

Définition à la ligne 226 du fichier VariableMng.h.

◆ VariableFactoryPair

using Arcane::VariableMng::VariableFactoryPair = VariableFactoryMap::value_type
private

Paire de la liste des variables par nom complet.

Définition à la ligne 228 du fichier VariableMng.h.

◆ VNIMap

Documentation des constructeurs et destructeur

◆ VariableMng()

Arcane::VariableMng::VariableMng ( ISubDomain * sd)
explicit

Construit un gestionnaire de variable pour le cas pn.

Avertissement
Pour un cas donné, il faut créer un et un seul gestionnaire de variable.

Définition à la ligne 76 du fichier VariableMng.cc.

Références m_sub_domain, parallelMng(), Arcane::TraceAccessor::TraceAccessor(), et traceMng().

+ Voici le graphe d'appel pour cette fonction :

◆ ~VariableMng()

Arcane::VariableMng::~VariableMng ( )
override

Détruit le gestionnaire.

Le gestionnaire effectue la libération mémoire des variables qu'il gère.

Définition à la ligne 98 du fichier VariableMng.cc.

Documentation des fonctions membres

◆ _createVariableFromType()

VariableRef * Arcane::VariableMng::_createVariableFromType ( const String & full_type,
const VariableBuildInfo & vbi )
private

Définition à la ligne 643 du fichier VariableMng.cc.

◆ _dumpVariable()

void Arcane::VariableMng::_dumpVariable ( const VariableRef & v,
std::ostream & o )
private

Ecrit la valeur de la variable v sur le flot o.

Définition à la ligne 506 du fichier VariableMng.cc.

Références Arcane::VariableRef::dataType(), Arcane::VariableRef::name(), et Arcane::VariableRef::print().

Référencé par dumpList(), et dumpList().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ _internalApi()

IVariableMngInternal * Arcane::VariableMng::_internalApi ( )
inlineoverridevirtual

API interne à Arcane.

Implémente Arcane::IVariableMng.

Définition à la ligne 212 du fichier VariableMng.h.

◆ _internalSubDomain()

ISubDomain * Arcane::VariableMng::_internalSubDomain ( ) const
inlineoverridevirtual

Fonction interne temporaire pour récupérer le sous-domaine.

Implémente Arcane::IVariableMng.

Définition à la ligne 211 du fichier VariableMng.h.

Références m_sub_domain.

◆ _msgClassName()

static const char * Arcane::VariableMng::_msgClassName ( )
inlinestaticprivate

Définition à la ligne 271 du fichier VariableMng.h.

◆ addVariable()

void Arcane::VariableMng::addVariable ( IVariable * var)
overridevirtual

Ajoute une variable.

Ajoute la variable var.

La validité de la variable n'est pas effectuée (void checkVariable()).

Précondition
var != 0
var ne doit pas déjà être référencée.
Renvoie
l'implémentation associée à var.

Implémente Arcane::IVariableMng.

Définition à la ligne 256 du fichier VariableMng.cc.

Références Arcane::VariableStatusChangedEventArgs::Added, ARCANE_FATAL, Arcane::ISubDomain::checkId(), Arcane::ITimeLoopMng::currentEntryPoint(), Arcane::IVariable::dataType(), Arcane::IVariable::fullName(), Arcane::IK_Unknown, Arcane::TraceAccessor::info(), Arcane::IVariable::itemFamilyName(), Arcane::IVariable::itemKind(), m_full_name_variable_map, Arcane::IVariable::meshName(), Arcane::IVariable::name(), Arcane::String::null(), subDomain(), et Arcane::ISubDomain::timeLoopMng().

+ Voici le graphe d'appel pour cette fonction :

◆ addVariableRef()

void Arcane::VariableMng::addVariableRef ( VariableRef * var)
overridevirtual

Ajoute une référence à une variable.

Ajoute la référence var au gestionnaire.

Précondition
var != 0
var ne doit pas déjà être référencée.
Renvoie
l'implémentation associée à var.

Implémente Arcane::IVariableMng.

Définition à la ligne 237 du fichier VariableMng.cc.

◆ build()

void Arcane::VariableMng::build ( )
overridevirtual

Construit les membres de l'instance.

L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée. Cette méthode doit être appelée avant initialize().

Avertissement
Cette méthode ne doit être appelée qu'une seule fois.

Implémente Arcane::IVariableMng.

Définition à la ligne 119 du fichier VariableMng.cc.

Références Arcane::platform::getEnvironmentVariable(), et Arcane::String::null().

+ Voici le graphe d'appel pour cette fonction :

◆ checkVariable()

IVariable * Arcane::VariableMng::checkVariable ( const VariableInfo & infos)
overridevirtual

Vérifie une variable.

Vérifie que la variable de nom name caractérisée par infos est valide C'est le cas si et seulement si:

  • aucune variable de nom infos.name() n'existe déjà.
  • une variable de nom infos.name() existe et son type et son genre correspondent infos.

Si la variable n'est pas valide, une exception est lancée.

Cette opération est utilisée lorsqu'on souhaite créer une nouvelle référence à une variable et permet de s'assurer qu'elle sera valide.

Exceptions
ExBadVariableKindTypesi la variable de nom infos.name() existe et que son type et le genre ne correspondent pas à ceux de infos.
Renvoie
la variable de infos.name() si elle existe, 0 sinon

Implémente Arcane::IVariableMng.

Définition à la ligne 329 du fichier VariableMng.cc.

Références ARCANE_FATAL, Arcane::arcaneIsCheck(), Arcane::IVariable::dataType(), Arcane::VariableInfo::dataType(), Arcane::IVariable::dimension(), Arcane::VariableInfo::dimension(), findVariableFullyQualified(), Arcane::VariableInfo::fullName(), Arcane::IK_Unknown, Arcane::VariableInfo::isPartial(), Arcane::VariableInfo::itemFamilyName(), Arcane::IVariable::itemGroupName(), Arcane::VariableInfo::itemGroupName(), Arcane::IVariable::itemKind(), Arcane::VariableInfo::itemKind(), Arcane::VariableInfo::localName(), Arcane::VariableInfo::meshName(), et Arcane::String::null().

+ Voici le graphe d'appel pour cette fonction :

◆ detachMeshVariables()

void Arcane::VariableMng::detachMeshVariables ( IMesh * mesh)
overridevirtual

Détache les variables associées au maillage mesh.

Implémente Arcane::IVariableMng.

Définition à la ligne 220 du fichier VariableMng.cc.

Références Arcane::IVariable::itemGroup(), m_full_name_variable_map, Arcane::ItemGroup::mesh(), Arcane::ItemGroup::null(), et Arcane::IVariable::setUsed().

+ Voici le graphe d'appel pour cette fonction :

◆ dumpList() [1/2]

void Arcane::VariableMng::dumpList ( std::ostream & )
overridevirtual

Affiche la liste de toutes les variables du gestionnaire.

Implémente Arcane::IVariableMng.

Définition à la ligne 485 du fichier VariableMng.cc.

Références _dumpVariable(), et m_full_name_variable_map.

+ Voici le graphe d'appel pour cette fonction :

◆ dumpList() [2/2]

void Arcane::VariableMng::dumpList ( std::ostream & ,
IModule *  )
overridevirtual

Affiche la liste des variables du gestionnaire lié à un module.

Implémente Arcane::IVariableMng.

Définition à la ligne 469 du fichier VariableMng.cc.

Références _dumpVariable(), et m_full_name_variable_map.

+ Voici le graphe d'appel pour cette fonction :

◆ dumpStats()

◆ dumpStatsJSON()

void Arcane::VariableMng::dumpStatsJSON ( JSONWriter & writer)
overridevirtual

Ecrit les statistiques avec l'écrivain writer.

Implémente Arcane::IVariableMng.

Définition à la ligne 960 du fichier VariableMng.cc.

Références Arcane::IVariable::allocatedMemory(), Arcane::IVariable::dataType(), Arcane::dataTypeName(), Arcane::IVariable::dimension(), Arcane::IVariable::isUsed(), Arcane::IVariable::itemFamilyName(), Arcane::IVariable::itemGroupName(), m_full_name_variable_map, Arcane::IVariable::meshName(), Arcane::IVariable::name(), Arcane::IVariable::nbElement(), et Arcane::IVariable::property().

+ Voici le graphe d'appel pour cette fonction :

◆ exportSize()

Real Arcane::VariableMng::exportSize ( const VariableCollection & vars)
overridevirtual
A faire
prendre en compte le NoDump

Implémente Arcane::IVariableMng.

Définition à la ligne 698 du fichier VariableMng.cc.

Références Arcane::IVariable::allocatedMemory(), Arcane::IVariable::isUsed(), et m_full_name_variable_map.

+ Voici le graphe d'appel pour cette fonction :

◆ findMeshVariable()

IVariable * Arcane::VariableMng::findMeshVariable ( IMesh * mesh,
const String & name )
overridevirtual

Retourne la variable du maillage de nom name ou 0 si aucune de se nom existe.

Implémente Arcane::IVariableMng.

Définition à la ligne 411 du fichier VariableMng.cc.

Références findVariableFullyQualified().

+ Voici le graphe d'appel pour cette fonction :

◆ findVariable()

IVariable * Arcane::VariableMng::findVariable ( const String & name)
overridevirtual

Retourne la variable de nom name ou 0 si aucune de se nom existe.

Implémente Arcane::IVariableMng.

Définition à la ligne 387 du fichier VariableMng.cc.

Références findVariableFullyQualified().

Référencé par generateTemporaryVariableName().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ findVariableFullyQualified()

IVariable * Arcane::VariableMng::findVariableFullyQualified ( const String & name)
overridevirtual

Retourne la variable de nom complet name ou 0 si aucune de se nom existe.

Implémente Arcane::IVariableMng.

Définition à la ligne 437 du fichier VariableMng.cc.

Références m_full_name_variable_map.

Référencé par checkVariable(), findMeshVariable(), et findVariable().

+ Voici le graphe des appelants de cette fonction :

◆ generateTemporaryVariableName()

String Arcane::VariableMng::generateTemporaryVariableName ( )
overridevirtual

Génère un nom pour une variable temporaire.

Pour assurer la cohérence de ce nom, il faut que tous les sous-domaines appellent cette fonction.

Implémente Arcane::IVariableMng.

Définition à la ligne 449 du fichier VariableMng.cc.

Références findVariable(), Arcane::TraceAccessor::info(), et m_generate_name_id.

+ Voici le graphe d'appel pour cette fonction :

◆ initialize()

void Arcane::VariableMng::initialize ( )
overridevirtual

Initialise l'instance. L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.

Avertissement
Cette méthode ne doit être appelée qu'une seule fois.

Implémente Arcane::IVariableMng.

Définition à la ligne 130 du fichier VariableMng.cc.

Références ARCANE_FATAL, Arcane::VariableFactoryRegisterer::createFactory(), Arcane::VariableFactoryRegisterer::dataType(), Arcane::VariableFactoryRegisterer::dimension(), Arcane::IVariableFactory::fullTypeName(), Arcane::TraceAccessor::info(), Arcane::VariableFactoryRegisterer::itemKind(), Arcane::VariableFactoryRegisterer::multiTag(), et Arcane::VariableFactoryRegisterer::nextVariableFactory().

+ Voici le graphe d'appel pour cette fonction :

◆ initializeVariables()

void Arcane::VariableMng::initializeVariables ( bool is_continue)
overridevirtual

Initialise les variables.

Parcours la liste des variables et les initialisent. Seules les variables d'un module utilisé sont initialisées.

Paramètres
is_continuetrue vrai si on est en reprise.

Implémente Arcane::IVariableMng.

Définition à la ligne 519 du fichier VariableMng.cc.

Références Arcane::TraceAccessor::info(), Arcane::IVariable::isUsed(), m_full_name_variable_map, Arcane::VariableRef::module(), Arcane::IModule::used(), et Arcane::VariableRef::variable().

+ Voici le graphe d'appel pour cette fonction :

◆ isVariableToSave()

bool Arcane::VariableMng::isVariableToSave ( IVariable & var)
static

Définition à la ligne 590 du fichier VariableMng.cc.

◆ notifyUsedVariableChanged()

void Arcane::VariableMng::notifyUsedVariableChanged ( )
inlineoverridevirtual

Notifie au gestionnaire que l'état d'une variable a changé

Implémente Arcane::IVariableMng.

Définition à la ligne 180 du fichier VariableMng.h.

◆ onVariableAdded()

EventObservable< const VariableStatusChangedEventArgs & > & Arcane::VariableMng::onVariableAdded ( )
inlineoverridevirtual

Evènement envoyé lorsqu'une variable est créée.

Implémente Arcane::IVariableMng.

Définition à la ligne 200 du fichier VariableMng.h.

◆ onVariableRemoved()

EventObservable< const VariableStatusChangedEventArgs & > & Arcane::VariableMng::onVariableRemoved ( )
inlineoverridevirtual

Evènement envoyé lorsqu'une variable est détruite.

Implémente Arcane::IVariableMng.

Définition à la ligne 206 du fichier VariableMng.h.

◆ parallelMng()

IParallelMng * Arcane::VariableMng::parallelMng ( ) const
inlineoverridevirtual

Gestionnaire de parallélisme associé

Implémente Arcane::IVariableMng.

Définition à la ligne 166 du fichier VariableMng.h.

Référencé par VariableMng().

+ Voici le graphe des appelants de cette fonction :

◆ readCheckpoint() [1/2]

void Arcane::VariableMng::readCheckpoint ( const CheckpointReadInfo & infos)
overridevirtual

Relit toutes les variables d'une protection.

Lit une protection avec les informations contenues dans infos.

Cette méthode est collective.

Cette méthode est interne à Arcane. En générel, la lecture d'une protection se fait via une instance de ICheckpointMng, accessible via ISubDomain::checkpointMng().

Implémente Arcane::IVariableMng.

Définition à la ligne 678 du fichier VariableMng.cc.

◆ readCheckpoint() [2/2]

void Arcane::VariableMng::readCheckpoint ( ICheckpointReader * reader)
overridevirtual

Relit toutes les variables d'une protection.

Lit une protection avec le service reader sur l'ensemble des variables.

Cette méthode est collective.

Cette méthode est interne à Arcane. En générel, la lecture d'une protection se fait via une instance de ICheckpointMng, accessible via ISubDomain::checkpointMng().

Implémente Arcane::IVariableMng.

Définition à la ligne 669 du fichier VariableMng.cc.

◆ readObservable()

IObservable * Arcane::VariableMng::readObservable ( )
inlineoverridevirtual

Observable pour les variables en lecture.

Les observateurs enregistrés dans cet observable sont appelés après avoir lu les variables (opération readVariables() ou readCheckpoint()).

Implémente Arcane::IVariableMng.

Définition à la ligne 183 du fichier VariableMng.h.

◆ readVariables()

void Arcane::VariableMng::readVariables ( IDataReader * reader,
IVariableFilter * filter )
overridevirtual

Relit toutes les variables.

Parcours l'ensemble des variables du gestionnaire et leur applique le lecteur reader. Si filter est non nul, il est appliqué à chaque variable et une variable n'est lue que si le filtre est vrai pour cette variable. Les variables qui ne sont pas lues ne sont pas modifiées par cette opération.

Obsolète
Utiliser readVariable(IDataReader*)

Cette méthode est collective.

Implémente Arcane::IVariableMng.

Définition à la ligne 687 du fichier VariableMng.cc.

◆ removeAllVariables()

void Arcane::VariableMng::removeAllVariables ( )
overridevirtual

Supprime et détruit les variables gérées par ce gestionnaire.

Implémente Arcane::IVariableMng.

Définition à la ligne 161 du fichier VariableMng.cc.

Références Arcane::Array< DataType >::add(), Arcane::arcaneIsCheck(), Arcane::VariableRef::assignmentStackTrace(), Arcane::AbstractArray< T >::empty(), Arcane::IVariable::fullName(), Arcane::TraceAccessor::info(), m_auto_create_variables, m_full_name_variable_map, Arcane::VariableRef::name(), Arcane::IVariable::nbReference(), et Arcane::TraceAccessor::pwarning().

+ Voici le graphe d'appel pour cette fonction :

◆ removeVariable()

void Arcane::VariableMng::removeVariable ( IVariable * var)
overridevirtual

Supprime une variable.

Supprime la variable var.

Après appel à cette méthode, la variable ne doit plus être utilisée.

Précondition
var != 0
var doit avoir une seule référence.

Implémente Arcane::IVariableMng.

Définition à la ligne 292 du fichier VariableMng.cc.

Références Arcane::TraceAccessor::debug(), Arcane::ItemGroupImpl::detachObserver(), Arcane::IVariable::fullName(), Arcane::ItemGroup::internal(), Arcane::IVariable::itemFamilyName(), Arcane::IVariable::itemGroup(), m_full_name_variable_map, Arcane::IVariable::meshName(), Arcane::IVariable::name(), Arcane::IVariable::nbReference(), Arcane::ItemGroup::null(), Arcane::IVariable::PNoDump, Arcane::IVariable::PNoRestore, Arcane::IVariable::property(), Arcane::IVariable::PTemporary, et Arcane::VariableStatusChangedEventArgs::Removed.

+ Voici le graphe d'appel pour cette fonction :

◆ removeVariableRef()

void Arcane::VariableMng::removeVariableRef ( VariableRef * var)
overridevirtual

Supprime une référence à une variable.

Supprime la référence var du gestionnaire.

Si var n'est pas référencée par le gestionnaire, rien n'est effectué.

Précondition
var != 0

Implémente Arcane::IVariableMng.

Définition à la ligne 247 du fichier VariableMng.cc.

◆ subDomain()

ISubDomain * Arcane::VariableMng::subDomain ( )
inlineoverridevirtual

Gestionnaire du sous-domaine.

Implémente Arcane::IVariableMng.

Définition à la ligne 165 du fichier VariableMng.h.

Références m_sub_domain.

Référencé par addVariable(), et dumpStats().

+ Voici le graphe des appelants de cette fonction :

◆ synchronizerMng()

IVariableSynchronizerMng * Arcane::VariableMng::synchronizerMng ( ) const
overridevirtual

Interface du gestionnaire de synchronisation des variables.

Implémente Arcane::IVariableMng.

Définition à la ligne 726 du fichier VariableMng.cc.

◆ traceMng()

ITraceMng * Arcane::VariableMng::traceMng ( )
inlineoverridevirtual

Gestionnaire de messages.

Implémente Arcane::IVariableMng.

Définition à la ligne 167 du fichier VariableMng.h.

Références Arcane::TraceAccessor::traceMng().

Référencé par VariableMng().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ usedVariables()

VariableCollection Arcane::VariableMng::usedVariables ( )
overridevirtual

Liste des variables utilisées.

Implémente Arcane::IVariableMng.

Définition à la ligne 572 du fichier VariableMng.cc.

Références Arcane::IVariable::isUsed(), et m_full_name_variable_map.

+ Voici le graphe d'appel pour cette fonction :

◆ utilities()

IVariableUtilities * Arcane::VariableMng::utilities ( ) const
inlineoverridevirtual

Interface des fonctions utilitaires associées.

Implémente Arcane::IVariableMng.

Définition à la ligne 197 du fichier VariableMng.h.

◆ variables() [1/2]

VariableCollection Arcane::VariableMng::variables ( )
overridevirtual

Liste des variables.

Implémente Arcane::IVariableMng.

Définition à la ligne 556 du fichier VariableMng.cc.

Références m_full_name_variable_map.

◆ variables() [2/2]

void Arcane::VariableMng::variables ( VariableRefCollection v,
IModule * i )
overridevirtual

Donne l'ensemble des variables du module i.

Implémente Arcane::IVariableMng.

Définition à la ligne 542 du fichier VariableMng.cc.

Références m_full_name_variable_map.

◆ writeCheckpoint()

void Arcane::VariableMng::writeCheckpoint ( ICheckpointWriter * writer)
overridevirtual

Ecrit les variables pour une protection.

Utilise le service de protection writer pour écrire les variables.

Cette méthode est collective.

Cette méthode est interne à Arcane. En générel, l'écriture d'une protection se fait via une instance de ICheckpointMng, accessible via ISubDomain::checkpointMng().

Implémente Arcane::IVariableMng.

Définition à la ligne 607 du fichier VariableMng.cc.

◆ writeObservable()

IObservable * Arcane::VariableMng::writeObservable ( )
inlineoverridevirtual

Observable pour les variables en écriture.

Les observateurs enregistrés dans cet observable sont appelés avant d'écrire les variables (opération writeCheckpoint(), writeVariables() ou writePostProcessing()).

Implémente Arcane::IVariableMng.

Définition à la ligne 182 du fichier VariableMng.h.

◆ writePostProcessing()

void Arcane::VariableMng::writePostProcessing ( IPostProcessorWriter * writer)
overridevirtual

Ecrit les variables pour un post-traitement.

Utilise le service de post-traitement writer pour écrire les variables. L'appelant doit avoir positionner les champs de writer avant cet appel, notamment la liste des variables à post-traiter. Cette méthode appelle IPostProcessorWriter::notifyBeginWrite() avant l'écriture et IPostProcessorWriter::notifyEndWriter() en fin.

Cette méthode est collective.

Implémente Arcane::IVariableMng.

Définition à la ligne 616 du fichier VariableMng.cc.

◆ writeVariables() [1/2]

void Arcane::VariableMng::writeVariables ( IDataWriter * writer,
const VariableCollection & vars )
overridevirtual

Exporte les variables.

Exporte les variables de la liste vars. Si vars est vide, exporte toutes les variables de la base qui sont utilisées.

Implémente Arcane::IVariableMng.

Définition à la ligne 625 du fichier VariableMng.cc.

◆ writeVariables() [2/2]

void Arcane::VariableMng::writeVariables ( IDataWriter * writer,
IVariableFilter * filter )
overridevirtual

Ecrit les variables.

Parcours l'ensemble des variables du gestionnaire et leur applique l'écrivain writer. Si filter est non nul, il est appliqué à chaque variable et une variable n'est écrite que si le filtre est vrai pour cette variable.

Cette méthode est collective

Implémente Arcane::IVariableMng.

Définition à la ligne 634 du fichier VariableMng.cc.

Documentation des fonctions amies et associées

◆ VariableIOReaderMng

friend class VariableIOReaderMng
friend

Définition à la ligne 58 du fichier VariableMng.h.

◆ VariableIOWriterMng

friend class VariableIOWriterMng
friend

Définition à la ligne 57 du fichier VariableMng.h.

Documentation des données membres

◆ m_accelerator_mng

Ref<IAcceleratorMng> Arcane::VariableMng::m_accelerator_mng
private

Définition à la ligne 264 du fichier VariableMng.h.

◆ m_auto_create_variables

List<VariableRef*> Arcane::VariableMng::m_auto_create_variables
private

Liste des variables créées automatiquement lors d'une reprise.

Définition à la ligne 249 du fichier VariableMng.h.

Référencé par removeAllVariables().

◆ m_full_name_variable_map

FullNameVariableMap Arcane::VariableMng::m_full_name_variable_map
private

◆ m_generate_name_id

Integer Arcane::VariableMng::m_generate_name_id = 0
private

Numéro utilisé pour générer un nom de variable.

Définition à la ligne 252 du fichier VariableMng.h.

Référencé par generateTemporaryVariableName().

◆ m_internal_api

InternalApi Arcane::VariableMng::m_internal_api { this }
private

Définition à la ligne 234 du fichier VariableMng.h.

◆ m_nb_created_variable

Int64 Arcane::VariableMng::m_nb_created_variable = 0
private

Définition à la ligne 255 du fichier VariableMng.h.

◆ m_nb_created_variable_reference

Int64 Arcane::VariableMng::m_nb_created_variable_reference = 0
private

Définition à la ligne 254 du fichier VariableMng.h.

◆ m_on_variable_added

EventObservable<const VariableStatusChangedEventArgs&> Arcane::VariableMng::m_on_variable_added
private

Définition à la ligne 245 du fichier VariableMng.h.

◆ m_on_variable_removed

EventObservable<const VariableStatusChangedEventArgs&> Arcane::VariableMng::m_on_variable_removed
private

Définition à la ligne 246 du fichier VariableMng.h.

◆ m_parallel_mng

IParallelMng* Arcane::VariableMng::m_parallel_mng = nullptr
private

Définition à la ligne 232 du fichier VariableMng.h.

◆ m_read_observable

IObservable* Arcane::VariableMng::m_read_observable = nullptr
private

Définition à la ligne 244 du fichier VariableMng.h.

◆ m_sub_domain

ISubDomain* Arcane::VariableMng::m_sub_domain = nullptr
private

Gestionnaire de sous-domaine.

Définition à la ligne 231 du fichier VariableMng.h.

Référencé par _internalSubDomain(), subDomain(), et VariableMng().

◆ m_time_stats

ITimeStats* Arcane::VariableMng::m_time_stats = nullptr
private

Définition à la ligne 233 du fichier VariableMng.h.

◆ m_used_variables

VariableList Arcane::VariableMng::m_used_variables
private

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

◆ m_used_variables_changed

bool Arcane::VariableMng::m_used_variables_changed = true
private

Définition à la ligne 239 du fichier VariableMng.h.

◆ m_utilities

IVariableUtilities* Arcane::VariableMng::m_utilities = nullptr
private

Définition à la ligne 259 du fichier VariableMng.h.

◆ m_variable_creation_modules

std::map<IVariable*, IModule*> Arcane::VariableMng::m_variable_creation_modules
private

Définition à la ligne 257 du fichier VariableMng.h.

◆ m_variable_factories

List<IVariableFactory*> Arcane::VariableMng::m_variable_factories
private

Définition à la ligne 247 du fichier VariableMng.h.

◆ m_variable_factory_map

VariableFactoryMap Arcane::VariableMng::m_variable_factory_map
private

Définition à la ligne 250 du fichier VariableMng.h.

◆ m_variable_io_reader_mng

VariableIOReaderMng* Arcane::VariableMng::m_variable_io_reader_mng = nullptr
private

Définition à la ligne 261 du fichier VariableMng.h.

◆ m_variable_io_writer_mng

VariableIOWriterMng* Arcane::VariableMng::m_variable_io_writer_mng = nullptr
private

Définition à la ligne 260 du fichier VariableMng.h.

◆ m_variable_synchronizer_mng

VariableSynchronizerMng* Arcane::VariableMng::m_variable_synchronizer_mng = nullptr
private

Définition à la ligne 262 du fichier VariableMng.h.

◆ m_variables

VariableList Arcane::VariableMng::m_variables
private

Définition à la ligne 236 du fichier VariableMng.h.

◆ m_variables_changed

bool Arcane::VariableMng::m_variables_changed = true
private

Définition à la ligne 238 du fichier VariableMng.h.

◆ m_variables_ref

VariableRefList Arcane::VariableMng::m_variables_ref
private

Liste des variables.

Définition à la ligne 235 du fichier VariableMng.h.

Référencé par dumpStats().

◆ m_vni_map

VNIMap Arcane::VariableMng::m_vni_map
private

Définition à la ligne 242 du fichier VariableMng.h.

◆ m_write_observable

IObservable* Arcane::VariableMng::m_write_observable = nullptr
private

Définition à la ligne 243 du fichier VariableMng.h.


La documentation de cette classe a été générée à partir des fichiers suivants :