jade.core.behaviours
Class WakerBehaviour
java.lang.Object
|
+--jade.core.behaviours.Behaviour
|
+--jade.core.behaviours.SimpleBehaviour
|
+--jade.core.behaviours.WakerBehaviour
- public abstract class WakerBehaviour
- extends SimpleBehaviour
This abstract class implements a OneShot task that must be executed
only one just after a given timeout is elapsed.
The task is simply the call to the method
handleElapsedTimeout()
that must be implemented by
all subclasses. Notice that the best practice in JADE is when
this method just adds a behaviour to the agent class.
All subclasses have available the protected variable
myAgent
that points to the agent class.
The programmer must use this abstract class in this simple way:
- implements a subclass that extends WakerBehaviour. This subclass
must implement the method
handleElapsedTimeout
.
- add the subclass to the list of behaviour of this agent by using
addBehaviour()
method.
- the method
handleElapsedTimeout
must implement the
task that will be executed after the timeout is elapsed.
- Version:
- $Date: 2001/08/14 14:36:55 $ $Revision: 2.2 $
- Author:
- Fabio Bellifemine - CSELT S.p.A.
- See Also:
- Serialized Form
Method Summary |
void |
action()
Runs the behaviour. |
boolean |
done()
Check if this behaviour is done. |
protected abstract void |
handleElapsedTimeout()
This method is called by this subclass only after the given timeout is
elapsed.
|
void |
reset(java.util.Date wakeupDate)
This method must be called to reset the behaviour and starts again |
void |
reset(long timeout)
This method must be called to reset the behaviour and starts again |
Methods inherited from class jade.core.behaviours.Behaviour |
actionWrapper,
block,
block,
getBehaviourName,
getDataStore,
handle,
isRunnable,
onEnd,
onStart,
restart,
root,
setAgent,
setBehaviourName,
setDataStore |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
WakerBehaviour
public WakerBehaviour(Agent a,
java.util.Date wakeupDate)
- This method constructs the behaviour.
- Parameters:
a
- is the pointer to the agentwakeupDate
- is the date when the task must be executed
WakerBehaviour
public WakerBehaviour(Agent a,
long timeout)
- This method constructs the behaviour.
- Parameters:
a
- is the pointer to the agenttimeout
- indicates the number of milliseconds after which the
task must be executed
action
public void action()
- Description copied from class: Behaviour
- Runs the behaviour. This abstract method must be implemented by
Behaviour
subclasses to perform ordinary behaviour
duty. An agent schedules its behaviours calling their
action()
method; since all the behaviours belonging
to the same agent are scheduled cooperatively, this method
must not enter in an endless loop and should return as
soon as possible to preserve agent responsiveness. To split a
long and slow task into smaller section, recursive behaviour
aggregation may be used.
- Overrides:
- action in class Behaviour
- Tags copied from class: Behaviour
- See Also:
CompositeBehaviour
handleElapsedTimeout
protected abstract void handleElapsedTimeout()
- This method is called by this subclass only after the given timeout is
elapsed.
The method has available the class variable
myAgent
that
points to the agent class.
reset
public void reset(java.util.Date wakeupDate)
- This method must be called to reset the behaviour and starts again
- Parameters:
wakeupDate
- is the new time when the task must be executed again
reset
public void reset(long timeout)
- This method must be called to reset the behaviour and starts again
- Parameters:
timeout
- indicates in how many milliseconds from now the behaviour
must be waken up again.
done
public boolean done()
- Description copied from class: Behaviour
- Check if this behaviour is done. The agent scheduler calls this
method to see whether a
Behaviour
still need to be
run or it has completed its task. Concrete behaviours must
implement this method to return their completion state. Finished
behaviours are removed from the scheduling queue, while others
are kept within to be run again when their turn comes again.
- Overrides:
- done in class Behaviour
- Tags copied from class: Behaviour
- Returns:
true
if the behaviour has completely executed.