Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

List of all members
cogitant::ObservableObject Class Reference

Classe abstraite mère de tous les objets pouvant être observés. More...

#include "cogitant/observableobject.h"

Inheritance diagram for cogitant::ObservableObject:
cogitant::CogitantObject cogitant::EnvironmentObject cogitant::OperationBase cogitant::CoupleOfLambdas cogitant::Graph cogitant::Operation cogitantcs::OperationCSIO cogitantcs::OpeServer cogitantdisplay::Operation cogitant::Constraint cogitant::Rule cogitant::ColoredGraph cogitant::OpeAcceptableProjection cogitant::OpeConnectedComponent cogitant::OpeConstraintSatisfaction cogitant::OpeDisjointSum cogitant::OpeGraphObjectCompatibility cogitant::OpeIndividualGraphExpand cogitant::OpeIndividualGraphMultipleExpand cogitant::OpeIrredundant cogitant::OpeNormalForm cogitant::OpeProjAcceptableCouple cogitant::OpeProjAcceptableLIPs cogitant::OpeProjBacktrackChoice cogitant::OpeProjection cogitant::OpeProjectionImage cogitant::OpeProjLIPIndividual cogitant::OpeProjLIPInit cogitant::OpeProjLIPUpdate cogitant::OpeProjPrecalcImages cogitant::OperationCgToRdfsTranslation cogitant::OperationIO cogitant::OperationRdfsToCgTranslation cogitant::OpeRuleApplications cogitant::OpeRuleApply cogitant::OpeRulesClosure cogitant::OpeSignatureApply cogitant::OpeSupportSignatureSpecialize cogitant::OpeVerification cogitantcs::OperationCSIO_HTTP cogitantcs::OperationCSIO_Simple cogitantcs::OperationCSIO_TCP cogitantcs::OpeServerAddEdge cogitantcs::OpeServerAddGraphObject cogitantcs::OpeServerBannedTypes cogitantcs::OpeServerCommitEnvironmentObject cogitantcs::OpeServerCommitImmediateLess cogitantcs::OpeServerCommitSupportObject cogitantcs::OpeServerComparison cogitantcs::OpeServerConstraintSatisfaction cogitantcs::OpeServerCopyEnvironmentObject cogitantcs::OpeServerDelEdge cogitantcs::OpeServerDeleteEnvironment cogitantcs::OpeServerDeleteEnvironmentObject cogitantcs::OpeServerDelGraphObject cogitantcs::OpeServerEnvironment cogitantcs::OpeServerGraphObject cogitantcs::OpeServerImmediateLG cogitantcs::OpeServerLoadGraphs cogitantcs::OpeServerLoadSupport cogitantcs::OpeServerNewEnvironment cogitantcs::OpeServerNewEnvironmentObject cogitantcs::OpeServerNewSupportObject cogitantcs::OpeServerOperationConfig cogitantcs::OpeServerProjections cogitantcs::OpeServerRuleApply cogitantcs::OpeServerRulesClosure cogitantcs::OpeServerSaveEnvironmentObjects cogitantcs::OpeServerSaveSupport cogitantcs::OpeServerServer cogitantcs::OpeServerSetContent cogitantcs::OpeServerViewLog cogitantdisplay::OperationDraw cogitantdisplay::OperationLayout cogitantdisplay::OperationPropertyDialog

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...
 
PropertySetproperties ()
 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...
 
CogitantObjectoperator= (CogitantObject const &ob)
 Affectation. More...
 

Protected Member Functions

Allocateurs.
virtual ObserverSetallocObservers () 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 PropertySetallocProperties () 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...
 
ObserverSetobservers ()
 Accès à l'ensemble des observateurs. More...
 

Detailed Description

Classe abstraite mère de tous les objets pouvant être observés.

Constructor & Destructor Documentation

◆ ObservableObject() [1/2]

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.

◆ ObservableObject() [2/2]

cogitant::ObservableObject::ObservableObject ( ObservableObject const &  o)

Constructeur par recopie.

L'ensemble des observateurs n'est pas copié.

◆ ~ObservableObject()

cogitant::ObservableObject::~ObservableObject ( )

Destructeur.

Member Function Documentation

◆ allocObservers()

virtual ObserverSet* cogitant::ObservableObject::allocObservers ( ) const
protectedvirtual

Fonction créant l'instance d'une sous classe de ObserverSet pour la représentation de l'ensemble des observateurs de l'objet.

Returns
Un ensemble d'observateurs vide alloué dans cette méthode. Cet ensemble n'est pas affecté au membre m_observers.
Warning
Cette méthode étant virtuelle, il est conseillé de ne pas l'appeler dans un constructeur.

◆ attachObserver()

void cogitant::ObservableObject::attachObserver ( Observer obs)

Ajoute un nouvel observateur à l'objet.

Precondition
obs ne doit être associé à aucun autre ObservableObject.
Parameters
obspointeur sur le nouvel observateur.
Examples:
converter.cpp.

◆ detachObserver()

void cogitant::ObservableObject::detachObserver ( Observer obs)

Supprime le lien entre l'observateur et l'objet.

Precondition
obs doit être associé à cet ObservableObject.
Parameters
obspointeur sur l'observateur à détacher.
Warning
Après appel à cette méthode, obs n'est lié à aucun objet observable et devrait donc être détruit manuellement (par opposition à une destruction automatique d'un observateur lié à un objet observable).

◆ hasObservers() [1/2]

bool cogitant::ObservableObject::hasObservers ( ) const
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à.

Returns
true ssi l'objet a déjà un ensemble d'observateurs, et que celui-ci est non vide.

◆ hasObservers() [2/2]

bool cogitant::ObservableObject::hasObservers ( ObserverMessage::Type  mt) const
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à.

Parameters
mtType de message.
Returns
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().

◆ notifyObservers()

void cogitant::ObservableObject::notifyObservers ( ObserverMessage const *  msg)

Envoie le message de modification à tous les observateurs.

Parameters
msgmessage de modification à envoyer.

◆ observers() [1/2]

ObserverSet& cogitant::ObservableObject::observers ( )
protected

Accès à l'ensemble des observateurs.

Returns
Une référence sur l'ensemble des observateurs de l'objet. Si aucun accès à l'ensemble des observateurs n'a été effectué (c'est à dire m_observers == 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().

◆ observers() [2/2]

ObserverSet const& cogitant::ObservableObject::observers ( ) const

Accès à l'ensemble des observateurs.

Returns
Une référence sur l'ensemble des observateurs de l'objet. Si aucun accès à l'ensemble des observateurs n'a été effectué (c'est à dire m_observers == NULL), cette méthode alloue et retourne un ensemble d'observateurs par allocObservers().
Warning
Cette méthode pouvant appeler allocObservers(), il est conseillé de ne pas l'appeler dans un constructeur.