refactored org to uk
[vamsas.git] / src / org / vamsas / client / picking / PickServer.java
index f483b05..abef55e 100644 (file)
@@ -2,17 +2,44 @@ package org.vamsas.client.picking;
 \r
 import java.io.*;\r
 import java.net.*;\r
+import java.util.logging.*;\r
 \r
+/**\r
+ * Server class that listens for incoming connections on a predefined port.\r
+ */\r
 class PickServer extends Thread\r
 {\r
+       private static Logger logger = Logger.getLogger("org.vamsas.client.picking");\r
+       \r
+       // The port number we'll listen on\r
        static final int PORT = 53782;\r
        \r
        private ServerSocket serverSocket;\r
+       // Set to true once the server is established\r
+       private boolean isServer = false;\r
+       \r
+       private PickManager manager;\r
        \r
-       PickServer()\r
+       /**\r
+        * Constructs a new instance of the server (but doesn't start it).\r
+        * @param manager a reference to the pick manager that owns this server\r
+        */\r
+       PickServer(PickManager manager)\r
        {\r
+               this.manager = manager;\r
        }\r
        \r
+       /**\r
+        * Returns true if this server instance is running.\r
+        * Return true if this server instance is running\r
+        */\r
+       boolean isServer()\r
+               { return isServer; }\r
+       \r
+       /**\r
+        * Attempts to create the server by opening a server socket on the port.\r
+        * @return true if the server was created; false otherwise\r
+        */\r
        boolean createServer()\r
        {\r
                try\r
@@ -20,31 +47,35 @@ class PickServer extends Thread
                        serverSocket = new ServerSocket(PORT);\r
                        start();                        \r
                        \r
-                       return true;\r
+                       return isServer = true;\r
                }\r
                catch (IOException e)\r
                {\r
-                       // If we fail, just assume another app already has the port\r
-                       System.out.println(e);\r
+                       logger.info("SERVER: " + e);\r
                        return false;\r
                }\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
+        * can make a full client connection for further comms.\r
+        */\r
        public void run()\r
        {\r
-               System.out.println("SERVER: listening...");\r
+               logger.fine("SERVER: listening on " + PORT + " - SERVER");\r
                \r
                // Loop forever, accepting connectons from other clients\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
+                               Socket socket = serverSocket.accept();                          \r
+                               logger.fine("SERVER: connection detected");\r
                                \r
-                               System.out.println("SERVER: connection made, spawning pipe...");\r
-\r
-                               // Do something with the socket...\r
-                               new PickEndPoint(socket);\r
+                               manager.addEndPoint(socket);\r
                        }\r
                        catch (IOException e) {}\r
                }\r