/**
*
*/
package joshua.discriminative.training.risk_annealer.hypergraph.parallel;
import java.util.concurrent.BlockingQueue;
import java.util.logging.Logger;
import joshua.discriminative.training.parallel.Producer;
import joshua.discriminative.training.risk_annealer.hypergraph.HGAndReferences;
import joshua.discriminative.training.risk_annealer.hypergraph.HyperGraphFactory;
public class HGProducer extends Producer<HGAndReferences>{
private HyperGraphFactory hgFactory;
private int maxSentID;
private int curSentID = 0;
/** Logger for this class. */
private static final Logger logger =
Logger.getLogger(HGProducer.class.getName());
public HGProducer( HyperGraphFactory hgFactory, BlockingQueue<HGAndReferences> q, int numConsumers,
int maxSentID) {
super(q, numConsumers);
this.hgFactory = hgFactory;
this.maxSentID = maxSentID;
}
@Override
public HGAndReferences createPoisonObject() {
return new HGAndReferences(null, null);
}
@Override
public HGAndReferences produce() {
HGAndReferences res = null;
if(curSentID<maxSentID){
res = hgFactory.nextHG();
curSentID++;
if(curSentID%1000==0){
logger.info("======produce sentID =" + curSentID);
}
}
return res;
}
}