IT用語集 › インフラ › INCR transfer (X11)

INCR transfer (X11)

インフラ Svenska → 更新: 2026-10-23

1つのプロパティに収まらない大きさのセレクションを、塊ごとに受け渡すICCCMの方式。塊ごとに握手があり、失敗の機会も同じ数だけある。

プログラムがXセレクションを要求すると、所有者は答えを要求元ウィンドウのプロパティに置く。プロパティはXのリクエストとして運ばれ、古典的なプロトコルではリクエストの上限が256KBだったため、文書全体をクリップボードに載せることはできなかった。ICCCMはこれを INCR という型で解決する。所有者はデータではなく、これから届くバイト数の下限を書き込み、要求側はまだ続きがあると理解する。

そこから手順が始まる。要求側がプロパティを削除し、所有者が最初の塊を書き、要求側がそれを読んで削除し、所有者は削除を知らせる PropertyNotify を待って次の塊を書く。空の塊が終了の印だ。双方が転送の途中でプロパティイベントを監視する必要があり、相手が途中で死んだ場合に備えてタイムアウトも要る。多くのクライアントがここを雑に実装するか、実装すらしていないため、小さな貼り付けは動くのに大きな貼り付けは空になる、という古典的なバグが起きる。BIG-REQUESTSで上限は引き上げられたが、制限が完全には消えなかったのでINCRは残っている。

← 用語集に戻る