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.Schema.SchemaBuilder;
import uk.ac.imperial.lsds.seep.api.data.Type;
public class Branch1 implements SeepTask {
private Schema schema = SchemaBuilder.getInstance().newField(Type.INT, "userId").newField(Type.LONG, "value").build();
private int branchId;
private int compfactor;
private int totalCalls = 0;
public Branch1() { }
public Branch1(int branchId, int compfactor) {
this.branchId = branchId;
this.compfactor = compfactor;
}
boolean first = true;
int idx_userid = 0;
int idx_value = 0;
Type[] types = new Type[]{Type.INT, Type.LONG};
OTuple o = new OTuple(schema);
@Override
public void processData(ITuple data, API api) {
// setup method not included in scheduled mode
if(first) {
first = false;
idx_userid = data.getIndexFor("userId");
idx_value = data.getIndexFor("value");
}
totalCalls++;
int userId = data.getInt(idx_userid);
long value = data.getLong(idx_value);
for(int i = 0; i< compfactor; i++) {
value = (long) Math.sqrt((double)(value / 2));
Math.pow(value, value);
}
o.setValues(new Object[]{userId, value});
api.send(o);
}
@Override
public void setUp() {
// TODO Auto-generated method stub
}
@Override
public void close() {
System.out.println(this + " - TC: " + totalCalls);
}
@Override
public void processDataGroup(List<ITuple> arg0, API arg1) {
// TODO Auto-generated method stub
}
}