Added shutdown() methods for the socket-based PickManager code.
[vamsas.git] / src / uk / ac / vamsas / client / picking / PickServer.java
index ab2aaf8..a9e7c1c 100644 (file)
@@ -57,35 +57,7 @@ class PickServer extends Thread
                        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
@@ -93,25 +65,32 @@ class PickServer extends Thread
         */\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