1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.http.impl.nio;
28
29 import org.apache.http.HttpRequestFactory;
30 import org.apache.http.annotation.Immutable;
31 import org.apache.http.impl.DefaultHttpRequestFactory;
32 import org.apache.http.nio.NHttpConnectionFactory;
33 import org.apache.http.nio.NHttpServerConnection;
34 import org.apache.http.nio.reactor.IOSession;
35 import org.apache.http.nio.util.ByteBufferAllocator;
36 import org.apache.http.nio.util.HeapByteBufferAllocator;
37 import org.apache.http.params.HttpConnectionParams;
38 import org.apache.http.params.HttpParams;
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 @Immutable
56 public class DefaultNHttpServerConnectionFactory
57 implements NHttpConnectionFactory<DefaultNHttpServerConnection> {
58
59 private final HttpRequestFactory requestFactory;
60 private final ByteBufferAllocator allocator;
61 private final HttpParams params;
62
63 public DefaultNHttpServerConnectionFactory(
64 final HttpRequestFactory requestFactory,
65 final ByteBufferAllocator allocator,
66 final HttpParams params) {
67 super();
68 if (requestFactory == null) {
69 throw new IllegalArgumentException("HTTP request factory may not be null");
70 }
71 if (allocator == null) {
72 throw new IllegalArgumentException("Byte buffer allocator may not be null");
73 }
74 if (params == null) {
75 throw new IllegalArgumentException("HTTP parameters may not be null");
76 }
77 this.requestFactory = requestFactory;
78 this.allocator = allocator;
79 this.params = params;
80 }
81
82 public DefaultNHttpServerConnectionFactory(final HttpParams params) {
83 this(new DefaultHttpRequestFactory(), new HeapByteBufferAllocator(), params);
84 }
85
86 protected DefaultNHttpServerConnection createConnection(
87 final IOSession session,
88 final HttpRequestFactory requestFactory,
89 final ByteBufferAllocator allocator,
90 final HttpParams params) {
91 return new DefaultNHttpServerConnection(session, requestFactory, allocator, params);
92 }
93
94 public DefaultNHttpServerConnection createConnection(final IOSession session) {
95 DefaultNHttpServerConnection conn = createConnection(
96 session, this.requestFactory, this.allocator, this.params);
97 int timeout = HttpConnectionParams.getSoTimeout(this.params);
98 conn.setSocketTimeout(timeout);
99 return conn;
100 }
101
102 }