de.bsvrz.sys.dcf77.ntp.realclient
Class RealNTPClient

java.lang.Object
  extended by de.bsvrz.sys.dcf77.ntp.realclient.RealNTPClient
All Implemented Interfaces:
IntpAllgemein

public class RealNTPClient
extends java.lang.Object
implements IntpAllgemein

Klasse realisiert einen realen NTP-Client. Der Client erfragt zyklisch den Zustand des NTP Servers. Der aktuelle Zustand wird der Zeitverwaltung ueber das Interface IntpAllgemein zur Verfuegung gestellt.
Der ntp Status wird mit Hilfe des Programms ntpq -p überprueft.

Author:
ChriestenJ

Field Summary
private  DataAspZustand m_aktuellerZustand
          aktueller Aspekt "Recher.dcfStatus.Zustand"
private  NTPinfoPoller m_NTPinfoPoller
          Thread Klasse, die im Konstruktor gestartet wird
private  IntpTrigger m_ntpTrigger
          Schnittstellenobjekt um den Senderthread aufzuwecken
 
Constructor Summary
RealNTPClient()
          Konstruktor mit leeren Parametern.
RealNTPClient(java.lang.String argString)
          Konstruktor
 
Method Summary
 void beenden()
          Beendet den NTPClient
 java.lang.String getAktuellerZeitServer()
          Liefert den Namen des aktuellen Zeitserver
 java.lang.String[] getVorhandeneZeitServer()
          Liefert die Namen der vorhandenen Zeitserver
 java.lang.String getZeitKorrektur()
          Liefert Zeitkorrektur mit Zeitstempel und Korrekturzeit in Millisekunden.
private  void initKonstruktor(java.lang.String argString)
          Hilfsfunktion fuer Konstrukturtoren.
static void main(java.lang.String[] args)
          Testroutine fuer das lokale Modul.
 void setAktuellerZustand(DataAspZustand aktuellerZustand)
          siehe setAktuellerZustand(DataAspZustand, Boolean)
 void setAktuellerZustand(DataAspZustand aktuellerZustand, java.lang.Boolean wakeSenderThread)
          Setzt den aktuellen Zustand im Zeitserverclient.
 void setInstance(IntpTrigger ntpTrigger)
          Methode mit der die Klasse, die das Interface implementiert die Instanz der rufende Klasse mitgeteilt wird.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_aktuellerZustand

private DataAspZustand m_aktuellerZustand
aktueller Aspekt "Recher.dcfStatus.Zustand"


m_ntpTrigger

private IntpTrigger m_ntpTrigger
Schnittstellenobjekt um den Senderthread aufzuwecken


m_NTPinfoPoller

private NTPinfoPoller m_NTPinfoPoller
Thread Klasse, die im Konstruktor gestartet wird

Constructor Detail

RealNTPClient

public RealNTPClient()
Konstruktor mit leeren Parametern. Defaultmaessig werden die Parameter folgendermassen belegt: cmd=ntpq -p
zyklusZeit=60
maxZyklen=-1 (unendlich viele Zyklen)
Parameterbeschreibung, siehe RealNTPClient(String)


RealNTPClient

public RealNTPClient(java.lang.String argString)
Konstruktor

Parameters:
argString - optionaler Argumentstring
---cmd=... ---zyklusZeit=... ---maxZyklen=...
Der Befehl cmd wird zyklisch alle zyklusZeit sec ausgefuehrt. Es werden maximal maxZyklen durchgefuehrt.
Method Detail

initKonstruktor

private void initKonstruktor(java.lang.String argString)
Hilfsfunktion fuer Konstrukturtoren.

Parameters:
argString - siehe Kontruktur mit Parameter argString

getAktuellerZeitServer

public java.lang.String getAktuellerZeitServer()
Description copied from interface: IntpAllgemein
Liefert den Namen des aktuellen Zeitserver

Specified by:
getAktuellerZeitServer in interface IntpAllgemein
Returns:
aktueller Zeitserver: Rechnername, IP Addresse (z.B. z.B. 172.16.3.103) oder n/a (nicht ermittelbar)

getZeitKorrektur

public java.lang.String getZeitKorrektur()
Description copied from interface: IntpAllgemein
Liefert Zeitkorrektur mit Zeitstempel und Korrekturzeit in Millisekunden.

Specified by:
getZeitKorrektur in interface IntpAllgemein
Returns:
String Zeitkorrektur, n/a (keine Korrektur seit letzter Abfrage) oder "Datum, Uhrzeit, Korrektur in Millisekunden" (z.B. 01.06.2007, 12:54:35, n/a, 01.06.2007, 12:54:35, 886)

getVorhandeneZeitServer

public java.lang.String[] getVorhandeneZeitServer()
Description copied from interface: IntpAllgemein
Liefert die Namen der vorhandenen Zeitserver

Specified by:
getVorhandeneZeitServer in interface IntpAllgemein
Returns:
String Liste mit Namen, mögliche Formate: Rechnername, IP Addresse oder n/a (nicht ermittelbar)

setInstance

public void setInstance(IntpTrigger ntpTrigger)
Description copied from interface: IntpAllgemein
Methode mit der die Klasse, die das Interface implementiert die Instanz der rufende Klasse mitgeteilt wird. Die Interface-implentierende Klasse kann dann ihrerseits auf die Schnittstellen der rufende Klasse zugreifen.

Specified by:
setInstance in interface IntpAllgemein
Parameters:
ntpTrigger - Instanz der Triggerklasse ntpTrigger.setTrigger() unterbricht den Wartezyklus des SenderThreads

beenden

public void beenden()
Beendet den NTPClient


setAktuellerZustand

public void setAktuellerZustand(DataAspZustand aktuellerZustand,
                                java.lang.Boolean wakeSenderThread)
Setzt den aktuellen Zustand im Zeitserverclient. Dieser Zustand wird vom SenderThread der Zeitverwaltung zyklisch gelesen.

Parameters:
aktuellerZustand - Instanz mit den aktuellen Zeitserverdaten
wakeSenderThread - Flag zur Unterbrechung des aktuellen Senderthread Warte-Zyklus, default = false

setAktuellerZustand

public void setAktuellerZustand(DataAspZustand aktuellerZustand)
siehe setAktuellerZustand(DataAspZustand, Boolean)

Parameters:
aktuellerZustand - Übergabe der aktuellen Zeitserverdaten als Objekt

main

public static void main(java.lang.String[] args)
Testroutine fuer das lokale Modul. Wird fuer verschiedene Tests im Laufe des Entwicklungs- und Wartungsprozesses verwendet

Parameters:
args - Testargumente