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

Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
cogitant::OperationOutput Class Referenceabstract

Opération d'écriture d'objets dans un flux. More...

#include "cogitant/io.h"

Inheritance diagram for cogitant::OperationOutput:
cogitant::OperationIO cogitant::Operation cogitant::OperationBase cogitant::ObservableObject cogitant::CogitantObject cogitant::OperationBCGCTOutput cogitant::OperationCGIFOutput cogitant::OperationCoGXMLOutput cogitant::OperationLinearOutput cogitant::OperationRdfsOutput cogitantdisplay::OperationFIGOutput

Public Types

typedef unsigned char SupportOutput
 Configuration de la sortie du support;.
 
- Public Types inherited from cogitant::OperationBase
typedef unsigned int Error
 Résultat de la vérification des arguments d'une opération. More...
 

Public Member Functions

Error check ()
 Vérification des paramètres. More...
 
void run ()
 Lancement de l'opération. More...
 
std::string streamName () const
 Nom du flux. More...
 
Constructeurs - destructeur.
 OperationOutput (Environment *env)
 Constructeur. More...
 
 ~OperationOutput ()
 Destructeur. More...
 
Entrée des paramètres.
void setParamStream (std::ostream *stream, std::string const &sn="")
 Flux d'entrée. More...
 
void setParamWriteSupport (bool support)
 Ecriture du support (complet) dans le flux ou pas. More...
 
void setParamSupportOutput (SupportOutput s)
 Ecriture d'une partie du support dans le flux. More...
 
SupportOutput supportOutput () const
 
void setParamEnvironmentIds (std::vector< iSet > const *environmentids)
 
void setParamObjects (Set< EnvironmentObject * > const *graphs)
 
void setParamEncoding (Encoding::Type enc=Encoding::DEFAULT)
 Choix de l'encodage du flux de sortie. More...
 
void setParamIndividuals (std::vector< iSet > const &ind)
 Choix des marqueurs individuels à sortir. More...
 
- Public Member Functions inherited from cogitant::OperationIO
virtual bool binaryFile () const
 Les fichiers gérés par cette opération doivent-ils être ouverts en mode binaire. More...
 
 OperationIO (Environment *env)
 Constructeur. More...
 
 ~OperationIO ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::Operation
Environmentenvironment () 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...
 
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...
 

Static Public Attributes

static const SupportOutput SO_NONE
 Aucune sortie du support.
 
static const SupportOutput SO_CTYPES
 Sortie de l'ensemble des types de concepts.
 
static const SupportOutput SO_RTYPES
 Sortie de l'ensemble des types de relations.
 
static const SupportOutput SO_NTYPES
 Sortie de l'ensemble des types d'emboîtements.
 
static const SupportOutput SO_INDIVIDUALS
 Sortie de l'ensemble des marqueurs individuels.
 
static const SupportOutput SO_BANNEDTYPES
 Sortie de l'ensemble des types bannis.
 
static const SupportOutput SO_ALL
 Sortie de la totalité du support.
 
- 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

virtual void writeSupport ()=0
 Écriture du support. More...
 
virtual void writeObject (EnvironmentObject const *g, iSet idgraph)
 Écriture d'un objet de l'environnement (graphe ou règle). More...
 
virtual bool writeProperties (CogitantObject const *o, bool writebegin=true)
 Écriture des propriétés de l'objet. More...
 
virtual bool writableProperty (Property const &p, iSet sub)
 Écriture de la propriété de façon standard ou pas. More...
 
virtual void writePropertiesBegin (CogitantObject const *o)
 Écriture de l'entête des propriétés de o. More...
 
virtual void writePropertiesEnd (CogitantObject const *o)
 Écriture de la fin des propriétés de o. More...
 
virtual bool writePropertiesSeparator (PropertySet const *o, iSet i, iSet sub)
 Écriture d'un séparateur entre les propriétés de o. More...
 
virtual void writePropertiesSeparatorConst ()
 Écriture d'un séparateur entre propriétés. More...
 
virtual void writePropertiesType (PropertySet const *o, iSet i, iSet sub=ISET_NULL)
 Écriture du type de la propriété. More...
 
virtual void writePropertiesValue (PropertySet const *o, iSet i)
 Écriture du type de la propriété. More...
 
virtual void writeBegin ()
 Écriture du prologue de la sortie. More...
 
virtual void writeEnd ()
 Écriture de la fin de sortie. More...
 
virtual bool isSeparator (wchar_t c)
 Le caractère est-il un séparateur dans le format. More...
 
void writeTabs ()
 Écriture du retrait (tabulations). More...
 
void tabsInc ()
 Ajout d'une tabulation. More...
 
void tabsDec ()
 Retrait d'une tabulation. More...
 
virtual void writeAsIs (unsigned char c)
 Écriture d'un caractère dans le flux de sortie. More...
 
virtual void writeAsIs (std::string const &s)
 Écriture d'une chaîne dans le flux de sortie. More...
 
virtual void writeString (std::string const &s, bool ident=false)
 Écriture d'une chaîne autre qu'un mot clef du format de sortie. More...
 
virtual void writeStringEscape (std::string const &s)
 Écriture d'une chaîne autre avec des caractères d'échappement. More...
 
virtual bool writeStringEscapeSpecial (wchar_t c)
 Caractère spécial qui doit être préfixé d'un caractère d'échappement. More...
 
virtual void writeCR ()
 Écriture d'un passage à la ligne dans le flux de sortie. More...
 
- Protected Member Functions inherited from cogitant::OperationIO
virtual Property::Type stringToPropertyType (std::string const &s, iSet *sub=NULL, std::string *nomprop=NULL) const
 Type de propriété représenté par une chaîne. More...
 
virtual std::string propertyTypeToString (Property::Type p, iSet sub=ISET_NULL) const
 Chaîne de caractères représentant une propriété. More...
 
void throwExceptionIO (std::string const &what, unsigned int code=0, unsigned int line=0)
 Levée d'une exception de type ExceptionIO. 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 ObserverSetallocObservers () 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...
 
ObserverSetobservers ()
 Accès à l'ensemble des observateurs. 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

std::ostream * i_stream
 Flux d'écriture.
 
std::string i_streamname
 Nom du flux de sortie.
 
SupportOutput i_support
 Écriture du support true ou seulement d'objets false.
 
std::vector< iSet > const * i_environmentids
 Contient en entrée les identificateurs (dans l'environnement) des objets à écrire. More...
 
Set< EnvironmentObject * > const * i_objects
 Contient en entrée des pointeurs vers les objets à écrire. More...
 
Encoding::Type i_encoding
 Encodage de la sortie. More...
 
std::vector< iSeti_individuals
 Contient en entrée les identificateurs des marqueurs individuels à écrire. More...
 
unsigned int m_tabs
 Nombre de retraits (tabulations) pour la ligne en cours.
 
- Protected Attributes inherited from cogitant::OperationBase
bool m_stop
 Arrêt de l'exécution de l'opération demandé. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from cogitant::OperationIO
static Property::Type stringToPropertyTypeDefault (const std::string &s)
 Type de propriété représenté par une chaîne (nom de stockage) Cette méthode (de classe) permet la correspondance entre types et chaînes pour les propriétés standard. More...
 
static std::string propertyTypeToStringDefault (Property::Type p)
 Chaîne de caractères (nom de stockage) représentant une propriété. More...
 
- Static Protected Attributes inherited from cogitant::OperationIO
static const char * c_standardproperties_label []
 
static const Property::Type c_standardproperties_id []
 

Detailed Description

Opération d'écriture d'objets dans un flux.

Cette classe abstraite fournit les méthodes pour l'écriture d'un support et d'EnvironmentObject dans un flux. Pour chacun des formats de sortie, un sous classe concrète doit être créée et implémenter l'écriture à ce format.

Constructor & Destructor Documentation

cogitant::OperationOutput::OperationOutput ( Environment env)

Constructeur.

cogitant::OperationOutput::~OperationOutput ( )

Destructeur.

Member Function Documentation

Error cogitant::OperationOutput::check ( )
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.

Reimplemented in cogitant::OperationLinearOutput.

virtual bool cogitant::OperationOutput::isSeparator ( wchar_t  c)
protectedvirtual

Le caractère est-il un séparateur dans le format.

Quand une chaîne de caractères est écrite, si elle contient des séparateurs, elle est écrite de façon spéciale (entre guillemets en BCGCT) Si cette méthode n'est pas redéfinie dans les sous classes, les caractères séparateurs sont les caractères blancs et les caractères spéciaux de BCGCT.

See also
OperationOutput::writeString().
void cogitant::OperationOutput::run ( )
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.

Reimplemented in cogitantdisplay::OperationFIGOutput.

void cogitant::OperationOutput::setParamEncoding ( Encoding::Type  enc = Encoding::DEFAULT)

Choix de l'encodage du flux de sortie.

Pour l'instant, seuls les encodages Encoding::LATIN9 et Encoding::UTF8 sont supportés.

void cogitant::OperationOutput::setParamIndividuals ( std::vector< iSet > const &  ind)

Choix des marqueurs individuels à sortir.

Parameters
indsi le vecteur est vide, sort la totalité des marqueurs individuels du support. Dans le cas contraire, sort uniquement les marqueurs individuels dont l'identifiant figure dans le vector.
void cogitant::OperationOutput::setParamStream ( std::ostream *  stream,
std::string const &  sn = "" 
)

Flux d'entrée.

Parameters
streampointeur sur le flux d'entrée.
snnom du flux d'entrée. Ce paramètre est optionnel mais il peut être utile de le renseigner car sa valeur est utilisée pour les exceptions levées lors de l'exécution de run().
void cogitant::OperationOutput::setParamSupportOutput ( SupportOutput  s)

Ecriture d'une partie du support dans le flux.

Warning
L'appel à cette méthode réinitialise les marqueurs individuels devant être écrits : après appel à cette méthode, une écriture de support sortira tous les marqueurs individuels. (cf. setParamIndividuals())
Parameters
sCombinaison de symboles de type SupportOutput définissant les éléments du support qui sont stockés dans le flux.
void cogitant::OperationOutput::setParamWriteSupport ( bool  support)

Ecriture du support (complet) dans le flux ou pas.

Parameters
supportsi true sort la totalité du support (équivalent à setParamSupportOutput(SO_ALL)), si false ne sort pas le support (équivalent à setParamSupportOutput(SO_NONE)).
std::string cogitant::OperationOutput::streamName ( ) const
virtual

Nom du flux.

Cette méthode peut être redéfinie dans les sous-classes et doit retourner le nom du flux lu ou écrit. Habituellement, il s'agit du nom du fichier. Par défaut, elle retourne une chaîne vide.

Reimplemented from cogitant::OperationIO.

void cogitant::OperationOutput::tabsDec ( )
protected

Retrait d'une tabulation.

void cogitant::OperationOutput::tabsInc ( )
protected

Ajout d'une tabulation.

virtual bool cogitant::OperationOutput::writableProperty ( Property const &  p,
iSet  sub 
)
protectedvirtual

Écriture de la propriété de façon standard ou pas.

Reimplemented in cogitant::OperationCoGXMLOutput.

virtual void cogitant::OperationOutput::writeAsIs ( unsigned char  c)
protectedvirtual

Écriture d'un caractère dans le flux de sortie.

Warning
N'effectue pas de conversion de format d'encodage, à réserver, donc pour la sortie de caractères ascii, ou redéfinir dans les sous-classes.
virtual void cogitant::OperationOutput::writeAsIs ( std::string const &  s)
protectedvirtual

Écriture d'une chaîne dans le flux de sortie.

Parameters
sLa chaîne est considérée comme étant au format d'encodage par défaut de l'application (Encoding::defaultEncoding()). Elle est éventuellement traduite dans le format d'encodage du flux.
virtual void cogitant::OperationOutput::writeBegin ( )
protectedvirtual

Écriture du prologue de la sortie.

Cette méthode est appelée avant tout écriture. Si cette méthode n'est pas redéfinie dans la sous classe, aucune opération particulière n'est effectuée pour le prologue de l'écriture.

Reimplemented in cogitant::OperationRdfsOutput, cogitant::OperationCGIFOutput, cogitant::OperationCoGXMLOutput, and cogitant::OperationBCGCTOutput.

virtual void cogitant::OperationOutput::writeCR ( )
protectedvirtual

Écriture d'un passage à la ligne dans le flux de sortie.

virtual void cogitant::OperationOutput::writeEnd ( )
protectedvirtual

Écriture de la fin de sortie.

Cette méthode est appelée après l'écriture. Si cette méthode n'est pas redéfinie dans la sous classe, aucune opération particulière n'est effectuée pour la fin de l'écriture.

Reimplemented in cogitant::OperationRdfsOutput, cogitant::OperationCoGXMLOutput, and cogitant::OperationBCGCTOutput.

virtual void cogitant::OperationOutput::writeObject ( EnvironmentObject const *  g,
iSet  idgraph 
)
protectedvirtual

Écriture d'un objet de l'environnement (graphe ou règle).

Cette méthode doit être redéfinie dans les sous classes concrètes.

Parameters
gl'objet à écrire.
idgraphidentifiant dans l'environnement de l'objet à écrire ou ISET_NULL si l'objet à écrire n'est pas dans l'environnement.

Reimplemented in cogitant::OperationRdfsOutput, cogitant::OperationCGIFOutput, cogitant::OperationCoGXMLOutput, cogitant::OperationLinearOutput, and cogitant::OperationBCGCTOutput.

virtual bool cogitant::OperationOutput::writeProperties ( CogitantObject const *  o,
bool  writebegin = true 
)
protectedvirtual

Écriture des propriétés de l'objet.

Cette méthode n'écrit que les propriétés pour lesquelles writableProperty() retourne true, les autres propriétés étant écrites de façon particulière dans le format de sortie. Les méthodes writePropertiesxxx() de cette classe correspondent à une écriture des propriétés au format BCGCT. Une telle sortie étant toutefois "standard", il peut être intéressant d'utiliser telle quelle (on en redéfinissant certaines méthodes) cette fonctionnalité.

Returns
true si quelque chose a été écrit et false sinon.
virtual void cogitant::OperationOutput::writePropertiesBegin ( CogitantObject const *  o)
protectedvirtual

Écriture de l'entête des propriétés de o.

Reimplemented in cogitant::OperationCoGXMLOutput.

virtual void cogitant::OperationOutput::writePropertiesEnd ( CogitantObject const *  o)
protectedvirtual

Écriture de la fin des propriétés de o.

Reimplemented in cogitant::OperationCoGXMLOutput.

virtual bool cogitant::OperationOutput::writePropertiesSeparator ( PropertySet const *  o,
iSet  i,
iSet  sub 
)
protectedvirtual

Écriture d'un séparateur entre les propriétés de o.

Cette méthode teste si un séparateur doit effectivement être écrit (c'est à dire, si il reste encore au moins un propriété à écrire), et si c'est le cas, elle écrit le séparateur en appelant writePropertiesSeparator().

Parameters
oensemble de propriétés dont l'écriture demande la sortie d'un séparateur.
iest l'identificateur dans o de la propriété venant d'être écrite.
subest l'identificateur de sous-ensemble de propriétés de o.
Returns
true si un séparateur a été écrit et false sinon.
virtual void cogitant::OperationOutput::writePropertiesSeparatorConst ( )
protectedvirtual

Écriture d'un séparateur entre propriétés.

Reimplemented in cogitant::OperationCoGXMLOutput.

virtual void cogitant::OperationOutput::writePropertiesType ( PropertySet const *  o,
iSet  i,
iSet  sub = ISET_NULL 
)
protectedvirtual

Écriture du type de la propriété.

Un éventuel séparateur type - valeur (: en BCGCT) est aussi écrit dans cette méthode.

Parameters
oensemble de propriétés.
subidentificateur du sous-ensemble de propriétés.
iest l'identificateur dans o de la propriété à écrire.

Reimplemented in cogitant::OperationCoGXMLOutput.

virtual void cogitant::OperationOutput::writePropertiesValue ( PropertySet const *  o,
iSet  i 
)
protectedvirtual

Écriture du type de la propriété.

Un éventuel séparateur entre couples type - valeur (; en BCGCT) ne doit pas être écrit dans cette méthode mais dans writePropertiesSeparator(). Pour la sortie BCGCT le une valeur de type Property::VT_VECTORISET est considérée comme un tableau d'identificateurs de types de concepts.

Parameters
oensemble de propriétés dont le type d'une propriété doit être écrit.
iest l'identificateur dans o de la propriété à écrire.
Precondition
la propriété doit pouvoir être écrite.

Reimplemented in cogitant::OperationCoGXMLOutput, and cogitant::OperationBCGCTOutput.

virtual void cogitant::OperationOutput::writeString ( std::string const &  s,
bool  ident = false 
)
protectedvirtual

Écriture d'une chaîne autre qu'un mot clef du format de sortie.

Les mots clefs sont sortis "tels quels" (writeAsIs()) mais il peut être nécessaire pour les chaînes (intitulés des types, commentaires, propriétés diverses, etc.) de les faire transiter par cette méthode qui sort des caractères d'échappement, entoure la chaîne de guillemets, etc. Si la méthode n'est pas redéfinie dans la sous-classe, la chaîne s est sortie entre guillemets si elle contient des caractères spéciaux. Si ident vaut true, la chaîne s est considérée comme un identificateur, dans ce cas, elle peut être sortie différemment selon le format (en BCGCT, un identificateur commençant par un chiffre est sorti entre guillemets).

Reimplemented in cogitant::OperationCGIFOutput, cogitant::OperationCoGXMLOutput, and cogitant::OperationBCGCTOutput.

virtual void cogitant::OperationOutput::writeStringEscape ( std::string const &  s)
protectedvirtual

Écriture d'une chaîne autre avec des caractères d'échappement.

Les caractères contenus dans la chaîne retournée writeStringEscapeSpecials() sont précédés d'un \

virtual bool cogitant::OperationOutput::writeStringEscapeSpecial ( wchar_t  c)
protectedvirtual

Caractère spécial qui doit être préfixé d'un caractère d'échappement.

Returns
true ssi c est un caractère spécial à préfixer par un caractère d'échappement (par défaut, aucun caractère n'est spécial) .

Reimplemented in cogitant::OperationBCGCTOutput.

virtual void cogitant::OperationOutput::writeSupport ( )
protectedpure virtual

Écriture du support.

Cette méthode doit être concrétisée dans les sous classes concrètes.

Implemented in cogitantdisplay::OperationFIGOutput, cogitant::OperationRdfsOutput, cogitant::OperationCGIFOutput, cogitant::OperationCoGXMLOutput, cogitant::OperationLinearOutput, and cogitant::OperationBCGCTOutput.

void cogitant::OperationOutput::writeTabs ( )
protected

Écriture du retrait (tabulations).

Member Data Documentation

Encoding::Type cogitant::OperationOutput::i_encoding
protected

Encodage de la sortie.

std::vector<iSet> const* cogitant::OperationOutput::i_environmentids
protected

Contient en entrée les identificateurs (dans l'environnement) des objets à écrire.

(NULL si aucun objet ne doit être écrit).

std::vector<iSet> cogitant::OperationOutput::i_individuals
protected

Contient en entrée les identificateurs des marqueurs individuels à écrire.

Si cet ensemble est vide, l'opération écrira tous les marqueurs individuels, dans le cas contraire, elle n'écrira que les marqueurs individuels présents dans cet attribut.

Set<EnvironmentObject*> const* cogitant::OperationOutput::i_objects
protected

Contient en entrée des pointeurs vers les objets à écrire.

(NULL si aucun EnvironmentObject ne doit être écrit).