net.eduvax.util
public class Sequencer extends java.lang.Object implements java.lang.Runnable
Utilisations possibles : - dialogue avec des API dont le contexte est déterminé par le thread courant. - dialogue avec API non ou partiellement réentrante (ex : API OpalRT qui n'aime pas qu'un même noeud soit piloté par plusieurs threads).
Modifier and Type | Field and Description |
---|---|
private ErrorHandler |
_errHandler
Gestionnaire d'erreur
|
private java.lang.Runnable |
_nextToRun
Prochaine commande à executer par le séquenceur
|
private boolean |
_run
Etat d'activité du séquenceur
|
(package private) java.util.Hashtable<java.lang.Runnable,java.lang.Boolean> |
_runStatus
Status des commande en attente et en cours
|
private EThread |
_thread
Thread propre du sequenceur.
|
Constructor and Description |
---|
Sequencer(java.lang.String name)
Construit un nouveau séquenceur et démarre son thread.
|
Modifier and Type | Method and Description |
---|---|
EThread |
getThread()
Obtenir le thread du sequenceur.
|
void |
run()
point d'entrée du thread du séquenceur
Ne pas appeler cette méthode, il s'agit du callback
pour le thread qui pilote le sequenceur.
|
void |
run(java.lang.Runnable toRun)
Demander l'execution d'un Runnable au thread du séquenceur.
|
boolean |
run(java.lang.Runnable toRun,
int timeout)
Demander l'execution d'un Runnable au thread du séquenceur.
|
void |
stop()
Demander l'arrêt du séquenceur.
|
private EThread _thread
private boolean _run
private java.lang.Runnable _nextToRun
java.util.Hashtable<java.lang.Runnable,java.lang.Boolean> _runStatus
private ErrorHandler _errHandler
public Sequencer(java.lang.String name)
nom
- nom du sequenceur, le thread du sequenceur sera
baptisé selon ce nompublic void stop()
L'arrêt est effectif à la fin de la commande en cours s'il y en a une.
public EThread getThread()
Attention, ce n'est pas pour faire n'importe quoi ! En principe on devrait se limiter à des choses relativement neutres comme getName() ou Join().
public void run(java.lang.Runnable toRun)
toRun
- Runnable à confier au sequenceur
Cet appel bloque jusqu'à ce que la commande soit traitée
public boolean run(java.lang.Runnable toRun, int timeout)
Cet appel bloque jusqu'à ce que la commande soit traitée ou que le delai timeout soit expiré.
toRun
- Runnable à confier au sequenceurtimeout
- Délai d'attente maximal (millisecondes)public void run()
Ne pas appeler cette méthode, il s'agit du callback pour le thread qui pilote le sequenceur. Ce thread est démarré directement par le final staticructeur.
run
in interface java.lang.Runnable