package fbench;
import fb.datatype.ANY;
import fb.datatype.FBDataTypeException;
import fb.rt.Device;
import fb.rt.FBRManagementException;
import fb.rt.RMT_DEV;
import fb.rt.net.FBCommSI;
/**
* A Remote device that supports debugging.
* When running, use the -d option to specify debug host & ip
* @author DG
*
*/
public class FBenchRMT_DEV extends RMT_DEV {
public static void main(String args[])
{
RMT_DEV dev = new RMT_DEV();
initDevice(dev, statargs, args);
}
public static void initDevice(Device dev, String dargs[], String args[])
{
String devname = initDevice(dev, dargs);
String devname2 = initDevice(dev, args);
if(devname2.length() > 0)
devname = devname2;
try
{
System.out.println("MGR_ID = " + dev.ivNamed("MGR_ID"));
dev.initialize(devname, dev);
dev.start();
}
catch(FBRManagementException e)
{
System.out.println(e);
}
}
public static String initDevice(Device dev, String args[])
{
String devname = "";
String argname = "";
int n = args.length;
for(int i = 0; i < n; i++)
try
{
argname = args[i];
String largname = argname.toLowerCase();
if(largname.startsWith("-n"))
devname = args[++i];
else if(largname.startsWith("-p"))
ANY.addPackages(args[++i]);
else if(largname.startsWith("-s"))
dev.ivNamed("MGR_ID").initialize(FBCommSI.getHostAddress() + ':' + args[++i]);
else if(largname.startsWith("-d"))
//dev.getManager().setDebugHost(args[++i]);
fb.rt.FBInstance.debugHost = args[++i];
else
dev.ivNamed(argname).initialize(args[++i]);
}
catch(ArrayIndexOutOfBoundsException e)
{
System.err.println("Missing value for parameter " + argname);
System.exit(-1);
}
catch(FBDataTypeException e)
{
System.err.println("Invalid parameter value for " + argname);
System.exit(-1);
}
catch(FBRManagementException e)
{
System.err.println("Invalid parameter name: " + argname);
System.exit(-1);
}
return devname;
}
}