|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Thread
de.bsvrz.sys.dcf77.ntp.realclient.NTPinfoPoller
public class NTPinfoPoller
Liest zyklisch die aktuelle NTP Server Info mit ntpq -p; Aenderungen werden dem RealNTPClient gemeldet
Nested Class Summary | |
---|---|
(package private) class |
NTPinfoPoller.NtpServerInfo
private Klasse zur Speicherung der gelesenen Serverinformation |
Nested classes/interfaces inherited from class java.lang.Thread |
---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
private de.bsvrz.sys.funclib.debug.Debug |
_debug
|
private int |
JITTER
|
private java.lang.String |
m_cmd
Kommando zur Abfrage der NTP Info. |
private java.lang.Boolean |
m_erstesMal
Fuer wait-Zyklus. |
private int |
m_failCount
Zaehler Lesefehler. |
private NTPinfoPoller.NtpServerInfo |
m_lastNtpServerInfo
die zuletzt gelesene ServerInforamtion |
private long |
m_oschwelle
offset nur Protokollieren, wenn betragsmäßig grösser negativ: immer protokollieren |
private RealNTPClient |
m_realNTPClient
Klasse, die das Interface implementiert. |
private java.lang.Boolean |
m_shutDown
|
private long |
m_zyklusCount
Anzahl bisheriger Zyklen. |
private long |
m_zyklusCountMax
Maximale Zyklusanzahl. |
private long |
m_zyklusZeit
Zeitdauer zwischen 2 NTP ServerInfo Abfragen in sec |
private int |
OFFSET
|
private int |
REACH
|
private int |
REFID
|
private int |
REMOTE
Hilfvariablen zur Ausgabeinterpretation |
private int |
ST
|
private int |
WHEN
|
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
NTPinfoPoller(java.lang.String cmd,
RealNTPClient realNTPClient,
long zyklusZeit,
long zyklusCountMax,
long oschwelle)
Konstruktor |
Method Summary | |
---|---|
private void |
checkNewServerInfo()
Hauptoutine der Klasse. |
private DataAspZustand |
cpNtpServerInfo2DataAspZustand(NTPinfoPoller.NtpServerInfo ntpServerInfo)
Hilffunktion: Konvertiert ntpServerInfo in eine Instanz des Typs DataAspZustand |
private void |
destroyProcess(java.lang.Process p)
zerstort p und gibt dessen resourcen frei |
static void |
main(java.lang.String[] args)
Testroutine fuer das lokale Modul. |
void |
myClose(java.io.Closeable c)
schliesst das uebergebene closable. |
private java.lang.Boolean |
mywait()
Wrapper Funktion fuer wait() beim ersten Aufruf nach Obejtkinstanziierung wird nicht gewartet Wenn der Thread beendet werden soll, liefert die Routine false, ansonsten true |
private void |
parseInfo(java.lang.String cmdInfo,
NTPinfoPoller.NtpServerInfo ntpServerInfo)
Interpretiert cmdInfo (Ausgabe von ntpq -p) |
private void |
parseInfoLine(java.lang.String line,
NTPinfoPoller.NtpServerInfo ntpServerInfo)
Interpretiert eine Zeile des Kommandos (ntpq -p) |
private int |
readData(java.lang.String cmd,
NTPinfoPoller.NtpServerInfo ntpServerInfo)
Startet das uebergebene Kommando (ntpq -p), interpretiert dessen Ausgabe und stellt es in der Instanz ntpServerInfo zur Verfügung. |
void |
run()
Liest zyklisch die Zeitserver Informationen in einer Endlosschleife. |
void |
set_shutDown()
Beendet den Thread dieser Instanz |
private java.lang.Boolean |
warteBereit(java.io.BufferedReader br1,
java.io.BufferedReader br2)
Wartet bis br1 oder br2 bereit sind, Hilffunktion zu warteBereit(BufferedReader, BufferedReader)
Lesen vor bereit führt in manachen Fällen zum Aufhängen des Lesebefehls. |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private de.bsvrz.sys.funclib.debug.Debug _debug
private java.lang.String m_cmd
private RealNTPClient m_realNTPClient
private NTPinfoPoller.NtpServerInfo m_lastNtpServerInfo
private int m_failCount
private java.lang.Boolean m_shutDown
private long m_zyklusZeit
private java.lang.Boolean m_erstesMal
private long m_zyklusCount
private long m_zyklusCountMax
private long m_oschwelle
private final int REMOTE
private final int REFID
private final int ST
private final int WHEN
private final int REACH
private final int OFFSET
private final int JITTER
Constructor Detail |
---|
public NTPinfoPoller(java.lang.String cmd, RealNTPClient realNTPClient, long zyklusZeit, long zyklusCountMax, long oschwelle)
cmd
- Auszufuerendes Kommando. Ausgabe wie ntpq -prealNTPClient
- realer NTP ClientzyklusZeit
- Wartezeit zwischen Pruefungen in seczyklusCountMax
- höchstens so viele Schleifen durchlaufen (-1) unendlichoschwelle
- Abweichung offset nur protokollieren,
wenn Schwelle betragsmäßig über oder unterschritten wirdMethod Detail |
---|
public void set_shutDown()
private void checkNewServerInfo()
private DataAspZustand cpNtpServerInfo2DataAspZustand(NTPinfoPoller.NtpServerInfo ntpServerInfo)
ntpServerInfo
- zu konvertierende Instanz
private int readData(java.lang.String cmd, NTPinfoPoller.NtpServerInfo ntpServerInfo)
cmd
- Auszuführendes Kommando, Ausgabe muss ntpq -p entsprechenntpServerInfo
- Ausgabeinstanz
private void destroyProcess(java.lang.Process p)
p
- Prozess, der zerstoert werden sollpublic void myClose(java.io.Closeable c)
c
- zu schliessendes ObjektcheckStd
- true: wenn Standard Stream nicht schliessenprivate java.lang.Boolean warteBereit(java.io.BufferedReader br1, java.io.BufferedReader br2) throws java.io.IOException, java.lang.InterruptedException
warteBereit(BufferedReader, BufferedReader)
Lesen vor bereit führt in manachen Fällen zum Aufhängen des Lesebefehls.
Falls keiner der Reader innerhalb von 6,15 sec bereit ist, wird das Programm beendet
br1
- zu pruefender BufferedReaderbr2
- zu pruefender BufferedReader
java.lang.InterruptedException
java.lang.Exception
java.io.IOException
private void parseInfo(java.lang.String cmdInfo, NTPinfoPoller.NtpServerInfo ntpServerInfo)
cmdInfo
- String mit der Ausgabe von ntpq -pntpServerInfo
- Ergebnisinstanzprivate void parseInfoLine(java.lang.String line, NTPinfoPoller.NtpServerInfo ntpServerInfo)
line
- eine Ergebniszeile (kein Header)ntpServerInfo
- Ergebnisstrukturprivate java.lang.Boolean mywait()
public void run()
RealNTPClient
geliefert.
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public static void main(java.lang.String[] args)
args
- Testargumente
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |