Définition...
Opérateurs...
Exemple...
Traduction...
/***************************************************************/
Type FileDAttente Implemente Public : IIterateur(Nul Ou Travail) Defaut Final
/* Objet : Type des objets correspondant aux files d'attente. */
/***************************************************************/
Prive :
ModuleOrigine : Nul Ou Module Lecture Public;
NomFile : Caractere Lecture Public;
NbServeurs : Entier Lecture Public;
Public :
/*-------------------------------------------------------------*/
/* Heritage des methodes d'IIterateur. */
/*-------------------------------------------------------------*/
Fonction Optimiser(Invariant) ParcoursAuDebut(NumeroIterateur : Entier=0) Retourner Nul Ou Travail;
Fonction Optimiser(Invariant) ParcoursALaFin(NumeroIterateur : Entier=0) Retourner Nul Ou Travail;
Fonction Optimiser(Invariant) ParcoursAuMilieu(Position : Nul Ou Entier, NumeroIterateur : Entier=0) Retourner Nul Ou Travail;
Fonction Suivant(NumeroIterateur : Entier=0) Retourner Nul Ou Travail;
Fonction Precedent(NumeroIterateur : Entier=0) Retourner Nul Ou Travail;
Fonction Optimiser(Invariant) PremierElement() Retourner Nul Ou Travail;
Fonction Optimiser(Invariant) DernierElement() Retourner Nul Ou Travail;
Fonction NumeroElement(NumeroIterateur : Entier=0) Retourner Nul Ou Entier;
Fonction Element(NumeroIterateur : Entier=0) Retourner Nul Ou Travail;
Fonction AllouerIterateur() Retourner Entier;
Procedure LibererIterateur(NumeroIterateur : Entier);
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Fonction NbTravaux() Retourner Entier;
Fonction DatePremierTravailPlanifie() Retourner Nul Ou Date;
Fonction DateDernierTravailPlanifie() Retourner Nul Ou Date;
Procedure Habilitation Suspendre();
Procedure Habilitation Reprendre();
Procedure Habilitation ActiverJournal(B : Booleen);
Fin Type
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.
Variable
E : Entier;
MonTravail : Nul Ou Travail;
FileDAttente
MaFile(1);
Procedure P(A : Entier Entree Sortie)
/*********************************/
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. */
Attendre(5);
Fin TantQue
Si MonTravail.Etat==TravailEnErreur Alors
/* Il y a eu une erreur. */
Ecran.Ecrire(MonTravail.MessageErreur);
Sinon
/* Lit la valeur de sortie correspondant au premier paramètre. */
Ecran.Ecrire(MonTravail.LireValeurEntier(1));
Fin Si
Fin Principal
Warteschlange | WaitingQueue | 等待排队 | FilaDeEspera | - | - | - | - |