public class CmdInterpreter
extends java.lang.Thread
Kommando-Interpreter
Modifier and Type | Field and Description |
---|---|
private java.net.Socket |
client |
Command |
closeConnCmd
Kommando zum schliessen der Verbindung (Server horcht weiter)
|
private boolean |
closeConnection |
private CmdMenu |
currentMenu |
private java.io.BufferedReader |
in |
private static Debug |
logger |
private java.io.BufferedWriter |
out |
private int |
port |
static java.lang.String |
PROMPT
Das Prompt für die Darstellung einer Eingabeaufforderung an der Konsole
|
private CmdMenu |
rootMenu |
private java.net.ServerSocket |
serverSocket |
private boolean |
showHidden
True falls zusätzliche Kommandos angezeigt werden sollen.
|
private boolean |
stopServer |
Command |
stopServerCmd
Kommando zum beenden des Serverdienstes auf localhost
|
private int |
timeout |
Constructor and Description |
---|
CmdInterpreter(int port,
int timeOutMinutes)
Erzeugt den Telnet-Server
|
CmdInterpreter(int port,
int timeOutMinutes,
boolean showHidden)
Erzeugt den Telnet-Server
|
CmdInterpreter(int port,
int timeOutMinutes,
CmdMenu root)
Erzeugt den Telnet-Server
|
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
getHelp(java.lang.String ind)
Hilfe für Menüeintrag zurückgeben
|
private java.lang.String |
getUserInput()
Benutzereingabe vom In-Stream lesen und z.B. an
menuLoop() zurückgeben, Abbruch bei Überschreitung des Server-Timeout |
void |
menuLoop()
Menü anzeigen, Navigation durchführen, Kommandos ausführen
|
void |
println(java.lang.String str)
Einen Text in den Out-Stream (z.B. via Telnet) ausgeben
|
private void |
processConnections()
Warten auf Verbindung, Menü in Loop anzeigen, Verbindung schliessen
|
void |
run() |
void |
setMenu(CmdMenu root)
Menü für den Interpreter setzen (falls noch nicht geschehen)
|
private void |
showMenu()
Aktuelles Menü darstellen
|
void |
stopServerCmd()
Beendet den Telnet-Servers.
|
private void |
waitForConnection()
Socket-Verbindung (Telnet) akzeptieren und Timeout setzen
|
activeCount, checkAccess, clone, 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
private static final Debug logger
public static java.lang.String PROMPT
Das Prompt für die Darstellung einer Eingabeaufforderung an der Konsole
private boolean closeConnection
private boolean stopServer
private int port
private int timeout
private CmdMenu currentMenu
private CmdMenu rootMenu
private java.net.Socket client
private java.net.ServerSocket serverSocket
private java.io.BufferedReader in
private java.io.BufferedWriter out
private boolean showHidden
True falls zusätzliche Kommandos angezeigt werden sollen.
public Command closeConnCmd
Kommando zum schliessen der Verbindung (Server horcht weiter)
public Command stopServerCmd
Kommando zum beenden des Serverdienstes auf localhost
public CmdInterpreter(int port, int timeOutMinutes)
Erzeugt den Telnet-Server
port
- der Port auf dem der Server horchttimeOutMinutes
- Timeout für eine Socket-Verbindungpublic CmdInterpreter(int port, int timeOutMinutes, CmdMenu root)
Erzeugt den Telnet-Server
port
- Port auf dem der Server horchtroot
- das HauptmenütimeOutMinutes
- Timeout für eine Socket-Verbindungpublic CmdInterpreter(int port, int timeOutMinutes, boolean showHidden)
Erzeugt den Telnet-Server
port
- Port auf dem der Server horchttimeOutMinutes
- Timeout für eine Socket-VerbindungshowHidden
- true
falls zusätzliche Kommandos angezeigt werden sollenpublic void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
Runnable.run()
private void processConnections() throws java.net.UnknownHostException, java.io.IOException
Warten auf Verbindung, Menü in Loop anzeigen, Verbindung schliessen
java.io.IOException
java.net.UnknownHostException
private void waitForConnection() throws java.io.IOException
Socket-Verbindung (Telnet) akzeptieren und Timeout setzen
java.io.IOException
public void menuLoop()
Menü anzeigen, Navigation durchführen, Kommandos ausführen
private java.lang.String getUserInput() throws java.lang.Exception
Benutzereingabe vom In-Stream lesen und z.B. an menuLoop()
zurückgeben, Abbruch bei Überschreitung des Server-Timeout
java.lang.Exception
private java.lang.String getHelp(java.lang.String ind)
Hilfe für Menüeintrag zurückgeben
ind
- Index des Menüeintrags (Submenü oder Kommando)private void showMenu() throws java.lang.Exception
Aktuelles Menü darstellen
java.lang.Exception
public void println(java.lang.String str) throws java.lang.Exception
Einen Text in den Out-Stream (z.B. via Telnet) ausgeben
str
- der darzustellende Stringjava.lang.Exception
public void setMenu(CmdMenu root)
Menü für den Interpreter setzen (falls noch nicht geschehen)
root
- das Menüpublic void stopServerCmd() throws java.io.IOException
Beendet den Telnet-Servers. Schliesst die Verbindung.
java.io.IOException