#@えんどう: observerのAPI変えたくなったんだけどいいかな。
#複数のroomにつなぐ場合も考えると、<chaton-client>も引数で渡される方が便利そうだ。
#りょうかい>observer
#connectのときのclientと同じもの?
#てすと
#てすと2
#そろそろMac/Windows/Linuxのradarを別個にメンテするのが面倒になってきたナリ
#何か良い方法はないものか
#windowsとunixはcond-expandで切り替えられるよ
#(cond-expand [gauche.os.windows <windowsのコード>] [else <unixのコード>])
#Mac/Linuxはsys-unameを呼んで区別つけられないかな
#observerは、第一引数に<chaton-client>オブジェクト (chaton-connectが返すものと同じ) が、第二引数にメッセージもしくは<chaton-error>オブジェクトが渡るようになります。
#あと、<chaton-client>のパブリックな情報はアクセサを提供します。
#りょうかいです。
#gosh> gauche.os.windows
*** ERROR: unbound variable: gauche.os.windows
Stack Trace:
_______________________________________
#cygwinです
#gosh> gauche.os.windows
*** ERROR: unbound variable: gauche.os.windows
Stack Trace:
_______________________________________
#mingwです
#gosh> (cond-expand [gauche.os.windows (print "win")] [else (print "others")])
win
#<undef>
#ありゃ(mingw)
#gosh> (cond-expand [gauche.os.windows (print "win")] [else (print "others")])
others
#<undef>
#cygwinです
#cygwinはどっちかというとunix互換なのでgauche.os.windowsにはならない
#cygwinだとsys-unameはどうなる?
#gosh> (sys-uname)
("CYGWIN_NT-5.1" "JOE" "1.5.25(0.156/4/2)" "2008-06-12 19:34" "i686")
#それでディスパッチでいないかね。
#できないかね。
#gosh> (sys-uname)
*** ERROR: invalid application: (#f)
Stack Trace:
_______________________________________
gosh> sys-uname
#f
#mingwです
#そう。MSVCとmingwはシステムコールからなにから大幅に違うから、gauche.os.windowsで切り替えられるようになってる
#"CYGWIN..."にマッチさせればよさそうですね
#cygwinはunix互換環境なんで、gauche.os.windowsにならない。
#その2レイヤで切り分けてくれい
#りょうかいっす
#テスト
#もいっちょt
#and another one
#chaton.clientのobserverの仕様を変えたものをcommitしました。
#あと、client/examplesの下にサンプルとして簡単なスクリプトをつくりました。
#chaton-watcherは、複数のchaton roomをモニタして、発言をstdoutに書いてくだけの簡単なスクリプトです。
#発言があるとbeepが鳴るので、超簡易radarとしても使えなくはない。
#それから、<chaton-client>のスロットにアクセスするためのメソッドをchaton.clientで提供するようにしたので、refで直接スロット名を使って参照するかわりにこれらを使ってください。
#chaton-room-url chaton-room-name chaton-post-url chaton-comet-url chaton-icon-url chaton-cid chaton-pos chaton-observer-error あたり。
#(いちいちbeep鳴るのけっこううざいかも)
#(鳴らすサウンドファイルを指定できるようにすればいいのか)
#あれ、chaton-watcherがいつのまにか終了してた。何か捕まえ損ねてる?
#てすと
#test