UpsPls.FileDAttente

Définition

/***************************************************************/
Type FileDAttente Implemente Public : IIterateur(Nul Ou Travail) Defaut Final TailleSegment 2
/* Objet : Type des objets correspondant aux files d'attente. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public : Prive : /*-------------------------------------------------------------*/
/* Heritage des methodes d'IIterateur. */
/*-------------------------------------------------------------*/
Public :
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Prive : Fin Type

Le type FileDAttente modélise une file d'attente de travaux à exécuter ou exécutés.

Le type FileDAttente ne possède pas de constructeur implicite ni de constructeur explicite.

Les objets de type FileDAttente sont créés automatiquement lors du chargement des modules comportant définition des files d'attente.

Chaque objet du type FileDAttente possède des moteurs d'itérations permettant de parcourir les travaux planifiés. Les itérateurs sont numérotés de 0 à n, 0 étant l'itérateur implicite qui n'a pas besoin d'être alloué par l'appel à AllouerIterateur. Chaque itérateur alloué, une fois utilisé, doit être libéré par l'appel LibererIterateur.

Opérateurs

Le type FileDAttente possède les opérateurs standards suivant :

Exemple

Pour un exemple complet, merci de se référer à Files d'attentes et travaux.

Variable
/******/


FileDAttente
/**********/

/****************************************************************/
Procedure P(A : Entier Entree Sortie)
/* Objet : Procedure quelconque. */
/****************************************************************/
Debut
Ecran.Ecrire("P="+Caractere(A));
Fin Procedure

Principal
Debut
E=10;
MonTravail=P(E)||MaFile;
/* Mise en file de l'appel de 'P' dans la file 'MaFile'. Le travail est 'MonTravail'. */
MonTravail.PlanifierAuPlusTard(DateSysteme()+10);
/* Le travail est à déclencher dans au plus 10 secondes. */
Ecran.Ecrire(MaFile.NbTachesServeur);
Ecran.Ecrire(MaFile.NbTravauxEnAttente());
TantQue (MonTravail.Etat!=TravailTermine) Et (MonTravail.Etat!=TravailEnErreur) Faire
/* Nous attendons que le travail soit accompli. */ Fin TantQue
Si MonTravail.Etat==TravailEnErreur Alors
/* Il y a eu une erreur. */ Sinon
/* Lit la valeur de sortie correspondant au premier paramètre. */
Fin Si
Fin Principal

Traduction

---------