Added shutdown() methods for the socket-based PickManager code.
[vamsas.git] / src / uk / ac / vamsas / client / picking / PickEndPoint.java
index 1864874..8191a80 100644 (file)
@@ -39,15 +39,15 @@ class PickEndPoint extends Thread
                        in = new BufferedReader(new InputStreamReader(socket.getInputStream()));\r
                \r
                        // Start the thread to listen for incoming messages\r
-//                     logger.info("CLIENT: connection successful to port "\r
-//                             + socket.getPort() + " via port " + socket.getLocalPort());\r
+                       logger.info("CLIENT: connection successful to port "\r
+                               + socket.getPort() + " via port " + socket.getLocalPort());\r
                        start();\r
                        \r
                        return true;\r
                }\r
                catch (Exception e)\r
                {\r
-                       //logger.info("CLIENT: connection failed: " + e);\r
+                       logger.info("CLIENT: connection failed: " + e);\r
                        return false;\r
                }\r
        }\r
@@ -73,40 +73,13 @@ class PickEndPoint extends Thread
                        terminate();\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 haltEndpoint() {\r
-  // TODO: FIX THIS METHOD\r
-    if (!running || !enabled) {\r
-      logger.debug("PickEndpoint is not running or already requested to halt.");\r
-      return;\r
-    }\r
-    logger.debug("Disabling pick endpoint.");\r
-    enabled=false;\r
-    terminate();\r
-    while (running) {\r
-      try {\r
-        Thread.sleep(1);\r
-      } catch (Exception e) {\r
-      }\r
-    }\r
-    logger.debug("Pick endpoint has stopped.");\r
-  }\r
-\r
+       \r
        // void receive() (threaded)\r
        public void run()\r
        {\r
-    enabled=true;\r
-    running=true;\r
                try\r
                {\r
-                       while (enabled)\r
+                       while (true)\r
                        {\r
                                String str = in.readLine();                             \r
                                //logger.info("CLIENT: recv " + str + " from " + rPort);\r
@@ -114,34 +87,26 @@ class PickEndPoint extends Thread
                                // TODO: Spawn this off into the GUI Event-Dispatch thread...\r
                                \r
                                // Convert the string back into something API friendly\r
-        if (str!=null) {\r
                                Message message = strToMessage(str);\r
                                \r
                                // Ignore corrupted or unknown message types\r
                                if (message != null)                            \r
                                        manager.processMessage(this, message);\r
-        }\r
                        }\r
                }\r
                catch (Exception e)\r
                {\r
-                       // Means the other end of the connection has (probably) died\r
-      logger.debug("Exception in receiver loop: "+e.getMessage());\r
-    }\r
-               // terminate this endpoint (if this is server side)\r
-    //logger.info("CLIENT: read failed: " + e);\r
-          \r
-    terminate();\r
-  \r
-               running=false;\r
+                       // Means the other end of the connection has (probably died) so we need\r
+                       // terminate this endpoint (if this is server side)\r
+                       //logger.info("CLIENT: read failed: " + e);\r
+                                               \r
+                       terminate();\r
+               }\r
        }\r
        \r
-       private void terminate()\r
+       void terminate()\r
        {\r
-               try { \r
-      if (socket.isConnected())\r
-        socket.close(); \r
-      }\r
+               try { socket.close(); }\r
                catch (IOException e) {}\r
                \r
                //logger.info("CLIENT: closing connection to port " + socket.getPort());\r
@@ -150,7 +115,6 @@ class PickEndPoint extends Thread
        \r
        private Message strToMessage(String str)\r
        {\r
-    // TODO: generalize message class \r
                try\r
                {\r
                        if (str.startsWith("CUSTOM"))\r