janus.net
Class ServerLoop

java.lang.Object
  extended by janus.net.ServerLoop
All Implemented Interfaces:
Runnable

public class ServerLoop
extends Object
implements Runnable

Diese Klasse startet Janus/TCP-basierte Server. Sie implementiert einen Listener, der die Server-Instanzen startet uns stoppt. Der Listener läft in einem eigenen Thread. Jede angenommene Verbindung wird in einem eigenen Thread bearbeitet. Für jeden Thread wir ein eigenes Objekt erzeugt, dass von ServerBase abgeleitet ist. Um das Handling zu vereinfachen, muss die Serverklasse einen Konstruktor ohne Parameter implementieren.


Field Summary
protected  boolean debug
          Debugging aktiv?
protected  PrintWriter debugStream
          PrintWriter für Debugging
protected  ExceptionListener exceptionListener
          Ausgabe von Exceptions
protected  Object userObject
          Beliebiges User-Objekt.
 
Constructor Summary
ServerLoop(Class serverClass, int port)
          Konstruktor.
ServerLoop(Class serverClass, int port, InetAddress address)
          Konstruktor.
ServerLoop(Class serverClass, int port, String address)
          Konstruktor.
 
Method Summary
 String getClassName()
          Rückgabe des Klassennamens
 PrintWriter getDebugStream()
          Rückgabe des DebugStream
 Object getUserObject()
          Rückgabe des User-Objects
protected  void init(Class serverClass, int port, InetAddress address)
          Konstruktor-Helper.
 boolean isDebug()
          Rückgabe des Debugstatus
protected  void logException(Throwable t)
          Logging von Exceptions
 void run()
          Thread-Code
 boolean setDebug(boolean debug)
          Setzen des Debug-Status.
 void setDebugStream(PrintWriter stream)
          Setzen des debugStream und Debug-Status.
 void setDebugStream(String file)
          Setzen des debugStream und debug-Flags.
 void setExceptionListener(ExceptionListener exceptionListener)
          Setze den ExceptionListener für das Loggig
 void setUserObject(Object userObject)
          Setzen des User-Objects.
 void start()
          Starte den Hauptthread
 void stop()
          Halte alle Serverthreads an.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

protected boolean debug
Debugging aktiv?


debugStream

protected PrintWriter debugStream
PrintWriter für Debugging


exceptionListener

protected ExceptionListener exceptionListener
Ausgabe von Exceptions


userObject

protected Object userObject
Beliebiges User-Objekt.

Constructor Detail

ServerLoop

public ServerLoop(Class serverClass,
                  int port)
Konstruktor.

Parameters:
serverClass - Class-Objekt der Serverimplementierung, die von ServerBase abgeleitet sein muss
port - Portnummer der eingehenden Verbindung

ServerLoop

public ServerLoop(Class serverClass,
                  int port,
                  InetAddress address)
Konstruktor.

Parameters:
serverClass - Class-Objekt der Serverimplementierung, die von ServerBase abgeleitet sein muss
port - Portnummer der eingehenden Verbindung
address - Interface (kann null sein für alle Interfaces)

ServerLoop

public ServerLoop(Class serverClass,
                  int port,
                  String address)
Konstruktor.

Parameters:
serverClass - Class-Objekt der Serverimplementierung, die von ServerBase abgeleitet sein muss
port - Portnummer der eingehenden Verbindung
address - Interface (kann null sein für alle Interfaces)
Method Detail

getClassName

public String getClassName()
Rückgabe des Klassennamens


getDebugStream

public PrintWriter getDebugStream()
Rückgabe des DebugStream


getUserObject

public Object getUserObject()
Rückgabe des User-Objects


init

protected void init(Class serverClass,
                    int port,
                    InetAddress address)
Konstruktor-Helper.

Parameters:
serverClass - Class-Objekt der Serverimplementierung, die von ServerBase abgeleitet sein muss
port - Portnummer der eingehenden Verbindung
address - Interface (kann null sein für alle Interfaces)

isDebug

public boolean isDebug()
Rückgabe des Debugstatus


logException

protected void logException(Throwable t)
Logging von Exceptions

Parameters:
t - Die Exception

run

public void run()
Thread-Code

Specified by:
run in interface Runnable

setDebug

public boolean setDebug(boolean debug)
Setzen des Debug-Status. Schlägt auf alle Server durch

Parameters:
debug - Debug-Status
Returns:
der vorherige Stand

setDebugStream

public void setDebugStream(PrintWriter stream)
Setzen des debugStream und Debug-Status. Schlägt auf alle Server durch

Parameters:
stream - Ausgabe-Stream für Debugausgaben

setDebugStream

public void setDebugStream(String file)
Setzen des debugStream und debug-Flags. Schlägt auf alle Server durch

Parameters:
file - Dateiname für Debugausgaben

setExceptionListener

public void setExceptionListener(ExceptionListener exceptionListener)
Setze den ExceptionListener für das Loggig

Parameters:
exceptionListener - Der Listener

setUserObject

public void setUserObject(Object userObject)
Setzen des User-Objects. Dieses Object wird an jeden Server weitergegeben. Hier können zum Beispiel Konfigurationsoptionen abgelegt werden.

Parameters:
userObject - Beliebiges Objekt

start

public void start()
           throws IOException
Starte den Hauptthread

Throws:
IOException - ServerSocket kann nicht erzeugt werden

stop

public void stop()
Halte alle Serverthreads an.



Copyright © 2008 MvC Systemsoftware.