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.hc.core5.testing.nio;
29
30 import java.io.IOException;
31 import java.net.InetSocketAddress;
32 import java.util.Set;
33 import java.util.concurrent.Future;
34 import java.util.concurrent.ThreadFactory;
35
36 import org.apache.hc.core5.function.Callback;
37 import org.apache.hc.core5.reactor.DefaultListeningIOReactor;
38 import org.apache.hc.core5.reactor.IOEventHandlerFactory;
39 import org.apache.hc.core5.reactor.IOReactorConfig;
40 import org.apache.hc.core5.reactor.IOSession;
41 import org.apache.hc.core5.reactor.ListenerEndpoint;
42
43 public class AsyncServer extends IOReactorExecutor<DefaultListeningIOReactor> {
44
45 public AsyncServer(final IOReactorConfig ioReactorConfig) {
46 super(ioReactorConfig, null);
47 }
48
49 @Override
50 DefaultListeningIOReactor createIOReactor(
51 final IOEventHandlerFactory ioEventHandlerFactory,
52 final IOReactorConfig ioReactorConfig,
53 final ThreadFactory threadFactory,
54 final Callback<IOSession> sessionShutdownCallback) throws IOException {
55 return new DefaultListeningIOReactor(
56 ioEventHandlerFactory,
57 ioReactorConfig,
58 threadFactory,
59 threadFactory,
60 LoggingIOSessionDecorator.INSTANCE,
61 LoggingExceptionCallback.INSTANCE,
62 LoggingIOSessionListener.INSTANCE,
63 sessionShutdownCallback);
64 }
65
66 public Future<ListenerEndpoint> listen(final InetSocketAddress address) {
67 return reactor().listen(address, null);
68 }
69
70 public Set<ListenerEndpoint> getEndpoints() {
71 return reactor().getEndpoints();
72 }
73
74 }