オブジェクトルーチン:
アトリビュート (オブジェクト・アトリビュート)

一般的に、アトリビュートは、メソッドと同じようにオブジェクトのクラスに付け加えられ、クラスのどのインスタンスからでも利用できます。しかし、オブジェクトの特定のインスタンス化において、クラスのすべてのメンバが共有するのではなく、そのインスタンス自身のアトリビュートを所有することもまた可能です。ここで述べる関数はこの機能を実装します。

object_addattr

     
  アトリビュートを直接オブジェクトに接続するために、object_addattr 関数を使います。
   
  t_max_err object_addattr(void *x, t_object *attr);
     
  x アトリビュートが接続されるオブジェクト
  attr アトリビュートのポインタ。これは、attribute_newattr_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つを返します。