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

Classes | Namespaces | Macros | Functions
common.h File Reference

Fonctions, macros et types communs à la plate-forme. More...

#include <string>
#include <vector>
#include <assert.h>
#include "cogitant/version.h"

Classes

class  cogitant::Log
 Gestion du journal d'erreur. More...
 

Namespaces

 cogitant
 Espace de nom de toutes les classes et types de la plate-forme.
 

Macros

#define CGTDLLEXPORT
 Construction ou utilisation de CoGITaNT (classes de base) comme DLL sous MS Windows.
 
#define CGTDLLEXPORT_CS
 Construction ou utilisation de CoGITaNT (classes client/serveur) comme DLL sous MS Windows.
 
#define CGTDLLEXPORT_DP
 Construction ou utilisation de CoGITaNT (classes d'affichage) comme DLL sous MS Windows.
 
#define CGTDLLEXPORT_CS_CCXX
 Construction ou utilisation de CoGITaNT (classes d'interfacage avec Common C++) comme DLL sous MS Windows.
 
#define CGTDLLEXPORT_DP_JAVA
 Construction ou utilisation de CoGITaNT (classes d'affichage avec l'API Java) comme DLL sous MS Windows.
 
#define CGTDLLEXPORT_DP_WX
 Construction ou utilisation de CoGITaNT (classes d'affichage avec wxWidgets) comme DLL sous MS Windows.
 
#define CGTDLLEXPORT_DP_FOX
 Construction ou utilisation de CoGITaNT (classes d'affichage avec Fox toolkit) comme DLL sous MS Windows.
 
#define ASSERT_MODE   2
 Type de gestion des assertions. More...
 
#define cogitantAssert(cond, typ, cla, sub, mes)
 Vérification d'une assertion. More...
 
#define cogitantAssertSimple(cond, typ)
 Vérification d'une assertion. More...
 
#define CGA_SET_DOUBLEADD   0
 Tentative d'ajouter plusieurs fois la même propriété à un cogitant::Set (cogitant::ExceptionAlreadyPresent).
 
#define CGA_SET_ISET   0
 Identificateurs incorrects passés aux méthodes de cogitant::Set (cogitant::ExceptionISetOutOfBounds).
 
#define CGA_PARTIALORDER_ISET   2
 Identificateurs incorrects passés aux méthodes de cogitant::PartialOrder (cogitant::ExceptionISetOutOfBounds).
 
#define CGA_PARTIALORDER_READONLY   2
 Tentative de modifier un cogitant::PartialOrder en lecture seule (cogitant::ExceptionReadOnlyObject).
 
#define CGA_PARTIALORDER_SETUNSET   2
 Tentative d'ajouter ou retirer plusieurs fois A>B dans un cogitant::PartialOrder (cogitant::ExceptionAlreadyPresent).
 
#define CGA_BANNEDTYPES_READONLY   2
 Tentative de modifier un cogitant::BannedTypes en lecture seule (cogitant::ExceptionReadOnlyObject)
 
#define CGA_BANNEDTYPES_DOUBLEADD   2
 Tentative d'ajouter plusieurs fois le même type conjonctif à un cogitant::BannedTypes (cogitant::ExceptionAlreadyPresent)
 
#define CGA_BANNEDTYPES_OUTOFBOUNDS   2
 Tentative d'accès à l'élément courant d'un cogitant::BannedTypes alors qu'il n'est pas défini (cogitant::ExceptionISetOutOfBounds)
 
#define CGA_PROPERTY_VALUETYPE   2
 Valeur de propriété d'un autre type (cogitant::ExceptionIncorrectType).
 
#define CGA_PROPERTYSET_DOUBLEADD   2
 Tentative d'ajouter plusieurs fois la même propriété à un cogitant::PropertySet (cogitant::ExceptionAlreadyPresent).
 
#define CGA_PROPERTYSET_ISET   0
 Identificateurs incorrects passés aux méthodes de cogitant::PropertySet (cogitant::ExceptionISetOutOfBounds).
 
#define CGA_GRAPHOBJECT_TYPE   2
 Vérification du type réel du cogitant::GraphObject lors de l'appel des méthodes cogitant::GraphObject::asConcept(), ... (cogitant::ExceptionIncorrectType).
 
#define CGA_ENVIRONMENTOBJECT_TYPE   2
 Vérification du type réel du cogitant::EnvironmentObject lors de l'appel des méthodes cogitant::EnvironmentObject::asGraph(), ... (cogitant::ExceptionIncorrectType).
 
#define CGA_GRAPH_STRUCTURE   2
 Vérification de la structure du graphe (relations parent/fils) (cogitant::ExceptionStructure)
 
#define CGA_GRAPH_COREFERENCE   2
 Vérification du respect de construction d'une classe de coréférence (tous les sommets concepts doivent être génériques et de même type) (cogitant::ExceptionStructure)
 
#define CGA_GRAPH_UNKNOWNNAME   2
 Vérification de l'existence des types/MI passés par nom (cogitant::ExceptionUnknownName)
 
#define CGA_RULE_STRUCTURE   2
 Vérification de la structure d'une règle (points d'attache) (cogitant::ExceptionStructure)
 
#define CGA_OPERATION_CHECK   2
 Vérification des pré-conditions d'une opération avant le lancement (cogitant::ExceptionOperationCheck)
 
#define CGA_XMLSTRUCTURE   2
 Vérifications de la structure d'un document XML.
 
#define CGA_OBSERVER   2
 Vérifications dans l'usage des observateurs (cogitant::ExceptionObserver).
 
#define CGA_MISC   2
 Diverses vérifications.
 
#define LOG_MODE   0
 Affichage des informations (log). More...
 
#define cogitantDisplayLog(msg, lev, cat)   cogitant::Log::add(msg, lev, cat, __FILE__, __LINE__)
 Affichage d'un message de contrôle sur la sortie d'erreur. More...
 
#define cogitantError(msg)   {cogitant::Log::add(msg, cogitant::Log::FATALERROR, cogitant::Log::UNKNOWN, __FILE__, __LINE__); assert(false);}
 Erreur grave ne permettant pas de continuer l'exécution de l'application. More...
 
#define cogitantLog(m, l, c)   {}
 Affichage d'un message de contrôle (log). More...
 
#define _NO_RETURN_PRE
 Déclarations de méthodes sans retour. More...
 
#define _NO_RETURN_POST
 Déclarations de méthodes sans retour. More...
 
#define __UNUSED
 Force l'utilisation d'une constante même si elle n'est pas réellement utilisée. More...
 

Functions

std::string cogitant::intToStr (long i)
 L'indispensable fonction de conversion d'un entier en chaîne. More...
 
long cogitant::strToInt (std::string const &s)
 Et la non moins indispensable conversion de chaîne en entier. More...
 
long cogitant::strToBoolInt (std::string const &s)
 Convertit la chaine en entier représentant un booléen, les valeurs autorisées sont t, true, 1, f, false, 0. More...
 
std::string cogitant::floatToStr (double i)
 Conversion d'un double en string. More...
 
double cogitant::strToFloat (std::string const &s)
 Conversion d'un string en double. More...
 
bool cogitant::isInteger (std::string const &s)
 Est-ce que la chaîne représente un entier (sous forme décimale). More...
 
bool cogitant::isFloat (std::string const &s)
 Est-ce que la chaîne représente un réel. More...
 
bool cogitant::isBool (std::string const &s)
 Est-ce que la chaîne représente un booléen. More...
 

Detailed Description

Fonctions, macros et types communs à la plate-forme.

Author
David Genest.

Macro Definition Documentation

◆ __UNUSED

#define __UNUSED

Force l'utilisation d'une constante même si elle n'est pas réellement utilisée.

Permet d'éviter un warning de G++ 5 sur des constantes non utilisées.

◆ _NO_RETURN_POST

#define _NO_RETURN_POST

Déclarations de méthodes sans retour.

◆ _NO_RETURN_PRE

#define _NO_RETURN_PRE

Déclarations de méthodes sans retour.

◆ ASSERT_MODE

#define ASSERT_MODE   2

Type de gestion des assertions.

  • 0 : aucune assertion n'est vérifiée.
  • 1 : les assertions sont vérifiées selon la valeur de CGA_xxx.
    • si CGA_xxx vaut 0, l'assertion correspondante n'est pas vérifiée,
    • si CGA_xxx vaut 1, l'assertion correspondante provoque une sortie en cas d'erreur (assert),
    • si CGA_xxx vaut 2, l'assertion correspondante provoque une exception.
    Quand ASSERT_MODE vaut 1, certaines assertions provoquent toujours une sortie en cas d'erreur et d'autres toujours une exception quelle que soit la valeur de CGA_xxx.
See also
Behaviour configuration in case of error

◆ cogitantAssert

#define cogitantAssert (   cond,
  typ,
  cla,
  sub,
  mes 
)
Value:
{ if (typ != 0)\
if (!(cond))\
throw cla(sub, mes);\
}

Vérification d'une assertion.

◆ cogitantAssertSimple

#define cogitantAssertSimple (   cond,
  typ 
)
Value:
{ if (typ != 0)\
assert(cond);\
}

Vérification d'une assertion.

Referenced by cogitant::IStream::Lexeme::setType(), cogitant::IStream::Lexeme::specialChar(), and cogitant::IStream::Lexeme::string().

◆ cogitantDisplayLog

#define cogitantDisplayLog (   msg,
  lev,
  cat 
)    cogitant::Log::add(msg, lev, cat, __FILE__, __LINE__)

Affichage d'un message de contrôle sur la sortie d'erreur.

◆ cogitantError

#define cogitantError (   msg)    {cogitant::Log::add(msg, cogitant::Log::FATALERROR, cogitant::Log::UNKNOWN, __FILE__, __LINE__); assert(false);}

Erreur grave ne permettant pas de continuer l'exécution de l'application.

Le message est affiché dans le log (cerr par défaut), et l'application se termine avec un assert(false).

◆ cogitantLog

#define cogitantLog (   m,
  l,
 
)    {}

Affichage d'un message de contrôle (log).

◆ LOG_MODE

#define LOG_MODE   0

Affichage des informations (log).

  • 0 : aucun affichage de log n'est fait.
  • 1 : les informations correspondant aux types sélectionnés (voir Log) sont affichés.
  • 2 : tous les logs sont affichés.