package eu.play_project.dcep.distribution.tests.srbench.performance;
import java.io.Serializable;
import eu.play_project.dcep.distributedetalis.api.SimplePublishApi;
import fr.inria.eventcloud.api.CompoundEvent;
import fr.inria.eventcloud.api.Quadruple;
public class ComplexEventSubscriber implements SimplePublishApi, Serializable{
/**
*
*/
private static final long serialVersionUID = 100L;
MeasurementUnit mu;
public ComplexEventSubscriber(){}
@Override
public void publish(CompoundEvent event) {
if(mu==null){
mu = MeasurementUnit.getMeasurementUnit();
mu.calcRateForNEvents(500);
}
//mu.nexEvent();
printTimeSpentInSystem(event);
}
int eventCounter = 0;
long eventTime;
public void printTimeSpentInSystem(CompoundEvent event) {
if ((eventCounter++ % 500) == 0) {
for (Quadruple quadruple : event) {
// Use endTime
if (quadruple.getPredicate().toString().equals("http://events.event-processing.org/types/sedTime")) {
eventTime = Long.parseLong(quadruple.getObject().toString().substring(1, quadruple.getObject().toString().length()-1));
long time = System.currentTimeMillis();
// Print time spend in system.
System.out.println(time + "\t"
+ (System.currentTimeMillis() - eventTime));
}
}
}
}
}