Class ClientThread

  • All Implemented Interfaces:
    java.lang.Runnable

    public class ClientThread
    extends java.lang.Thread
    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
    • Field Detail

      • LOGGER

        private static final java.util.logging.Logger LOGGER
      • threadNumberCounter

        private static int threadNumberCounter
      • threadNr

        private final int threadNr
      • client

        private final Client client
      • done

        private boolean done
    • Constructor Detail

      • ClientThread

        public ClientThread​(Client client)
    • Method Detail

      • nextThreadNumber

        private static int nextThreadNumber()
      • getThreadNumber

        public int getThreadNumber()
      • enqueue

        public void enqueue​(java.lang.String method,
                            java.util.List<java.lang.String> args)
      • getQueueLen

        public int getQueueLen()
      • disposeQueue

        public void disposeQueue()
      • disposeClient

        public void disposeClient()
      • setClosedByServer

        public void setClosedByServer()
      • getNameMaybe

        public java.lang.String getNameMaybe()
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread
      • notifyUserIfGameIsPaused

        public void notifyUserIfGameIsPaused​(java.lang.String message)
      • notifyThatNotConnected

        public void notifyThatNotConnected()
      • appendToConnectionLog

        public void appendToConnectionLog​(java.lang.String s)
      • callMethod

        private void callMethod​(java.lang.String method,
                                java.util.List<java.lang.String> args)
      • resolveHex

        private MasterHex resolveHex​(java.lang.String label)
      • resolveBattleHex

        private BattleHex resolveBattleHex​(java.lang.String hexLabel)
      • resolveCreatureTypes

        private java.util.List<CreatureType> resolveCreatureTypes​(java.lang.String nameList)
      • resolveCreatureType

        private CreatureType resolveCreatureType​(java.lang.String creatureName)
      • resolveLegion

        private Legion resolveLegion​(java.lang.String markerId)
      • getNow

        public static long getNow()