/***************************************************************/
Type Calendrier Defaut Final TailleSegment 2 ConserverObjets
/* Objet : Type des objets correspondant aux calendriers. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
NomCalendrier : Caractere Lecture Public Trace;
PeriodesIncluses : Nul Ou ListeDe Nul Ou PeriodeCalendrier Lecture Public;
PeriodesExclues : Nul Ou ListeDe Nul Ou PeriodeCalendrier Lecture Public;
DatePlanification : Nul Ou Date 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 :
Constructeur(NomDuCalendrier : Caractere);
Procedure Habilitation AjouterPeriodeIncluse(P : Nul Ou PeriodeCalendrier);
Procedure Habilitation AjouterPeriodeExclue(P : Nul Ou PeriodeCalendrier);
Procedure Habilitation SupprimerPeriodeIncluse(P : Nul Ou PeriodeCalendrier);
Procedure Habilitation SupprimerPeriodeExclue(P : Nul Ou PeriodeCalendrier);
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Calendrier possède un constructeur explicite. Le paramètre NomDuCalendrier est le nom donné au calendrier.
Variable
/******/
MonCalendrier : Nul Ou Calendrier;
Periode : Nul Ou PeriodeCalendrier;
FileDAttente
/**********/
MaFile(1);
Principal
/*******/
Debut
E=10;
MonTravail=P(E)||MaFile;
/* Mise en file de l'appel de 'P' dans la file 'MaFile'. Le travail est 'MonTravail'. */
MonCalendrier=Calendrier("MonCalendrier");
Periode=PeriodeCalendrier(PeriodeJournaliere, Date("0-0-0 8:0:0"));
MonCalendrier.AjouterPeriodeIncluse(Periode);
/* Le calendrier comprend tous les jours de la semaine avec un déclenchement à 8 heures du matin. */
Periode=PeriodeCalendrier(PeriodeHedomadaire, Date("7-8-1999 8:0:0"));
MonCalendrier.AjouterPeriodeExclue(Periode);
/* Le calendrier ne comprend pas les samedis. */
Periode=PeriodeCalendrier(PeriodeHedomadaire, Date("8-8-1999 8:0:0"));
MonCalendrier.AjouterPeriodeExclue(Periode);
/* Le calendrier ne comprend pas les dimanches. */
MonTravail.PlanifierPeriodiquement(MonCalendrier);
/* Le travail est à déclencher selon le calendrier 'MonCalendrier'. */
Fin Principal
- | - | - | - | - | - | - | - | - |