Class NioChannel

    • Method Detail

      • free

        public void free()
        Free the channel memory
      • flush

        public boolean flush​(boolean block,
                             Selector s,
                             long timeout)
                      throws IOException
        Returns true if the network buffer has been flushed out and is empty.
        Parameters:
        block - Unused. May be used when overridden
        s - Unused. May be used when overridden
        timeout - Unused. May be used when overridden
        Returns:
        Always returns true since there is no network buffer in the regular channel
        Throws:
        IOException - Never for non-secure channel
      • close

        public void close​(boolean force)
                   throws IOException
        Close the connection.
        Parameters:
        force - Should the underlying socket be forcibly closed?
        Throws:
        IOException - If closing the secure channel fails.
      • isOpen

        public boolean isOpen()
        Tells whether or not this channel is open.
        Specified by:
        isOpen in interface Channel
        Returns:
        true if, and only if, this channel is open
      • write

        public int write​(ByteBuffer src)
                  throws IOException
        Writes a sequence of bytes to this channel from the given buffer.
        Specified by:
        write in interface WritableByteChannel
        Parameters:
        src - The buffer from which bytes are to be retrieved
        Returns:
        The number of bytes written, possibly zero
        Throws:
        IOException - If some other I/O error occurs
      • read

        public int read​(ByteBuffer dst)
                 throws IOException
        Reads a sequence of bytes from this channel into the given buffer.
        Specified by:
        read in interface ReadableByteChannel
        Parameters:
        dst - The buffer into which bytes are to be transferred
        Returns:
        The number of bytes read, possibly zero, or -1 if the channel has reached end-of-stream
        Throws:
        IOException - If some other I/O error occurs
      • isClosing

        public boolean isClosing()
      • isHandshakeComplete

        public boolean isHandshakeComplete()
      • handshake

        public int handshake​(boolean read,
                             boolean write)
                      throws IOException
        Performs SSL handshake hence is a no-op for the non-secure implementation.
        Parameters:
        read - Unused in non-secure implementation
        write - Unused in non-secure implementation
        Returns:
        Always returns zero
        Throws:
        IOException - Never for non-secure channel
      • getOutboundRemaining

        public int getOutboundRemaining()
      • flushOutbound

        public boolean flushOutbound()
                              throws IOException
        Return true if the buffer wrote data. NO-OP for non-secure channel.
        Returns:
        Always returns false for non-secure channel
        Throws:
        IOException - Never for non-secure channel
      • checkInterruptStatus

        protected void checkInterruptStatus()
                                     throws IOException
        This method should be used to check the interrupt status before attempting a write. If a thread has been interrupted and the interrupt has not been cleared then an attempt to write to the socket will fail. When this happens the socket is removed from the poller without the socket being selected. This results in a connection limit leak for NIO as the endpoint expects the socket to be selected even in error conditions.
        Throws:
        IOException - If the current thread was interrupted