JavaQuest.Server
Class CClientThread

java.lang.Object
  |
  +--java.rmi.server.RemoteObject
        |
        +--java.rmi.server.RemoteServer
              |
              +--java.rmi.server.UnicastRemoteObject
                    |
                    +--JavaQuest.Server.CClientThread
All Implemented Interfaces:
IClientThreadProxy, java.rmi.Remote, java.lang.Runnable, java.io.Serializable

public class CClientThread
extends java.rmi.server.UnicastRemoteObject
implements IClientThreadProxy, java.lang.Runnable

RMI-Kommunikations-Thread, fuer jeden Client wir ein Thread erzeugt
der Thread nimmt die RMI-Methodenaufrufe des Clients entgegen, und delegiert diese an die verantwortlichen Objekte.

See Also:
CGame, IClientProxy, CPlayer, Serialized Form

Field Summary
private  boolean m_bOn
          Run-Flag des Threads
private  IClientProxy m_oClient
          Proxy fuer RMI-Aufrufe
private  CGame m_oGame
          Zentrales Spiele-Objekt
private  CPlayer m_oPlayer
          Playerobjekt des jeweiligen Threads
private  java.lang.String m_sName
          Name des Clients
 
Fields inherited from class java.rmi.server.UnicastRemoteObject
csf, port, portFactoryParamTypes, portParamTypes, serialVersionUID, ssf
 
Fields inherited from class java.rmi.server.RemoteServer
log, logname
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Constructor Summary
CClientThread()
          Default-Konstruktor
CClientThread(CGame _oGame, IClientProxy _oClient, java.lang.String _sName, CPlayer _oPlayer)
          Konstruktor mit Game, ClientProxy, Name und Spieler
 
Method Summary
 boolean activateItem(int _iItemIndex)
          Spieler will ein Gegenstand aktivieren
wird an CPlayer weitergeleitet
 boolean activatePlayer(int _iTimeout)
          startet die Runde des Spielers auf Clientseite
wird an IClientProxy weitergeleitet
 void beenden()
          Thread soll sich beenden, beendet die while-schleife
 boolean deactivateItem(int _iItemIndex)
          Spieler will ein Gegenstand deaktivieren
wird an CPlayer weitergeleitet
 boolean deactivatePlayer()
          beendet die Runde des Spielers auf Clientseite
wird an IClientProxy weitergeleitet
 void endTurn()
          beendet die Runde des Spieler
wird an CGame weitergeleitet
 boolean execute(int _iCmdIndex)
          Spieler will ein Gegenstand aktivieren
wird an CGame weitergeleitet
 void gameover()
          Teilt dem Client mit fuer ihn das Spiel zu ende ist
 java.lang.String getInfo(CField _oField)
          Liefert Informationen ueber ein Feld und der darauf befindlichen Objekte
wird an CField weitergeleitet
 java.lang.String getInfo(CItem _oItem)
          Liefert Informationen ueber einen Gegenstand
wird an CItem weitergeleitet
 java.util.Vector getItemsActive()
          Anforderung der Liste mit den aktiven Gegenstaenden des Spielers
wird an CPlayer weitergeleitet
 java.util.Vector getItemsInactive()
          Anforderung der Liste mit den inaktiven Gegenstaenden des Spielers
wird an CPlayer weitergeleitet
 CPlayer getPlayer()
          Gibt Referenz auf Spieler zurueck
 java.util.Vector getPossibleCommands(CField _oField)
          Moegliche Kommandos erzeugen und dem Client geben, Funktion in Kommandofactory
wird an CGame weitergeleitet
 void maprefresh(CMap _oMap)
          die GUI vom Client aktualisieren
 void run()
          'main' von Thread
 boolean SendMessageToPlayer(java.lang.String _sMessage, boolean _bCritical)
          sendet einen Nachricht an den Client
 void ShutDownClient()
          Beendet Verbindung zum Client
 
Methods inherited from class java.rmi.server.UnicastRemoteObject
, clone, exportObject, exportObject, exportObject, exportObject, readObject, reexport, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub, writeObject
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

m_oGame

private CGame m_oGame
Zentrales Spiele-Objekt

m_oClient

private IClientProxy m_oClient
Proxy fuer RMI-Aufrufe

m_bOn

private boolean m_bOn
Run-Flag des Threads

m_sName

private java.lang.String m_sName
Name des Clients

m_oPlayer

private CPlayer m_oPlayer
Playerobjekt des jeweiligen Threads
Constructor Detail

CClientThread

public CClientThread()
              throws java.rmi.RemoteException
Default-Konstruktor

CClientThread

public CClientThread(CGame _oGame,
                     IClientProxy _oClient,
                     java.lang.String _sName,
                     CPlayer _oPlayer)
              throws java.rmi.RemoteException
Konstruktor mit Game, ClientProxy, Name und Spieler
Parameters:
_oGame - Referenz auf das zentrale Spiel-Objekt
_oClient - Interface fuer Methodenaufrufe beim Client
_sName - Name(Alias) des Spielers vom Client
_oPlayer - Spielerobjekt das dem ClientThread zugeordnet ist
See Also:
CGame, IClientProxy, CPlayer
Method Detail

beenden

public void beenden()
Thread soll sich beenden, beendet die while-schleife

maprefresh

public void maprefresh(CMap _oMap)
die GUI vom Client aktualisieren
Parameters:
_oMap - Kopier von der Map, diese und die darauf befindlichen Objekte werden beim Client gezeichnet
See Also:
CMap

activateItem

public boolean activateItem(int _iItemIndex)
                     throws java.rmi.RemoteException
Spieler will ein Gegenstand aktivieren
wird an CPlayer weitergeleitet
Specified by:
activateItem in interface IClientThreadProxy
Parameters:
_iItemIndex - Index des Gegenstandes in der Liste der inaktiven Gegenstaende
Returns:
ob der Gegenstand aktiviert werden konnte

deactivateItem

public boolean deactivateItem(int _iItemIndex)
                       throws java.rmi.RemoteException
Spieler will ein Gegenstand deaktivieren
wird an CPlayer weitergeleitet
Specified by:
deactivateItem in interface IClientThreadProxy
Parameters:
_iItemIndex - Index des Gegenstandes in der Liste der aktiven Gegenstaende
Returns:
ob der Gegenstand deaktiviert werden konnte

execute

public boolean execute(int _iCmdIndex)
                throws java.rmi.RemoteException
Spieler will ein Gegenstand aktivieren
wird an CGame weitergeleitet
Specified by:
execute in interface IClientThreadProxy
Parameters:
_iCmdIndex - Index des Kommandos in der Liste alles moeglichen Kommandos
Returns:
ob das Kommando erfolgreich ausgefuehrt werden konnte

getPossibleCommands

public java.util.Vector getPossibleCommands(CField _oField)
                                     throws java.rmi.RemoteException
Moegliche Kommandos erzeugen und dem Client geben, Funktion in Kommandofactory
wird an CGame weitergeleitet
Specified by:
getPossibleCommands in interface IClientThreadProxy
Parameters:
_oField - Feld fuer das die Kommandos angefordert werden
Returns:
Liste mit allen ausfuehrbaren Kommandos fuer das Feld
See Also:
CField

getInfo

public java.lang.String getInfo(CItem _oItem)
                         throws java.rmi.RemoteException
Liefert Informationen ueber einen Gegenstand
wird an CItem weitergeleitet
Specified by:
getInfo in interface IClientThreadProxy
Parameters:
_oItem - Gegenstand, von dem die Informationen abgerufen werden sollen
Returns:
String, der die Informationen des Gegenstandes enthaelt
See Also:
CItem

getInfo

public java.lang.String getInfo(CField _oField)
                         throws java.rmi.RemoteException
Liefert Informationen ueber ein Feld und der darauf befindlichen Objekte
wird an CField weitergeleitet
Specified by:
getInfo in interface IClientThreadProxy
Parameters:
_oField - Feld, von dem die Informationen abgerufen werden sollen
Returns:
String, der die Informationen des Feldes enthaelt
See Also:
CField

getItemsActive

public java.util.Vector getItemsActive()
                                throws java.rmi.RemoteException
Anforderung der Liste mit den aktiven Gegenstaenden des Spielers
wird an CPlayer weitergeleitet
Specified by:
getItemsActive in interface IClientThreadProxy
Returns:
Liste, der aktiven Gegenstaende des Spieler
See Also:
CItem

getItemsInactive

public java.util.Vector getItemsInactive()
                                  throws java.rmi.RemoteException
Anforderung der Liste mit den inaktiven Gegenstaenden des Spielers
wird an CPlayer weitergeleitet
Specified by:
getItemsInactive in interface IClientThreadProxy
Returns:
Liste, der inaktiven Gegenstaende des Spieler
See Also:
CItem

endTurn

public void endTurn()
             throws java.rmi.RemoteException
beendet die Runde des Spieler
wird an CGame weitergeleitet
Specified by:
endTurn in interface IClientThreadProxy
Following copied from interface: JavaQuest.Server.IClientThreadProxy
See Also:
CClientThread

activatePlayer

public boolean activatePlayer(int _iTimeout)
startet die Runde des Spielers auf Clientseite
wird an IClientProxy weitergeleitet
Parameters:
_iTimeout - Dauer der Runde in Sekundens

deactivatePlayer

public boolean deactivatePlayer()
beendet die Runde des Spielers auf Clientseite
wird an IClientProxy weitergeleitet
Returns:
true wenn Spieler deaktiviert wurde

getPlayer

public CPlayer getPlayer()
Gibt Referenz auf Spieler zurueck
Specified by:
getPlayer in interface IClientThreadProxy
Returns:
Referenz auf den Spieler des ClientThreads
See Also:
CPlayer

SendMessageToPlayer

public boolean SendMessageToPlayer(java.lang.String _sMessage,
                                   boolean _bCritical)
sendet einen Nachricht an den Client
Parameters:
_sMessage - String, der die Nachricht enthaelt
_bCritical - boolean, ob die Meldung systemkritisch ist (dann Dialogbox, sonst Infofeld)
Returns:
true, wenn die Nachricht an Client uebermittelt werden konnte

ShutDownClient

public void ShutDownClient()
Beendet Verbindung zum Client

gameover

public void gameover()
Teilt dem Client mit fuer ihn das Spiel zu ende ist

run

public void run()
'main' von Thread
Specified by:
run in interface java.lang.Runnable