1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.server;
20
21 import java.io.IOException;
22 import java.nio.channels.SelectionKey;
23 import java.nio.channels.SocketChannel;
24 import java.util.List;
25 import java.util.concurrent.CopyOnWriteArrayList;
26 import java.util.concurrent.Executor;
27
28 import org.eclipse.jetty.io.ByteBufferPool;
29 import org.eclipse.jetty.io.ManagedSelector;
30 import org.eclipse.jetty.io.NetworkTrafficListener;
31 import org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint;
32 import org.eclipse.jetty.io.SelectChannelEndPoint;
33 import org.eclipse.jetty.util.ssl.SslContextFactory;
34 import org.eclipse.jetty.util.thread.Scheduler;
35
36
37
38
39
40
41 public class NetworkTrafficServerConnector extends ServerConnector
42 {
43 private final List<NetworkTrafficListener> listeners = new CopyOnWriteArrayList<>();
44
45 public NetworkTrafficServerConnector(Server server)
46 {
47 this(server, null, null, null, 0, 0, new HttpConnectionFactory());
48 }
49
50 public NetworkTrafficServerConnector(Server server, ConnectionFactory connectionFactory, SslContextFactory sslContextFactory)
51 {
52 super(server, sslContextFactory, connectionFactory);
53 }
54
55 public NetworkTrafficServerConnector(Server server, ConnectionFactory connectionFactory)
56 {
57 super(server, connectionFactory);
58 }
59
60 public NetworkTrafficServerConnector(Server server, Executor executor, Scheduler scheduler, ByteBufferPool pool, int acceptors, int selectors, ConnectionFactory... factories)
61 {
62 super(server, executor, scheduler, pool, acceptors, selectors, factories);
63 }
64
65 public NetworkTrafficServerConnector(Server server, SslContextFactory sslContextFactory)
66 {
67 super(server, sslContextFactory);
68 }
69
70
71
72
73 public void addNetworkTrafficListener(NetworkTrafficListener listener)
74 {
75 listeners.add(listener);
76 }
77
78
79
80
81 public void removeNetworkTrafficListener(NetworkTrafficListener listener)
82 {
83 listeners.remove(listener);
84 }
85
86 @Override
87 protected SelectChannelEndPoint newEndPoint(SocketChannel channel, ManagedSelector selectSet, SelectionKey key) throws IOException
88 {
89 NetworkTrafficSelectChannelEndPoint endPoint = new NetworkTrafficSelectChannelEndPoint(channel, selectSet, key, getScheduler(), getIdleTimeout(), listeners);
90 return endPoint;
91 }
92 }