Mercurial > hg > RemoteEditor > emacs
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():