de.tud.dvs1.example
Class ServerImplementation

java.lang.Object
  extended by java.lang.Thread
      extended by de.tud.dvs1.mmpgp2p.MmpgP2PServiceThread
          extended by de.tud.dvs1.mmpgp2p.ServerThread
              extended by de.tud.dvs1.example.ServerImplementation
All Implemented Interfaces:
java.lang.Runnable

public class ServerImplementation
extends ServerThread

Beispiel-Implementierung eines mmpgp2p Systems. Ausgabe auf der Konsole (bisher kein GUI)


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
static java.lang.String WORLD_TILESIZE
           
static java.lang.String WORLD_TOTX
           
static java.lang.String WORLD_TOTY
           
 
Fields inherited from class de.tud.dvs1.mmpgp2p.ServerThread
initialRC, MAX_WAIT_CLIENT_CONNECT, MAX_WAIT_CLIENT_INACTIVE, PORT, regionControllers, regionTree, SERVER, SERVERNICENAME, worldInfo
 
Fields inherited from class de.tud.dvs1.mmpgp2p.MmpgP2PServiceThread
CR, logSystemStatsInterval, logSystemStatsLast, logSystemStatsStart, logSystemStatsWriter, MAGIC
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ServerImplementation(java.util.Properties p)
          Constructor
 
Method Summary
protected  Avatar[] getClientAvatars(ClientInfo c)
          Implementierung der abstrakten Methode
protected  GameWorld getInitialGameWorld()
          Die Implementierung muß eine Spielewelt liefern, mit der sich der Server initialisieren kann.
protected  Ruleset getInitialRuleset()
          Mit dieser Methode liefert die Serverklasse die Spielregeln.
 void log(java.lang.Exception e)
           
 void log(java.lang.String s)
           
protected  SessionTicket loginClient(ClientRequest client)
          Einfache Benutzerverwaltung.
static void main(java.lang.String[] args)
           
protected  int registerNewClient(ClientRequest client)
          Implementierung der abstrakten Methode
protected  void saveClientAvatars(ClientInfo c, Avatar[] avatars)
          Die zum Client gehörenden Avatare persistent sichern.
 
Methods inherited from class de.tud.dvs1.mmpgp2p.ServerThread
closedConnection, doLogSystemStats, getActiveClients, getGameWorld, getHeader, getHeaderFromInputStreamReader, getInfo, getNextFreeRC, getNumConnectionRequests, getRuleset, getServerThread, getShutdownMagic, incomingConnection, incomingData, printSystemStatsFirstLine, requestMerge, requestSplit, run, sendShutDown, splitRegion, splitRegion, stopServer, stopThread
 
Methods inherited from class de.tud.dvs1.mmpgp2p.MmpgP2PServiceThread
closeServerConnectionWorker, getConnectionWorker, getDebug, getProperties, getProperty, getProperty, getServerConnectionWorker, getSystemLoad, getSystemMemory, getThreadName, getTime, getTraffic, initSystemStats, isRunning, isStarting, log_debug, log_debug, logSystemStats, openConnection, openServerConnection, readFirstLine, resetSystemStats, setDebug, setProperty, setRunning, waitFor, waitForShutdown
 
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

WORLD_TOTX

public static java.lang.String WORLD_TOTX

WORLD_TOTY

public static java.lang.String WORLD_TOTY

WORLD_TILESIZE

public static java.lang.String WORLD_TILESIZE
Constructor Detail

ServerImplementation

public ServerImplementation(java.util.Properties p)
Constructor

Method Detail

main

public static void main(java.lang.String[] args)

getInitialGameWorld

protected GameWorld getInitialGameWorld()
Description copied from class: ServerThread
Die Implementierung muß eine Spielewelt liefern, mit der sich der Server initialisieren kann.

Specified by:
getInitialGameWorld in class ServerThread

registerNewClient

protected int registerNewClient(ClientRequest client)
Implementierung der abstrakten Methode

Specified by:
registerNewClient in class ServerThread
Parameters:
client - Enthält alle Informationen, die vom Client geliefert wurden.
Returns:
0, falls der Client angelegt werden konnte. Ansonsten einen entsprechenden Fehlercode.

getInitialRuleset

protected Ruleset getInitialRuleset()
Description copied from class: ServerThread
Mit dieser Methode liefert die Serverklasse die Spielregeln. Die Methode wird gebraucht, um den RCs und den Clients die aktuellen Spielregeln auszuliefern. Die Implementierung muß eine eigene Klasse Ruleset implementieren, diese hier instanzieren und zurückliefern.

Specified by:
getInitialRuleset in class ServerThread

getClientAvatars

protected Avatar[] getClientAvatars(ClientInfo c)
Implementierung der abstrakten Methode

Specified by:
getClientAvatars in class ServerThread
Parameters:
c - Enthält alle Informationen, die vom Client geliefert wurden.
Returns:
Einen Array von Avataren, die alle vom Client/Spieler steuerbaren Avatare darstellen.

saveClientAvatars

protected void saveClientAvatars(ClientInfo c,
                                 Avatar[] avatars)
Description copied from class: ServerThread
Die zum Client gehörenden Avatare persistent sichern. Diese Methode wird dann angewandt, wenn sich ein Client ausloggt und der zugehörige RC die Avatare des Clients zum Sichern übermittelt.

Specified by:
saveClientAvatars in class ServerThread
Parameters:
c - Enthält alle Informationen, die den Client identifizieren.
avatars - Die Avatare des Clients

loginClient

protected SessionTicket loginClient(ClientRequest client)
Einfache Benutzerverwaltung. In der Klasse wurden einfach Benutzer/Passwort Kombinationen gespeichert. Stimmen diese bei einem Login überein, dann erhält der Client sein Ticket.

Specified by:
loginClient in class ServerThread
Parameters:
client - Enthält alle Informationen, die vom Client geliefert wurden.
Returns:
Ein SessionTicket, das bereits von der aufrufenden Instanz an den Client und an die RegionController ausgeliefert worden ist.

log

public void log(java.lang.String s)
Specified by:
log in class MmpgP2PServiceThread

log

public void log(java.lang.Exception e)
Specified by:
log in class MmpgP2PServiceThread