/** * Start time:11:42:12 2009-05-17<br> * Project: mobicents-media-server-core<br> * * @author <a href="mailto:baranowb@gmail.com">baranowb - Bartosz Baranowski * </a> * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> */ package org.mobicents.media.server.impl.rtp; import java.util.Collection; import java.util.concurrent.ConcurrentLinkedQueue; /** * Start time:11:42:12 2009-05-17<br> * Project: mobicents-media-server-core<br> * * @author <a href="mailto:baranowb@gmail.com">baranowb - Bartosz Baranowski * </a> */ public class BufferConcurrentLinkedQueue<T> extends ConcurrentLinkedQueue<T> { private T stored = null; /** * */ public BufferConcurrentLinkedQueue() { // TODO Auto-generated constructor stub } /** * tttttt * * @param c */ public BufferConcurrentLinkedQueue(Collection<T> c) { super(c); // TODO Auto-generated constructor stub } @Override public T peek() { if (this.stored != null) { return stored; } else { return super.peek(); } } @Override public T poll() { if (this.stored != null) { try { T b= stored; return b; } finally { stored = null; } } else { return super.poll(); } } @Override public int size() { if (this.stored != null) { return super.size() + 1; } else { return super.size(); } } public boolean storeAtHead(T toStore) { if(this.stored == null) { this.stored = toStore; return true; }else { return false; } } }