XFlush(3X11)

名前
XFlush, XSync, XEventsQueued, XPending - イベントキューの出力バッファを扱う

書式
XFlush(display)
      Display *display;

XSync(display, discard)
      Display *display;
      Bool discard;

int XEventsQueued(display, mode)
     Display *display;
     int mode;

int XPending(display)
      Display *display;

引き数

discard
    がイベントキューの全てのイベントを破棄するかどうか指示する 真偽値を指定する。

display
    X サーバへの接続を指定する。

mode
    モードを指定する。 のいずれかを渡すことができる。

説明
関数 は出力バッファをフラッシュする。 出力バッファは を呼ぶことにより必要に応じて自動的にフラッシュされるので、ほとんどの クライアントアプリケーションはこの関数を使う必要はない。 サーバによって生成されたイベントは、ライブラリのイベントキューに入れら れることもある。

関数 は出力バッファをフラッシュし、その後 X サーバが全てのイベントを受け取っ て処理するまで待つ。 生成された全てのエラーは、エラーハンドラを使って処理しなければならない。 Xlib が受け取るそれぞれのプロトコルエラーに対して、 はクライアントのエラー処理ルーチンを呼び出す(11.8.2節参照)。 サーバによって生成された全てのイベントはライブラリのイベントキューに入 れられる。

最後になるが、 を渡した場合、 はキュー内のイベントを破棄しない。 を渡した場合には、 はキュー内のイベントを全て破棄する。 これには が呼ばれる前にキューに入っていたものも含まれる。 クライアントアプリケーションが を呼ぶ必要があることはほとんどない。

mode が の場合、 は既にイベントキュー内にある(そしてシステムコールを実行していない) イベントの数を返す。 mode が の場合には、 は既にキューに入っているイベントの数が 0 個でなければ、その数を返す。 キューにイベントが入っていなければ、 は出力バッファをフラッシュし、アプリケーションの接続の中からさらに イベントを読み出そうと試み、読み出せた数を返す。 mode が の場合、 は、既にキューに入っているイベントの数が 0 個でなければその数を返す。 キューにイベントが入っていなければ、 は出力バッファをフラッシュせずに、アプリケーションの接続から さらにイベントを読み出そうと試み、読み出すことができた数を返す。

は、既にキュー内にイベントがあれば、入出力なしで即座に復帰する。 mode が である の動作は と同一である。 mode が である は関数 と同一である。

関数 は X サーバが受け取っているが、イベントキューからは削除されていない イベントの数を返す。 は mode が指定されている と同じである。

関連項目
AllPlanes(3X11), XIfEvent(3X11), XNextEvent(3X11), XPutBackEvent(3X11)
Xlib - C Language X Interface