changeset 36:f07bc68d9750

*** empty log message ***
author gongo
date Sun, 23 Dec 2007 10:20:20 +0900
parents 8991e2263f83
children 5f83b978de82
files ChangeLog
diffstat 1 files changed, 51 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Dec 22 21:06:07 2007 +0900
+++ b/ChangeLog	Sun Dec 23 10:20:20 2007 +0900
@@ -1,3 +1,54 @@
+2007-12-23  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
+
+	* thinking: hash のキーについて
+	今まで、(buffer-name) をキーにしてコマンドリストをほげほげと
+	思ってたけど、受け取る command には Session ID があるので
+	それをキーにした方がいいのではと思い始める。
+	そして、バッファ毎に Session ID は覚えとかないといけないので、
+	(buffer-name) から Session ID を取得するハッシュテーブルも
+	必要ではないかと思う。
+	そして、Session ID 毎に editor ID や seq-no も保持すべき?
+
+	================
+	put-ack, select-ack で Session ID, file name が来るので
+
+	bufname-to-sid-table => key = bufname, value = sid;
+	sid-to-session-table => key = sid, value = session;
+
+	// C 風に
+	struct session {
+	   int eid;
+	   int seq-no;
+	   CmdListPtr recv_cmdlist;
+	   CmdListPtr send_cmdlist;
+	}
+	================
+	
+	こんな二つの hash table を作る方がいいのかな。
+	bufname はグローバルだし、sid も確か
+	ローカルなSession Managerでは一意に決まるはずだし。
+
+	送信受信(insert,delete,replace)の流れ的には
+
+	- cmd 送信
+	現在の (buffer-name) をキーとして、
+	bufname-to-sid-table から Session ID (以下sid) を取得。
+	sid をキーとして、sid-to-session-table から
+	Editor ID , Seq-no を取得し command を作成。
+	その command は、sid-to-session-table から取った
+	send_cmdlist に放り込む
+
+	- cmd 受信
+	cmd 内の sid で、sid-to-session-table から取得した 
+	recv_cmdlist に cmd を放り込む。こんなところか。
+	put-ack, select-ack の場合、text にファイル名があるはずなので
+	bufname-to-sid-table に file と sid を登録する。
+
+
+	こんなところでしょう。今から実装してみる
+	
+	
+
 2007-12-22  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
 	* gethash():