func init // adds using namespace sys.add_use('AsyncStreaming') // use external class sys.UseClass("AsyncStreamIO") // initialize instance params = this.props('Constructor').value if(params == 'None') sys.add_var(this.name, 'AsyncStreamWriter') else if(params == 'Constructor') params = '' + d("Path") + ', ' + d("Text") elseif(params == 'Constructor2') params = '' + d("Path") + ', ' + d("array") elseif(params == 'Constructor3') params = '' + d("Path") + ', ' + d("Text") + ', ' + (isdef("Encoding") ? d("encoding") : sys.get_undef_manager("Encoding")) end sys.add_object(this.codename, 'AsyncStreamWriter', params) end // makes implementation of methods as properties sys._mtd_as_prop_init('AsyncStreamWriter') // initialize event handlers // event "onError" if(linked("onError")) if(params != 'None') blk_init.println(this.codename, '.OnError += new EventHandler(writer_OnError);') end sys.blocks_store() event("onError", 'args.Error') blk_proc_imp.println('private void writer_OnError(object sender, AsyncStreamErrorEventArgs args) { // ', this.codename, ':onError').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new EventHandler(writer_OnError), sender, args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) blk_proc_imp.copyhere(blk_lvars) end blk_proc_imp.copyhere(blk) .dec().println('}') sys.blocks_restore() end // event "onWrite" if(linked("onWrite")) if(params != 'None') blk_init.println(this.codename, '.OnWroteBytes += new EventHandler(writer_OnWrite);') end sys.blocks_store() event("onWrite", 'args') blk_proc_imp.println('private void writer_OnWrite(object sender, AsyncWriteEventArgs args) { // ', this.codename, ':onWrite').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new EventHandler(writer_OnWrite), sender, args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) blk_proc_imp.copyhere(blk_lvars) end blk_proc_imp.copyhere(blk) .dec().println('}') sys.blocks_restore() end // event "onFinish" if(linked("onFinish")) if(params != 'None') blk_init.println(this.codename, '.OnEndWrite += new EventHandler(writer_OnFinish);') end sys.blocks_store() event("onFinish", 'args') blk_proc_imp.println('private void writer_OnFinish(object sender, AsyncWriteEventArgs args) { // ', this.codename, ':onFinish').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new EventHandler(writer_OnFinish), sender, args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) blk_proc_imp.copyhere(blk_lvars) end blk_proc_imp.copyhere(blk) .dec().println('}') sys.blocks_restore() end // event "onStateChanged" if(linked("onStateChanged")) if(params != 'None') blk_init.println(this.codename, '.OnStateChanged += new EventHandler(writer_OnStateChanged);') end sys.blocks_store() event("onStateChanged", 'args.CurrentState') blk_proc_imp.println('private void writer_OnStateChanged(object sender, AsyncStreamStateChangeArgs args) { // ', this.codename, ':onStateChanged').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new EventHandler(writer_OnStateChanged), sender, args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) blk_proc_imp.copyhere(blk_lvars) end blk_proc_imp.copyhere(blk) .dec().println('}') sys.blocks_restore() end end func doConstructor(data) blk.println(this.codename, ' = new AsyncStreamWriter(', d("Path"), ', ', d("Text"), ');') this.set_events() end func doConstructor2(data) blk.println(this.codename, ' = new AsyncStreamWriter(', d("Path"), ', ', d("array"), ');') this.set_events() end func doConstructor3(data) blk.println(this.codename, ' = new AsyncStreamWriter(', d("Path"), ', ', d("Text"), ', ', isdef("Encoding") ? d("encoding") : sys.get_undef_manager("Encoding"), ');') this.set_events() end func set_events() if(linked("onError")) blk.println(this.codename, '.OnError += new EventHandler(writer_OnError);') end if(linked("onWrite")) blk.println(this.codename, '.OnWroteBytes += new EventHandler(writer_OnWrite);') end if(linked("onFinish")) blk.println(this.codename, '.OnEndWrite += new EventHandler(writer_OnFinish);') end if(linked("onStateChanged")) blk.println(this.codename, '.OnStateChanged += new EventHandler(writer_OnStateChanged);') end end func doStart() blk.println(this.codename, '.StartWrite();') end func doPause() blk.println(this.codename, '.PauseWrite();') end func doResume() blk.println(this.codename, '.ResumeWrite();') end func doStop() blk.println(this.codename, '.StopWrite();') end func doClose() blk.println(this.codename, '.Dispose();') end func State return(this.codename + '.State') end