Allgemeines
Anwendungsgebiet: | (optimierte) Ereignissteuerung; siehe "Ereignisgesteuerte Verarbeitung (Eventing)" |
Makrotyp: | R-Typ; siehe "R-Typ-Makroaufrufe" |
Forward Eventing (FEV) ist eine optimierte Form der synchronen Ereignissteuerung (synchrones Eventing). FEV vermeidet für wiederholte POSSIG- bzw. SOLSIG-Aufrufe in einem Programm die wiederholte Validierung der angegebenen Operanden. Stattdessen wird eine Ereignisliste EVENTLST angelegt und z.B. für das Senden von Signalen zu einer Ereigniskennung (POSSIG-Funktion) einmalig ein POSSIG-Eintrag eingetragen. Der Eintrag kann explizit wieder gelöscht werden (DELFEI).
Die Task des Aufrufers muss der Ereigniskennung zugeordnet sein (ENAEI).
Makrobeschreibung
Der Makro RPOFEI nimmt Bezug auf einen POSSIG-Eintrag in der EVENTLST und löst das Senden eines Signals (Ereignisses) an eine Ereigniskennung aus.
Das Signal beendet den Wartezustand der anfordernden Task oder startet dort eine Contingency-Routine, wenn diese in einem SOLSIG-Aufruf angegeben wurde.
Makroaufrufformat und Operandenbeschreibung
RPOFEI |
REFNUM=(r) |
REFNUM=(r)
bezeichnet ein Register, das (direkt) die Referenznummer für den POSSIG-Eintrag enthält.
(r)
r = Register mit der Referenznummer.
Rückinformation und Fehleranzeigen
Während der Makrobearbeitung enthält Register R1 die Referenznummer.Register R0 wird mit einem internen Funktionscode überschrieben.
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
Über die Ausführung des Makros RPOFEI wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.
X'bb' | X'aa' | Erläuterung |
X'00' | X'00' | Normale Ausführung: Das Signal wurde gesendet. |
X'04' | X'04' | Keine Aktion: Falsche Referenznummer (POSSIG-Eintrag schon gelöscht?) |
X'28' | X'04' | Keine Aktion: Die maximal mögliche Anzahl von Anforderungen in der POSSIG- |