hmi.environment.semaine
Class SemaineRealizerBridge

java.lang.Object
  extended by java.lang.Thread
      extended by eu.semaine.components.Component
          extended by hmi.environment.semaine.SemaineRealizerBridge
All Implemented Interfaces:
eu.semaine.jms.SEMAINEMessageAvailableListener, RealizerBridge, Runnable

public class SemaineRealizerBridge
extends eu.semaine.components.Component
implements RealizerBridge

RealizerBridge implementation that sends on the requests over the Semaine network.

Author:
Dennis Reidsma

Nested Class Summary
 
Nested classes/interfaces inherited from class eu.semaine.components.Component
eu.semaine.components.Component.State
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.UncaughtExceptionHandler
 
Field Summary
private  ConcurrentLinkedQueue<String> bmlRequestQ
          Incoming BML Requests from the application are stored here.
private  eu.semaine.jms.sender.XMLSender bmlRequestSender
           
private  BMLFeedbackManager fbManager
           
private  Object feedbackLock
          Locking object for the feedbacklisteners -- needed to avoid a situation where feedback is sent out simultaneously with setting the feedbacklisteners.
 
Fields inherited from class eu.semaine.components.Component
inputWaiting, isInput, isOutput, log, meta, receivers, senders, state, waitingTime
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
SemaineRealizerBridge()
           
 
Method Summary
protected  void act()
          send next requests from bml request queue
 void addListeners(BMLListener... bmlListeners)
          Listeners must be stored; they will get updates from the feedbackRedirectionThread
 void performBML(String bmlString)
          Add BML request to the queue and return.
protected  void react(eu.semaine.jms.message.SEMAINEMessage m)
          the message will be bml feedback... so send it on to any listeners
 
Methods inherited from class eu.semaine.components.Component
customStartIO, exitRequested, messageAvailableFrom, requestExit, run
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bmlRequestSender

private eu.semaine.jms.sender.XMLSender bmlRequestSender

fbManager

private BMLFeedbackManager fbManager

bmlRequestQ

private ConcurrentLinkedQueue<String> bmlRequestQ
Incoming BML Requests from the application are stored here. The main networking loop will get these requests and send them to the server if a connection is available.


feedbackLock

private Object feedbackLock
Locking object for the feedbacklisteners -- needed to avoid a situation where feedback is sent out simultaneously with setting the feedbacklisteners.

Constructor Detail

SemaineRealizerBridge

public SemaineRealizerBridge()
                      throws javax.jms.JMSException
Throws:
javax.jms.JMSException
Method Detail

react

protected void react(eu.semaine.jms.message.SEMAINEMessage m)
              throws eu.semaine.exceptions.MessageFormatException
the message will be bml feedback... so send it on to any listeners

Overrides:
react in class eu.semaine.components.Component
Throws:
eu.semaine.exceptions.MessageFormatException

act

protected void act()
            throws javax.jms.JMSException
send next requests from bml request queue

Overrides:
act in class eu.semaine.components.Component
Throws:
javax.jms.JMSException

performBML

public void performBML(String bmlString)
Add BML request to the queue and return. Sending will happen in the main networking loop.

Specified by:
performBML in interface RealizerBridge

addListeners

public void addListeners(BMLListener... bmlListeners)
Listeners must be stored; they will get updates from the feedbackRedirectionThread

Specified by:
addListeners in interface RealizerBridge