Package de.bsvrz.sys.funclib.concurrent
Class DelayedTrigger
java.lang.Object
de.bsvrz.sys.funclib.concurrent.DelayedTrigger
- All Implemented Interfaces:
Trigger
public class DelayedTrigger extends java.lang.Object implements Trigger
Definiert einen Trigger mit verzögerter Auslösung.
-
Constructor Summary
Constructors Constructor Description DelayedTrigger(java.lang.String threadName, int maximumDelayedTriggerCount, long delayDuration, long maximumDelayDuration)
Erzeugt ein neues Triggerobjekt mit den angegebenen Eigenschaften -
Method Summary
Modifier and Type Method Description 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 TriggerTargetsvoid
trigger()
Führt zu einer verzögerten Auslösung des Triggers mit einer asynchronen Benachrichtigung aller angemeldeten TriggerTargetsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
DelayedTrigger
public DelayedTrigger(java.lang.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 Details
-
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
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 interfaceTrigger
- Parameters:
triggerTarget
- Listener-Objekt, das zukünftig beim Auslösen oder Schließen des Triggers benachrichtigt werden soll.
-
removeTriggerTarget
Description copied from interface:Trigger
Entfernt ein vorher hinzugefügtes TriggerTarget.- Specified by:
removeTriggerTarget
in interfaceTrigger
- Parameters:
triggerTarget
- Listener-Objekt, das entfernt werden soll.
-