SocketFactory.java
上传用户:sxlinghang
上传日期:2022-07-20
资源大小:1405k
文件大小:3k
源码类别:

数据库编程

开发平台:

Java

  1. /*
  2.    Copyright (C) 2002 MySQL AB
  3.       This program is free software; you can redistribute it and/or modify
  4.       it under the terms of the GNU General Public License as published by
  5.       the Free Software Foundation; either version 2 of the License, or
  6.       (at your option) any later version.
  7.       This program is distributed in the hope that it will be useful,
  8.       but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.       GNU General Public License for more details.
  11.       You should have received a copy of the GNU General Public License
  12.       along with this program; if not, write to the Free Software
  13.       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14.  */
  15. package com.mysql.jdbc;
  16. import java.io.IOException;
  17. import java.net.Socket;
  18. import java.net.SocketException;
  19. import java.util.Properties;
  20. /**
  21.  * Interface to allow pluggable socket creation in the driver
  22.  *
  23.  * @author Mark Matthews
  24.  */
  25. public interface SocketFactory {
  26.     /**
  27.      * Called by the driver after issuing the MySQL protocol handshake and
  28.      * reading the results of the handshake.
  29.      *
  30.      * @throws SocketException if a socket error occurs
  31.      * @throws IOException if an I/O error occurs
  32.      *
  33.      * @return the socket to use after the handshake
  34.      */
  35.     Socket afterHandshake() throws SocketException, IOException;
  36.     /**
  37.      * Called by the driver before issuing the MySQL protocol handshake.
  38.      * Should return the socket instance that should be used during
  39.      * the handshake.
  40.      *
  41.      * @throws SocketException if a socket error occurs
  42.      * @throws IOException if an I/O error occurs
  43.      *
  44.      * @return the socket to use before the handshake
  45.      */
  46.     Socket beforeHandshake() throws SocketException, IOException;
  47.     /**
  48.      * Creates a new socket using the given properties.  Properties are parsed
  49.      * by the driver from the URL.  All properties other than sensitive ones
  50.      * (user and password) are passed to this method.  The driver will
  51.      * instantiate the socket factory with the class name given in the
  52.      * property "socketFactory", where the standard is
  53.      * <code>com.mysql.jdbc.StandardSocketFactory</code>  Implementing classes
  54.      * are responsible for handling synchronization of this method (if
  55.      * needed).
  56.      *
  57.      * @param host the hostname passed in the JDBC URL. It will be a single
  58.      * hostname, as the driver parses multi-hosts (for failover) and calls this
  59.      * method for each host connection attempt.
  60.      *
  61.      * @param props properties passed to the driver via the URL and/or properties
  62.      *               instance.
  63.      *
  64.      * @return a socket connected to the given host
  65.      * @throws SocketException if a socket error occurs
  66.      * @throws IOException if an I/O error occurs
  67.      */
  68.     Socket connect(String host, Properties props)
  69.         throws SocketException, IOException;
  70. }