view rep/EditorList.java @ 324:e235998427a6 before-merge-fix

try to fix merger
author kono
date Sat, 11 Oct 2008 16:31:03 +0900
parents c83a3faec487
children 5ba5b7a9761b
line wrap: on
line source

package rep;

import java.util.LinkedList;

import rep.channel.REPSocketChannel;

public class EditorList {

	private int numberOfEditor;
	private LinkedList<Editor> editorList = new LinkedList<Editor>();

	public void sendJoinAck(REPCommand repCmd) {
		Forwarder editor = null;
		for(Forwarder editor2 : editorList){
			error(String.valueOf(editor2.getEID()), String.valueOf(repCmd.eid));
			if(editor2.getEID() == repCmd.eid){
				editor = editor2;
				break;
			}
		}
		error(editor);
		editor.getChannel().write(repCmd);
	}


	public void sendJoinAck(REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
		REPCommand command = repCmd;
		command.setCMD(REP.SMCMD_JOIN_ACK);

		channel.write(command);
	}

	public int addEditor(SessionManager manager,REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
		numberOfEditor++;
		editorList.add(new Editor(manager,numberOfEditor, channel));
		return numberOfEditor;
	}

	public void addEditor(SessionManager manager,REPSocketChannel<REPCommand> channel) {
		editorList.add(new Editor(manager,0, channel));
	}

	public void setEID(REPCommand repCmd) {
		for(Forwarder editor : editorList){
			if(editor.getEID() == 0){
				editor.setEID(repCmd.eid);
				break;
			}
		}
	}
	
	private void error(Object obj) {
		if(obj == null){
			System.out.println("null!");
		}
	}
	private void error(String str1, String str2){
		if(str1.equals(str2)){
			return;
		}else{
			System.out.println("Not equals! str1:str2");
		}
	}


	public void sendPutAck(REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
		channel.write(repCmd);
	}
	
	public void send(REPSocketChannel<REPCommand> channel, REPCommand command){
		channel.write(command);
	}


	public void setHost(String myHost) {
		// TODO Auto-generated method stub
		for(Editor editor : editorList) {
			editor.setHost(myHost);
		}
	}


	public Forwarder getEditor(String hostport) {
		// TODO Auto-generated method stub
		for(Editor editor : editorList){
			String[] splited = hostport.split(":");
			System.out.println(splited[0] + "," + editor.getHost());
			if(splited[0].equals(editor.getHost())){
				return editor;
			}
			
			//String hostandport = editor.getHost() + ":" + editor.getPort();
			//if(hostport.equals(hostandport)){
			//	return editor;
			//}
		}
		return null;
	}


	public int addEditor(Editor editor) {
		numberOfEditor++;
		editorList.add(editor);
		return numberOfEditor;
	}


	public Forwarder getEditor(REPSocketChannel<REPCommand> channel) {
		// TODO Auto-generated method stub
		Forwarder editor1 = null;
		for(Forwarder editor: editorList){
			if(channel == editor.getChannel()){
				editor1 = editor;
			}
		}
		return editor1;
	}

}