net.sf.colossus.webserver
Class WebServerClientSocketThread
java.lang.Object
java.lang.Thread
net.sf.colossus.webserver.WebServerClientSocketThread
- All Implemented Interfaces:
- java.lang.Runnable, IWebClient
public class WebServerClientSocketThread
- extends java.lang.Thread
- implements IWebClient
Thread to handle one user client connection at the webserver
Reads always one line from the socket, parses it and
executes the corresponding action.
This class also provides the methods which the server calls
on the client (=translates method calls to sending them as text
messages over the socket).
- Author:
- Clemens Katzer
Nested classes/interfaces inherited from class java.lang.Thread |
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary |
private boolean |
done
|
private java.io.BufferedReader |
in
|
private java.io.InputStream |
is
|
private boolean |
loggedIn
|
private static java.util.logging.Logger |
LOGGER
|
private java.io.PrintWriter |
out
|
private static java.lang.String |
sep
|
private WebServer |
server
|
private java.net.Socket |
socket
|
private java.lang.Thread |
stopper
|
private User |
user
|
Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Fields inherited from interface net.sf.colossus.webcommon.IWebClient |
alreadyLoggedIn, chatDeliver, connectionClosed, didEnroll, didUnenroll, forcedLogout, gameCancelled, gameInfo, gameStarted, gameStartsNow, gameStartsSoon, grantAdmin, tooManyUsers, userInfo |
Method Summary |
void |
chatDeliver(java.lang.String chatId,
long when,
java.lang.String sender,
java.lang.String message,
boolean resent)
|
void |
connectionReset(boolean forcedLogout)
|
void |
didEnroll(java.lang.String gameId,
java.lang.String username)
|
void |
didUnenroll(java.lang.String gameId,
java.lang.String username)
|
protected void |
forceLogout(WebServerClientSocketThread other)
|
void |
gameCancelled(java.lang.String gameId,
java.lang.String byUser)
|
void |
gameInfo(GameInfo gi)
|
void |
gameStarted(java.lang.String gameId)
|
void |
gameStartsNow(java.lang.String gameId,
int port,
java.lang.String hostingHost)
|
void |
gameStartsSoon(java.lang.String gameId)
|
(package private) User |
getUser()
|
void |
grantAdminStatus()
|
void |
interrupt()
|
private boolean |
parseLine(java.lang.String fromClient)
|
static void |
reject(java.net.Socket socket)
|
void |
run()
prepare socket to read/write, and then loop as long
as lines from client come, and parse them |
private void |
sendToClient(java.lang.String s)
|
void |
tellToTerminate()
|
void |
userInfo(int loggedin,
int enrolled,
int playing,
int dead,
long ago,
java.lang.String text)
|
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, 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 |
LOGGER
private static final java.util.logging.Logger LOGGER
server
private WebServer server
socket
private java.net.Socket socket
is
private java.io.InputStream is
in
private java.io.BufferedReader in
out
private java.io.PrintWriter out
user
private User user
loggedIn
private boolean loggedIn
sep
private static final java.lang.String sep
- See Also:
- Constant Field Values
stopper
private java.lang.Thread stopper
done
private boolean done
WebServerClientSocketThread
public WebServerClientSocketThread(WebServer server,
java.net.Socket socket)
reject
public static void reject(java.net.Socket socket)
getUser
User getUser()
tellToTerminate
public void tellToTerminate()
interrupt
public void interrupt()
- Overrides:
interrupt
in class java.lang.Thread
run
public void run()
- prepare socket to read/write, and then loop as long
as lines from client come, and parse them
- Specified by:
run
in interface java.lang.Runnable
- Overrides:
run
in class java.lang.Thread
parseLine
private boolean parseLine(java.lang.String fromClient)
forceLogout
protected void forceLogout(WebServerClientSocketThread other)
sendToClient
private void sendToClient(java.lang.String s)
grantAdminStatus
public void grantAdminStatus()
- Specified by:
grantAdminStatus
in interface IWebClient
didEnroll
public void didEnroll(java.lang.String gameId,
java.lang.String username)
- Specified by:
didEnroll
in interface IWebClient
didUnenroll
public void didUnenroll(java.lang.String gameId,
java.lang.String username)
- Specified by:
didUnenroll
in interface IWebClient
gameCancelled
public void gameCancelled(java.lang.String gameId,
java.lang.String byUser)
- Specified by:
gameCancelled
in interface IWebClient
userInfo
public void userInfo(int loggedin,
int enrolled,
int playing,
int dead,
long ago,
java.lang.String text)
- Specified by:
userInfo
in interface IWebClient
gameInfo
public void gameInfo(GameInfo gi)
- Specified by:
gameInfo
in interface IWebClient
gameStartsSoon
public void gameStartsSoon(java.lang.String gameId)
- Specified by:
gameStartsSoon
in interface IWebClient
gameStartsNow
public void gameStartsNow(java.lang.String gameId,
int port,
java.lang.String hostingHost)
- Specified by:
gameStartsNow
in interface IWebClient
gameStarted
public void gameStarted(java.lang.String gameId)
- Specified by:
gameStarted
in interface IWebClient
chatDeliver
public void chatDeliver(java.lang.String chatId,
long when,
java.lang.String sender,
java.lang.String message,
boolean resent)
- Specified by:
chatDeliver
in interface IWebClient
connectionReset
public void connectionReset(boolean forcedLogout)
- Specified by:
connectionReset
in interface IWebClient