Roblet®-Development-Kit
1.3 (11Sep10)
API für Module

genRob.genControl.modules
Class Ownership

java.lang.Object
  extended bygenRob.genControl.modules.Ownership

Deprecated. Entfällt in Zukunft, da sich das Modul-Konzept geändert hat.

public final class Ownership
extends Object

Eine Instanz dieser Klasse, genannt Besitzrecht, verbrieft den Besitz einer Ressource.  Ein solches Besitzrecht kann mit einer oder mehreren Einheiten zusammenhängen.  Die Instanz ist nicht die Ressource selbst, sondern nur der für den jeweilige Ressource einzige Stellvertreter.  Ein Besitzrecht kommt niemals direkt mit einem Roblet® in Verbindung, sondern immer nur stellvertretend mit dem Fach, in dem das Roblet® läuft.

freeze(Slot) und unfreeze() werden von Einheiten benutzt, um zu prüfen, ob ein Thread eines Roblets® befindlich in einem bestimmten Fach (Slot) die Erlaubnis hat, eine bestimmte Methode dieser Einheit, die die Ressource verwendet, zu benutzen.  Sie werden immer paarweise benutzt.

Die anderen Methoden werden indirekt dazu benutzt, ein Roblet® als Besitzer der Ressource einzutragen bzw. den Eintrag zu löschen.  Dieser Vorgang wird über genRob®-genControl vermittelt.

See Also:
Owner, Slot

Constructor Summary
Ownership()
          Deprecated.  
 
Method Summary
 boolean claim(Slot rSlot)
          Deprecated. Trägt wenn möglich das Roblet® (vertreten durch das angegebene Fach) als Besitzer ein.
 Slot force(Slot rSlot)
          Deprecated. Trägt unbedingt das Roblet® (vertreten durch das angegebene Fach) als Besitzer ein.
 void free()
          Deprecated. Entfernt jegliche Eintragung als Besitzer.
 void free(Slot rSlot)
          Deprecated. Entfernt die Eintragung als Besitzer des Roblets® (vertreten durch das Fach), sofern dieses der Besitzer ist.
 void freeze(Slot rSlot)
          Deprecated. Reserviert dem aufrufenden Thread dieses Besitzrecht oder erzeugt eine Ausnahme, falls die Anfrage unberechtigt war.
 void unfreeze()
          Deprecated. Beendet die Reservierung dieses Besitzrechtes durch einen Thread.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Ownership

public Ownership()
Deprecated. 
Method Detail

freeze

public void freeze(Slot rSlot)
            throws OwnerException
Deprecated. 
Reserviert dem aufrufenden Thread dieses Besitzrecht oder erzeugt eine Ausnahme, falls die Anfrage unberechtigt war.  Die Anfrage ist berechtigt, wenn das zum Thread gehörige Roblet® (vertreten durch das angegebene Fach) der Besitzer der zu diesem Besitzrecht gehörigen Ressource ist.

Diese Routine wird für gewöhnlich nur von Methoden von Einheiten benutzt.

Ablauf

Zunächst muss der Thread darauf warten, dass das Besitzrecht reservierbar wird.  Sobald die Reservierung möglich wird, wird dann eine Reservierung vorgenommen.

Danach wird geprüft, ob das zum Thread gehörige Roblet® der Besitzer der zu diesem Besitzrecht gehörigen Ressource ist.  Ist dem nicht so, so wird das Besitzrecht wieder freigegeben und eine Ausnahme erzeugt.

War die Prüfung erfolgreich, so muss der Entwickler sicherstellen, dass in jedem Falle nach Ausführen der gewünschten Aktion mit oder im Umfeld des Besitzrechtes, dasselbe möglichst schnell wieder freigegeben wird.  Dazu muss unfreeze() aufgerufen werden.

Parameters:
rSlot - das Roblet®-Fach, das damit zusammenhängt
Throws:
OwnerException - wenn das Roblet® im Fach nicht Besitzer der zu diesem Besitzrecht gehörigen Ressource ist
See Also:
unfreeze()

unfreeze

public void unfreeze()
Deprecated. 
Beendet die Reservierung dieses Besitzrechtes durch einen Thread.

Diese Routine wird für gewöhnlich nur von Methoden von Einheiten benutzt.

See Also:
freeze(Slot)

claim

public boolean claim(Slot rSlot)
Deprecated. 
Trägt wenn möglich das Roblet® (vertreten durch das angegebene Fach) als Besitzer ein.

Konnte die Ressource reserviert werden oder war die Ressource schon reserviert, so gibt diese Methode true zurück.  In diesen Fällen ist das Roblet® nachfolgend der Besitzer der zu diesem Besitzrecht gehörigen Ressource.

Parameters:
rSlot - das Roblet®-Fach, aus dem die Anfrage kommt
Returns:
true wenn das zugehörige Roblet® nun der Besitzer ist
See Also:
force(Slot), free(Slot), free()

force

public Slot force(Slot rSlot)
Deprecated. 
Trägt unbedingt das Roblet® (vertreten durch das angegebene Fach) als Besitzer ein.

Die Ressource wird in jedem Fall reserviert.  Das Roblet® ist nachfolgend der Besitzer der zu diesem Besitzrecht gehörigen Ressource.

Ist der Rückgabewert ungleich null, so handelt es sich um das Fach mit dem enthaltenen Roblet®, welches die Ressource verloren hat und welches von genRob®-genControl gelöscht wird.  Ist der Wert null, so gab es vorher keinen Besitzer.

Parameters:
rSlot - das Roblet®-Fach, aus dem die Forderung kommt
Returns:
Fach mit Roblet®, welches die Ressource verlor oder null
See Also:
claim(Slot), free(Slot), free()

free

public void free(Slot rSlot)
Deprecated. 
Entfernt die Eintragung als Besitzer des Roblets® (vertreten durch das Fach), sofern dieses der Besitzer ist.

Wenn das angegebene Roblet® nicht der Besitzer ist, so behält der bisherige Besitzer die Ressource.  Ansonsten beansprucht nach Aufruf dieser Methode kein Roblet® mehr die Ressource.

Parameters:
rSlot - Fach mit Roblet® welches die Ressource freigibt
See Also:
claim(Slot), force(Slot), free()

free

public void free()
Deprecated. 
Entfernt jegliche Eintragung als Besitzer.

Nach dem Aufruf dieser Methode beansprucht kein Roblet® mehr die Ressource.

See Also:
claim(Slot), force(Slot), free(Slot)

Roblet®-Development-Kit
1.3 (11Sep10)
API für Module

Copyright © 2001-2010, roblet®.org, Hagen Stanek, http://roblet.org/rdk