Class ClientThread
java.lang.Object
java.lang.Thread
net.sf.colossus.client.ClientThread
- All Implemented Interfaces:
Runnable
This will be a thread that executes all the client side processing;
additional to the actual SocketClientThread which did that earlier.
SCT will only handle the reading from Socket and push incoming
messages to a queue and return back to listening on the socket.
This way, it should be able to read all data in time so that no
data pile up, and reply to ping requests almost instantly.
ClientThread gets most of messages to parse already via a queue.
Should also sending use a queue, and/or, the sending methods be
inside ClientThread, and SocketClientThread merely provide the
sendToServer method (which could be implemented differently e.g.
in a "send via queue, instead of via socket", for local clients)?
- Author:
- Clemens Katzer
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Clientprivate booleanprivate static final ClientThread.ServerEventprivate final booleanprivate static final Loggerprivate final LinkedBlockingQueue<ClientThread.ServerEvent> private final intprivate static intFields inherited from class Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidprivate voidcallMethod(String method, List<String> args) voidvoidvoidstatic longgetNow()intintprivate static intvoidvoidnotifyUserIfGameIsPaused(String message) private BattleHexresolveBattleHex(String hexLabel) private CreatureTyperesolveCreatureType(String creatureName) private List<CreatureType> resolveCreatureTypes(String nameList) private MasterHexresolveHex(String label) private LegionresolveLegion(String markerId) voidrun()voidMethods inherited from class Thread
activeCount, checkAccess, clone, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, threadId, toString, yield
-
Field Details
-
LOGGER
-
threadNumberCounter
private static int threadNumberCounter -
threadNr
private final int threadNr -
client
-
queue
-
done
private boolean done -
LOG_PROCESSING_TIMES
private final boolean LOG_PROCESSING_TIMES- See Also:
-
END_EVENT
-
-
Constructor Details
-
ClientThread
-
-
Method Details
-
nextThreadNumber
private static int nextThreadNumber() -
getThreadNumber
public int getThreadNumber() -
enqueue
-
getQueueLen
public int getQueueLen() -
disposeQueue
public void disposeQueue() -
disposeClient
public void disposeClient() -
setClosedByServer
public void setClosedByServer() -
getNameMaybe
-
run
-
notifyUserIfGameIsPaused
-
notifyThatNotConnected
public void notifyThatNotConnected() -
appendToConnectionLog
-
callMethod
-
resolveHex
-
resolveBattleHex
-
resolveCreatureTypes
-
resolveCreatureType
-
resolveLegion
-
getNow
public static long getNow()
-