タプルスペース内に含まれるタプルを管理するためのクラスです。タプルの有効期限を管理し、タプルのキャンセル操作ができます。
Rinda::TupleSpace#write はこのオブジェクトを返し、それを利用してタプルを明示的にキャンセルすることができます。
ただし、タプルスペースのあるプロセスがタプルを投入したプロセスと異なる場合、これを受け取る側はリモートオブジェクトによってこのオブジェクトを参照します。そのためタプルスペースのプロセス側では参照切れによるGCが発生し、TupleEntryオブジェクトが消滅してしまうかもしれません。これを防ぐには何らかの仕掛けが必要でしょう。詳しくは drb のドキュメントを参照してください。
self[key]
[permalink][rdoc]タプルの key に対応する要素を返します。
Rinda::TupleEntry#value[key] を返します。
[SEE_ALSO] Rinda::TupleEntry#fetch
alive? -> bool
[permalink][rdoc]タプルが有効である(期限切れでもなく、キャンセルされていない)ならば真を返します。
[SEE_ALSO] Rinda::TupleEntry#canceled?, Rinda::TupleEntry#expired?
cancel -> ()
[permalink][rdoc]タプルをキャンセルし、タプルスペースから取り除きます。
すでにタプルスペースから取り除かれている場合には何もしません。
[SEE_ALSO] Rinda::TupleEntry#canceled?
canceled? -> bool
[permalink][rdoc]タプルが既にキャンセルされているならば真を返します。
[SEE_ALSO] Rinda::TupleEntry#cancel
expired? -> bool
[permalink][rdoc]タプルが既に期限切れになっているならば真を返します。
[SEE_ALSO] Rinda::TupleEntry#expires, @see Rinda::TupleEntry#renew
expires -> Time
[permalink][rdoc]タプルの期限切れの時刻を返します。
有効期限を無限に指定した場合、この時刻は Time.at(2**31-1)、つまり Tue Jan 19 03:14:07 GMT Standard Time 2038 を返します。
[SEE_ALSO] Rinda::TupleEntry#expire
expires=(expires)
[permalink][rdoc]タプルの期限切れの時刻を指定します。
[SEE_ALSO] Rinda::TupleEntry#expires
fetch(key) -> object
[permalink][rdoc]タプルの key に対応する要素を返します。
Rinda::TupleEntry#value.fetch(key) を返します。
[SEE_ALSO] Rinda::TupleEntry#[]
renew(sec_or_renewer) -> ()
[permalink][rdoc]タプルの有効期限を更新します。
sec_or_renewer によって以下のように更新されます。
size -> Integer
[permalink][rdoc]タプルのサイズ(配列の要素数/ハッシュテーブルのエントリー数)を返します
[SEE_ALSO] Rinda::TupleEntry#value
value -> Array | Hash
[permalink][rdoc]管理対象のタプルを返します。