/** * Licensed under the terms of the Apache License 2.0. Please see LICENSE file in the project root for terms. */ package apex.benchmark; import com.datatorrent.api.Context.OperatorContext; import com.datatorrent.api.DefaultOutputPort; import com.datatorrent.api.InputOperator; public class DimensionTupleGenerateOperator implements InputOperator { public final transient DefaultOutputPort<DimensionTuple> outputPort = new DefaultOutputPort<>(); private int batchSize = 10; private int batchSleepTime = 2; private int campaignSize = 1000000; private DimensionTupleGenerator tupleGenerator = new DimensionTupleGenerator(); @Override public void emitTuples() { if(outputPort.isConnected()) { for(int i=0; i<batchSize; ++i) { outputPort.emit(tupleGenerator.next()); } } if(batchSleepTime > 0) { try { Thread.sleep(batchSleepTime); } catch(Exception e){} } } public DimensionTupleGenerator getTupleGenerator() { return tupleGenerator; } public void setTupleGenerator(DimensionTupleGenerator tupleGenerator) { this.tupleGenerator = tupleGenerator; } public int getBatchSize() { return batchSize; } public void setBatchSize(int batchSize) { this.batchSize = batchSize; } public int getBatchSleepTime() { return batchSleepTime; } public void setBatchSleepTime(int batchSleepTime) { this.batchSleepTime = batchSleepTime; } public int getCampaignSize() { return campaignSize; } public void setCampaignSize(int campaignSize) { this.campaignSize = campaignSize; } @Override public void beginWindow(long arg0) { } @Override public void endWindow() { } @Override public void setup(OperatorContext arg0) { tupleGenerator.setCampaignSize(campaignSize); } @Override public void teardown() { } }