1 package uk.ac.vamsas.client.simpleclient;
\r
3 import org.apache.commons.logging.*;
\r
5 import uk.ac.vamsas.client.picking.IMessageHandler;
\r
6 import uk.ac.vamsas.client.picking.IPickManager;
\r
7 import uk.ac.vamsas.client.picking.Message;
\r
8 import uk.ac.vamsas.client.picking.SocketManager;
\r
10 * Blocking message handler
\r
14 public class SimplePickManager implements IPickManager {
\r
15 private Log log = LogFactory.getLog(SimplePickManager.class);
\r
17 SocketManager manager=null;
\r
18 SimplePickManager(SocketManager manager) {
\r
19 this.manager=manager;
\r
20 final SimplePickManager me=this;
\r
22 * add a handler that calls the SimplePickManager message handler
\r
24 manager.registerMessageHandler(new IMessageHandler() {
\r
25 public void handleMessage(Message message) {
\r
26 me.handleMessage(message);
\r
32 * when false, messages are queued in a FIFO until thread can restart.
\r
34 private boolean passThru=true;
\r
36 * the client apps message handler
\r
38 IMessageHandler pickHandler=null;
\r
39 public void registerMessageHandler(IMessageHandler handler) {
\r
40 pickHandler=handler;
\r
44 public void sendMessage(Message message) {
\r
45 manager.sendMessage(message);
\r
48 * pass message onto the Apps handler, or wait until
\r
49 * passThru is true before passing message on.
\r
52 protected void handleMessage(Message message) {
\r
56 } catch (InterruptedException e) {};
\r
59 pickHandler.handleMessage(message);
\r
63 * @return true if messages are being passed to handlers
\r
65 public boolean isPassThru() {
\r
70 * @param true to pass messages on to handlers, false to hold messages in queue
\r
72 public void setPassThru(boolean passThru) {
\r
73 this.passThru = passThru;
\r
75 public void haltPickManager() {
\r
76 // TODO: FIX haltPickManager to cleanly end after SimpleClient.finalize() is called
\r
77 manager.haltManager();
\r