class Rinda::TupleEntry

[edit]

要約

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

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]

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