=================================================================== RCS file: /home/cvs/OpenXM/src/k097/lib/ox/ox.k,v retrieving revision 1.7 retrieving revision 1.10 diff -u -p -r1.7 -r1.10 --- OpenXM/src/k097/lib/ox/ox.k 2000/12/14 10:04:57 1.7 +++ OpenXM/src/k097/lib/ox/ox.k 2001/01/13 12:40:57 1.10 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/k097/lib/ox/ox.k,v 1.6 2000/12/14 04:35:16 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/lib/ox/ox.k,v 1.9 2000/12/27 10:16:12 takayama Exp $ */ /* Load_sm1(["ox.sm1",AddString([GetEnv("OpenXM_HOME"),"/lib/sm1/ox.sm1"])], "ox.sm1.loaded"); */ @@ -72,13 +72,13 @@ class OXcontrol extends Object { } def start() { local c,e, pass, peer, data, s, stmp; - this = new(super.new0()); + this = new(Object.new0()); sm1(" [(oxGenPass)] extension /pass set "); sm1(" [(oxGetPort1) (localhost)] extension /peer set "); sm1(" /data peer 1 get toString def "); s = AddString( [GetEnv("OpenXM_HOME"), - "/src/oxc/oxc", + "/bin/oxc", " -c ", pass, " -h "," localhost ", " -p ", data, " -x ", " & "]); sm1(" [ (/bin/csh -c \") s (\") ] cat /stmp set "); @@ -125,8 +125,8 @@ class OX extends OXcontrol { if (Length(Arglist) == 1) { control = null; } - this = new(super.generate(control)); - control = super.getControl(); + this = new(OXcontrol.generate(control)); + control = this.getControl(); sm1(" [(oxGetPort1) (localhost)] extension /peer set "); sm1(" /data peer 1 get def "); /* BUG: control.pushCMO(data) does not work. @@ -156,7 +156,7 @@ class OX extends OXcontrol { return(engine.channel.popString()); } - def rpc(func,ar) { + def rpc_submit(func,ar) { local n,i,one,comm; if (! IsString(func)) { Error("The first argument of rpc must be a string."); @@ -184,12 +184,22 @@ class OX extends OXcontrol { this.pushCMO(func); this.pushCMD(SM_executeFunction); + } + + def rpc(func,ar) { + local one; + sm1(" /one 1 def "); + rpc_submit(func,ar); this.pushCMO(one); this.pushCMO("ox_ptod"); this.pushCMD(SM_executeFunction); return(this.popCMO()); } - + + def rpc_str(func,ar) { + rpc_submit(func,ar); + return(this.popString()); + } def executeString(s) { this.pushCMO(s); this.pushCMD(SM_executeStringByLocalParser); @@ -212,3 +222,15 @@ def startAsir() { return(a); } +class Asir extends OX { + local ; + def generate() { + local asirpeer,a; + this = new(OX.generate("ox_asir",null)); + a = this; + asirpeer = (a.getEngine()).getChannel(); + Println(asirpeer); + sm1(" [asirpeer oxasirpath.asirlib] loadAsirFile "); + return(this); + } +}