/***************************************************************/
Type FluxConcatene Implemente Public : IFlux Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Encapsulation du type FluxConcatene. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des propriétés de IFlux. */
/*-------------------------------------------------------------*/
Prive :
ModeOuverture : ModeOuvertureFlux Lecture Public Trace;
NomFlux : Caractere Lecture Public Trace;
FinDeFlux : Booleen Lecture Public;
ModeOptimisation : ModeOptimisationFlux Lecture Public;
EstMultiplexe : Booleen Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes de IFlux. */
/*-------------------------------------------------------------*/
Public :
Constructeur Habilitation ();
Procedure Lire(B : Booleen Sortie);
Fonction Lire(B : Binaire Sortie, Nombre : Nul Ou Entier) Retourner Nul Ou Entier;
Fonction Lire(C : Caractere Sortie, Nombre : Nul Ou Entier) Retourner Nul Ou Entier;
Procedure Lire(E : Entier Sortie);
Procedure Lire(R : Reel Sortie);
Fonction LireUneLigne(C : Caractere Sortie) Retourner Nul Ou Entier;
Fonction LireUnMot(C : Caractere Sortie) Retourner Nul Ou Entier;
Procedure Ecrire(B : Nul Ou Booleen);
Procedure Ecrire(C : Nul Ou Binaire);
Procedure Ecrire(C : Nul Ou Caractere);
Procedure Ecrire(E : Nul Ou Entier);
Procedure Ecrire(R : Nul Ou Reel);
Procedure Fermer();
Fonction Optimiser(Invariant) LirePageDeCode() Retourner PagesDeCodesSupportees;
Procedure ChangerPageDeCode(P : PagesDeCodesSupportees);
Fonction LirePosition() Retourner Entier;
Procedure FixerPosition(Position : Entier, PositionReference : PositionFlux=PositionFluxDebut);
Procedure Vider();
Procedure Tronquer();
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur Habilitation Optimiser(NulAbsorbant) (T : Nul Ou Tableau[?] De Nul Ou IFlux);
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type FluxConcatene possède un constructeur explicite permettant de transformer un tableau de flux T quelconques en un flux concaténés.
L'objectif est d'unifier la lecture dans les flux de la sorte que, lorsque la fin du flux T[N]
est atteinte, la lecture continue de façon transparente sur le flux T[N+1]
.
Tous les flux du tableau T doivent être ouverts en lecture seule et soit tous en mode texte ou soit tous en mode binaire. Sinon l'exception OuvertureLecture est envoyée.
Variable
/******/
FichesPatients : Tableau[2] De Nul Ou IFlux;
FichesPatientsConcatenes : FluxConcatene;
/* 'FichesPatients' est une variable de type flux concaténé. Elle est toujours renseignée. */
FichesProspectsConcatenes : Nul Ou FluxConcatene;
/* 'FichesProspects' est une variable de type flux concaténé. Elle n'est pas toujours renseignee. */
Principal
/*******/
Debut
FichesPatientsConcatene=FluxConcatene(FichesPatients);
...
Si FichesPatientsConcatenes==FichesProspectsConcatenes Alors
/* Egalité entre deux flux concaténés. */
...
Fin Si
Si FichesPatientsConcatenes!=FichesProspectsConcatenes Alors
/* Inégalité entre deux flux concaténés. */
...
Fin Si
Fin Principal
- | - | - | - | - | - | - | - | - |