Parameterized Communication
by Per Harald Myrvang

Example 1:


(a)

(script "Server"
   [input portNo number]
   [returns data string]
   [self portNo default :poolmode]
   [format default]
   (receive *client *data)
   (believe data *data
     ((type string))))

(b)

(script "Client"
   [input portNo number]
   (believe data "Hello World!")
   (believe server "127.0.0.1" 
          ((port portNo)))
  (send server data))



Listing One

import lang.API;
import lang.Runtime;
import lang.ScriptHandle;
import lang.ReturnValue;
import lang.ObolException;
 ...
API lobo = Runtime.getInstance();
ScriptHandle script = lobo.getScriptInstance(lobo.loadScript("./server.obol"));
script.setSymbol("portNo", 1234);
script.startExecution();
try {
   while(true) {
      int status = script.waitForStatus(ScriptHandle.STATUS_DONE);
      if (0 != (status & ScriptHandle.STATUS_RESULT_AVAILABLE)) {
         System.out.println("Received \"" + 
           script.getSymbol("data").getValue() + "\"");
      }
      if (0 != (status & ScriptHandle.STATUS_DONE) {
         break;
      }
   }
} catch (ObolException e) {
   System.err.println(e);
}


Listing Two

import lang.API;
import lang.Runtime;
import lang.ScriptHandle;
import lang.ObolException;
 ...
API lobo = Runtime.getInstance();
ScriptHandle script = lobo.getScriptInstance(
lobo.loadScript("./client.obol"));
script.setSymbol("portNo", 1234);
script.startExecution();
try {
   while(true) {
      int status = script.waitForStatus(ScriptHandle.STATUS_DONE);
      if (0 != (status & ScriptHandle.STATUS_DONE) {
         break;
      }
   }
} catch (ObolException e) {
   System.err.println(e);
}



1


