Class InternalDataChannel

    • Field Detail

      • ioSession

        private final IOSession ioSession
      • tlsSessionRef

        private final java.util.concurrent.atomic.AtomicReference<SSLIOSession> tlsSessionRef
      • currentSessionRef

        private final java.util.concurrent.atomic.AtomicReference<IOSession> currentSessionRef
      • eventHandlerRef

        private final java.util.concurrent.atomic.AtomicReference<IOEventHandler> eventHandlerRef
      • protocolUpgradeHandlerMap

        private final java.util.concurrent.ConcurrentMap<java.lang.String,​ProtocolUpgradeHandler> protocolUpgradeHandlerMap
      • closed

        private final java.util.concurrent.atomic.AtomicBoolean closed
    • Method Detail

      • getId

        public java.lang.String getId()
        Specified by:
        getId in interface Identifiable
      • upgrade

        public void upgrade​(IOEventHandler handler)
        Description copied from interface: IOSession
        Upgrades event handler associated with the session.
        Specified by:
        upgrade in interface IOSession
      • onIOEvent

        void onIOEvent​(int readyOps)
                throws java.io.IOException
        Specified by:
        onIOEvent in class InternalChannel
        Throws:
        java.io.IOException
      • onTLSSessionStart

        void onTLSSessionStart​(SSLIOSession sslSession)
      • onTLSSessionEnd

        void onTLSSessionEnd​(SSLIOSession sslSession)
      • disconnected

        void disconnected()
      • startTls

        public void startTls​(javax.net.ssl.SSLContext sslContext,
                             NamedEndpoint endpoint,
                             SSLBufferMode sslBufferMode,
                             SSLSessionInitializer initializer,
                             SSLSessionVerifier verifier,
                             Timeout handshakeTimeout)
        Description copied from interface: TransportSecurityLayer
        Starts TLS session over an existing network connection with the given SSL context. NamedEndpoint details are applicable for client side connections and are used for host name verification, when supported by the SSL engine.
        Specified by:
        startTls in interface TransportSecurityLayer
        Parameters:
        sslContext - SSL context to be used for this session.
        endpoint - optional endpoint details for outgoing client side connections.
        sslBufferMode - SSL buffer management mode.
        initializer - SSL session initialization callback.
        verifier - SSL session verification callback.
        handshakeTimeout - the timeout to use while performing the TLS handshake; may be null.
      • startTls

        public void startTls​(javax.net.ssl.SSLContext sslContext,
                             NamedEndpoint endpoint,
                             SSLBufferMode sslBufferMode,
                             SSLSessionInitializer initializer,
                             SSLSessionVerifier verifier,
                             Timeout handshakeTimeout,
                             FutureCallback<TransportSecurityLayer> callback)
        Description copied from interface: TransportSecurityLayer
        Starts TLS session over an existing network connection with the given SSL context. NamedEndpoint details are applicable for client side connections and are used for host name verification, when supported by the SSL engine.
        Specified by:
        startTls in interface TransportSecurityLayer
        Parameters:
        sslContext - SSL context to be used for this session.
        endpoint - optional endpoint details for outgoing client side connections.
        sslBufferMode - SSL buffer management mode.
        initializer - SSL session initialization callback.
        verifier - SSL session verification callback.
        handshakeTimeout - the timeout to use while performing the TLS handshake; may be null.
      • getLock

        public java.util.concurrent.locks.Lock getLock()
        Description copied from interface: IOSession
        Returns session lock that should be used by I/O event handlers to synchronize access to the session.
        Specified by:
        getLock in interface IOSession
      • close

        public void close()
        Description copied from interface: IOSession
        Terminates the session gracefully and closes the underlying I/O channel. This method ensures that session termination handshake, such as the one used by the SSL/TLS protocol, is correctly carried out.
        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 IOSession
      • close

        public void close​(CloseMode closeMode)
        Description copied from interface: ModalCloseable
        Closes this process or endpoint and releases any system resources associated with it. If the endpoint or the process is already closed then invoking this method has no effect.
        Specified by:
        close in interface ModalCloseable
        Parameters:
        closeMode - How to close the receiver.
      • isOpen

        public boolean isOpen()
        Specified by:
        isOpen in interface java.nio.channels.Channel
      • hasCommands

        public boolean hasCommands()
        Description copied from interface: IOSession
        Tests if there enqueued commands pending execution.
        Specified by:
        hasCommands in interface IOSession
      • channel

        public java.nio.channels.ByteChannel channel()
        Description copied from interface: IOSession
        Returns the underlying I/O channel associated with this session.
        Specified by:
        channel in interface IOSession
        Returns:
        the I/O channel.
      • getRemoteAddress

        public java.net.SocketAddress getRemoteAddress()
        Description copied from interface: IOSession
        Returns address of the remote peer.
        Specified by:
        getRemoteAddress in interface IOSession
        Returns:
        socket address.
      • getLocalAddress

        public java.net.SocketAddress getLocalAddress()
        Description copied from interface: IOSession
        Returns local address.
        Specified by:
        getLocalAddress in interface IOSession
        Returns:
        socket address.
      • getEventMask

        public int getEventMask()
        Description copied from interface: IOSession
        Returns mask of I/O evens this session declared interest in.
        Specified by:
        getEventMask in interface IOSession
        Returns:
        I/O event mask.
      • setEventMask

        public void setEventMask​(int ops)
        Description copied from interface: IOSession
        Declares interest in I/O event notifications by setting the event mask associated with the session
        Specified by:
        setEventMask in interface IOSession
        Parameters:
        ops - new I/O event mask.
      • setEvent

        public void setEvent​(int op)
        Description copied from interface: IOSession
        Declares interest in a particular I/O event type by updating the event mask associated with the session.
        Specified by:
        setEvent in interface IOSession
        Parameters:
        op - I/O event type.
      • clearEvent

        public void clearEvent​(int op)
        Description copied from interface: IOSession
        Clears interest in a particular I/O event type by updating the event mask associated with the session.
        Specified by:
        clearEvent in interface IOSession
        Parameters:
        op - I/O event type.
      • read

        public int read​(java.nio.ByteBuffer dst)
                 throws java.io.IOException
        Specified by:
        read in interface java.nio.channels.ReadableByteChannel
        Throws:
        java.io.IOException
      • write

        public int write​(java.nio.ByteBuffer src)
                  throws java.io.IOException
        Specified by:
        write in interface java.nio.channels.WritableByteChannel
        Throws:
        java.io.IOException
      • updateReadTime

        public void updateReadTime()
        Description copied from interface: IOSession
        Updates the timestamp of the last read event
        Specified by:
        updateReadTime in interface IOSession
      • updateWriteTime

        public void updateWriteTime()
        Description copied from interface: IOSession
        Updates the timestamp of the last write event
        Specified by:
        updateWriteTime in interface IOSession
      • getLastReadTime

        public long getLastReadTime()
        Description copied from interface: IOSession
        Returns timestamp of the last read event.
        Specified by:
        getLastReadTime in interface IOSession
        Returns:
        timestamp.
      • getLastWriteTime

        public long getLastWriteTime()
        Description copied from interface: IOSession
        Returns timestamp of the last write event.
        Specified by:
        getLastWriteTime in interface IOSession
        Returns:
        timestamp.
      • switchProtocol

        public void switchProtocol​(java.lang.String protocolId,
                                   FutureCallback<ProtocolIOSession> callback)
        Description copied from interface: ProtocolIOSession
        Switches this I/O session to the application protocol with the given ID.
        Specified by:
        switchProtocol in interface ProtocolIOSession
        Parameters:
        protocolId - the application protocol ID
        callback - the result callback
      • registerProtocol

        public void registerProtocol​(java.lang.String protocolId,
                                     ProtocolUpgradeHandler upgradeHandler)
        Description copied from interface: ProtocolIOSession
        Registers protocol upgrade handler with the given application protocol ID.
        Specified by:
        registerProtocol in interface ProtocolIOSession
        Parameters:
        protocolId - the application protocol ID
        upgradeHandler - the upgrade handler.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object