12#ifndef ARCANE_UTILS_OBSERVABLE_H
13#define ARCANE_UTILS_OBSERVABLE_H
17#include "arcane/utils/Array.h"
18#include "arcane/utils/IObservable.h"
19#include "arcane/utils/IObserver.h"
35class ARCANE_UTILS_EXPORT Observable
40 virtual ~Observable();
44 Observable() : m_is_destroyed(
false) {}
48 Observable(
const Observable& rhs) =
delete;
49 void operator=(
const Observable& rhs) =
delete;
63 void _detachAllObservers();
77class ARCANE_UTILS_EXPORT AutoDetachObservable
81 AutoDetachObservable() : Observable(){}
82 ~AutoDetachObservable();
Interface 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.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-