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

Public Types | Public Member Functions | Protected Attributes | List of all members
cogitantcs::OperationCSIO Class Referenceabstract

Classe abstraite de bases de toutes les implantations d'entrées sorties de clients ou serveurs. More...

#include "cogitant/cs/base.h"

Inheritance diagram for cogitantcs::OperationCSIO:
cogitant::OperationBase cogitant::ObservableObject cogitant::CogitantObject cogitantcs::OperationCSIO_HTTP cogitantcs::OperationCSIO_Simple cogitantcs::OperationCSIO_TCP

Public Types

enum  Status { CLOSED, OPENED, LISTENING }
 État de l'opération. More...
 
- 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

 OperationCSIO (bool rh=false)
 Constructeur par défaut. More...
 
virtual ~OperationCSIO ()
 Destructeur. More...
 
void setParamRequiresHeader (bool rh)
 Sortie ou pas d'une entête Content-type. More...
 
Error check ()
 Méthode non utilisée dans cette classe. More...
 
void run ()
 Méthode non utilisée dans cette classe. More...
 
virtual void open ()
 Ouverture d'une connexion client. More...
 
virtual void close ()
 Fermeture d'une connexion client. More...
 
virtual void listen ()
 Démarrage de l'écoute (mode serveur). More...
 
virtual void stop ()
 Arrêt de l'écoute (mode serveur). More...
 
virtual void receive (cogitant::XmlDocument &doc, iSession &ids)=0
 Lecture d'un document XML dans le flux d'échange. More...
 
virtual void send (cogitant::XmlDocument const &doc, iSession ids=0)=0
 Envoi d'un document XML dans le flux d'échange. More...
 
virtual void send (std::list< std::string > const &txt, iSession ids=0)=0
 Envoi de texte dans le flux d'échange. More...
 
virtual Status status () const
 État. 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...
 

Protected Attributes

bool m_requiresheader
 Si true, un entête du type Content-type doit être sorti sur le flux avant chaque send().
 
Status m_status
 État.
 
- 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 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 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...
 

Detailed Description

Classe abstraite de bases de toutes les implantations d'entrées sorties de clients ou serveurs.

Cette classe définit une interface commune à toutes les classes fournissant les opérations d'entrées/sorties (de bas niveau) pour les serveurs ou les clients. L'intérêt de cette classe est qu'une même classe cogitantcs::Server (ou cogitantcs::Client) peut être utilisée dans différents contextes, en utilisant différentes méthodes d'accès (fichiers, flux standards d'entrée et de sortie, TCP, HTTP, etc.). Le principal avantage est de pouvoir définir une sous classe de cogitantcs::Server (ajoutant une gestion de nouvelles opérations, etc.) et pouvoir utiliser ce nouveau serveur avec tous les types d'accès : Il suffit de passer au constructeur de nouveau serveur une instance de la "bonne" sous-classe de cogitantcs::OperationCSIO.

Member Enumeration Documentation

◆ Status

État de l'opération.

Enumerator
CLOSED 

L'opération ne peut être utilisée pour envoyer/lire.

OPENED 

L'opération est utilisée en mode client.

LISTENING 

L'opération est utilisée en mode serveur.

Constructor & Destructor Documentation

◆ OperationCSIO()

cogitantcs::OperationCSIO::OperationCSIO ( bool  rh = false)

Constructeur par défaut.

◆ ~OperationCSIO()

virtual cogitantcs::OperationCSIO::~OperationCSIO ( )
virtual

Destructeur.

Member Function Documentation

◆ check()

Error cogitantcs::OperationCSIO::check ( )
virtual

Méthode non utilisée dans cette classe.

Implements cogitant::OperationBase.

◆ close()

virtual void cogitantcs::OperationCSIO::close ( )
virtual

Fermeture d'une connexion client.

Par défaut, cette méthode ne fait rien, mais elle peut être redéfinie dans les sous classes pour fermer réellement une connexion selon le type de connexion.

Reimplemented in cogitantcs::OperationCSIO_TCP.

◆ listen()

virtual void cogitantcs::OperationCSIO::listen ( )
virtual

Démarrage de l'écoute (mode serveur).

Par défaut, cette méthode ne fait rien, mais elle peut être redéfinie dans les sous classes.

Reimplemented in cogitantcs::OperationCSIO_HTTP, and cogitantcs::OperationCSIO_TCP.

◆ open()

virtual void cogitantcs::OperationCSIO::open ( )
virtual

Ouverture d'une connexion client.

Par défaut, cette méthode ne fait rien, mais elle peut être redéfinie dans les sous classes pour ouvrir réellement une connexion selon le type de connexion.

Reimplemented in cogitantcs::OperationCSIO_TCP.

◆ receive()

virtual void cogitantcs::OperationCSIO::receive ( cogitant::XmlDocument doc,
iSession ids 
)
pure virtual

Lecture d'un document XML dans le flux d'échange.

Parameters
doc(R) document lu.
ids(R) un identificateur représentant l'origine du document lu. Côté client, ce paramètre n'a aucun intérêt, côté serveur "mono-connexion", non plus. Par contre, dans le cas d'un serveur pouvant gérer plusieurs connexions simultanées, ce paramètre contient en retour l'identificateur de la connexion à l'origine du document XML recu.

Implemented in cogitantcs::OperationCSIO_Simple, cogitantcs::OperationCSIO_HTTP, and cogitantcs::OperationCSIO_TCP.

◆ run()

void cogitantcs::OperationCSIO::run ( )
virtual

Méthode non utilisée dans cette classe.

Implements cogitant::OperationBase.

◆ send() [1/2]

virtual void cogitantcs::OperationCSIO::send ( cogitant::XmlDocument const &  doc,
iSession  ids = 0 
)
pure virtual

Envoi d'un document XML dans le flux d'échange.

Parameters
docdocument à envoyer.
idsidentificateur de la session dans le cas d'un serveur multi-connexion. Ce paramètre n'est pas utilisé chez le client, ni dans le cas d'un serveur gérant une seule connexion.

Implemented in cogitantcs::OperationCSIO_Simple, cogitantcs::OperationCSIO_HTTP, and cogitantcs::OperationCSIO_TCP.

◆ send() [2/2]

virtual void cogitantcs::OperationCSIO::send ( std::list< std::string > const &  txt,
iSession  ids = 0 
)
pure virtual

Envoi de texte dans le flux d'échange.

Parameters
txttexte à envoyer.
idsidentificateur de la session dans le cas d'un serveur multi-connexion. Ce paramètre n'est pas utilisé chez le client, ni dans le cas d'un serveur gérant une seule connexion.

Implemented in cogitantcs::OperationCSIO_Simple, cogitantcs::OperationCSIO_HTTP, and cogitantcs::OperationCSIO_TCP.

◆ setParamRequiresHeader()

void cogitantcs::OperationCSIO::setParamRequiresHeader ( bool  rh)

Sortie ou pas d'une entête Content-type.

◆ status()

virtual Status cogitantcs::OperationCSIO::status ( ) const
virtual

État.

◆ stop()

virtual void cogitantcs::OperationCSIO::stop ( )
virtual

Arrêt de l'écoute (mode serveur).

Par défaut, cette méthode ne fait rien, mais elle peut être redéfinie dans les sous classes.

Reimplemented in cogitantcs::OperationCSIO_HTTP, and cogitantcs::OperationCSIO_TCP.