package uk.ac.imperial.lsds.seepmaster.scheduler; import java.util.List; import uk.ac.imperial.lsds.seep.api.API; import uk.ac.imperial.lsds.seep.api.DataStore; import uk.ac.imperial.lsds.seep.api.DataStoreType; import uk.ac.imperial.lsds.seep.api.QueryComposer; import uk.ac.imperial.lsds.seep.api.QueryExecutionMode; 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.Schema; import uk.ac.imperial.lsds.seep.api.data.Type; import uk.ac.imperial.lsds.seep.api.data.Schema.SchemaBuilder; import uk.ac.imperial.lsds.seep.api.operator.LogicalOperator; import uk.ac.imperial.lsds.seep.api.operator.SeepLogicalQuery; import uk.ac.imperial.lsds.seep.api.operator.sinks.Sink; import uk.ac.imperial.lsds.seep.api.operator.sources.SyntheticSource; public class WithSyntheticSource implements QueryComposer { @Override public SeepLogicalQuery compose() { Schema schema = SchemaBuilder.getInstance().newField(Type.INT, "userId").newField(Type.LONG, "value").build(); SyntheticSource synSrc = SyntheticSource.newSource(0, null); LogicalOperator adderOne = queryAPI.newStatelessOperator(new Fake(), 1); LogicalOperator adderTwo = queryAPI.newStatelessOperator(new Fake(), 2); LogicalOperator branchone = queryAPI.newStatelessOperator(new Fake1(), 3); LogicalOperator branchtwo = queryAPI.newStatelessOperator(new Fake2(), 4); LogicalOperator snk = queryAPI.newStatelessSink(new Fake3(), 5); synSrc.connectTo(adderOne, schema, 0); synSrc.connectTo(adderTwo, schema, 1); adderOne.connectTo(branchone, 2, new DataStore(schema, DataStoreType.NETWORK)); adderTwo.connectTo(branchtwo, 3, new DataStore(schema, DataStoreType.NETWORK)); branchone.connectTo(snk, 4, new DataStore(schema, DataStoreType.NETWORK)); branchtwo.connectTo(snk, 5, new DataStore(schema, DataStoreType.NETWORK)); SeepLogicalQuery slq = queryAPI.build(); slq.setExecutionModeHint(QueryExecutionMode.ALL_SCHEDULED); return slq; } class Fake implements SeepTask { @Override public void setUp() { // TODO Auto-generated method stub } @Override public void processData(ITuple data, API api) { // TODO Auto-generated method stub } @Override public void processDataGroup(List<ITuple> dataList, API api) { // TODO Auto-generated method stub } @Override public void close() { // TODO Auto-generated method stub } } class Fake1 implements SeepTask { @Override public void setUp() { // TODO Auto-generated method stub } @Override public void processData(ITuple data, API api) { // TODO Auto-generated method stub } @Override public void processDataGroup(List<ITuple> dataList, API api) { // TODO Auto-generated method stub } @Override public void close() { // TODO Auto-generated method stub } } class Fake2 implements SeepTask { @Override public void setUp() { // TODO Auto-generated method stub } @Override public void processData(ITuple data, API api) { // TODO Auto-generated method stub } @Override public void processDataGroup(List<ITuple> dataList, API api) { // TODO Auto-generated method stub } @Override public void close() { // TODO Auto-generated method stub } } class Fake3 implements Sink { @Override public void setUp() { // TODO Auto-generated method stub } @Override public void processData(ITuple data, API api) { // TODO Auto-generated method stub } @Override public void processDataGroup(List<ITuple> dataList, API api) { // TODO Auto-generated method stub } @Override public void close() { // TODO Auto-generated method stub } } }