package backtype.storm.topology; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.utils.Utils; import com.alibaba.jstorm.task.execute.spout.SpoutCollector; import java.util.List; /** * so don't need OutputCollectorCb's ICollectorCallback due to send control message one by one * @author JohnFang (xiaojian.fxj@alibaba-inc.com). */ public class ControlSpoutOutputCollector implements IControlSpoutOutputCollector { private SpoutOutputCollector out; public ControlSpoutOutputCollector(SpoutOutputCollector out) { this.out = out; } public List<Integer> emit(String streamId, List<Object> tuple, Object messageId) { return out.emit(streamId, tuple, messageId); } public List<Integer> emit(List<Object> tuple, Object messageId) { return emit(Utils.DEFAULT_STREAM_ID, tuple, messageId); } public List<Integer> emit(List<Object> tuple) { return emit(tuple, null); } public List<Integer> emit(String streamId, List<Object> tuple) { return emit(streamId, tuple, null); } public void emitDirect(int taskId, String streamId, List<Object> tuple, Object messageId) { out.emitDirect(taskId, streamId, tuple, messageId); } public void emitDirect(int taskId, List<Object> tuple, Object messageId) { emitDirect(taskId, Utils.DEFAULT_STREAM_ID, tuple, messageId); } public void emitDirect(int taskId, String streamId, List<Object> tuple) { emitDirect(taskId, streamId, tuple, null); } public void emitDirect(int taskId, List<Object> tuple) { emitDirect(taskId, tuple, null); } public void reportError(Throwable error) { out.reportError(error); } public void flush(){ out.flush();} public List<Integer> emitCtrl(String streamId, List<Object> tuple, Object messageId) { return ((SpoutCollector)(out.getDelegate())).emitCtrl(streamId, tuple, messageId); } public List<Integer> emitCtrl(List<Object> tuple, Object messageId) { return emitCtrl(Utils.DEFAULT_STREAM_ID, tuple, messageId); } public List<Integer> emitCtrl(List<Object> tuple) { return emitCtrl(tuple, null); } public List<Integer> emitCtrl(String streamId, List<Object> tuple) { return emitCtrl(streamId, tuple, null); } public void emitDirectCtrl(int taskId, String streamId, List<Object> tuple, Object messageId) { ((SpoutCollector)(out.getDelegate())).emitDirectCtrl(taskId, streamId, tuple, messageId); } public void emitDirectCtrl(int taskId, List<Object> tuple, Object messageId) { emitDirectCtrl(taskId, Utils.DEFAULT_STREAM_ID, tuple, messageId); } public void emitDirectCtrl(int taskId, String streamId, List<Object> tuple) { emitDirectCtrl(taskId, streamId, tuple, null); } public void emitDirectCtrl(int taskId, List<Object> tuple) { emitDirectCtrl(taskId, tuple, null); } }