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
28 package org.apache.http.impl;
29
30 import org.apache.http.HttpConnectionFactory;
31 import org.apache.http.HttpRequest;
32 import org.apache.http.HttpResponse;
33 import org.apache.http.annotation.ThreadingBehavior;
34 import org.apache.http.annotation.Contract;
35 import org.apache.http.config.ConnectionConfig;
36 import org.apache.http.entity.ContentLengthStrategy;
37 import org.apache.http.io.HttpMessageParserFactory;
38 import org.apache.http.io.HttpMessageWriterFactory;
39
40 import java.io.IOException;
41 import java.net.Socket;
42
43
44
45
46
47
48 @Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
49 public class DefaultBHttpClientConnectionFactory implements HttpConnectionFactory<DefaultBHttpClientConnection> {
50
51 public static final DefaultBHttpClientConnectionFactoryml#DefaultBHttpClientConnectionFactory">DefaultBHttpClientConnectionFactory INSTANCE = new DefaultBHttpClientConnectionFactory();
52
53 private final ConnectionConfig cconfig;
54 private final ContentLengthStrategy incomingContentStrategy;
55 private final ContentLengthStrategy outgoingContentStrategy;
56 private final HttpMessageWriterFactory<HttpRequest> requestWriterFactory;
57 private final HttpMessageParserFactory<HttpResponse> responseParserFactory;
58
59 public DefaultBHttpClientConnectionFactory(
60 final ConnectionConfig cconfig,
61 final ContentLengthStrategy incomingContentStrategy,
62 final ContentLengthStrategy outgoingContentStrategy,
63 final HttpMessageWriterFactory<HttpRequest> requestWriterFactory,
64 final HttpMessageParserFactory<HttpResponse> responseParserFactory) {
65 super();
66 this.cconfig = cconfig != null ? cconfig : ConnectionConfig.DEFAULT;
67 this.incomingContentStrategy = incomingContentStrategy;
68 this.outgoingContentStrategy = outgoingContentStrategy;
69 this.requestWriterFactory = requestWriterFactory;
70 this.responseParserFactory = responseParserFactory;
71 }
72
73 public DefaultBHttpClientConnectionFactory(
74 final ConnectionConfig cconfig,
75 final HttpMessageWriterFactory<HttpRequest> requestWriterFactory,
76 final HttpMessageParserFactory<HttpResponse> responseParserFactory) {
77 this(cconfig, null, null, requestWriterFactory, responseParserFactory);
78 }
79
80 public DefaultBHttpClientConnectionFactory(final ConnectionConfig cconfig) {
81 this(cconfig, null, null, null, null);
82 }
83
84 public DefaultBHttpClientConnectionFactory() {
85 this(null, null, null, null, null);
86 }
87
88 @Override
89 public DefaultBHttpClientConnection createConnection(final Socket socket) throws IOException {
90 final DefaultBHttpClientConnectionn.html#DefaultBHttpClientConnection">DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(
91 this.cconfig.getBufferSize(),
92 this.cconfig.getFragmentSizeHint(),
93 ConnSupport.createDecoder(this.cconfig),
94 ConnSupport.createEncoder(this.cconfig),
95 this.cconfig.getMessageConstraints(),
96 this.incomingContentStrategy,
97 this.outgoingContentStrategy,
98 this.requestWriterFactory,
99 this.responseParserFactory);
100 conn.bind(socket);
101 return conn;
102 }
103
104 }