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

Protected Member Functions | Protected Attributes | List of all members
cogitant::ResultOpeProjection Class Reference

Résultat d'une opération de projection. More...

#include "cogitant/projection.h"

Inheritance diagram for cogitant::ResultOpeProjection:
cogitant::CogitantObject

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.
ResultOpeProjectionoperator= (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...
 
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 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 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...
 

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...
 
OpeAcceptableProjectionm_opeacceptable
 Opération de filtre de certaines projections. More...
 

Detailed Description

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.

Examples:
minimal.cpp.

Constructor & Destructor Documentation

◆ ResultOpeProjection() [1/2]

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é.

◆ ResultOpeProjection() [2/2]

cogitant::ResultOpeProjection::ResultOpeProjection ( ResultOpeProjection const &  o,
ResultOpeProjectionAllocator const *  alloc = NULL 
)

Constructeur par recopie.

◆ ~ResultOpeProjection()

cogitant::ResultOpeProjection::~ResultOpeProjection ( )

Destructeur.

Member Function Documentation

◆ acceptable()

virtual bool cogitant::ResultOpeProjection::acceptable ( Projection const &  p)
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).

Parameters
pprojection à tester.
Returns
true si la p est acceptable, false sinon.

◆ add()

bool cogitant::ResultOpeProjection::add ( Projection const &  p)

Ajout d'une projection à l'ensemble des résultats.

Parameters
pla projection à ajouter. C'est une copie de p qui est ajoutée à l'ensemble des résultats.
Returns
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.

◆ allocMembers() [1/2]

void cogitant::ResultOpeProjection::allocMembers ( )
protected

Allocation de tous les membres.

◆ allocMembers() [2/2]

void cogitant::ResultOpeProjection::allocMembers ( ResultOpeProjection const &  o)
protected

Allocation de tous les membres par copie des membres d'un objet existant.

Warning
L'allocateur n'est pas copié. L'allocateur est en effet fixé au moment de la construction et ne peut être modifié par la suite.

◆ clear()

virtual void cogitant::ResultOpeProjection::clear ( )
virtual

Réinitialiser l'ensemble de résultats.

◆ deleteMembers()

void cogitant::ResultOpeProjection::deleteMembers ( )
protected

Destruction de tous les membres.

◆ isEmpty()

bool cogitant::ResultOpeProjection::isEmpty ( ) const

Existence de projections.

Returns
true s'il n'y a aucune projection, false sinon.

◆ maxSize() [1/2]

virtual void cogitant::ResultOpeProjection::maxSize ( nSet  nbm)
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).

Parameters
nbmnombre maximum de projections calculées. 0 pour ne pas limiter la recherche.

◆ maxSize() [2/2]

nSet cogitant::ResultOpeProjection::maxSize ( ) const

Nombre maximum de projections pouvant être calculées.

◆ memoProjections() [1/2]

virtual void cogitant::ResultOpeProjection::memoProjections ( bool  memo)
virtual

Mémorisation des projections ou pas.

Warning
vide l'ensemble des projections mémorisées si memo = false.
Parameters
memomémorisation des projections (true) ou seulement de leur nombre (false).

◆ memoProjections() [2/2]

bool cogitant::ResultOpeProjection::memoProjections ( ) const

Projections mémorisées ou pas.

◆ opeAcceptableProjection()

OpeAcceptableProjection const* cogitant::ResultOpeProjection::opeAcceptableProjection ( ) const

Opération de filtrage des projections calculées.

◆ operator=()

ResultOpeProjection& cogitant::ResultOpeProjection::operator= ( ResultOpeProjection const &  ob)

Affectation.

◆ projections() [1/2]

Set<Projection *> const* cogitant::ResultOpeProjection::projections ( ) const

Ensemble des projections.

Si les projections calculées n'ont pas été mémorisées, retourne NULL.

Examples:
minimal.cpp.

◆ projections() [2/2]

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.

◆ setOpeAcceptableProjection()

virtual void cogitant::ResultOpeProjection::setOpeAcceptableProjection ( OpeAcceptableProjection op)
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().

◆ size()

nSet cogitant::ResultOpeProjection::size ( ) const

Nombre de projections.

Examples:
minimal.cpp.

Member Data Documentation

◆ m_allocator

ResultOpeProjectionAllocator const* const cogitant::ResultOpeProjection::m_allocator
protected

Allocateur pour tous les membres.

Fixé à la construction, ne peut être modifié par la suite.

◆ m_opeacceptable

OpeAcceptableProjection* cogitant::ResultOpeProjection::m_opeacceptable
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).

◆ m_projsizemax

nSet cogitant::ResultOpeProjection::m_projsizemax
protected

Nombre maximum de projections mémorisées/calculées.

Une fois que ce seuil est atteint, le calcul s'arrête.