- java.lang.Object
-
- org.xnio.conduits.AbstractConduit<D>
-
- org.xnio.conduits.AbstractSynchronizedConduit<D>
-
- org.xnio.conduits.AbstractSynchronizedSinkConduit<MessageSinkConduit>
-
- org.xnio.conduits.SynchronizedMessageSinkConduit
-
- All Implemented Interfaces:
Conduit
,MessageSinkConduit
,SinkConduit
public final class SynchronizedMessageSinkConduit extends AbstractSynchronizedSinkConduit<MessageSinkConduit> implements MessageSinkConduit
A synchronized message sink conduit. All conduit operations are wrapped in synchronization blocks for simplified thread safety.- Author:
- David M. Lloyd
-
-
Field Summary
-
Fields inherited from class org.xnio.conduits.AbstractSynchronizedConduit
lock
-
Fields inherited from class org.xnio.conduits.AbstractConduit
next
-
-
Constructor Summary
Constructors Constructor Description SynchronizedMessageSinkConduit(MessageSinkConduit next)
Construct a new instance.SynchronizedMessageSinkConduit(MessageSinkConduit next, java.lang.Object lock)
Construct a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
send(java.nio.ByteBuffer src)
Send a complete message.boolean
send(java.nio.ByteBuffer[] srcs, int offs, int len)
Send a complete message.boolean
sendFinal(java.nio.ByteBuffer src)
Send a complete message.boolean
sendFinal(java.nio.ByteBuffer[] srcs, int offs, int len)
Send a complete message.-
Methods inherited from class org.xnio.conduits.AbstractSynchronizedSinkConduit
awaitWritable, awaitWritable, flush, getWriteThread, isWriteResumed, isWriteShutdown, resumeWrites, setWriteReadyHandler, suspendWrites, terminateWrites, truncateWrites, wakeupWrites
-
Methods inherited from class org.xnio.conduits.AbstractConduit
getWorker
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.xnio.conduits.SinkConduit
awaitWritable, awaitWritable, flush, getWriteThread, isWriteResumed, isWriteShutdown, resumeWrites, setWriteReadyHandler, suspendWrites, terminateWrites, truncateWrites, wakeupWrites
-
-
-
-
Constructor Detail
-
SynchronizedMessageSinkConduit
public SynchronizedMessageSinkConduit(MessageSinkConduit next)
Construct a new instance. A new lock object is created.- Parameters:
next
- the next conduit in the chain
-
SynchronizedMessageSinkConduit
public SynchronizedMessageSinkConduit(MessageSinkConduit next, java.lang.Object lock)
Construct a new instance.- Parameters:
next
- the next conduit in the chainlock
- the lock object to use
-
-
Method Detail
-
send
public boolean send(java.nio.ByteBuffer src) throws java.io.IOException
Description copied from interface:MessageSinkConduit
Send a complete message.- Specified by:
send
in interfaceMessageSinkConduit
- Parameters:
src
- the message to send- Returns:
- the result of the send operation;
true
if the message was sent, orfalse
if it would block - Throws:
java.io.IOException
- if an I/O error occurs
-
send
public boolean send(java.nio.ByteBuffer[] srcs, int offs, int len) throws java.io.IOException
Description copied from interface:MessageSinkConduit
Send a complete message.- Specified by:
send
in interfaceMessageSinkConduit
- Parameters:
srcs
- the buffers holding the message to sendoffs
- the offset into the buffer array of the first bufferlen
- the number of buffers that contain data to send- Returns:
- the result of the send operation;
true
if the message was sent, orfalse
if it would block - Throws:
java.io.IOException
- if an I/O error occurs
-
sendFinal
public boolean sendFinal(java.nio.ByteBuffer src) throws java.io.IOException
Description copied from interface:MessageSinkConduit
Send a complete message. If the message is successfully sent then the sink will have its writes terminated.- Specified by:
sendFinal
in interfaceMessageSinkConduit
- Parameters:
src
- the message to send- Returns:
- the result of the send operation;
true
if the message was sent, orfalse
if it would block - Throws:
java.io.IOException
- if an I/O error occurs
-
sendFinal
public boolean sendFinal(java.nio.ByteBuffer[] srcs, int offs, int len) throws java.io.IOException
Description copied from interface:MessageSinkConduit
Send a complete message. If the message is successfully sent then the sink will have its writes terminated.- Specified by:
sendFinal
in interfaceMessageSinkConduit
- Parameters:
srcs
- the buffers holding the message to sendoffs
- the offset into the buffer array of the first bufferlen
- the number of buffers that contain data to send- Returns:
- the result of the send operation;
true
if the message was sent, orfalse
if it would block - Throws:
java.io.IOException
- if an I/O error occurs
-
-