package io.robe.mail.queue; import com.google.common.collect.Queues; import io.robe.mail.MailItem; import java.util.Iterator; import java.util.concurrent.ConcurrentLinkedQueue; /** * A wrapper class for {@link java.util.concurrent.ConcurrentLinkedQueue} */ public class InMemoryMailQueue implements MailQueue<MailItem> { private ConcurrentLinkedQueue<MailItem> queue = Queues.<MailItem>newConcurrentLinkedQueue(); @Override public int size() { return queue.size(); } @Override public boolean add(MailItem item) { return queue.add(item); } @Override public boolean isEmpty() { return queue.isEmpty(); } @Override public MailItem peek() { return queue.peek(); } @Override public MailItem poll() { return queue.poll(); } @Override public boolean remove(MailItem item) { return queue.remove(item); } @Override public Iterator<MailItem> iterator() { return queue.iterator(); } }