種類
- インスタンスメソッド (21)
- クラス (5)
- ライブラリ (2)
- 特異メソッド (2)
- 文書 (1)
ライブラリ
-
rinda
/ rinda (9) -
rinda
/ tuplespace (19)
クラス
-
Rinda
:: TupleEntry (11) -
Rinda
:: TupleSpace (6) -
Rinda
:: TupleSpaceProxy (6)
キーワード
- InvalidHashTupleKey (1)
- TupleEntry (1)
- TupleSpace (1)
- TupleSpaceProxy (1)
- [] (1)
- alive? (1)
- cancel (1)
- canceled? (1)
- expired? (1)
- expires (1)
- expires= (1)
- fetch (1)
- new (2)
- notify (2)
- read (2)
-
read
_ all (2) - renew (1)
-
rinda
/ rinda (1) -
rinda
/ tuplespace (1) -
ruby 1
. 8 . 4 feature (1) - size (1)
- take (2)
- value (1)
- write (2)
検索結果
-
Rinda
:: Tuple (54049.0) -
Tuple のためのクラスです。ユーザがこのクラスを直接使うことはありません。
Tuple のためのクラスです。ユーザがこのクラスを直接使うことはありません。 -
Rinda
:: TupleSpace (18049.0) -
Tuple Space を表すクラスです。
Tuple Space を表すクラスです。
このクラスのインスタンスを
drb を経由して公開することで
タプルスペースを他のプロセスからアクセスさせることができるようになります。
タプルスペースを drb 経由で利用する側は
DRb::DRbObject.new_with_uri などでこのオブジェクトのリモートオブジェクトを
取得し、Rinda::TupleSpaceProxy をかぶせることで利用します。
===[a:renewer] タプルの寿命と renewer
タプルを Rinda::TupleSpace#write などで追加するときにその寿命を
秒数で指定することができ... -
rinda
/ tuplespace (18049.0) -
Rubyによるタプル空間(Tuple Space)の実装です。
Rubyによるタプル空間(Tuple Space)の実装です。 -
Rinda
:: InvalidHashTupleKey (18001.0) -
Rinda::TupleSpace#write などで不正なハッシュテーブル(キーが 文字列でないもの)をタプルスペースに書き込もうとすると発生すると発生する 例外です。
Rinda::TupleSpace#write などで不正なハッシュテーブル(キーが
文字列でないもの)をタプルスペースに書き込もうとすると発生すると発生する
例外です。 -
Rinda
:: TupleEntry (18001.0) -
タプルスペース内に含まれるタプルを管理するためのクラスです。 タプルの有効期限を管理し、タプルのキャンセル操作ができます。
タプルスペース内に含まれるタプルを管理するためのクラスです。
タプルの有効期限を管理し、タプルのキャンセル操作ができます。
Rinda::TupleSpace#write はこのオブジェクトを返し、
それを利用してタプルを明示的にキャンセルすることができます。
ただし、タプルスペースのあるプロセスがタプルを投入したプロセスと
異なる場合、これを受け取る側はリモートオブジェクトによって
このオブジェクトを参照します。そのためタプルスペースのプロセス側では
参照切れによるGCが発生し、TupleEntryオブジェクトが消滅してしまうかもしれません。
これを防ぐには何らかの仕掛けが必要でしょう。... -
Rinda
:: TupleSpaceProxy (18001.0) -
リモートの Rinda::TupleSpace オブジェクトを包む プロクシクラスです。
リモートの Rinda::TupleSpace オブジェクトを包む
プロクシクラスです。
Rinda::TupleSpace#take でタプルの受け渡し時にタプルが
消失する可能性を下げるためのプロクシクラスです。 -
Rinda
:: TupleSpace # write(tuple , sec = nil) -> Rinda :: TupleEntry (9772.0) -
tuple をタプルスペースに加えます。 tuple を管理するための Rinda::TupleEntry オブジェクトを返します。
tuple をタプルスペースに加えます。
tuple を管理するための Rinda::TupleEntry オブジェクトを返します。
sec で追加したタプルの有効期限を指定できます。
追加されてから sec 秒過ぎたタプルはタプルスペースから削除されます。
nil は無限を意味し、この場合にはタプルは経過時間によっては削除されません。
返り値の Rinda::TupleEntry オブジェクトを使ってタプルを明示的に
キャンセルしたり有効期限を変更したりできます。ただし、利用にはGCなどに
気を付ける必要があります。
詳しくはRinda::TupleEntry のエントリーを見てくださ... -
Rinda
:: TupleSpaceProxy # write(tuple , sec = nil) -> Rinda :: TupleEntry (9736.0) -
tuple をタプルスペースに加えます。 tuple を管理するための Rinda::TupleEntry オブジェクトを返します。
tuple をタプルスペースに加えます。
tuple を管理するための Rinda::TupleEntry オブジェクトを返します。
内部的にはリモートオブジェクトの Rinda::TupleSpace#write にフォワードされます。
詳細は Rinda::TupleSpace#write を参照してください。
@param tuple 追加する tuple (配列かHash)
@param sec 有効期限(秒数) -
Rinda
:: TupleSpace # read(tuple , sec=nil) -> [Array|Hash] (9388.0) -
タプルスペース内の tuple にマッチするタプルを一つコピーして返します。
タプルスペース内の tuple にマッチするタプルを一つコピーして返します。
このメソッド呼び出しが終了しても、タプルスペースからタプルは取り除かれません。
tuple で指定できるパターンについては lib:rinda/rinda#tuplepattern を
参照してください。
マッチするタプルが存在しない場合は、マッチするタプルがタプルスペースに
投入されるまで待ちます。
sec でタイムアウト秒数を指定できます。
待ち時間が sec 秒を過ぎた時には read をあきらめ
例外 Rinda::RequestExpiredError を発生させます。
sec に nil を指定す... -
Rinda
:: TupleSpace # read _ all(tuple) -> [Array|Hash] (9388.0) -
タプルスペース内の tuple にマッチするタプルをすべてコピーして返します。
タプルスペース内の tuple にマッチするタプルをすべてコピーして返します。
このメソッド呼び出しが終了しても、タプルスペースからタプルは取り除かれません。
tuple で指定できるパターンについては lib:rinda/rinda#tuplepattern を
参照してください。
マッチするタプルが存在しない場合は、待たずに空の配列を返します。
このメソッドは主にデバッグのための利用を想定しています。
@param tuple タプルのパターン -
Rinda
:: TupleSpace # take(tuple , sec = nil) -> Array | Hash (9388.0) -
tuple にマッチするタプルをタプルスペースから取り出して返します。
tuple にマッチするタプルをタプルスペースから取り出して返します。
tuple で指定できるパターンについては lib:rinda/rinda#tuplepattern を
参照してください。
マッチするタプルが存在しない場合は、マッチするタプルがタプルスペースに
投入されるまで待ちます。
sec でタイムアウト秒数を指定できます。
待ち時間が sec 秒を過ぎた時には take をあきらめ
例外 Rinda::RequestExpiredError を発生させます。
sec に nil を指定するとタイムアウトせずに無限に待ち続けます。
@param tuple タプルのパター... -
Rinda
:: TupleSpaceProxy # read(tuple , sec=nil) -> [Array|Hash] (9370.0) -
タプルスペース内の tuple にマッチするタプルを一つコピーして返します。
タプルスペース内の tuple にマッチするタプルを一つコピーして返します。
内部的にはリモートオブジェクトの Rinda::TupleSpace#read にフォワードされます。
詳細は Rinda::TupleSpace#read を参照してください。
@param tuple タプルのパターン
@param sec タイムアウト秒数
@raise Rinda::RequestExpiredError read がタイムアウトした場合に発生します
@raise Ridna::RequestCanceledError read が何らかの理由でキャンセルされた場合に発生します。 -
Rinda
:: TupleSpaceProxy # read _ all(tuple) -> [Array|Hash] (9370.0) -
タプルスペース内の tuple にマッチするタプルをすべてコピーして返します。
タプルスペース内の tuple にマッチするタプルをすべてコピーして返します。
内部的にはリモートオブジェクトの Rinda::TupleSpace#read_all にフォワードされます。
詳細は Rinda::TupleSpace#read_all を参照してください。
@param tuple タプルのパターン -
Rinda
:: TupleSpaceProxy # take(tuple , sec = nil) -> Array | Hash (9370.0) -
tuple にマッチするタプルをタプルスペースから取り出して返します。
tuple にマッチするタプルをタプルスペースから取り出して返します。
内部的にはリモートオブジェクトの Rinda::TupleSpace#take にフォワードされます。
詳細は Rinda::TupleSpace#take を参照してください。
@param tuple タプルのパターン
@param sec タイムアウト秒数
@raise Rinda::RequestExpiredError take がタイムアウトした場合に発生します
@raise Ridna::RequestCanceledError take が何らかの理由でキャンセルされた場合に発生します。 -
Rinda
:: TupleSpaceProxy # notify(ev , tuple , sec = nil) -> Rinda :: NotifyTemplateEntry (9304.0) -
event で指定した種類のイベントの監視を開始します。
event で指定した種類のイベントの監視を開始します。
内部的にはリモートオブジェクトの Rinda::TupleSpace#notify にフォワードされます。
詳細は Rinda::TupleSpace#notify 参照してください
@param event 監視対象のイベント(文字列)
@param pattern 監視対象となるタプルのパターン
@param sec 監視期間の長さ(秒数) -
Rinda
:: TupleSpace . new(period = 60) -> Rinda :: TupleSpace (9301.0) -
Rinda::TupleSpace オブジェクトを生成します。
Rinda::TupleSpace オブジェクトを生成します。
period で掃除用スレッドが動く周期を指定します。
このスレッドでは cancel されたタプルや expire(期限切れ、タイムアウト) された
タプルをタプルスペース内から取り除きます。
@param period cancel/expireされたタプルを取り除く周期を秒で指定します -
Rinda
:: TupleSpaceProxy . new(ts) -> Rinda :: TupleSpaceProxy (9301.0) -
ts を wrap した新たな TupleSpaceProxy オブジェクトを生成します。
ts を wrap した新たな TupleSpaceProxy オブジェクトを生成します。
@param ts ラップするリモート Rinda::TupleSpace オブジェクト -
Rinda
:: TupleSpace # notify(event , pattern , sec = nil) -> Rinda :: NotifyTemplateEntry (9037.0) -
event で指定した種類のイベントの監視を開始します。
event で指定した種類のイベントの監視を開始します。
イベントを生じさせたタプルがpattern にマッチした場合にのみ報告されます。
イベントが生じた場合、
このメソッドの返り値の Rinda::NotifyTemplateEntry を経由し、
Rinda::NotifyTemplateEntry#each を用いて報告を受け取ります。
sec で監視期間を秒数で指定できます。 nil で無限に監視し続けます。
event として以下の3つを指定できます。
* 'write' : タプルが追加された
* 'take' : タプルが take された
* 'delet... -
Rinda
:: TupleEntry # [](key) (9001.0) -
タプルの key に対応する要素を返します。
タプルの key に対応する要素を返します。
Rinda::TupleEntry#value[key] を返します。
@param key 要素を指定するキー
@see Rinda::TupleEntry#fetch -
Rinda
:: TupleEntry # alive? -> bool (9001.0) -
タプルが有効である(期限切れでもなく、キャンセルされていない)ならば 真を返します。
タプルが有効である(期限切れでもなく、キャンセルされていない)ならば
真を返します。
@see Rinda::TupleEntry#canceled?, Rinda::TupleEntry#expired? -
Rinda
:: TupleEntry # cancel -> () (9001.0) -
タプルをキャンセルし、タプルスペースから取り除きます。
タプルをキャンセルし、タプルスペースから取り除きます。
すでにタプルスペースから取り除かれている場合には何もしません。
@see Rinda::TupleEntry#canceled? -
Rinda
:: TupleEntry # canceled? -> bool (9001.0) -
タプルが既にキャンセルされているならば真を返します。
タプルが既にキャンセルされているならば真を返します。
@see Rinda::TupleEntry#cancel -
Rinda
:: TupleEntry # expired? -> bool (9001.0) -
タプルが既に期限切れになっているならば真を返します。
タプルが既に期限切れになっているならば真を返します。
@see Rinda::TupleEntry#expires, @see Rinda::TupleEntry#renew -
Rinda
:: TupleEntry # expires -> Time (9001.0) -
タプルの期限切れの時刻を返します。
タプルの期限切れの時刻を返します。
有効期限を無限に指定した場合、この時刻は Time.at(2**31-1)、つまり
Tue Jan 19 03:14:07 GMT Standard Time 2038 を返します。
@see Rinda::TupleEntry#expire -
Rinda
:: TupleEntry # expires=(expires) (9001.0) -
タプルの期限切れの時刻を指定します。
タプルの期限切れの時刻を指定します。
@param expires 期限切れの時刻(Time)
@see Rinda::TupleEntry#expires -
Rinda
:: TupleEntry # fetch(key) -> object (9001.0) -
タプルの key に対応する要素を返します。
タプルの key に対応する要素を返します。
Rinda::TupleEntry#value.fetch(key) を返します。
@param key 要素を指定するキー
@see Rinda::TupleEntry#[] -
Rinda
:: TupleEntry # renew(sec _ or _ renewer) -> () (9001.0) -
タプルの有効期限を更新します。
タプルの有効期限を更新します。
sec_or_renewer によって以下のように更新されます。
* nil : 遠い未来(実質的に無限)を指定します。詳しくは Rinda::TupleEntry#expires 参照
* true : 直ちに有効期限切れになるよう指定します
* 数値 : 有効期限を現在から sec_or_renewer 秒後に指定します
* それ以外 : renew メソッドを持っていると仮定され、そのメソッドの呼び出し結果を用います。
renew メソッドは nil, true, 数値のいずれかを上のルールに従って返さなければなりません。
... -
Rinda
:: TupleEntry # size -> Integer (9001.0) -
タプルのサイズ(配列の要素数/ハッシュテーブルのエントリー数)を返します
タプルのサイズ(配列の要素数/ハッシュテーブルのエントリー数)を返します
@see Rinda::TupleEntry#value -
Rinda
:: TupleEntry # value -> Array | Hash (9001.0) -
管理対象のタプルを返します。
管理対象のタプルを返します。 -
rinda
/ rinda (49.0) -
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
タプルスペースとは並列プログラムにおける一つのパターンです。
並列プログラミングにおいては、ロックのような同期処理が必須ですが、
適切な同期処理を実現することは困難をともないます。
このパターンにおいては、複数の並列単位(スレッド/プロセス)間の通信をすべて
タプルスペースという領域を経由して行います。これによって
プロセス間の通信トポロジーを単純化し、問題を簡単化します。
タプルスペースに対しては、タプルを書き込む(write)、取り出す(take)、
タプルの要素を覗き見る(read)
という操作の... -
ruby 1
. 8 . 4 feature (37.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
ruby 1.8.4 feature
ruby 1.8.4 での ruby 1.8.3 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
# * カテゴリ
# * [ruby]: ruby インタプリタの変更
# * [api]: 拡張ライブラリ API
# * [lib]: ライブラリ
* レベル
* [bug]: バグ修正
* [new]: 追加され...