Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > rinda/tuplespaceライブラリ > Rinda::TupleEntryクラス

class Rinda::TupleEntry

クラスの継承リスト: Rinda::TupleEntry < DRb::DRbUndumped < Object < Kernel < BasicObject

要約

タプルスペース内に含まれるタプルを管理するためのクラスです。 タプルの有効期限を管理し、タプルのキャンセル操作ができます。

Rinda::TupleSpace#write はこのオブジェクトを返し、 それを利用してタプルを明示的にキャンセルすることができます。

ただし、タプルスペースのあるプロセスがタプルを投入したプロセスと 異なる場合、これを受け取る側はリモートオブジェクトによって このオブジェクトを参照します。そのためタプルスペースのプロセス側では 参照切れによるGCが発生し、TupleEntryオブジェクトが消滅してしまうかもしれません。 これを防ぐには何らかの仕掛けが必要でしょう。詳しくは drb のドキュメントを 参照してください。

目次

インスタンスメソッド
[] alive? cancel canceled? expired? expires expires= fetch renew size value

インスタンスメソッド

self[key][permalink][rdoc]

タプルの key に対応する要素を返します。

Rinda::TupleEntry#value[key] を返します。

[PARAM] 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]

タプルの期限切れの時刻を指定します。

[PARAM] expires:
期限切れの時刻(Time)

[SEE_ALSO] Rinda::TupleEntry#expires

fetch(key) -> object[permalink][rdoc]

タプルの key に対応する要素を返します。

Rinda::TupleEntry#value.fetch(key) を返します。

[PARAM] 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]

管理対象のタプルを返します。