Opération de vérification de la validité d'un graphe par rapport à une contrainte. More...
#include "cogitant/coloredgraph.h"
Public Member Functions | |
Error | check () |
Vérification des paramètres. More... | |
void | run () |
Lancement de l'opération. More... | |
Constructeurs - destructeur. | |
OpeConstraintSatisfaction (Environment *env) | |
Constructeur. More... | |
OpeConstraintSatisfaction (OpeConstraintSatisfaction const &o) | |
Constructeur par recopie. More... | |
~OpeConstraintSatisfaction () | |
Destructeur. More... | |
Entrée des paramètres. | |
void | setParamGraph (Graph const *g) |
void | setParamConstraint (Constraint const *c) |
void | setParamOpeProjections (OpeProjectionBundle *opeprojectioncond, OpeProjectionBundle *opeprojectionoblig) |
Fixe les opérations de projections utilisées pour chercher la projection de la condition et de l'obligation/interdiction. More... | |
void | setParamProjections (ResultOpeProjection *projcond, ResultOpeProjection *projinter=NULL) |
Stockage des projections qui font que la contrainte n'est pas vérifiées. More... | |
Accès aux résultats. | |
bool | getResult () const |
![]() | |
Environment * | environment () 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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 Attributes | |
Graph const * | i_g |
Le graphe à vérifier. | |
Constraint const * | i_c |
La contrainte. | |
OpeProjectionBundle * | i_opeprojectioncond |
L'opération de projection utilisée pour la condition. | |
OpeProjectionBundle * | i_opeprojectionoblig |
L'opération de projection utilisée pour l'obligation/interdiction. | |
bool | o_satisfaction |
Le résultat. | |
ResultOpeProjection * | io_projcond |
Les projections de la condition sur le graphe qui font que la contrainte n'est pas respectée. | |
ResultOpeProjection * | io_projinter |
Les projections de l'interdiction sur le graphe qui font que la contrainte négative n'est pas respectée. | |
![]() | |
bool | m_stop |
Arrêt de l'exécution de l'opération demandé. More... | |
Additional Inherited Members | |
![]() | |
typedef unsigned int | Error |
Résultat de la vérification des arguments d'une opération. More... | |
![]() | |
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 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... | |
![]() | |
void | setProgress (unsigned int current, unsigned int max) |
Progression actuelle de l'opération. More... | |
![]() | |
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... | |
ObserverSet & | observers () |
Accès à l'ensemble des observateurs. More... | |
![]() | |
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... | |
Opération de vérification de la validité d'un graphe par rapport à une contrainte.
Cette classe opération détermine si un graphe vérifie une contrainte. Dans le cas d'une utilisation classique de la bibliothèque, il n'est pas nécessaire d'instancier directement cette classe, car il est plus simple de passer par la méthode Environment::constraintSatisfaction() qui retourne directement true
ou false
selon que le graphe vérifie ou pas la contrainte.
cogitant::OpeConstraintSatisfaction::OpeConstraintSatisfaction | ( | Environment * | env | ) |
Constructeur.
cogitant::OpeConstraintSatisfaction::OpeConstraintSatisfaction | ( | OpeConstraintSatisfaction const & | o | ) |
Constructeur par recopie.
cogitant::OpeConstraintSatisfaction::~OpeConstraintSatisfaction | ( | ) |
Destructeur.
|
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 |
Lancement de l'opération.
Cette méthode ne retourne rien mais le résultat de l'opération peut être récupéré avec les méthodes getResultxxx() (différentes selon les sous classes de Operation).
Implements cogitant::OperationBase.
void cogitant::OpeConstraintSatisfaction::setParamOpeProjections | ( | OpeProjectionBundle * | opeprojectioncond, |
OpeProjectionBundle * | opeprojectionoblig | ||
) |
Fixe les opérations de projections utilisées pour chercher la projection de la condition et de l'obligation/interdiction.
void cogitant::OpeConstraintSatisfaction::setParamProjections | ( | ResultOpeProjection * | projcond, |
ResultOpeProjection * | projinter = NULL |
||
) |
Stockage des projections qui font que la contrainte n'est pas vérifiées.
Par défaut, les projections trouvées ne sont pas stockées, et à la première projection trouvée (de la condition et qui ne peut être étendue à l'obligation dans le cas d'une contrainte positive ; de la condition qui peut être étendue à l'interdiction dans le cas d'une contgrainte négative), l'opération s'arrête sur une erreur~: la contrainte n'est pas vérifiée. En appelant cette méthode, avec run(), il est possible de configurer le stockage des projections trouvées.
projcond | si NULL, les projections ne sont pas stockées, et la recherche s'arrête à la première projection trouvée (comportement par défaut). Si différent de NULL, les projections trouvées sont stockées dans l'instance de ResultOpeProjection passée. Ce qui permet donc d'accéder à la projection trouvée, mais aussi de chercher par exemple toutes les projections. Ce paramètre contiendra les projection de la condition dans le graphe (qui est la seule pertinente dans le cas d'une contrainte positive). |
projinter | si NULL, les projections ne sont pas stockées. Si différent de NULL, les projections de l'interdiction dans le graphe sont stockées dans l'instance de ResultOpeProjection passée. Dans le cas d'une contrainte positive, ce paramètre n'a aucun sens, car les erreurs correspondent à des projections de la condition qui ne peuvent être étendues en des projections de l'obligation, comme ces dernières sont introuvables, elles ne peuvent être stockées. |