class WeakRef + Delegator
クラスの継承リスト: WeakRef < Delegator < Object < Kernel
要約
weak reference を実現するクラスです。
WeakRef オブジェクトは与えられたオブジェクトをポイントしますが、 ポイント先のオブジェクトは GC される可能性があります。 アクセスしようとしたときにオブジェクトが GC されていれば WeakRef::RefError が発生します。
delegate も参照してください。
サンプルコード
require 'weakref' foo = Object.new ref = WeakRef.new(foo) ref.some_method_of_foo
特異メソッド
new(orig) -> WeakRef
-
与えられたオブジェクトを使って自身を初期化します。
- [PARAM] orig:
- 任意のオブジェクトを指定します。
インスタンスメソッド
__getobj__ -> object
-
自身の参照先のオブジェクトを返します。
- [EXCEPTION] WeakRef::RefError:
- GC 済みのオブジェクトを参照した場合に発生します。
[SEE_ALSO] delegate
__getobj__ -> object
-
委譲先のオブジェクトを返します。
本メソッドは、サブクラスで再定義する必要があり、 デフォルトでは NotImplementedError が発生します。
- [EXCEPTION] NotImplementedError:
- サブクラスにて本メソッドが再定義されていない場合に発生します。
__setobj__(obj) -> ()
-
与えられたオブジェクトを自身の参照先としてセットします。 内部用のメソッドなので使わないでください。
- [PARAM] obj:
- 任意のオブジェクトを指定します。
marshal_dump -> object
-
シリアライゼーションをサポートするためにDelegator#__getobj__ が返すオブジェクトを返します。
marshal_load(obj) -> object
-
シリアライズされたオブジェクトから、Delegator#__getobj__ が返すオブジェクトを再現します。
- [PARAM] obj:
- Delegator#marshal_dumpの戻り値のコピー
method_missing(m, *args) -> object
-
渡されたメソッド名と引数を使って、Delegator#__getobj__ が返すオブジェクトへメソッド委譲を行います。
- [PARAM] m:
- メソッドの名前(シンボル)
- [PARAM] args:
- メソッドに渡された引数
- [RETURN]
- 委譲先のメソッドからの返り値
[SEE_ALSO] Object#method_missing
respond_to?(m) -> bool
-
Delegator#__getobj__ が返すオブジェクトが メソッド m を持つとき真を返します。
- [PARAM] m:
- メソッド名
[SEE_ALSO] Object#respond_to?
weakref_alive? -> bool
-
参照先のオブジェクトがまだ生きていれば真を返します。 GC されていれば偽を返します。
定数
IgnoreBacktracePat -> Regexp
-
バックトレースで無視するパターンを返します。