Typedefs | |
typedef MPlist | MPlist |
プロパティリスト・オブジェクトの型宣言. | |
Functions | |
MPlist * | mplist_deserialize (MText *mt) |
M-text をデシリアライズしてプロパティリストを作る. | |
MPlist * | mplist () |
プロパティリストオブジェクトを作る. | |
MPlist * | mplist_copy (MPlist *plist) |
プロパティリストをコピーする. | |
MPlist * | mplist_put (MPlist *plist, MSymbol key, void *val) |
プロパティリスト中のプロパティの値を設定する. | |
void * | mplist_get (MPlist *plist, MSymbol key) |
プロパティリスト中のプロパティの値を得る. | |
MPlist * | mplist_add (MPlist *plist, MSymbol key, void *val) |
プロパティリスト末尾にプロパティを追加する. | |
MPlist * | mplist_push (MPlist *plist, MSymbol key, void *val) |
プロパティリストの先頭にプロパティを挿入する. | |
void * | mplist_pop (MPlist *plist) |
プロパティリストの先頭からプロパティを削除する. | |
MPlist * | mplist_find_by_key (MPlist *plist, MSymbol key) |
プロパティリスト中から指定のキーを持つプロパティを探す. | |
MPlist * | mplist_find_by_value (MPlist *plist, void *val) |
プロパティリスト中から指定の値を持つプロパティを探す. | |
MPlist * | mplist_next (MPlist *plist) |
プロパティリストの次の部分リストを返す. | |
MPlist * | mplist_set (MPlist *plist, MSymbol key, void *val) |
プロパティリストの最初のプロパティを設定する. | |
int | mplist_length (MPlist *plist) |
プロパティリストの長さを返す. | |
MSymbol | mplist_key (MPlist *plist) |
プロパティリスト中の最初のプロパティのキーを返す. | |
void * | mplist_value (MPlist *plist) |
プロパティリスト中の最初のプロパティの値を返す. | |
Variables | |
MSymbol | Minteger |
"integer" を名前として持つシンボル. | |
MSymbol | Mplist |
"plist" を名前として持つシンボル. | |
MSymbol | Mtext |
"mtext" を名前として持つシンボル. |
(void *)
にキャストできるものならば何でも良い。あるプロパティのキーが 管理キー ならば、その 値 は 管理下 オブジェクト である。プロパティリスト自体も管理下オブジェクトである。
|
MPlist は プロパティリスト (Property list) オブジェクトの型である。 内部構造はアプリケーションプログラムからは見えない。 |
|
関数 mplist_deserialize() は M-text mt を解析してプロパティリストを返す。 mt のシンタックスは以下の通り。 MT ::= '(' ELEMENT * ')' ELEMENT ::= SYMBOL | INTEGER | M-TEXT | PLIST SYMBOL ::= アスキー文字列 INTEGER ::= '-' ? [ '0' | .. | '9' ]+ | '0x' [ '0' | .. | '9' | 'A' | .. | 'F' | 'a' | .. | 'f' ]+ M-TEXT ::= '"' character-sequence '"'
アスキー文字列内では、バックスラッシュ (\) がエスケープ文字として用いられる。たとえば |
|
関数 mplist() は長さ 0 のプロパティリストオブジェクトを新しく作って返す。
|
|
関数 mplist_copy() はプロパティリスト plist をコピーする。コピーのすべての値はコピー元 plist の値と同じである。
|
|
関数 mplist_put() はプロパティリスト plist を始めから探して、キーが key であるプロパティを見つける。見つかれば、その値を value に変更する。見つからなければ、キーが key で値が value である新しいプロパティが plist の末尾に追加される。key と val に対する制限については、mplist_add() の説明を参照。
key が管理キーならば、 val は管理下オブジェクトでなくてはならない。この場合、古い値の参照数は
|
|
関数 mplist_get() は、プロパティリスト plist を始めから探して、キーが key であるプロパティを見つける。見つかれば、その値へのポインタを
|
|
関数 mplist_add() は、プロパティリスト plist の末尾にキーが key で値が val であるプロパティを追加する。key は、 key が管理キーならば、val は管理下オブジェクトでなくてはならない。この場合、 val の参照数は 1 増やされる。
|
|
関数 mplist_push() はプロパティリスト plist の先頭にキーが key で値が val であるオブジェクトを挿入する。 key が管理キーならば、val は管理下オブジェクトでなくてはならない。この場合、 val の参照数は 1 増やされる。
|
|
関数 mplist_pop() はプロパティリスト plist の先頭のプロパティを削除する。結果として、元の plist の2番目のキーと値が、新しい plist の先頭のキーと値になる。
|
|
関数 mplist_find_by_key() はプロパティリスト plist を始めから探 して、キーが key であるプロパティを見つける。見つかれば、そのプロパティから始まる plist の部分リストを返す。そうでなければ
key が |
|
関数 mplist_find_by_value() はプロパティリスト plist を始めから探して、値が val であるプロパティを見つける。見つかれば、そのプロパティから始まる plist の部分リストを返す。そうでなければ |
|
関数 mplist_next() はプロパティリスト plist の 2 番目の要素から始まる部分リストへのポインタを返す。plist の長さが 0 ならば |
|
関数 mplist_set() はプロパティリスト plist の最初のプロパティのキーと値をそれぞれ key と value に設定する。 key と val に対する制限については、mplist_add() の説明を参照。
|
|
関数 mplist_length() はプロパティリスト plist 中のプロパティの数を返す。 |
|
関数 mplist_key() は、プロパティリスト plist 中の最初のプロパティのキーを返す。plist の長さが 0 ならば、 |
|
関数 mplist_value() は、プロパティリスト plist 中の最初のプロパティの値を返す。 plist の長さが 0 ならば、 |
|
シンボル |
|
シンボル |
|
シンボル |