Classe abstraite mère de tous les objets pouvant être observés. More...
#include "cogitant/observableobject.h"
Public Member Functions | |
Constructeurs - destructeur. | |
ObservableObject () | |
Constructeur. More... | |
ObservableObject (ObservableObject const &o) | |
Constructeur par recopie. More... | |
~ObservableObject () | |
Destructeur. More... | |
Accesseurs. | |
ObserverSet const & | observers () const |
Accès à l'ensemble des observateurs. More... | |
bool | hasObservers () const |
Existence d'observateurs. More... | |
bool | hasObservers (ObserverMessage::Type mt) const |
Existence d'observateurs qui écoutent le type de message passé. More... | |
Public Member Functions inherited from cogitant::CogitantObject | |
CogitantObject () | |
Constructeur. More... | |
CogitantObject (CogitantObject const &o) | |
Constructeur par recopie. More... | |
virtual | ~CogitantObject () |
Destructeur. More... | |
PropertySet * | properties () |
Accès à l'ensemble des propriétés. More... | |
virtual std::string | toString () const |
Transformation en chaîne de caractères. More... | |
std::string | className () const |
Nom de la classe. More... | |
PropertySet const * | properties () const |
Accès en lecture seule à l'ensemble des propriétés. More... | |
bool | hasProperties () const |
Existence de propriétés. More... | |
CogitantObject & | operator= (CogitantObject const &ob) |
Affectation. More... | |
Protected Member Functions | |
Allocateurs. | |
virtual ObserverSet * | allocObservers () const |
Fonction créant l'instance d'une sous classe de ObserverSet pour la représentation de l'ensemble des observateurs de l'objet. More... | |
Protected Member Functions inherited from cogitant::CogitantObject | |
virtual PropertySet * | allocProperties () const |
Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More... | |
Modifications. | |
void | attachObserver (Observer *obs) |
Ajoute un nouvel observateur à l'objet. More... | |
void | detachObserver (Observer *obs) |
Supprime le lien entre l'observateur et l'objet. More... | |
void | notifyObservers (ObserverMessage const *msg) |
Envoie le message de modification à tous les observateurs. More... | |
ObserverSet & | observers () |
Accès à l'ensemble des observateurs. More... | |
Classe abstraite mère de tous les objets pouvant être observés.
cogitant::ObservableObject::ObservableObject | ( | ) |
Constructeur.
L'ensemble des observateurs (m_observers) est initialisé à NULL
afin d'économiser une allocation d'un ObserverSet pour les objets n'ayant aucun observateur.
cogitant::ObservableObject::ObservableObject | ( | ObservableObject const & | o | ) |
Constructeur par recopie.
L'ensemble des observateurs n'est pas copié.
cogitant::ObservableObject::~ObservableObject | ( | ) |
Destructeur.
|
protectedvirtual |
Fonction créant l'instance d'une sous classe de ObserverSet pour la représentation de l'ensemble des observateurs de l'objet.
void cogitant::ObservableObject::attachObserver | ( | Observer * | obs | ) |
Ajoute un nouvel observateur à l'objet.
obs | pointeur sur le nouvel observateur. |
void cogitant::ObservableObject::detachObserver | ( | Observer * | obs | ) |
Supprime le lien entre l'observateur et l'objet.
obs | pointeur sur l'observateur à détacher. |
|
inline |
Existence d'observateurs.
Il peut être utile d'utiliser cette méthode avant d'appeler observers() car ce dernier appel crée dans tous les cas (i.e. même pour une lecture) un ensemble d'observateurs si celui-ci n'existe pas déjà.
true
ssi l'objet a déjà un ensemble d'observateurs, et que celui-ci est non vide.
|
inline |
Existence d'observateurs qui écoutent le type de message passé.
Il peut être utile d'utiliser cette méthode avant d'appeler observers() car ce dernier appel crée dans tous les cas (i.e. même pour une lecture) un ensemble d'observateurs si celui-ci n'existe pas déjà.
mt | Type de message. |
true
ssi l'objet a déjà un ensemble d'observateurs contenant au moins un observateur intéressé par le type de message mt. References cogitant::ObserverSet::hasObservers().
void cogitant::ObservableObject::notifyObservers | ( | ObserverMessage const * | msg | ) |
Envoie le message de modification à tous les observateurs.
msg | message de modification à envoyer. |
|
protected |
Accès à l'ensemble des observateurs.
NULL
), cette méthode alloue et retourne un ensemble d'observateurs par allocObservers(). Cette méthode est protected afin de ne pas être utilisée par des méthodes externes à la classe. Ces méthodes doivent se contenter de attachObserver() et detachObserver(). ObserverSet const& cogitant::ObservableObject::observers | ( | ) | const |
Accès à l'ensemble des observateurs.
NULL
), cette méthode alloue et retourne un ensemble d'observateurs par allocObservers().