package uk.ac.imperial.lsds.seep.api; import java.util.List; 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.operator.LogicalOperator; import uk.ac.imperial.lsds.seep.api.operator.SeepLogicalQuery; import uk.ac.imperial.lsds.seep.api.state.stateimpl.SeepMap; public class StatefulBaseTest implements QueryComposer { @Override public SeepLogicalQuery compose() { // Declare Source LogicalOperator src = queryAPI.newStatelessSource(new Source(), -1); // Declare processor LogicalOperator p = queryAPI.newStatefulOperator(new Processor(), new SeepMap(), 1); // Declare sink LogicalOperator snk = queryAPI.newStatelessSink(new Sink(), -2); Schema srcSchema = queryAPI.schemaBuilder.newField(Type.SHORT, "id").build(); Schema pSchema = queryAPI.schemaBuilder.newField(Type.SHORT, "id").newField(Type.BYTES, "payload").build(); System.out.println("SRC Schema: "); System.out.println(srcSchema.toString()); System.out.println("Pro Schema: "); System.out.println(pSchema.toString()); /** Connect operators **/ src.connectTo(p, 0, new DataStore(srcSchema, DataStoreType.NETWORK, null)); p.connectTo(snk, 0, new DataStore(pSchema, DataStoreType.NETWORK, null)); /** * Example of how to create a source with only java2sdg information Schema networkSchema = ...; // got from java2sdg networkSrc.connectTo(p, 0, networkSchema); **/ return QueryBuilder.build(); } class Source implements uk.ac.imperial.lsds.seep.api.operator.sources.Source { @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 Processor implements StatefulSeepTask<SeepMap<Integer, String>> { private SeepMap<Integer, String> map; @Override public void setState(SeepMap<Integer, String> state) { this.map = (SeepMap<Integer, String>)state; } @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 Sink implements uk.ac.imperial.lsds.seep.api.operator.sinks.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 } } }