package edu.washington.escience.myria.parallel.ipc; import java.util.Queue; import org.jboss.netty.channel.Channel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import edu.washington.escience.myria.util.AttachmentableAdapter; /** * The simplest implementation of {@link ShortMessageProcessor}. The messages are simply appended into a FIFO queue. * * @param <PAYLOAD> the type of application defined data the short message processor is going to process. * */ public class QueueBasedShortMessageProcessor<PAYLOAD> extends AttachmentableAdapter implements ShortMessageProcessor<PAYLOAD> { /** * Logger. * */ static final Logger LOGGER = LoggerFactory.getLogger(QueueBasedShortMessageProcessor.class); /** * The queue for message storage. * */ private final Queue<IPCMessage.Data<PAYLOAD>> messageQueue; /** * @param messageQueue the storage queue. * */ public QueueBasedShortMessageProcessor(final Queue<IPCMessage.Data<PAYLOAD>> messageQueue) { this.messageQueue = messageQueue; } @Override public final boolean processMessage(final Channel channel, final IPCMessage.Data<PAYLOAD> m) { return messageQueue.offer(m); } }