+/*\r
+ * This file is part of the Vamsas Client version 0.1. \r
+ * Copyright 2009 by Jim Procter, Iain Milne, Pierre Marguerite, \r
+ * Andrew Waterhouse and Dominik Lindner.\r
+ * \r
+ * Earlier versions have also been incorporated into Jalview version 2.4 \r
+ * since 2008, and TOPALi version 2 since 2007.\r
+ * \r
+ * The Vamsas Client is free software: you can redistribute it and/or modify\r
+ * it under the terms of the GNU Lesser General Public License as published by\r
+ * the Free Software Foundation, either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * The Vamsas Client is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU Lesser General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU Lesser General Public License\r
+ * along with the Vamsas Client. If not, see <http://www.gnu.org/licenses/>.\r
+ */\r
package uk.ac.vamsas.client.picking;\r
\r
import java.io.*;\r
/**\r
* Server class that listens for incoming connections on a predefined port.\r
*/\r
-class PickServer extends Thread\r
-{\r
- private Log logger = org.apache.commons.logging.LogFactory.getLog(uk.ac.vamsas.client.picking.PickServer.class);\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
+class PickServer extends Thread {\r
+ private Log logger = org.apache.commons.logging.LogFactory\r
+ .getLog(uk.ac.vamsas.client.picking.PickServer.class);\r
+\r
+ // The port number we'll listen on\r
+ static final int PORT = 53782;\r
+\r
+ private ServerSocket serverSocket;\r
+\r
+ // Set to true once the server is established\r
+ private boolean isServer = false;\r
+\r
// Set to false when server is shutting down\r
- private boolean isAlive= true;\r
- private SocketManager manager;\r
- \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(SocketManager 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
- {\r
- serverSocket = new ServerSocket(PORT);\r
- start(); \r
- \r
- return isServer = true;\r
- }\r
- catch (IOException e)\r
- {\r
- logger.debug("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
- logger.debug("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 (isAlive)\r
- {\r
- try\r
- {\r
- Socket socket = serverSocket.accept(); \r
- logger.info("SERVER: connection detected");\r
- if (isAlive)\r
- manager.addEndPoint(socket);\r
- }\r
- catch (IOException e) {}\r
- }\r
- }\r
- \r
- void terminate()\r
- {\r
- logger.debug("Server shutting down...");\r
- isAlive=false;\r
- try { serverSocket.close(); }\r
- catch (Exception e)\r
- {\r
- logger.error(e);\r
- }\r
+ private boolean isAlive = true;\r
+\r
+ private SocketManager manager;\r
+\r
+ /**\r
+ * Constructs a new instance of the server (but doesn't start it).\r
+ * \r
+ * @param manager\r
+ * a reference to the pick manager that owns this server\r
+ */\r
+ PickServer(SocketManager manager) {\r
+ this.manager = manager;\r
+ }\r
+\r
+ /**\r
+ * Returns true if this server instance is running. Return true if this server\r
+ * instance is running\r
+ */\r
+ boolean isServer() {\r
+ return isServer;\r
+ }\r
+\r
+ /**\r
+ * Attempts to create the server by opening a server socket on the port.\r
+ * \r
+ * @return true if the server was created; false otherwise\r
+ */\r
+ boolean createServer() {\r
+ try {\r
+ serverSocket = new ServerSocket(PORT);\r
+ start();\r
+\r
+ return isServer = true;\r
+ } catch (IOException e) {\r
+ logger.debug("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 can\r
+ * make a full client connection for further comms.\r
+ */\r
+ public void run() {\r
+ logger.debug("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 (isAlive) {\r
+ try {\r
+ Socket socket = serverSocket.accept();\r
+ logger.info("SERVER: connection detected");\r
+ if (isAlive)\r
+ manager.addEndPoint(socket);\r
+ } catch (IOException e) {\r
+ }\r
+ }\r
+ }\r
+\r
+ void terminate() {\r
+ logger.debug("Server shutting down...");\r
+ isAlive = false;\r
+ try {\r
+ serverSocket.close();\r
+ } catch (Exception e) {\r
+ logger.error(e);\r
+ }\r
logger.debug("Server shut down complete.");\r
- }\r
-}
\ No newline at end of file
+ }\r
+}\r