public class SensorCircToken extends CircToken
implements MsgHandler, SensorUser {
VCLinker comm;
Sensor checker;
int coordinator;
int algoCode;
public SensorCircToken(VCLinker comm, int coordinator, int algoCode) {
super(comm, coordinator);
this.comm = comm;
this.coordinator = coordinator;
this.algoCode = algoCode;
}
public void initiate() {
if (algoCode==0)
checker = new CentSensor(comm, this);
else
checker = new DistSensor(comm, this);
if (!haveToken) checker.localPredicateTrue(comm.vc);
super.initiate();
}
public synchronized void sendToken() {
super.sendToken();
if (!haveToken) checker.localPredicateTrue(comm.vc);
}
public synchronized void handleMsg(Message m, int src, String tag) {
checker.handleMsg(m, src, tag);
super.handleMsg(m, src, tag);
}
public void globalPredicateTrue(int v[]){
System.out.println("********************************************");
System.out.println("Global predicate tru. Cut:" + Util.writeArray(v));
}
public void globalPredicateFalse(int pid){
System.out.println("********************************************");
System.out.println("Global predicate false. Process finished:" + pid);
}
}