XAddConnectionWatch(3X11)

名前
XAddConnectionWatch, XRemoveConnectionWatch, XProcessInternalConnection, XInternalConnectionNumbers - Xlib の内部接続を扱う

書式
typedef void (*XConnectionWatchProc)(display, client_data, fd, opening, watch_data)
      Display *display;
      XPointer client_data;
      int fd;
      Bool opening;
      XPointer *watch_data;

Status XAddConnectionWatch(display, procedure, client_data)
      Display *display;
      XWatchProc procedure;
      XPointer client_data;

Status XRemoveConnectionWatch(display, procedure, client_data)
      Display *display;
      XWatchProc procedure;
      XPointer client_data;

void XProcessInternalConnection(display, fd)
      Display *display;
      int fd;

void XProcessInternalConnection(display, fd)
      Display *display;
      int fd;

Status XInternalConnectionNumbers(display, fd_return, count_return)
      Display *display;
      int **fd_return;
      int *count_return;

引き数

client_data
    付加的なクライアントデータを指定。

count_return
    ファイルデスクリプタの数を返す。

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

fd  ファイルデスクリプタを指定。

fd_return
    ファイルデスクリプタが返される。

procedure
    呼び出される手続きを指定。

説明
関数 は指定したディスプレイに対して、Xlib の内部接続をオープンあるいはクロー ズするとき毎回呼び出される手続きを登録する。この手続きにはディスプレイ、 指定された client_data, 接続のファイルデスクリプタ、接続のオープン/ク ローズを示す真偽値、プライベートな監視データへのポインタが渡される。 引き数 opening が ならば、この手続きはプライベートなデータへのポインタを watch_data が指 す場所に格納することができる。その後、同じ接続に対してこの手続きが呼ば れ、opening が である時、watch_data が指す場所には同じプライベートなデータへのポイン タが格納されている。

この関数はディスプレイをオープンした後はいつでも呼ぶことができる。 内部接続が既に存在する場合、登録された手続きはそれぞれの接続に対して即 座に呼び出される。この処理は から処理が戻ってくる前に行われる。 は手続きの登録に成功すればゼロでないステータスを返し、そうでない場合に はゼロを返す。

登録する手続きからは Xlib の関数を呼び出してはならない。 手続きが直接的、間接的に内部接続の状態を変えたり、監視の手続きを変えた りした場合の結果は未定義である。 Xlib がスレッドを使うように初期化されている場合、この手続きは呼び出さ れるときにロックされたディスプレイを与えられるが、ディスプレイをロック するような Xlib 関数を呼び出すと、その結果は未定義となる。 ただし、動作しているスレッドが を使って外部からディスプレイをロックしている場合はこの限りではない。

関数 は以前登録した接続監視手続きを削除する。 client_data は、この手続きが最初に登録されたときに用いられた client_data と一致しなければならない。

関数 は内部接続で利用可能な入力を処理する。 この関数はOSの入力監視機能(例えば や )によって入力が可能であることが示されるまでは、内部接続に対して呼び出 すべきではない。そうでない場合の影響は未定義である。

関数 は指定したディスプレイに対して現在オープンされている内部接続のファイル デスクリプタのリストを返す。 アロケートしたリストが不要になった場合、 を使ってこれを解放すること。 この関数はリストの解放に成功した場合にゼロでないステータスを返し、そう でない場合はゼロを返す。

関連項目
Xlib - C Language X Interface