Package net.sf.colossus.util
Class ViableEntityManager
- java.lang.Object
-
- net.sf.colossus.util.ViableEntityManager
-
public class ViableEntityManager extends java.lang.ObjectKeeps 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 booleandebugprivate static java.util.logging.LoggerLOGGERprivate static java.lang.Objectmutexprivate static java.util.WeakHashMap<java.lang.Object,java.lang.String>viableEntitiesprivate static intwaiting
-
Constructor Summary
Constructors Constructor Description ViableEntityManager()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intgetWaitingCnt()static voidregister(java.lang.Object viableEntity, java.lang.String name)static voidunregister(java.lang.Object viableEntity)static voidwaitUntilAllGone()
-