view rep/handler/REPHandlerInMerge.java @ 281:c3969dd625b2

GUIless test routine.
author kono
date Sat, 27 Sep 2008 22:55:13 +0900
parents ad487e63e3c8
children c5be84d53c7f
line wrap: on
line source

package rep.handler;

import java.io.IOException;
import rep.Editor;
import rep.REPCommand;
import rep.SessionManager;
import rep.channel.REPSelectionKey;
import rep.channel.REPSocketChannel;

public class REPHandlerInMerge implements REPHandler {

	private SessionManager manager;
	private int sid;

	public REPHandlerInMerge(SessionManager manager) {
		this.manager = manager;
	}

	public REPHandlerInMerge(int sid, SessionManager manager2) {
		this.manager = manager2;
		this.sid = sid;
	}

	@SuppressWarnings("unchecked")
	public void handle(REPSelectionKey<REPCommand> key) throws IOException {
		//マージ中のエディタの前のエディタのコマンドをWaitingListに追加する
		REPSocketChannel<REPCommand> channel = (REPSocketChannel<REPCommand>) key.channel();
		REPCommand command = channel.read();
		System.out.println("REPHandlerImpl.handle() : command = " + command);
		if(command.sid == sid){
			Editor editor = manager.getEditor(channel);
			manager.addWaitingCommand(new PacketSet(channel, editor, command));
		}else{
			manager.manage(channel, command);
		}
	}

	public void cancel(REPSocketChannel<REPCommand> socketChannel) {
		manager.remove(socketChannel);
	}
}