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

Classes | Protected Member Functions | List of all members
cogitant::BannedTypes_Simple Class Reference

Une implémentation simple d'un ensemble de types bannis (sous la forme d'une liste). More...

#include "cogitant/bannedtypes.h"

Inheritance diagram for cogitant::BannedTypes_Simple:
cogitant::BannedTypes

Classes

class  Iterator_Simple
 Itérateur permettant de parcourir tous les types conjonctifs de l'ensemble de types bannis. More...
 

Public Member Functions

Constructeurs - destructeur.
 BannedTypes_Simple ()
 Constructeur. More...
 
 BannedTypes_Simple (BannedTypes const &o)
 Constructeur par recopie. More...
 
 ~BannedTypes_Simple ()
 Destructeur. More...
 
Modifications.
void clear ()
 Vide l'ensemble. More...
 
void addBannedType (ConceptType::ConjunctiveType const &b)
 Ajout d'un type banni. More...
 
void delBannedType (ConceptType::ConjunctiveType const &b)
 Supprime un type banni. More...
 
void optimize ()
 Optimiser. More...
 
Accesseurs.
bool optimized () const
 Optimisation des structures de données. More...
 
Iteratoriterator () const
 Retourne un iterateur (alloué dynamiquement) permettant de parcourir la structure. More...
 
nSet size () const
 Nombre de types bannis. More...
 
bool isBanned (ConceptType::ConjunctiveType const &t) const
 Recherche. More...
 
bool hasBannedType (ConceptType::ConjunctiveType const &t) const
 Est-ce que l'ensemble de type a "exactement" ce type banni-là. More...
 
- Public Member Functions inherited from cogitant::BannedTypes
 BannedTypes ()
 Constructeur. More...
 
virtual ~BannedTypes ()
 Destructeur. More...
 
virtual void setPartialOrder (PartialOrder const *po)
 Fixe l'ordre partiel défini sur l'ensemble de types associé. More...
 
void addAllBannedTypes (std::vector< iSet > const &b)
 Ajout d'un ensemble de couples de types bannis. More...
 

Protected Member Functions

bool iteratorNext (Iterator *it) const
 Passage à l'élément suivant de l'itérateur. More...
 
std::vector< iSet > const & iteratorGetCurrent (Iterator const *it) const
 Accès à l'élément courant de l'itérateur. More...
 

Additional Inherited Members

- Protected Attributes inherited from cogitant::BannedTypes
PartialOrder const * m_partialorder
 Ordre partiel sur les types primitifs repérés dans l'ensemble de types bannis. More...
 

Detailed Description

Une implémentation simple d'un ensemble de types bannis (sous la forme d'une liste).

Cette classe ne fournit pas de méthode d'optimisation.

Constructor & Destructor Documentation

◆ BannedTypes_Simple() [1/2]

cogitant::BannedTypes_Simple::BannedTypes_Simple ( )

Constructeur.

◆ BannedTypes_Simple() [2/2]

cogitant::BannedTypes_Simple::BannedTypes_Simple ( BannedTypes const &  o)

Constructeur par recopie.

◆ ~BannedTypes_Simple()

cogitant::BannedTypes_Simple::~BannedTypes_Simple ( )

Destructeur.

Member Function Documentation

◆ addBannedType()

void cogitant::BannedTypes_Simple::addBannedType ( ConceptType::ConjunctiveType const &  b)
virtual

Ajout d'un type banni.

Exceptions
ExceptionReadOnlyObject
ExceptionAlreadyPresent

Implements cogitant::BannedTypes.

◆ clear()

void cogitant::BannedTypes_Simple::clear ( )
virtual

Vide l'ensemble.

Implements cogitant::BannedTypes.

◆ delBannedType()

void cogitant::BannedTypes_Simple::delBannedType ( ConceptType::ConjunctiveType const &  b)
virtual

Supprime un type banni.

Implements cogitant::BannedTypes.

◆ hasBannedType()

bool cogitant::BannedTypes_Simple::hasBannedType ( ConceptType::ConjunctiveType const &  t) const
virtual

Est-ce que l'ensemble de type a "exactement" ce type banni-là.

Warning
Cette méthode ne considère pas l'ordre des types de concepts. Préférer donc isBanned() sauf si vous savez ce que vous faites.

Implements cogitant::BannedTypes.

◆ isBanned()

bool cogitant::BannedTypes_Simple::isBanned ( ConceptType::ConjunctiveType const &  t) const
virtual

Recherche.

Contrairement à hasBannedType(), cette méthode utilise l'ordre sur les types de concepts, dans la majorité des cas, c'est donc isBanned() qui soit être utilisée.

Returns
true ssi le type conjonctif passé est interdit.
Warning
Méthode abstraite qui doit être définie dans les sous classes.

Implements cogitant::BannedTypes.

◆ iterator()

Iterator* cogitant::BannedTypes_Simple::iterator ( ) const
virtual

Retourne un iterateur (alloué dynamiquement) permettant de parcourir la structure.

Implements cogitant::BannedTypes.

◆ iteratorGetCurrent()

std::vector<iSet> const& cogitant::BannedTypes_Simple::iteratorGetCurrent ( Iterator const *  it) const
protectedvirtual

Accès à l'élément courant de l'itérateur.

Implements cogitant::BannedTypes.

◆ iteratorNext()

bool cogitant::BannedTypes_Simple::iteratorNext ( Iterator it) const
protectedvirtual

Passage à l'élément suivant de l'itérateur.

Implements cogitant::BannedTypes.

◆ optimize()

void cogitant::BannedTypes_Simple::optimize ( )
virtual

Optimiser.

L'appel à cette méthode provoque un calcul des structures optimisées pour l'accès rapide à l'opération de recherche. Une fois optimisé, l'ensemble ne doit plus être modifié. Cette méthode doit être concrétisée dans les sous classes (éventuellement avec un code vide) et fournir une éventuelle optimisation.

Implements cogitant::BannedTypes.

◆ optimized()

bool cogitant::BannedTypes_Simple::optimized ( ) const
virtual

Optimisation des structures de données.

Si les structures de données sont optimisées, plus aucune modification ne peut être effectuée.

Returns
true ssi la structure de données est optimisée.

Implements cogitant::BannedTypes.

◆ size()

nSet cogitant::BannedTypes_Simple::size ( ) const
virtual

Nombre de types bannis.

Implements cogitant::BannedTypes.