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 }