=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ox.sm1,v retrieving revision 1.20 retrieving revision 1.22 diff -u -p -r1.20 -r1.22 --- OpenXM/src/kan96xx/Doc/ox.sm1 2002/08/03 06:02:35 1.20 +++ OpenXM/src/kan96xx/Doc/ox.sm1 2003/01/01 02:03:41 1.22 @@ -1,4 +1,4 @@ -%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.19 2001/12/28 08:05:44 takayama Exp $ +%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.21 2002/11/08 14:18:00 takayama Exp $ /ox.sm1.loaded 1 def %%%%%%%%%%%% Configuration: Specify your server path @@ -46,7 +46,12 @@ oxpath.oxlog.xterm message } def -/ox.ccc.init { ox.ccc ( [(oxPrintMessage) 0] extension pop ) oxsubmit } def +/ox.ccc.init { + ox.ccc ( [(oxPrintMessage) 0] extension pop ) oxsubmit + (Ox103_loaded) boundp + { ox.ccc ox103_sm1_init } + { } ifelse +} def /ox.verbose 0 def /ox.version (2.981105) def @@ -145,6 +150,7 @@ ox.version [(Version)] system_variable gt (oxpopcmo1, oxpopcmo2, sm1connect2, sm1connect3) (sm1connectr ox_launch, ox_launch_nox) (oxNoX : set an environment to invoke oxlog without xterm and to call oxlog with >& /dev/null) + (oxresetAll, oxIsInterruptable, [(oxGetClientList)] extension ) $ ex 1. (ox.sm1) run oxNoX sm1connectr $ $ ex 2. (oxasir.sm1) run oxNoX (x^2-1). fctr pmat ; $ ] @@ -1074,6 +1080,64 @@ ox.verbose { popVariables arg1 } def + +/oxIsInterruptable { + /arg1 set % Client Object + [/in-ox_get_server_name /mcap /ans /sname] pushVariables + [ + /mcap arg1 def + /ans 0 def + mcap tag 6 eq { + mcap 10 get tag 6 eq { + mcap 10 get 1 get 0 get 1 get /sname set + }{ /sname ( ) def } ifelse + }{ + /sname ( ) def + } ifelse + (ox_sm1) sname isSubstr -1 eq { + } { /ans 1 def } ifelse + (ox_asir) sname isSubstr -1 eq { + } { /ans 1 def } ifelse + /arg1 ans def + ] pop + popVariables + arg1 +} def + +/oxresetAll { + [(oxGetClientList)] extension + { dup oxIsInterruptable { oxreset } { pop } ifelse } map +} def + +/oxrpc2 { + /arg2 set + /arg1 set + [/in-oxrpc2 /pid /n /comm /i] pushVariables + [ + /pid arg1 def + /comm arg2 def + /n comm length def + n 1 sub -1 1 { + /i set + pid comm i get oxsendcmo + } for + pid n 1 sub oxsendcmo + pid comm 0 get oxexec + ] pop + popVariables +} def + +[(oxrpc2) + [(Remote procedure call by using oxexec) + (client [function-name arg1 arg2 ...] oxrpc2 ) + (cf. ox-cmo-rpc in Risa/Asir) + (Example: ) + $ (oxasir.sm1) run (x^2-1). fctr $ + (oxasir.ccc [(igcd) (6).. (10)..] oxrpc2) + (oxasir.ccc oxpopcmo :: ) + ] +] putUsages + [(ostype)] extension 0 get (windows) eq {