de.bsvrz.sys.funclib.concurrent
Class DelayedTrigger

java.lang.Object
  extended by de.bsvrz.sys.funclib.concurrent.DelayedTrigger
All Implemented Interfaces:
Trigger

public class DelayedTrigger
extends Object
implements Trigger

Definiert einen Trigger mit verzögerter Auslösung.

Author:
Kappich Systemberatung

Constructor Summary
DelayedTrigger(String threadName, int maximumDelayedTriggerCount, long delayDuration, long maximumDelayDuration)
          Erzeugt ein neues Triggerobjekt mit den angegebenen Eigenschaften
 
Method Summary
 void addTriggerTarget(TriggerTarget triggerTarget)
          Fügt dem Trigger ein neues TriggerTarget, das beim Auslösen und Schließen des Triggers benachrichtigt werden soll, hinzu.
 void close()
          Schließt den Trigger.
 void removeTriggerTarget(TriggerTarget triggerTarget)
          Entfernt ein vorher hinzugefügtes TriggerTarget.
 void shoot()
          Führt zu einer sofortigen Auslösung des Triggers mit einer asynchronen Benachrichtigung aller angemeldeten TriggerTargets
 void trigger()
          Führt zu einer verzögerten Auslösung des Triggers mit einer asynchronen Benachrichtigung aller angemeldeten TriggerTargets
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelayedTrigger

public DelayedTrigger(String threadName,
                      int maximumDelayedTriggerCount,
                      long delayDuration,
                      long maximumDelayDuration)
Erzeugt ein neues Triggerobjekt mit den angegebenen Eigenschaften

Parameters:
threadName - Name des Threads für die asynchrone Auslösung des Triggers.
maximumDelayedTriggerCount - Anzahl der Trigger-Aufrufe, nach der die sofortige Auslösung angestoßen wird.
delayDuration - Verzögerungszeit in der nach einem Trigger-Aufrufe auf weitere Trigger-Aufrufe gewartet wird, bevor die sofortige Auslösung angestoßen wird.
maximumDelayDuration - Maximale Verzögerungszeit in der nach dem jeweils ersten Trigger-Aufruf auf weitere Trigger-Aufrufe gewartet wird, bevor die sofortige Auslösung angestoßen wird.
Method Detail

trigger

public void trigger()
Führt zu einer verzögerten Auslösung des Triggers mit einer asynchronen Benachrichtigung aller angemeldeten TriggerTargets


shoot

public void shoot()
Führt zu einer sofortigen Auslösung des Triggers mit einer asynchronen Benachrichtigung aller angemeldeten TriggerTargets


close

public void close()
Schließt den Trigger. Die sofortige Auslösung des Triggers wird angestoßen, falls vorherige verzögerte Trigger-Aufrufe noch nicht zu einer Auslösung des Triggers geführt haben. Alle angemeldeten TriggerTargets werden anschließend über das Schließen des Triggers benachrichtigt. Der Thread zur asynchronen Benachrichtigung der TriggerTargets wird beendet.


addTriggerTarget

public void addTriggerTarget(TriggerTarget triggerTarget)
Description copied from interface: Trigger
Fügt dem Trigger ein neues TriggerTarget, das beim Auslösen und Schließen des Triggers benachrichtigt werden soll, hinzu.

Specified by:
addTriggerTarget in interface Trigger
Parameters:
triggerTarget - Listener-Objekt, das zukünftig beim Auslösen oder Schließen des Triggers benachrichtigt werden soll.

removeTriggerTarget

public void removeTriggerTarget(TriggerTarget triggerTarget)
Description copied from interface: Trigger
Entfernt ein vorher hinzugefügtes TriggerTarget.

Specified by:
removeTriggerTarget in interface Trigger
Parameters:
triggerTarget - Listener-Objekt, das entfernt werden soll.