|
Roblet®-Development-Kit 1.3 (11Sep10) API für Module |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object genRob.genControl.modules.Ownership
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.
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 |
public Ownership()
Method Detail |
public void freeze(Slot rSlot) throws OwnerException
Diese Routine wird für gewöhnlich nur von Methoden von Einheiten benutzt.
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.
rSlot
- das Roblet®-Fach, das damit
zusammenhängt
OwnerException
- wenn das Roblet® im Fach nicht Besitzer
der zu diesem Besitzrecht gehörigen
Ressource istunfreeze()
public void unfreeze()
Diese Routine wird für gewöhnlich nur von Methoden von Einheiten benutzt.
freeze(Slot)
public boolean claim(Slot rSlot)
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.
rSlot
- das Roblet®-Fach, aus dem die Anfrage kommt
force(Slot)
,
free(Slot)
,
free()
public Slot force(Slot rSlot)
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.
rSlot
- das Roblet®-Fach, aus dem die Forderung kommt
claim(Slot)
,
free(Slot)
,
free()
public void free(Slot rSlot)
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.
rSlot
- Fach mit Roblet® welches die Ressource freigibtclaim(Slot)
,
force(Slot)
,
free()
public void free()
Nach dem Aufruf dieser Methode beansprucht kein Roblet® mehr die Ressource.
claim(Slot)
,
force(Slot)
,
free(Slot)
|
Roblet®-Development-Kit 1.3 (11Sep10) API für Module |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |