package eu.play_project.dcep.distributedetalis.test;
import java.io.FileWriter;
import java.io.Serializable;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.inria.eventcloud.api.CompoundEvent;
import fr.inria.eventcloud.api.PublishApi;
import fr.inria.eventcloud.api.Quadruple;
import fr.inria.eventcloud.api.Quadruple.SerializationFormat;
public class PerformanceTestListener implements PublishApi, Serializable{
private static final long serialVersionUID = 100L;
private long t1;
ArrayList<CompoundEvent> complexEvents = new ArrayList<CompoundEvent>();
long counter = -1;
int numberOfExpectedComplexEvents = 20000;
int givenRepetitions = 0;
boolean firstTime = true;
long timeTmp = 0;
static String filename;
Logger logger = LoggerFactory.getLogger(this.getClass());
public PerformanceTestListener(){}
public void setGivenRepetitions(int givenRepetitions) {
this.givenRepetitions = givenRepetitions;
}
public ArrayList<CompoundEvent> getComplexEvents() {
return complexEvents;
}
@Override
public void publish(CompoundEvent arg0) {
// logger.info(arg0);
counter++;
if (((counter) % (1000) )== 0) {
logger.info((counter) + " " + (System.currentTimeMillis()-timeTmp));
timeTmp = System.currentTimeMillis();
}
// logger.info("Subscriber got complex event: " + counter);
arg0 = null;
//if (counter >= numberOfExpectedComplexEvents) {
//long t2 = System.currentTimeMillis();
//logger.info(t2 - t1);
//appendToFile("" + (t2 - t1) + ";");
//logger.info("Counter: " + counter);
//}
}
@Override
public void publish(Quadruple arg0) {
throw new RuntimeException("Not implemented");
}
@Override
public void publish(Collection<CompoundEvent> arg0) {
throw new RuntimeException("Not implemented");
}
public void setT1(long t1) {
this.t1 = t1;
}
public void setNumberofExpectedComplexEvents(int number) {
numberOfExpectedComplexEvents = number;
logger.info("NumberOfExpectedComplexEvents:" + number);
}
public void setOutputFile(String name) {
filename = name;
}
public static void appendToFile(String text) {
try {
FileWriter writer = new FileWriter(filename,/* append */true);
writer.write(text);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void publish(URL arg0, SerializationFormat arg1) {
// TODO Auto-generated method stub
}
}