1 19 package org.lucane.applications.whiteboard.net; 20 21 import java.io.IOException ; 22 import java.io.Serializable ; 23 import java.net.Socket ; 24 25 import org.lucane.applications.whiteboard.BoardAction; 26 import org.lucane.common.net.ObjectConnection; 27 import org.lucane.common.net.ObjectListener; 28 29 public class BoardSlave implements ObjectListener 30 { 31 private BoardServer server; 32 private ObjectConnection connection; 33 private String user; 34 35 public BoardSlave(BoardServer server, Socket client) 36 { 37 this.server = server; 38 this.connection = new ObjectConnection(client); 39 } 40 41 public void start() 42 { 43 connection.addObjectListener(this); 44 connection.listen(); 45 } 46 47 public void stop() 48 { 49 this.user = null; 50 this.connection.close(); 51 } 52 53 public void objectRead(Object o) 54 { 55 BoardAction action = (BoardAction)o; 56 57 if(action.getAction() == BoardAction.JOIN_BOARD) 59 { 60 this.user = action.getUser(); 61 server.joinBoard(connection, action.getUser()); 62 } 63 else if(action.getAction() == BoardAction.LEAVE_BOARD) 64 { 65 this.stop(); 66 server.leaveBoard(action.getUser()); 67 } 68 69 else if(action.getAction() == BoardAction.TAKE_PEN) 71 server.takePen(action.getUser()); 72 else if(action.getAction() == BoardAction.RELEASE_PEN) 73 server.releasePen(action.getUser()); 74 75 else if(action.getAction() == BoardAction.BROADCAST_OPERATION) 77 server.broadcast(action.getUser(), action); 78 else if(action.getAction() == BoardAction.BROADCAST_MODEL) 79 server.broadcast(action.getUser(), action); 80 } 81 82 public void write(Serializable o) 83 throws IOException 84 { 85 this.connection.write(o); 86 } 87 88 public String getUser() 89 { 90 return user; 91 } 92 } | Popular Tags |