version 1.21, 2000/01/19 15:21:58 |
version 1.27, 2000/01/21 06:55:45 |
|
|
/** |
/** |
* $OpenXM: OpenXM/src/OpenMath/OMproxy.java,v 1.20 2000/01/19 15:19:29 tam Exp $ |
* $OpenXM: OpenXM/src/OpenMath/OMproxy.java,v 1.26 2000/01/21 06:27:24 tam Exp $ |
*/ |
*/ |
|
|
import JP.ac.kobe_u.math.tam.OpenXM.*; |
import JP.ac.kobe_u.math.tam.OpenXM.*; |
|
|
class OMproxy implements Runnable{ |
class OMproxy implements Runnable{ |
private OpenXM ox; |
private OpenXM ox; |
private Stack stack = new Stack(); |
private Stack stack = new Stack(); |
private boolean debug = true; |
protected boolean debug = false; |
final int version = 200001190; |
final int version = 200001190; |
|
|
public OMproxy(String host,int ControlPort,int DataPort) throws IOException{ |
public OMproxy(String host,int ControlPort,int DataPort) throws IOException{ |
Line 34 class OMproxy implements Runnable{ |
|
Line 34 class OMproxy implements Runnable{ |
|
debug("push: "+ stack.peek()); |
debug("push: "+ stack.peek()); |
break; |
break; |
} |
} |
}catch(Exception e){ |
}catch(Throwable e){ |
System.err.println(e.getMessage()); |
System.err.println(e.getMessage()); |
e.printStackTrace(); |
e.printStackTrace(); |
debug("error occured. stack was cleared."); |
debug("error occured. stack was cleared."); |
Line 57 class OMproxy implements Runnable{ |
|
Line 57 class OMproxy implements Runnable{ |
|
*/ |
*/ |
|
|
private void SM_popCMO() throws java.io.IOException{ |
private void SM_popCMO() throws java.io.IOException{ |
if(stack.empty()){ |
try{ |
ox.send(new CMO_NULL()); |
if(stack.empty()){ |
}else{ |
ox.send(new CMO_NULL()); |
debug("sending CMO: "+ stack.peek()); |
}else{ |
ox.send(stack.pop()); |
debug("sending CMO: "+ stack.peek()); |
|
ox.send(stack.pop()); |
|
} |
|
}catch(MathcapViolation e){ |
|
try{ |
|
ox.send("MathcapViolation: "+ |
|
new CMO_ERROR2(new CMO_STRING(e.getMessage()))); |
|
}catch(MathcapViolation tmp){} |
} |
} |
} |
} |
|
|
private void SM_executeFunction() throws java.io.IOException{ |
private void SM_executeFunction() throws java.io.IOException{ |
String function_name; |
String function_name; |
CMO[] argv; |
CMO[] argv; |
int argc = 1; |
int argc; |
|
|
if(!(stack.peek() instanceof CMO_STRING)){ |
if(!(stack.peek() instanceof CMO_STRING)){ |
stack.push(new CMO_ERROR2()); |
stack.push(new CMO_ERROR2()); |
return; |
return; |
} |
} |
function_name = ((CMO_STRING)stack.pop()).getString(); |
function_name = ((CMO_STRING)stack.pop()).getString(); |
//argc = ((CMO_INT32)stack.pop()).intValue(); |
argc = ((CMO_INT32)stack.pop()).intValue(); |
argv = new CMO[argc]; |
argv = new CMO[argc]; |
for(int i=0;i<argc;i++){ |
for(int i=0;i<argc;i++){ |
argv[i] = (CMO)stack.pop(); |
argv[i] = (CMO)stack.pop(); |
Line 146 class OMproxy implements Runnable{ |
|
Line 153 class OMproxy implements Runnable{ |
|
debug("push: "+ stack.peek()); |
debug("push: "+ stack.peek()); |
} |
} |
|
|
|
private void SM_setMathCap() throws java.io.IOException{ |
|
Object mathcap = stack.pop(); |
|
|
|
if(mathcap instanceof CMO_MATHCAP){ |
|
stack.push(new CMO_ERROR2()); |
|
} |
|
ox.setMathCap((CMO_MATHCAP)mathcap); |
|
} |
|
|
private void StackMachine(SM mesg) throws java.io.IOException{ |
private void StackMachine(SM mesg) throws java.io.IOException{ |
debug("receive: "+mesg); |
debug("receive: "+mesg); |
|
|
Line 162 class OMproxy implements Runnable{ |
|
Line 178 class OMproxy implements Runnable{ |
|
SM_mathcap(); |
SM_mathcap(); |
break; |
break; |
|
|
|
case SM.SM_setMathCap: |
|
SM_setMathCap(); |
|
break; |
|
|
default: |
default: |
System.out.println("received "+ mesg); |
System.out.println("received "+ mesg); |
} |
} |
Line 222 class OMproxy implements Runnable{ |
|
Line 242 class OMproxy implements Runnable{ |
|
ret += "\t -data port \t (default 1300)\n"; |
ret += "\t -data port \t (default 1300)\n"; |
ret += "\t -control port \t (default 1200)\n"; |
ret += "\t -control port \t (default 1200)\n"; |
ret += "\t -insecure \t this version ignore this option\n"; |
ret += "\t -insecure \t this version ignore this option\n"; |
ret += "\t -nohup \t ignore signals (required libnative.so)\n"; |
ret += "\t -debug \t display debug messages\n"; |
|
|
return ret; |
return ret; |
} |
} |
Line 230 class OMproxy implements Runnable{ |
|
Line 250 class OMproxy implements Runnable{ |
|
public static void main(String argv[]){ |
public static void main(String argv[]){ |
String host = "localhost"; |
String host = "localhost"; |
int DataPort = 1300, ControlPort = 1200; |
int DataPort = 1300, ControlPort = 1200; |
|
boolean debug = false; |
|
|
for(int i=0;i<argv.length;i++){ |
for(int i=0;i<argv.length;i++){ |
if(argv[i].equals("-h")){ |
if(argv[i].equals("-h")){ |
Line 242 class OMproxy implements Runnable{ |
|
Line 263 class OMproxy implements Runnable{ |
|
}else if(argv[i].equals("-control")){ |
}else if(argv[i].equals("-control")){ |
ControlPort = Integer.valueOf(argv[++i]).intValue(); |
ControlPort = Integer.valueOf(argv[++i]).intValue(); |
}else if(argv[i].equals("-insecure")){ |
}else if(argv[i].equals("-insecure")){ |
|
}else if(argv[i].equals("-debug")){ |
|
debug = true; |
}else{ |
}else{ |
System.err.println("unknown option : "+ argv[i]); |
System.err.println("unknown option : "+ argv[i]); |
System.err.print(usage()); |
System.err.print(usage()); |
Line 253 class OMproxy implements Runnable{ |
|
Line 276 class OMproxy implements Runnable{ |
|
+"("+ ControlPort +","+ DataPort +")"); |
+"("+ ControlPort +","+ DataPort +")"); |
|
|
try{ |
try{ |
new OMproxy(host,ControlPort,DataPort); |
new OMproxy(host,ControlPort,DataPort).debug = debug; |
System.out.println("connected."); |
System.out.println("connected."); |
}catch(IOException e){ |
}catch(IOException e){ |
System.err.println("Error occured: "+ e); |
System.err.println("Error occured: "+ e); |