1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.directory.server.protocol.shared;
20
21
22 import java.io.IOException;
23 import java.net.SocketAddress;
24 import java.util.concurrent.Executor;
25 import java.util.concurrent.Executors;
26
27 import org.apache.mina.common.IoHandler;
28 import org.apache.mina.common.IoServiceConfig;
29 import org.apache.mina.common.ThreadModel;
30 import org.apache.mina.filter.executor.ExecutorFilter;
31
32
33
34
35
36
37
38
39 public class DatagramAcceptor extends org.apache.mina.transport.socket.nio.DatagramAcceptor
40 {
41 private static final int DEFAULT_THREADS = 10;
42
43
44 public DatagramAcceptor( Executor logicExecutor )
45 {
46 super();
47 if ( logicExecutor == null )
48 {
49 logicExecutor = Executors.newFixedThreadPool( DEFAULT_THREADS );
50 }
51 getFilterChain().addLast( "executor", new ExecutorFilter( logicExecutor ) );
52 }
53
54
55 public void bind( SocketAddress address, IoHandler ioHandler, IoServiceConfig udpConfig ) throws IOException
56 {
57 udpConfig.setThreadModel( ThreadModel.MANUAL );
58 super.bind( address, ioHandler, udpConfig );
59 }
60
61
62 public void unbind( SocketAddress address )
63 {
64 super.unbind(address);
65 }
66
67 }