一般的に、アトリビュートは、メソッドと同じようにオブジェクトのクラスに付け加えられ、クラスのどのインスタンスからでも利用できます。しかし、オブジェクトの特定のインスタンス化において、クラスのすべてのメンバが共有するのではなく、そのインスタンス自身のアトリビュートを所有することもまた可能です。ここで述べる関数はこの機能を実装します。
object_addattr |
||
アトリビュートを直接オブジェクトに接続するために、object_addattr 関数を使います。 | ||
t_max_err object_addattr(void *x, t_object *attr); | ||
x | アトリビュートが接続されるオブジェクト | |
attr | アトリビュートのポインタ。これは、attribute_new、attr_offset_new、または、attr_offset_array_new によって返されるポインタでなければなりません。 | |
このルーチンは、成功するとエラーコード MAX_ERR_NONEを返し、失敗した場合には“ext_obex.h”で定義される他のエラーコードの1つを返します。 |
object_deleteattr |
||
すでにobject_addattrによって接続されているアトリビュートを、オブジェクトから切り離すために 、 object_deleteattr 関数を使います。この関数はまた、アトリビュートに関連するすべてのメモリを開放します。アトリビュートの切り離しだけを行ない、メモリの開放は行ないたくない場合は、後述の object_chuckattr 関数を参照して下さい。 | ||
t_max_err object_deleteattr(void *x, t_symbol *attrsym); | ||
x | アトリビュートが接続されているオブジェクト | |
attrsym | アトリビュートの名前 | |
このルーチンは、成功するとエラーコード MAX_ERR_NONE を返し、失敗した場合には“ext_obex.h”で定義される他のエラーコードの1つを返します。 |
object_chuckattr |
||
すでに object_addattr によって接続されているアトリビュートを、オブジェクトから切り離すために 、 object_deleteattr 関数を使います。この関数はアトリビュートのメモリ開放は行いません(object_free を使って、手作業で行います) | ||
t_max_err object_chuckattr(void *x, t_symbol *attrsym); | ||
x | アトリビュートが接続されているオブジェクト | |
attrsym | アトリビュートの名前 | |
このルーチンは、成功するとエラーコード MAX_ERR_NONE を返し、失敗した場合には“ext_obex.h”で定義される他のエラーコードの1つを返します。 |