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

Diff for /OpenXM/src/kan96xx/Doc/httpd-asir.sm1 between version 1.4 and 1.5

version 1.4, 2001/04/21 11:16:30 version 1.5, 2001/04/21 13:54:29
Line 1 
Line 1 
 %% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.3 2001/04/21 08:18:03 takayama Exp $  %% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.4 2001/04/21 11:16:30 takayama Exp $
 %% http server by sm1  %% http server by sm1
   
 /httpd.port 1200 def  /httpd.port 1200 def
 /httpd.initialization  /httpd.initialization
 %% Put initialization codes here.  %% Put initialization codes here.
  [   [
   ("Risa/Asir web version 0.80. "+    ("Asirweb version 0.80. "+
    " Risa/Asir oxasir version "+rtostr(version());)     " Risa/Asir oxasir version "+rtostr(version());)
  ] cat   ] cat
 def  def
Line 13  def
Line 13  def
 (oxasir.started) boundp {  (oxasir.started) boundp {
 } {  } {
   [(x^2-1) (x)] fctr pop    [(x^2-1) (x)] fctr pop
     oxasir.ccc oxmathcap
     oxasir.ccc oxsetmathcap
 } ifelse  } ifelse
   
   /asirweb {
     (sleep 3; netscape -geometry 800x500 http://localhost:1200 &) system
      httpd ;
   } def
   
 /httpd_startserver {  /httpd_startserver {
    [(sm1.socket) (open) [httpd.port (localhost)]] extension     [(sm1.socket) (open) [httpd.port (localhost)]] extension
    /server.fdAndPort set     /httpd.server.fdAndPort set
    (sm1.socket.open returns  ) messagen server.fdAndPort message     (sm1.socket.open returns  ) messagen httpd.server.fdAndPort message
    [(sm1.socket) (accept) [server.fdAndPort 0 get]] extension     [(sm1.socket) (accept) [httpd.server.fdAndPort 0 get]] extension
    /server.fd set     /httpd.server.fd set
    (connected.) message     (connected.) message
    (sm1.socket.accept returns  ) messagen server.fd message     (sm1.socket.accept returns  ) messagen httpd.server.fd message
 } def  } def
   
 /httpd_stopserver {  /httpd_stopserver {
    [(sm1.socket) (close) server.fd ] extension message     [(sm1.socket) (close) httpd.server.fd ] extension message
 } def  } def
   
 /send_packet {  /send_packet {
   /arg1 set    /arg1 set
   [(sm1.socket) (write) [server.fd 0 get arg1]] extension message    [(sm1.socket) (write) [httpd.server.fd 0 get arg1]] extension message
 } def  } def
   
 /sendln {  /sendln {
Line 43  def
Line 50  def
   }{    }{
     10 (string) dc /mmm set      10 (string) dc /mmm set
   } ifelse    } ifelse
   [(sm1.socket) (write) [server.fd 0 get mmm]] extension message    [(sm1.socket) (write) [httpd.server.fd 0 get mmm]] extension message
  ] pop   ] pop
  popVariables   popVariables
 } def  } def
Line 61  def
Line 68  def
 } def  } def
   
 /httpd_action {  /httpd_action {
   [/in-httpd /httpd.com.old /ff /httpd.com /httpd.result    [/in-httpd /ff /httpd.com /httpd.result /sss
      /sss.engine /sss.web
   ] pushVariables    ] pushVariables
   [    [
   {    {
    /httpd.com.old ( ) def         [(sm1.socket) (select) [httpd.server.fd 0 get -1]] extension
    [(sm1.socket) (select) [server.fd 0 get -1]] extension         %%     wait for ever
 %%                                          wait for ever          [(sm1.socket) (read) [httpd.server.fd 0 get ]] extension /ff set
         [(sm1.socket) (read) [server.fd 0 get ]] extension /ff set  
         ff length 0 eq {          ff length 0 eq {
            (connection is closed.) message             (connection is closed.) message
         }          }
Line 84  def
Line 91  def
             /httpd.com  httpd.initialization def              /httpd.com  httpd.initialization def
           } { } ifelse            } { } ifelse
           httpd.com metaCommand {            httpd.com metaCommand {
             /httpd.history httpd.history httpd.com append def              /httpd.history
                   httpd.history
                   [10 (string) dc
                    (/**** ) httpd.serial toString ( ****/)
                    10 (string) dc
                     httpd.com
                    ] cat
                   append
               def
             oxasir.ccc              oxasir.ccc
              [(if (1) {)  httpd.com  (};)] cat               [(if (1) {)  httpd.com  (};)] cat
             oxexecutestring ;              oxexecutestring ;
             oxasir.ccc oxpopstring /httpd.result set  
             /httpd.com.old httpd.com def              [(oxReq) oxasir.ccc SM_popString ] extension pop
               [(flush)] extension pop
               %% Select inputs for interruption.
               %% Wait by the spin lock.
               {
                 [(oxMultiSelect) [oxasir.ccc] 1] extension 1 get 0 get
                 /sss.engine set
                 [(sm1.socket) (mselect)
                   [[httpd.server.fd 0 get] 1]
                 ] extension 0 get /sss.web set
                 /sss [sss.engine sss.web] def
                 sss.engine { exit } { } ifelse
                 sss.web    { exit } { } ifelse
               } loop
               sss message
   
               sss 0 get {
                   [(oxGet) oxasir.ccc] extension  /httpd.result set
                   %% oxasir.ccc oxpopstring /httpd.result set
               } {
                   oxasir.ccc oxreset
                   oxasir.ccc ("computation is interrupted.";) oxexecutestring ;
                   oxasir.ccc oxpopstring
                   /httpd.result set
                   exit
               } ifelse
             (------------- result -------------) message              (------------- result -------------) message
             httpd.result message              httpd.result message
             (----------------------------------) message              (----------------------------------) message
Line 105  def
Line 145  def
              (<pre>) httpd.result (</pre>)               (<pre>) httpd.result (</pre>)
             ] cat              ] cat
             send-page-3  exit              send-page-3  exit
           } { } ifelse  %% metaCommand            } { exit } ifelse  %% metaCommand
         } ifelse          } ifelse
   } loop    } loop
   ] pop    ] pop
Line 183  def
Line 223  def
   [$<a href="http://localhost:$ httpd.port toString    [$<a href="http://localhost:$ httpd.port toString
    $/?msg=httpdAsirMeta+quit"> Shutdown the asir server. </a>, $     $/?msg=httpdAsirMeta+quit"> Shutdown the asir server. </a>, $
   ] cat sendln    ] cat sendln
   %%  [$<a href="http://localhost:$ httpd.port toString
   %%   $/?msg=httpdAsirMeta+interrupt"> interrupt </a>, $
   %%  ] cat sendln
     [$<a href="http://localhost:$ httpd.port toString
      $/?msg=httpdAsirMeta+save"> save. </a>, $
     ] cat sendln
   ( <spacer type=horizontal size=80> ) sendln    ( <spacer type=horizontal size=80> ) sendln
   
   (HELP:) sendln    (HELP:) sendln
Line 194  def
Line 240  def
     <a href=) httpd.asir.intro ( > Intro (Ja) </a> </font>, )] cat sendln      <a href=) httpd.asir.intro ( > Intro (Ja) </a> </font>, )] cat sendln
 } def  } def
   
   /send-page-save {
    [/in-send-page-save /i] pushVariables
    [
      (HTTP/0.9 200 OK) sendln
      (Connection: close) sendln
      (Content-Type: text/html) sendln
      0 sendln
      (<html> <body>) sendln
      (/* Save the following to  sm1out.txt */<br>) sendln
   
      (<pre>) sendln
      0 1 httpd.history length 1 sub {
        /i set
        httpd.history i get sendln
      } for
      (</pre>) sendln
      (</body> </html>) sendln
      0 sendln
      [(flush)] extension
      [(PrintDollar) 1] system_variable
      httpd.history output
      [(PrintDollar) 0] system_variable
    ] pop
    popVariables
   } def
   
   
 /stopclient {  /stopclient {
   [(sm1.socket) (close) [client.fdAndPort 0 get] ] extension message    [(sm1.socket) (close) [client.fdAndPort 0 get] ] extension message
 } def  } def
Line 299  def
Line 372  def
     msg (httpdAsirMeta quit) eq {      msg (httpdAsirMeta quit) eq {
        send-page-bye         send-page-bye
        quit         quit
          /result 0 def
       } { } ifelse
       msg (httpdAsirMeta save) eq {
          send-page-save
          /result 0 def
       } { } ifelse
       msg (httpdAsirMeta interrupt) eq {
          oxasir.ccc oxreset
          (Interrupted! <br>) send-page-3
        /result 0 def         /result 0 def
     } { } ifelse      } { } ifelse
     /arg1 result def      /arg1 result def

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>