TupleSpace Class

Lindaのtuple spaceを模したThread間通信のクラスです。 Tupleに型はなく、配列で表現します。以下はtupleの例です。

in()に渡すパターンのnilの部分は任意の値とマッチします。 nilでないオブジェクトは === で比較されます。

変更履歴

0.9.1

0.9

Class Methods:

new

TupleSpaceの生成。

Methods:

TupleSpace#out(tuple, ...)

TupleSpaceにtupleを入れます。 引数を複数書くことで、複数のtupleを一度に投入できます。

TupleSpace#put(tuple, ...)

outの別名

TupleSpace#write(tuple, ...)

outの別名

TupleSpace#in(pattern, non_block=false)

TupleSpaceからpatternにマッチしたtupleを取り出します。 patternは取り出したいtupleを示すパターンです。 マッチするtupleが ないときブロックします。 non_block=trueのとき、ブロックせずに ThreadError 例外を発生させます。

TupleSpace#get(pattern, non_block=false)

inの別名

TupleSpace#take(pattern, non_block=false)

inの別名

TupleSpace#rd(pattern, non_block=false)

TupleSpaceからpatternにマッチしたtupleを返します。 TupleSpaceからtupleを取り除かない点を以外は、inと同じです。

TupleSpace#read(pattern, non_block=false)

rdの別名

TupleSpace#mv(dest, pattern, non_block=false)

二つの TupleSpace 間で tuple を移動させます。inと同様にマッチした tupleを、dest の TupleSpace に追加(dest.out(tuple))します。 mv は分散した TupleSpace 間で tuple が紛失するのを防ぎます

TupleSpace#move(dest, pattern, non_block=false)

mvの別名

Copyright (c) 2000 Masatoshi SEKI m_seki@mva.biglobe.ne.jp