Résultat d'une opération de projection. More...
#include "cogitant/projection.h"
Public Member Functions | |
Constructeurs - destructeur. | |
ResultOpeProjection (ResultOpeProjectionAllocator const *alloc=NULL) | |
Constructeur. More... | |
ResultOpeProjection (ResultOpeProjection const &o, ResultOpeProjectionAllocator const *alloc=NULL) | |
Constructeur par recopie. More... | |
~ResultOpeProjection () | |
Destructeur. More... | |
Modifications. | |
bool | add (Projection const &p) |
Ajout d'une projection à l'ensemble des résultats. More... | |
virtual void | clear () |
Réinitialiser l'ensemble de résultats. More... | |
virtual void | memoProjections (bool memo) |
Mémorisation des projections ou pas. More... | |
virtual void | maxSize (nSet nbm) |
Modification du nombre maximum de projections calculées. More... | |
virtual void | setOpeAcceptableProjection (OpeAcceptableProjection *op) |
Modification de l'opération de filtrage des projections calculées. More... | |
Accesseurs. | |
bool | isEmpty () const |
Existence de projections. More... | |
nSet | size () const |
Nombre de projections. More... | |
nSet | maxSize () const |
Nombre maximum de projections pouvant être calculées. More... | |
bool | memoProjections () const |
Projections mémorisées ou pas. More... | |
Set< Projection * > const * | projections () const |
Ensemble des projections. More... | |
Projection const * | projections (iSet i) const |
Accès à une projection par son identificateur. More... | |
OpeAcceptableProjection const * | opeAcceptableProjection () const |
Opération de filtrage des projections calculées. More... | |
Opérateurs. | |
ResultOpeProjection & | operator= (ResultOpeProjection const &ob) |
Affectation. 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 Member Functions | |
void | allocMembers () |
Allocation de tous les membres. More... | |
void | allocMembers (ResultOpeProjection const &o) |
Allocation de tous les membres par copie des membres d'un objet existant. More... | |
void | deleteMembers () |
Destruction de tous les membres. More... | |
virtual bool | acceptable (Projection const &p) |
Test de la projection devant être ajoutée. 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... | |
Protected Attributes | |
ResultOpeProjectionAllocator const *const | m_allocator |
Allocateur pour tous les membres. More... | |
Set< Projection * > * | m_projections |
Projections mémorisées. | |
nSet | m_projsize |
Nombre de projections mémorisées/calculées. | |
bool | m_memoproj |
Mémorisation des projections (true ) ou seulement du nombre (false ). | |
nSet | m_projsizemax |
Nombre maximum de projections mémorisées/calculées. More... | |
OpeAcceptableProjection * | m_opeacceptable |
Opération de filtre de certaines projections. More... | |
Résultat d'une opération de projection.
Une instance de cette classe représente en mémoire le résultat du calcul des projections d'un graphe sur un autre. Selon l'état de certains membres, la mémorisation du résultat de la projection s'effectuera de différentes façons : seul le nombre de projections sera mémorisé, le nombre de projection calculé peut être limité par une valeur entière (si cette limité est 0, le calcul correspond à l'existence d'une projection) ou les projections peuvent être mémorisées.
cogitant::ResultOpeProjection::ResultOpeProjection | ( | ResultOpeProjectionAllocator const * | alloc = NULL | ) |
Constructeur.
L'allocateur par défaut (ResultOpeProjectionAllocator) est créé si alloc = NULL
. Par défaut, les projections sont mémorisées et leur nombre n'est pas limité.
cogitant::ResultOpeProjection::ResultOpeProjection | ( | ResultOpeProjection const & | o, |
ResultOpeProjectionAllocator const * | alloc = NULL |
||
) |
Constructeur par recopie.
cogitant::ResultOpeProjection::~ResultOpeProjection | ( | ) |
Destructeur.
|
protectedvirtual |
Test de la projection devant être ajoutée.
Cette méthode retourne true
si aucune opération de test de projection (ResultOpeProjection::OpeAcceptableProjection) n'est définie (m_resultopeprojection == NULL
). Si une telle opération est définie, la méthode acceptable() retourne la valeur déterminée par l'opération. La vérification de certaines propriétés sur une projection devant être ajoutée à l'ensemble peut donc être facilement faite dans cette méthode (redéfinition dans une sous classe de ResultOpeProjection ou héritage à partir de ResultOpeProjection::OpeAcceptableProjection et redéfinition de ResultOpeProjection::OpeAcceptableProjection::run()) qui s'intègre aux autres mécanismes offerts par la classe ResultOpeProjection (limitation du nombre, mémorisation).
p | projection à tester. |
true
si la p est acceptable, false
sinon. bool cogitant::ResultOpeProjection::add | ( | Projection const & | p | ) |
Ajout d'une projection à l'ensemble des résultats.
p | la projection à ajouter. C'est une copie de p qui est ajoutée à l'ensemble des résultats. |
true
si l'ajout de p ne doit pas terminer le calcul (d'autres projections peuvent être ajoutées à la structure de données (qu'elles soient mémorisées ou pas)), false
sinon. Dans ce dernier cas le nombre de projections cherché est obtenu, et il est inutile de calculer d'autres projections.
|
protected |
Allocation de tous les membres.
|
protected |
Allocation de tous les membres par copie des membres d'un objet existant.
|
virtual |
Réinitialiser l'ensemble de résultats.
|
protected |
Destruction de tous les membres.
bool cogitant::ResultOpeProjection::isEmpty | ( | ) | const |
Existence de projections.
true
s'il n'y a aucune projection, false
sinon.
|
virtual |
Modification du nombre maximum de projections calculées.
Cette valeur est utilisée dans le cas ou les projections sont stockées mais aussi si elles ne le sont pas afin de pouvoir tester efficacement l'existence d'une projection (même si l'obtention d'une projection elle-même n'est pas utile).
nbm | nombre maximum de projections calculées. 0 pour ne pas limiter la recherche. |
nSet cogitant::ResultOpeProjection::maxSize | ( | ) | const |
Nombre maximum de projections pouvant être calculées.
|
virtual |
Mémorisation des projections ou pas.
false
. memo | mémorisation des projections (true ) ou seulement de leur nombre (false ). |
bool cogitant::ResultOpeProjection::memoProjections | ( | ) | const |
Projections mémorisées ou pas.
OpeAcceptableProjection const* cogitant::ResultOpeProjection::opeAcceptableProjection | ( | ) | const |
Opération de filtrage des projections calculées.
ResultOpeProjection& cogitant::ResultOpeProjection::operator= | ( | ResultOpeProjection const & | ob | ) |
Affectation.
Set<Projection *> const* cogitant::ResultOpeProjection::projections | ( | ) | const |
Ensemble des projections.
Si les projections calculées n'ont pas été mémorisées, retourne NULL
.
Projection const* cogitant::ResultOpeProjection::projections | ( | iSet | i | ) | const |
Accès à une projection par son identificateur.
Si les projections calculées n'ont pas été mémorisées, retourne NULL
.
|
virtual |
Modification de l'opération de filtrage des projections calculées.
L'opération passée est utilisée pour filtrer les projections calculées dans la méthode acceptable().
nSet cogitant::ResultOpeProjection::size | ( | ) | const |
Nombre de projections.
|
protected |
Allocateur pour tous les membres.
Fixé à la construction, ne peut être modifié par la suite.
|
protected |
Opération de filtre de certaines projections.
Lorsqu'une projection vient d'être calculée, si m_opeacceptable est non NULL
l'opération est appelée pour déterminer si la projection calculée peut être ajoutée à l'ensemble. Si m_opeacceptable est NULL
la projection est ajoutée dans tous les cas. Cette opération de filtre est exécutée après le premier filtre effecté par l'OpeProjection (qui dispose elle aussi d'une OpeAcceptableProjection).
|
protected |
Nombre maximum de projections mémorisées/calculées.
Une fois que ce seuil est atteint, le calcul s'arrête.