Arcane  v3.14.10.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>

+ Graphe d'héritage de Arcane::EventObservable< Args >:
+ Graphe de collaboration de Arcane::EventObservable< Args >:

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
 

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):
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);
Classe de base d'un handler d'évènement.
Definition Event.h:157
void attach(ObserverType *o)
Attache l'observateur o à cet observable.
Definition Event.h:178
void notify(Args... args)
Appelle les observeurs associés à cet observable.
Definition Event.h:199
Conserve des références d'observateurs.
Definition Event.h:112
Observateur d'évènements.
Definition Event.h:88

Définition à la ligne 155 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 160 du fichier Event.h.

Documentation des constructeurs et destructeur

◆ EventObservable()

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

Définition à la ligne 164 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 191 du fichier Event.h.

Références Arcane::EventObserverPool::add().

◆ 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 178 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 184 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 199 du fichier Event.h.


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