プロトコルとイベント
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/17 07:18 UTC 版)
サーバに要求を送るXlib関数は即座に要求を送るのではなく、output bufferというバッファに一旦格納する。この場合のoutputはクライアントからサーバに向けての出力である。output bufferはサーバへのあらゆる種類の要求を格納でき、それは必ずしも画面に見える効果だけではない。output bufferは、関数XSyncやXFlushを呼び出したとき、あるいはサーバからの戻り値がある関数を呼び出したとき(応答があるまでそれら関数はブロックする)、あるいはその他の条件でフラッシュ(バッファ上のすべての要求がサーバに送られ、バッファを空にする)される。 Xlibは受け取ったイベントをキューに格納する。クライアント・アプリケーションは、そのキューを調べて、イベントを取り出す。Xサーバがイベントを非同期に送るのに対して、Xlibを使うアプリケーションはキュー上のイベントにアクセスするのにXlib関数を明示的に呼び出さなければならない。そのような関数の中にはブロックするものもあり、その時点でもoutput bufferがフラッシュされる。 エラーは非同期に受け取られ、扱われる。アプリケーションは、エラー発生時にエラーメッセージをサーバから受け取るエラーハンドラを登録しておく。 ウィンドウの一部が見えない状態のとき、ウィンドウの内容が保持されているとは限らない。その場合、隠れていたウィンドウが見える状態になるとExposeイベントがアプリケーションに送られる。アプリケーションは、そのイベントを受けてウィンドウの内容を再描画しなければならない。
※この「プロトコルとイベント」の解説は、「Xlib」の解説の一部です。
「プロトコルとイベント」を含む「Xlib」の記事については、「Xlib」の概要を参照ください。
- プロトコルとイベントのページへのリンク