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 |
Public Member Functions inherited from cogitant::Operation | |
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... | |
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... | |
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. | |
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 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... | |
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... | |
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. |