Class SharedNamedPipe


  • public class SharedNamedPipe
    extends SharedSocket
    This class implements inter-process communication (IPC) to the database server using named pipes.
    Version:
    $Id: SharedNamedPipe.java,v 1.19.2.2 2009-12-10 09:54:04 ickzon Exp $
    Author:
    David D. Kilzer
    To do:
    Extract abstract base class SharedIpc from SharedSocket and this class., Implement connection timeouts for named pipes.
    • Field Detail

      • pipe

        private jcifs.smb.SmbNamedPipe pipe
        The shared named pipe.
    • Constructor Detail

      • SharedNamedPipe

        public SharedNamedPipe​(JtdsConnection connection)
                        throws java.io.IOException
        Creates a new instance of SharedNamedPipe.
        Parameters:
        connection -
        Throws:
        java.io.IOException - if the named pipe or its input or output streams do not open
        java.net.UnknownHostException - if host cannot be found for the named pipe
    • Method Detail

      • isConnected

        boolean isConnected()
        Get the connected status of this socket.
        Overrides:
        isConnected in class SharedSocket
        Returns:
        true if the underlying socket is connected
      • close

        void close()
            throws java.io.IOException
        Close the socket (noop if in shared mode).
        Overrides:
        close in class SharedSocket
        Throws:
        java.io.IOException - if the socket close fails
      • forceClose

        void forceClose()
        Force close the socket causing any pending reads/writes to fail.

        Used by the login timer to abort a login attempt.

        Overrides:
        forceClose in class SharedSocket
      • getPipe

        private jcifs.smb.SmbNamedPipe getPipe()
        Getter for pipe field.
        Returns:
        SmbNamedPipe used for communication
      • setPipe

        private void setPipe​(jcifs.smb.SmbNamedPipe pipe)
        Setter for pipe field.
        Parameters:
        pipe - SmbNamedPipe to be used for communication
      • setTimeout

        protected void setTimeout​(int timeout)
        Set the socket timeout.

        Noop for now; timeouts are not implemented for SMB named pipes.

        Overrides:
        setTimeout in class SharedSocket
        Parameters:
        timeout - timeout value in milliseconds