Classe abstraite de bases de toutes les implantations d'entrées sorties de clients ou serveurs. More...
#include "cogitant/cs/base.h"
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... | |
PropertySet * | properties () |
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... | |
CogitantObject & | operator= (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 ObserverSet * | allocObservers () 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... | |
ObserverSet & | observers () |
Accès à l'ensemble des observateurs. More... | |
Protected Member Functions inherited from cogitant::CogitantObject | |
virtual PropertySet * | allocProperties () const |
Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More... | |
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.
cogitantcs::OperationCSIO::OperationCSIO | ( | bool | rh = false | ) |
Constructeur par défaut.
|
virtual |
Destructeur.
|
virtual |
Méthode non utilisée dans cette classe.
Implements cogitant::OperationBase.
|
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.
|
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.
|
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.
|
pure virtual |
Lecture d'un document XML dans le flux d'échange.
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.
|
virtual |
Méthode non utilisée dans cette classe.
Implements cogitant::OperationBase.
|
pure virtual |
Envoi d'un document XML dans le flux d'échange.
doc | document à envoyer. |
ids | identificateur 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.
|
pure virtual |
Envoi de texte dans le flux d'échange.
txt | texte à envoyer. |
ids | identificateur 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.
void cogitantcs::OperationCSIO::setParamRequiresHeader | ( | bool | rh | ) |
Sortie ou pas d'une entête Content-type
.
|
virtual |
État.
|
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.