func init // adds using namespace sys.add_use('System.IO') // initialize instance if(linked("StreamReader")) this.setfield('reader', d("StreamReader")) if(linked("doRead")) sys.add_var('buf', 'char[]') if(linked("Length")) sys.add_var(this.name, 1) end end else error(this.name + ' - warning: StreamReader does not linked') end if(linked("onError")) this.setfield('ex', 'ex' + this.id) end end func doRead(data) if(linked("StreamReader")) if(linked("Length")) blk.println(this.buf, ' = new char[', d("Count"),']', ';') blk.println(this.codename, ' = ', this.make_read(data), ';') event("onRead", this.buf) else blk.println(this.buf, ' = new char[', d("Count"),']', ';') blk.println(this.make_read(data), ';') event("onRead", this.buf) end end end func doClose() if(linked("StreamReader")) linked("onError") ? blk.println('try {').inc() : '' blk.println(this.reader, '.Close();') if(linked("onError")) blk.dec().println('} catch (Exception ', this.ex, ') {').inc() event("onError", this.ex + '.Message') blk.dec().println('}') end end end func doDiscardBufferedData() if(linked("StreamReader")) linked("onError") ? blk.println('try {').inc() : '' blk.println(this.reader, '.DiscardBufferedData();') if(linked("onError")) blk.dec().println('} catch (Exception ', this.ex, ') {').inc() event("onError", this.ex + '.Message') blk.dec().println('}') end end end func Length if(linked("StreamReader") and linked("doRead")) return(this.codename) end end func Buffer if(linked("StreamReader") and linked("doRead")) return(this.buf) end end func make_read(data) return(this.reader + '.Read(' + this.buf + ', ' + d("Index") + ', ' + d("Count") + ')') end