Bereitstellen einer Bausteinumgebung

Für jedes Modul, das sich bei der TAA anmeldet, wird eine eigene TAA-Bausteinumgebung („Stacked Module Environment“) angelegt. In der Klasse ModlEnv werden alle Angaben verwaltet, die Auskunft über die Umgebung des aktuellen Bausteins innerhalb der TAA geben.

Die Bausteine teilen der Infrastruktur über die Klasse ModlEnv mit, dass ein Baustein endet. Sie können Ereignisse und Zustände des Moduls abfragen bzw. setzen, andere Services anfordern, lokale Objekte deklarieren, und Referenzen auf lokale, globale und Parameterobjekte erzeugen. Außerdem wird in der Klasse ModlEnv die Liste der aufgetretenen Laufzeitzustände (Condition Handling) sowie die Liste der bekannten Objekte verwaltet.

Um Methoden der Klasse ModlEnv nutzen zu können, müssen Sie zunächst eine Variable vom Typ ModlEnv deklarieren und über die Methode Register bestücken:

ModlEnv MyModl = taaEnv.taaRegister("nfun-test1");

Alternativ lässt sich für Migrationszwecke eine ModlEnv über die Methode taaCoRegister aus einem bereits registrierten, aktiven NativeSupport.Module erstellen:

ModlEnv MyModl = taaEnv.taaCoRegister(myNativeSupportInstance);

Man beachte, dass die Beschaffung einer ModlEnv für eine Instanz eines NativeSupport.Module nur dazu verwendet werden kann, um vorhandenes Coding in einer Portierung zur NativeSupport API schrittweise einbinden zu können. Das vorhandene Coding kann dabei mittels der über taaCoRegister erzeugte ModlEnv keinen direkten Einfluss auf den Kontrollfluss1) des Bausteins nehmen. In einem solchen ModlEnv werden derartige Versuche mit einer Ausnahme ZZTAAIM2(48)2) behandelt.

1)
Register, Unregister, Yield
2)
Dies entspräche in der NativeSupport API die Ausnahme Zztaaim2.UnsupportedInMigrate. Da die Ausnahme jedoch nicht von der NativeSupport API, sondern von der TAA .NET API aufgeworfen wird, ist dies mit catch (TAACondition e) zu behandeln.
dotnet:im · Zuletzt geändert: 09.08.2024 13:25

Copyright © 1992-2025 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum