package pw.koj.jetstreem.core;

public class StrmReadIO extends Streem {
    private ChannelReadBuffer crbuf;

    public StrmReadIO(StrmQueue queue, ChannelReadBuffer crbuf) {
        super(TaskMode.PROD, queue, StrmReadIO::stdioRead, StrmReadIO::readClose, null);
        this.crbuf = crbuf;
    }

    private static void stdioRead(Streem strm, Void data) {
        // TBD
    }

    private static void readClose(Streem strm, Void data) {
        // TBD
    }
}


@@ -25,16 +25,101 @@
 .core;%0A%0A
+import java.nio.channels.SelectableChannel;%0Aimport java.nio.channels.SelectionKey;%0A%0A%0A
 public c
@@ -187,16 +187,47 @@
 r crbuf;
+%0A    private StrmIOLoop ioLoop;
 %0A%0A    pu
@@ -282,16 +282,35 @@
 er crbuf
+, StrmIOLoop ioLoop
 ) %7B%0A    
@@ -430,85 +430,591 @@
     
-%7D%0A%0A    private static void stdioRead(Streem strm, Void data) %7B%0A        // TBD
+    this.ioLoop = ioLoop;%0A    %7D%0A%0A    public ChannelReadBuffer crbuf() %7B%0A        return this.crbuf;%0A    %7D%0A%0A    public StrmIOLoop ioLoop() %7B%0A        return this.ioLoop;%0A    %7D%0A%0A    // start function%0A    private static void stdioRead(Streem strm, Void data) %7B%0A        ioStartRead((StrmReadIO)strm, StrmReadIO::readCb);%0A    %7D%0A%0A    private static void ioStartRead(StrmReadIO strm, StrmFunc cb) %7B%0A       StrmIOLoop loop = strm.ioLoop();%0A       loop.ioStart(strm, (SelectableChannel)strm.crbuf().ch(), cb, SelectionKey.OP_READ);%0A    %7D%0A%0A    public static void readCb(Streem strm, Void data) %7B
 %0A   

add implementation of start function