...
Tieto skripty bežia paralelne a nezávisle na sebe. Nezávisle na sebe sú vykonávané aj inicializačné časti (medzi BEGIN a END v ESL a metóda onInit() v Jave). Preto, ak sa v inicializačnej časti ESL inicializuje nejaký zdieľaný stav (napr. premenná schémy), v inicializačnej časti Javy tento stav nemusí byť ešte viditeľný. Je ale dodržaná kauzalita udalostí, tj. ak je v ESL nastavená lokálna premenná schémy a následne je zavolaná RPC do Javy, tak vo vykonávaní RPC v Jave je už lokálna premenná nastavená. V prípade, že je potrebné konzistentne inicializovať stav v ESL a v JAVE a potom vykonať nejakú činnosť v ESL, tak je možné riešiť to nasledovným spôsobom:
-- ESL ČASŤ --
Blok kódu |
---|
language | esl |
---|
theme | RDark |
---|
title | ESL ČASŤConfluence |
---|
|
BEGIN
; inicializuj stav v ESL
; ...
CALLJ ... myInit() SYNC ...
; na tomto mieste sa môžem spoľahnúť, že java časť onInit() aj myInit() už boli vykonané
;
;
END |
...
Blok kódu |
---|
language | java |
---|
title | JAVA ČASŤ |
---|
|
...
...
{
// tu sa nainicializuje stav v |
...
...
prípadne-- ESL ČASŤ --
Blok kódu |
---|
language | esl |
---|
theme | RDark |
---|
title | ESL ČASŤConfluence |
---|
|
RPC PROCEDURE DoSomething
; na tomto mieste sa môžem spoľahnúť, že aj BEGIN..END časť aj onInit() a myInit() už boli vykonané
END DoSomething
BEGIN
; inicializuj stav v ESL
; ...
CALLJ ... myInit() ASYNC ...
END
------------------- |
...
Blok kódu |
---|
language | java |
---|
title | JAVA ČASŤ |
---|
|
...
...
{
// tu sa nainicializuje stav v |
...
...
callESLAsync(null, null, 0, "DoSomething", null); |
...
...