vooga.network.data
Class UIDManager

java.lang.Object
  extended by java.lang.Thread
      extended by vooga.network.data.UIDManager
All Implemented Interfaces:
java.lang.Runnable

public class UIDManager
extends java.lang.Thread

UIDManager is responsible for generating and maintaining unique ID numbers for Vooga. It can reserve and return both temporary IDs (such as for game lobbies, temporary chat channels, etc.) and permanent IDs (such as for unique game IDs).

Author:
tanner schmidt

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Method Summary
 void freeTemporaryUID(long UID)
          This method should be called when a unique ID is no longer needed (such as when a lobby has been closed), in order that the ID can be used again.
static UIDManager getManager()
           
 long getNextAvailableUID()
          Gets the next available unique ID.
 long getNextTemporaryUID()
          This returns a temporary unique ID.
 void run()
          Keeps the UIDManager alive so instance variables are not destroyed.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getManager

public static UIDManager getManager()
Returns:
The only existing UIDManager instance. There can only be one so that IDs are unique.

getNextAvailableUID

public long getNextAvailableUID()
Gets the next available unique ID. This value is reserved so this value will never be returned again.

Returns:
The next UID.

getNextTemporaryUID

public long getNextTemporaryUID()
This returns a temporary unique ID. This ID will be different from all unique IDs that exist at the moment, but may be returned again after this ID has been freed.

Returns:
The next temporary UID.

freeTemporaryUID

public void freeTemporaryUID(long UID)
This method should be called when a unique ID is no longer needed (such as when a lobby has been closed), in order that the ID can be used again.

Parameters:
UID - The UID to free.

run

public void run()
Keeps the UIDManager alive so instance variables are not destroyed.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread