Calcul d'une fermeture d'un graphe par un ensemble de règles. More...
#include "cogitant/operule.h"
Public Member Functions | |
Error | check () |
Vérification des paramètres. More... | |
void | run () |
Lancement de l'opération. More... | |
Constructeurs - destructeur. | |
OpeRulesClosure (Environment *env) | |
Constructeur. More... | |
~OpeRulesClosure () | |
Destructeur. More... | |
Entrée des paramètres. | |
void | setParamGraph (Graph *g) |
Graphe sur lequel une fermeture sera calculée. More... | |
void | setParamRules (Set< Rule *> const *r) |
Ensemble des règles (du même environnement que le graphe et que l'opération) à appliquer. More... | |
void | setParamMaxApplications (unsigned long ma) |
Nombre maximum d'opérations à tenter pour calculer une fermeture. More... | |
void | setParamMaxPasses (unsigned long mp) |
Nombre maximum de passes à exécuter. More... | |
void | setParamOpeRuleApplications (OpeRuleApplications *operuleapplications) |
Opération de calcul des applications possibles d'une règle sur un graphe. More... | |
void | setParamOpeRuleApply (OpeRuleApply *operuleapply) |
Opération d'application d'une règle sur un graphe selon une projection. More... | |
void | setParamOpeRuleIrredundantProjection (OpeRuleIrredundantProjection *operuleirr) |
Opération de sélection des applications non redondantes. More... | |
Accès aux résultats. | |
Graph * | getResult () const |
Accès au graphe modifié. More... | |
unsigned long | getResultApplications () const |
Accès au nombre d'applications qui ont été effectuées. More... | |
![]() | |
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 * | io_graph |
Le gaphe qui est modifié par l'opération. | |
Set< Rule * > const * | i_rules |
Les règles à prendre en compte. Si égal à NULL, toutes les règles de l'environnement sont prises en compte. | |
unsigned long | i_maxapplications |
Le nombre maximum d'applications à calculer. | |
unsigned long | i_maxpasses |
Le nombre maximum de passes. | |
unsigned long | o_applications |
Le nombre effectif d'applications calculées. | |
OpeRuleApplications * | i_operuleapplications |
L'opération de recherche d'applications utilisée. | |
OpeRuleApply * | i_operuleapply |
L'opération d'application utilisée. | |
OpeRuleIrredundantProjection * | i_operuleirr |
L'opération de filtre des applications non redondantes. | |
![]() | |
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... | |
Calcul d'une fermeture d'un graphe par un ensemble de règles.
Cette opération calcule toutes les applications non redondantes de règles qui peuvent être appliquées sur un graphe, et les applique, tant que des applications non redondantes existent.
Habituellement, il n'est pas nécessaire d'utiliser directement cette classe, car il est plus simple de passer par la méthode Environment::rulesClosure(), qui utilise en interne cette classe.
cogitant::OpeRulesClosure::OpeRulesClosure | ( | Environment * | env | ) |
Constructeur.
cogitant::OpeRulesClosure::~OpeRulesClosure | ( | ) |
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.
Graph* cogitant::OpeRulesClosure::getResult | ( | ) | const |
Accès au graphe modifié.
unsigned long cogitant::OpeRulesClosure::getResultApplications | ( | ) | const |
Accès au nombre d'applications qui ont été effectuées.
|
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::OpeRulesClosure::setParamGraph | ( | Graph * | g | ) |
Graphe sur lequel une fermeture sera calculée.
void cogitant::OpeRulesClosure::setParamMaxApplications | ( | unsigned long | ma | ) |
Nombre maximum d'opérations à tenter pour calculer une fermeture.
Dès que ce nombre est atteint, la méthode run() se termine, même si de nouvelles applications non redondantes sont possibles. Si 0 est passé comme paramètre, aucune limite n'est posée, et la méthode run() peut potentiellement partir dans une boucle sans fin (ce qui est normal).
void cogitant::OpeRulesClosure::setParamMaxPasses | ( | unsigned long | mp | ) |
Nombre maximum de passes à exécuter.
Une passe consiste en la recherche et l'application de toutes les règles sur le graphe. Dès que ce nombre est atteine, la méthode run() se termine, même si de nouvelles applications sont possibles. Si 0 est passé comme paramètre, aucune limite n'est posée, et la méthode run() peut potentiellement partir dans une boucle sans fin (ce qui est normal).
void cogitant::OpeRulesClosure::setParamOpeRuleApplications | ( | OpeRuleApplications * | operuleapplications | ) |
Opération de calcul des applications possibles d'une règle sur un graphe.
void cogitant::OpeRulesClosure::setParamOpeRuleApply | ( | OpeRuleApply * | operuleapply | ) |
Opération d'application d'une règle sur un graphe selon une projection.
void cogitant::OpeRulesClosure::setParamOpeRuleIrredundantProjection | ( | OpeRuleIrredundantProjection * | operuleirr | ) |
Opération de sélection des applications non redondantes.