public class RunGameInOwnJVM extends java.lang.Thread implements IGameRunner
| Modifier and Type | Class and Description |
|---|---|
private static class |
RunGameInOwnJVM.NullDumper
NullDumper is a dummy reader that just consumes all the output
produced by a Game's process - similar to /dev/null.
|
| Modifier and Type | Field and Description |
|---|---|
private boolean |
alreadyStarted |
private java.lang.String |
colossusJar |
private java.io.File |
flagFile |
private java.lang.String |
gameId |
private GameInfo |
gi |
private java.lang.String |
hostingHost |
private int |
hostingPort |
private java.lang.String |
javaCommand |
private static java.util.logging.Logger |
LOGGER |
private WebServerOptions |
options |
private java.lang.String |
reasonStartFailed |
private IRunWebServer |
server |
private java.lang.String |
template |
private java.lang.String |
workFilesBaseDir |
| Constructor and Description |
|---|
RunGameInOwnJVM(IRunWebServer server,
WebServerOptions options,
GameInfo gi) |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
createLoggingPropertiesFromTemplate(java.io.File logPropTemplate,
java.io.File logPropFile) |
private boolean |
createServerCfgFile(java.io.File gameDir) |
java.lang.String |
getHostingHost() |
int |
getHostingPort() |
private java.lang.String |
getMissingPlayers(java.util.List<java.lang.String> names) |
java.lang.String |
getReasonStartFailed() |
private boolean |
isSocketUp() |
java.lang.String |
listAsString(java.util.List<java.lang.String> names) |
boolean |
makeRunningGame() |
void |
run() |
private void |
runInOwnJVM() |
private void |
sleepFor(long millis) |
private void |
superviseGameStartup() |
boolean |
tryToStart() |
private void |
waitForGameShutdown(java.lang.Process p,
RunGameInOwnJVM.NullDumper ndout,
RunGameInOwnJVM.NullDumper nderr) |
private java.lang.String |
waitForLine(java.io.BufferedReader in,
int checkInterval) |
boolean |
waitUntilGameStartedSuccessfully(int timeout) |
boolean |
waitUntilReadyToAcceptClients(int timeout)
Waits until socket is up, i.e.
|
activeCount, checkAccess, clone, 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, yieldequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitstartprivate static final java.util.logging.Logger LOGGER
private int hostingPort
private java.lang.String hostingHost
private final IRunWebServer server
private final WebServerOptions options
private final GameInfo gi
private final java.lang.String gameId
private java.lang.String workFilesBaseDir
private java.lang.String template
private java.lang.String javaCommand
private java.lang.String colossusJar
private java.io.File flagFile
private boolean alreadyStarted
private java.lang.String reasonStartFailed
public RunGameInOwnJVM(IRunWebServer server, WebServerOptions options, GameInfo gi)
public boolean makeRunningGame()
makeRunningGame in interface IGameRunnerpublic int getHostingPort()
getHostingPort in interface IGameRunnerpublic java.lang.String getHostingHost()
getHostingHost in interface IGameRunnerpublic java.lang.String getReasonStartFailed()
public boolean tryToStart()
tryToStart in interface IGameRunnerpublic void run()
run in interface java.lang.Runnablerun in class java.lang.Threadprivate void runInOwnJVM()
private boolean createServerCfgFile(java.io.File gameDir)
private boolean createLoggingPropertiesFromTemplate(java.io.File logPropTemplate,
java.io.File logPropFile)
private void superviseGameStartup()
private void waitForGameShutdown(java.lang.Process p,
RunGameInOwnJVM.NullDumper ndout,
RunGameInOwnJVM.NullDumper nderr)
private boolean isSocketUp()
public boolean waitUntilReadyToAcceptClients(int timeout)
IGameRunnerwaitUntilReadyToAcceptClients in interface IGameRunnerprivate java.lang.String waitForLine(java.io.BufferedReader in,
int checkInterval)
private java.lang.String getMissingPlayers(java.util.List<java.lang.String> names)
public java.lang.String listAsString(java.util.List<java.lang.String> names)
public boolean waitUntilGameStartedSuccessfully(int timeout)
waitUntilGameStartedSuccessfully in interface IGameRunnerprivate void sleepFor(long millis)