public override int read(WvBytes b) { lock (readlock) { if (in_left > 0) { int max = in_left <= b.len ? in_left : b.len; b.put(0, inbuf.sub(in_ofs, max)); in_ofs += max; in_left -= max; if (in_left > 0) post_readable(); else start_reading(); return max; } else { start_reading(); return 0; } } }
public override int read(WvBytes b) { if (inbuf.used > 0) { int max = inbuf.used > b.len ? b.len : inbuf.used; b.put(0, inbuf.get(max)); post_readable(); return max; } else return base.read(b); }