6.66. kink/javahost/JAVA_CHANNEL_INPUT

JavaのReadableByteChannelにもとづくinputを提供する。

6.66.1. JAVA_CHANNEL_INPUT.new(Channel ...[$config={}])

newはjava.nio.channels.ReadableByteChannelからinputを作る。

コンフィグメソッド:

• C.buffer(...[Max_buf_size])

• C.close_method_handle(Close_mh): default = ReadableByteChannel::close

バッファリング

C.bufferが呼ばれた場合、結果のinputはユーザ空間のバッファリングを行う。Max_buf_sizeが渡された場合、バッファサイズはバイト長でMax_buf_sizeを超えない。

C.bufferが呼ばれない場合、結果のinputはユーザ空間のバッファリングを行わない。

inputの閉じ方

inputのcloseメソッドが呼ばれた時には、Channelを引数としてClose_mhが呼ばれる。

Close_mhがIOExceptionを投げた場合、closeはIOエラーで終了する。

事前条件

Channelはjava値であり、そのobjectReferenceはReadableByteChannelでなければならない。objectReferenceはまた、Close_mhのパラメータの型のインスタンスでなければならない。

Max_buf_sizeは正の整数のnum値でなければならない。

Close_mhは、引数をひとつ取るMethodHandleのjava値でなければならない。

Close_mhの呼び出しは、IOエラーが起きた場合、IOExceptionを投げなければならない。