Modifier and Type | Class and Description |
---|---|
private class |
DelayedTrigger.AsyncTriggerThreadRunnable
Runnable mit der run-Methode, die in einem eigenen Thread ausgeführt wird und die TriggerTargets asynchron benachrichtigt.
|
Modifier and Type | Field and Description |
---|---|
private boolean |
_closed
true , wenn die close-Methode aufgerufen wurde; sonst false . |
private long |
_delayDuration
Verzögerungszeit in der nach einem Trigger-Aufrufe auf weitere Trigger-Aufrufe gewartet wird, bevor die sofortige Auslösung angestoßen wird.
|
private int |
_delayedTriggerCount
Aktuelle Anzahl der Trigger-Aufrufe.
|
private long |
_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.
|
private int |
_maximumDelayedTriggerCount
Anzahl der Trigger-Aufrufe, nach der die sofortige Auslösung angestoßen wird.
|
private long |
_maximumTriggeringTime
Zeitpunkt an dem die sofortige Auslösung angestoßen wird.
|
private long |
_triggeringTime
Zeitpunkt an dem die sofortige Auslösung angestoßen wird, wenn nicht vorher ein weiterer Trigger-Aufruf stattfindet.
|
private List<TriggerTarget> |
_triggerTargets
Listener, die beim Auslösen und Schließen des Triggers benachrichtigt werden sollen.
|
Constructor and Description |
---|
DelayedTrigger(String threadName,
int maximumDelayedTriggerCount,
long delayDuration,
long maximumDelayDuration)
Erzeugt ein neues Triggerobjekt mit den angegebenen Eigenschaften
|
Modifier and Type | Method and 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.
|
private boolean |
awaitTrigger()
Wartet bis der Trigger ausgelöst werden soll oder der Trigger geschlossen wurde.
|
void |
close()
Schließt den Trigger.
|
private void |
closeTriggerTargets()
Benachrichtigt alle TriggerTargets über das Auslösen des Triggers
|
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
|
private void |
shootTriggerTargets()
Benachrichtigt alle TriggerTargets über das Auslösen des Triggers
|
void |
trigger()
Führt zu einer verzögerten Auslösung des Triggers mit einer asynchronen Benachrichtigung aller angemeldeten TriggerTargets
|
private final List<TriggerTarget> _triggerTargets
private int _maximumDelayedTriggerCount
private int _delayedTriggerCount
private long _delayDuration
private long _triggeringTime
_delayDuration
gesetzt.private long _maximumDelayDuration
private long _maximumTriggeringTime
_maximumDelayDuration
gesetzt.private boolean _closed
true
, wenn die close-Methode aufgerufen wurde; sonst false
.public DelayedTrigger(String threadName, int maximumDelayedTriggerCount, long delayDuration, long maximumDelayDuration)
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.public void trigger()
public void shoot()
public void close()
private boolean awaitTrigger() throws InterruptedException
false
, wenn der Trigger ausgelöst werden kann; true
, wenn der Trigger geschlossen wurde.InterruptedException
- Wenn der Thread vor oder während des Wartens unterbrochen wurde.public void addTriggerTarget(TriggerTarget triggerTarget)
Trigger
addTriggerTarget
in interface Trigger
triggerTarget
- Listener-Objekt, das zukünftig beim Auslösen oder Schließen des Triggers benachrichtigt werden soll.public void removeTriggerTarget(TriggerTarget triggerTarget)
Trigger
removeTriggerTarget
in interface Trigger
triggerTarget
- Listener-Objekt, das entfernt werden soll.private void shootTriggerTargets()
private void closeTriggerTargets()