44件ヒット
[1-44件を表示]
(0.022秒)
種類
- インスタンスメソッド (22)
- ライブラリ (11)
- クラス (11)
ライブラリ
-
rinda
/ rinda (22) -
rinda
/ tuplespace (11)
クラス
-
Rinda
:: TupleSpace (11) -
Rinda
:: TupleSpaceProxy (11)
キーワード
- InvalidHashTupleKey (11)
- notify (11)
検索結果
先頭4件
-
rinda
/ rinda (38030.0) -
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
...セス間の通信トポロジーを単純化し、問題を簡単化します。
タプルスペースに対しては、タプルを書き込む(write)、取り出す(take)、
タプルの要素を覗き見る(read)
という操作のみが利用できます。可能な操作を限定し、定型......e 'rinda/rinda'
def do_it(v)
puts "do_it(#{v})"
v + v
end
uri = ARGV.shift || raise("usage: #{$0} <server_uri>")
DRb.start_service
ts = Rinda::TupleSpaceProxy.new(DRbObject.new(nil, uri))
while true
r = ts.take(['sum', nil, nil])
v = do_it(r[2])
ts.write([......end
# rindac.rb
require 'drb/drb'
require 'rinda/rinda'
uri = ARGV.shift || raise("usage: #{$0} <server_uri>")
DRb.start_service
ts = Rinda::TupleSpaceProxy.new(DRbObject.new(nil, uri))
(1..10).each do |n|
ts.write(['sum', DRb.uri, n])
end
(1..10).each do |n|... -
Rinda
:: TupleSpaceProxy # write(tuple , sec = nil) -> Rinda :: TupleEntry (26113.0) -
tuple をタプルスペースに加えます。 tuple を管理するための Rinda::TupleEntry オブジェクトを返します。
...pleEntry オブジェクトを返します。
内部的にはリモートオブジェクトの Rinda::TupleSpace#write にフォワードされます。
詳細は Rinda::TupleSpace#write を参照してください。
@param tuple 追加する tuple (配列かHash)
@param sec 有効期限(秒数)... -
Rinda
:: InvalidHashTupleKey (8016.0) -
Rinda::TupleSpace#write などで不正なハッシュテーブル(キーが 文字列でないもの)をタプルスペースに書き込もうとすると発生すると発生する 例外です。
...Rinda::TupleSpace#write などで不正なハッシュテーブル(キーが
文字列でないもの)をタプルスペースに書き込もうとすると発生すると発生する
例外です。... -
Rinda
:: TupleSpace # notify(event , pattern , sec = nil) -> Rinda :: NotifyTemplateEntry (36.0) -
event で指定した種類のイベントの監視を開始します。
...監視期間を秒数で指定できます。 nil で無限に監視し続けます。
event として以下の3つを指定できます。
* 'write' : タプルが追加された
* 'take' : タプルが take された
* 'delete' : タプルが有効期限切れや上書きされたなどで......って監視が終了した場合には 'close' イベントが報告されます。
pattern で指定できるパターンについては lib:rinda/rinda#tuplepattern を
参照してください。
@param event 監視対象のイベント(文字列)
@param pattern 監視対象となるタプル......e 'rinda/tuplespace'
tuplespace = Rinda::TupleSpace.new
observer = tuplespace.notify("write", ["xyz", nil, nil])
Therad.new do
observer.each{|event, tuple| p event, tuple }
end
tuplespace.write(["xyz", 0, 1])
tuplespace.write(["pqr", 0, 1])
tuplespace.write(["xyz", 4, 2])...