// Copyright (c) P. Taylor Goetz (ptgoetz@gmail.com) package ch.epfl.data.squall.components.signal_components.storm; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import backtype.storm.topology.base.BaseRichSpout; @SuppressWarnings("serial") public abstract class BaseSignalSpout extends BaseRichSpout implements SignalListener { private static final Logger LOG = LoggerFactory .getLogger(BaseSignalSpout.class); private String name; private StormSignalConnection signalConnection; public BaseSignalSpout(String name) { this.name = name; } @SuppressWarnings("rawtypes") @Override public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { try { this.signalConnection = new StormSignalConnection(this.name, this); this.signalConnection.init(conf); } catch (Exception e) { LOG.error("Error creating SignalConnection.", e); } } public void sendSignal(String toPath, byte[] signal) throws Exception { this.signalConnection.send(toPath, signal); } @Override public void close() { super.close(); this.signalConnection.close(); } }