14#include "arcane/utils/Observable.h"
15#include "arcane/utils/Observer.h"
30 if (!m_observers.empty())
31 cout <<
"** WARNING: Observable p=" <<
this
32 <<
" is destroyed but has n="
33 << m_observers.size() <<
" observer(s) attached\n";
44 if (m_observers.contains(
obs))
46 obs->attachToObservable(
this);
60 for( Integer i=0, n=m_observers.size(); i<n; ++i ){
61 if (m_observers[i]==
obs){
62 m_observers.remove(i);
74 if (m_observers.empty())
76 for( Integer i=0, n=m_observers.size(); i<n; ++i )
77 m_observers[i]->observerUpdate(
this);
86 return (!m_observers.empty());
95 return m_is_destroyed;
106 m_is_destroyed =
true;
119 for( Integer i=0, n=m_observers.size(); i<n; ++i ){
133 _detachAllObservers();
151AutoDetachObservable::
152~AutoDetachObservable()
154 _detachAllObservers();
Interface d'un observable.
Interface d'un observateur.
virtual void detach()=0
Se détache de l'observable.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Classe de base d'un observable.
void destroy() override
Détruit l'observable. Cet appel détruit l'instance (via delete this). Elle ne doit donc plus être uti...
void attachObserver(IObserver *obs) override
Attache l'observateur obs à cette observable.
void detachAllObservers() override
Détache tous les observeurs associés à cette instance.
bool isDestroyed() const override
Vrai si l'observable est détruit et ne doit plus être utilisé.
bool hasObservers() const override
Vrai si des observers sont attachées à cette observable.
void detachObserver(IObserver *obs) override
Détache l'observateur obs de cette observable.
void notifyAllObservers() override
Notifie tous les observateurs.
virtual ~Observable()
Libère les ressources.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
bool arcaneIsCheck()
Vrai si on est en mode vérification.