12#ifndef ARCANE_UTILS_EVENT_H
13#define ARCANE_UTILS_EVENT_H
18#include "arcane/utils/Array.h"
31class EventObserverBase;
47 bool hasObservers()
const;
48 void detachAllObservers();
85template<
typename... Args>
97 void observerUpdate(Args... args)
103 std::function<void(Args...)> m_functor;
154template<
typename... Args>
178 void attach(ObserverType* o) { _attachObserver(o,
false); }
184 void detach(ObserverType* o) { _detachObserver(o); }
190 template<
typename Lambda>
193 auto x =
new ObserverType(lambda);
194 _attachObserver(x,
false);
203 for(
auto o : _observers() )
204 ((ObserverType*)o)->observerUpdate(args...);
Déclarations des types utilisés dans Arcane.
Classe de base d'un handler d'évènement.
void detach(ObserverType *o)
Détache l'observateur o de cet observable.
void attach(EventObserverPool &pool, const Lambda &lambda)
Ajoute un observateur utilisant la lambda lambda et conserve une référence dans pool.
void attach(ObserverType *o)
Attache l'observateur o à cet observable.
void notify(Args... args)
Appelle les observeurs associés à cet observable.
Conserve des références d'observateurs.
void add(EventObserverBase *x)
Ajoute l'observateur x.
Observateur d'évènements.
Vue constante d'un tableau de type T.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-