Package org.xnio.conduits
Interface SinkConduit
- All Superinterfaces:
Conduit
- All Known Subinterfaces:
MessageSinkConduit,StreamSinkConduit
- All Known Implementing Classes:
AbstractMessageSinkConduit,AbstractSinkConduit,AbstractStreamSinkConduit,AbstractSynchronizedSinkConduit,BlockingStreamSinkConduit,BufferedStreamSinkConduit,DeflatingStreamSinkConduit,FixedLengthStreamSinkConduit,FramingMessageSinkConduit,MessageStreamSinkConduit,NullStreamSinkConduit,SaslUnwrappingConduit,SaslWrappingConduit,StreamSinkChannelWrappingConduit,SynchronizedMessageSinkConduit,SynchronizedStreamSinkConduit
A conduit which is a target or output for data.
- Author:
- David M. Lloyd
-
Method Summary
Modifier and TypeMethodDescriptionvoidBlock until this channel becomes writable again.voidawaitWritable(long time, TimeUnit timeUnit) Block until this conduit becomes writable again, or until the timeout expires.booleanflush()Flush out any unwritten, buffered output.Get the write thread for this conduit.booleanDetermine whether write notifications are currently enabled.booleanDetermine whether writes have been fully shut down on this conduit.voidIndicate that the conduit'sWriteReadyHandlershould be invoked as soon as data can be written without blocking.voidsetWriteReadyHandler(WriteReadyHandler handler) Set the handler which should receive readiness notifications.voidIndicate that calling the conduit'sWriteReadyHandlershould be suspended.voidSignal that no more write data is forthcoming.voidTerminate writes and discard any outstanding write data.voidIndicate that the conduit'sWriteReadyHandlershould be invoked immediately, and then again as soon as data can be written without blocking.
-
Method Details
-
terminateWrites
Signal that no more write data is forthcoming. The conduit must beflush()ed before it is considered to be shut down.- Throws:
IOException
-
isWriteShutdown
boolean isWriteShutdown()Determine whether writes have been fully shut down on this conduit.- Returns:
trueif writes are fully shut down,falseotherwise
-
resumeWrites
void resumeWrites()Indicate that the conduit'sWriteReadyHandlershould be invoked as soon as data can be written without blocking. -
suspendWrites
void suspendWrites()Indicate that calling the conduit'sWriteReadyHandlershould be suspended. -
wakeupWrites
void wakeupWrites()Indicate that the conduit'sWriteReadyHandlershould be invoked immediately, and then again as soon as data can be written without blocking. -
isWriteResumed
boolean isWriteResumed()Determine whether write notifications are currently enabled.- Returns:
trueif write notifications are enabled
-
awaitWritable
Block until this channel becomes writable again. This method may return spuriously before the channel becomes writable.- Throws:
InterruptedIOException- if the operation is interrupted; the thread's interrupt flag will be set as wellIOException- if an I/O error occurs
-
awaitWritable
Block until this conduit becomes writable again, or until the timeout expires. This method may return spuriously before the conduit becomes writable or the timeout expires.- Parameters:
time- the time to waittimeUnit- the time unit- Throws:
InterruptedIOException- if the operation is interrupted; the thread's interrupt flag will be set as wellIOException- if an I/O error occurs
-
getWriteThread
XnioIoThread getWriteThread()Get the write thread for this conduit.- Returns:
- the thread, or
nullif none is configured or available
-
setWriteReadyHandler
Set the handler which should receive readiness notifications. A filter may pass this invocation on to the filter it wraps, or it may substitute itself.- Parameters:
next- the filter to receive readiness notifications
-
truncateWrites
Terminate writes and discard any outstanding write data. The conduit is terminated and flushed regardless of the outcome of this method.- Throws:
IOException- if channel termination failed for some reason
-
flush
Flush out any unwritten, buffered output.- Returns:
trueif everything is flushed,falseotherwise- Throws:
IOException- if flush fails
-