/****************************************************************/
Type Tache Defaut Final TailleSegment 2
/* Objet : Tache d'un processus. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
NomTache : Caractere Lecture Public Trace;
EstTerminee : Booleen Lecture Public Trace;
CodeRetour : Entier Lecture Public;
TransactionCourante : Nul Ou Transaction;
RelancerAutomatiquement : 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;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Procedure Habilitation ChangerPrioriteRelative(Priorite : Entier);
Fonction LirePrioriteRelative() Retourner Entier;
Procedure Habilitation SuspendreTache();
Procedure Habilitation ReprendreTache();
Procedure Habilitation ArreterTache();
Fonction EstSuspendue() Retourner Booleen;
Constructeur Habilitation(NomDeLaNouvelleTache : Caractere, Traitement : Nul Ou Fonction() Retourner Entier, Relancer : Boolen=Faux);
Procedure Habilitation EnvoyerException(E : Nul Ou Exception, P1 : Nul Ou Caractere=Nul, P2 : Nul Ou Caractere=Nul, P3 : Nul Ou Caractere=Nul, P4 : Nul Ou Caractere=Nul, P5 : Nul Ou Caractere=Nul);
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Tache possède un constructeur explicite. Le paramètre NomDeLaNouvelleTache est le nom de la tâche à créer et le paramètre Traitement est l'appel à exécuter par la tâche. Si le paramètre Relancer a pour valeur Vrai, alors la tâche est relancée par la tâche Moniteur quand un arrêt brutal de celle-ci a lieu.
L'exécution commence dès la création de la tâche.
Variable
/******/
T1 : Nul Ou Tache;
/****************************************************************/
Fonction PrincipalTacheAnnexe(T : Nul Ou Tache) Retourner Entier
/* Objet : Fonction principale de la tâche annexe. */
/****************************************************************/
Debut
Ecran.Ecrire("Debut de la tâche "+T.NomTache);
Fin Fonction
Principal
/*******/
Debut
T1=Tache("ExempleDeTache", PrincipalTacheAnnexe);
Fin Principal
- | - | - | - | - | - | - | - | - |