Class ViableEntityManager


  • public class ViableEntityManager
    extends java.lang.Object
    Keeps track of "viable entities", i.e. parts of the program for which it makes sense to have them living on their own. Viable entities so far are : - the game server part with it's subthreads, - the user Client with MasterBoard (e.g. as remote client) - the web server client The reason is, earlier each of them may at some point do System.exit(), even if one would have liked to keep one other part open. (for example, 3 local players -- if one was dead and you closed that MasterBoard, the whole application did exit. Now, each of those tells the ViableEntityManager "I'm done", and if the last one says so, THEN the System.exit() is actually executed. Or rather, nowadays, the main() thread can go on, come up with a menu again or something.
    Author:
    Clemens Katzer
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static boolean debug  
      private static java.util.logging.Logger LOGGER  
      private static java.lang.Object mutex  
      private static java.util.WeakHashMap<java.lang.Object,​java.lang.String> viableEntities  
      private static int waiting  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int getWaitingCnt()  
      static void register​(java.lang.Object viableEntity, java.lang.String name)  
      static void unregister​(java.lang.Object viableEntity)  
      static void waitUntilAllGone()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOGGER

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

        private static boolean debug
      • viableEntities

        private static java.util.WeakHashMap<java.lang.Object,​java.lang.String> viableEntities
      • waiting

        private static int waiting
      • mutex

        private static java.lang.Object mutex
    • Constructor Detail

      • ViableEntityManager

        public ViableEntityManager()
    • Method Detail

      • register

        public static void register​(java.lang.Object viableEntity,
                                    java.lang.String name)
      • unregister

        public static void unregister​(java.lang.Object viableEntity)
      • getWaitingCnt

        public static int getWaitingCnt()
      • waitUntilAllGone

        public static void waitUntilAllGone()