Module 

Interface SuspendableWriteChannel

    • Method Detail

      • suspendWrites

        void suspendWrites()
        Suspend further write notifications on this channel.
      • resumeWrites

        void resumeWrites()
        Resume writes on this channel. The write listener will be called as soon as the channel becomes writable.
      • isWriteResumed

        boolean isWriteResumed()
        Determine whether writes are resumed.
        Returns:
        true if writes are resumed, false if writes are suspended
      • wakeupWrites

        @Deprecated
        void wakeupWrites()
        Deprecated.
        Users should instead submit Runnable tasks to the channel thread when this functionality is needed.
        Resume writes on this channel, and force the write listener to be triggered even if the channel isn't actually writable.
      • shutdownWrites

        void shutdownWrites()
                     throws java.io.IOException
        Indicate that writing is complete for this channel. Further attempts to write data to this channel after this method is invoked will result in an exception. If this method was already called, calling this method again will have no additional effect. After this method is called, any remaining data still must be flushed out via the flush() method; once this is done, if the read side of the channel was shut down, the channel will automatically close.
        Throws:
        java.io.IOException - if an I/O error occurs
      • awaitWritable

        void awaitWritable()
                    throws java.io.IOException
        Block until this channel becomes writable again. This method may return spuriously before the channel becomes writable.
        Throws:
        java.io.InterruptedIOException - if the operation is interrupted; the thread's interrupt flag will be set as well
        java.io.IOException - if an I/O error occurs
        Since:
        1.2
      • awaitWritable

        void awaitWritable​(long time,
                           java.util.concurrent.TimeUnit timeUnit)
                    throws java.io.IOException
        Block until this channel becomes writable again, or until the timeout expires. This method may return spuriously before the channel becomes writable or the timeout expires.
        Parameters:
        time - the time to wait
        timeUnit - the time unit
        Throws:
        java.io.InterruptedIOException - if the operation is interrupted; the thread's interrupt flag will be set as well
        java.io.IOException - if an I/O error occurs
        Since:
        1.2
      • getWriteThread

        @Deprecated
        XnioExecutor getWriteThread()
        Deprecated.
        The CloseableChannel.getIoThread() method should be used instead.
        Get the write thread for this channel.
        Returns:
        the thread, or null if none is configured or available
      • flush

        boolean flush()
               throws java.io.IOException
        Flush any waiting partial send or write. If there is no data to flush, or if the flush completed successfully, this method will return true. If there is data to flush which cannot be immediately written, this method will return false. If this method returns true after shutdownWrites() was called on this channel, the write listener will no longer be invoked on this channel. If this is case and additionally this is a write-only channel or the read side was previously shut down, then the channel will automatically be closed.
        Returns:
        true if the message was flushed, or false if the result would block
        Throws:
        java.io.IOException - if an I/O error occurs
      • isOpen

        boolean isOpen()
        Determine whether this channel is open. This method will return false if all directions are shut down, even if there is unflushed write data pending.
        Specified by:
        isOpen in interface java.nio.channels.Channel
        Returns:
        true if the channel is open, false otherwise
      • close

        void close()
            throws java.io.IOException
        Close this channel. If data has been written but not flushed, that data may be discarded, depending on the channel implementation. When a channel is closed, its close listener is invoked. Invoking this method more than once has no additional effect.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.nio.channels.Channel
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface CloseableChannel
        Specified by:
        close in interface java.nio.channels.InterruptibleChannel
        Throws:
        java.io.IOException - if the close failed