next up previous contents index
Weiter: Die unterschiedlichen Operationstypen Hinauf: Geschützte Objekte Zurück: Geschützte Objekte

Spezifikation und Implementierung geschützter Objekte

Ein geschütztes Objekt wird mittels

protected type <Name> is
<Operationen>
private
<Operationen und/oder Deklarationen>
end <Name>;

spezifiziert. Das Schlüsselwort type kann wie bei den Tasks weggelassen werden, wenn man nur ein Objekt dieses Typs benötigt. Ebenso kann der gesamte ,,private-Teil`` weggelassen werden, wenn man ihn nicht braucht.

Genauso wie Tasks besitzen geschützte Objekte auch einen Implementierungsteil. Dieser beinhaltet die Implementierung der definierten Operationen; er kann aber auch etwa zusätzliche, lokale Unterprogramme enthalten.

Ein einfaches Beispiel ist:

protected type V is
function Lies return Wert;
procedure Schreib(neuer_Wert: Wert);
private
Datum: Wert;
end V;

protected body V is
function Lies return Wert is
begin
return Datum;
end Lies;

procedure Schreib(neuer_Wert: Wert) is
begin
Datum := neuer_Wert;
end Schreib;
end V;

Bei geschützten Records ist gewährleistet, daß die definierten Operationen serialisiert werden, d.h., daß nie gleichzeitig auf die geschützten Daten zugegriffen werden kann.



Johann Blieberger
Wed Feb 11 09:58:52 MET 1998