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