Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::EventObservable< Args >

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

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
 EventObservableBase (const EventObservableBase &)=delete
 
 EventObservableBase (EventObservableBase &&)=delete
 
EventObservableBaseoperator= (const EventObservableBase &)=delete
 
EventObservableBaseoperator= (EventObservableBase &&)=delete
 
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
 

Description détaillée

template<typename... Args>
class Arcane::EventObservable< Args >

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é.

//! Evènement appelant une méthode void f(int,double):
EventObservable<int,double> observable;
observable.attach(pool,[](int a,double b) { ... });
std::function<int,double> f2(...);
auto o = new EventObserver<int,double>(f2);
observable.attach(o);
observable.notify(1,3.2);
void attach(ObserverType *o)
Attache l'observateur o à cet observable.
Definition Event.h:209
void notify(Args... args)
Appelle les observeurs associés à cet observable.
Definition Event.h:230
Conserve des références d'observateurs.
Definition Event.h:143
Observateur d'évènements.
Definition Event.h:112

Définition à la ligne 191 du fichier Event.h.

Documentation des définitions de type membres

◆ ObserverType

template<typename... Args>
typedef EventObserver<Args...> Arcane::EventObservable< Args >::ObserverType

Définition à la ligne 196 du fichier Event.h.

Documentation des fonctions membres

◆ attach() [1/2]

template<typename... Args>
template<typename Lambda>
void Arcane::EventObservable< Args >::attach ( EventObserverPool & pool,
const Lambda & lambda )
inline

Ajoute un observateur utilisant la lambda lambda et conserve une référence dans pool.

Définition à la ligne 222 du fichier Event.h.

◆ attach() [2/2]

template<typename... Args>
void Arcane::EventObservable< Args >::attach ( ObserverType * o)
inline

Attache l'observateur o à cet observable.

Une exception est levée si l'observateur est déjà attaché à un observable.

Définition à la ligne 209 du fichier Event.h.

◆ detach()

template<typename... Args>
void Arcane::EventObservable< Args >::detach ( ObserverType * o)
inline

Détache l'observateur o de cet observable.

Une exception est levée si l'observateur n'est pas attaché à cet observable.

Définition à la ligne 215 du fichier Event.h.

◆ notify()

template<typename... Args>
void Arcane::EventObservable< Args >::notify ( Args... args)
inline

Appelle les observeurs associés à cet observable.

Définition à la ligne 230 du fichier Event.h.


La documentation de cette classe a été générée à partir du fichier suivant :