Classe de base d'un handler d'évènement. Plus de détails...
#include <arcane/utils/Event.h>
Types publics | |
typedef EventObserver< Args... > | ObserverType |
Fonctions membres publiques | |
EventObservable (const EventObservable< Args... > &rhs)=delete | |
void | operator= (const EventObservable< Args... > &rhs)=delete |
void | attach (ObserverType *o) |
Attache l'observateur o à cet observable. | |
void | detach (ObserverType *o) |
Détache l'observateur o de cet observable. | |
template<typename Lambda > | |
void | attach (EventObserverPool &pool, const Lambda &lambda) |
Ajoute un observateur utilisant la lambda lambda et conserve une référence dans pool. | |
void | notify (Args... args) |
Appelle les observeurs associés à cet observable. | |
Fonctions membres publiques hérités de Arcane::EventObservableBase | |
bool | hasObservers () const |
void | detachAllObservers () |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::EventObservableBase | |
void | _attachObserver (EventObserverBase *obs, bool is_auto_destroy) |
void | _detachObserver (EventObserverBase *obs) |
ConstArrayView< EventObserverBase * > | _observers () const |
Classe de base d'un handler d'évènement.
Les instances de cette classe ne peuvent pas être copiées.
Cette classe permet d'enregistrer une liste d'observateurs qui peuvent être notifiés lors de l'appel à notify(). Args contient la liste des paramètres de notification.
Il est possible d'ajouter un observateur via la méthode attach(). Si l'observateur est une fonction lambda, il est nécessaire de spécifier une instance de EventObserverPool pour gérer la durée de vie de la lambda, qui sera alors la même que celle de l'EventObserverPool associé.
typedef EventObserver<Args...> Arcane::EventObservable< Args >::ObserverType |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |