Class ViableEntityManager

java.lang.Object
net.sf.colossus.util.ViableEntityManager

public class ViableEntityManager extends 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 Details

    • LOGGER

      private static final Logger LOGGER
    • debug

      private static boolean debug
    • viableEntities

      private static WeakHashMap<Object,String> viableEntities
    • waiting

      private static int waiting
    • mutex

      private static Object mutex
  • Constructor Details

    • ViableEntityManager

      public ViableEntityManager()
  • Method Details

    • register

      public static void register(Object viableEntity, String name)
    • unregister

      public static void unregister(Object viableEntity)
    • getWaitingCnt

      public static int getWaitingCnt()
    • waitUntilAllGone

      public static void waitUntilAllGone()