version 1.10, 1999/11/11 20:22:19 |
version 1.20, 2000/01/19 15:19:29 |
|
|
/** |
/** |
* $OpenXM: OpenXM/src/OpenMath/OMproxy.java,v 1.9 1999/11/11 17:18:48 tam Exp $ |
* $OpenXM: OpenXM/src/OpenMath/OMproxy.java,v 1.19 2000/01/19 09:35:06 tam Exp $ |
*/ |
*/ |
|
|
import JP.ac.kobe_u.math.tam.OpenXM.*; |
import JP.ac.kobe_u.math.tam.OpenXM.*; |
Line 10 class OMproxy implements Runnable{ |
|
Line 10 class OMproxy implements Runnable{ |
|
private OpenXM ox; |
private OpenXM ox; |
private Stack stack = new Stack(); |
private Stack stack = new Stack(); |
private boolean debug = true; |
private boolean debug = true; |
final int version = 199911110; |
final int version = 200001190; |
|
|
public OMproxy(String host,int ControlPort,int DataPort) throws IOException{ |
public OMproxy(String host,int ControlPort,int DataPort) throws IOException{ |
ox = new OpenXM(this,host,ControlPort,DataPort); |
ox = new OpenXM(this,host,ControlPort,DataPort); |
Line 20 class OMproxy implements Runnable{ |
|
Line 20 class OMproxy implements Runnable{ |
|
OM2OXM P = new OM2OXM(); |
OM2OXM P = new OM2OXM(); |
|
|
debug("OMproxy started."); |
debug("OMproxy started."); |
try{ |
while(true){ |
while(true){ |
try{ |
int ox_tag = ox.receiveOXtag(); |
int ox_tag = ox.receiveOXtag(); |
|
|
switch(ox_tag){ |
switch(ox_tag){ |
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){ |
|
System.err.println(e.getMessage()); |
|
e.printStackTrace(); |
|
debug("error occured. stack was cleared."); |
} |
} |
}catch(java.io.IOException e){ |
|
System.err.println(e.getMessage()); |
|
e.printStackTrace(); |
|
} |
} |
|
|
System.out.println("breaking..."); |
System.out.println("breaking..."); |
Line 60 class OMproxy implements Runnable{ |
|
Line 61 class OMproxy implements Runnable{ |
|
if(stack.empty()){ |
if(stack.empty()){ |
ox.send(new CMO_NULL()); |
ox.send(new CMO_NULL()); |
}else{ |
}else{ |
debug("pushing CMO: "+ stack.peek()); |
debug("sending CMO: "+ stack.peek()); |
ox.send(stack.pop()); |
ox.send(stack.pop()); |
} |
} |
} |
} |
Line 113 class OMproxy implements Runnable{ |
|
Line 114 class OMproxy implements Runnable{ |
|
CMO[] list = {new CMO_INT32(SM.SM_popCMO), |
CMO[] list = {new CMO_INT32(SM.SM_popCMO), |
new CMO_INT32(SM.SM_executeFunction), |
new CMO_INT32(SM.SM_executeFunction), |
new CMO_INT32(SM.SM_mathcap), |
new CMO_INT32(SM.SM_mathcap), |
|
new CMO_INT32(SM.SM_setMathCap), |
new CMO_INT32(SM.SM_control_kill), |
new CMO_INT32(SM.SM_control_kill), |
new CMO_INT32(SM.SM_control_reset_connection)}; |
new CMO_INT32(SM.SM_control_reset_connection)}; |
mathcap[1] = new CMO_LIST(list); |
mathcap[1] = new CMO_LIST(list); |
} |
} |
|
|
{ |
{ |
CMO[] DataFormat = {new CMO_INT32(OpenXM.OX_DATA)}; |
|
CMO[] CMOFormat = {new CMO_INT32(CMO.CMO_NULL), |
CMO[] CMOFormat = {new CMO_INT32(CMO.CMO_NULL), |
new CMO_INT32(CMO.CMO_INT32), |
new CMO_INT32(CMO.CMO_INT32), |
new CMO_INT32(CMO.CMO_STRING), |
new CMO_INT32(CMO.CMO_STRING), |
Line 128 class OMproxy implements Runnable{ |
|
Line 129 class OMproxy implements Runnable{ |
|
new CMO_INT32(CMO.CMO_ZZ), |
new CMO_INT32(CMO.CMO_ZZ), |
new CMO_INT32(CMO.CMO_QQ), |
new CMO_INT32(CMO.CMO_QQ), |
new CMO_INT32(CMO.CMO_ZERO), |
new CMO_INT32(CMO.CMO_ZERO), |
|
new CMO_INT32(CMO.CMO_DMS_GENERIC), |
|
new CMO_INT32(CMO.CMO_RECURSIVE_POLYNOMIAL), |
new CMO_INT32(CMO.CMO_DISTRIBUTED_POLYNOMIAL), |
new CMO_INT32(CMO.CMO_DISTRIBUTED_POLYNOMIAL), |
new CMO_INT32(CMO.CMO_DMS_GENERIC)}; |
new CMO_INT32(CMO.CMO_POLYNOMIAL_IN_ONE_VARIABLE), |
CMO[] list = {new CMO_LIST(DataFormat), |
new CMO_INT32(CMO.CMO_BIGFLOAT), |
new CMO_LIST(CMOFormat)}; |
new CMO_INT32(CMO.CMO_INDETERMINATE), |
|
new CMO_INT32(CMO.CMO_TREE)}; |
|
CMO[] DataFormat1 = {new CMO_INT32(OpenXM.OX_DATA), |
|
new CMO_LIST(CMOFormat)}; |
|
CMO[] list = {new CMO_LIST(DataFormat1)}; |
|
|
mathcap[2] = new CMO_LIST(list); |
mathcap[2] = new CMO_LIST(list); |
} |
} |
|
|
Line 161 class OMproxy implements Runnable{ |
|
Line 169 class OMproxy implements Runnable{ |
|
} |
} |
|
|
private CMO CMO2OMXML(CMO obj){ |
private CMO CMO2OMXML(CMO obj){ |
String str = OM2OXM.CMO2OM(obj); |
String str; |
|
|
|
try{ |
|
str = OM2OXM.CMO2OM(obj); |
|
}catch(NumberFormatException e){ |
|
debug("CMO2OMXML occuered error in trans"); |
|
return new CMO_ERROR2(new CMO_STRING(e.toString())); |
|
} |
|
|
return new CMO_STRING(str); |
return new CMO_STRING(str); |
} |
} |
|
|
Line 174 class OMproxy implements Runnable{ |
|
Line 189 class OMproxy implements Runnable{ |
|
|
|
debug("OMXML2CMO called: "+obj); |
debug("OMXML2CMO called: "+obj); |
if(!(obj instanceof CMO_STRING)){ |
if(!(obj instanceof CMO_STRING)){ |
return new CMO_ERROR2(); |
return new CMO_ERROR2(new CMO_STRING("It's not CMO_STRING.")); |
} |
} |
|
|
try{ |
try{ |
Line 183 class OMproxy implements Runnable{ |
|
Line 198 class OMproxy implements Runnable{ |
|
}catch(IOException e){ |
}catch(IOException e){ |
debug("OMXML2CMO occuered error in trans"); |
debug("OMXML2CMO occuered error in trans"); |
return new CMO_ERROR2(new CMO_STRING(e.toString())); |
return new CMO_ERROR2(new CMO_STRING(e.toString())); |
|
}catch(NumberFormatException e){ |
|
debug("OMXML2CMO occuered error in trans"); |
|
return new CMO_ERROR2(new CMO_STRING(e.toString())); |
} |
} |
|
|
debug("push: "+ret); |
debug("push: "+ret); |
Line 205 class OMproxy implements Runnable{ |
|
Line 223 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"; |
|
|
return ret; |
return ret; |
} |
} |