[BACK]Return to oxd.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

File: [local] / OpenXM / src / kan96xx / Doc / oxd.sm1 (download)

Revision 1.2, Mon Oct 28 00:38:33 2002 UTC (21 years, 7 months ago) by takayama
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.1: +4 -3 lines

Made the following change for the oxd starting protocol:
  1. ox itself has to finish.  ( ox -finish )
  2. oxd waits the termination of ox and gets the result code.
  3. if the result code is 0, then oxd returns <suceeded/>, else
     oxd returns <failed code=xxyy/>
  4. The client of oxd receives the result (<suceeded/> or <failed/>) and
     sends <login/> and close the session.

% $OpenXM: OpenXM/src/kan96xx/Doc/oxd.sm1,v 1.2 2002/10/28 00:38:33 takayama Exp $
[(parse) (oxasir.sm1) pushfile] extension
% It has not yet been finished. 
/asirconnectr {
 [/in-asirconnectr /pass /peer /data /control
  /comm /oxd /ff /fname /nl
  /oxasir] pushVariables
 [
  /nl 10 (string) dc def
  [(sm1.socket) (connect) [8089]] extension /oxd set
  [(sm1.socket) (select) [oxd 0 get -1]] extension
  [(sm1.socket) (read)  [oxd 0 get]] extension /ff set
  /gg [(<login method="file">) nl ] cat def
  ff message gg message
  [(sm1.socket) (write) [oxd 0 get gg]] extension 
  [(flush)] extension

  [(sm1.socket) (select) [oxd 0 get -1]] extension
  [(sm1.socket) (read)  [oxd 0 get]] extension /ff set
  ff getFname /fname set
  fname message
  [(touch ) fname ] cat system
 
  /peer [(oxGetPort) (localhost)] extension def
  /data peer 1 get toString def
  /control peer 3 get toString def
%  /pass 0 (string) dc def  % empty password
  /pass (hoge) def
  peer message
  [(ox -ox ox_asir ) ( -reverse )  ( -data ) data ( -control ) control  
   ( -pass ) pass  ( -finish )
  ] cat /comm set

  /gg [ (<done/>) nl ] cat def
  ff message gg message
  [(sm1.socket) (write) [oxd 0 get gg]] extension 

  [(sm1.socket) (select) [oxd 0 get -1]] extension
  [(sm1.socket) (read)  [oxd 0 get]] extension /ff set
  % read ?

  /gg [(<launch> ) comm ( </launch> ) nl ] cat def
  ff message gg message
  [(sm1.socket) (write) [oxd 0 get gg]] extension 
  
  %% Check if the launching is successful or not.  Not yet written.

  [(oxCreateClient2) peer 0 pass] extension /oxasir set
                     %% 0 means connect from only localhost. 
  oxasir asirinit
  /arg1 oxasir def
 ] pop
 popVariables
 arg1
} def


/getFname {
 /arg1 set
 [/in-getFname /comm /i /comm2
  /j 
 ] pushVariables
 [
   /comm arg1 def
   comm (array) dc /comm set
%   comm message
   % 34 = " 
   /comm2 [ ] def
   0 1 comm length 1 sub {
     /i set
     comm i get 34 eq {
      [
        i 1 add 1 comm length 1 sub {
         /j set
         comm j get  
        } for
       ] /comm2 set
       exit
     } { } ifelse
   } for
   comm2 /comm set
%   comm message

   [
   0 1 comm length 1 sub {
     /i set
     comm i get 34 eq {
       exit
     } {
       comm i get
     } ifelse
   } for
   ] /comm2 set
 
   comm2 {(string) dc} map cat /arg1 set
 ] pop
 popVariables
 arg1
} def