func init // adds using namespace sys.add_use('PipeStream') // use external class sys.UseClass("PipeServer") // initialize instance sys.add_object(this.codename, 'PipeServer') // initialize event handlers ini = block.reg("init").inc().inc() if(pos(sys.get_frame_above(), 'UserClass', 0)) inits.add(ini) else this.parent.get_parent_sdk().class_events.add(ini) end // event "onError" if(linked("onError")) blk_init.println(this.codename, '.OnError += new PipeServerError(pipeserver_OnError);') sys.blocks_store() event("onError", 'args') ini.println('private void pipeserver_OnError(string args) { // ', this.codename, ':onError').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new PipeServerError(pipeserver_OnError), args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) ini.copyhere(blk_lvars) end ini.copyhere(blk) .dec().println('}') sys.blocks_restore() end ini = block.reg("init").inc().inc() if(pos(sys.get_frame_above(), 'UserClass', 0)) inits.add(ini) else this.parent.get_parent_sdk().class_events.add(ini) end // event "onRead" if(linked("onRead")) blk_init.println(this.codename, '.OnPipeMessage += new PipeServerMessage(pipeserver_OnRead);') sys.blocks_store() event("onRead", 'args') ini.println('private void pipeserver_OnRead(byte[] args) { // ', this.codename, ':onRead').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new PipeServerMessage(pipeserver_OnRead), args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) ini.copyhere(blk_lvars) end ini.copyhere(blk) .dec().println('}') sys.blocks_restore() end end func doListen(data) blk.println(this.codename, '.Listen(', d("PipeName"), ');') end func doClose() blk.println(this.codename, '.Close();') end