For Gauche 0.9.10


Next: , Previous: , Up: ライブラリモジュール - Gauche拡張モジュール   [Contents][Index]

9.22 gauche.parameter - パラメータ(追加)

Module: gauche.parameter

パラメータは組み込みになったので、パラメータの基本機能を使うだけなら このモジュールをuseする必要はありません。 このモジュールは主として、(use gauche.parameter)している既存のコードが エラーにならないために存在しています。

また、あまり使われないパラメータオブザーバのインタフェースがこのモジュールで提供されます。

Function: parameter-observer-add! p proc :optional when where

{gauche.parameter} procをパラメータpの“オブザーバ”手続きに追加します。 オブザーバ手続きは、(1)パラメータに新しい値がセットされる直前、 あるいは(2)パラメータに新しい値がセットされた直後、に呼ばれます。 (1)の場合、コールバックが呼ばれる前にフィルタ手続きがすでに適用 されています。どちらの場合も、オブザーバ手続きは、古い値と新しい 値の2引数を伴って呼ばれます。オブザーバ手続きの戻り値は無視されます。

オプショナル引数whenは、シンボルbeforeafterの いずれかでなければならず、値が変更された前と後のどちらでprocが 呼ばれるかを指定します。省略されると、afterを指定したものと されます。

オプショナル引数whereは、シンボルappendprependの いずれかでなければならず、procが既存のオブザーバ手続きのリストの 前に追加されるか後に追加されるかを指定します。省略されると、append を指定したものとされます。

注意: パラメータの値自身がスレッドローカルであっても、 オブザーバのリストは全てのスレッドで共有されます。

Function: parameter-observer-delete! p proc :optional when

{gauche.parameter} パラメータpのオブザーバ手続きのリストからprocを削除します。 procがリストになければ、何も起こりません。 when引数にシンボルbeforeafterを与えて、 procをどちらのリストから削除するかを指定することができます。 when引数が省略されると、procは両方のリストから削除されます。

Function: parameter-pre-observers p
Function: parameter-post-observers p

{gauche.parameter} “before”か“after”オブザーバをそれぞれキープするフックオブジェクト (フック参照)を返します。

注意: パラメータの値自身がスレッドローカルであっても、 オブザーバのリストは全てのスレッドで共有されます。


Next: , Previous: , Up: ライブラリモジュール - Gauche拡張モジュール   [Contents][Index]