fungus.core.scheduler
Class Pool

java.lang.Object
  |
  +--fungus.core.scheduler.Pool
All Implemented Interfaces:
TimeModel
Direct Known Subclasses:
TimeDrivenPool

public abstract class Pool
extends Object
implements TimeModel

Un pool d'agent.
Les pools d'agents sont des ensembles d'agents qui seront geres par un Scheduler.

Since:
1.0
Version:
$Id: Pool.java,v 1.10 2002/08/16 15:28:00 djedi Exp $
Author:
"Valvassori Moïse"
See Also:
Scheduler, SchedulerService

Field Summary
protected  AgentIDMap pool
          Le pool d'agent à être gere.
protected  Time time
          l'heure courante
 
Constructor Summary
Pool()
           
 
Method Summary
 void addAgent(AgentID agent)
          Ajoute un agent au pool.
 void addAgent(AgentID agent, Time t)
           
abstract  void advanceInTime()
          Avance le temps.
 Time getCurrentTime()
          Donne l'heure courante
 Collection getSchedulableAgent(Time t)
          Renvoie l'ensemble des agents qui peuvent etre traiter.
 Collection keySet()
          Deprecated. Utiliser getSchedulableAgent(Time).
abstract  Time nextTic()
          Renvoie l'heure du prochain tic d'horloge.
 void put(AgentID id, Time t)
          Deprecated. On prefere utiliser addAgent(AgentID).
 boolean removeAgent(AgentID agent)
          Enleve un agent du pool
 void setWakeupTime(AgentID id, Time time)
          Fixe l'heure de redémarage d'un agent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pool

protected AgentIDMap pool
Le pool d'agent à être gere. AgentID -> date reprise activité

time

protected Time time
l'heure courante
Constructor Detail

Pool

public Pool()
Method Detail

addAgent

public void addAgent(AgentID agent)
Ajoute un agent au pool.
L'heure de demarage est fixe a '0'.
Parameters:
agent - an AgentID value

addAgent

public void addAgent(AgentID agent,
                     Time t)

removeAgent

public boolean removeAgent(AgentID agent)
Enleve un agent du pool
Parameters:
agent - l'agent à enlever
Returns:
true si l'agnet à bien était enlevé

getSchedulableAgent

public Collection getSchedulableAgent(Time t)
Renvoie l'ensemble des agents qui peuvent etre traiter.
Parameters:
t - l'heure limite de declenchement des agents.
Returns:
un emsemble d'agent qui peuvent être traité par le scheduler.

put

public void put(AgentID id,
                Time t)
Deprecated. On prefere utiliser addAgent(AgentID).

Ajoute un agent au pool
Parameters:
id - an AgentID value
t - a Time value

setWakeupTime

public void setWakeupTime(AgentID id,
                          Time time)
Fixe l'heure de redémarage d'un agent
Parameters:
id - l'agent à traiter
time - l'heure de redémarage

keySet

public Collection keySet()
Deprecated. Utiliser getSchedulableAgent(Time).

Renvoie l'ensemble des agents
Returns:
a Set value

getCurrentTime

public Time getCurrentTime()
Description copied from interface: TimeModel
Donne l'heure courante
Specified by:
getCurrentTime in interface TimeModel
Following copied from interface: fungus.core.scheduler.TimeModel
Returns:
l'heure courante

advanceInTime

public abstract void advanceInTime()
Description copied from interface: TimeModel
Avance le temps.
L'incrément temporel n'est pas forcement fixe. cela depend du modèle utilisé.
Specified by:
advanceInTime in interface TimeModel

nextTic

public abstract Time nextTic()
Description copied from interface: TimeModel
Renvoie l'heure du prochain tic d'horloge.
Si l'heure ne peut pas ^etre connue renvoie '0'
Specified by:
nextTic in interface TimeModel
Following copied from interface: fungus.core.scheduler.TimeModel
Returns:
l'heure du prochain tic