package eu.play_project.dcep; import java.io.FileWriter; import java.io.InputStream; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import eu.play_project.dcep.distributedetalis.api.SimplePublishApi; import fr.inria.eventcloud.api.CompoundEvent; import fr.inria.eventcloud.api.Quadruple; import fr.inria.eventcloud.api.Quadruple.SerializationFormat; public class SubscriberPerformanceTest implements SimplePublishApi, Serializable { private static final long serialVersionUID = 100L; private long t1; private ConnectPSandDCEPTest master; ArrayList<CompoundEvent> complexEvents = new ArrayList<CompoundEvent>(); public static long counter = -1; boolean consumed = false; int numberOfExpectedComplexEvents = 0; int givenRepetitions = 0; boolean firstTime = true; long timeTmp = 0; private EventProducer eventProducer; static String filename; public void setGivenRepetitions(int givenRepetitions) { this.givenRepetitions = givenRepetitions; } public SubscriberPerformanceTest() { } public ArrayList<CompoundEvent> getComplexEvents() { return complexEvents; } @Override public void publish(CompoundEvent arg0) { //System.out.println("New event in " + this.getClass().getSimpleName() + arg0.toString()); counter++; //System.out.println("o = " + counter); if (counter % 1000 == 0) { System.out.println((counter) + " " + (System.currentTimeMillis() - timeTmp)); timeTmp = System.currentTimeMillis(); //System.out.println("order new events"); } complexEvents.add(arg0); // //System.out.println("Subscriber got complex event: " + counter); //System.out.println(arg0); //arg0.getGraph(); //arg0 = null; // if (counter >= numberOfExpectedComplexEvents) { // long t2 = System.currentTimeMillis(); // System.out.println(t2 - t1); // //appendToFile("" + (t2 - t1) + ";"); // // System.out.println("Counter: " + counter); // // } } public void publish(Quadruple arg0) { throw new RuntimeException("Not implemented"); } public void publish(Collection<CompoundEvent> arg0) { throw new RuntimeException("Not implemented"); } public void publish(InputStream arg0, SerializationFormat arg1) { throw new RuntimeException("Not implemented"); } public void setT1(long t1) { this.t1 = t1; } public boolean finished(){ return consumed; } public void setState(boolean state){ consumed = state; } public void setNumberofExpectedComplexEvents(int number) { numberOfExpectedComplexEvents = number; System.out.println("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(); } } public void setProducer(EventProducer eventProducer) { this.eventProducer = eventProducer; } }