View Javadoc

    1   /***
    2    *
    3    * Copyright 2004 Hiram Chirino
    4    *
    5    * Licensed under the Apache License, Version 2.0 (the "License");
    6    * you may not use this file except in compliance with the License.
    7    * You may obtain a copy of the License at
    8    *
    9    * http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   **/
    18  package org.activeio.net;
    19
    20  import java.io.IOException;
    21  import java.net.InetAddress;
    22  import java.net.ServerSocket;
    23  import java.net.Socket;
    24  import java.net.UnknownHostException;
    25
    26  import javax.net.ServerSocketFactory;
    27  import javax.net.SocketFactory;
    28
    29  import org.p2psockets.P2PServerSocket;
    30  import org.p2psockets.P2PSocket;
    31
    32  /***
    33   * A SslSynchChannelFactory creates {@see org.activeio.net.TcpSynchChannel}
    34   * and {@see org.activeio.net.TcpSynchChannelServer} objects that use SSL.
    35   *
    36   * @version $Revision$
    37   */
    38  public class JxtaSocketSynchChannelFactory extends SocketSynchChannelFactory {
    39
    40      static public final class JxtaServerSocketFactory extends ServerSocketFactory {
    41
    42          private static JxtaServerSocketFactory defaultJxtaServerSocketFactory = new JxtaServerSocketFactory();
    43          public static ServerSocketFactory getDefault() {
    44              return defaultJxtaServerSocketFactory;
    45          }
    46
    47          private JxtaServerSocketFactory() {}
    48
    49          public ServerSocket createServerSocket(int localPort) throws IOException {
    50              return new P2PServerSocket(localPort);
    51          }
    52
    53          public ServerSocket createServerSocket(int localPort, int backlog) throws IOException {
    54              return new P2PServerSocket(localPort, backlog);
    55          }
    56
    57          public ServerSocket createServerSocket(int localPort, int backlog, InetAddress localHost) throws IOException {
    58              return new P2PServerSocket(localPort, backlog, localHost);
    59          }
    60      }
    61
    62      static public final class JxtaSocketFactory extends SocketFactory {
    63
    64          private static JxtaSocketFactory defaultJxtaSocketFactory = new JxtaSocketFactory();
    65          public static SocketFactory getDefault() {
    66              return defaultJxtaSocketFactory;
    67          }
    68          private JxtaSocketFactory() {}
    69
    70          public Socket createSocket(String remoteHost, int remotePort) throws IOException, UnknownHostException {
    71              return new P2PSocket(remoteHost, remotePort);
    72          }
    73
    74          public Socket createSocket(String remoteHost, int remotePort, InetAddress localHost, int localPort) throws IOException, UnknownHostException {
    75              return new P2PSocket(remoteHost, remotePort, localHost, localPort);
    76          }
    77
    78          public Socket createSocket(InetAddress remoteHost, int remotePort) throws IOException {
    79              return new P2PSocket(remoteHost, remotePort);
    80          }
    81
    82          public Socket createSocket(InetAddress remoteHost, int remotePort, InetAddress localHost, int localPort) throws IOException {
    83              return new P2PSocket(remoteHost, remotePort, localHost, localPort);
    84          }
    85      }
    86
    87      public JxtaSocketSynchChannelFactory() {
    88          super(JxtaSocketFactory.getDefault(), JxtaServerSocketFactory.getDefault());
    89      }
    90  }