Package net.rubyeye.xmemcached.impl
Class FlowControlLinkedTransferQueue
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractQueue<E>
-
- com.google.code.yanf4j.util.LinkedTransferQueue<WriteMessage>
-
- net.rubyeye.xmemcached.impl.FlowControlLinkedTransferQueue
-
- All Implemented Interfaces:
java.lang.Iterable<WriteMessage>
,java.util.Collection<WriteMessage>
,java.util.concurrent.BlockingQueue<WriteMessage>
,java.util.Queue<WriteMessage>
public class FlowControlLinkedTransferQueue extends LinkedTransferQueue<WriteMessage>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.code.yanf4j.util.LinkedTransferQueue
LinkedTransferQueue.PaddedAtomicReference<T>
-
-
Field Summary
Fields Modifier and Type Field Description private FlowControl
flowControl
-
Constructor Summary
Constructors Constructor Description FlowControlLinkedTransferQueue(FlowControl flowControl)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkPermits(WriteMessage e)
int
drainTo(java.util.Collection<? super WriteMessage> c)
int
drainTo(java.util.Collection<? super WriteMessage> c, int maxElements)
int
getWaitingConsumerCount()
boolean
hasWaitingConsumer()
boolean
isEmpty()
java.util.Iterator<WriteMessage>
iterator()
boolean
offer(WriteMessage e)
boolean
offer(WriteMessage e, long timeout, java.util.concurrent.TimeUnit unit)
WriteMessage
peek()
WriteMessage
poll()
WriteMessage
poll(long timeout, java.util.concurrent.TimeUnit unit)
void
put(WriteMessage e)
private void
releasePermit(WriteMessage rt)
int
remainingCapacity()
int
size()
Returns the number of elements in this queue.WriteMessage
take()
void
transfer(WriteMessage e)
boolean
tryTransfer(WriteMessage e)
boolean
tryTransfer(WriteMessage e, long timeout, java.util.concurrent.TimeUnit unit)
-
Methods inherited from class java.util.AbstractCollection
contains, containsAll, remove, removeAll, retainAll, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
flowControl
private FlowControl flowControl
-
-
Constructor Detail
-
FlowControlLinkedTransferQueue
public FlowControlLinkedTransferQueue(FlowControl flowControl)
-
-
Method Detail
-
checkPermits
private void checkPermits(WriteMessage e)
-
put
public void put(WriteMessage e) throws java.lang.InterruptedException
- Specified by:
put
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
put
in classLinkedTransferQueue<WriteMessage>
- Throws:
java.lang.InterruptedException
-
offer
public boolean offer(WriteMessage e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
offer
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
offer
in classLinkedTransferQueue<WriteMessage>
- Throws:
java.lang.InterruptedException
-
offer
public boolean offer(WriteMessage e)
- Specified by:
offer
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Specified by:
offer
in interfacejava.util.Queue<WriteMessage>
- Overrides:
offer
in classLinkedTransferQueue<WriteMessage>
-
transfer
public void transfer(WriteMessage e) throws java.lang.InterruptedException
- Overrides:
transfer
in classLinkedTransferQueue<WriteMessage>
- Throws:
java.lang.InterruptedException
-
tryTransfer
public boolean tryTransfer(WriteMessage e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Overrides:
tryTransfer
in classLinkedTransferQueue<WriteMessage>
- Throws:
java.lang.InterruptedException
-
tryTransfer
public boolean tryTransfer(WriteMessage e)
- Overrides:
tryTransfer
in classLinkedTransferQueue<WriteMessage>
-
take
public WriteMessage take() throws java.lang.InterruptedException
- Specified by:
take
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
take
in classLinkedTransferQueue<WriteMessage>
- Throws:
java.lang.InterruptedException
-
poll
public WriteMessage poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
poll
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
poll
in classLinkedTransferQueue<WriteMessage>
- Throws:
java.lang.InterruptedException
-
poll
public WriteMessage poll()
- Specified by:
poll
in interfacejava.util.Queue<WriteMessage>
- Overrides:
poll
in classLinkedTransferQueue<WriteMessage>
-
releasePermit
private void releasePermit(WriteMessage rt)
-
drainTo
public int drainTo(java.util.Collection<? super WriteMessage> c)
- Specified by:
drainTo
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
drainTo
in classLinkedTransferQueue<WriteMessage>
-
drainTo
public int drainTo(java.util.Collection<? super WriteMessage> c, int maxElements)
- Specified by:
drainTo
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
drainTo
in classLinkedTransferQueue<WriteMessage>
-
iterator
public java.util.Iterator<WriteMessage> iterator()
- Specified by:
iterator
in interfacejava.util.Collection<WriteMessage>
- Specified by:
iterator
in interfacejava.lang.Iterable<WriteMessage>
- Overrides:
iterator
in classLinkedTransferQueue<WriteMessage>
-
peek
public WriteMessage peek()
- Specified by:
peek
in interfacejava.util.Queue<WriteMessage>
- Overrides:
peek
in classLinkedTransferQueue<WriteMessage>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<WriteMessage>
- Overrides:
isEmpty
in classLinkedTransferQueue<WriteMessage>
-
hasWaitingConsumer
public boolean hasWaitingConsumer()
- Overrides:
hasWaitingConsumer
in classLinkedTransferQueue<WriteMessage>
-
size
public int size()
Description copied from class:LinkedTransferQueue
Returns the number of elements in this queue. If this queue contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.Beware that, unlike in most collections, this method is NOT a constant-time operation. Because of the asynchronous nature of these queues, determining the current number of elements requires an O(n) traversal.
- Specified by:
size
in interfacejava.util.Collection<WriteMessage>
- Overrides:
size
in classLinkedTransferQueue<WriteMessage>
- Returns:
- the number of elements in this queue
-
getWaitingConsumerCount
public int getWaitingConsumerCount()
- Overrides:
getWaitingConsumerCount
in classLinkedTransferQueue<WriteMessage>
-
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacity
in interfacejava.util.concurrent.BlockingQueue<WriteMessage>
- Overrides:
remainingCapacity
in classLinkedTransferQueue<WriteMessage>
-
-