de.bsvrz.dav.daf.communication.lowLevel
Class LowLevelCommunication.ThroughputChecker

java.lang.Object
  extended by de.bsvrz.dav.daf.communication.lowLevel.LowLevelCommunication.ThroughputChecker
Enclosing class:
LowLevelCommunication

private class LowLevelCommunication.ThroughputChecker
extends Object


Field Summary
private  int _buffersizeThreshold
          Anzahl Bytes im Sendepuffer, ab dem die Durchsatzprüfung gestartet wird.
private  long _controlInterval
          Die Zeit zwischen zwei Messungen der Durchsatzprüfung in Millisekunden
private  long _lastCheckedThroughput
           
private  int _minimumThroughput
          Minimaler Sendedurchsatz für die Durchsatzprüfung in Bytes pro Sekunde
private  int _numberOfBytesSent
           
(package private)  LowLevelCommunication.ThroughputCheckerState _state
           
private  long _stateChangeTime
           
 
Constructor Summary
LowLevelCommunication.ThroughputChecker()
           
 
Method Summary
 long checkThroughput()
          Prüft den Durchsatz und liefert die Zeit bis zur nächsten Prüfung zurück.
 String getSendBufferState()
          Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers
 void queuedTelegram()
           
 void sentTelegram(int telegramSize)
           
private  void setState(LowLevelCommunication.ThroughputCheckerState state)
           
 void setThroughputParameters(float throughputControlSendBufferFactor, long throughputControlInterval, int minimumThroughput)
          Diese Methode setzt die Parameter für die Durchsatzprüfung.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_buffersizeThreshold

private int _buffersizeThreshold
Anzahl Bytes im Sendepuffer, ab dem die Durchsatzprüfung gestartet wird.


_controlInterval

private long _controlInterval
Die Zeit zwischen zwei Messungen der Durchsatzprüfung in Millisekunden


_minimumThroughput

private int _minimumThroughput
Minimaler Sendedurchsatz für die Durchsatzprüfung in Bytes pro Sekunde


_state

LowLevelCommunication.ThroughputCheckerState _state

_stateChangeTime

private long _stateChangeTime

_numberOfBytesSent

private int _numberOfBytesSent

_lastCheckedThroughput

private long _lastCheckedThroughput
Constructor Detail

LowLevelCommunication.ThroughputChecker

public LowLevelCommunication.ThroughputChecker()
Method Detail

setThroughputParameters

public final void setThroughputParameters(float throughputControlSendBufferFactor,
                                          long throughputControlInterval,
                                          int minimumThroughput)
Diese Methode setzt die Parameter für die Durchsatzprüfung.

Parameters:
throughputControlSendBufferFactor - Füllungsgrad des Sendepuffers als Faktor zwischen 0 und 1, ab dem die Durchsatzprüfung anfängt zu arbeiten.
throughputControlInterval - Zeit zwischen zwei Durchsatzprüfungen in Millisekunden
minimumThroughput - Minimal zulässiger Verbindungsdurchsatz in Bytes pro Sekunde

setState

private void setState(LowLevelCommunication.ThroughputCheckerState state)

queuedTelegram

public void queuedTelegram()

sentTelegram

public void sentTelegram(int telegramSize)

checkThroughput

public long checkThroughput()
Prüft den Durchsatz und liefert die Zeit bis zur nächsten Prüfung zurück.

Returns:
Zeit bis zur nächsten Prüfung in Millisekunden
Throws:
IllegalStateException - wenn ein zu geringer Durchsatz festgestellt wurde.

getSendBufferState

public String getSendBufferState()
Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers

Returns:
Zustand des Sendepuffers