diff rep/Session.java @ 372:e16b6326fdac

*** empty log message ***
author kono
date Wed, 22 Oct 2008 00:42:47 +0900
parents f0bd158dace6
children ab4405cd3351
line wrap: on
line diff
--- a/rep/Session.java	Tue Oct 21 22:50:57 2008 +0900
+++ b/rep/Session.java	Wed Oct 22 00:42:47 2008 +0900
@@ -39,6 +39,9 @@
 		}
 	}
 	
+	/*
+	 * どこにlocal editorを入れても良いのだが、まとめた方が良いか?
+	 */
 	public void addForwarder(Forwarder forwarder) {
 		// add a forwarder and connect this to the session 
 		forwarder.setSID(sessionID);
@@ -125,9 +128,6 @@
 	}
 
 	
-	Forwarder getNextEditor(Forwarder editor) {
-		return editor.getNextForwarder();
-	}
 	
 	public void closeSession() {
 		Forwarder first = firstForwarder;
@@ -136,10 +136,10 @@
 			first.send(command);
 	}
 	
-
-	
-	public Forwarder getFirstForwarder() {
-		return firstForwarder;
+	public Forwarder getFirstForwarder(REPSocketChannel<REPCommand> channel) {
+		Forwarder f = firstForwarder;
+		while(f.next!=null && f.channel!=channel) f = f.next;
+		return f.next;
 	}
 
 
@@ -179,6 +179,7 @@
 	public void setFirstForwarder(Forwarder f) {
 		f.setSID(sessionID);
 		put(f.eid,f);
+		f.setNext(f);
 		firstForwarder = last = f;
 	}