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

Public Member Functions | Protected Attributes | List of all members
cogitant::OpeAcceptableProjection Class Referenceabstract

Prise en compte (ou pas) d'une projection lors d'un calcul de projections. More...

#include "cogitant/projection.h"

Inheritance diagram for cogitant::OpeAcceptableProjection:
cogitant::Operation cogitant::OperationBase cogitant::ObservableObject cogitant::CogitantObject cogitant::OpeAcceptableProjectionNonInjective cogitant::OpeRuleIrredundantProjection

Public Member Functions

Error check ()
 Vérification des paramètres. More...
 
void run ()
 Lancement de l'opération. More...
 
Constructeurs - destructeur.
 OpeAcceptableProjection (Environment *env)
 Constructeur. More...
 
 ~OpeAcceptableProjection ()
 Destructeur. More...
 
virtual OpeAcceptableProjectionclone () const =0
 Retourne une copie. More...
 
Entrée des paramètres.
void setParamCandidate (Projection const *cand)
 
Accès aux résultats.
bool getResult () const
 
- Public Member Functions inherited from cogitant::Operation
Environmentenvironment () const
 Environnement. More...
 
void setEnvironment (Environment *env)
 Modification de l'environnement sur lequel est défini l'opération. More...
 
 Operation (Environment *env)
 Constructeur. More...
 
 Operation (Operation const &o)
 Constructeur par recopie. More...
 
 ~Operation ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::OperationBase
void stop ()
 Stopper l'opération dès que possible. More...
 
bool isStopped () const
 Est-ce que l'opération a été stoppée. More...
 
 OperationBase ()
 Constructeur. More...
 
 OperationBase (OperationBase const &o)
 Constructeur par recopie. More...
 
 ~OperationBase ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::ObservableObject
 ObservableObject ()
 Constructeur. More...
 
 ObservableObject (ObservableObject const &o)
 Constructeur par recopie. More...
 
 ~ObservableObject ()
 Destructeur. More...
 
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...
 
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...
 
- 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 Attributes

Projection const * i_candidate
 La projection qui doit être testée.
 
bool o_result
 Résultat : la projection doit être ajoutée ou pas.
 
- Protected Attributes inherited from cogitant::OperationBase
bool m_stop
 Arrêt de l'exécution de l'opération demandé. More...
 

Additional Inherited Members

- Public Types inherited from cogitant::OperationBase
typedef unsigned int Error
 Résultat de la vérification des arguments d'une opération. More...
 
- Static Public Attributes inherited from cogitant::Operation
static const Error PROJBACKTRACKCHOICE_EMPTYLIST
 Impossible d'enlever un élément à une liste vide. More...
 
static const Error OBJECTTYPE
 Un (identifiant d') objet parmi les paramètres n'est pas du bon type. More...
 
static const Error WRONGEDGES
 Un graphe parmi les paramètres de l'opération possède des arêtes pendantes. More...
 
- Static Public Attributes inherited from cogitant::OperationBase
static const Error CHECKOK
 Pas d'erreur. More...
 
static const Error ARGUMENTS
 Certains paramètres de l'opération n'ont pas été fixés. More...
 
static const Error UNUSED
 Symbole d'erreur inutilisé. More...
 
- Protected Member Functions inherited from cogitant::Operation
void setProgress (unsigned int current, unsigned int max)
 Progression actuelle de l'opération. More...
 
- Protected Member Functions inherited from cogitant::ObservableObject
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...
 
ObserverSetobservers ()
 Accès à l'ensemble des observateurs. 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...
 

Detailed Description

Prise en compte (ou pas) d'une projection lors d'un calcul de projections.

Des instances de cette classe sont utilisées en deux occasions. Dans la classe OpeProjection, chaque Projection trouvée est soumise à un premier filtre qui est une OpeAcceptableProjection, ce filtre est optionnel, et par défaut laisse passer toutes les Projection trouvées. Ensuite, un second filtre, toujours sous la forme d'une OpeAcceptableProjection est effectué dans le ResultOpeProjection, là aussi ce filtre est optionnel.
A noter que dans certains cas l'utilisation d'une OpeAcceptableProjection n'est pas très efficace, car le test est effectué une fois que la projection a été complètement calculée. Par exemple, pour filtrer les seules projections injectives, il est beaucoup plus efficace d'exécuter le filtre au fur et à mesure que la projection est construite : dès qu'un nouveau couple de sommets est ajouté à la projection en cours de construction, on peut savoir si ce couple conserve le caractère injectif de la projection ou pas. C'est d'ailleurs de cette façon que la recherche de projections injectives est programmé.
De même, pour accepter les seules projections pour lesquelles certains sommets du graphe projeté ont pour image certains sommets du graphe sur lequel les projections sont calculées, il est nettement plus efficace de lancer le calcul avec une projection incomplète incorporant ces contraintes (OpeProjection::setParamProj()) que de filtrer après coup les projections calculées.

See also
OpeProjection::setParamOpeAcceptableProjection(), ResultOpeProjection::setOpeAcceptableProjection().

Constructor & Destructor Documentation

cogitant::OpeAcceptableProjection::OpeAcceptableProjection ( Environment env)

Constructeur.

cogitant::OpeAcceptableProjection::~OpeAcceptableProjection ( )

Destructeur.

Member Function Documentation

Error cogitant::OpeAcceptableProjection::check ( )
virtual

Vérification des paramètres.

Retourne Operation::CHECKOK si l'opération peut être exécutée (méthode run()) ou un code d'erreur dans le cas contraire.

Implements cogitant::OperationBase.

virtual OpeAcceptableProjection* cogitant::OpeAcceptableProjection::clone ( ) const
pure virtual
void cogitant::OpeAcceptableProjection::run ( )
virtual

Lancement de l'opération.

Dans cette implantation par défaut, toutes les projections sont acceptées ce qui fait que l'appel à run() correspond à l'exécution de :

o_result = true;

Implements cogitant::OperationBase.