11月 212013
RocketIO::LindaにTupleSpace#list(tuple) を追加した
Category: 未分類 | | Author: shokai
新命令です
Lindaの仕様にない命令だけど、やはり必要なので「タプルスペース内から条件に合うタプルを全て読む」メソッド、TupleSpace#list(tuple, callback)を実装しました。
仕様を無駄に膨らませるのは簡単なので機能追加には慎重にならないといけないけど、listがあったほうが綺麗に書ける件があったので追加した。
EventMachine版Rubyクライアントでlist取るのはこんな感じ
em-rocketio-linda-client/sample/sample.rb at master · shokai/em-rocketio-linda-client
client.tuplespace["test_spae"].list ["sensor", "light"] do |list|
## 配列で取れる
end
javascript clientからも
tuple_space.list(["sensor", "light"], function(list){同じようにできる。
// 配列で取れる
});
サーバーのSinatra側でもlistが取れる
sinatra-rocketio-linda/sample/main.rb at b4516add3ccf0b76614e83341bf037d2ee63f80a · shokai/sinatra-rocketio-linda
あと、readやtakeの時にマッチする物がない場合、タプルスペースに現れるまで待つ(コールバックが呼ばれない)んだけど、すぐに結果を返してくれる命令も欲しいなあと思っている。名前が思いつかない。