XrmEnumerateDatabase(3) リソースデータベースのエントリーを列挙する

書式

#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 関 数を呼び出した場合の結果は未定義である。