書式
#define | XrmEnumAllLevels |
0
|
#define | XrmEnumOneLevel |
1
|
Bool XrmEnumerateDatabase(database, name_prefix, class_prefix, mode, proc, arg)
XrmDatabase database;
XrmNameList name_prefix;
XrmClassList class_prefix;
int mode;
Bool (*proc)();
XPointer arg;
引き数
- database
- リソースデータベースを指定する。
- name_prefix
- リソース名のプレフィックスを指定する。
- class_prefix
- リソースクラスのプレフィックスを指定する。
- mode
- 列挙するレベルの数を指定する。
- proc
- マッチしたエントリーのそれぞれに対して呼ばれる手続きを指定する。
- arg
- 手続きに渡される、ユーザ指定の引き数を指定する。
説明
関数 XrmEnumerateDatabase は、データベースの与えられた名前/クラスのリソースのプレフィックスを補 完したものにマッチする各リソースに対して、指定した手続きを呼び出す。 リソースが見つかる順序は実装依存である。 モードが XrmEnumOneLevel ならば、リソースは与えられた名前/クラスのプレフィックスで、1つだけの名 前とクラスが追加されているものにマッチしなければならない。モードが XrmEnumAllLevels ならば、リソースは与えられた名前/クラスのプレフィックスで、1つ以上の名 前とクラスが追加されているものにマッチしなければならない。 手続きが True を返した場合に列挙は終了し、関数は True を返す。 手続きが常に False を返す場合、マッチする全てのリソースは列挙され、関数は False を返す。手続きは次の引き数を使って呼び出される:
(*proc)(database, bindings, quarks, type, value, arg) XrmDatabase *database; XrmBindingList bindings; XrmQuarkList quarks; XrmRepresentation *type; XrmValue *value; XPointer arg;
引き数の bindings リストと quarks リストは、 NULLQUARK で終わる。 手続きにはデータベースへのポインタと型が渡されるが、これらの値を変更し てはならない点に注意すること。
この手続きはデータベースを変更してはならない。 Xlib がスレッドを初期化した場合、手続きはロックされたデータベースを引き数 にして呼ばれる。このとき、手続きが同一のデータベースを使って Xlib 関 数を呼び出した場合の結果は未定義である。