public final class NullStreamSinkConduit extends Object implements StreamSinkConduit
| Constructor and Description |
|---|
NullStreamSinkConduit(XnioIoThread writeThread)
Construct a new instance.
|
| Modifier and Type | Method and Description |
|---|---|
void |
awaitWritable()
Block until this channel becomes writable again.
|
void |
awaitWritable(long time,
TimeUnit timeUnit)
Block until this conduit becomes writable again, or until the timeout expires.
|
boolean |
flush()
Flush out any unwritten, buffered output.
|
XnioWorker |
getWorker()
Get the XNIO worker associated with this conduit.
|
XnioIoThread |
getWriteThread()
Get the write thread for this conduit.
|
boolean |
isWriteResumed()
Determine whether write notifications are currently enabled.
|
boolean |
isWriteShutdown()
Determine whether writes have been fully shut down on this conduit.
|
void |
resumeWrites()
Indicate that the conduit's
WriteReadyHandler should be invoked as soon as data can be written
without blocking. |
void |
setWriteReadyHandler(WriteReadyHandler handler)
Set the handler which should receive readiness notifications.
|
void |
suspendWrites()
Indicate that calling the conduit's
WriteReadyHandler should be suspended. |
void |
terminateWrites()
Signal that no more write data is forthcoming.
|
long |
transferFrom(FileChannel src,
long position,
long count)
Transfer bytes into this conduit from the given file.
|
long |
transferFrom(StreamSourceChannel source,
long count,
ByteBuffer throughBuffer)
Transfers bytes from the given channel source.
|
void |
truncateWrites()
Terminate writes and discard any outstanding write data.
|
void |
wakeupWrites()
Indicate that the conduit's
WriteReadyHandler should be invoked immediately, and then again as soon
as data can be written without blocking. |
int |
write(ByteBuffer src)
Writes a sequence of bytes to this conduit from the given buffer.
|
long |
write(ByteBuffer[] srcs,
int offs,
int len)
Writes a sequence of bytes to this conduit from the given buffers.
|
int |
writeFinal(ByteBuffer src)
Writes some data to the conduit, with the same semantics as
StreamSinkConduit.write(java.nio.ByteBuffer). |
long |
writeFinal(ByteBuffer[] srcs,
int offset,
int length)
Writes some data to the conduit, with the same semantics as
StreamSinkConduit.write(java.nio.ByteBuffer[], int, int). |
public NullStreamSinkConduit(XnioIoThread writeThread)
writeThread - the write thread for this conduitpublic long transferFrom(FileChannel src, long position, long count) throws IOException
StreamSinkConduittransferFrom in interface StreamSinkConduitsrc - the file to read fromposition - the position within the file from which the transfer is to begincount - the number of bytes to be transferredIOException - if an I/O error occurspublic long transferFrom(StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException
StreamSinkConduitthroughBuffer will be cleared. On exit, the
buffer will be flipped for emptying, and may be empty or may contain data. If this method returns a value less
than count, then the remaining data in throughBuffer may contain data read from source
which must be written to this channel to complete the operation.transferFrom in interface StreamSinkConduitsource - the source to read fromcount - the number of bytes to be transferredthroughBuffer - the buffer to copy through.IOException - if an I/O error occurspublic int write(ByteBuffer src) throws IOException
StreamSinkConduitwrite in interface StreamSinkConduitsrc - the buffer containing data to writeClosedChannelException - if this conduit's SinkConduit.terminateWrites() method was previously calledIOException - if an error occurspublic long write(ByteBuffer[] srcs, int offs, int len) throws IOException
StreamSinkConduitwrite in interface StreamSinkConduitsrcs - the buffers containing data to writeoffs - the offset into the buffer arraylen - the number of buffers to writeClosedChannelException - if this conduit's SinkConduit.terminateWrites() method was previously calledIOException - if an error occurspublic int writeFinal(ByteBuffer src) throws IOException
StreamSinkConduitStreamSinkConduit.write(java.nio.ByteBuffer). If all the data is written
out then the conduit will have its writes terminated. Semantically this
method is equivalent to:
int rem = src.remaining();
int written = conduit.write(src);
if(written == rem) {
conduit.terminateWrites()
}
writeFinal in interface StreamSinkConduitsrc - The data to writeIOExceptionpublic long writeFinal(ByteBuffer[] srcs, int offset, int length) throws IOException
StreamSinkConduitStreamSinkConduit.write(java.nio.ByteBuffer[], int, int). If all the data is written
out then the conduit will have its writes terminated.writeFinal in interface StreamSinkConduitsrcs - The buffers from which bytes are to be retrievedoffset - The offset within the buffer array of the first buffer from
which bytes are to be retrieved; must be non-negative and no
larger than srcs.lengthlength - The maximum number of buffers to be accessed; must be
non-negative and no larger than
srcs.length - offsetIOExceptionpublic boolean flush()
throws IOException
SinkConduitflush in interface SinkConduittrue if everything is flushed, false otherwiseIOException - if flush failspublic boolean isWriteShutdown()
SinkConduitisWriteShutdown in interface SinkConduittrue if writes are fully shut down, false otherwisepublic void suspendWrites()
SinkConduitWriteReadyHandler should be suspended.suspendWrites in interface SinkConduitpublic void resumeWrites()
SinkConduitWriteReadyHandler should be invoked as soon as data can be written
without blocking.resumeWrites in interface SinkConduitpublic void wakeupWrites()
SinkConduitWriteReadyHandler should be invoked immediately, and then again as soon
as data can be written without blocking.wakeupWrites in interface SinkConduitpublic boolean isWriteResumed()
SinkConduitisWriteResumed in interface SinkConduittrue if write notifications are enabledpublic void awaitWritable()
throws IOException
SinkConduitawaitWritable in interface SinkConduitInterruptedIOException - if the operation is interrupted; the thread's interrupt flag will be set
as wellIOException - if an I/O error occurspublic void awaitWritable(long time,
TimeUnit timeUnit)
throws IOException
SinkConduitawaitWritable in interface SinkConduittime - the time to waittimeUnit - the time unitInterruptedIOException - if the operation is interrupted; the thread's interrupt flag will be set
as wellIOException - if an I/O error occurspublic XnioIoThread getWriteThread()
SinkConduitgetWriteThread in interface SinkConduitnull if none is configured or availablepublic void setWriteReadyHandler(WriteReadyHandler handler)
SinkConduitsetWriteReadyHandler in interface SinkConduitpublic void truncateWrites()
throws IOException
SinkConduittruncateWrites in interface SinkConduitIOException - if channel termination failed for some reasonpublic void terminateWrites()
throws IOException
SinkConduitSinkConduit.flush()ed before it is considered
to be shut down.terminateWrites in interface SinkConduitIOExceptionpublic XnioWorker getWorker()
ConduitCopyright © 2017 JBoss by Red Hat. All rights reserved.