|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--java.lang.Thread
|
+--planner.Planner
Die Planner-Klasse ist die abstrakte Superklasse f?r
alle Planner-Auspr?gungen, die der Shellbenutzer
implementieren kann. Innerhalb der entwickelten Agenten-Shell sind zwei konkrete
Planner-Auspr?gungen implementiert worden, der
PlannerTypeA und der PlannerTypeC.
Thread-Funktionalit?t:
Planner werden von der Systemkontrolle als eigene Threads gestartet.
Allerdings werden zur Thread-Steuerung nicht die Thread-Methoden suspend(),
resume() und destroy() benutzt -- diese sind inh?rent deadlock gef?hrlich
und deshalb in java 1.2 deprecated. Statt ?ber die genannten Methoden l?uft
die Steuerung ?ber die Ersatzmethoden mySuspend(), myResume()
und myDestroy(). Diese Methoden umgehen die inh?rente deadlock Gefahr
der originalen Thread-Methoden, geben aber die Verantwortung, wann und wie auf
ihren Aufruf reagiert wird, an den Programmierer weiter.
Event-Handling:
Planner informieren die Systemkontrolle via events ?ber Planungsergebnisse.
Die folgende Gesamt?bersicht listet alle events auf, sowohl diejenigen, die
f?r alle Planner g?ltig sind, als auch die, welche speziell fuer den
PlannerTypeA bzw. den PlannerTypeC
hinzukommen.
Wert int-Variable Klasse ---- ------------ ------ 0 planReadyAborted Planner 1 planReadyUnfinishedEvent PlannerTypeA 2 planExecuteFinishedEvent PlannerTypeA 3 planReadyFinishedEvent PlannerTypeC
PlannerTypeA,
PlannerTypeC,
PlanExecution| Field Summary | |
protected boolean |
alreadyCalledEval
Zeigt an, ob eval fuer dieses Objekt schon mal aufgerufen wurde (true) oder nicht (false). |
protected boolean |
destroyThread
Zeigt an, ob diese Planner-Thread beendet werden soll (true) oder nicht (false). |
private PlanInformation |
planInfo
Das PlanInformation-Objekt, das vom Konstruktor
?bergeben wird. |
private long |
plannerID
Diese ID identifiziert den Planner eindeutig. |
protected static int |
planReadyAborted
int Konstante fuer Event planReadyAborted Fuer Gesamtuebersicht siehe Planner. |
private long |
searchID
Diese ID identfiziert die Suche in der der Planner
mitarbeitet. |
protected boolean |
suspended
Zeigt an, ob dieser Planner-Thread via wait() "suspendiert" werden soll (true) oder nicht (false). |
| Fields inherited from class java.lang.Thread |
contextClassLoader,
daemon,
eetop,
group,
inheritedAccessControlContext,
initial_stack_memory,
MAX_PRIORITY,
MIN_PRIORITY,
name,
NORM_PRIORITY,
priority,
PrivateInfo,
single_step,
stillborn,
stopThreadPermission,
target,
threadInitNumber,
threadQ,
values |
| Constructor Summary | |
Planner(PlanInformation planInfo)
Konstruktor, der im Regelfall von anderen Klassen zur Instanzierung eines Planers genutzt werden sollte. |
|
| Method Summary | |
protected boolean |
alreadyUsedAction(Operator op)
|
PlanInformation |
eval()
Diese Methode veranla?t den Planner zu planen anzufangen. |
PlanInformation |
getPlanInfo()
liefert den Wert des Attributes PlanInformation planInfo |
long |
getPlannerID()
Diese Methode wird von der Systemkontrolle benutzt, um die ID des Planers abzufragen. |
void |
myDestroy()
Setzt destroyThread auf true -- Thread soll terminieren. |
void |
myResume()
Setzt suspendend auf false -- Thread soll "resumed" werden. |
void |
mySuspend()
Setzt suspended auf true -- Thread soll "suspendiert" werden. |
void |
run()
Diese Methode ruft einfach nur eval() auf, damit der
Planner ueber
Thread-Methoden steuerbar ist. |
PlanInformation |
setPlanInfo(PlanInformation pInfo)
setzt das Attribut PlanInformation planInfo |
long |
setPlannerID(long plannerID)
Diese Methode wird von der Systemkontrolle benutzt, um die ID des Planers zu setzen. |
| Methods inherited from class java.lang.Thread |
|
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
| Field Detail |
protected boolean alreadyCalledEval
private long plannerID
Planner eindeutig. Die ID
wird von der Systemkontrolle vergeben.private long searchID
Planner
mitarbeitet. Sie wird nur zur Flexibilisierung mitgespeichert.private PlanInformation planInfo
PlanInformation-Objekt, das vom Konstruktor
?bergeben wird.protected boolean suspended
mySuspend() (true) bzw. myResume() (false).protected boolean destroyThread
myDestroy().protected static final int planReadyAborted
Planner.| Constructor Detail |
public Planner(PlanInformation planInfo)
planInfo - Das PlanInformation-Objekt, mit dem
geplant werden soll.| Method Detail |
public PlanInformation eval()
Planner zu planen anzufangen.PlanInformation Das mit einem Plan gef?llte
PlanInformation-Objekt.PlanInformationpublic void run()
eval() auf, damit der
Planner ueber
Thread-Methoden steuerbar ist.public long getPlannerID()
long plannerIDpublic long setPlannerID(long plannerID)
long - plannerIDpublic PlanInformation getPlanInfo()
PlanInformationpublic PlanInformation setPlanInfo(PlanInformation pInfo)
pInfo - Das zu setzende PlanInformation-ObjektPlanInformation das gesetzte PlanInformation-Objekt- Since:
- Version 1.2
public void mySuspend()
public void myResume()
public void myDestroy()
protected boolean alreadyUsedAction(Operator op)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||