Class RequestReceiver<T>

java.lang.Object
de.bsvrz.dav.daf.main.impl.config.request.util.RequestReceiver<T>

public class RequestReceiver<T> extends Object
Basisklasse, die beim Empfangen von Konfigurationsantworten hilft, indem aus den bereits bekannten Antworten diejenige mit der korrekten Request-ID geholt wird, bzw. wenn noch keine vorhanden ist, auf eine entsprechende Antwort gewartet wird.
  • Constructor Details

    • RequestReceiver

      public RequestReceiver(long timeoutDuration, TimeUnit unit)
      Erstellt einen neuen RequestReceiver.
      Parameters:
      timeoutDuration - Timeout für den Empfang einer Konfigurationsantwort. Wenn diese Dauer (in _timeoutUnit) überschritten wird, wird davon Ausgegangen dass keine Antwort mehr erfolgt.
      unit - definiert die Einheit für timeoutDuration.
  • Method Details

    • getAnswer

      public T getAnswer(int requestIndex) throws RequestException
      Holt eine bereits eingegangene Konfigurationsantwort ab, oder wartet maximal timeoutDuration, bis diese noch ankommt.
      Parameters:
      requestIndex - RequestIndex der Nachricht, auf die gewartet werden soll.
      Returns:
      Nachricht
      Throws:
      RequestException - Wenn die Konfiguration nicht innerhalb des Zeitlimits eine gültige Antwort geschickt hat.
    • answerReceived

      public void answerReceived(int requestIndex, T answer)
      Wird aufgerufen, wenn eine Konfigurationsantwort eingegangen ist. Die Nachricht sorgt dann dafür, dass ein aktuell wartender oder ein zukünftiger getAnswer(int)-Aufruf die hier übergebene Nachricht zurückgibt.
      Parameters:
      requestIndex - Request-Index der hier übergebenen Nachricht
      answer - Eigentliche Nachricht
    • getTimeoutDuration

      public long getTimeoutDuration()
      Timeout für den Empfang einer Konfigurationsantwort. Wenn diese Dauer (in timeoutUnit) überschritten wird, wird davon Ausgegangen dass keine Antwort mehr erfolgt.
      Returns:
      Wert TimeoutDuration
    • getTimeoutUnit

      public TimeUnit getTimeoutUnit()
      Gibt die Einheit von TimeoutDuration zurück.
      Returns:
      die Einheit von getTimeoutDuration()