Class RequestReceiver<T>


  • public class RequestReceiver<T>
    extends java.lang.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 Summary

      Constructors 
      Constructor Description
      RequestReceiver​(long timeoutDuration, java.util.concurrent.TimeUnit unit)
      Erstellt einen neuen RequestReceiver.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void answerReceived​(int requestIndex, T answer)
      Wird aufgerufen, wenn eine Konfigurationsantwort eingegangen ist.
      T getAnswer​(int requestIndex)
      Holt eine bereits eingegangene Konfigurationsantwort ab, oder wartet maximal timeoutDuration, bis diese noch ankommt.
      long getTimeoutDuration()
      Timeout für den Empfang einer Konfigurationsantwort.
      java.util.concurrent.TimeUnit getTimeoutUnit()
      Gibt die Einheit von TimeoutDuration zurück.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RequestReceiver

        public RequestReceiver​(long timeoutDuration,
                               java.util.concurrent.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 Detail

      • 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