Class QueueIntChannel
- java.lang.Object
-
- co.paralleluniverse.strands.channels.QueueChannel<Message>
-
- co.paralleluniverse.strands.channels.QueuePrimitiveChannel<java.lang.Integer>
-
- co.paralleluniverse.strands.channels.QueueIntChannel
-
- All Implemented Interfaces:
Channel<java.lang.Integer>
,IntChannel
,IntReceivePort
,IntSendPort
,Port<java.lang.Integer>
,PortAutoCloseable
,ReceivePort<java.lang.Integer>
,Selectable<java.lang.Integer>
,SendPort<java.lang.Integer>
,StandardChannel<java.lang.Integer>
,Stranded
,Synchronization
,java.io.Serializable
,java.lang.AutoCloseable
public class QueueIntChannel extends QueuePrimitiveChannel<java.lang.Integer> implements IntChannel
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface co.paralleluniverse.strands.channels.ReceivePort
ReceivePort.EOFException
-
-
Field Summary
-
Fields inherited from class co.paralleluniverse.strands.channels.QueueChannel
RECORDER
-
-
Constructor Summary
Constructors Constructor Description QueueIntChannel(co.paralleluniverse.strands.queues.BasicSingleConsumerIntQueue queue, Channels.OverflowPolicy policy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected co.paralleluniverse.strands.queues.BasicSingleConsumerIntQueue
queue()
int
receiveInt()
Retrieves a message from the channels, possibly blocking until one becomes available.int
receiveInt(long timeout, java.util.concurrent.TimeUnit unit)
Retrieves a message from the channels, possibly blocking until one becomes available, but no longer than the specified timeout.int
receiveInt(Timeout timeout)
Retrieves a message from the channels, possibly blocking until one becomes available, but no longer than the specified timeout.void
send(int message)
Sends a message to the channel, possibly blocking until there's room available in the channel.boolean
send(int message, long timeout, java.util.concurrent.TimeUnit unit)
Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout.boolean
send(int message, Timeout timeout)
Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout.boolean
trySend(int message)
Sends a message to the channel if the channel has room available.-
Methods inherited from class co.paralleluniverse.strands.channels.QueuePrimitiveChannel
checkClosed, getStrand, hasMessage, maybeSetCurrentStrandAsOwner, setStrand
-
Methods inherited from class co.paralleluniverse.strands.channels.QueueChannel
capacity, close, close, equals, getCloseException, getOverflowPolicy, getQueueLength, isClosed, isSingleConsumer, isSingleProducer, receive, receive, receive, receiveFromThread, receiveFromThread, register, register, send, send, send, send0, sendNonSuspendable, sendSync, signalAndWait, signalReceivers, sync, toString, tryNow, tryReceive, trySend, unregister, writeReplace
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface co.paralleluniverse.strands.channels.IntReceivePort
hasMessage
-
Methods inherited from interface co.paralleluniverse.strands.channels.PortAutoCloseable
close, isClosed
-
Methods inherited from interface co.paralleluniverse.strands.channels.ReceivePort
receive, receive, receive, tryReceive
-
-
-
-
Constructor Detail
-
QueueIntChannel
public QueueIntChannel(co.paralleluniverse.strands.queues.BasicSingleConsumerIntQueue queue, Channels.OverflowPolicy policy)
-
-
Method Detail
-
receiveInt
public int receiveInt() throws SuspendExecution, java.lang.InterruptedException, ReceivePort.EOFException
Description copied from interface:IntReceivePort
Retrieves a message from the channels, possibly blocking until one becomes available. If the channel has been closed and no more messages await, this method throws anReceivePort.EOFException
.- Specified by:
receiveInt
in interfaceIntReceivePort
- Returns:
- a message.
- Throws:
java.lang.InterruptedException
ReceivePort.EOFException
- if the channel has been closed and no more messages awaitSuspendExecution
-
receiveInt
public int receiveInt(long timeout, java.util.concurrent.TimeUnit unit) throws SuspendExecution, java.lang.InterruptedException, java.util.concurrent.TimeoutException, ReceivePort.EOFException
Description copied from interface:IntReceivePort
Retrieves a message from the channels, possibly blocking until one becomes available, but no longer than the specified timeout. If the channel has been closed and no more messages await, this method throws anReceivePort.EOFException
.- Specified by:
receiveInt
in interfaceIntReceivePort
- Parameters:
timeout
- the maximum duration to block waiting for a message.unit
- the time unit of the timeout.- Returns:
- a message. (see
PortAutoCloseable.isClosed()
), or if the timeout has expired. - Throws:
java.lang.InterruptedException
java.util.concurrent.TimeoutException
- if the timeout has expiredReceivePort.EOFException
- if the channel has been closed and no more messages awaitSuspendExecution
-
receiveInt
public int receiveInt(Timeout timeout) throws SuspendExecution, java.lang.InterruptedException, java.util.concurrent.TimeoutException, ReceivePort.EOFException
Description copied from interface:IntReceivePort
Retrieves a message from the channels, possibly blocking until one becomes available, but no longer than the specified timeout. If the channel has been closed and no more messages await, this method throws anReceivePort.EOFException
.- Specified by:
receiveInt
in interfaceIntReceivePort
- Parameters:
timeout
- the method will not block for longer than the amount remaining in theTimeout
- Returns:
- a message. (see
PortAutoCloseable.isClosed()
), or if the timeout has expired. - Throws:
java.lang.InterruptedException
java.util.concurrent.TimeoutException
- if the timeout has expiredReceivePort.EOFException
- if the channel has been closed and no more messages awaitSuspendExecution
-
trySend
public boolean trySend(int message)
Description copied from interface:IntSendPort
Sends a message to the channel if the channel has room available. This method never blocks.- Specified by:
trySend
in interfaceIntSendPort
- Returns:
true
if the message has been sent;false
otherwise.
-
send
public void send(int message) throws SuspendExecution, java.lang.InterruptedException
Description copied from interface:IntSendPort
Sends a message to the channel, possibly blocking until there's room available in the channel. If the channel is full, this method may block, throw an exception, silently drop the message, or displace an old message from the channel. The behavior is determined by the channel'sOverflowPolicy
, set at construction time.- Specified by:
send
in interfaceIntSendPort
- Throws:
SuspendExecution
java.lang.InterruptedException
-
send
public boolean send(int message, long timeout, java.util.concurrent.TimeUnit unit) throws SuspendExecution, java.lang.InterruptedException
Description copied from interface:IntSendPort
Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout. If the channel is full, this method may block, throw an exception, silently drop the message, or displace an old message from the channel. The behavior is determined by the channel'sOverflowPolicy
, set at construction time.- Specified by:
send
in interfaceIntSendPort
timeout
- the maximum duration this method is allowed to wait.unit
- the timeout's time unit- Returns:
true
if the message has been sent successfully;false
if the timeout has expired.- Throws:
SuspendExecution
java.lang.InterruptedException
-
send
public boolean send(int message, Timeout timeout) throws SuspendExecution, java.lang.InterruptedException
Description copied from interface:IntSendPort
Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout. If the channel is full, this method may block, throw an exception, silently drop the message, or displace an old message from the channel. The behavior is determined by the channel'sOverflowPolicy
, set at construction time.- Specified by:
send
in interfaceIntSendPort
timeout
- the method will not block for longer than the amount remaining in theTimeout
- Returns:
true
if the message has been sent successfully;false
if the timeout has expired.- Throws:
SuspendExecution
java.lang.InterruptedException
-
queue
protected co.paralleluniverse.strands.queues.BasicSingleConsumerIntQueue queue()
- Overrides:
queue
in classQueuePrimitiveChannel<java.lang.Integer>
-
-