Module 
Package org.xnio

Class XnioIoThread

    • Constructor Detail

      • XnioIoThread

        protected XnioIoThread​(XnioWorker worker,
                               int number)
        Construct a new instance.
        Parameters:
        worker - the XNIO worker to associate with
        number - the thread number
      • XnioIoThread

        protected XnioIoThread​(XnioWorker worker,
                               int number,
                               java.lang.String name)
        Construct a new instance.
        Parameters:
        worker - the XNIO worker to associate with
        number - the thread number
        name - the thread name
      • XnioIoThread

        protected XnioIoThread​(XnioWorker worker,
                               int number,
                               java.lang.ThreadGroup group,
                               java.lang.String name)
        Construct a new instance.
        Parameters:
        worker - the XNIO worker to associate with
        number - the thread number
        group - the thread group
        name - the thread name
      • XnioIoThread

        protected XnioIoThread​(XnioWorker worker,
                               int number,
                               java.lang.ThreadGroup group,
                               java.lang.String name,
                               long stackSize)
        Construct a new instance.
        Parameters:
        worker - the XNIO worker to associate with
        number - the thread number
        group - the thread group
        name - the thread name
        stackSize - the thread stack size
    • Method Detail

      • currentThread

        public static XnioIoThread currentThread()
        Get the current XNIO thread. If the current thread is not an XNIO thread, null is returned.
        Returns:
        the current XNIO thread
      • requireCurrentThread

        public static XnioIoThread requireCurrentThread()
                                                 throws java.lang.IllegalStateException
        Get the current XNIO thread. If the current thread is not an XNIO thread, an IllegalStateException is thrown.
        Returns:
        the current XNIO thread
        Throws:
        java.lang.IllegalStateException - if the current thread is not an XNIO thread
      • getNumber

        public int getNumber()
        Get the number of this thread. In each XNIO worker, every IO thread is given a unique, sequential number.
        Returns:
        the number of this thread
      • getWorker

        public XnioWorker getWorker()
        Get the XNIO worker associated with this thread.
        Returns:
        the XNIO worker
      • acceptStreamConnection

        public IoFuture<StreamConnection> acceptStreamConnection​(java.net.SocketAddress destination,
                                                                 ChannelListener<? super StreamConnection> openListener,
                                                                 ChannelListener<? super BoundChannel> bindListener,
                                                                 OptionMap optionMap)
        Description copied from interface: XnioIoFactory
        Accept a stream connection at a destination address. If a wildcard address is specified, then a destination address is chosen in a manner specific to the OS and/or channel type.
        Specified by:
        acceptStreamConnection in interface XnioIoFactory
        Parameters:
        destination - the destination (bind) address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the acceptor is bound, or null for none
        optionMap - the option map
        Returns:
        the future connection
      • acceptLocalStreamConnection

        protected IoFuture<StreamConnection> acceptLocalStreamConnection​(LocalSocketAddress destination,
                                                                         ChannelListener<? super StreamConnection> openListener,
                                                                         ChannelListener<? super BoundChannel> bindListener,
                                                                         OptionMap optionMap)
        Implementation helper method to accept a local (UNIX domain) stream connection.
        Parameters:
        destination - the destination (bind) address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the acceptor is bound, or null for none
        optionMap - the option map
        Returns:
        the future connection
      • acceptTcpStreamConnection

        protected IoFuture<StreamConnection> acceptTcpStreamConnection​(java.net.InetSocketAddress destination,
                                                                       ChannelListener<? super StreamConnection> openListener,
                                                                       ChannelListener<? super BoundChannel> bindListener,
                                                                       OptionMap optionMap)
        Implementation helper method to accept a TCP connection.
        Parameters:
        destination - the destination (bind) address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the acceptor is bound, or null for none
        optionMap - the option map
        Returns:
        the future connection
      • openMessageConnection

        public IoFuture<MessageConnection> openMessageConnection​(java.net.SocketAddress destination,
                                                                 ChannelListener<? super MessageConnection> openListener,
                                                                 OptionMap optionMap)
        Description copied from interface: XnioIoFactory
        Connect to a remote message server. The protocol family is determined by the type of the socket address given. If an open listener is used, the channel should not be accessed via the returned IoFuture, and vice-versa.
        Specified by:
        openMessageConnection in interface XnioIoFactory
        Parameters:
        destination - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • acceptMessageConnection

        public IoFuture<MessageConnection> acceptMessageConnection​(java.net.SocketAddress destination,
                                                                   ChannelListener<? super MessageConnection> openListener,
                                                                   ChannelListener<? super BoundChannel> bindListener,
                                                                   OptionMap optionMap)
        Description copied from interface: XnioIoFactory
        Accept a message connection at a destination address. If a wildcard address is specified, then a destination address is chosen in a manner specific to the OS and/or channel type. If an open listener is used, the channel should not be accessed via the returned IoFuture, and vice-versa.
        Specified by:
        acceptMessageConnection in interface XnioIoFactory
        Parameters:
        destination - the destination (bind) address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the acceptor is bound, or null for none
        optionMap - the option map
        Returns:
        the future connection
      • acceptLocalMessageConnection

        protected IoFuture<MessageConnection> acceptLocalMessageConnection​(LocalSocketAddress destination,
                                                                           ChannelListener<? super MessageConnection> openListener,
                                                                           ChannelListener<? super BoundChannel> bindListener,
                                                                           OptionMap optionMap)
        Implementation helper method to accept a local (UNIX domain) datagram connection.
        Parameters:
        destination - the destination (bind) address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the acceptor is bound, or null for none
        optionMap - the option map
        Returns:
        the future connection
      • openStreamConnection

        public IoFuture<StreamConnection> openStreamConnection​(java.net.SocketAddress destination,
                                                               ChannelListener<? super StreamConnection> openListener,
                                                               OptionMap optionMap)
        Description copied from interface: XnioIoFactory
        Connect to a remote stream server. The protocol family is determined by the type of the socket address given. If an open listener is used, the channel should not be accessed via the returned IoFuture, and vice-versa.
        Specified by:
        openStreamConnection in interface XnioIoFactory
        Parameters:
        destination - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • openStreamConnection

        public IoFuture<StreamConnection> openStreamConnection​(java.net.SocketAddress destination,
                                                               ChannelListener<? super StreamConnection> openListener,
                                                               ChannelListener<? super BoundChannel> bindListener,
                                                               OptionMap optionMap)
        Description copied from interface: XnioIoFactory
        Connect to a remote stream server. The protocol family is determined by the type of the socket address given. If an open listener is used, the channel should not be accessed via the returned IoFuture, and vice-versa.
        Specified by:
        openStreamConnection in interface XnioIoFactory
        Parameters:
        destination - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the channel is bound, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • openStreamConnection

        public IoFuture<StreamConnection> openStreamConnection​(java.net.SocketAddress bindAddress,
                                                               java.net.SocketAddress destination,
                                                               ChannelListener<? super StreamConnection> openListener,
                                                               ChannelListener<? super BoundChannel> bindListener,
                                                               OptionMap optionMap)
        Description copied from interface: XnioIoFactory
        Connect to a remote stream server. The protocol family is determined by the type of the socket addresses given (which must match). If an open listener is used, the channel should not be accessed via the returned IoFuture, and vice-versa.
        Specified by:
        openStreamConnection in interface XnioIoFactory
        Parameters:
        bindAddress - the local address to bind to
        destination - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the channel is bound, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • openTcpStreamConnection

        protected IoFuture<StreamConnection> openTcpStreamConnection​(java.net.InetSocketAddress bindAddress,
                                                                     java.net.InetSocketAddress destinationAddress,
                                                                     ChannelListener<? super StreamConnection> openListener,
                                                                     ChannelListener<? super BoundChannel> bindListener,
                                                                     OptionMap optionMap)
        Implementation helper method to connect to a TCP server.
        Parameters:
        bindAddress - the bind address
        destinationAddress - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the channel is bound, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • openLocalStreamConnection

        protected IoFuture<StreamConnection> openLocalStreamConnection​(LocalSocketAddress bindAddress,
                                                                       LocalSocketAddress destinationAddress,
                                                                       ChannelListener<? super StreamConnection> openListener,
                                                                       ChannelListener<? super BoundChannel> bindListener,
                                                                       OptionMap optionMap)
        Implementation helper method to connect to a local (UNIX domain) server.
        Parameters:
        bindAddress - the bind address
        destinationAddress - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        bindListener - the listener which will be notified when the channel is bound, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • openLocalMessageConnection

        protected IoFuture<MessageConnection> openLocalMessageConnection​(LocalSocketAddress bindAddress,
                                                                         LocalSocketAddress destinationAddress,
                                                                         ChannelListener<? super MessageConnection> openListener,
                                                                         OptionMap optionMap)
        Implementation helper method to connect to a local (UNIX domain) server.
        Parameters:
        bindAddress - the bind address
        destinationAddress - the destination address
        openListener - the listener which will be notified when the channel is open, or null for none
        optionMap - the option map
        Returns:
        the future result of this operation
      • createFullDuplexPipeConnection

        public ChannelPipe<StreamConnection,​StreamConnection> createFullDuplexPipeConnection​(XnioIoFactory peer)
                                                                                            throws java.io.IOException
        Description copied from interface: XnioIoFactory
        Create a two-way stream pipe. The left side will be associated with this factory, and the right side will be associated with the given peer.
        Specified by:
        createFullDuplexPipeConnection in interface XnioIoFactory
        Parameters:
        peer - the peer to use for controlling the remote (right) side
        Returns:
        the created pipe
        Throws:
        java.io.IOException - if the pipe could not be created
      • createHalfDuplexPipe

        public ChannelPipe<StreamSourceChannel,​StreamSinkChannel> createHalfDuplexPipe​(XnioIoFactory peer)
                                                                                      throws java.io.IOException
        Description copied from interface: XnioIoFactory
        Create a one-way stream pipe. The left (source) side will be associated with this factory, and the right (sink) side will be associated with the given peer.
        Specified by:
        createHalfDuplexPipe in interface XnioIoFactory
        Parameters:
        peer - the peer to use for the sink (right) side
        Returns:
        the created pipe
        Throws:
        java.io.IOException - if the pipe could not be created