import java.util.List;
import uk.ac.imperial.lsds.seep.api.API;
import uk.ac.imperial.lsds.seep.api.SeepTask;
import uk.ac.imperial.lsds.seep.api.data.ITuple;
import uk.ac.imperial.lsds.seep.api.data.OTuple;
import uk.ac.imperial.lsds.seep.api.data.Schema;
import uk.ac.imperial.lsds.seep.api.data.Type;
import uk.ac.imperial.lsds.seep.api.data.Schema.SchemaBuilder;
public class Processor implements SeepTask {
private Schema schema = SchemaBuilder.getInstance().newField(Type.INT, "userId").newField(Type.LONG, "ts").newField(Type.STRING, "text").build();
@Override
public void setUp() {
// TODO Auto-generated method stub
}
@Override
public void processData(ITuple data, API api) {
long ts = data.getLong("ts");
int streamId = data.getStreamId();
if(streamId == 1){
System.out.println("Received from 1, send to 1");
// from processor2
api.sendToStreamId(1, data.getData());
} else if(streamId == 0){
// from source
if(ts%2 == 0){
System.out.println("Received from 0, send to 1");
// send to sink even numbers
api.sendToStreamId(1, data.getData());
} else{
System.out.println("Received from 1, send to 0");
// send to processor2 odd numbers
api.sendToStreamId(0, data.getData());
}
}
}
@Override
public void close() {
// TODO Auto-generated method stub
}
@Override
public void processDataGroup(List<ITuple> arg0, API arg1) {
// TODO Auto-generated method stub
}
}