public abstract class SplitSendPort<Message> extends java.lang.Object implements SendPort<Message>
| Constructor and Description |
|---|
SplitSendPort() |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes the channel so that no more messages could be sent to it.
|
void |
close(java.lang.Throwable t)
Closes the channel so that no more messages could be sent to it, and signifies an exception occurred in the producer.
|
protected abstract SendPort<? super Message> |
select(Message message)
Subclasses will implement this method to select the target
SendPort. |
void |
send(Message message)
Sends a message to the channel, possibly blocking until there's room available in the channel.
|
boolean |
send(Message 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(Message 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(Message message)
Sends a message to the channel if the channel has room available.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitisClosedprotected abstract SendPort<? super Message> select(Message message)
SendPort.public void close(java.lang.Throwable t)
SendPortReceivePort's receive or tryReceive,
wrapped by a ProducerException.
Messages already sent to the channel prior to calling this method will still be received.public void close()
PortAutoCloseableclose in interface PortAutoCloseableclose in interface java.lang.AutoCloseablepublic boolean trySend(Message message)
SendPortpublic void send(Message message) throws SuspendExecution, java.lang.InterruptedException
SendPortOverflowPolicy, set at construction time.send in interface SendPort<Message>java.lang.InterruptedExceptionSuspendExecutionpublic boolean send(Message message, Timeout timeout) throws SuspendExecution, java.lang.InterruptedException
SendPortOverflowPolicy, set at construction time.send in interface SendPort<Message>timeout - the method will not block for longer than the amount remaining in the Timeouttrue if the message has been sent successfully; false if the timeout has expired.SuspendExecutionjava.lang.InterruptedExceptionpublic boolean send(Message message, long timeout, java.util.concurrent.TimeUnit unit) throws SuspendExecution, java.lang.InterruptedException
SendPortOverflowPolicy, set at construction time.send in interface SendPort<Message>timeout - the maximum duration this method is allowed to wait.unit - the timeout's time unittrue if the message has been sent successfully; false if the timeout has expired.SuspendExecutionjava.lang.InterruptedException