Les instances

Ce programme présente l'usage de plusieurs instances d'un module au sein d'un même processus.

Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/instance.upl.

Mode compilé

Commande de compilation

upscmp Source=instance.upl

Commande d'exécution

instance

Mode interprété

upssng Source=instance.upl

Fichier source

Source Composant "Exemple d'emploi des instances" Version 4.0.0;

SegmentPrive MemoirePrivee;
SegmentProtege MemoireProtegee;

Variable
/******/
Prive : Protege :
Principal
/*******/
Debut
I1=NumeroInstance;
A=10;
B="Bonjour le monde";
Ecran.Ecrire("I1="+Caractere(I1));
Ecran.Ecrire("I2="+Caractere(I2));
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+B);

I2=CreerInstance();
Ecran.Ecrire("I1="+Caractere(I1));
Ecran.Ecrire("I2="+Caractere(I2));
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+B);

CommuterInstance(I2);
A=20;
B="Hello world";
Ecran.Ecrire("I1="+Caractere(I1));
Ecran.Ecrire("I2="+Caractere(I2));
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+B);

CommuterInstance(I1);
Ecran.Ecrire("I1="+Caractere(I1));
Ecran.Ecrire("I2="+Caractere(I2));
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+B);

ArreterInstance(I2);
I2=0;
Ecran.Ecrire("I1="+Caractere(I1));
Ecran.Ecrire("I2="+Caractere(I2));
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+B);
Fin Principal

Résultat de l'exécution

I1=1 I2=0 A=10 B=Bonjour le monde I1=1 I2=2 A=10 B=Bonjour le monde I1=1 I2=2 A=20 B=Hello world I1=1 I2=2 A=10 B=Bonjour le monde I1=1 I2=0 A=10 B=Bonjour le monde