Définition...
Opérateurs...
Exemple...
Traduction...
/***************************************************************/
Type Travail Defaut Final
/* Objet : Type des objets correspondant aux travaux en attente.*/
/***************************************************************/
Prive :
NomTravail : Caractere Lecture Public;
Etat : EtatTravail Lecture Public;
MessageErreur : Nul Ou Caractere Lecture Public;
CodeErreur : Entier Lecture Public;
File : Nul Ou FileDAttente Lecture Public;
Planification : TypePlanification Lecture Public;
Priorite : Entier Lecture Public;
DatePlanification : Nul Ou Date Lecture Public;
Duree : Entier Lecture Public;
Numero : Entier Lecture Public;
CalendrierDExecution : Nul Ou Calendrier Lecture Public;
Public :
Procedure Habilitation PlanifierAuPlusTot(DateDebut : Date, DureeEstimee : Entier=3, PrioriteDuTravail : Entier=2);
Procedure Habilitation PlanifierAuPlusTard(DateFin : Date, DureeEstimee : Entier=3, PrioriteDuTravail : Entier=2);
Procedure Habilitation PlanifierApres(LT : Nul Ou ListeDe Nul Ou Travail, DureeEstimee : Entier=3, PrioriteDuTravail : Entier=2);
Procedure Habilitation PlanifierPeriodiquement(C : Nul Ou Calendrier, DureeEstimee : Entier=3, PrioriteTravail : Entier=2);
Procedure Habilitation Supprimer();
Fonction LireValeurEnumere(NumeroParametre : Entier) Retourner Enumere;
Fonction LireValeurEntier(NumeroParametre : Entier) Retourner Entier;
Fonction LireValeurReel(NumeroParametre : Entier) Retourner Reel;
Fonction LireValeurObjet(NumeroParametre : Entier) Retourner Nul Ou Objet;
Fin Type
Le type Travail ne possède pas de constructeur implicite ni de constructeur explicite.
Les objets de type Travail sont créés automatiquement lors de la mise en file d'attente au moyen de l'opérateur ||
.
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
Arbeit | Work | 工作 | Trabajo | - | - | - | - |