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を投げなければならない。