package org.jacorb.test.listenendpoints.echo_corbaloc;
/**
*
* @author nguyenq
*/
public class EchoMessageTask
{
private CmdArgs cmdArgs = null;
private EchoMessage servant = null;
private String threadName = "";
private int threadNum = -1;
private boolean terminate = false;
public EchoMessageTask(String ThreadName, int threadNum, CmdArgs cmdArgs, EchoMessage servant)
{
this.cmdArgs = cmdArgs;
this.servant = servant;
this.threadName = ThreadName;
this.threadNum = threadNum;
}
public void runEcho()
{
if (cmdArgs == null) return;
try
{
int cnt = 0;
while ( terminate != true )
{
try
{
cnt++;
// Calendar lCDateTime = Calendar.getInstance();
String outMsg = new String(Integer.toString(cnt) + " " + cmdArgs.getEchoMsg());
long tms_out = System.currentTimeMillis();
// send it to the server
String inMsg = servant.echo_string(outMsg);
long tms_in = System.currentTimeMillis();
long tms_dif = tms_in - tms_out;
if (inMsg.equals(outMsg))
{
log("OK" + " " + tms_dif + "mSec <" + inMsg + ">");
}
else
{
log("ERR" + " " + tms_dif + "mSec in=<" + inMsg + "> out=<" + outMsg + ">");
}
Thread.sleep(cmdArgs.getDelay());
}
catch (Exception e)
{
System.err.println(threadName + " thread " + threadNum
+ ": got an exception in run(): " + e.getMessage());
e.printStackTrace();
break;
}
if (cmdArgs.getnTimes() != -1 && cnt == cmdArgs.getnTimes())
{
terminate();
break;
}
}
}
catch( Exception ex )
{
ex.printStackTrace();
}
}
public void terminate()
{
terminate = true;
}
private void log(String msg)
{
System.out.println(threadName + " thread " + threadNum + ": " + "EchoMessageTask: " + msg);
}
}