/****************************************************************/
Type Synchronisation Defaut Final TailleSegment 8 ConserverObjets
/* Objet : Synchronisation des tâches ou des processus. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
NomSynchronisation : Caractere Lecture Public Trace;
Acces : AccesSynchronisation Lecture Public Trace;
/*-------------------------------------------------------------*/
/* 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(Nom : Caractere, AccesDemande : AccesSynchronisation);
Prendre(Mode : ModeSynchronisation);
Lacher(IlYUneModification : Booleen=Faux);
TenterDePrendre(Mode : ModeSynchronisation) Retourner Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Synchronisation ne possède pas de constructeur implicite.
Il possède un constructeur explicite dont le paramètre Nom est le nom de la synchronisation à construire et dont le paramètre AccesDemande spécifie le mode d'accès à cette synchronisation.
Type Personne
/***********/
...
Fin Type
Variable
/******/
ListePersonnes : Nul Ou ListeDe Personne;
/* Liste des personnes. */
SListeDePersonnes : Synchronisation;
/* Synchronisation pour accéder à la liste. */
Principal
/*******/
Debut
...
SListeDePersonne.Prendre(SynchronisationLecturePartagee);
/* Début d'une portion de code qui ne fait que lire la liste. */
...
SListeDePersonne.Lacher();
/* Fin d'une portion de code qui ne fait que lire la liste. */
...
SListeDePersonne.Prendre(SynchronisationEcriture);
/* Début d'une portion de code qui met à jour la liste. */
...
SListeDePersonne.Lacher();
/* Fin d'une portion de code qui met à jour la liste. */
...
Fin Principal
- | - | - | - | - | - | - | - | - |