return false;\r
}\r
}\r
- /**\r
- * state of server thread - running or not running\r
- */\r
- private boolean running=false;\r
- /**\r
- * condition for server thread to stop\r
- */\r
- private boolean enabled=true;\r
- public void haltServer() {\r
- // TODO: FIX THIS METHOD\r
- if (!running || !enabled) {\r
- logger.debug("PickServer is not running or already requested to halt.");\r
- return;\r
- }\r
- logger.debug("Disabling pick server.");\r
- enabled=false;\r
- while (running) {\r
- try {\r
- serverSocket.close();\r
- } catch (Exception e) {\r
- \r
- }\r
- try {\r
- Thread.sleep(5);\r
- } catch (Exception e) {\r
- }\r
- }\r
- logger.debug("Pick server has stopped.");\r
- }\r
+ \r
/**\r
* Thread listening method - loops indefinitely listening for connections.\r
* When one is received, the socket object is passed to the manager so it\r
*/\r
public void run()\r
{\r
- enabled=true;\r
- running=true;\r
- //logger.info("SERVER: listening on " + PORT + " - SERVER");\r
+ logger.info("SERVER: listening on " + PORT + " - SERVER");\r
\r
// Loop forever, accepting connectons from other clients\r
- // TODO: terminate the server when haltServer is called (fails tests currently) \r
- while (enabled)\r
+ // TODO: add in the ability to terminate the server if a VAMSAS session\r
+ // is ended\r
+ while (true)\r
{\r
try\r
{\r
Socket socket = serverSocket.accept(); \r
- //logger.info("SERVER: connection detected");\r
+ logger.info("SERVER: connection detected");\r
\r
manager.addEndPoint(socket);\r
}\r
catch (IOException e) {}\r
}\r
- running=false;\r
- manager.haltManager();\r
- \r
+ }\r
+ \r
+ void terminate()\r
+ {\r
+ logger.info("Server shutting down...");\r
+ \r
+ try { serverSocket.close(); }\r
+ catch (Exception e)\r
+ {\r
+ logger.error(e);\r
+ }\r
}\r
}
\ No newline at end of file