| 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)
TriggeraddTriggerTarget in interface TriggertriggerTarget - Listener-Objekt, das zukünftig beim Auslösen oder Schließen des Triggers benachrichtigt werden soll.public void removeTriggerTarget(TriggerTarget triggerTarget)
TriggerremoveTriggerTarget in interface TriggertriggerTarget - Listener-Objekt, das entfernt werden soll.private void shootTriggerTargets()
private void closeTriggerTargets()